.include "asm/macros.inc" .syntax unified .text thumb_func_start sub_11B9C sub_11B9C: @ 0x08011B9C push {r4, lr} ldr r0, _08011BC0 @ =gMain ldrb r0, [r0, #6] cmp r0, #0 bne _08011BD0 ldr r0, _08011BC4 @ =0x020314E0 ldr r0, [r0] ldr r2, _08011BC8 @ =0x0000132C adds r1, r0, r2 ldr r3, _08011BCC @ =0x00001334 adds r0, r0, r3 str r0, [r1] movs r0, #0 bl sub_11C14 bl sub_12524 b _08011C02 .align 2, 0 _08011BC0: .4byte gMain _08011BC4: .4byte 0x020314E0 _08011BC8: .4byte 0x0000132C _08011BCC: .4byte 0x00001334 _08011BD0: movs r3, #0 _08011BD2: ldr r0, _08011C08 @ =0x020314E0 ldr r1, [r0] ldr r0, _08011C0C @ =0x0000132C adds r2, r1, r0 lsls r4, r3, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #4 adds r0, r0, r4 lsls r0, r0, #2 ldr r3, _08011C10 @ =0x00001334 adds r0, r0, r3 adds r1, r1, r0 str r1, [r2] adds r0, r4, #0 bl sub_11C14 adds r4, #1 lsls r4, r4, #0x10 lsrs r3, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08011BD2 bl sub_12BF8 _08011C02: pop {r4} pop {r0} bx r0 .align 2, 0 _08011C08: .4byte 0x020314E0 _08011C0C: .4byte 0x0000132C _08011C10: .4byte 0x00001334 thumb_func_start sub_11C14 sub_11C14: @ 0x08011C14 push {r4, r5, lr} ldr r3, _08011C6C @ =0x020314E0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08011C70 @ =0x00001334 adds r1, r1, r0 ldr r0, [r3] adds r4, r0, r1 ldr r1, _08011C74 @ =0x02031520 ldrh r0, [r1, #0x26] movs r2, #0 strh r0, [r4, #0x10] ldrh r0, [r1, #0x28] strh r0, [r4, #0x12] movs r5, #0x10 ldrsh r0, [r4, r5] lsls r0, r0, #8 str r0, [r4, #0x34] movs r5, #0x12 ldrsh r0, [r4, r5] lsls r0, r0, #8 str r0, [r4, #0x38] movs r5, #0x26 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r4, #0x28] movs r5, #0x28 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r4, #0x2a] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0xe] strh r2, [r4, #0x30] strh r2, [r4, #0x32] ldr r0, _08011C78 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _08011C7C movs r0, #3 b _08011C7E .align 2, 0 _08011C6C: .4byte 0x020314E0 _08011C70: .4byte 0x00001334 _08011C74: .4byte 0x02031520 _08011C78: .4byte gMain _08011C7C: movs r0, #1 _08011C7E: strb r0, [r4, #1] movs r0, #0 strh r0, [r4, #6] ldr r0, [r3] ldr r1, _08011C94 @ =0x000005B2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08011C94: .4byte 0x000005B2 thumb_func_start sub_11C98 sub_11C98: @ 0x08011C98 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _08011CE0 @ =0x020314E0 ldr r2, [r0] ldr r1, _08011CE4 @ =0x0000132C adds r0, r2, r1 ldr r6, [r0] ldr r0, [r6, #0x34] ldr r1, [r6, #0x38] str r0, [r6, #0x3c] str r1, [r6, #0x40] ldr r1, _08011CE8 @ =0x000005A4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, #2 bne _08011CBE b _08011F48 _08011CBE: adds r0, r2, #0 adds r0, #0x31 ldrb r0, [r0] cmp r0, #0 bne _08011CCA b _08011E04 _08011CCA: ldrb r0, [r2, #0x1f] cmp r0, #0 bne _08011D0A ldrh r3, [r6, #0x32] movs r1, #0x32 ldrsh r0, [r6, r1] cmp r0, #0xa0 ble _08011CF0 ldr r0, _08011CEC @ =0x08137910 b _08011CFE .align 2, 0 _08011CE0: .4byte 0x020314E0 _08011CE4: .4byte 0x0000132C _08011CE8: .4byte 0x000005A4 _08011CEC: .4byte 0x08137910 _08011CF0: cmp r0, #0x50 ble _08011CFC ldr r0, _08011CF8 @ =0x08137908 b _08011CFE .align 2, 0 _08011CF8: .4byte 0x08137908 _08011CFC: ldr r0, _08011D8C @ =0x08137900 _08011CFE: ldrb r1, [r2, #0x1e] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r0, r3, r0 strh r0, [r6, #0x32] _08011D0A: movs r2, #0x30 ldrsh r0, [r6, r2] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r4, r7, #0 movs r1, #0x30 ldrsh r0, [r6, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r2, r1, r0 movs r0, #0x12 ldrsh r1, [r6, r0] ldr r0, _08011D90 @ =0x0000017B cmp r1, r0 bgt _08011DA4 movs r1, #0x88 lsls r1, r1, #1 mov r8, r1 ldr r0, _08011D94 @ =0x00012100 cmp r2, r0 bgt _08011D4C b _08011F2C _08011D4C: adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, r8 muls r2, r0, r2 adds r0, r2, #0 ldr r1, _08011D98 @ =0x00004E20 mov sb, r1 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011D9C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 adds r0, r7, #0 bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sb bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011DA0 @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011D8C: .4byte 0x08137900 _08011D90: .4byte 0x0000017B _08011D94: .4byte 0x00012100 _08011D98: .4byte 0x00004E20 _08011D9C: .4byte 0xFFFF0000 _08011DA0: .4byte 0x0000FFFF _08011DA4: movs r0, #0xc8 lsls r0, r0, #1 mov r8, r0 ldr r0, _08011DF4 @ =0x00027100 cmp r2, r0 bgt _08011DB2 b _08011F2C _08011DB2: adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 muls r1, r0, r1 adds r0, r1, #0 ldr r7, _08011DF8 @ =0x00004E20 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011DFC @ =0xFFFF0000 ands r5, r1 orrs r5, r0 adds r0, r4, #0 bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011E00 @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011DF4: .4byte 0x00027100 _08011DF8: .4byte 0x00004E20 _08011DFC: .4byte 0xFFFF0000 _08011E00: .4byte 0x0000FFFF _08011E04: ldrb r0, [r2, #0x1f] cmp r0, #0 bne _08011E36 ldrh r3, [r6, #0x32] movs r1, #0x32 ldrsh r0, [r6, r1] cmp r0, #0xc8 ble _08011E1C ldr r0, _08011E18 @ =0x08137910 b _08011E2A .align 2, 0 _08011E18: .4byte 0x08137910 _08011E1C: cmp r0, #0x64 ble _08011E28 ldr r0, _08011E24 @ =0x08137908 b _08011E2A .align 2, 0 _08011E24: .4byte 0x08137908 _08011E28: ldr r0, _08011EB8 @ =0x08137900 _08011E2A: ldrb r1, [r2, #0x1e] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r0, r3, r0 strh r0, [r6, #0x32] _08011E36: movs r2, #0x30 ldrsh r0, [r6, r2] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 mov sb, r7 movs r1, #0x30 ldrsh r0, [r6, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r2, r1, r0 movs r0, #0x12 ldrsh r1, [r6, r0] ldr r0, _08011EBC @ =0x0000017B cmp r1, r0 bgt _08011ED0 movs r1, #0xa8 lsls r1, r1, #1 mov r8, r1 ldr r0, _08011EC0 @ =0x0001B900 cmp r2, r0 ble _08011F2C adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, r8 muls r2, r0, r2 adds r0, r2, #0 ldr r1, _08011EC4 @ =0x00004E20 mov sb, r1 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011EC8 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 adds r0, r7, #0 bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sb bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011ECC @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011EB8: .4byte 0x08137900 _08011EBC: .4byte 0x0000017B _08011EC0: .4byte 0x0001B900 _08011EC4: .4byte 0x00004E20 _08011EC8: .4byte 0xFFFF0000 _08011ECC: .4byte 0x0000FFFF _08011ED0: movs r0, #0xc8 lsls r0, r0, #1 mov r8, r0 ldr r0, _08011F1C @ =0x00027100 cmp r2, r0 ble _08011F2C mov r0, sb bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 muls r1, r0, r1 adds r0, r1, #0 ldr r7, _08011F20 @ =0x00004E20 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011F24 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, sb bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011F28 @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011F1C: .4byte 0x00027100 _08011F20: .4byte 0x00004E20 _08011F24: .4byte 0xFFFF0000 _08011F28: .4byte 0x0000FFFF _08011F2C: ldrh r0, [r6, #0x32] lsls r0, r0, #0x10 ldrh r5, [r6, #0x30] _08011F32: orrs r5, r0 lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r0, [r6, #0x34] adds r0, r0, r1 str r0, [r6, #0x34] asrs r1, r5, #0x10 ldr r0, [r6, #0x38] adds r0, r0, r1 str r0, [r6, #0x38] b _08011F4C _08011F48: bl sub_2AADC _08011F4C: ldr r0, [r6, #0x28] str r0, [r6, #0x2c] ldr r1, [r6, #0x34] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _08011F5C adds r0, #0x7f _08011F5C: asrs r0, r0, #7 strh r0, [r6, #0x28] ldr r1, [r6, #0x38] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _08011F6C adds r0, #0x7f _08011F6C: asrs r0, r0, #7 strh r0, [r6, #0x2a] ldrh r0, [r6, #6] strh r0, [r6, #8] ldrh r1, [r6, #0xa] adds r0, r0, r1 strh r0, [r6, #0xa] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_11F88 sub_11F88: @ 0x08011F88 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r2, _08011FD0 @ =0x020314E0 ldr r3, [r2] ldr r1, _08011FD4 @ =0x0000132C adds r0, r3, r1 ldr r6, [r0] ldr r0, [r6, #0x34] ldr r1, [r6, #0x38] str r0, [r6, #0x3c] str r1, [r6, #0x40] ldr r1, _08011FD8 @ =0x000005A4 adds r0, r3, r1 ldrb r0, [r0] cmp r0, #2 bne _08011FAE b _080124E4 _08011FAE: ldrb r0, [r3, #0x1f] cmp r0, #0 bne _08011FFE ldr r1, _08011FDC @ =0x00000383 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08011FFE ldrh r4, [r6, #0x32] movs r1, #0x32 ldrsh r0, [r6, r1] cmp r0, #0x96 ble _08011FE4 ldr r0, _08011FE0 @ =0x08137910 b _08011FF2 .align 2, 0 _08011FD0: .4byte 0x020314E0 _08011FD4: .4byte 0x0000132C _08011FD8: .4byte 0x000005A4 _08011FDC: .4byte 0x00000383 _08011FE0: .4byte 0x08137910 _08011FE4: cmp r0, #0x4b ble _08011FF0 ldr r0, _08011FEC @ =0x08137908 b _08011FF2 .align 2, 0 _08011FEC: .4byte 0x08137908 _08011FF0: ldr r0, _0801208C @ =0x08137900 _08011FF2: ldrb r1, [r3, #0x1e] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r0, r4, r0 strh r0, [r6, #0x32] _08011FFE: ldr r0, [r2] adds r0, #0x31 ldrb r0, [r0] cmp r0, #0 bne _0801200A b _08012270 _0801200A: movs r2, #0x30 ldrsh r0, [r6, r2] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 mov sb, r8 movs r1, #0x30 ldrsh r0, [r6, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _08012090 @ =gMain ldrb r0, [r0, #4] cmp r0, #3 bhi _080120FC movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0x95 bgt _080120A4 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _08012094 @ =0x00012100 cmp r1, r0 bgt _08012052 b _080124C8 _08012052: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012098 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801209C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080120A0 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _0801208C: .4byte 0x08137900 _08012090: .4byte gMain _08012094: .4byte 0x00012100 _08012098: .4byte 0x00004E20 _0801209C: .4byte 0xFFFF0000 _080120A0: .4byte 0x0000FFFF _080120A4: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _080120EC @ =0x00027100 cmp r1, r0 bgt _080120B0 b _080124C8 _080120B0: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080120F0 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080120F4 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080120F8 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080120EC: .4byte 0x00027100 _080120F0: .4byte 0x00004E20 _080120F4: .4byte 0xFFFF0000 _080120F8: .4byte 0x0000FFFF _080120FC: cmp r0, #7 bne _080121B8 movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _08012160 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _08012150 @ =0x00012100 cmp r1, r0 bgt _08012114 b _080124C8 _08012114: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012154 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012158 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _0801215C @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012150: .4byte 0x00012100 _08012154: .4byte 0x00004E20 _08012158: .4byte 0xFFFF0000 _0801215C: .4byte 0x0000FFFF _08012160: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _080121A8 @ =0x00027100 cmp r1, r0 bgt _0801216C b _080124C8 _0801216C: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080121AC @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080121B0 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080121B4 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080121A8: .4byte 0x00027100 _080121AC: .4byte 0x00004E20 _080121B0: .4byte 0xFFFF0000 _080121B4: .4byte 0x0000FFFF _080121B8: movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _08012218 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _08012208 @ =0x00012100 cmp r1, r0 bgt _080121CC b _080124C8 _080121CC: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _0801220C @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012210 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012214 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012208: .4byte 0x00012100 _0801220C: .4byte 0x00004E20 _08012210: .4byte 0xFFFF0000 _08012214: .4byte 0x0000FFFF _08012218: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _08012260 @ =0x00027100 cmp r1, r0 bgt _08012224 b _080124C8 _08012224: mov r0, sb bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012264 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012268 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, sb bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _0801226C @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012260: .4byte 0x00027100 _08012264: .4byte 0x00004E20 _08012268: .4byte 0xFFFF0000 _0801226C: .4byte 0x0000FFFF _08012270: movs r1, #0x30 ldrsh r0, [r6, r1] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 movs r2, #0x30 ldrsh r0, [r6, r2] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _080122F0 @ =gMain ldrb r0, [r0, #4] cmp r0, #3 bhi _0801235C movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0x95 bgt _08012304 movs r7, #0x98 lsls r7, r7, #1 ldr r0, _080122F4 @ =0x00016900 cmp r1, r0 bgt _080122B6 b _080124C8 _080122B6: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080122F8 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080122FC @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012300 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080122F0: .4byte gMain _080122F4: .4byte 0x00016900 _080122F8: .4byte 0x00004E20 _080122FC: .4byte 0xFFFF0000 _08012300: .4byte 0x0000FFFF _08012304: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _0801234C @ =0x00027100 cmp r1, r0 bgt _08012310 b _080124C8 _08012310: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012350 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012354 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012358 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _0801234C: .4byte 0x00027100 _08012350: .4byte 0x00004E20 _08012354: .4byte 0xFFFF0000 _08012358: .4byte 0x0000FFFF _0801235C: cmp r0, #7 bne _08012418 movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _080123C0 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _080123B0 @ =0x00012100 cmp r1, r0 bgt _08012374 b _080124C8 _08012374: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080123B4 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080123B8 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080123BC @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080123B0: .4byte 0x00012100 _080123B4: .4byte 0x00004E20 _080123B8: .4byte 0xFFFF0000 _080123BC: .4byte 0x0000FFFF _080123C0: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _08012408 @ =0x00027100 cmp r1, r0 bgt _080123CC b _080124C8 _080123CC: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _0801240C @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012410 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012414 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012408: .4byte 0x00027100 _0801240C: .4byte 0x00004E20 _08012410: .4byte 0xFFFF0000 _08012414: .4byte 0x0000FFFF _08012418: movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _08012474 movs r7, #0x98 lsls r7, r7, #1 ldr r0, _08012464 @ =0x00016900 cmp r1, r0 ble _080124C8 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012468 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801246C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012470 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012464: .4byte 0x00016900 _08012468: .4byte 0x00004E20 _0801246C: .4byte 0xFFFF0000 _08012470: .4byte 0x0000FFFF _08012474: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _080124B8 @ =0x00027100 cmp r1, r0 ble _080124C8 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080124BC @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080124C0 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080124C4 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080124B8: .4byte 0x00027100 _080124BC: .4byte 0x00004E20 _080124C0: .4byte 0xFFFF0000 _080124C4: .4byte 0x0000FFFF _080124C8: ldrh r0, [r6, #0x32] lsls r0, r0, #0x10 ldrh r5, [r6, #0x30] _080124CE: orrs r5, r0 lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r0, [r6, #0x34] adds r0, r0, r1 str r0, [r6, #0x34] asrs r1, r5, #0x10 ldr r0, [r6, #0x38] adds r0, r0, r1 str r0, [r6, #0x38] b _080124E8 _080124E4: bl sub_2AADC _080124E8: ldr r0, [r6, #0x28] str r0, [r6, #0x2c] ldr r1, [r6, #0x34] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _080124F8 adds r0, #0x7f _080124F8: asrs r0, r0, #7 strh r0, [r6, #0x28] ldr r1, [r6, #0x38] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _08012508 adds r0, #0x7f _08012508: asrs r0, r0, #7 strh r0, [r6, #0x2a] ldrh r0, [r6, #6] strh r0, [r6, #8] ldrh r1, [r6, #0xa] adds r0, r0, r1 strh r0, [r6, #0xa] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_12524 sub_12524: @ 0x08012524 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r2, _080125F0 @ =0x020314E0 ldr r0, [r2] ldr r1, _080125F4 @ =0x0000132C adds r0, r0, r1 ldr r7, [r0] ldrh r0, [r7, #0xa] lsrs r0, r0, #0xc mov r8, r0 movs r3, #0x12 ldrsh r1, [r7, r3] movs r0, #0xaa lsls r0, r0, #1 cmp r1, r0 bne _0801255A movs r4, #0x10 ldrsh r0, [r7, r4] cmp r0, #0x5a beq _08012556 cmp r0, #0x95 bne _0801255A _08012556: ldrh r0, [r7, #0xc] strh r0, [r7, #0xa] _0801255A: ldrh r0, [r7, #0xa] strh r0, [r7, #0xc] ldr r6, _080125F0 @ =0x020314E0 ldr r3, [r6] ldr r1, _080125F8 @ =0x000005F7 adds r0, r3, r1 ldrb r0, [r0] cmp r0, #0 bne _080125CE movs r4, #0xbf lsls r4, r4, #3 adds r2, r3, r4 ldrh r0, [r2] cmp r0, #0 beq _080125CE subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _080125CE ldr r6, _080125FC @ =0x000005F6 adds r2, r3, r6 ldrb r3, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080125AC subs r0, r3, #1 strb r0, [r2] ldr r0, _080125F0 @ =0x020314E0 ldr r1, [r0] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080125AC adds r1, r1, r4 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] _080125AC: ldr r2, _08012600 @ =0x040000D4 ldr r1, _080125F0 @ =0x020314E0 ldr r0, [r1] ldr r3, _080125FC @ =0x000005F6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _08012604 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08012608 @ =0x05000220 str r0, [r2, #4] ldr r0, _0801260C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _080125CE: movs r4, #0x12 ldrsh r0, [r7, r4] cmp r0, #0xf3 ble _08012614 ldr r6, _080125F0 @ =0x020314E0 ldr r0, [r6] ldr r1, _08012610 @ =0x000005B2 adds r0, r0, r1 movs r2, #0 movs r1, #1 strb r1, [r0] ldr r0, [r6] movs r3, #0xbb lsls r3, r3, #1 adds r0, r0, r3 strb r2, [r0] b _08012620 .align 2, 0 _080125F0: .4byte 0x020314E0 _080125F4: .4byte 0x0000132C _080125F8: .4byte 0x000005F7 _080125FC: .4byte 0x000005F6 _08012600: .4byte 0x040000D4 _08012604: .4byte 0x08137E14 _08012608: .4byte 0x05000220 _0801260C: .4byte 0x80000010 _08012610: .4byte 0x000005B2 _08012614: ldr r4, _080126C8 @ =0x020314E0 ldr r0, [r4] ldr r6, _080126CC @ =0x000005B2 adds r0, r0, r6 movs r1, #0 strb r1, [r0] _08012620: movs r1, #0x28 ldrsh r0, [r7, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r7, #0x10] movs r2, #0x2a ldrsh r0, [r7, r2] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r7, #0x12] ldr r1, _080126D0 @ =gMain ldr r0, [r1, #0x44] ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _08012646 b _08012792 _08012646: movs r3, #0xe ldrsh r1, [r7, r3] adds r0, r1, #0 movs r2, #0 bl sub_7C0 ldr r0, _080126C8 @ =0x020314E0 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x4c ldrh r0, [r0] adds r0, #7 ldrh r2, [r7, #0x10] subs r2, r2, r0 ldr r4, _080126D4 @ =0x000002AA adds r0, r3, r4 ldrh r0, [r0] subs r2, r2, r0 strh r2, [r6, #2] adds r0, r3, #0 adds r0, #0x4e ldrh r1, [r0] adds r1, #7 ldrh r0, [r7, #0x12] subs r0, r0, r1 ldr r4, _080126D8 @ =0x000005FC adds r1, r3, r4 ldrh r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrh r1, [r1] movs r4, #0xb3 lsls r4, r4, #1 adds r3, r3, r4 subs r0, r0, r1 ldrh r3, [r3] adds r0, r0, r3 strh r0, [r6, #4] strh r2, [r7, #0x24] ldrh r0, [r6, #4] strh r0, [r7, #0x26] movs r0, #8 adds r0, r0, r6 mov ip, r0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _080126DC @ =0x03005000 adds r5, r0, r1 movs r0, #1 ldrsb r0, [r7, r0] cmp r0, #3 bne _080126E6 movs r1, #0x12 ldrsh r0, [r7, r1] cmp r0, #0xf8 ble _080126E0 ldrb r0, [r5, #5] movs r1, #0xd rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r5, #5] b _080126FA .align 2, 0 _080126C8: .4byte 0x020314E0 _080126CC: .4byte 0x000005B2 _080126D0: .4byte gMain _080126D4: .4byte 0x000002AA _080126D8: .4byte 0x000005FC _080126DC: .4byte 0x03005000 _080126E0: ldrb r0, [r5, #5] movs r1, #0xc b _080126F6 _080126E6: movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r5, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 _080126F6: orrs r0, r1 strb r0, [r5, #5] _080126FA: ldr r3, _08012768 @ =0x040000D4 mov r2, r8 lsls r1, r2, #0x10 asrs r1, r1, #0x10 ldr r4, _0801276C @ =0x020314E0 ldr r0, [r4] ldr r2, _08012770 @ =0x000005F6 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r0, r2, #4 adds r0, r0, r2 adds r1, r1, r0 lsls r1, r1, #7 ldr r0, _08012774 @ =0x083BB16C adds r1, r1, r0 str r1, [r3] ldr r0, _08012778 @ =0x06010400 str r0, [r3, #4] ldr r0, _0801277C @ =0x80000040 str r0, [r3, #8] ldr r0, [r3, #8] movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _08012732 movs r0, #0xc8 strh r0, [r6, #4] _08012732: movs r4, #4 ldrsh r0, [r6, r4] movs r1, #0x14 rsbs r1, r1, #0 cmp r0, r1 bge _08012740 strh r1, [r6, #4] _08012740: mov r0, ip movs r2, #2 ldrsh r1, [r0, r2] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r4, _08012780 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r2, [r5, #2] ldr r0, _08012784 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r5, #2] movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0 beq _08012788 movs r0, #0xc8 b _08012790 .align 2, 0 _08012768: .4byte 0x040000D4 _0801276C: .4byte 0x020314E0 _08012770: .4byte 0x000005F6 _08012774: .4byte 0x083BB16C _08012778: .4byte 0x06010400 _0801277C: .4byte 0x80000040 _08012780: .4byte 0x000001FF _08012784: .4byte 0xFFFFFE00 _08012788: ldrb r0, [r6, #4] mov r6, ip ldrb r6, [r6, #4] adds r0, r0, r6 _08012790: strb r0, [r5] _08012792: ldr r1, _08012824 @ =gMain ldr r0, [r1, #0x44] adds r0, #0xc4 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _080127A2 b _080128EA _080127A2: movs r2, #0xe ldrsh r1, [r7, r2] adds r0, r1, #0 movs r2, #0 bl sub_7C0 ldr r0, _08012828 @ =0x020314E0 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x4c ldrh r0, [r0] adds r0, #7 ldrh r2, [r7, #0x10] subs r2, r2, r0 ldr r4, _0801282C @ =0x000002AA adds r0, r3, r4 ldrh r0, [r0] subs r2, r2, r0 strh r2, [r6, #2] adds r0, r3, #0 adds r0, #0x4e ldrh r1, [r0] adds r1, #7 ldrh r0, [r7, #0x12] subs r0, r0, r1 ldr r4, _08012830 @ =0x000005FC adds r1, r3, r4 ldrh r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrh r1, [r1] movs r4, #0xb3 lsls r4, r4, #1 adds r3, r3, r4 subs r0, r0, r1 ldrh r3, [r3] adds r0, r0, r3 strh r0, [r6, #4] strh r2, [r7, #0x24] ldrh r0, [r6, #4] strh r0, [r7, #0x26] movs r0, #8 adds r0, r0, r6 mov ip, r0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08012834 @ =0x03005000 adds r5, r0, r1 movs r0, #1 ldrsb r0, [r7, r0] cmp r0, #3 bne _0801283E movs r1, #0x12 ldrsh r0, [r7, r1] cmp r0, #0xf8 ble _08012838 ldrb r0, [r5, #5] movs r1, #0xd rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r5, #5] b _08012852 .align 2, 0 _08012824: .4byte gMain _08012828: .4byte 0x020314E0 _0801282C: .4byte 0x000002AA _08012830: .4byte 0x000005FC _08012834: .4byte 0x03005000 _08012838: ldrb r0, [r5, #5] movs r1, #0xc b _0801284E _0801283E: movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r5, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 _0801284E: orrs r0, r1 strb r0, [r5, #5] _08012852: ldr r3, _080128C0 @ =0x040000D4 mov r2, r8 lsls r1, r2, #0x10 asrs r1, r1, #0x10 ldr r4, _080128C4 @ =0x020314E0 ldr r0, [r4] ldr r2, _080128C8 @ =0x000005F6 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r0, r2, #4 adds r0, r0, r2 adds r1, r1, r0 lsls r1, r1, #7 ldr r0, _080128CC @ =0x083BB16C adds r1, r1, r0 str r1, [r3] ldr r0, _080128D0 @ =0x06010400 str r0, [r3, #4] ldr r0, _080128D4 @ =0x80000040 str r0, [r3, #8] ldr r0, [r3, #8] movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _0801288A movs r0, #0xc8 strh r0, [r6, #4] _0801288A: movs r4, #4 ldrsh r0, [r6, r4] movs r1, #0x14 rsbs r1, r1, #0 cmp r0, r1 bge _08012898 strh r1, [r6, #4] _08012898: mov r0, ip movs r2, #2 ldrsh r1, [r0, r2] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r4, _080128D8 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r2, [r5, #2] ldr r0, _080128DC @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r5, #2] movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0 beq _080128E0 movs r0, #0xc8 b _080128E8 .align 2, 0 _080128C0: .4byte 0x040000D4 _080128C4: .4byte 0x020314E0 _080128C8: .4byte 0x000005F6 _080128CC: .4byte 0x083BB16C _080128D0: .4byte 0x06010400 _080128D4: .4byte 0x80000040 _080128D8: .4byte 0x000001FF _080128DC: .4byte 0xFFFFFE00 _080128E0: ldrb r0, [r6, #4] mov r6, ip ldrb r6, [r6, #4] adds r0, r0, r6 _080128E8: strb r0, [r5] _080128EA: movs r3, #4 ldr r5, _080129D0 @ =0x020314E0 _080128EE: ldr r2, [r5] lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r4, r1, #2 adds r4, r2, r4 subs r1, #1 lsls r0, r1, #2 adds r2, r2, r0 adds r0, r2, #0 adds r0, #0xd0 ldrh r3, [r0] adds r0, r4, #0 adds r0, #0xd0 strh r3, [r0] adds r2, #0xd2 ldrh r0, [r2] adds r4, #0xd2 strh r0, [r4] lsls r1, r1, #0x10 lsrs r3, r1, #0x10 cmp r1, #0 bgt _080128EE ldr r0, _080129D0 @ =0x020314E0 ldr r2, [r0] ldrh r0, [r7, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd0 strh r0, [r1] ldrh r0, [r7, #0x12] subs r0, #7 adds r1, #2 strh r0, [r1] adds r0, r2, #0 adds r0, #0x71 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08012940 b _08012A44 _08012940: movs r3, #0 ldr r1, _080129D4 @ =gMain mov sb, r1 movs r2, #0xd rsbs r2, r2, #0 mov sl, r2 _0801294C: lsls r2, r3, #0x10 asrs r4, r2, #0x10 mov r3, sb ldr r1, [r3, #0x44] lsls r0, r4, #2 adds r0, r0, r1 ldr r6, [r0, #4] ldrh r0, [r6] mov r8, r2 cmp r0, #0 beq _08012A0C movs r0, #8 adds r0, r0, r6 mov ip, r0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _080129D8 @ =0x03005000 adds r5, r0, r1 movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r5, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r5, #5] mov r1, ip movs r3, #2 ldrsh r2, [r1, r3] ldr r6, _080129D0 @ =0x020314E0 ldr r3, [r6] adds r0, r4, #1 lsls r0, r0, #3 adds r0, r3, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r0, r3, #0 adds r0, #0x4c movs r6, #0 ldrsh r0, [r0, r6] subs r1, r1, r0 adds r2, r2, r1 ldr r1, _080129DC @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r5, #2] ldr r0, _080129E0 @ =0xFFFFFE00 ands r0, r1 orrs r0, r2 strh r0, [r5, #2] cmp r4, #0 bne _080129E4 adds r0, r3, #0 adds r0, #0xda ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 mov r2, ip ldrb r2, [r2, #4] adds r0, r0, r2 b _08012A0A .align 2, 0 _080129D0: .4byte 0x020314E0 _080129D4: .4byte gMain _080129D8: .4byte 0x03005000 _080129DC: .4byte 0x000001FF _080129E0: .4byte 0xFFFFFE00 _080129E4: cmp r4, #1 bne _08012A0C mov r6, sb ldr r0, [r6, #0x4c] ands r0, r4 cmp r0, #0 bne _08012A08 adds r0, r3, #0 adds r0, #0xe2 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 mov r1, ip ldrb r1, [r1, #4] adds r0, r0, r1 b _08012A0A _08012A08: movs r0, #0xc8 _08012A0A: strb r0, [r5] _08012A0C: movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801294C ldr r2, _08012A40 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #4] movs r2, #0 movs r1, #1 strh r1, [r0] ldr r3, _08012A40 @ =gMain ldr r0, [r3, #0x44] ldr r0, [r0, #8] strh r1, [r0] ldr r0, [r3, #0x44] adds r0, #0xc4 ldr r0, [r0] strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0] strh r2, [r0] b _08012AE4 .align 2, 0 _08012A40: .4byte gMain _08012A44: movs r3, #0 ldr r4, _08012B14 @ =gMain mov sl, r4 movs r6, #3 mov sb, r6 movs r0, #0xd rsbs r0, r0, #0 mov ip, r0 ldr r1, _08012B18 @ =0xFFFFFE00 mov r8, r1 _08012A58: lsls r0, r3, #0x10 asrs r4, r0, #0x10 mov r2, sl ldr r1, [r2, #0x44] lsls r0, r4, #2 adds r0, r0, r1 ldr r6, [r0, #4] ldrh r0, [r6] cmp r0, #0 beq _08012AB8 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08012B1C @ =0x03005000 adds r5, r0, r1 ldrb r1, [r7, #1] mov r3, sb ands r1, r3 lsls r1, r1, #2 ldrb r2, [r5, #5] mov r0, ip ands r0, r2 orrs r0, r1 strb r0, [r5, #5] movs r0, #0xa ldrsh r3, [r6, r0] ldr r1, _08012B20 @ =0x020314E0 ldr r2, [r1] adds r0, r4, #1 lsls r0, r0, #3 adds r0, r2, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r2, #0x4c movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 adds r3, r3, r1 ldr r1, _08012B24 @ =0x000001FF adds r0, r1, #0 ands r3, r0 ldrh r1, [r5, #2] mov r0, r8 ands r0, r1 orrs r0, r3 strh r0, [r5, #2] movs r0, #0xc8 strb r0, [r5] _08012AB8: adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08012A58 ldr r2, _08012B14 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #4] movs r1, #0 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #8] strh r1, [r0] ldr r0, [r2, #0x44] adds r0, #0xc4 ldr r0, [r0] strh r1, [r0] ldr r0, [r2, #0x44] ldr r1, [r0] movs r0, #1 strh r0, [r1] _08012AE4: ldr r3, _08012B14 @ =gMain ldr r1, [r3, #0x44] adds r0, r1, #0 adds r0, #0xac ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 beq _08012BC2 ldr r4, _08012B20 @ =0x020314E0 ldr r0, [r4] ldr r2, _08012B28 @ =0x0000071C adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0x3a bhi _08012B2C ldr r0, [r1] ldrh r0, [r0, #2] subs r0, #8 strh r0, [r6, #2] ldr r0, [r3, #0x44] ldr r0, [r0] ldrh r0, [r0, #4] subs r0, #8 b _08012B32 .align 2, 0 _08012B14: .4byte gMain _08012B18: .4byte 0xFFFFFE00 _08012B1C: .4byte 0x03005000 _08012B20: .4byte 0x020314E0 _08012B24: .4byte 0x000001FF _08012B28: .4byte 0x0000071C _08012B2C: movs r0, #0 strh r0, [r6, #2] movs r0, #0xb4 _08012B32: strh r0, [r6, #4] ldr r3, _08012BD0 @ =0x020314E0 ldr r0, [r3] adds r0, #0x6e ldr r2, _08012BD4 @ =0x040000D4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #9 ldr r1, _08012BD8 @ =0x083BD36C adds r0, r0, r1 str r0, [r2] ldr r0, _08012BDC @ =0x06011EE0 str r0, [r2, #4] ldr r0, _08012BE0 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] movs r4, #8 adds r4, r4, r6 mov ip, r4 ldr r4, _08012BE4 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 mov r0, ip movs r3, #2 ldrsh r1, [r0, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08012BE8 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08012BEC @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] mov r2, ip ldrb r2, [r2, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r3, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r2, #5] ldr r3, _08012BD0 @ =0x020314E0 ldr r0, [r3] ldr r4, _08012BF0 @ =0x0000071C adds r0, r0, r4 ldrb r0, [r0] cmp r0, #0xd bhi _08012BC2 ldr r6, _08012BF4 @ =gMain ldr r0, [r6, #0x44] adds r0, #0xac ldr r1, [r0] movs r0, #0 strh r0, [r1] _08012BC2: 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 _08012BD0: .4byte 0x020314E0 _08012BD4: .4byte 0x040000D4 _08012BD8: .4byte 0x083BD36C _08012BDC: .4byte 0x06011EE0 _08012BE0: .4byte 0x80000100 _08012BE4: .4byte 0x03005000 _08012BE8: .4byte 0x000001FF _08012BEC: .4byte 0xFFFFFE00 _08012BF0: .4byte 0x0000071C _08012BF4: .4byte gMain thumb_func_start sub_12BF8 sub_12BF8: @ 0x08012BF8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r3, _08012C30 @ =0x020314E0 ldr r0, [r3] ldr r1, _08012C34 @ =0x00001330 adds r2, r0, r1 ldr r4, _08012C38 @ =0x00001334 adds r1, r0, r4 str r1, [r2] ldr r6, _08012C3C @ =0x0000132C adds r0, r0, r6 str r1, [r0] mov r8, r1 ldr r1, _08012C40 @ =gMain ldrb r0, [r1, #4] subs r0, #3 mov sl, r3 cmp r0, #4 bhi _08012CA0 lsls r0, r0, #2 ldr r1, _08012C44 @ =_08012C48 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08012C30: .4byte 0x020314E0 _08012C34: .4byte 0x00001330 _08012C38: .4byte 0x00001334 _08012C3C: .4byte 0x0000132C _08012C40: .4byte gMain _08012C44: .4byte _08012C48 _08012C48: @ jump table .4byte _08012C5C @ case 0 .4byte _08012C78 @ case 1 .4byte _08012C78 @ case 2 .4byte _08012C88 @ case 3 .4byte _08012C78 @ case 4 _08012C5C: movs r0, #2 mov r1, r8 strb r0, [r1, #1] ldr r0, _08012C70 @ =0x02031590 ldrb r1, [r0, #0x16] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08012C74 @ =0x0200B3B8 adds r6, r1, r0 b _08012CAC .align 2, 0 _08012C70: .4byte 0x02031590 _08012C74: .4byte 0x0200B3B8 _08012C78: movs r0, #1 mov r2, r8 strb r0, [r2, #1] ldr r3, _08012C84 @ =gMain ldr r0, [r3, #0x44] b _08012CAA .align 2, 0 _08012C84: .4byte gMain _08012C88: mov r4, r8 movs r0, #1 ldrsb r0, [r4, r0] cmp r0, #2 ble _08012C96 movs r0, #2 strb r0, [r4, #1] _08012C96: ldr r6, _08012C9C @ =gMain ldr r0, [r6, #0x44] b _08012CAA .align 2, 0 _08012C9C: .4byte gMain _08012CA0: movs r0, #3 mov r1, r8 strb r0, [r1, #1] ldr r2, _08012DC0 @ =gMain ldr r0, [r2, #0x44] _08012CAA: ldr r6, [r0] _08012CAC: mov r3, sl ldr r1, [r3] ldr r4, _08012DC4 @ =0x0000132C adds r0, r1, r4 ldr r0, [r0] ldrh r0, [r0, #0xa] lsrs r5, r0, #0xc ldr r2, _08012DC8 @ =0x040000D4 ldr r0, _08012DCC @ =0x000005F6 adds r1, r1, r0 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r0, r1, #4 adds r0, r0, r1 adds r0, r5, r0 lsls r0, r0, #7 ldr r1, _08012DD0 @ =0x083BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _08012DD4 @ =0x06010400 str r0, [r2, #4] ldr r0, _08012DD8 @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, r8 movs r3, #0x28 ldrsh r1, [r2, r3] lsrs r0, r1, #0x1f adds r1, r1, r0 asrs r1, r1, #1 strh r1, [r2, #0x10] movs r4, #0x2a ldrsh r0, [r2, r4] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 mov r2, r8 strh r0, [r2, #0x12] mov r3, sl ldr r2, [r3] adds r0, r2, #0 adds r0, #0x4c ldrh r0, [r0] adds r0, #7 subs r1, r1, r0 ldr r4, _08012DDC @ =0x000002AA adds r0, r2, r4 ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #2] adds r0, r2, #0 adds r0, #0x4e ldrh r0, [r0] adds r0, #7 mov r1, r8 ldrh r4, [r1, #0x12] subs r4, r4, r0 ldr r3, _08012DE0 @ =0x000005FC adds r0, r2, r3 ldrh r0, [r0] subs r4, r4, r0 adds r0, r2, #0 adds r0, #0xe6 ldrh r0, [r0] subs r4, r4, r0 movs r1, #0xab lsls r1, r1, #2 adds r0, r2, r1 ldrh r0, [r0] subs r4, r4, r0 movs r3, #0xe3 lsls r3, r3, #2 adds r0, r2, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 subs r4, r4, r0 strh r4, [r6, #4] lsls r4, r4, #0x10 asrs r4, r4, #0x10 movs r0, #0x3c rsbs r0, r0, #0 cmp r4, r0 bge _08012D5E ldr r0, _08012DE4 @ =0x0000FFC4 strh r0, [r6, #4] _08012D5E: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xb4 ble _08012D6A movs r0, #0xb4 strh r0, [r6, #4] _08012D6A: ldrh r0, [r6, #2] mov r3, r8 strh r0, [r3, #0x24] ldrh r0, [r6, #4] strh r0, [r3, #0x26] adds r7, r6, #0 adds r7, #8 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r3, _08012DE8 @ =0x03005000 adds r4, r0, r3 movs r0, #3 mov r2, r8 ldrb r1, [r2, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r4, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #5] movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08012DEC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] ldr r0, _08012DF0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r4, #2] mov r1, r8 movs r0, #0 ldrsb r0, [r1, r0] mov sb, r3 cmp r0, #0 beq _08012DF4 movs r0, #0xc8 b _08012DFA .align 2, 0 _08012DC0: .4byte gMain _08012DC4: .4byte 0x0000132C _08012DC8: .4byte 0x040000D4 _08012DCC: .4byte 0x000005F6 _08012DD0: .4byte 0x083BB16C _08012DD4: .4byte 0x06010400 _08012DD8: .4byte 0x80000040 _08012DDC: .4byte 0x000002AA _08012DE0: .4byte 0x000005FC _08012DE4: .4byte 0x0000FFC4 _08012DE8: .4byte 0x03005000 _08012DEC: .4byte 0x000001FF _08012DF0: .4byte 0xFFFFFE00 _08012DF4: ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 _08012DFA: strb r0, [r4] mov r2, sl ldr r3, [r2] movs r4, #0xe2 lsls r4, r4, #2 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08012E12 b _0801309C _08012E12: ldr r6, _08012F84 @ =gMain ldr r0, [r6, #0x44] ldr r6, [r0, #4] ldrh r0, [r6] cmp r0, #0 beq _08012E5E mov r1, r8 ldrh r0, [r1, #0x24] subs r0, #8 strh r0, [r6, #2] ldrh r0, [r1, #0x26] subs r0, #8 strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r3, #2 ldrsh r1, [r7, r3] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r3, _08012F88 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08012F8C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] _08012E5E: mov r4, sl ldr r2, [r4] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _08012E78 cmp r0, #3 beq _08012E78 b _08012FBC _08012E78: ldr r4, _08012F90 @ =0x00000392 adds r0, r2, r4 ldrh r1, [r0] cmp r1, #0 bne _08012E8E movs r0, #1 strb r0, [r2, #0x1f] mov r2, r8 strh r1, [r2, #0x30] strh r1, [r2, #0x32] strh r1, [r2, #6] _08012E8E: mov r3, sl ldr r0, [r3] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x96 bne _08012E9E movs r0, #1 strh r0, [r6] _08012E9E: mov r1, sl ldr r0, [r1] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x9a bne _08012EB0 movs r0, #0xf9 bl m4aSongNumStart _08012EB0: mov r2, sl ldr r0, [r2] adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0x95 bls _08012EEA subs r0, #0x96 movs r1, #0x42 bl __modsi3 movs r1, #6 bl __divsi3 lsls r0, r0, #0x10 ldr r2, _08012F94 @ =0x040000D4 lsrs r5, r0, #0x10 asrs r0, r0, #7 ldr r1, _08012F98 @ =0x083BF16C adds r0, r0, r1 str r0, [r2] ldr r0, _08012F9C @ =0x06010720 str r0, [r2, #4] ldr r0, _08012FA0 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] mov r3, r8 ldrh r0, [r3, #6] subs r0, #0x28 strh r0, [r3, #6] _08012EEA: ldr r1, _08012F84 @ =gMain ldrb r0, [r1, #0xf] movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 cmp r0, #0 bne _08012F30 mov r2, sl ldr r3, [r2] adds r0, r3, r4 ldrh r1, [r0] adds r1, #1 strh r1, [r0] lsls r0, r5, #0x10 ldr r4, _08012FA4 @ =0xFFF90000 adds r0, r0, r4 lsrs r0, r0, #0x10 cmp r0, #3 bhi _08012F30 ldr r2, _08012F94 @ =0x040000D4 ldr r1, _08012FA8 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _08012FAC @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08012FB0 @ =0x05000220 str r0, [r2, #4] ldr r0, _08012FB4 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _08012F30: ldr r3, _08012FB8 @ =0x020314E0 ldr r0, [r3] ldr r2, _08012F90 @ =0x00000392 adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0xba bne _08012F44 movs r0, #0 mov r4, r8 strb r0, [r4] _08012F44: ldr r1, [r3] adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xd7 bhi _08012F50 b _0801310A _08012F50: movs r2, #0xe2 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08012F6A movs r0, #0xa5 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #2 strb r0, [r1] _08012F6A: ldr r0, [r3] adds r0, r0, r2 movs r1, #0 strb r1, [r0] movs r2, #0 strh r1, [r6] ldr r0, [r3] strb r2, [r0, #0x1f] ldr r2, _08012F94 @ =0x040000D4 ldr r0, [r3] ldr r1, _08012FA8 @ =0x000005F6 adds r0, r0, r1 b _080130F2 .align 2, 0 _08012F84: .4byte gMain _08012F88: .4byte 0x000001FF _08012F8C: .4byte 0xFFFFFE00 _08012F90: .4byte 0x00000392 _08012F94: .4byte 0x040000D4 _08012F98: .4byte 0x083BF16C _08012F9C: .4byte 0x06010720 _08012FA0: .4byte 0x80000100 _08012FA4: .4byte 0xFFF90000 _08012FA8: .4byte 0x000005F6 _08012FAC: .4byte 0x08137E14 _08012FB0: .4byte 0x05000220 _08012FB4: .4byte 0x80000010 _08012FB8: .4byte 0x020314E0 _08012FBC: ldr r4, _0801307C @ =0x00000392 adds r0, r2, r4 ldrh r1, [r0] cmp r1, #0 bne _08012FD2 movs r0, #1 strb r0, [r2, #0x1f] mov r2, r8 strh r1, [r2, #0x30] strh r1, [r2, #0x32] strh r1, [r2, #6] _08012FD2: mov r3, sl ldr r0, [r3] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #5 bne _08012FE2 movs r0, #1 strh r0, [r6] _08012FE2: mov r1, sl ldr r0, [r1] adds r1, r0, r4 ldrh r0, [r1] cmp r0, #4 bls _0801301A subs r0, #5 movs r1, #0x3f bl __modsi3 movs r1, #7 bl __divsi3 ldr r2, _08013080 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #7 ldr r1, _08013084 @ =0x083BDF6C adds r0, r0, r1 str r0, [r2] ldr r0, _08013088 @ =0x06010720 str r0, [r2, #4] ldr r0, _0801308C @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, r8 ldrh r0, [r2, #6] subs r0, #0x14 strh r0, [r2, #6] _0801301A: ldr r3, _08013090 @ =gMain ldrb r0, [r3, #0xf] movs r1, #0x81 rsbs r1, r1, #0 ands r0, r1 cmp r0, #0 bne _08013034 mov r0, sl ldr r1, [r0] adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08013034: mov r1, sl ldr r0, [r1] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x17 bne _08013046 movs r0, #0xf9 bl m4aSongNumStart _08013046: mov r2, sl ldr r0, [r2] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x14 bne _08013058 movs r0, #1 mov r3, r8 strb r0, [r3] _08013058: ldr r0, _08013094 @ =0x020314E0 ldr r1, [r0] adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x43 bls _0801310A movs r2, #0xe2 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #0 strb r0, [r1] strh r0, [r6] ldr r2, _08013080 @ =0x040000D4 ldr r3, _08013094 @ =0x020314E0 ldr r0, [r3] ldr r4, _08013098 @ =0x000005F6 adds r0, r0, r4 b _080130F2 .align 2, 0 _0801307C: .4byte 0x00000392 _08013080: .4byte 0x040000D4 _08013084: .4byte 0x083BDF6C _08013088: .4byte 0x06010720 _0801308C: .4byte 0x80000100 _08013090: .4byte gMain _08013094: .4byte 0x020314E0 _08013098: .4byte 0x000005F6 _0801309C: ldr r6, _08013204 @ =0x000005F7 adds r0, r3, r6 ldrb r0, [r0] cmp r0, #0 bne _0801310A movs r4, #0xbf lsls r4, r4, #3 adds r2, r3, r4 ldrh r0, [r2] cmp r0, #0 beq _0801310A subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _0801310A ldr r0, _08013208 @ =0x000005F6 adds r2, r3, r0 ldrb r3, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080130E8 subs r0, r3, #1 strb r0, [r2] mov r2, sl ldr r1, [r2] ldr r3, _08013208 @ =0x000005F6 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080130E8 adds r1, r1, r4 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] _080130E8: ldr r2, _0801320C @ =0x040000D4 mov r4, sl ldr r0, [r4] ldr r6, _08013208 @ =0x000005F6 adds r0, r0, r6 _080130F2: ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _08013210 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08013214 @ =0x05000220 str r0, [r2, #4] ldr r0, _08013218 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0801310A: ldr r1, _0801321C @ =gMain ldrb r0, [r1, #4] cmp r0, #6 ble _08013114 b _0801330C _08013114: cmp r0, #4 bge _0801311A b _0801330C _0801311A: ldr r0, _08013220 @ =0x020314E0 ldr r1, [r0] adds r1, #0x71 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 bne _0801312E b _08013280 _0801312E: movs r3, #4 mov r5, sl _08013132: ldr r2, [r5] lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r4, r1, #2 adds r4, r2, r4 subs r1, #1 lsls r0, r1, #2 adds r2, r2, r0 adds r0, r2, #0 adds r0, #0xd0 ldrh r3, [r0] adds r0, r4, #0 adds r0, #0xd0 strh r3, [r0] adds r2, #0xd2 ldrh r0, [r2] adds r4, #0xd2 strh r0, [r4] lsls r1, r1, #0x10 lsrs r3, r1, #0x10 cmp r1, #0 bgt _08013132 mov r3, sl ldr r2, [r3] mov r4, r8 ldrh r0, [r4, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd0 strh r0, [r1] ldrh r0, [r4, #0x12] subs r0, #7 adds r2, #0xd2 strh r0, [r2] movs r3, #0 ldr r6, _0801321C @ =gMain mov sb, r6 _0801317C: lsls r2, r3, #0x10 asrs r5, r2, #0x10 mov r0, sb ldr r1, [r0, #0x44] lsls r0, r5, #2 adds r0, r0, r1 ldr r6, [r0, #0x18] ldrh r0, [r6] mov ip, r2 cmp r0, #0 beq _0801325E adds r7, r6, #0 adds r7, #8 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08013224 @ =0x03005000 adds r4, r0, r1 movs r0, #3 mov r2, r8 ldrb r1, [r2, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r4, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #5] movs r3, #2 ldrsh r2, [r7, r3] mov r6, sl ldr r3, [r6] adds r0, r5, #1 lsls r0, r0, #3 adds r0, r3, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r0, r3, #0 adds r0, #0x4c movs r6, #0 ldrsh r0, [r0, r6] subs r1, r1, r0 adds r2, r2, r1 ldr r1, _08013228 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] ldr r0, _0801322C @ =0xFFFFFE00 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] cmp r5, #0 bne _08013230 adds r0, r3, #0 adds r0, #0xda ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrb r1, [r1] subs r0, r0, r1 ldrb r7, [r7, #4] adds r0, r0, r7 b _0801325C .align 2, 0 _08013204: .4byte 0x000005F7 _08013208: .4byte 0x000005F6 _0801320C: .4byte 0x040000D4 _08013210: .4byte 0x08137E14 _08013214: .4byte 0x05000220 _08013218: .4byte 0x80000010 _0801321C: .4byte gMain _08013220: .4byte 0x020314E0 _08013224: .4byte 0x03005000 _08013228: .4byte 0x000001FF _0801322C: .4byte 0xFFFFFE00 _08013230: cmp r5, #1 bne _0801325E mov r2, sb ldr r0, [r2, #0x4c] ands r0, r5 cmp r0, #0 bne _0801325A adds r0, r3, #0 adds r0, #0xe2 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrb r1, [r1] subs r0, r0, r1 ldrb r7, [r7, #4] adds r0, r0, r7 b _0801325C _0801325A: movs r0, #0xc8 _0801325C: strb r0, [r4] _0801325E: movs r0, #0x80 lsls r0, r0, #9 add r0, ip lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801317C ldr r3, _0801327C @ =gMain ldr r0, [r3, #0x44] ldr r0, [r0, #0x18] movs r1, #1 strh r1, [r0] ldr r0, [r3, #0x44] b _08013308 .align 2, 0 _0801327C: .4byte gMain _08013280: movs r3, #0 movs r4, #3 mov sb, r4 movs r6, #0xd rsbs r6, r6, #0 mov ip, r6 ldr r7, _0801331C @ =0xFFFFFE00 _0801328E: lsls r0, r3, #0x10 asrs r5, r0, #0x10 ldr r0, _08013320 @ =gMain ldr r1, [r0, #0x44] lsls r0, r5, #2 adds r0, r0, r1 ldr r6, [r0, #0x18] ldrh r0, [r6] cmp r0, #0 beq _080132F0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08013324 @ =0x03005000 adds r4, r0, r1 mov r2, r8 ldrb r1, [r2, #1] mov r3, sb ands r1, r3 lsls r1, r1, #2 ldrb r2, [r4, #5] mov r0, ip ands r0, r2 orrs r0, r1 strb r0, [r4, #5] movs r0, #0xa ldrsh r3, [r6, r0] mov r1, sl ldr r2, [r1] adds r0, r5, #1 lsls r0, r0, #3 adds r0, r2, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r2, #0x4c movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 adds r3, r3, r1 ldr r1, _08013328 @ =0x000001FF adds r0, r1, #0 ands r3, r0 ldrh r1, [r4, #2] adds r0, r7, #0 ands r0, r1 orrs r0, r3 strh r0, [r4, #2] movs r0, #0xc8 strb r0, [r4] _080132F0: adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801328E ldr r2, _08013320 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #0x18] movs r1, #0 strh r1, [r0] ldr r0, [r2, #0x44] _08013308: ldr r0, [r0, #0x1c] strh r1, [r0] _0801330C: 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 _0801331C: .4byte 0xFFFFFE00 _08013320: .4byte gMain _08013324: .4byte 0x03005000 _08013328: .4byte 0x000001FF thumb_func_start sub_1332C sub_1332C: @ 0x0801332C ldr r0, _08013338 @ =0x020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] bx lr .align 2, 0 _08013338: .4byte 0x020314E0 thumb_func_start sub_1333C sub_1333C: @ 0x0801333C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0xc mov r0, sp bl sub_13824 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 ldr r0, _0801336C @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 ldrb r0, [r0] subs r0, #1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _08013362 b _08013758 _08013362: lsls r0, r0, #2 ldr r1, _08013370 @ =_08013374 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801336C: .4byte 0x020314E0 _08013370: .4byte _08013374 _08013374: @ jump table .4byte _080133C8 @ case 0 .4byte _08013488 @ case 1 .4byte _080134FC @ case 2 .4byte _08013614 @ case 3 .4byte _08013758 @ case 4 .4byte _08013428 @ case 5 .4byte _08013390 @ case 6 _08013390: ldr r0, _080133A4 @ =0x020314E0 ldr r0, [r0] ldr r1, _080133A8 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] movs r2, #0 strh r2, [r1, #0x30] ldr r0, [r0] strh r2, [r0, #0x32] b _080137CE .align 2, 0 _080133A4: .4byte 0x020314E0 _080133A8: .4byte 0x0000132C _080133AC: mov r1, sp movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _0801340C _080133C8: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _0801341C @ =0x020314E0 ldr r0, [r0] ldr r2, _08013420 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 movs r1, #0 mov r8, r5 adds r5, r4, #0 ldr r2, _08013424 @ =0x086ACD50 _080133F2: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _080133AC adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _080133F2 _0801340C: ldr r0, _0801341C @ =0x020314E0 ldr r1, [r0] ldr r3, _08013420 @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] mov r6, r8 ldrh r0, [r6] b _080134DA .align 2, 0 _0801341C: .4byte 0x020314E0 _08013420: .4byte 0x0000132C _08013424: .4byte 0x086ACD50 _08013428: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _08013464 @ =0x020314E0 mov r8, r0 ldr r0, [r0] ldr r6, _08013468 @ =0x0000132C adds r0, r0, r6 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 mov r2, r8 ldr r1, [r2] adds r1, r1, r6 ldr r2, [r1] ldrh r0, [r5] ldrh r3, [r4] adds r0, r0, r3 strh r0, [r2, #0x30] ldr r2, [r1] ldrh r0, [r4, #2] ldrh r1, [r5, #2] b _080134EA .align 2, 0 _08013464: .4byte 0x020314E0 _08013468: .4byte 0x0000132C _0801346C: mov r1, sp movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _080134CC _08013488: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _080134F0 @ =0x020314E0 ldr r0, [r0] ldr r6, _080134F4 @ =0x0000132C adds r0, r0, r6 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 movs r1, #0 mov r8, r5 adds r5, r4, #0 ldr r2, _080134F8 @ =0x086ACD50 _080134B2: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _0801346C adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _080134B2 _080134CC: ldr r0, _080134F0 @ =0x020314E0 ldr r1, [r0] ldr r0, _080134F4 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] mov r3, r8 ldrh r0, [r3] _080134DA: ldrh r5, [r5] adds r0, r0, r5 strh r0, [r2, #0x30] ldr r2, [r1] add r0, sp, #8 add r1, sp, #4 ldrh r0, [r0, #2] ldrh r1, [r1, #2] _080134EA: adds r0, r0, r1 strh r0, [r2, #0x32] b _080137CE .align 2, 0 _080134F0: .4byte 0x020314E0 _080134F4: .4byte 0x0000132C _080134F8: .4byte 0x086ACD50 _080134FC: mov r4, sp add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r2, _08013560 @ =0x02031520 movs r6, #0x22 ldrsh r1, [r2, r6] lsls r1, r1, #1 mov r0, sp ldrh r0, [r0] subs r0, r0, r1 mov r1, sp strh r0, [r1] movs r0, #0x20 ldrsh r1, [r2, r0] lsls r1, r1, #1 ldrh r0, [r4, #2] subs r0, r0, r1 strh r0, [r4, #2] ldr r6, _08013564 @ =0x020314E0 ldr r2, [r6] movs r1, #0x9e lsls r1, r1, #5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r5 cmp r0, #0 bne _08013588 ldr r3, _08013568 @ =0x0000132C adds r0, r2, r3 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 ldr r0, [r6] movs r6, #0x9e lsls r6, r6, #5 adds r0, r0, r6 movs r1, #1 strb r1, [r0] adds r5, r4, #0 b _0801359C .align 2, 0 _08013560: .4byte 0x02031520 _08013564: .4byte 0x020314E0 _08013568: .4byte 0x0000132C _0801356C: mov r1, sp movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _080135F0 _08013588: ldr r0, _08013604 @ =0x0000132C adds r2, r2, r0 ldr r0, [r2] ldrh r0, [r0, #0x30] add r1, sp, #8 strh r0, [r1] ldr r0, [r2] ldrh r0, [r0, #0x32] strh r0, [r1, #2] adds r5, r1, #0 _0801359C: mov r0, sp adds r1, r5, #0 movs r2, #0 bl sub_13B28 ldr r0, _08013608 @ =0x020314E0 ldr r2, [r0] ldr r1, _08013604 @ =0x0000132C adds r3, r2, r1 ldr r4, [r3] add r1, sp, #8 mov r6, r8 ldrh r0, [r6] ldrh r1, [r1] adds r0, r0, r1 strh r0, [r4, #0x30] ldr r3, [r3] add r1, sp, #4 ldrh r0, [r5, #2] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r3, #0x32] adds r2, #0x22 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #5 bne _080135F0 movs r1, #0 ldr r2, _0801360C @ =0x086ACD74 _080135D6: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _0801356C adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080135D6 _080135F0: ldr r3, _08013610 @ =0x02031520 movs r1, #0x22 ldrsh r0, [r3, r1] mov r1, sp lsls r0, r0, #1 ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] b _08013738 .align 2, 0 _08013604: .4byte 0x0000132C _08013608: .4byte 0x020314E0 _0801360C: .4byte 0x086ACD74 _08013610: .4byte 0x02031520 _08013614: mov r4, sp add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r2, _08013674 @ =0x02031520 movs r0, #0x24 ldrsh r1, [r2, r0] lsls r1, r1, #1 mov r0, sp ldrh r0, [r0] subs r0, r0, r1 mov r1, sp strh r0, [r1] movs r3, #0x20 ldrsh r1, [r2, r3] lsls r1, r1, #1 ldrh r0, [r4, #2] subs r0, r0, r1 strh r0, [r4, #2] ldr r6, _08013678 @ =0x020314E0 ldr r2, [r6] ldr r1, _0801367C @ =0x000013CC adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r5 cmp r0, #0 bne _080136A0 ldr r3, _08013680 @ =0x0000132C adds r0, r2, r3 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 ldr r0, [r6] ldr r6, _0801367C @ =0x000013CC adds r0, r0, r6 movs r1, #1 strb r1, [r0] adds r5, r4, #0 b _080136B4 .align 2, 0 _08013674: .4byte 0x02031520 _08013678: .4byte 0x020314E0 _0801367C: .4byte 0x000013CC _08013680: .4byte 0x0000132C _08013684: movs r1, #0 ldrsb r1, [r3, r1] mov r0, sp ldrh r0, [r0] subs r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _0801371E _080136A0: ldr r0, _08013748 @ =0x0000132C adds r2, r2, r0 ldr r0, [r2] ldrh r0, [r0, #0x30] add r1, sp, #8 strh r0, [r1] ldr r0, [r2] ldrh r0, [r0, #0x32] strh r0, [r1, #2] adds r5, r1, #0 _080136B4: mov r0, sp ldrh r1, [r0] movs r0, #0x5f subs r0, r0, r1 mov r1, sp strh r0, [r1] ldrh r0, [r5] rsbs r0, r0, #0 add r4, sp, #8 strh r0, [r4] mov r0, sp adds r1, r4, #0 movs r2, #1 bl sub_13B28 ldrh r1, [r4] rsbs r1, r1, #0 strh r1, [r4] ldr r0, _0801374C @ =0x020314E0 ldr r2, [r0] ldr r3, _08013748 @ =0x0000132C adds r5, r2, r3 ldr r3, [r5] mov r6, r8 ldrh r0, [r6] adds r1, r1, r0 strh r1, [r3, #0x30] ldr r3, [r5] add r1, sp, #4 ldrh r0, [r4, #2] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r3, #0x32] adds r2, #0x22 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #5 bne _0801371E movs r1, #0 ldr r2, _08013750 @ =0x086ACD74 _08013704: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _08013684 adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _08013704 _0801371E: mov r0, sp ldrh r0, [r0] movs r1, #0x5f subs r1, r1, r0 mov r0, sp strh r1, [r0] ldr r3, _08013754 @ =0x02031520 movs r2, #0x24 ldrsh r0, [r3, r2] lsls r0, r0, #1 adds r1, r1, r0 mov r0, sp strh r1, [r0] _08013738: mov r2, sp movs r6, #0x20 ldrsh r1, [r3, r6] lsls r1, r1, #1 ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _080137CE .align 2, 0 _08013748: .4byte 0x0000132C _0801374C: .4byte 0x020314E0 _08013750: .4byte 0x086ACD74 _08013754: .4byte 0x02031520 _08013758: ldr r0, _08013788 @ =0x020314E0 ldr r2, [r0] movs r1, #0x91 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08013794 ldr r6, _0801378C @ =0x00000127 adds r3, r2, r6 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #1 beq _080137B8 ldr r1, _08013790 @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] ldrh r0, [r1, #0x30] subs r0, #4 strh r0, [r1, #0x30] movs r0, #1 b _080137B6 .align 2, 0 _08013788: .4byte 0x020314E0 _0801378C: .4byte 0x00000127 _08013790: .4byte 0x0000132C _08013794: cmp r0, #0 bge _080137B8 ldr r6, _08013814 @ =0x00000127 adds r3, r2, r6 movs r1, #0 ldrsb r1, [r3, r1] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080137B8 ldr r1, _08013818 @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] ldrh r0, [r1, #0x30] adds r0, #4 strh r0, [r1, #0x30] movs r0, #0xff _080137B6: strb r0, [r3] _080137B8: ldr r0, _0801381C @ =0x020314E0 ldr r0, [r0] ldr r2, _08013820 @ =0x000005F3 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080137CE bl sub_1493C _080137CE: ldr r0, _0801381C @ =0x020314E0 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x22 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08013808 ldr r3, _08013818 @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] mov r0, sp ldrh r0, [r0] strh r0, [r1, #0x28] ldr r1, [r2] mov r0, sp ldrh r0, [r0, #2] strh r0, [r1, #0x2a] ldr r1, [r2] movs r6, #0x28 ldrsh r0, [r1, r6] lsls r0, r0, #7 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x2a ldrsh r0, [r1, r2] lsls r0, r0, #7 str r0, [r1, #0x38] _08013808: add sp, #0xc pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08013814: .4byte 0x00000127 _08013818: .4byte 0x0000132C _0801381C: .4byte 0x020314E0 _08013820: .4byte 0x000005F3 thumb_func_start sub_13824 sub_13824: @ 0x08013824 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 ldr r0, _0801391C @ =0x020314E0 mov r8, r0 ldr r3, [r0] ldr r1, _08013920 @ =0x0000132C mov sb, r1 add r3, sb ldr r1, [r3] ldrh r2, [r1, #0x28] ldrh r4, [r1, #0x2c] subs r2, r2, r4 lsls r2, r2, #0x10 ldrh r0, [r1, #0x2a] ldrh r1, [r1, #0x2e] subs r0, r0, r1 lsls r0, r0, #0x10 ldr r1, _08013924 @ =0x0000FFFF mov sl, r1 lsrs r6, r2, #0x10 orrs r6, r0 movs r5, #0 strh r4, [r7] ldr r0, [r3] ldrh r0, [r0, #0x2e] strh r0, [r7, #2] adds r0, r7, #0 adds r1, r6, #0 bl sub_14488 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 mov r3, r8 ldr r0, [r3] movs r1, #0x92 lsls r1, r1, #1 adds r0, r0, r1 strb r5, [r0] ldr r0, [r3] ldr r3, _08013928 @ =0x00000125 adds r0, r0, r3 strb r5, [r0] mov r0, r8 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x22 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801390A subs r1, #2 adds r3, r2, r1 ldrh r1, [r3] mov r0, sl ands r0, r1 cmp r0, #0 beq _0801390A mov r0, sb adds r1, r2, r0 ldr r0, [r1] ldrh r0, [r0, #0x28] strh r0, [r7] ldr r0, [r1] ldrh r0, [r0, #0x2a] strh r0, [r7, #2] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801392C @ =0xFFFF0000 ands r6, r1 orrs r6, r0 ldr r1, _08013930 @ =0x00000123 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 mov r3, sl ands r6, r3 orrs r6, r0 adds r0, r7, #0 adds r1, r6, #0 bl sub_14488 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 mov r0, r8 ldr r1, [r0] ldrb r2, [r7] mov r3, sb adds r0, r1, r3 ldr r0, [r0] ldrh r0, [r0, #0x28] subs r2, r2, r0 movs r0, #0x92 lsls r0, r0, #1 adds r1, r1, r0 strb r2, [r1] mov r3, r8 ldr r1, [r3] ldrb r2, [r7, #2] mov r3, sb adds r0, r1, r3 ldr r0, [r0] ldrh r0, [r0, #0x2a] subs r2, r2, r0 ldr r0, _08013928 @ =0x00000125 adds r1, r1, r0 strb r2, [r1] _0801390A: adds r0, r4, #0 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _0801391C: .4byte 0x020314E0 _08013920: .4byte 0x0000132C _08013924: .4byte 0x0000FFFF _08013928: .4byte 0x00000125 _0801392C: .4byte 0xFFFF0000 _08013930: .4byte 0x00000123 thumb_func_start sub_13934 sub_13934: @ 0x08013934 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r5, r1, #0 lsls r2, r2, #0x10 lsrs r4, r2, #0x10 movs r0, #0 strh r0, [r5] strh r0, [r5, #2] ldr r7, _0801399C @ =0x020314E0 ldr r1, [r7] movs r0, #0x91 lsls r0, r0, #1 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _080139D6 movs r3, #0x92 lsls r3, r3, #1 adds r0, r1, r3 movs r1, #0 ldrsb r1, [r0, r1] ldrh r0, [r6] subs r0, r0, r1 strh r0, [r6] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080139A4 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 cmp r0, #0 bge _080139D6 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x46 muls r0, r1, r0 ldr r1, _080139A0 @ =0x00004E20 bl __divsi3 strh r0, [r5] ldr r0, [r7] movs r2, #0x93 lsls r2, r2, #1 adds r1, r0, r2 b _080139D2 .align 2, 0 _0801399C: .4byte 0x020314E0 _080139A0: .4byte 0x00004E20 _080139A4: cmp r0, #0 bge _080139D6 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 cmp r0, #0 ble _080139D6 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x46 muls r0, r1, r0 ldr r1, _08013A30 @ =0x00004E20 bl __divsi3 strh r0, [r5] ldr r0, [r7] movs r3, #0x93 lsls r3, r3, #1 adds r1, r0, r3 _080139D2: movs r0, #1 strb r0, [r1] _080139D6: ldr r1, _08013A34 @ =0x020314E0 ldr r2, [r1] ldr r3, _08013A38 @ =0x00000123 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r1, #0 cmp r0, #0 bgt _080139EC b _08013AF4 _080139EC: ldr r1, _08013A3C @ =0x00000125 adds r0, r2, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r0, [r6, #2] subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _08013A40 @ =0x0000132C adds r0, r2, r3 ldr r0, [r0] movs r3, #0x12 ldrsh r1, [r0, r3] movs r0, #0xb6 lsls r0, r0, #1 cmp r1, r0 ble _08013A64 movs r1, #0x91 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08013A44 adds r0, r4, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #6 adds r0, r0, r1 lsls r0, r0, #1 b _08013A52 .align 2, 0 _08013A30: .4byte 0x00004E20 _08013A34: .4byte 0x020314E0 _08013A38: .4byte 0x00000123 _08013A3C: .4byte 0x00000125 _08013A40: .4byte 0x0000132C _08013A44: adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x64 muls r0, r1, r0 _08013A52: rsbs r0, r0, #0 ldr r1, _08013A60 @ =0x00004E20 bl __divsi3 strh r0, [r5, #2] b _08013AE4 .align 2, 0 _08013A60: .4byte 0x00004E20 _08013A64: movs r3, #0x91 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08013A8C adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x64 muls r0, r1, r0 rsbs r0, r0, #0 ldr r1, _08013A88 @ =0x00004E20 b _08013AA2 .align 2, 0 _08013A88: .4byte 0x00004E20 _08013A8C: adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 adds r2, r2, r0 lsls r0, r2, #4 subs r2, r2, r0 ldr r1, _08013ABC @ =0x00004E20 adds r0, r2, #0 _08013AA2: bl __divsi3 strh r0, [r5, #2] movs r0, #2 ldrsh r1, [r5, r0] cmp r1, #0x59 ble _08013AC8 ldr r0, _08013AC0 @ =0x020314E0 ldr r0, [r0] ldr r1, _08013AC4 @ =0x0000132C adds r0, r0, r1 b _08013AD4 .align 2, 0 _08013ABC: .4byte 0x00004E20 _08013AC0: .4byte 0x020314E0 _08013AC4: .4byte 0x0000132C _08013AC8: cmp r1, #0x45 ble _08013AE4 ldr r0, _08013B1C @ =0x020314E0 ldr r0, [r0] ldr r3, _08013B20 @ =0x0000132C adds r0, r0, r3 _08013AD4: ldr r1, [r0] movs r2, #0x30 ldrsh r0, [r1, r2] cmp r0, #0 bge _08013AE0 adds r0, #3 _08013AE0: asrs r0, r0, #2 strh r0, [r1, #0x30] _08013AE4: ldr r0, _08013B1C @ =0x020314E0 ldr r1, [r0] movs r3, #0x93 lsls r3, r3, #1 adds r2, r1, r3 movs r1, #1 strb r1, [r2] adds r3, r0, #0 _08013AF4: ldr r1, [r3] movs r2, #0x93 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08013B16 subs r2, #4 adds r0, r1, r2 movs r1, #0 strb r1, [r0] ldr r0, [r3] ldr r3, _08013B24 @ =0x00000123 adds r0, r0, r3 strb r1, [r0] _08013B16: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08013B1C: .4byte 0x020314E0 _08013B20: .4byte 0x0000132C _08013B24: .4byte 0x00000123 thumb_func_start sub_13B28 sub_13B28: @ 0x08013B28 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 mov r8, r0 str r1, [sp, #8] movs r3, #0 ldrsh r1, [r0, r3] lsls r1, r1, #0x17 movs r4, #2 ldrsh r0, [r0, r4] lsls r0, r0, #0x17 lsrs r5, r1, #0x10 orrs r5, r0 ldr r6, [sp, #8] ldrh r1, [r6, #2] lsls r1, r1, #0x10 ldrh r0, [r6] orrs r0, r1 str r0, [sp, #4] lsls r2, r2, #0x10 mov sb, r2 mov r0, sb asrs r0, r0, #0x10 mov sl, r0 b _08013C4E _08013B60: ldr r2, _08013C04 @ =0xFFFFF500 adds r1, r5, r2 lsls r1, r1, #0x10 asrs r0, r5, #0x10 ldr r3, _08013C08 @ =0xFFFFE800 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r7, r1, #0x10 orrs r7, r0 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r0, r1 asrs r0, r7, #0x10 adds r6, r0, #0 muls r6, r0, r6 adds r0, r6, #0 adds r1, r1, r0 ldr r2, _08013C0C @ =0xFFDC0000 adds r0, r1, r2 lsls r0, r0, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r0, r0, #0x11 mov r3, sb asrs r1, r3, #0x10 add r2, sp, #4 adds r3, r4, #0 bl sub_14B84 add r0, sp, #4 movs r4, #0 ldrsh r2, [r0, r4] movs r1, #0xe1 lsls r1, r1, #1 cmp r2, r1 bgt _08013BB2 ldr r1, _08013C10 @ =0xFFFFFE3E cmp r2, r1 bge _08013BB4 _08013BB2: strh r1, [r0] _08013BB4: ldrh r0, [r0] adds r0, r0, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08013C14 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 asrs r2, r5, #0x10 add r0, sp, #4 ldrh r1, [r0, #2] adds r1, r1, r2 lsls r1, r1, #0x10 ldr r0, _08013C18 @ =0x0000FFFF ands r5, r0 orrs r5, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08013BDC adds r0, #0x7f _08013BDC: asrs r1, r0, #7 mov r6, r8 strh r1, [r6] asrs r0, r5, #0x10 cmp r0, #0 bge _08013BEA adds r0, #0x7f _08013BEA: asrs r0, r0, #7 mov r2, r8 strh r0, [r2, #2] movs r3, #0 str r3, [sp, #0x10] cmp r1, #0x31 bgt _08013BFA b _08013CF0 _08013BFA: ldr r0, _08013C1C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1e] b _08013C22 .align 2, 0 _08013C04: .4byte 0xFFFFF500 _08013C08: .4byte 0xFFFFE800 _08013C0C: .4byte 0xFFDC0000 _08013C10: .4byte 0xFFFFFE3E _08013C14: .4byte 0xFFFF0000 _08013C18: .4byte 0x0000FFFF _08013C1C: .4byte 0x020314E0 _08013C20: lsrs r0, r4, #0x10 _08013C22: lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #3 bgt _08013C48 mov r4, r8 ldr r0, [r4] adds r1, #1 lsls r4, r1, #0x10 asrs r1, r4, #0x10 mov r2, sp mov r6, sb asrs r3, r6, #0x10 bl sub_14AF4 lsls r0, r0, #0x10 cmp r0, #0 beq _08013C20 movs r0, #1 str r0, [sp, #0x10] _08013C48: ldr r1, [sp, #0x10] cmp r1, #0 beq _08013CF0 _08013C4E: ldr r0, _08013CAC @ =0x020314E0 ldr r1, [r0] mov r2, sl lsls r0, r2, #1 add r0, sl lsls r0, r0, #2 adds r3, r1, r0 ldr r4, _08013CB0 @ =0x000013BC adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] ldr r6, _08013CB4 @ =0x000013BD adds r0, r3, r6 movs r2, #0 ldrsb r2, [r0, r2] adds r4, #8 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r1, r1, r2 muls r0, r1, r0 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 str r6, [sp, #0xc] cmp r0, #0 ble _08013CF0 ldr r1, _08013CB8 @ =0x000013BE adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bgt _08013CC4 ldr r2, _08013CBC @ =0x000013C1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #2 ldr r3, _08013CC0 @ =0x086ACD84 adds r0, r0, r3 movs r4, #0x80 lsls r4, r4, #7 adds r1, r4, #0 b _08013CDC .align 2, 0 _08013CAC: .4byte 0x020314E0 _08013CB0: .4byte 0x000013BC _08013CB4: .4byte 0x000013BD _08013CB8: .4byte 0x000013BE _08013CBC: .4byte 0x000013C1 _08013CC0: .4byte 0x086ACD84 _08013CC4: ldr r6, _08013CE8 @ =0x000013C1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 lsls r0, r0, #2 ldr r1, _08013CEC @ =0x086ACD86 adds r0, r0, r1 movs r2, #0xc0 lsls r2, r2, #8 adds r1, r2, #0 _08013CDC: ldrh r0, [r0] adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 b _08013B60 .align 2, 0 _08013CE8: .4byte 0x000013C1 _08013CEC: .4byte 0x086ACD86 _08013CF0: ldr r3, [sp, #0xc] lsls r0, r3, #0x10 cmp r0, #0 bgt _08013D08 ldr r0, _08013D04 @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #5 strb r1, [r0] b _08013D14 .align 2, 0 _08013D04: .4byte 0x020314E0 _08013D08: add r0, sp, #4 ldrh r1, [r0] ldr r4, [sp, #8] strh r1, [r4] ldrh r0, [r0, #2] strh r0, [r4, #2] _08013D14: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_13D24 sub_13D24: @ 0x08013D24 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x24 adds r4, r1, #0 str r2, [sp, #0xc] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #8] ldrh r0, [r4] rsbs r0, r0, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #2 ldrsh r1, [r4, r2] bl ArcTan2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #0x10] movs r1, #0 ldrsh r0, [r4, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #2 ldrsh r0, [r4, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 lsls r0, r1, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [sp, #0x18] ldr r0, [sp, #0x10] ldr r1, [sp, #8] cmp r0, r1 bls _08013D84 subs r4, r0, r1 ldr r1, _08013D80 @ =0x0000FFFF b _08013D8C .align 2, 0 _08013D80: .4byte 0x0000FFFF _08013D84: ldr r2, [sp, #8] ldr r0, [sp, #0x10] subs r4, r2, r0 movs r1, #1 _08013D8C: movs r0, #0x80 lsls r0, r0, #8 cmp r4, r0 ble _08013DA0 movs r0, #0x80 lsls r0, r0, #9 subs r4, r0, r4 lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08013DA0: lsls r1, r1, #0x10 asrs r0, r1, #2 ldr r2, [sp, #8] adds r0, r2, r0 str r0, [sp, #0x14] mov r8, r1 cmp r0, #0 bge _08013DB8 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 str r0, [sp, #0x14] _08013DB8: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x18] muls r0, r2, r0 ldr r5, _08013E40 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 str r0, [sp, #0x1c] adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, [sp, #0x18] muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 adds r7, r0, #0 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 ldr r1, _08013E44 @ =0x1F3F0000 cmp r0, r1 ble _08013E2A cmp r7, #0x46 ble _08013E02 movs r0, #0x77 bl m4aSongNumStart _08013E02: movs r0, #0x8c lsls r0, r0, #1 cmp r7, r0 ble _08013E2A ldr r0, _08013E48 @ =0x020314E0 ldr r0, [r0] ldr r2, _08013E4C @ =0x0000061C adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08013E2A ldr r0, _08013E50 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bhi _08013E2A movs r0, #6 bl sub_11B0 _08013E2A: ldr r0, _08013E48 @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r1, [r1] cmp r1, #0 beq _08013E54 lsls r0, r7, #2 adds r0, r0, r7 lsls r0, r0, #2 adds r0, r0, r7 b _08013E58 .align 2, 0 _08013E40: .4byte 0x00004E20 _08013E44: .4byte 0x1F3F0000 _08013E48: .4byte 0x020314E0 _08013E4C: .4byte 0x0000061C _08013E50: .4byte gMain _08013E54: movs r0, #0x1a muls r0, r7, r0 _08013E58: movs r1, #0x64 bl __divsi3 adds r7, r0, #0 ldr r1, [sp, #0x1c] lsls r0, r1, #3 movs r1, #0xa bl __divsi3 adds r6, r0, #0 ldr r2, _08014004 @ =0x020314E0 ldr r0, [r2] ldr r1, _08014008 @ =0x0000132C adds r0, r0, r1 ldr r4, [r0] movs r2, #6 ldrsh r0, [r4, r2] ldr r5, _0801400C @ =0x00000EB8 muls r0, r5, r0 movs r1, #0xaf lsls r1, r1, #0xa bl __divsi3 mov sb, r0 mov r1, r8 asrs r0, r1, #0x10 rsbs r0, r0, #0 mov r8, r0 lsls r0, r0, #1 add r0, r8 lsls r0, r0, #3 add r0, r8 lsls r0, r0, #0xa muls r0, r6, r0 adds r1, r5, #0 bl __divsi3 ldrh r1, [r4, #4] adds r1, r1, r0 strh r1, [r4, #6] ldr r0, [sp, #8] bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 str r0, [sp] ldr r0, [sp, #8] bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r2, sp str r2, [sp, #0x20] str r0, [sp, #4] ldr r1, [sp, #0x14] lsls r0, r1, #0x10 lsrs r5, r0, #0x10 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x1c] muls r0, r2, r0 ldr r1, [sp] adds r0, r0, r1 str r0, [sp] adds r0, r5, #0 bl sub_C24 ldr r2, [sp, #0x1c] rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r4, r1, #0 muls r4, r0, r4 ldr r0, [sp, #4] adds r4, r4, r0 str r4, [sp, #4] ldr r0, [sp] ldr r7, _08014010 @ =0x00004E20 adds r1, r7, #0 bl __divsi3 str r0, [sp] adds r0, r4, #0 adds r1, r7, #0 bl __divsi3 str r0, [sp, #4] movs r4, #1 mov r0, sb cmp r0, #0 bge _08013F20 subs r4, #2 rsbs r0, r0, #0 mov sb, r0 _08013F20: mov r1, r8 muls r1, r4, r1 adds r4, r1, #0 adds r0, r5, #0 bl sub_C74 mov r1, sb muls r1, r4, r1 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08014014 @ =0xFFFF0000 mov r2, sl ands r2, r1 orrs r2, r0 mov sl, r2 adds r0, r5, #0 bl sub_C24 rsbs r1, r4, #0 mov r2, sb muls r2, r1, r2 adds r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08014018 @ =0x0000FFFF mov r2, sl ands r2, r1 orrs r2, r0 mov sl, r2 ldr r0, [sp] adds r1, r0, #0 muls r1, r0, r1 ldr r0, [sp, #4] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r6, r1, r0 lsls r0, r6, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r6, r0, #0x11 mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 ldr r1, [sp] adds r0, r0, r1 str r0, [sp] mov r2, sl asrs r0, r2, #0x10 ldr r1, [sp, #4] adds r0, r0, r1 str r0, [sp, #4] mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] ldr r2, [sp, #0x20] ldrh r1, [r2, #4] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0801401C @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bne _08014020 ldr r0, _08014004 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08014020 ldr r2, _08014008 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r1, #0x12 ldrsh r0, [r0, r1] cmp r0, #0xd1 bgt _08014020 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x18] muls r0, r2, r0 adds r1, r7, #0 bl __divsi3 str r0, [sp] adds r0, r5, #0 bl sub_C24 ldr r2, [sp, #0x18] rsbs r1, r2, #0 b _0801403E .align 2, 0 _08014004: .4byte 0x020314E0 _08014008: .4byte 0x0000132C _0801400C: .4byte 0x00000EB8 _08014010: .4byte 0x00004E20 _08014014: .4byte 0xFFFF0000 _08014018: .4byte 0x0000FFFF _0801401C: .4byte gMain _08014020: adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r6, r0 ldr r4, _08014070 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 str r0, [sp] adds r0, r5, #0 bl sub_C24 rsbs r1, r6, #0 _0801403E: lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 ldr r1, _08014070 @ =0x00004E20 bl __divsi3 str r0, [sp, #4] ldr r0, [sp, #8] mov r1, sp ldr r2, [sp, #0x10] bl sub_14074 ldr r0, [sp] ldr r1, [sp, #0xc] strh r0, [r1] ldr r0, [sp, #4] strh r0, [r1, #2] add sp, #0x24 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 _08014070: .4byte 0x00004E20 thumb_func_start sub_14074 sub_14074: @ 0x08014074 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov r8, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r7, r5, #0 lsls r2, r2, #0x10 lsrs r4, r2, #0x10 mov ip, r4 ldr r0, _080140CC @ =0x020314E0 mov sl, r0 ldr r1, [r0] ldr r2, _080140D0 @ =0x0000132C adds r0, r1, r2 ldr r3, [r0] movs r2, #0x30 ldrsh r0, [r3, r2] adds r2, r0, #0 muls r2, r0, r2 mov sb, r2 movs r2, #0x32 ldrsh r0, [r3, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 add sb, r0 adds r1, #0x23 ldrb r0, [r1] cmp r0, #2 beq _080140B8 b _08014230 _080140B8: movs r1, #0x28 ldrsh r0, [r3, r1] cmp r0, #0xe0 ble _080140DC ldr r2, _080140D4 @ =0xFFFFD5E4 adds r0, r4, r2 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r7, _080140D8 @ =0x00006A1C b _080140E8 .align 2, 0 _080140CC: .4byte 0x020314E0 _080140D0: .4byte 0x0000132C _080140D4: .4byte 0xFFFFD5E4 _080140D8: .4byte 0x00006A1C _080140DC: ldr r0, _080140FC @ =0x000055E4 mov r1, ip subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r7, _08014100 @ =0x000015E4 _080140E8: movs r0, #0x90 lsls r0, r0, #5 cmp r2, r0 bhi _08014108 ldr r0, _08014104 @ =0x00003FFF cmp sb, r0 bgt _08014108 movs r6, #0 b _0801439C .align 2, 0 _080140FC: .4byte 0x000055E4 _08014100: .4byte 0x000015E4 _08014104: .4byte 0x00003FFF _08014108: mov r2, r8 ldr r0, [r2] movs r1, #5 bl __divsi3 mov r1, r8 str r0, [r1] ldr r0, [r1, #4] movs r1, #5 bl __divsi3 mov r2, r8 str r0, [r2, #4] ldr r0, _08014180 @ =0x020314E0 ldr r4, [r0] ldr r1, _08014184 @ =0x0000132C adds r0, r4, r1 ldr r5, [r0] movs r2, #6 ldrsh r0, [r5, r2] lsls r0, r0, #2 movs r1, #0xa bl __divsi3 strh r0, [r5, #6] adds r4, #0x31 ldrb r0, [r4] cmp r0, #0 beq _08014190 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xe6 muls r0, r1, r0 ldr r4, _08014188 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801418C @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 lsls r0, r0, #1 b _080141C8 .align 2, 0 _08014180: .4byte 0x020314E0 _08014184: .4byte 0x0000132C _08014188: .4byte 0x00004E20 _0801418C: .4byte 0xFFFF0000 _08014190: adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, _08014200 @ =0x0000011D muls r0, r1, r0 ldr r4, _08014204 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08014208 @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #3 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 _080141C8: rsbs r0, r0, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _0801420C @ =0x0000FFFF ands r6, r1 orrs r6, r0 ldr r2, _08014210 @ =0x020314E0 ldr r0, [r2] ldr r1, _08014214 @ =0x00000716 adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r1, [r2] ldr r2, _08014218 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x77 bgt _08014220 ldr r0, _0801421C @ =0x00000717 adds r1, r1, r0 movs r0, #0 strb r0, [r1] b _0801439C .align 2, 0 _08014200: .4byte 0x0000011D _08014204: .4byte 0x00004E20 _08014208: .4byte 0xFFFF0000 _0801420C: .4byte 0x0000FFFF _08014210: .4byte 0x020314E0 _08014214: .4byte 0x00000716 _08014218: .4byte 0x0000132C _0801421C: .4byte 0x00000717 _08014220: ldr r2, _0801422C @ =0x00000717 adds r1, r1, r2 movs r0, #1 strb r0, [r1] b _0801439C .align 2, 0 _0801422C: .4byte 0x00000717 _08014230: cmp r0, #1 beq _08014236 b _08014340 _08014236: mov r1, r8 ldr r0, [r1] movs r1, #5 bl __divsi3 mov r2, r8 str r0, [r2] ldr r0, [r2, #4] movs r1, #5 bl __divsi3 mov r1, r8 str r0, [r1, #4] ldr r2, _08014298 @ =0x00005FFF adds r0, r5, r2 lsls r0, r0, #0x10 ldr r1, _0801429C @ =0x3FFE0000 cmp r0, r1 bhi _080142A8 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #2 ldr r4, _080142A0 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080142A4 @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 rsbs r0, r0, #0 b _0801438E .align 2, 0 _08014298: .4byte 0x00005FFF _0801429C: .4byte 0x3FFE0000 _080142A0: .4byte 0x00004E20 _080142A4: .4byte 0xFFFF0000 _080142A8: ldr r1, _080142F0 @ =0xFFFFF000 adds r0, r5, r1 lsls r0, r0, #0x10 movs r1, #0xc0 lsls r1, r1, #0x17 cmp r0, r1 bhi _080142FC adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #4 ldr r4, _080142F4 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080142F8 @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 rsbs r0, r0, #0 b _0801438E .align 2, 0 _080142F0: .4byte 0xFFFFF000 _080142F4: .4byte 0x00004E20 _080142F8: .4byte 0xFFFF0000 _080142FC: adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #3 ldr r4, _08014338 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801433C @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 rsbs r0, r0, #0 b _0801438E .align 2, 0 _08014338: .4byte 0x00004E20 _0801433C: .4byte 0xFFFF0000 _08014340: adds r0, r7, #0 bl sub_C74 ldr r5, _080143D4 @ =0x086ACDF4 mov r2, sl ldr r1, [r2] adds r1, #0x23 ldrb r1, [r1] lsls r1, r1, #1 adds r1, r1, r5 movs r2, #0 ldrsh r1, [r1, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 ldr r4, _080143D8 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080143DC @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r7, #0 bl sub_C24 mov r2, sl ldr r1, [r2] adds r1, #0x23 ldrb r1, [r1] lsls r1, r1, #1 adds r1, r1, r5 movs r2, #0 ldrsh r1, [r1, r2] rsbs r1, r1, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 _0801438E: adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080143E0 @ =0x0000FFFF ands r6, r1 orrs r6, r0 _0801439C: lsls r0, r6, #0x10 asrs r0, r0, #0x10 mov r2, r8 ldr r1, [r2] adds r4, r1, r0 str r4, [r2] asrs r1, r6, #0x10 ldr r0, [r2, #4] adds r0, r0, r1 str r0, [r2, #4] ldr r1, _080143E4 @ =0x020314E0 ldr r0, [r1] ldr r2, _080143E8 @ =0x000005A4 adds r3, r0, r2 ldrb r2, [r3] adds r5, r1, #0 cmp r2, #0 beq _0801446C lsls r0, r4, #0x10 lsrs r1, r0, #0x10 movs r4, #1 cmp r2, #1 bne _080143EC movs r0, #0 strb r0, [r3] movs r0, #0x80 mov sb, r0 b _080143F2 .align 2, 0 _080143D4: .4byte 0x086ACDF4 _080143D8: .4byte 0x00004E20 _080143DC: .4byte 0xFFFF0000 _080143E0: .4byte 0x0000FFFF _080143E4: .4byte 0x020314E0 _080143E8: .4byte 0x000005A4 _080143EC: movs r2, #0xa0 lsls r2, r2, #2 mov sb, r2 _080143F2: lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08014402 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 ldr r4, _0801447C @ =0x0000FFFF _08014402: lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xff bgt _08014412 lsls r0, r4, #0x10 asrs r0, r0, #8 mov r1, r8 str r0, [r1] _08014412: ldr r0, [r5] ldr r2, _08014480 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] movs r0, #0 strh r0, [r1, #6] mov r1, r8 movs r2, #0 ldrsh r0, [r1, r2] ldr r1, [r1, #4] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sb muls r1, r0, r1 adds r0, r1, #0 ldr r5, _08014484 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 mov r2, r8 str r0, [r2] adds r0, r4, #0 bl sub_C24 mov r2, sb rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 mov r1, r8 str r0, [r1, #4] _0801446C: 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 _0801447C: .4byte 0x0000FFFF _08014480: .4byte 0x0000132C _08014484: .4byte 0x00004E20 thumb_func_start sub_14488 sub_14488: @ 0x08014488 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 adds r7, r0, #0 adds r4, r1, #0 ldr r1, _08014510 @ =0xFFFF0000 mov r0, r8 ands r0, r1 mov r8, r0 movs r0, #1 mov r2, r8 orrs r2, r0 mov r8, r2 ldr r2, _08014514 @ =0x0000FFFF mov r3, r8 ands r3, r2 movs r0, #0x80 lsls r0, r0, #9 orrs r3, r0 mov r8, r3 lsls r0, r4, #0x10 cmp r0, #0 bge _080144CA orrs r3, r2 mov r8, r3 rsbs r0, r4, #0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ands r4, r1 orrs r4, r0 _080144CA: asrs r0, r4, #0x10 cmp r0, #0 bge _080144DE mov r3, r8 orrs r3, r1 mov r8, r3 rsbs r0, r0, #0 lsls r0, r0, #0x10 ands r4, r2 orrs r4, r0 _080144DE: lsls r0, r4, #0x10 asrs r0, r0, #0x10 asrs r1, r4, #0x10 movs r2, #1 str r2, [sp, #8] cmp r0, r1 ble _080144F0 movs r3, #0 str r3, [sp, #8] _080144F0: ldr r2, _08014518 @ =0x020314E0 ldr r0, [r2] adds r0, #0x22 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x23 strb r1, [r0] ldr r1, _0801451C @ =0x086ACE0C ldr r0, _08014520 @ =gMain ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [sp, #0xc] b _080145CC .align 2, 0 _08014510: .4byte 0xFFFF0000 _08014514: .4byte 0x0000FFFF _08014518: .4byte 0x020314E0 _0801451C: .4byte 0x086ACE0C _08014520: .4byte gMain _08014524: ldrh r0, [r5] strh r0, [r7] ldrh r0, [r5, #2] strh r0, [r7, #2] mov r1, sp mov r2, sb ldrh r0, [r2] strh r0, [r1] b _0801456E _08014536: ldr r5, _080145A0 @ =0x020314E0 ldr r0, [r5] adds r0, #0x22 strb r1, [r0] adds r0, r7, #0 mov r1, sp bl sub_1467C lsls r0, r0, #0x10 cmp r0, #0 beq _0801454E b _08014668 _0801454E: ldr r0, [r5] ldr r3, _080145A4 @ =0x000005F2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801456E adds r0, r7, #0 mov r1, sp bl sub_14740 lsls r0, r0, #0x10 cmp r0, #0 beq _0801456E b _08014668 _0801456E: lsls r0, r4, #0x10 cmp r0, #0 bgt _0801457A asrs r0, r4, #0x10 cmp r0, #0 ble _08014668 _0801457A: ldr r0, [sp, #8] cmp r0, #0 bne _080145AC ldrh r0, [r7] add r0, r8 strh r0, [r7] subs r1, r4, #1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 ldr r0, _080145A8 @ =0xFFFF0000 ands r4, r0 orrs r4, r1 asrs r0, r4, #0x10 cmp r0, #0 ble _080145CC movs r1, #1 str r1, [sp, #8] b _080145CC .align 2, 0 _080145A0: .4byte 0x020314E0 _080145A4: .4byte 0x000005F2 _080145A8: .4byte 0xFFFF0000 _080145AC: mov r2, r8 asrs r0, r2, #0x10 ldrh r3, [r7, #2] adds r0, r0, r3 strh r0, [r7, #2] asrs r1, r4, #0x10 subs r1, #1 lsls r1, r1, #0x10 ldr r0, _08014658 @ =0x0000FFFF ands r4, r0 orrs r4, r1 lsls r0, r4, #0x10 cmp r0, #0 ble _080145CC movs r0, #0 str r0, [sp, #8] _080145CC: adds r0, r7, #0 mov r1, sp ldr r2, [sp, #0xc] bl _call_via_r2 lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 beq _08014536 ldr r0, _0801465C @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x22 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08014668 adds r0, r1, #0 adds r0, #0x23 ldrb r0, [r0] cmp r0, #3 bne _0801456E movs r6, #0 add r5, sp, #4 movs r3, #2 add r3, sp mov sb, r3 ldr r0, _08014658 @ =0x0000FFFF mov sl, r0 _08014608: ldr r0, _08014660 @ =0x086ACE60 lsls r3, r6, #2 adds r3, r3, r0 ldrh r1, [r3] ldrh r2, [r7] adds r1, r1, r2 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 ldr r2, _08014664 @ =0xFFFF0000 ldr r0, [sp, #4] ands r0, r2 orrs r0, r1 str r0, [sp, #4] ldrh r1, [r3, #2] ldrh r3, [r7, #2] adds r1, r1, r3 lsls r1, r1, #0x10 mov r2, sl ands r0, r2 orrs r0, r1 str r0, [sp, #4] adds r0, r5, #0 mov r1, sb ldr r3, [sp, #0xc] bl _call_via_r3 ldr r0, _0801465C @ =0x020314E0 ldr r0, [r0] ldrh r1, [r0, #0x22] mov r0, sl ands r0, r1 cmp r0, #1 bne _0801464C b _08014524 _0801464C: adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 cmp r6, #3 bls _08014608 b _0801456E .align 2, 0 _08014658: .4byte 0x0000FFFF _0801465C: .4byte 0x020314E0 _08014660: .4byte 0x086ACE60 _08014664: .4byte 0xFFFF0000 _08014668: mov r0, sp ldrh r0, [r0] add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_1467C sub_1467C: @ 0x0801467C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov r8, r1 movs r7, #0 ldr r4, _08014734 @ =0x02031520 movs r1, #0x22 ldrsh r2, [r4, r1] lsls r2, r2, #1 ldrh r3, [r0] subs r2, r3, r2 lsls r2, r2, #0x10 mov ip, r2 movs r2, #0x24 ldrsh r1, [r4, r2] lsls r1, r1, #1 subs r3, r3, r1 lsls r3, r3, #0x10 movs r2, #0x20 ldrsh r1, [r4, r2] lsls r1, r1, #1 ldrh r0, [r0, #2] subs r0, r0, r1 lsls r0, r0, #0x10 mov r1, ip lsrs r6, r1, #0x10 orrs r6, r0 lsrs r1, r0, #0x10 lsrs r5, r3, #0x10 orrs r5, r0 cmp r1, #0x5f bhi _08014724 lsls r0, r6, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x5f bhi _080146E8 ldr r4, _08014738 @ =0x020314E0 ldr r0, [r4] ldrb r1, [r0, #0x1e] adds r1, #1 adds r0, r6, #0 mov r2, r8 movs r3, #0 bl sub_14AF4 lsls r0, r0, #0x10 cmp r0, #0 beq _080146E8 ldr r0, [r4] adds r0, #0x22 movs r1, #3 strb r1, [r0] movs r7, #1 _080146E8: cmp r7, #0 bne _08014724 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x5f bhi _08014724 movs r0, #0x5f subs r0, r0, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801473C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 ldr r4, _08014738 @ =0x020314E0 ldr r0, [r4] ldrb r1, [r0, #0x1e] adds r1, #1 adds r0, r5, #0 mov r2, r8 movs r3, #1 bl sub_14AF4 lsls r0, r0, #0x10 cmp r0, #0 beq _08014724 ldr r0, [r4] adds r0, #0x22 movs r1, #4 strb r1, [r0] movs r7, #1 _08014724: adds r0, r7, #0 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _08014734: .4byte 0x02031520 _08014738: .4byte 0x020314E0 _0801473C: .4byte 0xFFFF0000 thumb_func_start sub_14740 sub_14740: @ 0x08014740 push {r4, r5, r6, r7, lr} adds r2, r0, #0 adds r7, r1, #0 movs r6, #0 ldr r0, _080147E8 @ =0x020314E0 ldr r4, [r0] ldr r5, _080147EC @ =0x000005A4 adds r1, r4, r5 ldrb r1, [r1] adds r5, r0, #0 cmp r1, #2 bne _0801475A b _08014924 _0801475A: movs r0, #0 ldrsh r1, [r2, r0] lsrs r0, r1, #0x1f adds r1, r1, r0 asrs r1, r1, #1 adds r0, r4, #0 adds r0, #0xc4 ldrh r0, [r0] subs r1, r1, r0 lsls r1, r1, #0x10 movs r3, #2 ldrsh r0, [r2, r3] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 adds r2, r4, #0 adds r2, #0xc6 ldrh r2, [r2] subs r0, r0, r2 lsls r0, r0, #0x10 lsrs r3, r1, #0x10 orrs r3, r0 adds r1, r0, #0 lsrs r0, r1, #0x10 cmp r0, #0x2f bls _08014790 b _08014924 _08014790: lsls r2, r3, #0x10 lsrs r0, r2, #0x10 cmp r0, #0x2f bls _0801479A b _08014924 _0801479A: asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r2, #0x10 adds r0, r0, r1 ldr r1, _080147F0 @ =0x0839A28C adds r0, r0, r1 ldrb r2, [r0] movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _080147B6 b _08014924 _080147B6: adds r1, r4, #0 adds r1, #0x22 movs r0, #2 strb r0, [r1] ldr r0, [r5] adds r0, #0x23 movs r1, #3 strb r1, [r0] movs r0, #0x7f ands r0, r2 lsls r0, r0, #9 strh r0, [r7] ldr r2, [r5] ldr r0, _080147F4 @ =0x000005A6 adds r1, r2, r0 movs r0, #0x14 strh r0, [r1] ldr r1, _080147F8 @ =0x000005A9 adds r2, r2, r1 ldrb r0, [r2] cmp r0, #0 beq _080147FC movs r0, #0x18 b _080147FE .align 2, 0 _080147E8: .4byte 0x020314E0 _080147EC: .4byte 0x000005A4 _080147F0: .4byte 0x0839A28C _080147F4: .4byte 0x000005A6 _080147F8: .4byte 0x000005A9 _080147FC: movs r0, #0x14 _080147FE: strb r0, [r2] ldr r1, [r5] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xc8 bne _080148A4 ldr r3, _0801484C @ =0x000005AA adds r0, r1, r3 ldrh r3, [r0] cmp r3, #0 bne _0801487E adds r2, #0xd adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r5] adds r0, r1, r2 ldrb r2, [r0] cmp r2, #3 bne _08014858 adds r0, r2, #0 adds r0, r1, r0 ldr r1, _08014850 @ =0x0000071C adds r0, r0, r1 strb r2, [r0] ldr r0, [r5] ldr r2, _08014854 @ =0x000005A4 adds r0, r0, r2 movs r1, #2 strb r1, [r0] ldr r1, [r5] adds r2, #2 adds r0, r1, r2 strh r3, [r0] b _08014870 .align 2, 0 _0801484C: .4byte 0x000005AA _08014850: .4byte 0x0000071C _08014854: .4byte 0x000005A4 _08014858: ldrb r0, [r0] adds r0, r1, r0 ldr r3, _08014890 @ =0x0000071C adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r1, _08014894 @ =0x000005A4 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r5] _08014870: ldr r0, _08014898 @ =0x00002710 str r0, [r1, #0x3c] ldr r0, [r5] ldr r2, _0801489C @ =0x000005AA adds r0, r0, r2 movs r1, #4 strh r1, [r0] _0801487E: movs r6, #1 ldr r0, _080148A0 @ =0x00000145 bl m4aSongNumStart movs r0, #7 bl sub_11B0 b _08014924 .align 2, 0 _08014890: .4byte 0x0000071C _08014894: .4byte 0x000005A4 _08014898: .4byte 0x00002710 _0801489C: .4byte 0x000005AA _080148A0: .4byte 0x00000145 _080148A4: ldr r3, _080148E0 @ =0x000005AA adds r0, r1, r3 ldrh r3, [r0] cmp r3, #0 bne _08014916 ldr r2, _080148E4 @ =0x000005A5 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r5] adds r0, r1, r2 ldrb r2, [r0] cmp r2, #3 bne _080148F0 adds r0, r2, #0 adds r0, r1, r0 ldr r1, _080148E8 @ =0x0000071C adds r0, r0, r1 strb r2, [r0] ldr r0, [r5] ldr r2, _080148EC @ =0x000005A4 adds r0, r0, r2 movs r1, #2 strb r1, [r0] ldr r1, [r5] adds r2, #2 adds r0, r1, r2 strh r3, [r0] b _08014908 .align 2, 0 _080148E0: .4byte 0x000005AA _080148E4: .4byte 0x000005A5 _080148E8: .4byte 0x0000071C _080148EC: .4byte 0x000005A4 _080148F0: ldrb r0, [r0] adds r0, r1, r0 ldr r3, _0801492C @ =0x0000071C adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r1, _08014930 @ =0x000005A4 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r5] _08014908: ldr r0, _08014934 @ =0x00002710 str r0, [r1, #0x3c] ldr r0, [r5] ldr r2, _08014938 @ =0x000005AA adds r0, r0, r2 movs r1, #4 strh r1, [r0] _08014916: movs r6, #1 movs r0, #0x74 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _08014924: adds r0, r6, #0 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _0801492C: .4byte 0x0000071C _08014930: .4byte 0x000005A4 _08014934: .4byte 0x00002710 _08014938: .4byte 0x000005AA thumb_func_start sub_1493C sub_1493C: @ 0x0801493C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r0, _08014A28 @ =0x020314E0 mov sb, r0 ldr r4, [r0] ldr r1, _08014A2C @ =0x0000132C mov r8, r1 adds r0, r4, r1 ldr r2, [r0] ldrh r1, [r2, #0x28] subs r1, #0xee lsls r1, r1, #0x10 ldr r5, _08014A30 @ =0xFFFFFDD2 adds r0, r5, #0 ldrh r2, [r2, #0x2a] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r3, r1, #0x10 orrs r3, r0 lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r0, r1 asrs r2, r3, #0x10 adds r0, r2, #0 muls r0, r2, r0 adds r7, r1, r0 ldr r0, _08014A34 @ =0x000006E3 cmp r7, r0 bgt _08014A04 ldrb r1, [r4, #0x1e] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08014A04 rsbs r0, r3, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r2, #0 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 movs r5, #0x1e adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 ldr r6, _08014A38 @ =0x00004E20 adds r1, r6, #0 bl __divsi3 str r0, [sp] adds r0, r4, #0 bl sub_C24 rsbs r5, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 adds r1, r6, #0 bl __divsi3 str r0, [sp, #4] mov r0, sb ldr r4, [r0] add r4, r8 ldr r5, [r4] movs r1, #0x64 mov r8, r1 ldr r2, [sp] mov r0, r8 muls r0, r2, r0 movs r2, #0x30 ldrsh r1, [r5, r2] movs r6, #0x62 muls r1, r6, r1 adds r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0x30] ldr r4, [r4] ldr r5, [sp, #4] mov r0, r8 muls r0, r5, r0 movs r2, #0x32 ldrsh r1, [r4, r2] muls r1, r6, r1 adds r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r4, #0x32] _08014A04: ldr r0, _08014A28 @ =0x020314E0 ldr r1, [r0] ldr r5, _08014A3C @ =0x000005F4 adds r3, r1, r5 ldrh r0, [r3] adds r2, r0, #0 cmp r2, #0x13 bhi _08014A5C cmp r7, #0x27 bgt _08014A40 adds r0, #1 strh r0, [r3] ldr r2, _08014A2C @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r0, #0x80 lsls r0, r0, #1 b _08014ADC .align 2, 0 _08014A28: .4byte 0x020314E0 _08014A2C: .4byte 0x0000132C _08014A30: .4byte 0xFFFFFDD2 _08014A34: .4byte 0x000006E3 _08014A38: .4byte 0x00004E20 _08014A3C: .4byte 0x000005F4 _08014A40: ldr r5, _08014A58 @ =0x0000132C adds r0, r1, r5 ldr r1, [r0] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0xe] cmp r7, #0x64 ble _08014ADE movs r0, #0 strh r0, [r3] b _08014ADE .align 2, 0 _08014A58: .4byte 0x0000132C _08014A5C: cmp r2, #0x1d bhi _08014AA8 adds r0, #1 movs r6, #0 strh r0, [r3] ldr r0, _08014AA4 @ =0x0000132C adds r4, r1, r0 ldr r5, [r4] ldrh r1, [r3] movs r0, #0x1e subs r0, r0, r1 lsls r0, r0, #7 movs r1, #0xa bl __divsi3 adds r0, #0x80 strh r0, [r5, #0xe] ldr r1, [r4] movs r0, #0x77 strh r0, [r1, #0x10] ldr r1, [r4] adds r0, #0xa0 strh r0, [r1, #0x12] ldr r0, [r4] strh r6, [r0, #6] ldr r1, [r4] movs r2, #0x10 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] movs r5, #0x12 ldrsh r0, [r1, r5] lsls r0, r0, #8 str r0, [r1, #0x38] b _08014ADE .align 2, 0 _08014AA4: .4byte 0x0000132C _08014AA8: movs r0, #0 strh r0, [r3] adds r1, #0x25 movs r0, #4 strb r0, [r1] ldr r0, _08014AC0 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _08014AC4 bl sub_1A98C b _08014AC8 .align 2, 0 _08014AC0: .4byte gMain _08014AC4: bl sub_32914 _08014AC8: ldr r2, _08014AEC @ =0x020314E0 ldr r0, [r2] adds r0, #0x22 movs r1, #7 strb r1, [r0] ldr r0, [r2] ldr r1, _08014AF0 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] movs r0, #0x80 _08014ADC: strh r0, [r1, #0xe] _08014ADE: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08014AEC: .4byte 0x020314E0 _08014AF0: .4byte 0x0000132C thumb_func_start sub_14AF4 sub_14AF4: @ 0x08014AF4 push {r4, r5, r6, r7, lr} adds r7, r2, #0 movs r2, #0 mov ip, r2 asrs r2, r0, #0x10 lsls r4, r2, #1 adds r4, r4, r2 lsls r4, r4, #5 adds r4, r4, r0 lsls r4, r4, #0x10 ldr r2, _08014B70 @ =0x020314E0 lsls r3, r3, #0x10 asrs r6, r3, #0x10 lsls r0, r6, #1 adds r0, r0, r6 lsls r0, r0, #2 ldr r3, _08014B74 @ =0x000013BC adds r0, r0, r3 ldr r3, [r2] adds r3, r3, r0 ldr r5, _08014B78 @ =0x086ACDB8 lsls r1, r1, #0x10 asrs r1, r1, #0x10 movs r2, #2 ldrsb r2, [r3, r2] lsls r0, r2, #2 adds r0, r0, r2 adds r1, r1, r0 adds r1, r1, r5 ldrb r0, [r1] strb r0, [r3, #5] ldr r0, _08014B7C @ =0x02031520 movs r1, #5 ldrsb r1, [r3, r1] ldr r2, [r0, #0x68] lsrs r4, r4, #0xf lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #0xb adds r0, r0, r2 adds r4, r4, r0 ldrh r4, [r4] movs r0, #0xf ands r0, r4 cmp r0, #0 beq _08014B66 ldr r1, _08014B80 @ =0x0000FFF0 ands r1, r4 strh r1, [r7] cmp r6, #1 bne _08014B62 movs r0, #0x80 lsls r0, r0, #8 subs r0, r0, r1 strh r0, [r7] _08014B62: movs r0, #1 mov ip, r0 _08014B66: mov r0, ip pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _08014B70: .4byte 0x020314E0 _08014B74: .4byte 0x000013BC _08014B78: .4byte 0x086ACDB8 _08014B7C: .4byte 0x02031520 _08014B80: .4byte 0x0000FFF0 thumb_func_start sub_14B84 sub_14B84: @ 0x08014B84 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 mov r8, r2 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 ldr r0, _08014C20 @ =0x020314E0 ldr r2, [r0] lsls r3, r1, #0x10 asrs r0, r3, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 adds r1, r2, r1 ldr r6, _08014C24 @ =0x000013C1 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 ldr r0, _08014C28 @ =0x000013C4 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08014BC8 b _08014D3E _08014BC8: adds r0, r2, #0 adds r0, #0x5c movs r1, #0 ldrsh r0, [r0, r1] mov sb, r3 cmp r0, #0 beq _08014BD8 b _08014CF2 _08014BD8: lsls r0, r6, #0x10 asrs r2, r0, #0x10 subs r1, r2, #2 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r1 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r5, r5, r0 ldr r0, _08014C2C @ =0x00000B21 cmp r5, r0 bgt _08014C34 ldr r2, _08014C30 @ =0xFFFFF5D8 adds r4, r5, r2 lsls r0, r4, #0xb movs r1, #0x96 lsls r1, r1, #2 bl __divsi3 movs r3, #0x90 lsls r3, r3, #7 adds r1, r3, #0 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 lsls r4, r4, #7 movs r1, #0x96 lsls r1, r1, #1 adds r0, r4, #0 bl __divsi3 adds r7, r0, #0 adds r7, #0x78 b _08014C68 .align 2, 0 _08014C20: .4byte 0x020314E0 _08014C24: .4byte 0x000013C1 _08014C28: .4byte 0x000013C4 _08014C2C: .4byte 0x00000B21 _08014C30: .4byte 0xFFFFF5D8 _08014C34: ldr r0, _08014D14 @ =0x086ACE2C lsls r1, r2, #2 adds r6, r1, r0 adds r0, #2 adds r1, r1, r0 ldrh r0, [r1] ldr r1, _08014D18 @ =0xFFFFF5D8 adds r4, r5, r1 muls r0, r4, r0 ldr r5, _08014D1C @ =0x00001518 adds r1, r5, #0 bl __divsi3 ldrh r1, [r6] subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 movs r0, #0xae lsls r0, r0, #1 muls r0, r4, r0 adds r1, r5, #0 bl __divsi3 movs r2, #0xcb lsls r2, r2, #1 adds r7, r0, r2 _08014C68: mov r3, sl lsls r0, r3, #0x10 mov sb, r0 cmp r0, #0 beq _08014C7E movs r1, #0x80 lsls r1, r1, #8 adds r0, r1, #0 subs r0, r0, r6 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 _08014C7E: ldr r2, _08014D20 @ =0x020314E0 mov sl, r2 ldr r0, [r2] ldr r3, _08014D24 @ =0x0000132C adds r0, r0, r3 ldr r2, [r0] movs r0, #0x30 ldrsh r1, [r2, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #9 rsbs r0, r0, #0 cmp r0, #0 bge _08014C9C adds r0, #0x7f _08014C9C: asrs r3, r0, #7 movs r0, #8 ldrsh r1, [r2, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 rsbs r0, r0, #0 cmp r0, #0 bge _08014CB0 adds r0, #0xff _08014CB0: asrs r0, r0, #8 adds r0, r3, r0 adds r0, r6, r0 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r6, #0 bl sub_C74 mov r1, sl ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r5, _08014D28 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 adds r4, #0x60 strh r0, [r4] adds r0, r6, #0 bl sub_C24 mov r2, sl ldr r4, [r2] rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 adds r4, #0x62 strh r0, [r4] _08014CF2: ldr r2, _08014D20 @ =0x020314E0 ldr r3, [r2] adds r1, r3, #0 adds r1, #0x5c movs r0, #1 strh r0, [r1] mov r6, sb cmp r6, #0 beq _08014D2C adds r0, r3, #0 adds r0, #0x60 ldrh r0, [r0] rsbs r0, r0, #0 mov r1, r8 strh r0, [r1] b _08014D36 .align 2, 0 _08014D14: .4byte 0x086ACE2C _08014D18: .4byte 0xFFFFF5D8 _08014D1C: .4byte 0x00001518 _08014D20: .4byte 0x020314E0 _08014D24: .4byte 0x0000132C _08014D28: .4byte 0x00004E20 _08014D2C: adds r0, r3, #0 adds r0, #0x60 ldrh r0, [r0] mov r3, r8 strh r0, [r3] _08014D36: ldr r0, [r2] adds r0, #0x62 ldrh r0, [r0] b _08014DEA _08014D3E: adds r0, r5, #0 movs r1, #0x14 bl __divsi3 adds r5, r0, #0 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 ldr r6, _08014DFC @ =0x00004E20 adds r1, r6, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08014E00 @ =0xFFFF0000 ands r4, r1 orrs r4, r0 adds r0, r7, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 rsbs r0, r0, #0 adds r1, r6, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08014E04 @ =0x0000FFFF ands r4, r1 orrs r4, r0 mov r0, r8 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, r4, r0 mov r3, r8 strh r0, [r3] asrs r1, r4, #0x10 movs r0, #2 ldrsh r2, [r3, r0] lsls r0, r2, #1 adds r0, r0, r2 lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 adds r1, r1, r0 strh r1, [r3, #2] movs r2, #0 ldrsh r0, [r3, r2] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 adds r1, r6, #0 bl __divsi3 mov r3, r8 strh r0, [r3] adds r0, r4, #0 bl sub_C24 rsbs r5, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 adds r1, r6, #0 bl __divsi3 _08014DEA: mov r6, r8 strh r0, [r6, #2] 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 _08014DFC: .4byte 0x00004E20 _08014E00: .4byte 0xFFFF0000 _08014E04: .4byte 0x0000FFFF thumb_func_start sub_14E08 sub_14E08: @ 0x08014E08 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _08014F0C @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08014F10 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r0, sb movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _08014E3A adds r0, r4, #7 _08014E3A: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08014F14 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08014E56 adds r0, r3, #7 _08014E56: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08014F18 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08014E82 adds r2, #0x3f _08014E82: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _08014F1C @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_15054 ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08014F00 b _0801502C _08014F00: lsls r0, r0, #2 ldr r1, _08014F20 @ =_08014F24 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08014F0C: .4byte 0x020314E0 _08014F10: .4byte 0x0000132C _08014F14: .4byte 0xFFFF0000 _08014F18: .4byte 0x0000FFFF _08014F1C: .4byte 0x02031520 _08014F20: .4byte _08014F24 _08014F24: @ jump table .4byte _08014F3C @ case 0 .4byte _08014FE8 @ case 1 .4byte _08014FE8 @ case 2 .4byte _08014F3C @ case 3 .4byte _08015018 @ case 4 .4byte _08014F3C @ case 5 _08014F3C: ldr r2, _08014FB4 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _08014FB8 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08014FDC ldr r0, [r2] ldr r7, _08014FBC @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08014FC0 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08014F88 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08014FDC _08014F88: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _08014FA6 cmp r0, #0 bne _08014FD2 ldr r0, _08014FC4 @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08014FC8 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _08014FA6: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _08014FDC .align 2, 0 _08014FB4: .4byte 0x020314E0 _08014FB8: .4byte 0xFFFFC010 _08014FBC: .4byte 0x0000132C _08014FC0: .4byte 0x02031520 _08014FC4: .4byte gMain _08014FC8: ldr r0, _08014FE4 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08014FD2: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _08014FDC: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _0801502C .align 2, 0 _08014FE4: .4byte 0x0000FFD8 _08014FE8: ldr r2, _08015010 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08015014 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _0801502C .align 2, 0 _08015010: .4byte 0x020314E0 _08015014: .4byte 0x0000FFF0 _08015018: ldr r2, _0801504C @ =0x020314E0 ldr r0, [r2] ldr r1, _08015050 @ =0x000002A2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] movs r6, #0 _0801502C: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_153CC mov r2, sp movs r4, #4 ldrsh r0, [r2, r4] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _0801504C: .4byte 0x020314E0 _08015050: .4byte 0x000002A2 thumb_func_start sub_15054 sub_15054: @ 0x08015054 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r4, r0, #0 str r1, [sp] mov ip, r2 movs r7, #0 movs r5, #0 movs r0, #0 str r0, [sp, #4] ldr r0, _08015128 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801512C @ =0x000005B2 adds r1, r2, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov r8, r0 cmp r1, #0 beq _08015084 b _08015298 _08015084: adds r0, r2, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08015094 b _0801539A _08015094: movs r6, #0xa9 lsls r6, r6, #2 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08015146 ldr r1, _08015130 @ =0x000002A3 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080150B4 b _0801539A _080150B4: movs r3, #0xc2 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] ldrh r6, [r4] adds r1, r1, r6 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] ldrh r4, [r4, #2] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r1, #0x10 lsrs r0, r5, #0x10 cmp r0, #0x4f bls _080150D8 b _0801539A _080150D8: lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x57 bls _080150E2 b _0801539A _080150E2: ldr r2, _08015134 @ =0x08259C10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r5, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08015138 @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 bne _08015104 b _0801539A _08015104: ldr r6, [sp] strh r7, [r6] mov r1, r8 ldr r0, [r1] ldr r2, _0801513C @ =0x000002A2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08015140 mov r3, ip strb r5, [r3] ldr r0, [r1] adds r0, r0, r2 movs r1, #7 strb r1, [r0] b _0801539A .align 2, 0 _08015128: .4byte 0x020314E0 _0801512C: .4byte 0x000005B2 _08015130: .4byte 0x000002A3 _08015134: .4byte 0x08259C10 _08015138: .4byte 0x0000FFF0 _0801513C: .4byte 0x000002A2 _08015140: movs r0, #1 mov r6, ip b _08015398 _08015146: mov r0, ip ldrb r1, [r0] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08015154 b _0801539A _08015154: movs r1, #0xc2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r3, [r4] ldrh r1, [r0] adds r1, r3, r1 movs r6, #0xc3 lsls r6, r6, #1 adds r0, r2, r6 ldrh r2, [r4, #2] ldrh r0, [r0] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r6, r1, #0x10 lsrs r0, r6, #0x10 mov sb, r3 mov sl, r2 cmp r0, #0x3f bhi _080151A2 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080151A2 ldr r2, _08015288 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r6, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _0801528C @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 beq _080151A6 movs r0, #0 str r0, [sp, #4] _080151A2: cmp r5, #0 bne _08015246 _080151A6: mov r1, r8 ldr r2, [r1] movs r3, #0xc4 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, sb movs r6, #0xc5 lsls r6, r6, #1 adds r0, r2, r6 ldrh r0, [r0] add r0, sl lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _080151F0 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080151F0 ldr r2, _08015288 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _0801528C @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 beq _080151F4 movs r0, #1 str r0, [sp, #4] _080151F0: cmp r5, #0 bne _08015246 _080151F4: mov r1, r8 ldr r2, [r1] movs r3, #0xc6 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, sb movs r6, #0xc7 lsls r6, r6, #1 adds r0, r2, r6 ldrh r0, [r0] add r0, sl lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _08015240 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _08015240 ldr r2, _08015288 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _0801528C @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 bne _0801523C b _0801539A _0801523C: movs r0, #2 str r0, [sp, #4] _08015240: cmp r5, #0 bne _08015246 b _0801539A _08015246: mov r2, r8 ldr r1, [r2] ldr r3, _08015290 @ =0x0000016F adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015266 movs r6, #0xb8 lsls r6, r6, #1 adds r0, r1, r6 ldr r1, [sp, #4] adds r0, r0, r1 movs r1, #0x6b strb r1, [r0] _08015266: ldr r2, [sp] strh r7, [r2] mov r3, ip strb r5, [r3] mov r6, r8 ldr r0, [r6] ldr r2, _08015294 @ =0x00000624 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08015280 b _0801539A _08015280: movs r0, #2 strb r0, [r1] b _0801539A .align 2, 0 _08015288: .4byte 0x08252B10 _0801528C: .4byte 0x0000FFF0 _08015290: .4byte 0x0000016F _08015294: .4byte 0x00000624 _08015298: mov r3, ip ldrb r1, [r3] movs r5, #0xf adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0801539A ldr r6, _080153AC @ =0x000002E5 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08015320 movs r1, #0xbb lsls r1, r1, #2 adds r0, r2, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x18 rsbs r1, r1, #0 subs r1, r1, r0 lsls r1, r1, #1 ldrh r3, [r4] adds r1, r1, r3 ldr r6, _080153B0 @ =0xFFFFFDBC adds r0, r6, #0 ldrh r2, [r4, #2] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x47 bhi _08015320 lsls r1, r2, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x47 bhi _08015320 ldr r2, _080153B4 @ =0x08254B10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #3 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r0, _080153B8 @ =0x0000FFF0 ands r0, r1 ldr r3, [sp] strh r0, [r3] adds r0, r5, #0 ands r0, r1 mov r6, ip strb r0, [r6] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08015320 mov r2, r8 ldr r0, [r2] ldr r3, _080153BC @ =0x000002E2 adds r0, r0, r3 strb r1, [r0] movs r0, #6 strb r0, [r6] _08015320: mov r6, r8 ldr r1, [r6] ldr r2, _080153C0 @ =0x000002E6 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0801539A ldr r3, _080153C4 @ =0x000002EE adds r0, r1, r3 movs r6, #0 ldrsh r1, [r0, r6] subs r1, #0xb4 lsls r1, r1, #1 ldrh r0, [r4] adds r1, r1, r0 ldr r2, _080153B0 @ =0xFFFFFDBC adds r0, r2, #0 ldrh r4, [r4, #2] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r1, #0x10 lsrs r0, r5, #0x10 cmp r0, #0x47 bhi _0801539A lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x47 bhi _0801539A ldr r2, _080153C8 @ =0x08257390 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #3 asrs r1, r5, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r0, _080153B8 @ =0x0000FFF0 ands r0, r1 ldr r3, [sp] strh r0, [r3] movs r0, #0xf ands r0, r1 mov r6, ip strb r0, [r6] movs r1, #1 ands r0, r1 cmp r0, #0 beq _0801539A mov r1, r8 ldr r0, [r1] ldr r2, _080153BC @ =0x000002E2 adds r0, r0, r2 movs r1, #2 strb r1, [r0] movs r0, #6 _08015398: strb r0, [r6] _0801539A: add sp, #8 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 _080153AC: .4byte 0x000002E5 _080153B0: .4byte 0xFFFFFDBC _080153B4: .4byte 0x08254B10 _080153B8: .4byte 0x0000FFF0 _080153BC: .4byte 0x000002E2 _080153C0: .4byte 0x000002E6 _080153C4: .4byte 0x000002EE _080153C8: .4byte 0x08257390 thumb_func_start sub_153CC sub_153CC: @ 0x080153CC push {r4, r5, r6, r7, lr} adds r7, r1, #0 adds r6, r2, #0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bls _080153E0 bl _08016082 _080153E0: lsls r0, r0, #2 ldr r1, _080153EC @ =_080153F0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080153EC: .4byte _080153F0 _080153F0: @ jump table .4byte _0801542C @ case 0 .4byte _08015494 @ case 1 .4byte _080154E0 @ case 2 .4byte _08015578 @ case 3 .4byte _08015620 @ case 4 .4byte _0801564C @ case 5 .4byte _0801567C @ case 6 .4byte _08015764 @ case 7 .4byte _08015AA4 @ case 8 .4byte _08015AF0 @ case 9 .4byte _08015CA0 @ case 10 .4byte _08015E4C @ case 11 .4byte _08015EB4 @ case 12 .4byte _08015F20 @ case 13 .4byte _08015F8C @ case 14 _0801542C: ldr r0, _0801545C @ =0x020314E0 ldr r2, [r0] ldrh r0, [r2, #0x26] cmp r0, #0 beq _0801543A bl _08016082 _0801543A: ldr r1, _08015460 @ =0x0000132C adds r0, r2, r1 ldr r3, [r0] movs r4, #0x28 ldrsh r1, [r3, r4] ldr r0, _08015464 @ =0x00000167 cmp r1, r0 ble _08015470 movs r1, #0x2a ldrsh r0, [r3, r1] cmp r0, #0xc7 ble _08015468 adds r1, r2, #0 adds r1, #0x25 movs r0, #1 b _08015476 .align 2, 0 _0801545C: .4byte 0x020314E0 _08015460: .4byte 0x0000132C _08015464: .4byte 0x00000167 _08015468: adds r1, r2, #0 adds r1, #0x25 movs r0, #3 b _08015476 _08015470: adds r1, r2, #0 adds r1, #0x25 movs r0, #2 _08015476: strb r0, [r1] bl sub_1A98C ldr r0, _08015490 @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #7 strb r1, [r0] movs r0, #1 strh r0, [r7] bl _08016082 .align 2, 0 _08015490: .4byte 0x020314E0 _08015494: ldr r3, _080154B8 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _080154C0 ldr r4, _080154BC @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r1, #2 strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 strb r1, [r0] bl _08016082 .align 2, 0 _080154B8: .4byte 0x020314E0 _080154BC: .4byte 0x0000132C _080154C0: cmp r1, #2 beq _080154C8 bl _08016082 _080154C8: ldr r4, _080154DC @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 movs r1, #3 strb r1, [r0] bl _08016082 .align 2, 0 _080154DC: .4byte 0x0000132C _080154E0: ldr r1, _08015508 @ =0x020314E0 ldr r2, [r1] adds r0, r2, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #2 bne _08015510 ldr r1, _0801550C @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] movs r2, #0 movs r0, #3 strb r0, [r1, #1] ldr r0, [r5] adds r0, #0x24 strb r2, [r0] b _08015524 .align 2, 0 _08015508: .4byte 0x020314E0 _0801550C: .4byte 0x0000132C _08015510: cmp r0, #3 bne _08015524 ldr r3, _0801556C @ =0x0000132C adds r0, r2, r3 ldr r0, [r0] movs r1, #2 strb r1, [r0, #1] ldr r0, [r5] adds r0, #0x24 strb r1, [r0] _08015524: ldr r0, [r5] ldr r4, _08015570 @ =0x000002FB adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bne _08015536 movs r0, #7 strb r0, [r1] _08015536: ldr r0, [r5] movs r1, #0xbc lsls r1, r1, #2 adds r2, r0, r1 ldrb r1, [r2] movs r3, #0xf0 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0801554E movs r0, #0 strb r0, [r2] _0801554E: ldr r0, [r5] ldr r2, _08015574 @ =0x000001AB adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] ands r0, r3 cmp r0, #0 bne _08015562 bl _08016082 _08015562: movs r0, #0 strb r0, [r1] bl _08016082 .align 2, 0 _0801556C: .4byte 0x0000132C _08015570: .4byte 0x000002FB _08015574: .4byte 0x000001AB _08015578: ldr r1, _080155B8 @ =0x020314E0 ldr r2, [r1] movs r3, #0xc0 lsls r3, r3, #3 adds r0, r2, r3 ldrh r3, [r0] adds r5, r1, #0 cmp r3, #0 beq _0801558E bl _08016082 _0801558E: ldr r4, _080155BC @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r1, #0x10 ldrsh r0, [r0, r1] cmp r0, #0x83 ble _080155C4 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] ldr r3, _080155C0 @ =0x0000070E adds r1, r2, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x62 bgt _08015604 adds r0, r2, #1 strb r0, [r1] b _08015604 .align 2, 0 _080155B8: .4byte 0x020314E0 _080155BC: .4byte 0x0000132C _080155C0: .4byte 0x0000070E _080155C4: cmp r0, #0x5b ble _080155E4 movs r0, #0xfa lsls r0, r0, #3 str r0, [r2, #0x3c] movs r4, #0xba lsls r4, r4, #1 adds r0, r2, r4 strh r3, [r0] ldr r0, _080155E0 @ =0x0000016F adds r1, r2, r0 movs r0, #1 strb r0, [r1] b _08015604 .align 2, 0 _080155E0: .4byte 0x0000016F _080155E4: movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] ldr r3, _0801561C @ =0x000002B2 adds r1, r2, r3 movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 bne _08015604 movs r0, #1 strb r0, [r1] ldr r0, [r5] movs r4, #0xac lsls r4, r4, #2 adds r0, r0, r4 strh r2, [r0] _08015604: ldr r0, [r5] movs r1, #0xc0 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #0x2d strh r1, [r0] movs r0, #0x76 bl m4aSongNumStart bl _08016082 .align 2, 0 _0801561C: .4byte 0x000002B2 _08015620: ldr r1, _08015640 @ =0x020314E0 ldr r0, [r1] adds r0, #0x20 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r1] ldr r4, _08015644 @ =0x00000165 adds r0, r0, r4 strb r2, [r0] ldr r0, [r1] ldr r1, _08015648 @ =0x00000732 adds r0, r0, r1 strb r3, [r0] bl _08016082 .align 2, 0 _08015640: .4byte 0x020314E0 _08015644: .4byte 0x00000165 _08015648: .4byte 0x00000732 _0801564C: ldr r4, _08015670 @ =0x020314E0 ldr r0, [r4] ldr r2, _08015674 @ =0x000005B2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08015662 bl _08016082 _08015662: movs r0, #1 bl sub_46FD4 ldr r0, [r4] ldr r3, _08015678 @ =0x0000029E b _0801588E .align 2, 0 _08015670: .4byte 0x020314E0 _08015674: .4byte 0x000005B2 _08015678: .4byte 0x0000029E _0801567C: ldr r5, _080156C4 @ =0x020314E0 ldr r1, [r5] ldr r4, _080156C8 @ =0x0000132C mov ip, r4 adds r0, r1, r4 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x31 bgt _080156D4 ldr r3, _080156CC @ =0x000002FA adds r0, r1, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _08015734 movs r2, #1 strb r2, [r0] ldr r0, [r5] ldr r4, _080156D0 @ =0x000002FB adds r0, r0, r4 strb r2, [r0] ldr r0, [r5] adds r0, #0x23 strb r1, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r1, #0xb0 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] strh r2, [r7] b _08015734 .align 2, 0 _080156C4: .4byte 0x020314E0 _080156C8: .4byte 0x0000132C _080156CC: .4byte 0x000002FA _080156D0: .4byte 0x000002FB _080156D4: ldr r2, _08015744 @ =0x000002FA adds r0, r1, r2 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bne _08015734 movs r3, #0 movs r2, #2 strb r2, [r0] ldr r0, [r5] ldr r1, _08015748 @ =0x000002FB adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] adds r0, #0x23 strb r3, [r0] ldr r0, [r5] adds r0, #0x22 strb r2, [r0] movs r2, #0xa0 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r6] strh r4, [r7] ldr r1, [r5] mov r4, ip adds r2, r1, r4 ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] ldr r4, _0801574C @ =0x00001378 adds r0, r1, r4 ldr r2, _08015750 @ =0x00001334 adds r1, r1, r2 movs r2, #0x44 bl memcpy ldr r0, [r5] ldr r3, _08015754 @ =0x00001330 adds r1, r0, r3 adds r4, r0, r4 str r4, [r1] ldr r4, _08015758 @ =0x00001328 adds r0, r0, r4 movs r1, #0x78 strh r1, [r0] _08015734: ldr r0, _0801575C @ =0x020314E0 ldr r0, [r0] ldr r1, _08015760 @ =0x00000732 adds r0, r0, r1 movs r1, #0xe strb r1, [r0] bl _08016082 .align 2, 0 _08015744: .4byte 0x000002FA _08015748: .4byte 0x000002FB _0801574C: .4byte 0x00001378 _08015750: .4byte 0x00001334 _08015754: .4byte 0x00001330 _08015758: .4byte 0x00001328 _0801575C: .4byte 0x020314E0 _08015760: .4byte 0x00000732 _08015764: ldr r0, _080157A8 @ =0x020314E0 ldr r2, [r0] ldr r3, _080157AC @ =0x0000132C adds r1, r2, r3 ldr r1, [r1] movs r4, #0x10 ldrsh r1, [r1, r4] adds r5, r0, #0 cmp r1, #0x32 bgt _0801580C ldr r1, _080157B0 @ =0x00000732 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _080157EA movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _080157DC ldr r3, _080157B4 @ =0x0000072E adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080157DC cmp r0, #0 bne _080157B8 movs r0, #0xfa lsls r0, r0, #3 b _080157C6 .align 2, 0 _080157A8: .4byte 0x020314E0 _080157AC: .4byte 0x0000132C _080157B0: .4byte 0x00000732 _080157B4: .4byte 0x0000072E _080157B8: cmp r0, #1 bne _080157C4 ldr r0, _080157C0 @ =0x00001388 b _080157C6 .align 2, 0 _080157C0: .4byte 0x00001388 _080157C4: ldr r0, _080157F8 @ =0x00002710 _080157C6: str r0, [r2, #0x3c] ldr r0, _080157FC @ =0x020314E0 ldr r1, [r0] ldr r4, _08015800 @ =0x0000072E adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0x99 bl m4aSongNumStart _080157DC: ldr r0, _080157FC @ =0x020314E0 ldr r1, [r0] ldr r2, _08015804 @ =0x000006BC adds r1, r1, r2 movs r2, #1 strb r2, [r1] adds r5, r0, #0 _080157EA: ldr r0, [r5] ldr r3, _08015808 @ =0x00000732 adds r0, r0, r3 movs r1, #2 strb r1, [r0] bl _08016082 .align 2, 0 _080157F8: .4byte 0x00002710 _080157FC: .4byte 0x020314E0 _08015800: .4byte 0x0000072E _08015804: .4byte 0x000006BC _08015808: .4byte 0x00000732 _0801580C: cmp r1, #0x64 bgt _080158A8 ldr r4, _0801584C @ =0x00000732 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801588A movs r3, #0xca lsls r3, r3, #1 adds r0, r2, r3 movs r2, #0xa strb r2, [r0] ldr r1, [r5] subs r4, #7 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08015878 cmp r0, #0 bne _08015850 movs r0, #0xfa lsls r0, r0, #3 str r0, [r1, #0x3c] adds r1, r1, r3 movs r0, #1 strb r0, [r1] b _0801586C .align 2, 0 _0801584C: .4byte 0x00000732 _08015850: cmp r0, #1 bne _08015864 ldr r0, _08015860 @ =0x00001388 str r0, [r1, #0x3c] adds r1, r1, r3 movs r0, #5 strb r0, [r1] b _0801586C .align 2, 0 _08015860: .4byte 0x00001388 _08015864: ldr r0, _08015898 @ =0x00002710 str r0, [r1, #0x3c] adds r0, r1, r3 strb r2, [r0] _0801586C: ldr r1, [r5] ldr r0, _0801589C @ =0x0000072B adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08015878: ldr r0, [r5] movs r1, #0xcb lsls r1, r1, #1 adds r2, r0, r1 movs r1, #0 strh r1, [r2] ldr r2, _080158A0 @ =0x0000072C adds r0, r0, r2 strh r1, [r0] _0801588A: ldr r0, [r5] ldr r3, _080158A4 @ =0x00000732 _0801588E: adds r0, r0, r3 movs r1, #1 strb r1, [r0] bl _08016082 .align 2, 0 _08015898: .4byte 0x00002710 _0801589C: .4byte 0x0000072B _080158A0: .4byte 0x0000072C _080158A4: .4byte 0x00000732 _080158A8: cmp r1, #0x7e bgt _08015918 movs r1, #0xe3 lsls r1, r1, #3 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080158C2 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] _080158C2: ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _0801590C @ =0x00000732 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r1, [r5] ldr r2, _08015910 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _080158E6 bl _08016082 _080158E6: subs r2, #2 adds r0, r1, r2 adds r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _080158FA b _08016082 _080158FA: strb r4, [r3] ldr r0, [r5] ldr r3, _08015914 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] ldr r1, [r5] b _08015C7E .align 2, 0 _0801590C: .4byte 0x00000732 _08015910: .4byte 0x0000071B _08015914: .4byte 0x0000071C _08015918: cmp r1, #0x94 bgt _08015988 ldr r1, _08015978 @ =0x00000719 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015930 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] _08015930: ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _0801597C @ =0x00000732 adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r1, [r5] ldr r2, _08015980 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08015952 b _08016082 _08015952: subs r2, #3 adds r0, r1, r2 adds r2, #2 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08015966 b _08016082 _08015966: strb r4, [r3] ldr r0, [r5] ldr r3, _08015984 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] ldr r1, [r5] b _08015C7E .align 2, 0 _08015978: .4byte 0x00000719 _0801597C: .4byte 0x00000732 _08015980: .4byte 0x0000071B _08015984: .4byte 0x0000071C _08015988: cmp r1, #0xac bgt _080159F8 ldr r1, _080159E8 @ =0x0000071A adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080159A0 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] _080159A0: ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _080159EC @ =0x00000732 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r1, [r5] ldr r2, _080159F0 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _080159C2 b _08016082 _080159C2: subs r2, #3 adds r0, r1, r2 adds r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _080159D6 b _08016082 _080159D6: strb r4, [r3] ldr r0, [r5] ldr r3, _080159F4 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] ldr r1, [r5] b _08015C7E .align 2, 0 _080159E8: .4byte 0x0000071A _080159EC: .4byte 0x00000732 _080159F0: .4byte 0x0000071B _080159F4: .4byte 0x0000071C _080159F8: ldr r4, _08015A28 @ =0x00000732 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _08015A78 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08015A6A ldr r1, _08015A2C @ =0x0000072F adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08015A6A cmp r0, #0 bne _08015A30 movs r0, #0xfa lsls r0, r0, #3 b _08015A3E .align 2, 0 _08015A28: .4byte 0x00000732 _08015A2C: .4byte 0x0000072F _08015A30: cmp r0, #1 bne _08015A3C ldr r0, _08015A38 @ =0x00001388 b _08015A3E .align 2, 0 _08015A38: .4byte 0x00001388 _08015A3C: ldr r0, _08015A84 @ =0x00002710 _08015A3E: str r0, [r2, #0x3c] ldr r5, _08015A88 @ =0x020314E0 ldr r1, [r5] ldr r4, _08015A8C @ =0x0000072F adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08015A90 @ =0x02032F20 ldr r1, _08015A94 @ =0x0869FC0C bl MPlayStart ldr r1, [r5] adds r4, r1, r4 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 ble _08015A6A ldr r2, _08015A98 @ =0x00000731 adds r1, r1, r2 movs r0, #1 strb r0, [r1] _08015A6A: ldr r0, _08015A88 @ =0x020314E0 ldr r1, [r0] ldr r3, _08015A9C @ =0x000006BC adds r1, r1, r3 movs r2, #2 strb r2, [r1] adds r5, r0, #0 _08015A78: ldr r0, [r5] ldr r4, _08015AA0 @ =0x00000732 adds r0, r0, r4 movs r1, #6 strb r1, [r0] b _08016082 .align 2, 0 _08015A84: .4byte 0x00002710 _08015A88: .4byte 0x020314E0 _08015A8C: .4byte 0x0000072F _08015A90: .4byte 0x02032F20 _08015A94: .4byte 0x0869FC0C _08015A98: .4byte 0x00000731 _08015A9C: .4byte 0x000006BC _08015AA0: .4byte 0x00000732 _08015AA4: ldr r0, _08015AC0 @ =0x020314E0 ldr r1, [r0] ldr r2, _08015AC4 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r3, #0x10 ldrsh r0, [r0, r3] cmp r0, #0x32 bgt _08015ACC ldr r4, _08015AC8 @ =0x00000732 adds r1, r1, r4 movs r0, #8 strb r0, [r1] b _08016082 .align 2, 0 _08015AC0: .4byte 0x020314E0 _08015AC4: .4byte 0x0000132C _08015AC8: .4byte 0x00000732 _08015ACC: cmp r0, #0x64 bgt _08015AE0 ldr r0, _08015ADC @ =0x00000732 adds r1, r1, r0 movs r0, #7 strb r0, [r1] b _08016082 .align 2, 0 _08015ADC: .4byte 0x00000732 _08015AE0: ldr r2, _08015AEC @ =0x00000732 adds r1, r1, r2 movs r0, #9 strb r0, [r1] b _08016082 .align 2, 0 _08015AEC: .4byte 0x00000732 _08015AF0: ldr r4, _08015B48 @ =0x020314E0 ldr r1, [r4] ldr r3, _08015B4C @ =0x0000132C adds r0, r1, r3 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x2e bgt _08015B60 ldr r3, _08015B50 @ =0x00000732 adds r0, r1, r3 movs r1, #0xa strb r1, [r0] ldr r1, [r4] movs r0, #0xe2 lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015B1C b _08016082 _08015B1C: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08015B54 @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015B36 b _08016082 _08015B36: ldr r2, _08015B58 @ =0x00000711 adds r0, r3, r2 adds r2, #1 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015B5C @ =0x00000713 b _08015C64 .align 2, 0 _08015B48: .4byte 0x020314E0 _08015B4C: .4byte 0x0000132C _08015B50: .4byte 0x00000732 _08015B54: .4byte 0x00000714 _08015B58: .4byte 0x00000711 _08015B5C: .4byte 0x00000713 _08015B60: cmp r0, #0x78 bgt _08015BC0 ldr r2, _08015BAC @ =0x00000732 adds r0, r1, r2 movs r1, #0xb strb r1, [r0] ldr r1, [r4] ldr r3, _08015BB0 @ =0x00000711 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015B7C b _08016082 _08015B7C: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08015BB4 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015B96 b _08016082 _08015B96: movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08015BB8 @ =0x00000712 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015BBC @ =0x00000713 b _08015C64 .align 2, 0 _08015BAC: .4byte 0x00000732 _08015BB0: .4byte 0x00000711 _08015BB4: .4byte 0x00000714 _08015BB8: .4byte 0x00000712 _08015BBC: .4byte 0x00000713 _08015BC0: cmp r0, #0xc1 bgt _08015C20 ldr r2, _08015C0C @ =0x00000732 adds r0, r1, r2 movs r1, #0xc strb r1, [r0] ldr r1, [r4] ldr r3, _08015C10 @ =0x00000712 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015BDC b _08016082 _08015BDC: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08015C14 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015BF6 b _08016082 _08015BF6: movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08015C18 @ =0x00000711 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015C1C @ =0x00000713 b _08015C64 .align 2, 0 _08015C0C: .4byte 0x00000732 _08015C10: .4byte 0x00000712 _08015C14: .4byte 0x00000714 _08015C18: .4byte 0x00000711 _08015C1C: .4byte 0x00000713 _08015C20: ldr r2, _08015C88 @ =0x00000732 adds r0, r1, r2 movs r1, #0xd strb r1, [r0] ldr r1, [r4] ldr r3, _08015C8C @ =0x00000713 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015C38 b _08016082 _08015C38: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08015C90 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015C52 b _08016082 _08015C52: movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08015C94 @ =0x00000711 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015C98 @ =0x00000712 _08015C64: adds r1, r3, r2 ldrb r1, [r1] ands r0, r1 cmp r0, #0 bne _08015C70 b _08016082 _08015C70: strb r6, [r5] ldr r0, [r4] ldr r3, _08015C9C @ =0x00000715 adds r0, r0, r3 movs r1, #0x7e strb r1, [r0] ldr r1, [r4] _08015C7E: movs r0, #0xfa lsls r0, r0, #4 str r0, [r1, #0x3c] b _08016082 .align 2, 0 _08015C88: .4byte 0x00000732 _08015C8C: .4byte 0x00000713 _08015C90: .4byte 0x00000714 _08015C94: .4byte 0x00000711 _08015C98: .4byte 0x00000712 _08015C9C: .4byte 0x00000715 _08015CA0: ldr r1, _08015D18 @ =0x020314E0 ldr r2, [r1] ldr r4, _08015D1C @ =0x000005B2 adds r0, r2, r4 movs r3, #0 ldrsb r3, [r0, r3] adds r5, r1, #0 cmp r3, #0 beq _08015CB4 b _08015DE0 _08015CB4: ldr r1, _08015D20 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r4, #0x10 ldrsh r0, [r0, r4] cmp r0, #0xaa ble _08015D30 movs r1, #0xbc lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, #2 bls _08015CD0 b _08016082 _08015CD0: adds r0, r2, #0 adds r0, #0x23 strb r3, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r2, #0xb0 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08015D0E ldr r3, _08015D24 @ =0x000001AB adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08015D0E movs r0, #3 strb r0, [r1] ldr r0, [r5] ldr r4, _08015D28 @ =0x000002F2 adds r0, r0, r4 movs r1, #5 strh r1, [r0] _08015D0E: ldr r1, [r5] ldr r0, _08015D2C @ =0x0000C350 str r0, [r1, #0x3c] b _08016082 .align 2, 0 _08015D18: .4byte 0x020314E0 _08015D1C: .4byte 0x000005B2 _08015D20: .4byte 0x0000132C _08015D24: .4byte 0x000001AB _08015D28: .4byte 0x000002F2 _08015D2C: .4byte 0x0000C350 _08015D30: ldr r4, _08015D88 @ =0x000002FB adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bgt _08015D58 adds r0, r2, #0 adds r0, #0x23 strb r3, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r1, #0xf8 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] _08015D58: ldr r0, [r5] adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bne _08015D68 movs r0, #6 strb r0, [r1] _08015D68: ldr r1, [r5] ldr r2, _08015D8C @ =0x0000029F adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015D7A b _08016082 _08015D7A: cmp r0, #1 bne _08015D94 ldr r3, _08015D90 @ =0x00000286 adds r1, r1, r3 movs r0, #0x5a strh r0, [r1] b _08015DB6 .align 2, 0 _08015D88: .4byte 0x000002FB _08015D8C: .4byte 0x0000029F _08015D90: .4byte 0x00000286 _08015D94: movs r4, #0xbe lsls r4, r4, #2 adds r0, r1, r4 movs r1, #1 strb r1, [r0] ldr r0, [r5] ldr r2, _08015DD0 @ =0x0000071B adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] ldr r3, _08015DD4 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] movs r0, #0xd8 bl m4aSongNumStart _08015DB6: ldr r2, _08015DD8 @ =0x020314E0 ldr r0, [r2] ldr r4, _08015DDC @ =0x0000029F adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r1, #0xa8 lsls r1, r1, #2 adds r0, r0, r1 subs r1, #0x48 strh r1, [r0] b _08016082 .align 2, 0 _08015DD0: .4byte 0x0000071B _08015DD4: .4byte 0x0000071C _08015DD8: .4byte 0x020314E0 _08015DDC: .4byte 0x0000029F _08015DE0: movs r3, #0xe2 lsls r3, r3, #1 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 beq _08015DEE b _08016082 _08015DEE: ldr r4, _08015E04 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r1, #0x10 ldrsh r0, [r0, r1] cmp r0, #0x78 bgt _08015E08 subs r3, #2 adds r1, r2, r3 movs r0, #1 b _08015E10 .align 2, 0 _08015E04: .4byte 0x0000132C _08015E08: movs r4, #0xe1 lsls r4, r4, #1 adds r1, r2, r4 movs r0, #2 _08015E10: strb r0, [r1] ldr r2, [r5] movs r0, #0xf1 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08015E40 adds r1, r0, #0 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 beq _08015E38 b _08016082 _08015E38: movs r4, #0xe2 lsls r4, r4, #1 adds r1, r2, r4 b _08015E46 _08015E40: movs r0, #0xe2 lsls r0, r0, #1 adds r1, r2, r0 _08015E46: movs r0, #0x78 strh r0, [r1] b _08016082 _08015E4C: ldr r6, _08015EA4 @ =0x020314E0 ldr r1, [r6] ldr r5, _08015EA8 @ =0x00000616 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 beq _08015E5C b _08016082 _08015E5C: ldr r2, _08015EAC @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] ldrh r2, [r0, #0x32] ldr r3, _08015EB0 @ =0x00000614 adds r0, r1, r3 strh r2, [r0] lsls r0, r2, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08015E78 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _08015E78: movs r0, #0xe3 lsls r0, r0, #1 adds r4, r1, r0 lsls r0, r2, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa8 ble _08015E9A movs r0, #0xa8 strh r0, [r4] _08015E9A: ldr r0, [r6] adds r0, r0, r5 movs r1, #0x14 strh r1, [r0] b _08016082 .align 2, 0 _08015EA4: .4byte 0x020314E0 _08015EA8: .4byte 0x00000616 _08015EAC: .4byte 0x0000132C _08015EB0: .4byte 0x00000614 _08015EB4: ldr r3, _08015F14 @ =0x020314E0 ldr r1, [r3] movs r4, #0xb6 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015ECA b _08016082 _08015ECA: ldrh r0, [r1, #0x26] cmp r0, #0 beq _08015ED2 b _08016082 _08015ED2: ldr r2, _08015F18 @ =0x000002DA adds r1, r1, r2 ldrb r0, [r1] movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 beq _08015EE2 b _08016082 _08015EE2: adds r0, #1 strb r0, [r1] ldr r0, [r3] adds r0, r0, r4 strb r2, [r0] ldr r0, [r3] adds r0, #0x23 strb r2, [r0] ldr r0, [r3] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r4, #0xd0 lsls r4, r4, #8 adds r0, r4, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] ldr r1, [r3] ldr r0, _08015F1C @ =0x00001388 str r0, [r1, #0x3c] movs r0, #0xb7 bl m4aSongNumStart b _08016020 .align 2, 0 _08015F14: .4byte 0x020314E0 _08015F18: .4byte 0x000002DA _08015F1C: .4byte 0x00001388 _08015F20: ldr r4, _08015F80 @ =0x020314E0 ldr r1, [r4] movs r5, #0xb6 lsls r5, r5, #2 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015F36 b _08016082 _08015F36: ldrh r2, [r1, #0x26] cmp r2, #0 beq _08015F3E b _08016082 _08015F3E: ldr r0, _08015F84 @ =0x000002DA adds r1, r1, r0 ldrb r0, [r1] movs r3, #0 ldrsb r3, [r1, r3] cmp r3, #1 beq _08015F4E b _08016082 _08015F4E: adds r0, #1 strb r0, [r1] ldr r0, [r4] adds r0, r0, r5 strb r2, [r0] ldr r0, [r4] adds r0, #0x23 strb r2, [r0] ldr r0, [r4] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r1, #0xcc lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] strh r3, [r7] movs r0, #0xb7 bl m4aSongNumStart ldr r1, [r4] ldr r0, _08015F88 @ =0x00001388 str r0, [r1, #0x3c] b _08016020 .align 2, 0 _08015F80: .4byte 0x020314E0 _08015F84: .4byte 0x000002DA _08015F88: .4byte 0x00001388 _08015F8C: ldr r0, _08015FE8 @ =0x020314E0 ldr r3, [r0] movs r2, #0x13 ldrsb r2, [r3, r2] adds r5, r0, #0 cmp r2, #2 ble _0801602C cmp r2, #5 beq _0801602C movs r2, #0xb8 lsls r2, r2, #2 adds r0, r3, r2 ldrh r2, [r0] cmp r2, #0 bne _08016082 ldr r4, _08015FEC @ =0x000002DA adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #2 bne _08015FF4 adds r0, r3, #0 adds r0, #0x23 strb r2, [r0] ldr r0, [r5] adds r0, #0x22 strb r1, [r0] movs r1, #0xc8 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] ldr r1, [r5] adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xb7 bl m4aSongNumStart ldr r1, [r5] ldr r0, _08015FF0 @ =0x00001388 str r0, [r1, #0x3c] b _08016020 .align 2, 0 _08015FE8: .4byte 0x020314E0 _08015FEC: .4byte 0x000002DA _08015FF0: .4byte 0x00001388 _08015FF4: cmp r1, #3 bne _08016082 adds r0, r3, #0 adds r0, #0x23 strb r2, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r2, #0xc8 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r6] movs r4, #1 strh r4, [r7] movs r0, #0xb7 bl m4aSongNumStart ldr r0, [r5] ldr r3, _08016028 @ =0x000002D9 adds r0, r0, r3 strb r4, [r0] _08016020: movs r0, #7 bl sub_11B0 b _08016082 .align 2, 0 _08016028: .4byte 0x000002D9 _0801602C: ldr r1, [r5] movs r4, #0xb6 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08016082 ldr r0, _08016088 @ =0x000002DA adds r2, r1, r0 ldrb r0, [r2] movs r3, #0 ldrsb r3, [r2, r3] cmp r3, #2 bne _08016082 adds r0, #1 movs r1, #0 strb r0, [r2] ldr r0, [r5] adds r0, r0, r4 strb r1, [r0] ldr r0, [r5] adds r0, #0x23 strb r1, [r0] ldr r0, [r5] adds r0, #0x22 strb r3, [r0] movs r1, #0xc8 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] movs r0, #0xb7 bl m4aSongNumStart ldr r1, [r5] ldr r0, _0801608C @ =0x00001388 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 _08016082: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08016088: .4byte 0x000002DA _0801608C: .4byte 0x00001388 thumb_func_start sub_16090 sub_16090: @ 0x08016090 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _08016190 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08016194 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r1, sb movs r3, #0 ldrsh r4, [r1, r3] adds r0, r4, #0 cmp r4, #0 bge _080160C2 adds r0, r4, #7 _080160C2: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r7, _08016198 @ =0xFFFF0000 mov ip, r7 mov r2, ip ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _080160E0 adds r0, r3, #7 _080160E0: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _0801619C @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _0801610C adds r2, #0x3f _0801610C: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _080161A0 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_162B8 ldrb r0, [r4] movs r1, #0xf ands r1, r0 lsrs r6, r0, #4 cmp r1, #3 bgt _080161A4 cmp r1, #2 bge _0801626C cmp r1, #1 beq _080161A8 b _08016290 .align 2, 0 _08016190: .4byte 0x020314E0 _08016194: .4byte 0x0000132C _08016198: .4byte 0xFFFF0000 _0801619C: .4byte 0x0000FFFF _080161A0: .4byte 0x02031520 _080161A4: cmp r1, #4 bne _08016290 _080161A8: ldr r2, _08016208 @ =0x020314E0 ldr r0, [r2] subs r1, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r3, _0801620C @ =0xFFFFC010 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08016260 ldr r0, [r2] ldr r4, _08016210 @ =0x0000132C adds r3, r0, r4 ldr r2, [r3] movs r7, #0x10 ldrsh r1, [r2, r7] ldr r4, _08016214 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _080161F4 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08016260 _080161F4: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 ble _08016218 movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r3, r8 strh r0, [r3] b _08016260 .align 2, 0 _08016208: .4byte 0x020314E0 _0801620C: .4byte 0xFFFFC010 _08016210: .4byte 0x0000132C _08016214: .4byte 0x02031520 _08016218: cmp r0, #0 beq _08016228 movs r4, #0x82 lsls r4, r4, #7 adds r0, r4, #0 mov r7, r8 strh r0, [r7] b _08016260 _08016228: ldr r0, _08016248 @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _0801624C movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] movs r1, #0xf8 lsls r1, r1, #6 adds r0, r1, #0 mov r2, r8 strh r0, [r2] b _08016260 .align 2, 0 _08016248: .4byte gMain _0801624C: ldr r0, _08016268 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] movs r3, #0x82 lsls r3, r3, #7 adds r0, r3, #0 mov r4, r8 strh r0, [r4] _08016260: movs r0, #1 mov r7, sp strh r0, [r7, #4] b _08016290 .align 2, 0 _08016268: .4byte 0x0000FFD8 _0801626C: ldr r2, _080162B0 @ =0x020314E0 ldr r0, [r2] subs r1, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _080162B4 @ =0x0000FFF0 ands r0, r1 mov r3, r8 strh r0, [r3] movs r0, #1 mov r4, sp strh r0, [r4, #4] _08016290: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_1642C mov r7, sp movs r1, #4 ldrsh r0, [r7, r1] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _080162B0: .4byte 0x020314E0 _080162B4: .4byte 0x0000FFF0 thumb_func_start sub_162B8 sub_162B8: @ 0x080162B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc adds r4, r0, #0 str r1, [sp] str r2, [sp, #4] movs r7, #0 movs r6, #0 movs r0, #0 str r0, [sp, #8] ldr r0, _08016418 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801641C @ =0x000005B2 adds r1, r2, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 beq _080162E8 b _08016408 _080162E8: adds r0, r2, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov ip, r0 cmp r0, #0 beq _080162FA b _08016408 _080162FA: movs r5, #0xc2 lsls r5, r5, #1 adds r0, r2, r5 ldrh r3, [r4] ldrh r1, [r0] adds r1, r3, r1 adds r5, #2 adds r0, r2, r5 ldrh r2, [r4, #2] ldrh r0, [r0] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r1, #0x10 lsrs r0, r5, #0x10 mov r8, r3 mov sb, r2 cmp r0, #0x3f bhi _08016342 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _08016342 ldr r2, _08016420 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r5, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08016424 @ =0x0000FFF0 ands r7, r0 movs r6, #0xf ands r6, r0 mov r0, ip str r0, [sp, #8] _08016342: cmp r6, #0 bne _080163DA mov r1, sl ldr r2, [r1] movs r3, #0xc4 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, r8 movs r5, #0xc5 lsls r5, r5, #1 adds r0, r2, r5 ldrh r0, [r0] add r0, sb lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _0801638C lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _0801638C ldr r2, _08016420 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08016424 @ =0x0000FFF0 ands r7, r0 movs r6, #0xf ands r6, r0 movs r0, #1 str r0, [sp, #8] _0801638C: cmp r6, #0 bne _080163DA mov r1, sl ldr r2, [r1] movs r3, #0xc6 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, r8 movs r5, #0xc7 lsls r5, r5, #1 adds r0, r2, r5 ldrh r0, [r0] add r0, sb lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _080163D6 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080163D6 ldr r2, _08016420 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08016424 @ =0x0000FFF0 ands r7, r0 movs r6, #0xf ands r6, r0 movs r0, #2 str r0, [sp, #8] _080163D6: cmp r6, #0 beq _08016408 _080163DA: mov r1, sl ldr r0, [r1] movs r2, #0xb8 lsls r2, r2, #1 adds r0, r0, r2 ldr r3, [sp, #8] adds r0, r0, r3 movs r1, #6 strb r1, [r0] ldr r5, [sp] strh r7, [r5] ldr r0, [sp, #4] strb r6, [r0] mov r1, sl ldr r0, [r1] ldr r2, _08016428 @ =0x00000624 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08016408 movs r0, #2 strb r0, [r1] _08016408: add sp, #0xc 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 _08016418: .4byte 0x020314E0 _0801641C: .4byte 0x000005B2 _08016420: .4byte 0x08252B10 _08016424: .4byte 0x0000FFF0 _08016428: .4byte 0x00000624 thumb_func_start sub_1642C sub_1642C: @ 0x0801642C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r1, #0 adds r5, r2, #0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bls _08016446 bl _080171B8 _08016446: lsls r0, r0, #2 ldr r1, _08016450 @ =_08016454 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08016450: .4byte _08016454 _08016454: @ jump table .4byte _08016490 @ case 0 .4byte _080164D8 @ case 1 .4byte _08016530 @ case 2 .4byte _08016580 @ case 3 .4byte _08016794 @ case 4 .4byte _080167CC @ case 5 .4byte _0801686C @ case 6 .4byte _080168B4 @ case 7 .4byte _08016C28 @ case 8 .4byte _08016C80 @ case 9 .4byte _08016E28 @ case 10 .4byte _08016EA2 @ case 11 .4byte _08016F08 @ case 12 .4byte _08017094 @ case 13 .4byte _0801716C @ case 14 _08016490: ldr r0, _080164B4 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x26] cmp r0, #0 beq _0801649E bl _080171B8 _0801649E: ldr r2, _080164B8 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r3, #0x28 ldrsh r0, [r0, r3] cmp r0, #0xc7 ble _080164BC adds r1, #0x25 movs r0, #1 b _080164C0 .align 2, 0 _080164B4: .4byte 0x020314E0 _080164B8: .4byte 0x0000132C _080164BC: adds r1, #0x25 movs r0, #3 _080164C0: strb r0, [r1] bl sub_32914 ldr r0, _080164D4 @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #7 strb r1, [r0] b _080168A4 .align 2, 0 _080164D4: .4byte 0x020314E0 _080164D8: ldr r3, _080164F0 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _080164F8 ldr r4, _080164F4 @ =0x0000132C adds r0, r2, r4 b _0801656C .align 2, 0 _080164F0: .4byte 0x020314E0 _080164F4: .4byte 0x0000132C _080164F8: cmp r1, #2 bne _08016514 ldr r5, _08016510 @ =0x0000132C adds r0, r2, r5 ldr r0, [r0] strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 movs r1, #3 strb r1, [r0] bl _080171B8 .align 2, 0 _08016510: .4byte 0x0000132C _08016514: cmp r1, #3 beq _0801651C bl _080171B8 _0801651C: ldr r1, _0801652C @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] movs r0, #1 strb r0, [r1, #1] bl _080171B8 .align 2, 0 _0801652C: .4byte 0x0000132C _08016530: ldr r3, _08016558 @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08016560 ldr r2, _0801655C @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r2, #0 movs r0, #3 strb r0, [r1, #1] ldr r0, [r3] adds r0, #0x24 strb r2, [r0] bl _080171B8 .align 2, 0 _08016558: .4byte 0x020314E0 _0801655C: .4byte 0x0000132C _08016560: cmp r0, #3 beq _08016568 bl _080171B8 _08016568: ldr r4, _0801657C @ =0x0000132C adds r0, r1, r4 _0801656C: ldr r0, [r0] movs r1, #2 strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 strb r1, [r0] bl _080171B8 .align 2, 0 _0801657C: .4byte 0x0000132C _08016580: ldr r5, _080165D4 @ =0x020314E0 ldr r3, [r5] movs r1, #0xc0 lsls r1, r1, #3 adds r0, r3, r1 ldrh r4, [r0] cmp r4, #0 beq _08016594 bl _080171B8 _08016594: ldr r6, _080165D8 @ =0x0000132C adds r0, r3, r6 ldr r2, [r0] movs r0, #0x12 ldrsh r1, [r2, r0] ldr r0, _080165DC @ =0x00000103 cmp r1, r0 ble _080165A6 b _08016718 _080165A6: movs r1, #0x10 ldrsh r0, [r2, r1] cmp r0, #0x49 bgt _08016624 movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 ble _080165B8 b _0801676E _080165B8: ldr r2, _080165E0 @ =0x0000036B adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _080165C8 b _0801676E _080165C8: cmp r0, #1 bne _080165E8 ldr r4, _080165E4 @ =0x0000036D adds r1, r3, r4 movs r0, #6 b _080165EE .align 2, 0 _080165D4: .4byte 0x020314E0 _080165D8: .4byte 0x0000132C _080165DC: .4byte 0x00000103 _080165E0: .4byte 0x0000036B _080165E4: .4byte 0x0000036D _080165E8: ldr r5, _08016614 @ =0x0000036D adds r1, r3, r5 movs r0, #4 _080165EE: strb r0, [r1] ldr r5, _08016618 @ =0x020314E0 ldr r1, [r5] movs r0, #0xdc lsls r0, r0, #2 adds r2, r1, r0 movs r0, #0 strh r0, [r2] ldr r2, _0801661C @ =0x0000036B adds r1, r1, r2 movs r0, #1 strb r0, [r1] movs r0, #7 bl sub_11B0 ldr r1, [r5] ldr r3, _08016620 @ =0x0000132C adds r4, r1, r3 b _0801667E .align 2, 0 _08016614: .4byte 0x0000036D _08016618: .4byte 0x020314E0 _0801661C: .4byte 0x0000036B _08016620: .4byte 0x0000132C _08016624: cmp r0, #0x73 bgt _080166DC movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 ble _08016632 b _0801676E _08016632: ldr r5, _08016650 @ =0x0000036A adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08016642 b _0801676E _08016642: cmp r0, #1 bne _08016654 movs r0, #0xdb lsls r0, r0, #2 adds r1, r3, r0 movs r0, #6 b _0801665C .align 2, 0 _08016650: .4byte 0x0000036A _08016654: movs r2, #0xdb lsls r2, r2, #2 adds r1, r3, r2 movs r0, #4 _0801665C: strb r0, [r1] ldr r5, _080166BC @ =0x020314E0 ldr r1, [r5] ldr r3, _080166C0 @ =0x0000036E adds r2, r1, r3 movs r0, #0 strh r0, [r2] ldr r4, _080166C4 @ =0x0000036A adds r1, r1, r4 movs r0, #1 strb r0, [r1] movs r0, #7 bl sub_11B0 ldr r1, [r5] ldr r0, _080166C8 @ =0x0000132C adds r4, r1, r0 _0801667E: ldr r3, [r4] movs r2, #0x30 ldrsh r0, [r3, r2] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 strh r0, [r3, #0x30] ldr r3, [r4] movs r4, #0x32 ldrsh r0, [r3, r4] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 strh r0, [r3, #0x32] ldr r4, _080166CC @ =0x00001378 adds r0, r1, r4 ldr r2, _080166D0 @ =0x00001334 adds r1, r1, r2 movs r2, #0x44 bl memcpy ldr r0, [r5] ldr r3, _080166D4 @ =0x00001330 adds r1, r0, r3 adds r4, r0, r4 str r4, [r1] ldr r4, _080166D8 @ =0x00001328 adds r0, r0, r4 movs r1, #0x19 strh r1, [r0] b _0801676E .align 2, 0 _080166BC: .4byte 0x020314E0 _080166C0: .4byte 0x0000036E _080166C4: .4byte 0x0000036A _080166C8: .4byte 0x0000132C _080166CC: .4byte 0x00001378 _080166D0: .4byte 0x00001334 _080166D4: .4byte 0x00001330 _080166D8: .4byte 0x00001328 _080166DC: movs r0, #0xc3 lsls r0, r0, #2 adds r1, r3, r0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r2, _0801670C @ =0x00000306 adds r1, r3, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] ldr r3, _08016710 @ =0x0000070E adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x62 bgt _08016704 adds r0, r2, #1 strb r0, [r1] _08016704: ldr r1, [r5] ldr r0, _08016714 @ =0x00001388 str r0, [r1, #0x3c] b _0801676E .align 2, 0 _0801670C: .4byte 0x00000306 _08016710: .4byte 0x0000070E _08016714: .4byte 0x00001388 _08016718: movs r1, #0x10 ldrsh r0, [r2, r1] cmp r0, #0x6d bgt _0801673E movs r2, #0xca lsls r2, r2, #2 adds r1, r3, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r6 ldr r2, [r0] movs r3, #0x32 ldrsh r0, [r2, r3] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r2, #0x32] b _0801676E _0801673E: movs r5, #0xde lsls r5, r5, #2 adds r1, r3, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08016752 movs r0, #1 strb r0, [r1] b _08016754 _08016752: strb r4, [r1] _08016754: ldr r0, _08016788 @ =0x020314E0 ldr r3, [r0] ldr r1, _0801678C @ =0x0000132C adds r0, r3, r1 ldr r2, [r0] movs r4, #0x32 ldrsh r0, [r2, r4] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r2, #0x32] ldr r0, _08016790 @ =0x00000BB8 str r0, [r3, #0x3c] _0801676E: ldr r0, _08016788 @ =0x020314E0 ldr r0, [r0] movs r5, #0xc0 lsls r5, r5, #3 adds r0, r0, r5 movs r1, #0x2d strh r1, [r0] movs r0, #0x76 bl m4aSongNumStart bl _080171B8 .align 2, 0 _08016788: .4byte 0x020314E0 _0801678C: .4byte 0x0000132C _08016790: .4byte 0x00000BB8 _08016794: ldr r1, _080167BC @ =0x020314E0 ldr r0, [r1] ldr r2, _080167C0 @ =0x00000165 adds r0, r0, r2 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r1] adds r0, #0x20 strb r2, [r0] ldr r0, [r1] ldr r4, _080167C4 @ =0x00000732 adds r0, r0, r4 strb r3, [r0] ldr r0, [r1] ldr r5, _080167C8 @ =0x00000342 adds r0, r0, r5 strb r3, [r0] bl _080171B8 .align 2, 0 _080167BC: .4byte 0x020314E0 _080167C0: .4byte 0x00000165 _080167C4: .4byte 0x00000732 _080167C8: .4byte 0x00000342 _080167CC: ldr r0, _08016850 @ =0x020314E0 mov sb, r0 ldr r1, [r0] ldr r2, _08016854 @ =0x0000132C mov r8, r2 adds r0, r1, r2 ldr r2, [r0] movs r3, #0x10 ldrsh r0, [r2, r3] cmp r0, #0x77 bgt _0801685C movs r4, #0x32 ldrsh r0, [r2, r4] cmp r0, #0 bgt _080167EE bl _080171B8 _080167EE: movs r6, #0xda lsls r6, r6, #8 movs r5, #0x30 ldrsh r0, [r2, r5] adds r1, r0, #0 muls r1, r0, r1 movs r3, #0x32 ldrsh r0, [r2, r3] adds r4, r0, #0 muls r4, r0, r4 adds r0, r4, #0 adds r7, r1, r0 lsls r0, r7, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r7, r0, #0x11 adds r0, r6, #0 bl sub_C74 mov r5, sb ldr r1, [r5] add r1, r8 ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r5, _08016858 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 strh r0, [r4, #0x30] adds r0, r6, #0 bl sub_C24 mov r2, sb ldr r1, [r2] add r1, r8 ldr r4, [r1] rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 strh r0, [r4, #0x32] bl _080171B8 .align 2, 0 _08016850: .4byte 0x020314E0 _08016854: .4byte 0x0000132C _08016858: .4byte 0x00004E20 _0801685C: ldr r3, _08016868 @ =0x00000342 adds r1, r1, r3 movs r0, #1 strb r0, [r1] bl _080171B8 .align 2, 0 _08016868: .4byte 0x00000342 _0801686C: ldr r4, _080168AC @ =0x020314E0 ldr r3, [r4] ldr r1, _080168B0 @ =0x00000366 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08016882 bl _080171B8 _08016882: movs r2, #0xda lsls r2, r2, #2 adds r1, r3, r2 movs r2, #0 movs r0, #0x11 strh r0, [r1] adds r0, r3, #0 adds r0, #0x23 strb r2, [r0] ldr r0, [r4] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r3, #0xd8 lsls r3, r3, #8 adds r0, r3, #0 strh r0, [r5] _080168A4: movs r0, #1 strh r0, [r6] bl _080171B8 .align 2, 0 _080168AC: .4byte 0x020314E0 _080168B0: .4byte 0x00000366 _080168B4: ldr r1, _0801690C @ =0x020314E0 ldr r3, [r1] ldr r4, _08016910 @ =0x0000132C adds r0, r3, r4 ldr r0, [r0] ldrh r4, [r0, #0x10] adds r0, r3, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #0 ble _0801697C ldr r5, _08016914 @ =0x00000732 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801695A movs r2, #0xca lsls r2, r2, #1 adds r0, r3, r2 movs r3, #0xa strb r3, [r0] ldr r1, [r1] ldr r4, _08016918 @ =0x0000072B adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08016946 cmp r0, #0 bne _0801691C movs r0, #0xfa lsls r0, r0, #3 str r0, [r1, #0x3c] adds r1, r1, r2 movs r0, #1 strb r0, [r1] b _08016938 .align 2, 0 _0801690C: .4byte 0x020314E0 _08016910: .4byte 0x0000132C _08016914: .4byte 0x00000732 _08016918: .4byte 0x0000072B _0801691C: cmp r0, #1 bne _08016930 ldr r0, _0801692C @ =0x00001388 str r0, [r1, #0x3c] adds r1, r1, r2 movs r0, #5 strb r0, [r1] b _08016938 .align 2, 0 _0801692C: .4byte 0x00001388 _08016930: ldr r0, _0801696C @ =0x00002710 str r0, [r1, #0x3c] adds r0, r1, r2 strb r3, [r0] _08016938: mov r5, sb ldr r1, [r5] ldr r0, _08016970 @ =0x0000072B adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08016946: mov r1, sb ldr r0, [r1] movs r3, #0xcb lsls r3, r3, #1 adds r2, r0, r3 movs r1, #0 strh r1, [r2] ldr r4, _08016974 @ =0x0000072C adds r0, r0, r4 strh r1, [r0] _0801695A: mov r5, sb ldr r0, [r5] ldr r1, _08016978 @ =0x00000732 adds r0, r0, r1 movs r1, #1 strb r1, [r0] bl _080171B8 .align 2, 0 _0801696C: .4byte 0x00002710 _08016970: .4byte 0x0000072B _08016974: .4byte 0x0000072C _08016978: .4byte 0x00000732 _0801697C: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x48 bgt _08016A14 ldr r2, _080169B4 @ =0x00000732 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _080169EE movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 bgt _080169E0 ldr r4, _080169B8 @ =0x0000072E adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080169E0 cmp r0, #0 bne _080169BC movs r0, #0xfa lsls r0, r0, #3 b _080169CA .align 2, 0 _080169B4: .4byte 0x00000732 _080169B8: .4byte 0x0000072E _080169BC: cmp r0, #1 bne _080169C8 ldr r0, _080169C4 @ =0x00001388 b _080169CA .align 2, 0 _080169C4: .4byte 0x00001388 _080169C8: ldr r0, _08016A00 @ =0x00002710 _080169CA: str r0, [r3, #0x3c] ldr r0, _08016A04 @ =0x020314E0 ldr r1, [r0] ldr r5, _08016A08 @ =0x0000072E adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0x99 bl m4aSongNumStart _080169E0: ldr r0, _08016A04 @ =0x020314E0 ldr r1, [r0] ldr r2, _08016A0C @ =0x000006BC adds r1, r1, r2 movs r2, #1 strb r2, [r1] mov sb, r0 _080169EE: mov r3, sb ldr r0, [r3] ldr r4, _08016A10 @ =0x00000732 adds r0, r0, r4 movs r1, #2 strb r1, [r0] bl _080171B8 .align 2, 0 _08016A00: .4byte 0x00002710 _08016A04: .4byte 0x020314E0 _08016A08: .4byte 0x0000072E _08016A0C: .4byte 0x000006BC _08016A10: .4byte 0x00000732 _08016A14: cmp r0, #0x62 bgt _08016A88 movs r1, #0xe3 lsls r1, r1, #3 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08016A2E movs r0, #0xfa lsls r0, r0, #2 str r0, [r3, #0x3c] _08016A2E: mov r5, sb ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _08016A78 @ =0x00000732 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r1, [r5] ldr r2, _08016A7C @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08016A52 b _080171B8 _08016A52: ldr r5, _08016A80 @ =0x00000719 adds r0, r1, r5 subs r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08016A66 b _080171B8 _08016A66: strb r4, [r3] mov r3, sb ldr r0, [r3] ldr r4, _08016A84 @ =0x0000071C adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r1, [r3] b _08016E0A .align 2, 0 _08016A78: .4byte 0x00000732 _08016A7C: .4byte 0x0000071B _08016A80: .4byte 0x00000719 _08016A84: .4byte 0x0000071C _08016A88: cmp r0, #0x76 bgt _08016AFC ldr r1, _08016AEC @ =0x00000719 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08016AA0 movs r0, #0xfa lsls r0, r0, #2 str r0, [r3, #0x3c] _08016AA0: mov r5, sb ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _08016AF0 @ =0x00000732 adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r1, [r5] ldr r2, _08016AF4 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08016AC4 b _080171B8 _08016AC4: movs r5, #0xe3 lsls r5, r5, #3 adds r0, r1, r5 subs r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08016ADA b _080171B8 _08016ADA: strb r4, [r3] mov r3, sb ldr r0, [r3] ldr r4, _08016AF8 @ =0x0000071C adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r1, [r3] b _08016E0A .align 2, 0 _08016AEC: .4byte 0x00000719 _08016AF0: .4byte 0x00000732 _08016AF4: .4byte 0x0000071B _08016AF8: .4byte 0x0000071C _08016AFC: cmp r0, #0x92 bgt _08016B70 ldr r1, _08016B60 @ =0x0000071A adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08016B14 movs r0, #0xfa lsls r0, r0, #2 str r0, [r3, #0x3c] _08016B14: mov r5, sb ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _08016B64 @ =0x00000732 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r1, [r5] ldr r2, _08016B68 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08016B38 b _080171B8 _08016B38: movs r5, #0xe3 lsls r5, r5, #3 adds r0, r1, r5 subs r2, #2 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08016B4E b _080171B8 _08016B4E: strb r4, [r3] mov r3, sb ldr r0, [r3] ldr r4, _08016B6C @ =0x0000071C adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r1, [r3] b _08016E0A .align 2, 0 _08016B60: .4byte 0x0000071A _08016B64: .4byte 0x00000732 _08016B68: .4byte 0x0000071B _08016B6C: .4byte 0x0000071C _08016B70: ldr r5, _08016BA0 @ =0x00000732 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _08016C00 movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 bgt _08016BF4 ldr r1, _08016BA4 @ =0x0000072F adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08016BF4 cmp r0, #0 bne _08016BA8 movs r0, #0xfa lsls r0, r0, #3 b _08016BB6 .align 2, 0 _08016BA0: .4byte 0x00000732 _08016BA4: .4byte 0x0000072F _08016BA8: cmp r0, #1 bne _08016BB4 ldr r0, _08016BB0 @ =0x00001388 b _08016BB6 .align 2, 0 _08016BB0: .4byte 0x00001388 _08016BB4: ldr r0, _08016C10 @ =0x00002710 _08016BB6: str r0, [r3, #0x3c] ldr r4, _08016C14 @ =0x020314E0 ldr r1, [r4] ldr r5, _08016C18 @ =0x0000072F adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r4] movs r2, #0xe5 lsls r2, r2, #1 adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xd bne _08016BDC movs r0, #0x99 bl m4aSongNumStart _08016BDC: ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r4 cmp r0, #1 ble _08016BF4 ldr r4, _08016C1C @ =0x00000731 adds r1, r1, r4 movs r0, #1 strb r0, [r1] _08016BF4: mov r5, sb ldr r0, [r5] ldr r1, _08016C20 @ =0x000006BC adds r0, r0, r1 movs r1, #2 strb r1, [r0] _08016C00: mov r2, sb ldr r0, [r2] ldr r3, _08016C24 @ =0x00000732 adds r0, r0, r3 movs r1, #6 strb r1, [r0] b _080171B8 .align 2, 0 _08016C10: .4byte 0x00002710 _08016C14: .4byte 0x020314E0 _08016C18: .4byte 0x0000072F _08016C1C: .4byte 0x00000731 _08016C20: .4byte 0x000006BC _08016C24: .4byte 0x00000732 _08016C28: ldr r0, _08016C4C @ =0x020314E0 ldr r1, [r0] ldr r4, _08016C50 @ =0x0000132C adds r0, r1, r4 ldr r0, [r0] ldrh r4, [r0, #0x10] adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08016C58 ldr r5, _08016C54 @ =0x00000732 adds r1, r1, r5 movs r0, #7 strb r0, [r1] b _080171B8 .align 2, 0 _08016C4C: .4byte 0x020314E0 _08016C50: .4byte 0x0000132C _08016C54: .4byte 0x00000732 _08016C58: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x32 bgt _08016C70 ldr r0, _08016C6C @ =0x00000732 adds r1, r1, r0 movs r0, #8 strb r0, [r1] b _080171B8 .align 2, 0 _08016C6C: .4byte 0x00000732 _08016C70: ldr r2, _08016C7C @ =0x00000732 adds r1, r1, r2 movs r0, #9 strb r0, [r1] b _080171B8 .align 2, 0 _08016C7C: .4byte 0x00000732 _08016C80: ldr r4, _08016CD8 @ =0x020314E0 ldr r1, [r4] ldr r3, _08016CDC @ =0x0000132C adds r0, r1, r3 ldr r0, [r0] movs r5, #0x10 ldrsh r0, [r0, r5] cmp r0, #0x2e bgt _08016CF4 ldr r2, _08016CE0 @ =0x00000732 adds r0, r1, r2 movs r1, #0xa strb r1, [r0] ldr r1, [r4] movs r3, #0xe2 lsls r3, r3, #3 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016CAC b _080171B8 _08016CAC: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08016CE4 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016CC6 b _080171B8 _08016CC6: ldr r1, _08016CE8 @ =0x00000711 adds r0, r3, r1 ldr r2, _08016CEC @ =0x00000712 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016CF0 @ =0x00000713 b _08016DF0 .align 2, 0 _08016CD8: .4byte 0x020314E0 _08016CDC: .4byte 0x0000132C _08016CE0: .4byte 0x00000732 _08016CE4: .4byte 0x00000714 _08016CE8: .4byte 0x00000711 _08016CEC: .4byte 0x00000712 _08016CF0: .4byte 0x00000713 _08016CF4: cmp r0, #0x78 bgt _08016D50 ldr r5, _08016D40 @ =0x00000732 adds r0, r1, r5 movs r1, #0xb strb r1, [r0] ldr r1, [r4] ldr r0, _08016D44 @ =0x00000711 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016D10 b _080171B8 _08016D10: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08016D48 @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016D2A b _080171B8 _08016D2A: movs r2, #0xe2 lsls r2, r2, #3 adds r0, r3, r2 adds r2, #2 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016D4C @ =0x00000713 b _08016DF0 .align 2, 0 _08016D40: .4byte 0x00000732 _08016D44: .4byte 0x00000711 _08016D48: .4byte 0x00000714 _08016D4C: .4byte 0x00000713 _08016D50: cmp r0, #0xc1 bgt _08016DAC ldr r5, _08016D9C @ =0x00000732 adds r0, r1, r5 movs r1, #0xc strb r1, [r0] ldr r1, [r4] ldr r0, _08016DA0 @ =0x00000712 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016D6C b _080171B8 _08016D6C: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08016DA4 @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016D86 b _080171B8 _08016D86: movs r2, #0xe2 lsls r2, r2, #3 adds r0, r3, r2 adds r2, #1 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016DA8 @ =0x00000713 b _08016DF0 .align 2, 0 _08016D9C: .4byte 0x00000732 _08016DA0: .4byte 0x00000712 _08016DA4: .4byte 0x00000714 _08016DA8: .4byte 0x00000713 _08016DAC: ldr r5, _08016E14 @ =0x00000732 adds r0, r1, r5 movs r1, #0xd strb r1, [r0] ldr r1, [r4] ldr r0, _08016E18 @ =0x00000713 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016DC4 b _080171B8 _08016DC4: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08016E1C @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016DDE b _080171B8 _08016DDE: movs r2, #0xe2 lsls r2, r2, #3 adds r0, r3, r2 adds r2, #1 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016E20 @ =0x00000712 _08016DF0: adds r1, r3, r2 ldrb r1, [r1] ands r0, r1 cmp r0, #0 bne _08016DFC b _080171B8 _08016DFC: strb r6, [r5] ldr r0, [r4] ldr r3, _08016E24 @ =0x00000715 adds r0, r0, r3 movs r1, #0x7e strb r1, [r0] ldr r1, [r4] _08016E0A: movs r0, #0xfa lsls r0, r0, #4 str r0, [r1, #0x3c] b _080171B8 .align 2, 0 _08016E14: .4byte 0x00000732 _08016E18: .4byte 0x00000713 _08016E1C: .4byte 0x00000714 _08016E20: .4byte 0x00000712 _08016E24: .4byte 0x00000715 _08016E28: ldr r0, _08016E54 @ =0x020314E0 ldr r3, [r0] movs r4, #0xe2 lsls r4, r4, #1 adds r1, r3, r4 ldrh r1, [r1] mov sb, r0 cmp r1, #0 beq _08016E3C b _080171B8 _08016E3C: ldr r5, _08016E58 @ =0x0000132C adds r0, r3, r5 ldr r0, [r0] movs r1, #0x10 ldrsh r0, [r0, r1] cmp r0, #0x78 bgt _08016E5C movs r2, #0xe1 lsls r2, r2, #1 adds r1, r3, r2 movs r0, #1 b _08016E64 .align 2, 0 _08016E54: .4byte 0x020314E0 _08016E58: .4byte 0x0000132C _08016E5C: movs r4, #0xe1 lsls r4, r4, #1 adds r1, r3, r4 movs r0, #2 _08016E64: strb r0, [r1] mov r5, sb ldr r2, [r5] movs r0, #0xf1 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08016E96 adds r1, r0, #0 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 beq _08016E8E b _080171B8 _08016E8E: movs r4, #0xe2 lsls r4, r4, #1 adds r1, r2, r4 b _08016E9C _08016E96: movs r5, #0xe2 lsls r5, r5, #1 adds r1, r2, r5 _08016E9C: movs r0, #0x78 strh r0, [r1] b _080171B8 _08016EA2: ldr r6, _08016EF8 @ =0x020314E0 ldr r1, [r6] ldr r5, _08016EFC @ =0x00000616 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 beq _08016EB2 b _080171B8 _08016EB2: ldr r2, _08016F00 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] ldrh r2, [r0, #0x32] ldr r3, _08016F04 @ =0x00000614 adds r0, r1, r3 strh r2, [r0] lsls r0, r2, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08016ECE rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _08016ECE: movs r0, #0xe3 lsls r0, r0, #1 adds r4, r1, r0 lsls r0, r2, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa8 ble _08016EF0 movs r0, #0xa8 strh r0, [r4] _08016EF0: ldr r0, [r6] adds r0, r0, r5 movs r1, #0x14 b _080171B6 .align 2, 0 _08016EF8: .4byte 0x020314E0 _08016EFC: .4byte 0x00000616 _08016F00: .4byte 0x0000132C _08016F04: .4byte 0x00000614 _08016F08: ldr r5, _08017058 @ =0x020314E0 ldr r0, [r5] ldr r2, _0801705C @ =0x00000732 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe bne _08016F1A b _080171B8 _08016F1A: movs r0, #0xe strb r0, [r1] ldr r3, _08017060 @ =0x086ACE70 ldr r1, [r5] ldr r2, _08017064 @ =0x0000034A adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r3 ldrh r3, [r0] mov r8, r3 movs r4, #0 ldrsh r0, [r0, r4] ldr r3, _08017068 @ =0x0000034B adds r1, r1, r3 adds r1, r1, r0 movs r0, #0xa strb r0, [r1] ldr r1, [r5] adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r5] adds r2, r1, r2 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #3 bne _08016F88 ldr r4, _0801706C @ =0x00001378 adds r0, r1, r4 ldr r2, _08017070 @ =0x00001334 adds r1, r1, r2 movs r2, #0x44 bl memcpy ldr r1, [r5] ldr r3, _08017074 @ =0x00001330 adds r0, r1, r3 adds r4, r1, r4 str r4, [r0] ldr r4, _08017078 @ =0x00000342 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08016F88 movs r5, #0xd1 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #1 strb r0, [r1] _08016F88: ldr r0, _08017058 @ =0x020314E0 ldr r3, [r0] ldr r6, _08017064 @ =0x0000034A adds r1, r3, r6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sb, r0 cmp r1, #0xb bne _08016FA6 ldr r0, _08017074 @ =0x00001330 adds r1, r3, r0 ldr r2, _08017070 @ =0x00001334 adds r0, r3, r2 str r0, [r1] _08016FA6: mov r3, sb ldr r5, [r3] adds r0, r5, r6 movs r1, #0 ldrsb r1, [r0, r1] subs r0, r1, #1 adds r3, r0, #0 cmp r0, #0 bge _08016FBA adds r3, r1, #2 _08016FBA: asrs r3, r3, #2 lsls r3, r3, #2 ldr r2, _0801707C @ =gMain subs r3, r0, r3 adds r1, r3, #0 adds r1, #0x2f movs r0, #0xb8 muls r0, r1, r0 adds r0, r0, r2 movs r4, #0xbe lsls r4, r4, #2 adds r0, r0, r4 movs r7, #0 movs r4, #0 movs r1, #1 strh r1, [r0] ldr r1, _08017080 @ =0x00000355 adds r0, r5, r1 adds r0, r0, r3 strb r7, [r0] mov r5, sb ldr r2, [r5] lsls r1, r3, #1 ldr r5, _08017084 @ =0x0000035E adds r0, r2, r5 adds r0, r0, r1 strh r4, [r0] ldr r0, _08017088 @ =0x00000359 adds r1, r2, r0 adds r1, r1, r3 adds r2, r2, r6 ldrb r0, [r2] subs r0, #1 strb r0, [r1] mov r1, sb ldr r0, [r1] adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xc ble _0801700E strb r7, [r1] _0801700E: mov r2, r8 lsls r0, r2, #0x10 adds r3, r0, #0 cmp r3, #0 bne _08017030 mov r4, sb ldr r0, [r4] ldr r5, _0801708C @ =0x0000132C adds r0, r0, r5 ldr r2, [r0] movs r1, #0x32 ldrsh r0, [r2, r1] movs r1, #0x78 rsbs r1, r1, #0 cmp r0, r1 ble _08017030 strh r1, [r2, #0x32] _08017030: asrs r0, r3, #0x10 cmp r0, #2 beq _08017038 b _080171B8 _08017038: mov r2, sb ldr r0, [r2] ldr r3, _0801708C @ =0x0000132C adds r0, r0, r3 ldr r2, [r0] movs r4, #0x32 ldrsh r1, [r2, r4] movs r0, #0xb4 rsbs r0, r0, #0 cmp r1, r0 bgt _08017050 b _080171B8 _08017050: ldr r0, _08017090 @ =0x0000FF4C strh r0, [r2, #0x32] b _080171B8 .align 2, 0 _08017058: .4byte 0x020314E0 _0801705C: .4byte 0x00000732 _08017060: .4byte 0x086ACE70 _08017064: .4byte 0x0000034A _08017068: .4byte 0x0000034B _0801706C: .4byte 0x00001378 _08017070: .4byte 0x00001334 _08017074: .4byte 0x00001330 _08017078: .4byte 0x00000342 _0801707C: .4byte gMain _08017080: .4byte 0x00000355 _08017084: .4byte 0x0000035E _08017088: .4byte 0x00000359 _0801708C: .4byte 0x0000132C _08017090: .4byte 0x0000FF4C _08017094: ldr r5, _08017144 @ =0x020314E0 ldr r0, [r5] ldr r2, _08017148 @ =0x00000732 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf bne _080170A6 b _080171B8 _080170A6: movs r0, #0xf strb r0, [r1] ldr r2, _0801714C @ =0x086ACE70 ldr r1, [r5] ldr r6, _08017150 @ =0x0000034A adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r2 movs r3, #0 ldrsh r7, [r0, r3] ldr r4, _08017154 @ =0x0000034B adds r1, r1, r4 adds r1, r1, r7 movs r0, #0xa strb r0, [r1] ldr r1, [r5] adds r1, r1, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r4, [r5] adds r0, r4, r6 movs r1, #0 ldrsb r1, [r0, r1] subs r0, r1, #1 adds r3, r0, #0 cmp r0, #0 bge _080170E6 adds r3, r1, #2 _080170E6: asrs r3, r3, #2 lsls r3, r3, #2 ldr r2, _08017158 @ =gMain subs r3, r0, r3 adds r1, r3, #0 adds r1, #0x2f movs r0, #0xb8 muls r0, r1, r0 adds r0, r0, r2 movs r1, #0xbe lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 movs r1, #1 strh r1, [r0] ldr r1, _0801715C @ =0x00000355 adds r0, r4, r1 adds r0, r0, r3 strb r2, [r0] ldr r2, [r5] lsls r1, r3, #1 ldr r4, _08017160 @ =0x0000035E adds r0, r2, r4 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r0, _08017164 @ =0x00000359 adds r1, r2, r0 adds r1, r1, r3 adds r2, r2, r6 ldrb r0, [r2] subs r0, #1 strb r0, [r1] cmp r7, #1 bne _080171B8 ldr r0, [r5] ldr r1, _08017168 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] movs r2, #0x32 ldrsh r0, [r1, r2] movs r3, #0x96 rsbs r3, r3, #0 cmp r0, r3 ble _080171B8 strh r3, [r1, #0x32] b _080171B8 .align 2, 0 _08017144: .4byte 0x020314E0 _08017148: .4byte 0x00000732 _0801714C: .4byte 0x086ACE70 _08017150: .4byte 0x0000034A _08017154: .4byte 0x0000034B _08017158: .4byte gMain _0801715C: .4byte 0x00000355 _08017160: .4byte 0x0000035E _08017164: .4byte 0x00000359 _08017168: .4byte 0x0000132C _0801716C: ldr r3, _08017190 @ =0x020314E0 ldr r1, [r3] ldr r4, _08017194 @ =0x0000132C adds r0, r1, r4 ldr r0, [r0] movs r5, #0x12 ldrsh r0, [r0, r5] cmp r0, #0x4f bgt _0801719C ldr r0, _08017198 @ =0x00000306 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bne _080171B8 movs r0, #2 strb r0, [r1] b _080171B8 .align 2, 0 _08017190: .4byte 0x020314E0 _08017194: .4byte 0x0000132C _08017198: .4byte 0x00000306 _0801719C: ldr r4, _080171C4 @ =0x00000306 adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _080171B8 movs r1, #0 movs r0, #3 strb r0, [r2] ldr r0, [r3] movs r5, #0xc3 lsls r5, r5, #2 adds r0, r0, r5 _080171B6: strh r1, [r0] _080171B8: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080171C4: .4byte 0x00000306 thumb_func_start sub_171C8 sub_171C8: @ 0x080171C8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _080172CC @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _080172D0 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r0, sb movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _080171FA adds r0, r4, #7 _080171FA: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _080172D4 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08017216 adds r0, r3, #7 _08017216: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _080172D8 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08017242 adds r2, #0x3f _08017242: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _080172DC @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_173FC ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _080172C0 b _080173DA _080172C0: lsls r0, r0, #2 ldr r1, _080172E0 @ =_080172E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080172CC: .4byte 0x020314E0 _080172D0: .4byte 0x0000132C _080172D4: .4byte 0xFFFF0000 _080172D8: .4byte 0x0000FFFF _080172DC: .4byte 0x02031520 _080172E0: .4byte _080172E4 _080172E4: @ jump table .4byte _080172FC @ case 0 .4byte _080173A8 @ case 1 .4byte _080173A8 @ case 2 .4byte _080172FC @ case 3 .4byte _080173D8 @ case 4 .4byte _080172FC @ case 5 _080172FC: ldr r2, _08017374 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _08017378 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _0801739C ldr r0, [r2] ldr r7, _0801737C @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08017380 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08017348 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _0801739C _08017348: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _08017366 cmp r0, #0 bne _08017392 ldr r0, _08017384 @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08017388 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _08017366: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _0801739C .align 2, 0 _08017374: .4byte 0x020314E0 _08017378: .4byte 0xFFFFC010 _0801737C: .4byte 0x0000132C _08017380: .4byte 0x02031520 _08017384: .4byte gMain _08017388: ldr r0, _080173A4 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08017392: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _0801739C: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _080173DA .align 2, 0 _080173A4: .4byte 0x0000FFD8 _080173A8: ldr r2, _080173D0 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _080173D4 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _080173DA .align 2, 0 _080173D0: .4byte 0x020314E0 _080173D4: .4byte 0x0000FFF0 _080173D8: movs r6, #4 _080173DA: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_17634 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_173FC sub_173FC: @ 0x080173FC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 mov sb, r1 mov ip, r2 movs r7, #0 movs r3, #0 ldr r1, _08017494 @ =0x020314E0 ldr r5, [r1] ldr r2, _08017498 @ =0x00000387 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r1 cmp r0, #2 bne _080174C0 mov r1, ip ldrb r0, [r1] cmp r0, #0 beq _0801742C b _080175FE _0801742C: adds r2, #0x69 adds r0, r5, r2 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801749C @ =0x000003F2 adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x5f bls _0801744E b _080175FE _0801744E: lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x77 bls _08017458 b _080175FE _08017458: ldr r2, _080174A0 @ =0x083071D4 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _080174A4 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 bne _0801747A b _080175FE _0801747A: movs r1, #0xf7 lsls r1, r1, #2 adds r0, r5, r1 ldrb r0, [r0] subs r0, #3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080174A8 movs r0, #1 mov r2, ip strb r0, [r2] b _080174AC .align 2, 0 _08017494: .4byte 0x020314E0 _08017498: .4byte 0x00000387 _0801749C: .4byte 0x000003F2 _080174A0: .4byte 0x083071D4 _080174A4: .4byte 0x0000FFF0 _080174A8: mov r0, ip strb r3, [r0] _080174AC: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #4 strb r1, [r0] mov r0, sb strh r7, [r0] b _080175FE _080174C0: cmp r0, #1 beq _080174C6 b _080175FE _080174C6: mov r1, ip ldrb r0, [r1] cmp r0, #0 beq _080174D0 b _080175FE _080174D0: ldr r2, _0801760C @ =0x000003A9 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801752C movs r1, #0xf4 lsls r1, r1, #2 adds r0, r5, r1 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08017610 @ =0x000003D2 adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _0801752C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _0801752C ldr r2, _08017614 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08017618 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 beq _08017530 movs r2, #0xe8 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #4 strb r0, [r1] _0801752C: cmp r3, #0 bne _080175F4 _08017530: mov r0, r8 ldr r5, [r0] ldr r1, _0801761C @ =0x000003AA adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801758E movs r2, #0xf5 lsls r2, r2, #2 adds r0, r5, r2 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08017620 @ =0x000003D6 adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _0801758E lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _0801758E ldr r2, _08017614 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08017618 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 beq _08017592 ldr r2, _08017624 @ =0x000003A1 adds r1, r5, r2 movs r0, #4 strb r0, [r1] _0801758E: cmp r3, #0 bne _080175F4 _08017592: mov r0, r8 ldr r5, [r0] ldr r1, _08017628 @ =0x000003AB adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080175F0 movs r2, #0xf6 lsls r2, r2, #2 adds r0, r5, r2 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801762C @ =0x000003DA adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _080175F0 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080175F0 ldr r2, _08017614 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08017618 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 beq _080175FE ldr r2, _08017630 @ =0x000003A2 adds r1, r5, r2 movs r0, #4 strb r0, [r1] _080175F0: cmp r3, #0 beq _080175FE _080175F4: mov r0, sb strh r7, [r0] movs r0, #6 mov r1, ip strb r0, [r1] _080175FE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801760C: .4byte 0x000003A9 _08017610: .4byte 0x000003D2 _08017614: .4byte 0x08252B10 _08017618: .4byte 0x0000FFF0 _0801761C: .4byte 0x000003AA _08017620: .4byte 0x000003D6 _08017624: .4byte 0x000003A1 _08017628: .4byte 0x000003AB _0801762C: .4byte 0x000003DA _08017630: .4byte 0x000003A2 thumb_func_start sub_17634 sub_17634: @ 0x08017634 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _080176A6 lsls r0, r0, #2 ldr r1, _08017648 @ =_0801764C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017648: .4byte _0801764C _0801764C: @ jump table .4byte _080176A6 @ case 0 .4byte _080176A6 @ case 1 .4byte _080176A6 @ case 2 .4byte _08017688 @ case 3 .4byte _080176A6 @ case 4 .4byte _080176A6 @ case 5 .4byte _080176A6 @ case 6 .4byte _080176A6 @ case 7 .4byte _080176A6 @ case 8 .4byte _080176A6 @ case 9 .4byte _080176A6 @ case 10 .4byte _080176A6 @ case 11 .4byte _080176A6 @ case 12 .4byte _080176A6 @ case 13 .4byte _080176A6 @ case 14 _08017688: ldr r2, _080176A8 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] ldr r0, [r2] ldr r1, _080176AC @ =0x00000387 adds r0, r0, r1 strb r3, [r0] _080176A6: bx lr .align 2, 0 _080176A8: .4byte 0x020314E0 _080176AC: .4byte 0x00000387 thumb_func_start sub_176B0 sub_176B0: @ 0x080176B0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov r8, r0 mov sl, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _080177B0 @ =0x020314E0 ldr r0, [r0] mov sb, r0 ldr r0, _080177B4 @ =0x0000132C add r0, sb ldr r0, [r0] strh r1, [r0, #4] mov r0, r8 movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _080176E2 adds r0, r4, #7 _080176E2: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _080177B8 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r0, r8 movs r2, #2 ldrsh r3, [r0, r2] adds r0, r3, #0 cmp r3, #0 bge _080176FE adds r0, r3, #7 _080176FE: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _080177BC @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _0801772A adds r2, #0x3f _0801772A: asrs r2, r2, #6 mov r0, sb adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r0, _080177C0 @ =0x02031520 mov ip, r0 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, r8 mov r1, sp adds r2, r4, #0 bl sub_17898 ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r5, r0, #4 subs r0, r3, #1 cmp r0, #5 bhi _08017876 lsls r0, r0, #2 ldr r1, _080177C4 @ =_080177C8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080177B0: .4byte 0x020314E0 _080177B4: .4byte 0x0000132C _080177B8: .4byte 0xFFFF0000 _080177BC: .4byte 0x0000FFFF _080177C0: .4byte 0x02031520 _080177C4: .4byte _080177C8 _080177C8: @ jump table .4byte _080177E0 @ case 0 .4byte _08017804 @ case 1 .4byte _08017804 @ case 2 .4byte _080177E0 @ case 3 .4byte _08017874 @ case 4 .4byte _080177E0 @ case 5 _080177E0: ldr r2, _08017800 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #1 strb r1, [r0] mov r0, sp ldrh r0, [r0] mov r2, sl strh r0, [r2] mov r4, sp strh r1, [r4, #4] b _08017876 .align 2, 0 _08017800: .4byte 0x020314E0 _08017804: ldr r2, _0801785C @ =0x020314E0 ldr r0, [r2] adds r0, #0x23 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r3, #1 strb r3, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08017860 @ =0x0000FFF0 ands r0, r1 mov r1, sl strh r0, [r1] mov r4, sp strh r3, [r4, #4] ldr r1, [r2] ldr r0, _08017864 @ =0x00000404 adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] adds r4, r2, #0 cmp r0, #0 bne _0801784E ldr r2, _08017868 @ =0x00000406 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 bne _0801784E movs r0, #1 strb r0, [r3] ldr r0, [r4] ldr r1, _0801786C @ =0x0000040A adds r0, r0, r1 strh r2, [r0] _0801784E: ldr r0, [r4] ldr r2, _08017870 @ =0x0000040C adds r0, r0, r2 movs r1, #0x28 strh r1, [r0] b _08017876 .align 2, 0 _0801785C: .4byte 0x020314E0 _08017860: .4byte 0x0000FFF0 _08017864: .4byte 0x00000404 _08017868: .4byte 0x00000406 _0801786C: .4byte 0x0000040A _08017870: .4byte 0x0000040C _08017874: movs r5, #4 _08017876: adds r0, r5, #0 add r1, sp, #4 mov r2, sl bl sub_179D0 mov r4, sp movs r1, #4 ldrsh r0, [r4, r1] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_17898 sub_17898: @ 0x08017898 push {r4, r5, r6, r7, lr} adds r3, r0, #0 adds r7, r1, #0 adds r4, r2, #0 ldr r0, _08017924 @ =0x020314E0 ldr r5, [r0] ldr r1, _08017928 @ =0x00000387 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08017938 ldrb r1, [r4] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _080178C0 b _080179B8 _080178C0: movs r1, #0xfc lsls r1, r1, #2 adds r0, r5, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801792C @ =0x000003F2 adds r1, r5, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _080179B8 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x57 bhi _080179B8 ldr r2, _08017930 @ =0x0832D604 asrs r0, r3, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrb r0, [r0] adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _080179B8 ldr r1, _08017934 @ =0x0000132C adds r0, r5, r1 ldr r0, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080179B8 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bgt _080179B8 movs r0, #9 strb r0, [r1] b _080179B8 .align 2, 0 _08017924: .4byte 0x020314E0 _08017928: .4byte 0x00000387 _0801792C: .4byte 0x000003F2 _08017930: .4byte 0x0832D604 _08017934: .4byte 0x0000132C _08017938: cmp r0, #2 bne _080179B8 ldrb r1, [r4] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _080179B8 movs r1, #0xfc lsls r1, r1, #2 adds r0, r5, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _080179C0 @ =0x000003F2 adds r1, r5, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x57 bhi _080179B8 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080179B8 ldr r2, _080179C4 @ =0x08330204 asrs r1, r1, #0x10 movs r0, #0x58 muls r0, r1, r0 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _080179C8 @ =0x0000FFF0 ands r2, r0 adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _080179B8 ldr r1, _080179CC @ =0x0000132C adds r0, r5, r1 ldr r0, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080179B8 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xc beq _080179B8 movs r0, #0xb strb r0, [r1] strh r2, [r7] movs r0, #6 strb r0, [r4] _080179B8: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080179C0: .4byte 0x000003F2 _080179C4: .4byte 0x08330204 _080179C8: .4byte 0x0000FFF0 _080179CC: .4byte 0x0000132C thumb_func_start sub_179D0 sub_179D0: @ 0x080179D0 push {r4, lr} lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldr r2, _080179F8 @ =0x020314E0 ldr r1, [r2] ldr r3, _080179FC @ =0x0000132C adds r1, r1, r3 ldr r1, [r1] ldrh r3, [r1, #0x10] ldrh r4, [r1, #0x12] subs r0, #1 cmp r0, #0xe bls _080179EC b _08017C12 _080179EC: lsls r0, r0, #2 ldr r1, _08017A00 @ =_08017A04 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080179F8: .4byte 0x020314E0 _080179FC: .4byte 0x0000132C _08017A00: .4byte _08017A04 _08017A04: @ jump table .4byte _08017C12 @ case 0 .4byte _08017C12 @ case 1 .4byte _08017C12 @ case 2 .4byte _08017C12 @ case 3 .4byte _08017C12 @ case 4 .4byte _08017C12 @ case 5 .4byte _08017C12 @ case 6 .4byte _08017A40 @ case 7 .4byte _08017A88 @ case 8 .4byte _08017ACA @ case 9 .4byte _08017BA4 @ case 10 .4byte _08017BEC @ case 11 .4byte _08017C12 @ case 12 .4byte _08017C12 @ case 13 .4byte _08017C12 @ case 14 _08017A40: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017A68 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x38 bgt _08017A5C ldr r0, [r2] ldr r1, _08017A58 @ =0x0000041C adds r2, r0, r1 b _08017C06 .align 2, 0 _08017A58: .4byte 0x0000041C _08017A5C: ldr r0, [r2] ldr r3, _08017A64 @ =0x0000041D b _08017C04 .align 2, 0 _08017A64: .4byte 0x0000041D _08017A68: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x63 bgt _08017A7C ldr r0, [r2] ldr r1, _08017A78 @ =0x0000041F adds r2, r0, r1 b _08017C06 .align 2, 0 _08017A78: .4byte 0x0000041F _08017A7C: ldr r0, [r2] ldr r3, _08017A84 @ =0x0000041E b _08017C04 .align 2, 0 _08017A84: .4byte 0x0000041E _08017A88: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017AB0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017AA4 ldr r0, [r2] ldr r1, _08017AA0 @ =0x00000427 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017AA0: .4byte 0x00000427 _08017AA4: ldr r0, [r2] ldr r3, _08017AAC @ =0x00000425 b _08017C04 .align 2, 0 _08017AAC: .4byte 0x00000425 _08017AB0: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017AC2 ldr r0, [r2] movs r1, #0x85 lsls r1, r1, #3 adds r2, r0, r1 b _08017C06 _08017AC2: ldr r0, [r2] movs r3, #0x84 lsls r3, r3, #3 b _08017C04 _08017ACA: ldr r1, [r2] movs r3, #0x82 lsls r3, r3, #3 adds r0, r1, r3 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08017B08 ldr r0, _08017B00 @ =0x0000042A adds r1, r1, r0 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r1, _08017B04 @ =0x0000132C adds r3, r2, r1 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd0 strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xd2 strh r0, [r2] b _08017C12 .align 2, 0 _08017B00: .4byte 0x0000042A _08017B04: .4byte 0x0000132C _08017B08: cmp r0, #3 bne _08017B3C ldr r3, _08017B34 @ =0x0000042B adds r1, r1, r3 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r0, _08017B38 @ =0x0000132C adds r3, r2, r0 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd4 strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xd6 strh r0, [r2] b _08017C12 .align 2, 0 _08017B34: .4byte 0x0000042B _08017B38: .4byte 0x0000132C _08017B3C: cmp r0, #6 bne _08017B70 ldr r3, _08017B68 @ =0x0000042C adds r1, r1, r3 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r0, _08017B6C @ =0x0000132C adds r3, r2, r0 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd8 strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xda strh r0, [r2] b _08017C12 .align 2, 0 _08017B68: .4byte 0x0000042C _08017B6C: .4byte 0x0000132C _08017B70: cmp r0, #9 bne _08017C12 ldr r3, _08017B9C @ =0x0000042D adds r1, r1, r3 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r0, _08017BA0 @ =0x0000132C adds r3, r2, r0 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xdc strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xde strh r0, [r2] b _08017C12 .align 2, 0 _08017B9C: .4byte 0x0000042D _08017BA0: .4byte 0x0000132C _08017BA4: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017BCC lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017BC0 ldr r0, [r2] ldr r1, _08017BBC @ =0x00000429 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017BBC: .4byte 0x00000429 _08017BC0: ldr r0, [r2] ldr r3, _08017BC8 @ =0x00000422 b _08017C04 .align 2, 0 _08017BC8: .4byte 0x00000422 _08017BCC: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017BE0 ldr r0, [r2] ldr r1, _08017BDC @ =0x00000426 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017BDC: .4byte 0x00000426 _08017BE0: ldr r0, [r2] ldr r3, _08017BE8 @ =0x00000421 b _08017C04 .align 2, 0 _08017BE8: .4byte 0x00000421 _08017BEC: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017C00 ldr r0, [r2] ldr r1, _08017BFC @ =0x00000424 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017BFC: .4byte 0x00000424 _08017C00: ldr r0, [r2] ldr r3, _08017C18 @ =0x00000423 _08017C04: adds r2, r0, r3 _08017C06: movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 bgt _08017C12 movs r0, #0x18 strb r0, [r2] _08017C12: pop {r4} pop {r0} bx r0 .align 2, 0 _08017C18: .4byte 0x00000423 thumb_func_start sub_17C1C sub_17C1C: @ 0x08017C1C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r3, r0, #0 ldr r0, _08017CF8 @ =0x020314E0 ldr r1, [r0] movs r2, #0xfe lsls r2, r2, #2 adds r1, r1, r2 movs r2, #1 strb r2, [r1] movs r1, #0 ldrsh r4, [r3, r1] adds r1, r4, #0 mov ip, r0 cmp r4, #0 bge _08017C42 adds r1, r4, #7 _08017C42: asrs r1, r1, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08017CFC @ =0xFFFF0000 mov r8, r2 ands r6, r2 orrs r6, r0 movs r0, #2 ldrsh r3, [r3, r0] adds r0, r3, #0 cmp r3, #0 bge _08017C5C adds r0, r3, #7 _08017C5C: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r5, _08017D00 @ =0x0000FFFF ands r6, r5 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, r8 ands r7, r4 orrs r7, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r7, r5 orrs r7, r0 orrs r6, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08017C88 adds r2, #0x3f _08017C88: asrs r2, r2, #6 mov r0, ip ldr r0, [r0] mov r8, r0 adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r6, r5 ldr r4, _08017D04 @ =0x02031520 adds r3, r3, r2 lsls r3, r3, #2 adds r2, r4, #0 adds r2, #0x38 adds r2, r3, r2 lsls r0, r6, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r7, #0x10 lsls r0, r7, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 adds r4, #0x58 adds r3, r3, r4 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] lsrs r1, r1, #4 movs r0, #0x80 lsls r0, r0, #3 add r0, r8 ldrh r3, [r0] ldr r2, _08017D08 @ =0x00000402 add r2, r8 ldrh r4, [r2] adds r0, r1, #0 subs r0, #8 cmp r0, #4 bls _08017CEE b _08017F18 _08017CEE: lsls r0, r0, #2 ldr r1, _08017D0C @ =_08017D10 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017CF8: .4byte 0x020314E0 _08017CFC: .4byte 0xFFFF0000 _08017D00: .4byte 0x0000FFFF _08017D04: .4byte 0x02031520 _08017D08: .4byte 0x00000402 _08017D0C: .4byte _08017D10 _08017D10: @ jump table .4byte _08017D24 @ case 0 .4byte _08017D74 @ case 1 .4byte _08017DBE @ case 2 .4byte _08017E9C @ case 3 .4byte _08017EEC @ case 4 _08017D24: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017D50 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x38 bgt _08017D40 mov r3, ip ldr r0, [r3] ldr r4, _08017D3C @ =0x0000041C b _08017F0A .align 2, 0 _08017D3C: .4byte 0x0000041C _08017D40: mov r1, ip ldr r0, [r1] ldr r2, _08017D4C @ =0x0000041D adds r1, r0, r2 b _08017F0C .align 2, 0 _08017D4C: .4byte 0x0000041D _08017D50: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x63 bgt _08017D64 mov r3, ip ldr r0, [r3] ldr r4, _08017D60 @ =0x0000041F b _08017F0A .align 2, 0 _08017D60: .4byte 0x0000041F _08017D64: mov r1, ip ldr r0, [r1] ldr r2, _08017D70 @ =0x0000041E adds r1, r0, r2 b _08017F0C .align 2, 0 _08017D70: .4byte 0x0000041E _08017D74: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017DA0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017D90 mov r3, ip ldr r0, [r3] ldr r4, _08017D8C @ =0x00000427 b _08017F0A .align 2, 0 _08017D8C: .4byte 0x00000427 _08017D90: mov r1, ip ldr r0, [r1] ldr r2, _08017D9C @ =0x00000425 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017D9C: .4byte 0x00000425 _08017DA0: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017DB2 mov r3, ip ldr r0, [r3] movs r4, #0x85 lsls r4, r4, #3 b _08017F0A _08017DB2: mov r1, ip ldr r0, [r1] movs r2, #0x84 lsls r2, r2, #3 adds r1, r0, r2 b _08017F0C _08017DBE: mov r3, ip ldr r0, [r3] movs r4, #0xfe lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r2, [r3] ldr r1, _08017E10 @ =0x00000412 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08017E18 adds r4, #8 adds r0, r2, r4 ldr r1, [r0] ldr r3, _08017E14 @ =0x00000434 adds r0, r2, r3 ldr r0, [r0] cmp r1, r0 bne _08017DEC b _08017F18 _08017DEC: adds r4, #0x2e adds r1, r2, r4 movs r0, #0x11 strb r0, [r1] mov r0, ip ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #3 adds r0, r1, r2 ldrh r2, [r0] adds r0, r1, r3 strh r2, [r0] subs r3, #0x32 adds r0, r1, r3 ldrh r0, [r0] adds r4, #8 b _08017E90 .align 2, 0 _08017E10: .4byte 0x00000412 _08017E14: .4byte 0x00000434 _08017E18: cmp r0, #8 bne _08017E58 movs r1, #0x80 lsls r1, r1, #3 adds r0, r2, r1 ldr r1, [r0] movs r3, #0x87 lsls r3, r3, #3 adds r0, r2, r3 ldr r0, [r0] cmp r1, r0 beq _08017F18 ldr r4, _08017E54 @ =0x0000042F adds r1, r2, r4 movs r0, #0x11 strb r0, [r1] mov r0, ip ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #3 adds r0, r1, r2 ldrh r2, [r0] adds r0, r1, r3 strh r2, [r0] subs r3, #0x36 adds r0, r1, r3 ldrh r0, [r0] adds r4, #0xb b _08017E90 .align 2, 0 _08017E54: .4byte 0x0000042F _08017E58: cmp r0, #0x10 bne _08017F18 movs r1, #0x80 lsls r1, r1, #3 adds r0, r2, r1 ldr r1, [r0] ldr r3, _08017E98 @ =0x0000043C adds r0, r2, r3 ldr r0, [r0] cmp r1, r0 beq _08017F18 movs r4, #0x86 lsls r4, r4, #3 adds r1, r2, r4 movs r0, #0x11 strb r0, [r1] mov r0, ip ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #3 adds r0, r1, r2 ldrh r2, [r0] adds r0, r1, r3 strh r2, [r0] subs r3, #0x3a adds r0, r1, r3 ldrh r0, [r0] adds r4, #0xe _08017E90: adds r1, r1, r4 strh r0, [r1] b _08017F18 .align 2, 0 _08017E98: .4byte 0x0000043C _08017E9C: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017EC8 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017EBC mov r1, ip ldr r0, [r1] ldr r2, _08017EB8 @ =0x00000429 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017EB8: .4byte 0x00000429 _08017EBC: mov r3, ip ldr r0, [r3] ldr r4, _08017EC4 @ =0x00000422 b _08017F0A .align 2, 0 _08017EC4: .4byte 0x00000422 _08017EC8: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017EE0 mov r1, ip ldr r0, [r1] ldr r2, _08017EDC @ =0x00000426 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017EDC: .4byte 0x00000426 _08017EE0: mov r3, ip ldr r0, [r3] ldr r4, _08017EE8 @ =0x00000421 b _08017F0A .align 2, 0 _08017EE8: .4byte 0x00000421 _08017EEC: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017F04 mov r1, ip ldr r0, [r1] ldr r2, _08017F00 @ =0x00000424 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017F00: .4byte 0x00000424 _08017F04: mov r3, ip ldr r0, [r3] ldr r4, _08017F24 @ =0x00000423 _08017F0A: adds r1, r0, r4 _08017F0C: movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08017F18 movs r0, #0x18 strb r0, [r1] _08017F18: add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08017F24: .4byte 0x00000423 thumb_func_start sub_17F28 sub_17F28: @ 0x08017F28 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r3, #0 strh r3, [r2] ldr r0, _08018018 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _0801801C @ =0x0000132C add r0, sl ldr r0, [r0] strh r3, [r0, #4] mov r0, sb movs r4, #2 ldrsh r1, [r0, r4] ldr r0, _08018020 @ =0x000001FF cmp r1, r0 bgt _08018030 mov r7, sb movs r0, #0 ldrsh r4, [r7, r0] adds r0, r4, #0 cmp r4, #0 bge _08017F66 adds r0, r4, #7 _08017F66: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08018024 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08017F82 adds r0, r3, #7 _08017F82: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08018028 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08017FAE adds r2, #0x3f _08017FAE: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _0801802C @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] mov r0, sp adds r0, #2 strb r1, [r0] adds r4, r0, #0 b _0801803E .align 2, 0 _08018018: .4byte 0x020314E0 _0801801C: .4byte 0x0000132C _08018020: .4byte 0x000001FF _08018024: .4byte 0xFFFF0000 _08018028: .4byte 0x0000FFFF _0801802C: .4byte 0x02031520 _08018030: mov r0, sp strh r3, [r0] mov r1, sp adds r1, #2 movs r0, #0 strb r0, [r1] adds r4, r1, #0 _0801803E: mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_18180 ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08018058 b _0801815E _08018058: lsls r0, r0, #2 ldr r1, _08018064 @ =_08018068 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018064: .4byte _08018068 _08018068: @ jump table .4byte _08018080 @ case 0 .4byte _0801812C @ case 1 .4byte _0801812C @ case 2 .4byte _08018080 @ case 3 .4byte _0801815C @ case 4 .4byte _08018080 @ case 5 _08018080: ldr r2, _080180F8 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _080180FC @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08018120 ldr r0, [r2] ldr r7, _08018100 @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08018104 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _080180CC movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08018120 _080180CC: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _080180EA cmp r0, #0 bne _08018116 ldr r0, _08018108 @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _0801810C movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _080180EA: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _08018120 .align 2, 0 _080180F8: .4byte 0x020314E0 _080180FC: .4byte 0xFFFFC010 _08018100: .4byte 0x0000132C _08018104: .4byte 0x02031520 _08018108: .4byte gMain _0801810C: ldr r0, _08018128 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08018116: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _08018120: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _0801815E .align 2, 0 _08018128: .4byte 0x0000FFD8 _0801812C: ldr r2, _08018154 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018158 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _0801815E .align 2, 0 _08018154: .4byte 0x020314E0 _08018158: .4byte 0x0000FFF0 _0801815C: movs r6, #4 _0801815E: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_182B4 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_18180 sub_18180: @ 0x08018180 push {r4, r5, r6, r7, lr} adds r3, r0, #0 adds r6, r1, #0 adds r5, r2, #0 ldr r0, _080181DC @ =0x020314E0 ldr r4, [r0] ldr r1, _080181E0 @ =0x00000387 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080181EC ldrb r1, [r5] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801829C movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _080181E4 @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x77 bhi _0801829C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x97 bhi _0801829C ldr r2, _080181E8 @ =0x08340B58 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 b _08018278 .align 2, 0 _080181DC: .4byte 0x020314E0 _080181E0: .4byte 0x00000387 _080181E4: .4byte 0x000003F2 _080181E8: .4byte 0x08340B58 _080181EC: cmp r0, #2 bne _08018234 ldrb r1, [r5] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801829C movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801822C @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x5f bhi _0801829C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x57 bhi _0801829C ldr r2, _08018230 @ =0x083499D8 b _08018270 .align 2, 0 _0801822C: .4byte 0x000003F2 _08018230: .4byte 0x083499D8 _08018234: cmp r0, #3 bne _0801829C ldrb r1, [r5] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801829C movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _080182A4 @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x5f bhi _0801829C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x67 bhi _0801829C ldr r2, _080182A8 @ =0x0834DBD8 _08018270: asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 _08018278: asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _080182AC @ =0x0000FFF0 ands r2, r0 adds r3, r7, #0 ands r3, r0 cmp r3, #0 beq _0801829C ldr r1, _080182B0 @ =0x00000452 adds r0, r4, r1 movs r1, #8 strh r1, [r0] strh r2, [r6] movs r0, #6 strb r0, [r5] _0801829C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080182A4: .4byte 0x000003F2 _080182A8: .4byte 0x0834DBD8 _080182AC: .4byte 0x0000FFF0 _080182B0: .4byte 0x00000452 thumb_func_start sub_182B4 sub_182B4: @ 0x080182B4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _0801831C lsls r0, r0, #2 ldr r1, _080182C8 @ =_080182CC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080182C8: .4byte _080182CC _080182CC: @ jump table .4byte _0801831C @ case 0 .4byte _0801831C @ case 1 .4byte _0801831C @ case 2 .4byte _08018308 @ case 3 .4byte _0801831C @ case 4 .4byte _0801831C @ case 5 .4byte _0801831C @ case 6 .4byte _0801831C @ case 7 .4byte _0801831C @ case 8 .4byte _0801831C @ case 9 .4byte _0801831C @ case 10 .4byte _0801831C @ case 11 .4byte _0801831C @ case 12 .4byte _0801831C @ case 13 .4byte _0801831C @ case 14 _08018308: ldr r2, _08018320 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] _0801831C: bx lr .align 2, 0 _08018320: .4byte 0x020314E0 thumb_func_start sub_18324 sub_18324: @ 0x08018324 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r3, #0 strh r3, [r2] ldr r0, _08018414 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08018418 @ =0x0000132C add r0, sl ldr r0, [r0] strh r3, [r0, #4] mov r0, sb movs r4, #2 ldrsh r1, [r0, r4] ldr r0, _0801841C @ =0x000001FF cmp r1, r0 bgt _0801842C mov r7, sb movs r0, #0 ldrsh r4, [r7, r0] adds r0, r4, #0 cmp r4, #0 bge _08018362 adds r0, r4, #7 _08018362: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08018420 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _0801837E adds r0, r3, #7 _0801837E: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08018424 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _080183AA adds r2, #0x3f _080183AA: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _08018428 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] mov r0, sp adds r0, #2 strb r1, [r0] adds r4, r0, #0 b _0801843A .align 2, 0 _08018414: .4byte 0x020314E0 _08018418: .4byte 0x0000132C _0801841C: .4byte 0x000001FF _08018420: .4byte 0xFFFF0000 _08018424: .4byte 0x0000FFFF _08018428: .4byte 0x02031520 _0801842C: mov r0, sp strh r3, [r0] mov r1, sp adds r1, #2 movs r0, #0 strb r0, [r1] adds r4, r1, #0 _0801843A: mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_1857C ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08018454 b _0801855A _08018454: lsls r0, r0, #2 ldr r1, _08018460 @ =_08018464 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018460: .4byte _08018464 _08018464: @ jump table .4byte _0801847C @ case 0 .4byte _08018528 @ case 1 .4byte _08018528 @ case 2 .4byte _0801847C @ case 3 .4byte _08018558 @ case 4 .4byte _0801847C @ case 5 _0801847C: ldr r2, _080184F4 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _080184F8 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _0801851C ldr r0, [r2] ldr r7, _080184FC @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08018500 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _080184C8 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _0801851C _080184C8: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _080184E6 cmp r0, #0 bne _08018512 ldr r0, _08018504 @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08018508 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _080184E6: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _0801851C .align 2, 0 _080184F4: .4byte 0x020314E0 _080184F8: .4byte 0xFFFFC010 _080184FC: .4byte 0x0000132C _08018500: .4byte 0x02031520 _08018504: .4byte gMain _08018508: ldr r0, _08018524 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08018512: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _0801851C: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _0801855A .align 2, 0 _08018524: .4byte 0x0000FFD8 _08018528: ldr r2, _08018550 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018554 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _0801855A .align 2, 0 _08018550: .4byte 0x020314E0 _08018554: .4byte 0x0000FFF0 _08018558: movs r6, #4 _0801855A: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_18784 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_1857C sub_1857C: @ 0x0801857C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov r8, r0 mov sl, r1 mov ip, r2 ldr r0, _08018758 @ =0x020314E0 ldr r4, [r0] ldr r1, _0801875C @ =0x00000387 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0801860E ldrb r1, [r2] movs r5, #0xf adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0801860E movs r3, #0xfc lsls r3, r3, #2 adds r0, r4, r3 mov r1, r8 ldrh r2, [r1] ldrh r0, [r0] subs r2, r2, r0 adds r3, #2 adds r1, r4, r3 mov r3, r8 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x6f bhi _0801860E lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x7f bhi _0801860E ldr r2, _08018760 @ =0x083579C8 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #4 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r1, _08018764 @ =0x0000FFF0 ands r1, r0 adds r3, r5, #0 ands r3, r0 cmp r3, #0 beq _0801860E ldr r0, _08018768 @ =0x00000452 adds r2, r4, r0 ldrh r0, [r2] cmp r0, #0 bne _08018606 movs r0, #0x27 strh r0, [r2] _08018606: mov r0, sl strh r1, [r0] mov r1, ip strb r3, [r1] _0801860E: movs r5, #0 ldr r3, _08018758 @ =0x020314E0 mov sb, r3 _08018614: mov r0, sb ldr r1, [r0] lsls r0, r5, #0x10 asrs r6, r0, #0x10 lsls r0, r6, #2 adds r3, r1, r0 movs r1, #0x9f lsls r1, r1, #3 adds r0, r3, r1 ldrh r4, [r0] movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 ble _0801869C mov r0, ip ldrb r1, [r0] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801869C mov r1, r8 ldrh r2, [r1] subs r2, r2, r4 ldr r0, _0801876C @ =0x000004FA adds r1, r3, r0 mov r3, r8 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 cmp r0, #0x4f bhi _0801869C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x4f bhi _0801869C asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r2, #0x10 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08018770 @ =0x0835E9C8 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _08018764 @ =0x0000FFF0 ands r1, r0 adds r3, r7, #0 ands r3, r0 cmp r3, #0 beq _0801869C mov r3, sl strh r1, [r3] movs r0, #6 mov r1, ip strb r0, [r1] mov r3, sb ldr r0, [r3] ldr r1, _08018774 @ =0x000004D5 adds r0, r0, r1 adds r0, r0, r6 movs r1, #1 strb r1, [r0] _0801869C: lsls r0, r5, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08018614 movs r5, #0 ldr r0, _08018758 @ =0x020314E0 mov sb, r0 _080186B2: mov r3, sb ldr r1, [r3] lsls r2, r5, #0x10 asrs r5, r2, #0x10 lsls r0, r5, #2 adds r3, r1, r0 ldr r1, _08018778 @ =0x000004B4 adds r0, r3, r1 ldrh r4, [r0] movs r1, #0 ldrsh r0, [r0, r1] adds r7, r2, #0 cmp r0, #0 ble _0801873A mov r0, ip ldrb r1, [r0] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _0801873A mov r1, r8 ldrh r2, [r1] subs r2, r2, r4 ldr r0, _0801877C @ =0x000004B6 adds r1, r3, r0 mov r3, r8 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 cmp r0, #0x4f bhi _0801873A lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x4f bhi _0801873A asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r2, #0x10 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08018770 @ =0x0835E9C8 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _08018764 @ =0x0000FFF0 ands r1, r0 adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _0801873A mov r3, sl strh r1, [r3] movs r0, #6 mov r1, ip strb r0, [r1] mov r3, sb ldr r0, [r3] ldr r1, _08018780 @ =0x000004A4 adds r0, r0, r1 adds r0, r0, r5 movs r1, #8 strb r1, [r0] _0801873A: movs r3, #0x80 lsls r3, r3, #9 adds r0, r7, r3 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080186B2 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 _08018758: .4byte 0x020314E0 _0801875C: .4byte 0x00000387 _08018760: .4byte 0x083579C8 _08018764: .4byte 0x0000FFF0 _08018768: .4byte 0x00000452 _0801876C: .4byte 0x000004FA _08018770: .4byte 0x0835E9C8 _08018774: .4byte 0x000004D5 _08018778: .4byte 0x000004B4 _0801877C: .4byte 0x000004B6 _08018780: .4byte 0x000004A4 thumb_func_start sub_18784 sub_18784: @ 0x08018784 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _080187EC lsls r0, r0, #2 ldr r1, _08018798 @ =_0801879C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018798: .4byte _0801879C _0801879C: @ jump table .4byte _080187EC @ case 0 .4byte _080187EC @ case 1 .4byte _080187EC @ case 2 .4byte _080187D8 @ case 3 .4byte _080187EC @ case 4 .4byte _080187EC @ case 5 .4byte _080187EC @ case 6 .4byte _080187EC @ case 7 .4byte _080187EC @ case 8 .4byte _080187EC @ case 9 .4byte _080187EC @ case 10 .4byte _080187EC @ case 11 .4byte _080187EC @ case 12 .4byte _080187EC @ case 13 .4byte _080187EC @ case 14 _080187D8: ldr r2, _080187F0 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] _080187EC: bx lr .align 2, 0 _080187F0: .4byte 0x020314E0 thumb_func_start sub_187F4 sub_187F4: @ 0x080187F4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r3, #0 strh r3, [r2] ldr r0, _080188E4 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _080188E8 @ =0x0000132C add r0, sl ldr r0, [r0] strh r3, [r0, #4] mov r0, sb movs r4, #2 ldrsh r1, [r0, r4] ldr r0, _080188EC @ =0x000001FF cmp r1, r0 bgt _080188FC mov r7, sb movs r0, #0 ldrsh r4, [r7, r0] adds r0, r4, #0 cmp r4, #0 bge _08018832 adds r0, r4, #7 _08018832: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _080188F0 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _0801884E adds r0, r3, #7 _0801884E: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _080188F4 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _0801887A adds r2, #0x3f _0801887A: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _080188F8 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] mov r0, sp adds r0, #2 strb r1, [r0] adds r4, r0, #0 b _0801890A .align 2, 0 _080188E4: .4byte 0x020314E0 _080188E8: .4byte 0x0000132C _080188EC: .4byte 0x000001FF _080188F0: .4byte 0xFFFF0000 _080188F4: .4byte 0x0000FFFF _080188F8: .4byte 0x02031520 _080188FC: mov r0, sp strh r3, [r0] mov r1, sp adds r1, #2 movs r0, #0 strb r0, [r1] adds r4, r1, #0 _0801890A: mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_18A4C ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08018924 b _08018A2A _08018924: lsls r0, r0, #2 ldr r1, _08018930 @ =_08018934 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018930: .4byte _08018934 _08018934: @ jump table .4byte _0801894C @ case 0 .4byte _080189F8 @ case 1 .4byte _080189F8 @ case 2 .4byte _0801894C @ case 3 .4byte _08018A28 @ case 4 .4byte _0801894C @ case 5 _0801894C: ldr r2, _080189C4 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _080189C8 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _080189EC ldr r0, [r2] ldr r7, _080189CC @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _080189D0 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08018998 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _080189EC _08018998: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _080189B6 cmp r0, #0 bne _080189E2 ldr r0, _080189D4 @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _080189D8 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _080189B6: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _080189EC .align 2, 0 _080189C4: .4byte 0x020314E0 _080189C8: .4byte 0xFFFFC010 _080189CC: .4byte 0x0000132C _080189D0: .4byte 0x02031520 _080189D4: .4byte gMain _080189D8: ldr r0, _080189F4 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _080189E2: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _080189EC: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _08018A2A .align 2, 0 _080189F4: .4byte 0x0000FFD8 _080189F8: ldr r2, _08018A20 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018A24 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _08018A2A .align 2, 0 _08018A20: .4byte 0x020314E0 _08018A24: .4byte 0x0000FFF0 _08018A28: movs r6, #4 _08018A2A: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_18AE0 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_18A4C sub_18A4C: @ 0x08018A4C push {r4, r5, r6, r7, lr} adds r3, r0, #0 adds r7, r1, #0 adds r5, r2, #0 ldr r0, _08018AC8 @ =0x020314E0 ldr r4, [r0] ldr r1, _08018ACC @ =0x00000387 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08018AC2 ldrb r1, [r5] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _08018AC2 movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08018AD0 @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 lsls r1, r2, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x7f bhi _08018AC2 lsls r3, r3, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x7f bhi _08018AC2 ldr r2, _08018AD4 @ =0x083722E8 asrs r0, r3, #9 asrs r1, r1, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _08018AD8 @ =0x0000FFF0 ands r2, r0 adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _08018AC2 ldr r0, _08018ADC @ =0x00000452 adds r1, r4, r0 movs r0, #9 strh r0, [r1] strh r2, [r7] strb r3, [r5] _08018AC2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08018AC8: .4byte 0x020314E0 _08018ACC: .4byte 0x00000387 _08018AD0: .4byte 0x000003F2 _08018AD4: .4byte 0x083722E8 _08018AD8: .4byte 0x0000FFF0 _08018ADC: .4byte 0x00000452 thumb_func_start sub_18AE0 sub_18AE0: @ 0x08018AE0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _08018B48 lsls r0, r0, #2 ldr r1, _08018AF4 @ =_08018AF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018AF4: .4byte _08018AF8 _08018AF8: @ jump table .4byte _08018B48 @ case 0 .4byte _08018B48 @ case 1 .4byte _08018B48 @ case 2 .4byte _08018B34 @ case 3 .4byte _08018B48 @ case 4 .4byte _08018B48 @ case 5 .4byte _08018B48 @ case 6 .4byte _08018B48 @ case 7 .4byte _08018B48 @ case 8 .4byte _08018B48 @ case 9 .4byte _08018B48 @ case 10 .4byte _08018B48 @ case 11 .4byte _08018B48 @ case 12 .4byte _08018B48 @ case 13 .4byte _08018B48 @ case 14 _08018B34: ldr r2, _08018B4C @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] _08018B48: bx lr .align 2, 0 _08018B4C: .4byte 0x020314E0 thumb_func_start sub_18B50 sub_18B50: @ 0x08018B50 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _08018C54 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08018C58 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r0, sb movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _08018B82 adds r0, r4, #7 _08018B82: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08018C5C @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08018B9E adds r0, r3, #7 _08018B9E: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08018C60 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08018BCA adds r2, #0x3f _08018BCA: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _08018C64 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_18DAC ldrb r0, [r4] movs r2, #0xf ands r2, r0 lsrs r6, r0, #4 subs r0, r2, #1 cmp r0, #5 bls _08018C48 b _08018D8A _08018C48: lsls r0, r0, #2 ldr r1, _08018C68 @ =_08018C6C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018C54: .4byte 0x020314E0 _08018C58: .4byte 0x0000132C _08018C5C: .4byte 0xFFFF0000 _08018C60: .4byte 0x0000FFFF _08018C64: .4byte 0x02031520 _08018C68: .4byte _08018C6C _08018C6C: @ jump table .4byte _08018C84 @ case 0 .4byte _08018D30 @ case 1 .4byte _08018D30 @ case 2 .4byte _08018C84 @ case 3 .4byte _08018D88 @ case 4 .4byte _08018C84 @ case 5 _08018C84: ldr r3, _08018CFC @ =0x020314E0 ldr r0, [r3] subs r1, r2, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r3] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r2, _08018D00 @ =0xFFFFC010 adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08018D24 ldr r0, [r3] ldr r4, _08018D04 @ =0x0000132C adds r3, r0, r4 ldr r2, [r3] movs r7, #0x10 ldrsh r1, [r2, r7] ldr r4, _08018D08 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08018CD0 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08018D24 _08018CD0: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _08018CEE cmp r0, #0 bne _08018D1A ldr r0, _08018D0C @ =gMain ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08018D10 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _08018CEE: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _08018D24 .align 2, 0 _08018CFC: .4byte 0x020314E0 _08018D00: .4byte 0xFFFFC010 _08018D04: .4byte 0x0000132C _08018D08: .4byte 0x02031520 _08018D0C: .4byte gMain _08018D10: ldr r0, _08018D2C @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08018D1A: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _08018D24: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _08018D8A .align 2, 0 _08018D2C: .4byte 0x0000FFD8 _08018D30: ldr r2, _08018D68 @ =0x020314E0 ldr r0, [r2] adds r0, #0x23 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #1 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018D6C @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] ldr r1, [r2] ldr r7, _08018D70 @ =0x0000132C adds r0, r1, r7 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x77 bgt _08018D74 movs r4, #0xa9 lsls r4, r4, #3 adds r1, r1, r4 b _08018D78 .align 2, 0 _08018D68: .4byte 0x020314E0 _08018D6C: .4byte 0x0000FFF0 _08018D70: .4byte 0x0000132C _08018D74: ldr r7, _08018D84 @ =0x00000549 adds r1, r1, r7 _08018D78: movs r0, #0x18 strb r0, [r1] movs r0, #1 mov r1, sp strh r0, [r1, #4] b _08018D8A .align 2, 0 _08018D84: .4byte 0x00000549 _08018D88: movs r6, #4 _08018D8A: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_18F38 mov r2, sp movs r4, #4 ldrsh r0, [r2, r4] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_18DAC sub_18DAC: @ 0x08018DAC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov ip, r0 mov sb, r1 adds r7, r2, #0 movs r1, #0 _08018DBE: ldr r0, _08018E5C @ =0x020314E0 ldr r6, [r0] lsls r1, r1, #0x10 asrs r5, r1, #0x10 ldr r2, _08018E60 @ =0x0000054F adds r0, r6, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r1 cmp r0, #1 bne _08018E74 ldrb r1, [r7] movs r3, #0xf mov r8, r3 mov r0, r8 ands r0, r1 cmp r0, #0 beq _08018DE8 b _08018F16 _08018DE8: lsls r1, r5, #2 adds r1, r6, r1 adds r2, #0x21 adds r0, r1, r2 mov r3, ip ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08018E64 @ =0x00000572 adds r1, r1, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bls _08018E10 b _08018F16 _08018E10: lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bls _08018E1A b _08018F16 _08018E1A: ldr r2, _08018E68 @ =0x08393A4C asrs r0, r3, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r1, _08018E6C @ =0x0000FFF0 ands r1, r0 mov r3, r8 ands r3, r0 cmp r3, #0 beq _08018F16 movs r2, #0xe2 lsls r2, r2, #2 adds r0, r6, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08018F16 mov r3, sb strh r1, [r3] movs r0, #6 strb r0, [r7] ldr r1, _08018E5C @ =0x020314E0 ldr r0, [r1] ldr r2, _08018E70 @ =0x00000553 adds r0, r0, r2 adds r0, r0, r5 movs r1, #4 b _08018F14 .align 2, 0 _08018E5C: .4byte 0x020314E0 _08018E60: .4byte 0x0000054F _08018E64: .4byte 0x00000572 _08018E68: .4byte 0x08393A4C _08018E6C: .4byte 0x0000FFF0 _08018E70: .4byte 0x00000553 _08018E74: cmp r0, #0 beq _08018F16 ldrb r1, [r7] movs r4, #0xf adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _08018F16 lsls r1, r5, #2 adds r1, r6, r1 movs r3, #0xae lsls r3, r3, #3 adds r0, r1, r3 mov r3, ip ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08018EF4 @ =0x00000572 adds r1, r1, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _08018F16 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _08018F16 ldr r2, _08018EF8 @ =0x08391A4C asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r1, _08018EFC @ =0x0000FFF0 ands r1, r0 adds r3, r4, #0 ands r3, r0 cmp r3, #0 beq _08018F16 mov r2, sb strh r1, [r2] movs r0, #6 strb r0, [r7] ldr r3, _08018F00 @ =0x020314E0 ldr r1, [r3] ldr r2, _08018F04 @ =0x0000054F adds r0, r1, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08018F0C ldr r3, _08018F08 @ =0x00000553 adds r0, r1, r3 adds r0, r0, r5 movs r1, #4 b _08018F14 .align 2, 0 _08018EF4: .4byte 0x00000572 _08018EF8: .4byte 0x08391A4C _08018EFC: .4byte 0x0000FFF0 _08018F00: .4byte 0x020314E0 _08018F04: .4byte 0x0000054F _08018F08: .4byte 0x00000553 _08018F0C: ldr r2, _08018F34 @ =0x0000054D adds r0, r1, r2 adds r0, r0, r5 movs r1, #0x18 _08018F14: strb r1, [r0] _08018F16: movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08018F26 b _08018DBE _08018F26: 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 _08018F34: .4byte 0x0000054D thumb_func_start sub_18F38 sub_18F38: @ 0x08018F38 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _0801901C lsls r0, r0, #2 ldr r1, _08018F4C @ =_08018F50 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018F4C: .4byte _08018F50 _08018F50: @ jump table .4byte _0801901C @ case 0 .4byte _08018F8C @ case 1 .4byte _08018FAC @ case 2 .4byte _0801901C @ case 3 .4byte _0801901C @ case 4 .4byte _0801901C @ case 5 .4byte _0801901C @ case 6 .4byte _08018FD0 @ case 7 .4byte _08018FFC @ case 8 .4byte _0801901C @ case 9 .4byte _0801901C @ case 10 .4byte _0801901C @ case 11 .4byte _0801901C @ case 12 .4byte _0801901C @ case 13 .4byte _0801901C @ case 14 _08018F8C: ldr r2, _08018FA4 @ =0x020314E0 ldr r0, [r2] ldr r1, _08018FA8 @ =0x00000532 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r2, #0xa7 lsls r2, r2, #3 adds r0, r0, r2 b _08018FC0 .align 2, 0 _08018FA4: .4byte 0x020314E0 _08018FA8: .4byte 0x00000532 _08018FAC: ldr r2, _08018FC8 @ =0x020314E0 ldr r0, [r2] ldr r3, _08018FCC @ =0x00000532 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r1, #0xa7 lsls r1, r1, #3 adds r0, r0, r1 _08018FC0: movs r1, #2 strb r1, [r0] b _0801901C .align 2, 0 _08018FC8: .4byte 0x020314E0 _08018FCC: .4byte 0x00000532 _08018FD0: ldr r2, _08018FF4 @ =0x020314E0 ldr r0, [r2] ldr r3, _08018FF8 @ =0x00000532 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r1, #0xa7 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r2, #0xa8 lsls r2, r2, #3 adds r0, r0, r2 b _08019018 .align 2, 0 _08018FF4: .4byte 0x020314E0 _08018FF8: .4byte 0x00000532 _08018FFC: ldr r1, _08019020 @ =0x020314E0 ldr r0, [r1] ldr r3, _08019024 @ =0x00000532 adds r0, r0, r3 movs r2, #1 strb r2, [r0] ldr r0, [r1] adds r3, #6 adds r0, r0, r3 strb r2, [r0] ldr r0, [r1] movs r1, #0xa8 lsls r1, r1, #3 adds r0, r0, r1 _08019018: movs r1, #0x64 strh r1, [r0] _0801901C: bx lr .align 2, 0 _08019020: .4byte 0x020314E0 _08019024: .4byte 0x00000532 thumb_func_start sub_19028_Main sub_19028_Main: @ 0x08019028 push {lr} ldr r1, _08019040 @ =0x08137918 ldr r0, _08019044 @ =gMain 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 _08019040: .4byte 0x08137918 _08019044: .4byte gMain thumb_func_start sub_19048 sub_19048: @ 0x08019048 push {r4, r5, lr} ldr r1, _080190A4 @ =gMain movs r2, #0 str r2, [r1, #0x54] movs r0, #1 strb r0, [r1, #0xd] ldr r0, _080190A8 @ =0x02031510 str r2, [r0] adds r5, r1, #0 ldr r4, _080190AC @ =0x02031520 adds r3, r5, #7 _0801905E: lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r2, r0, r4 adds r1, r0, r3 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0801905E adds r4, r5, #0 ldrh r0, [r4, #0x30] cmp r0, #0 bne _0801908E bl sub_C00 ldr r1, [r4, #0x4c] adds r0, r0, r1 movs r1, #0x1e bl __umodsi3 strh r0, [r4, #0x30] _0801908E: ldrh r4, [r5, #0x30] movs r0, #3 ands r4, r0 adds r0, r4, #0 cmp r0, #1 beq _080190D8 cmp r0, #1 bgt _080190B0 cmp r0, #0 beq _080190BA b _0801911E .align 2, 0 _080190A4: .4byte gMain _080190A8: .4byte 0x02031510 _080190AC: .4byte 0x02031520 _080190B0: cmp r0, #2 beq _080190F4 cmp r0, #3 beq _08019110 b _0801911E _080190BA: ldr r1, _080190C8 @ =0x02031520 ldr r0, _080190CC @ =0x00000A14 strh r0, [r1, #6] ldr r0, _080190D0 @ =0x081450F4 str r0, [r1, #0x10] ldr r0, _080190D4 @ =0x081531F4 b _0801911C .align 2, 0 _080190C8: .4byte 0x02031520 _080190CC: .4byte 0x00000A14 _080190D0: .4byte 0x081450F4 _080190D4: .4byte 0x081531F4 _080190D8: ldr r1, _080190E8 @ =0x02031520 movs r0, #0xf0 lsls r0, r0, #4 strh r0, [r1, #6] ldr r0, _080190EC @ =0x0814F9B4 str r0, [r1, #0x10] ldr r0, _080190F0 @ =0x08156E60 b _0801911C .align 2, 0 _080190E8: .4byte 0x02031520 _080190EC: .4byte 0x0814F9B4 _080190F0: .4byte 0x08156E60 _080190F4: ldr r1, _08019104 @ =0x02031520 movs r0, #0xd2 lsls r0, r0, #4 strh r0, [r1, #6] ldr r0, _08019108 @ =0x08148934 str r0, [r1, #0x10] ldr r0, _0801910C @ =0x08154618 b _0801911C .align 2, 0 _08019104: .4byte 0x02031520 _08019108: .4byte 0x08148934 _0801910C: .4byte 0x08154618 _08019110: ldr r1, _08019134 @ =0x02031520 ldr r0, _08019138 @ =0x00000E4C strh r0, [r1, #6] ldr r0, _0801913C @ =0x0814C174 str r0, [r1, #0x10] ldr r0, _08019140 @ =0x08155A3C _0801911C: str r0, [r1, #0xc] _0801911E: bl sub_49ED4 adds r1, r4, #0 cmp r1, #1 beq _0801914E cmp r1, #1 bgt _08019144 cmp r1, #0 beq _08019156 b _08019164 .align 2, 0 _08019134: .4byte 0x02031520 _08019138: .4byte 0x00000E4C _0801913C: .4byte 0x0814C174 _08019140: .4byte 0x08155A3C _08019144: cmp r1, #2 beq _08019156 cmp r1, #3 beq _0801915E b _08019164 _0801914E: movs r0, #0x20 bl m4aSongNumStart b _08019164 _08019156: movs r0, #0x1c bl m4aSongNumStart b _08019164 _0801915E: movs r0, #0x20 bl m4aSongNumStart _08019164: ldr r3, _08019188 @ =0x02031520 ldr r1, _0801918C @ =0x0200B134 movs r0, #0xcd adds r0, r0, r1 mov ip, r0 ldrb r0, [r0] movs r2, #0 strb r0, [r3, #5] mov r0, ip strb r2, [r0] subs r1, #0x74 ldrh r0, [r1, #0x30] adds r0, #1 strh r0, [r1, #0x30] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08019188: .4byte 0x02031520 _0801918C: .4byte 0x0200B134 thumb_func_start sub_19190 sub_19190: @ 0x08019190 push {r4, r5, lr} ldr r0, _080191A8 @ =0x020314E0 ldr r2, [r0] ldrb r1, [r2, #0x1d] cmp r1, #1 beq _080191C0 cmp r1, #1 bgt _080191AC cmp r1, #0 beq _080191B2 b _0801927C .align 2, 0 _080191A8: .4byte 0x020314E0 _080191AC: cmp r1, #2 beq _08019274 b _0801927C _080191B2: movs r0, #1 strb r0, [r2, #0x1d] ldr r0, _080191BC @ =gMain strb r1, [r0, #0xe] b _0801927C .align 2, 0 _080191BC: .4byte gMain _080191C0: ldr r0, _080191D0 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bhi _080191D4 bl sub_4ACF0 b _080191D8 .align 2, 0 _080191D0: .4byte gMain _080191D4: bl sub_4B000 _080191D8: ldr r3, _08019214 @ =gMain ldr r0, [r3, #0x54] ldr r1, _08019218 @ =0x02031520 movs r4, #6 ldrsh r2, [r1, r4] adds r1, r0, #0 adds r0, #1 str r0, [r3, #0x54] cmp r1, r2 bls _080191F0 movs r0, #1 strb r0, [r3, #0xe] _080191F0: ldrb r0, [r3, #0x1c] cmp r0, #0 beq _080191FA movs r0, #1 strb r0, [r3, #0xe] _080191FA: ldrb r0, [r3, #0xe] cmp r0, #0 beq _0801927C ldrb r0, [r3, #4] cmp r0, #1 bhi _0801921C bl sub_1D4D0 movs r0, #0 bl sub_31BE8 b _08019224 .align 2, 0 _08019214: .4byte gMain _08019218: .4byte 0x02031520 _0801921C: cmp r0, #3 bne _08019224 bl sub_356A0 _08019224: ldr r4, _0801925C @ =gMain ldrb r1, [r4, #0xf] movs r3, #2 adds r0, r3, #0 ands r0, r1 ldr r2, _08019260 @ =0x020314E0 cmp r0, #0 beq _08019248 ldr r1, _08019264 @ =0x040000D4 ldr r0, [r2] ldr r5, _08019268 @ =0x0000111A adds r0, r0, r5 str r0, [r1] ldr r0, _0801926C @ =0x05000200 str r0, [r1, #4] ldr r0, _08019270 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] _08019248: ldr r0, [r2] strb r3, [r0, #0x1d] ldrb r0, [r4, #0xe] cmp r0, #2 bne _0801927C movs r0, #1 bl sub_4B408 b _0801927C .align 2, 0 _0801925C: .4byte gMain _08019260: .4byte 0x020314E0 _08019264: .4byte 0x040000D4 _08019268: .4byte 0x0000111A _0801926C: .4byte 0x05000200 _08019270: .4byte 0x80000100 _08019274: ldr r1, _08019284 @ =gMain ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0801927C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08019284: .4byte gMain thumb_func_start sub_19288 sub_19288: @ 0x08019288 push {r4, r5, lr} ldr r1, _080192E0 @ =gMain adds r2, r1, #0 adds r2, #0x36 movs r0, #0 strb r0, [r2] ldr r2, _080192E4 @ =0x02031520 ldrb r0, [r2, #5] ldr r4, _080192E8 @ =0x00000141 adds r3, r1, r4 strb r0, [r3] movs r3, #0 adds r5, r1, #7 adds r4, r2, #0 _080192A4: lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r2, r0, r5 adds r1, r0, r4 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _080192A4 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r2, _080192E0 @ =gMain ldr r0, _080192E4 @ =0x02031520 movs r3, #6 ldrsh r1, [r0, r3] ldr r0, [r2, #0x54] cmp r0, r1 bhs _080192EC movs r0, #1 bl sub_23C b _080192F2 .align 2, 0 _080192E0: .4byte gMain _080192E4: .4byte 0x02031520 _080192E8: .4byte 0x00000141 _080192EC: movs r0, #9 bl sub_23C _080192F2: ldr r1, _08019300 @ =gMain movs r0, #0 str r0, [r1, #0x54] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08019300: .4byte gMain thumb_func_start sub_19304 sub_19304: @ 0x08019304 push {lr} ldr r0, _08019318 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bls _08019312 bl sub_19734 _08019312: pop {r0} bx r0 .align 2, 0 _08019318: .4byte gMain thumb_func_start sub_1931C sub_1931C: @ 0x0801931C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 str r0, [sp] ldr r0, _080193BC @ =0x020314E0 mov r8, r0 ldr r1, [r0] mov sb, r1 ldr r0, _080193C0 @ =0x000013BC add r0, sb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r2, _080193C4 @ =0x086ACE8C adds r7, r0, r2 ldrh r0, [r7] adds r0, #0x53 lsls r0, r0, #0x10 ldr r3, _080193C8 @ =0xFFFF0000 ldr r2, _080193CC @ =0x02031520 ldrh r1, [r2, #0x1c] ldrh r2, [r7, #2] adds r4, r1, r2 lsls r4, r4, #0x10 ldr r2, _080193D0 @ =0x0000FFFF lsrs r0, r0, #0x10 mov sl, r0 ldrh r0, [r7, #4] adds r0, #0x53 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ands r6, r3 orrs r6, r0 ldrh r7, [r7, #6] adds r1, r1, r7 lsls r1, r1, #0x10 ands r6, r2 orrs r6, r1 asrs r1, r1, #0x10 mov r3, sl orrs r3, r4 mov sl, r3 asrs r4, r4, #0x10 subs r1, r1, r4 ldr r2, [sp] lsls r0, r2, #0x10 asrs r0, r0, #0x10 lsls r2, r3, #0x10 asrs r2, r2, #0x10 subs r0, r0, r2 muls r1, r0, r1 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 lsls r1, r6, #0x10 asrs r1, r1, #0x10 subs r1, r1, r2 bl __divsi3 ldr r3, [sp] asrs r1, r3, #0x10 subs r4, r4, r1 lsls r1, r4, #4 subs r1, r1, r4 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #0x10 mov r2, r8 ldr r3, _080193C4 @ =0x086ACE8C ldr r4, _080193CC @ =0x02031520 cmp r0, #0 blt _080193D8 ldr r1, _080193D4 @ =0x000013C4 add r1, sb movs r0, #1 b _080193DE .align 2, 0 _080193BC: .4byte 0x020314E0 _080193C0: .4byte 0x000013BC _080193C4: .4byte 0x086ACE8C _080193C8: .4byte 0xFFFF0000 _080193CC: .4byte 0x02031520 _080193D0: .4byte 0x0000FFFF _080193D4: .4byte 0x000013C4 _080193D8: ldr r1, _08019460 @ =0x000013C4 add r1, sb movs r0, #0xff _080193DE: strb r0, [r1] ldr r2, [r2] mov r8, r2 ldr r0, _08019464 @ =0x000013C8 add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r7, r0, r3 ldrh r3, [r7] movs r0, #0x9c subs r3, r0, r3 ldr r1, _08019468 @ =0xFFFF0000 mov sb, r1 ldrh r2, [r4, #0x1c] ldrh r1, [r7, #2] adds r4, r2, r1 lsls r4, r4, #0x10 ldr r5, _0801946C @ =0x0000FFFF ldrh r1, [r7, #4] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r1, sb ands r6, r1 orrs r6, r0 ldrh r7, [r7, #6] adds r2, r2, r7 lsls r2, r2, #0x10 ands r6, r5 asrs r2, r2, #0x10 asrs r4, r4, #0x10 subs r2, r2, r4 ldr r1, [sp] lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r3, r3, #0x10 asrs r3, r3, #0x10 subs r0, r0, r3 adds r1, r2, #0 muls r1, r0, r1 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 lsls r1, r6, #0x10 asrs r1, r1, #0x10 subs r1, r1, r3 bl __divsi3 ldr r2, [sp] asrs r1, r2, #0x10 subs r4, r4, r1 lsls r1, r4, #4 subs r1, r1, r4 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #0x10 cmp r0, #0 blt _08019474 ldr r1, _08019470 @ =0x000013D0 add r1, r8 movs r0, #1 b _0801947A .align 2, 0 _08019460: .4byte 0x000013C4 _08019464: .4byte 0x000013C8 _08019468: .4byte 0xFFFF0000 _0801946C: .4byte 0x0000FFFF _08019470: .4byte 0x000013D0 _08019474: ldr r1, _0801948C @ =0x000013D0 add r1, r8 movs r0, #0xff _0801947A: strb r0, [r1] 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 _0801948C: .4byte 0x000013D0 thumb_func_start sub_19490 sub_19490: @ 0x08019490 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _080194DC @ =gMain ldrb r1, [r4, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080194A8 bl sub_195C4 _080194A8: movs r3, #0 ldr r0, _080194E0 @ =0x020314E0 mov r8, r0 ldr r1, _080194E4 @ =0x00000A28 adds r1, r1, r4 mov sb, r1 ldr r7, _080194E8 @ =0x040000D4 ldr r2, _080194EC @ =0x03005000 mov ip, r2 _080194BA: mov r0, r8 ldr r2, [r0] lsls r3, r3, #0x10 asrs r1, r3, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 ldr r1, _080194F0 @ =0x000013BC adds r2, r2, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0xa ble _080194F4 movs r0, #0xa b _080194FA .align 2, 0 _080194DC: .4byte gMain _080194E0: .4byte 0x020314E0 _080194E4: .4byte 0x00000A28 _080194E8: .4byte 0x040000D4 _080194EC: .4byte 0x03005000 _080194F0: .4byte 0x000013BC _080194F4: cmp r0, #0 bge _080194FC movs r0, #0 _080194FA: strb r0, [r2] _080194FC: asrs r6, r3, #0x10 movs r0, #0xb8 muls r0, r6, r0 mov r2, sb adds r5, r0, r2 ldrh r0, [r5] cmp r0, #0 beq _0801958A mov r0, r8 ldr r4, [r0] lsls r3, r6, #1 adds r0, r3, r6 lsls r0, r0, #2 adds r0, r4, r0 ldr r1, _080195A4 @ =0x000013BC adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsrs r0, r2, #0x1f adds r2, r2, r0 ldr r0, _080195A8 @ =0x086ACEF4 adds r3, r3, r0 adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r3] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r0, _080195AC @ =0x02031520 adds r4, #0x5a ldrh r0, [r0, #0x1c] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #4] asrs r2, r2, #1 lsls r2, r2, #9 ldr r0, _080195B0 @ =0x083FE44C adds r2, r2, r0 str r2, [r7] lsls r0, r6, #9 ldr r2, _080195B4 @ =0x06010000 adds r0, r0, r2 str r0, [r7, #4] ldr r0, _080195B8 @ =0x80000100 str r0, [r7, #8] ldr r0, [r7, #8] adds r4, r5, #0 adds r4, #8 ldrh r3, [r5, #8] lsls r3, r3, #3 add r3, ip movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _080195BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080195C0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, ip ldrb r0, [r5, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] _0801958A: adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080194BA pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080195A4: .4byte 0x000013BC _080195A8: .4byte 0x086ACEF4 _080195AC: .4byte 0x02031520 _080195B0: .4byte 0x083FE44C _080195B4: .4byte 0x06010000 _080195B8: .4byte 0x80000100 _080195BC: .4byte 0x000001FF _080195C0: .4byte 0xFFFFFE00 thumb_func_start sub_195C4 sub_195C4: @ 0x080195C4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _08019630 @ =0x020314E0 ldr r0, [r4] ldr r1, _08019634 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #0x10] bl sub_1931C movs r3, #0 adds r6, r4, #0 _080195DE: lsls r3, r3, #0x10 asrs r2, r3, #0x10 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r7, _08019638 @ =0x000013BC adds r0, r0, r7 ldr r1, [r6] adds r4, r1, r0 ldrb r1, [r4] movs r0, #0 strb r1, [r4, #1] strb r0, [r4, #2] ldr r5, [r6] adds r0, r5, #0 adds r0, #0xe adds r0, r0, r2 ldrb r2, [r0] mov r8, r3 cmp r2, #0 beq _0801963C movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 bne _08019624 adds r0, r5, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08019624 movs r0, #0x72 bl m4aSongNumStart _08019624: movs r1, #0 movs r0, #1 strb r0, [r4, #6] strb r1, [r4, #7] b _08019650 .align 2, 0 _08019630: .4byte 0x020314E0 _08019634: .4byte 0x0000132C _08019638: .4byte 0x000013BC _0801963C: lsls r0, r1, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08019650 ldrb r0, [r4, #7] cmp r0, #2 bls _0801964C strb r2, [r4, #6] _0801964C: adds r0, #1 strb r0, [r4, #7] _08019650: movs r5, #0 movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 beq _080196AC movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0xa beq _08019666 movs r5, #1 b _08019694 _08019666: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _08019694 adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _080196A8 @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _08019694: movs r0, #0 ldrsb r0, [r4, r0] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #1 strb r0, [r4, #2] ldrb r0, [r4] adds r0, #4 b _080196FA .align 2, 0 _080196A8: .4byte 0x00001364 _080196AC: movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _080196C8 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #6 strb r0, [r4, #2] ldr r5, _080196C4 @ =0x0000FFFF b _080196F6 .align 2, 0 _080196C4: .4byte 0x0000FFFF _080196C8: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _080196F6 adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _08019730 @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _080196F6: ldrb r0, [r4] subs r0, #2 _080196FA: strb r0, [r4] movs r0, #3 ldrsb r0, [r4, r0] lsls r1, r5, #0x10 asrs r1, r1, #0x10 muls r0, r1, r0 movs r1, #0 strb r0, [r4, #3] lsls r0, r0, #0x18 cmp r0, #0 bgt _08019712 strb r1, [r4, #4] _08019712: strb r5, [r4, #3] movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08019724 b _080195DE _08019724: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08019730: .4byte 0x00001364 thumb_func_start sub_19734 sub_19734: @ 0x08019734 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r0, #1 mov sl, r0 ldr r4, _08019780 @ =gMain ldrb r1, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _08019750 bl sub_19894 _08019750: movs r3, #0 ldr r1, _08019784 @ =0x020314E0 mov sb, r1 ldr r2, _08019788 @ =0x040000D4 mov ip, r2 ldr r0, _0801978C @ =0x03005000 mov r8, r0 _0801975E: mov r1, sb ldr r2, [r1] lsls r3, r3, #0x10 asrs r1, r3, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 ldr r0, _08019790 @ =0x000013BC adds r2, r2, r0 movs r0, #0 ldrsb r0, [r2, r0] adds r7, r3, #0 cmp r0, #0xa ble _08019794 movs r0, #0xa b _0801979A .align 2, 0 _08019780: .4byte gMain _08019784: .4byte 0x020314E0 _08019788: .4byte 0x040000D4 _0801978C: .4byte 0x03005000 _08019790: .4byte 0x000013BC _08019794: cmp r0, #0 bge _0801979C movs r0, #0 _0801979A: strb r0, [r2] _0801979C: asrs r6, r7, #0x10 movs r0, #0xb8 muls r0, r6, r0 ldr r1, _08019870 @ =0x0200B5E0 adds r5, r0, r1 ldrh r0, [r5] cmp r0, #0 beq _08019850 mov r2, sb ldr r4, [r2] lsls r3, r6, #1 adds r0, r3, r6 lsls r0, r0, #2 adds r0, r4, r0 ldr r1, _08019874 @ =0x000013BC adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsrs r0, r2, #0x1f adds r2, r2, r0 ldr r0, _08019878 @ =0x086ACEF4 adds r3, r3, r0 adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r3] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r0, _0801987C @ =0x02031520 adds r4, #0x5a ldrh r0, [r0, #0x1c] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #4] asrs r2, r2, #1 lsls r2, r2, #9 ldr r0, _08019880 @ =0x083FE44C adds r2, r2, r0 mov r0, ip str r2, [r0] lsls r0, r6, #9 ldr r1, _08019884 @ =0x06010000 adds r0, r0, r1 mov r2, ip str r0, [r2, #4] ldr r0, _08019888 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #4 ldrsh r0, [r5, r1] cmp r0, #0xb4 ble _08019808 movs r0, #0xb4 strh r0, [r5, #4] _08019808: adds r4, r5, #0 adds r4, #8 ldrh r3, [r5, #8] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _0801988C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08019890 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, r8 mov r0, sl lsls r3, r0, #2 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r3 strb r0, [r1, #5] _08019850: movs r1, #0x80 lsls r1, r1, #9 adds r0, r7, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08019860 b _0801975E _08019860: 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 _08019870: .4byte 0x0200B5E0 _08019874: .4byte 0x000013BC _08019878: .4byte 0x086ACEF4 _0801987C: .4byte 0x02031520 _08019880: .4byte 0x083FE44C _08019884: .4byte 0x06010000 _08019888: .4byte 0x80000100 _0801988C: .4byte 0x000001FF _08019890: .4byte 0xFFFFFE00 thumb_func_start sub_19894 sub_19894: @ 0x08019894 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _08019914 @ =0x020314E0 ldr r0, [r4] ldr r1, _08019918 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #0x10] bl sub_1931C movs r3, #0 adds r6, r4, #0 mov r8, r3 _080198B2: lsls r3, r3, #0x10 asrs r2, r3, #0x10 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r7, _0801991C @ =0x000013BC adds r0, r0, r7 ldr r1, [r6] adds r4, r1, r0 ldrb r0, [r4] strb r0, [r4, #1] mov r0, r8 strb r0, [r4, #2] ldr r1, [r6] adds r0, r1, #0 adds r0, #0xe adds r0, r0, r2 ldrb r0, [r0] mov sb, r3 cmp r0, #0 beq _08019924 ldr r0, _08019920 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _08019924 movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 bne _08019908 adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08019908 movs r0, #0x1a ldrsb r0, [r1, r0] cmp r0, #0 bne _08019908 movs r0, #0x72 bl m4aSongNumStart _08019908: movs r0, #1 strb r0, [r4, #6] mov r1, r8 strb r1, [r4, #7] b _0801993A .align 2, 0 _08019914: .4byte 0x020314E0 _08019918: .4byte 0x0000132C _0801991C: .4byte 0x000013BC _08019920: .4byte gMain _08019924: movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0xa bne _0801993A ldrb r0, [r4, #7] cmp r0, #2 bls _08019936 mov r7, r8 strb r7, [r4, #6] _08019936: adds r0, #1 strb r0, [r4, #7] _0801993A: movs r5, #0 movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 beq _08019998 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0xa beq _08019950 movs r5, #1 b _0801997E _08019950: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _0801997E adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _08019994 @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _0801997E: movs r0, #0 ldrsb r0, [r4, r0] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #1 strb r0, [r4, #2] ldrb r0, [r4] adds r0, #4 b _080199E6 .align 2, 0 _08019994: .4byte 0x00001364 _08019998: movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _080199B4 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #6 strb r0, [r4, #2] ldr r5, _080199B0 @ =0x0000FFFF b _080199E2 .align 2, 0 _080199B0: .4byte 0x0000FFFF _080199B4: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _080199E2 adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _08019A1C @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _080199E2: ldrb r0, [r4] subs r0, #2 _080199E6: strb r0, [r4] movs r0, #3 ldrsb r0, [r4, r0] lsls r1, r5, #0x10 asrs r1, r1, #0x10 muls r0, r1, r0 movs r1, #0 strb r0, [r4, #3] lsls r0, r0, #0x18 cmp r0, #0 bgt _080199FE strb r1, [r4, #4] _080199FE: strb r5, [r4, #3] movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08019A10 b _080198B2 _08019A10: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08019A1C: .4byte 0x00001364 thumb_func_start sub_19A20 sub_19A20: @ 0x08019A20 push {r4, r5, r6, lr} ldr r4, _08019AF0 @ =0x020314E0 ldr r0, [r4] ldr r1, _08019AF4 @ =0x0000073D adds r0, r0, r1 movs r6, #2 strb r6, [r0] bl sub_1D5D8 movs r0, #0 bl sub_4E9F0 bl sub_1DAD8 bl sub_23954 bl sub_239A4 ldr r1, [r4] movs r3, #0xb5 lsls r3, r3, #2 adds r2, r1, r3 movs r5, #0 movs r0, #0x49 strh r0, [r2] ldr r0, _08019AF8 @ =0x000002D6 adds r2, r1, r0 movs r0, #0x9a strh r0, [r2] ldr r2, _08019AFC @ =0x000002DA adds r1, r1, r2 strb r5, [r1] bl sub_23E18 bl sub_1DDDC ldr r0, [r4] movs r3, #0xb8 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] ldr r0, [r4] ldr r2, _08019B00 @ =0x00000171 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] adds r3, #2 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] movs r1, #0xb6 lsls r1, r1, #1 adds r0, r0, r1 strb r5, [r0] bl sub_1EC48 bl sub_1F158 ldr r0, [r4] ldr r2, _08019B04 @ =0x000001E5 adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] movs r3, #0xf3 lsls r3, r3, #1 adds r1, r0, r3 movs r0, #1 strb r0, [r1] bl sub_1F2A4 bl sub_21B0C bl sub_1F59C ldr r0, [r4] movs r2, #0xec lsls r2, r2, #1 adds r1, r0, r2 subs r2, #0xd8 strh r2, [r1] movs r3, #0xed lsls r3, r3, #1 adds r1, r0, r3 strh r2, [r1] ldr r1, _08019B08 @ =0x0000029F adds r0, r0, r1 strb r6, [r0] bl sub_2C9A4 ldr r0, [r4] movs r2, #0xbb lsls r2, r2, #2 adds r1, r0, r2 movs r2, #3 strh r2, [r1] ldr r3, _08019B0C @ =0x000002EE adds r0, r0, r3 strh r2, [r0] bl sub_31B30 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08019AF0: .4byte 0x020314E0 _08019AF4: .4byte 0x0000073D _08019AF8: .4byte 0x000002D6 _08019AFC: .4byte 0x000002DA _08019B00: .4byte 0x00000171 _08019B04: .4byte 0x000001E5 _08019B08: .4byte 0x0000029F _08019B0C: .4byte 0x000002EE thumb_func_start sub_19B10 sub_19B10: @ 0x08019B10 push {lr} bl sub_19B90 bl sub_19E10 ldr r0, _08019B54 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _08019B26 bl sub_19F70 _08019B26: bl sub_19FA0 ldr r0, _08019B58 @ =0x020314E0 ldr r0, [r0] movs r2, #0xa7 lsls r2, r2, #2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08019B50 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08019B50 ldr r0, _08019B5C @ =0x02032EE0 ldr r1, _08019B60 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _08019B50: pop {r0} bx r0 .align 2, 0 _08019B54: .4byte gMain _08019B58: .4byte 0x020314E0 _08019B5C: .4byte 0x02032EE0 _08019B60: .4byte 0x0000FFFF thumb_func_start sub_19B64 sub_19B64: @ 0x08019B64 ldr r2, _08019B88 @ =0x020314E0 ldr r3, [r2] movs r1, #2 strb r1, [r3, #0x16] ldr r1, [r2] strb r0, [r1, #0x14] ldr r0, [r2] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08019B86 ldr r0, _08019B8C @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r0, #0 strh r0, [r1] _08019B86: bx lr .align 2, 0 _08019B88: .4byte 0x020314E0 _08019B8C: .4byte gMain thumb_func_start sub_19B90 sub_19B90: @ 0x08019B90 push {r4, lr} ldr r4, _08019BA8 @ =0x020314E0 ldr r2, [r4] movs r0, #0x16 ldrsb r0, [r2, r0] cmp r0, #1 beq _08019BD0 cmp r0, #1 bgt _08019BAC cmp r0, #0 beq _08019BB2 b _08019BFE .align 2, 0 _08019BA8: .4byte 0x020314E0 _08019BAC: cmp r0, #2 beq _08019BE8 b _08019BFE _08019BB2: ldr r1, _08019BCC @ =0x086AD4C4 movs r0, #0x13 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, [r4] ldrb r0, [r1, #0x16] adds r0, #1 strb r0, [r1, #0x16] b _08019BFE .align 2, 0 _08019BCC: .4byte 0x086AD4C4 _08019BD0: ldr r0, _08019BE4 @ =0x086AD4E8 movs r1, #0x13 ldrsb r1, [r2, r1] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] bl _call_via_r0 b _08019BFE .align 2, 0 _08019BE4: .4byte 0x086AD4E8 _08019BE8: bl sub_19D04 ldr r0, [r4] ldrb r1, [r0, #0x13] movs r2, #0 strb r1, [r0, #0x15] ldr r1, [r4] ldrb r0, [r1, #0x14] strb r0, [r1, #0x13] ldr r0, [r4] strb r2, [r0, #0x16] _08019BFE: pop {r4} pop {r0} bx r0 thumb_func_start sub_19C04 sub_19C04: @ 0x08019C04 push {r4, r5, r6, lr} ldr r0, _08019C3C @ =0x020314E0 ldr r1, [r0] movs r0, #0x15 ldrsb r0, [r1, r0] cmp r0, #0 ble _08019C7A ldr r0, _08019C40 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _08019C50 ldr r2, _08019C44 @ =0x00000283 adds r0, r1, r2 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _08019C48 movs r0, #0x1c bl m4aSongNumStart b _08019C7A .align 2, 0 _08019C3C: .4byte 0x020314E0 _08019C40: .4byte gMain _08019C44: .4byte 0x00000283 _08019C48: movs r0, #0x5b bl m4aSongNumStart b _08019C7A _08019C50: ldr r4, _08019C70 @ =0x00000283 adds r0, r1, r4 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _08019C74 movs r0, #0x20 bl m4aSongNumStart b _08019C7A .align 2, 0 _08019C70: .4byte 0x00000283 _08019C74: movs r0, #0x5c bl m4aSongNumStart _08019C7A: ldr r5, _08019CB8 @ =0x020314E0 ldr r2, [r5] ldrb r0, [r2, #0x15] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08019CB2 ldr r3, _08019CBC @ =0x0000073C adds r0, r2, r3 ldrb r1, [r0] ldr r6, _08019CC0 @ =0x0000072E adds r0, r2, r6 movs r4, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _08019CC4 @ =0x0000073D adds r1, r0, r2 ldrb r1, [r1] adds r6, #1 adds r0, r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08019CB2: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08019CB8: .4byte 0x020314E0 _08019CBC: .4byte 0x0000073C _08019CC0: .4byte 0x0000072E _08019CC4: .4byte 0x0000073D thumb_func_start sub_19CC8 sub_19CC8: @ 0x08019CC8 push {lr} ldr r0, _08019CEC @ =0x020314E0 ldr r1, [r0] ldr r2, _08019CF0 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08019CFE ldr r0, _08019CF4 @ =0x000006EE adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0 beq _08019CF8 subs r0, #1 strh r0, [r1] b _08019CFE .align 2, 0 _08019CEC: .4byte 0x020314E0 _08019CF0: .4byte 0x00000714 _08019CF4: .4byte 0x000006EE _08019CF8: movs r0, #2 bl sub_19B64 _08019CFE: pop {r0} bx r0 thumb_func_start sub_19D04 sub_19D04: @ 0x08019D04 push {r4, r5, r6, lr} ldr r0, _08019D80 @ =0x020314E0 ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #2 bne _08019D20 movs r0, #0x14 ldrsb r0, [r1, r0] cmp r0, #2 ble _08019D20 movs r0, #0 bl sub_21238 _08019D20: ldr r5, _08019D80 @ =0x020314E0 ldr r2, [r5] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08019DFC movs r0, #0x14 ldrsb r0, [r2, r0] cmp r0, #3 bne _08019D5C ldr r3, _08019D84 @ =0x0000072E adds r0, r2, r3 ldrb r1, [r0] ldr r4, _08019D88 @ =0x0000073C adds r0, r2, r4 movs r4, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _08019D8C @ =0x0000072F adds r1, r0, r2 ldrb r1, [r1] ldr r6, _08019D90 @ =0x0000073D adds r0, r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08019D5C: ldr r4, [r5] movs r0, #0x14 ldrsb r0, [r4, r0] cmp r0, #4 bne _08019D94 ldr r3, _08019D84 @ =0x0000072E adds r0, r4, r3 ldrb r1, [r0] ldr r2, _08019D88 @ =0x0000073C adds r0, r4, r2 movs r4, #0 strb r1, [r0] ldr r0, [r5] subs r2, #0xd adds r1, r0, r2 ldrb r1, [r1] ldr r6, _08019D90 @ =0x0000073D b _08019DEC .align 2, 0 _08019D80: .4byte 0x020314E0 _08019D84: .4byte 0x0000072E _08019D88: .4byte 0x0000073C _08019D8C: .4byte 0x0000072F _08019D90: .4byte 0x0000073D _08019D94: cmp r0, #6 bne _08019DD0 ldr r3, _08019DC0 @ =0x0000072F adds r0, r4, r3 ldrb r2, [r0] ldr r1, _08019DC4 @ =0x0000073D adds r0, r4, r1 movs r1, #0 strb r2, [r0] ldr r0, [r5] ldr r2, _08019DC8 @ =0x0000073C adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] ldr r4, _08019DCC @ =0x0000072E adds r0, r0, r4 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r1, [r0] b _08019DFC .align 2, 0 _08019DC0: .4byte 0x0000072F _08019DC4: .4byte 0x0000073D _08019DC8: .4byte 0x0000073C _08019DCC: .4byte 0x0000072E _08019DD0: cmp r0, #3 ble _08019DFC ldr r3, _08019E04 @ =0x0000072E adds r0, r4, r3 ldrb r1, [r0] ldr r6, _08019E08 @ =0x0000073C adds r0, r4, r6 movs r4, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _08019E0C @ =0x0000072F adds r1, r0, r2 ldrb r1, [r1] adds r6, #1 _08019DEC: adds r0, r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08019DFC: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08019E04: .4byte 0x0000072E _08019E08: .4byte 0x0000073C _08019E0C: .4byte 0x0000072F thumb_func_start sub_19E10 sub_19E10: @ 0x08019E10 push {r4, lr} bl sub_1A0F4 bl sub_1DA74 ldr r4, _08019EA4 @ =0x020314E0 ldr r0, [r4] movs r2, #0xa8 lsls r2, r2, #2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08019E4E subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08019E4E bl sub_C00 ldr r4, [r4] ldr r1, _08019EA8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #0x64 bl __umodsi3 adds r0, #1 ldr r3, _08019EAC @ =0x0000029F adds r4, r4, r3 strb r0, [r4] _08019E4E: ldr r4, _08019EA4 @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6d bgt _08019E68 bl sub_1D5D8 bl sub_1DAD8 bl sub_2C9A4 _08019E68: bl sub_2CA9C ldr r0, [r4] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xa7 bgt _08019E7C bl sub_239A4 _08019E7C: ldr r0, [r4] adds r0, #0x68 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xdb bgt _08019EBC bl sub_23E18 ldr r0, [r4] movs r1, #0xa9 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08019EB0 bl sub_1DC7C b _08019EB4 .align 2, 0 _08019EA4: .4byte 0x020314E0 _08019EA8: .4byte gMain _08019EAC: .4byte 0x0000029F _08019EB0: bl sub_1EC48 _08019EB4: bl sub_1F158 bl sub_1F59C _08019EBC: bl sub_1F698 ldr r4, _08019F64 @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x3f ble _08019ED6 bl sub_1FA48 bl sub_1FBC4 _08019ED6: ldr r0, [r4] adds r0, #0x68 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x73 ble _08019EE6 bl sub_2C538 _08019EE6: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x82 ble _08019EF6 bl sub_201B8 _08019EF6: bl sub_2CE80 ldr r0, [r4] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xa8 ble _08019F0A bl sub_2D104 _08019F0A: bl sub_203CC bl sub_21B0C bl sub_4E814 bl sub_1D128 bl sub_21D78 bl sub_31B30 ldr r0, [r4] movs r3, #0xca lsls r3, r3, #1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08019F38 bl sub_225F0 _08019F38: bl sub_472E4 ldr r2, [r4] ldr r0, _08019F68 @ =0x00001328 adds r1, r2, r0 ldrh r0, [r1] cmp r0, #0 beq _08019F5C subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08019F5C ldr r3, _08019F6C @ =0x00001330 adds r1, r2, r3 adds r3, #4 adds r0, r2, r3 str r0, [r1] _08019F5C: pop {r4} pop {r0} bx r0 .align 2, 0 _08019F64: .4byte 0x020314E0 _08019F68: .4byte 0x00001328 _08019F6C: .4byte 0x00001330 thumb_func_start sub_19F70 sub_19F70: @ 0x08019F70 push {lr} bl sub_1DDDC bl sub_1A9E8 bl sub_1F2A4 bl sub_1FF0C ldr r0, _08019F9C @ =0x020314E0 ldr r0, [r0] movs r2, #0xc0 lsls r2, r2, #3 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08019F96 subs r0, #1 strh r0, [r1] _08019F96: pop {r0} bx r0 .align 2, 0 _08019F9C: .4byte 0x020314E0 thumb_func_start sub_19FA0 sub_19FA0: @ 0x08019FA0 push {r4, r5, lr} ldr r0, _0801A0DC @ =0x020314E0 ldr r2, [r0] ldrb r1, [r2, #4] adds r5, r0, #0 cmp r1, #0 beq _0801A038 movs r1, #0xe2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0 bne _08019FE2 movs r3, #0xf1 lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 beq _08019FE2 subs r3, #0x22 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _08019FE2 ldr r3, _0801A0E0 @ =0x0000061C adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08019FE2 strb r0, [r1] _08019FE2: ldr r0, [r5] movs r2, #0xe2 lsls r2, r2, #3 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] adds r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _0801A0E4 @ =0x00000712 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #6 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] adds r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #7 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _0801A038: ldr r1, [r5] ldrb r0, [r1, #5] cmp r0, #0 beq _0801A0D4 movs r2, #0xe2 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _0801A076 movs r3, #0xf1 lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 beq _0801A076 subs r3, #0x22 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _0801A076 ldr r3, _0801A0E0 @ =0x0000061C adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A076 movs r0, #1 strb r0, [r2] _0801A076: ldr r0, [r5] ldr r2, _0801A0E8 @ =0x00000713 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] subs r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _0801A0EC @ =0x00000711 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] subs r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] subs r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #8 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r1, _0801A0F0 @ =0x00000301 adds r0, r0, r1 movs r1, #1 strb r1, [r0] _0801A0D4: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0801A0DC: .4byte 0x020314E0 _0801A0E0: .4byte 0x0000061C _0801A0E4: .4byte 0x00000712 _0801A0E8: .4byte 0x00000713 _0801A0EC: .4byte 0x00000711 _0801A0F0: .4byte 0x00000301 thumb_func_start sub_1A0F4 sub_1A0F4: @ 0x0801A0F4 push {r4, r5, r6, r7, lr} ldr r2, _0801A140 @ =gMain ldrb r1, [r2, #0xf] movs r4, #1 adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _0801A106 b _0801A2B2 _0801A106: ldr r1, _0801A144 @ =0x020314E0 ldr r0, [r1] ldr r6, _0801A148 @ =0x000005F7 adds r0, r0, r6 strb r4, [r0] ldr r3, [r1] adds r0, r3, #0 adds r0, #0xfa movs r5, #0 ldrsb r5, [r0, r5] adds r7, r1, #0 cmp r5, #0 beq _0801A1D4 movs r0, #2 strb r0, [r3, #0x1f] ldr r0, [r7] ldr r1, _0801A14C @ =0x000005FA adds r0, r0, r1 strb r4, [r0] ldr r2, [r7] adds r1, r2, #0 adds r1, #0xea ldrh r0, [r1] cmp r0, #0 beq _0801A150 subs r0, #1 strh r0, [r1] b _0801A1C0 .align 2, 0 _0801A140: .4byte gMain _0801A144: .4byte 0x020314E0 _0801A148: .4byte 0x000005F7 _0801A14C: .4byte 0x000005FA _0801A150: adds r1, r2, #0 adds r1, #0xee ldrh r3, [r1] mov ip, r3 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bne _0801A16E adds r3, r2, #0 adds r3, #0xec ldrh r0, [r3] adds r1, r0, #0 cmp r1, #0 bne _0801A1B4 b _0801A1BA _0801A16E: adds r0, r2, #0 adds r0, #0x68 movs r6, #0 ldrsh r5, [r0, r6] movs r0, #0 ldrsh r4, [r1, r0] adds r1, r5, r4 adds r0, r2, #0 adds r0, #0xe8 movs r6, #0 ldrsh r3, [r0, r6] cmp r1, r3 bgt _0801A194 adds r1, r2, #0 adds r1, #0xe6 ldrh r0, [r1] add r0, ip strh r0, [r1] b _0801A1C0 _0801A194: subs r0, r5, r4 cmp r0, r3 blt _0801A1A8 adds r1, r2, #0 adds r1, #0xe6 ldrh r0, [r1] mov r2, ip subs r0, r0, r2 strh r0, [r1] b _0801A1C0 _0801A1A8: adds r3, r2, #0 adds r3, #0xec ldrh r0, [r3] adds r1, r0, #0 cmp r1, #0 beq _0801A1BA _0801A1B4: subs r0, #1 strh r0, [r3] b _0801A1C0 _0801A1BA: adds r0, r2, #0 adds r0, #0xfa strb r1, [r0] _0801A1C0: ldr r0, [r7] adds r0, #0xf2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801A2B2 bl sub_1A2C0 b _0801A2B2 _0801A1D4: adds r0, r3, #0 adds r0, #0xee movs r4, #0 ldrsh r0, [r0, r4] adds r1, r3, #0 adds r1, #0xe6 cmp r0, #0 beq _0801A1EC movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bne _0801A216 _0801A1EC: movs r4, #0 strh r5, [r1] strb r4, [r3, #0x1f] ldrb r1, [r2, #0xf] movs r0, #0xfe ands r0, r1 strb r0, [r2, #0xf] ldr r0, [r7] adds r0, r0, r6 strb r4, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0xfb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A216 ldr r5, _0801A2B8 @ =0x000005FA adds r0, r1, r5 strb r4, [r0] _0801A216: ldr r3, [r7] adds r1, r3, #0 adds r1, #0xe6 ldrh r4, [r1] movs r6, #0 ldrsh r0, [r1, r6] cmp r0, #0 ble _0801A264 adds r0, r3, #0 adds r0, #0xee ldrh r0, [r0] subs r0, r4, r0 movs r4, #0 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bgt _0801A2B2 movs r0, #0 strh r0, [r1] strb r4, [r3, #0x1f] ldrb r1, [r2, #0xf] movs r0, #0xfe ands r0, r1 strb r0, [r2, #0xf] ldr r0, [r7] ldr r1, _0801A2BC @ =0x000005F7 adds r0, r0, r1 strb r4, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0xfb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A264 ldr r3, _0801A2B8 @ =0x000005FA adds r0, r1, r3 strb r4, [r0] _0801A264: ldr r3, [r7] adds r1, r3, #0 adds r1, #0xe6 ldrh r4, [r1] movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0 bge _0801A2B2 adds r0, r3, #0 adds r0, #0xee ldrh r0, [r0] adds r0, r4, r0 movs r4, #0 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 blt _0801A2B2 movs r0, #0 strh r0, [r1] strb r4, [r3, #0x1f] ldrb r1, [r2, #0xf] movs r0, #0xfe ands r0, r1 strb r0, [r2, #0xf] ldr r0, [r7] ldr r6, _0801A2BC @ =0x000005F7 adds r0, r0, r6 strb r4, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0xfb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A2B2 ldr r2, _0801A2B8 @ =0x000005FA adds r0, r1, r2 strb r4, [r0] _0801A2B2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801A2B8: .4byte 0x000005FA _0801A2BC: .4byte 0x000005F7 thumb_func_start sub_1A2C0 sub_1A2C0: @ 0x0801A2C0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r2, _0801A328 @ =0x020314E0 ldr r4, [r2] adds r5, r4, #0 adds r5, #0xf2 movs r0, #0 ldrsb r0, [r5, r0] subs r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] ldr r1, _0801A32C @ =gMain ldr r0, [r1, #0x44] ldr r0, [r0, #0x2c] mov r8, r0 ldr r0, [r1, #0x4c] movs r7, #7 ands r0, r7 lsrs r3, r0, #2 mov r6, r8 ldrh r0, [r6] mov sb, r1 cmp r0, #0 bne _0801A2FC b _0801A974 _0801A2FC: movs r6, #0 movs r0, #0 mov r1, r8 strh r0, [r1, #2] movs r0, #0xc8 strh r0, [r1, #4] movs r1, #0 ldrsb r1, [r5, r1] cmp r1, #4 bne _0801A3EC adds r0, r4, #0 adds r0, #0xea ldrh r5, [r0] cmp r5, #0 beq _0801A330 movs r0, #0xb9 lsls r0, r0, #1 mov r2, r8 strh r0, [r2, #2] movs r0, #0x2c strh r0, [r2, #4] b _0801A8B8 .align 2, 0 _0801A328: .4byte 0x020314E0 _0801A32C: .4byte gMain _0801A330: adds r0, r4, #0 adds r0, #0xe4 strb r1, [r0] ldr r1, _0801A3AC @ =0x040000D4 ldr r2, _0801A3B0 @ =0x086ACEF8 ldr r3, _0801A3B4 @ =0x020314E0 ldr r0, [r3] adds r0, #0xf2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0801A3B8 @ =0x06015800 str r0, [r1, #4] ldr r0, _0801A3BC @ =0x800012F0 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_2CD98 ldr r4, _0801A3B4 @ =0x020314E0 ldr r3, [r4] adds r1, r3, #0 adds r1, #0xf4 ldrh r2, [r1] movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0 ble _0801A3C0 subs r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x77 bne _0801A384 bl m4aMPlayAllStop movs r0, #0x10 bl m4aSongNumStart _0801A384: ldr r0, _0801A3B4 @ =0x020314E0 ldr r1, [r0] adds r1, #0xf6 ldrh r0, [r1] subs r0, #0x28 strh r0, [r1] movs r2, #0 ldrsh r0, [r1, r2] movs r1, #0xa bl __divsi3 movs r3, #0xb9 lsls r3, r3, #1 adds r0, r0, r3 mov r4, r8 strh r0, [r4, #2] movs r0, #0x2c strh r0, [r4, #4] b _0801A8B8 .align 2, 0 _0801A3AC: .4byte 0x040000D4 _0801A3B0: .4byte 0x086ACEF8 _0801A3B4: .4byte 0x020314E0 _0801A3B8: .4byte 0x06015800 _0801A3BC: .4byte 0x800012F0 _0801A3C0: ldr r0, _0801A3E4 @ =0x0000FF92 mov r7, r8 strh r0, [r7, #2] movs r0, #0x2c strh r0, [r7, #4] mov r1, sb ldr r0, [r1, #0x44] ldr r0, [r0, #0x2c] strh r5, [r0] adds r0, r3, #0 adds r0, #0xf2 strb r6, [r0] ldr r2, _0801A3E8 @ =0x020314E0 ldr r0, [r2] adds r0, #0xe4 strb r6, [r0] b _0801A8B8 .align 2, 0 _0801A3E4: .4byte 0x0000FF92 _0801A3E8: .4byte 0x020314E0 _0801A3EC: adds r0, r4, #0 adds r0, #0xe4 movs r4, #4 mov sl, r4 mov r5, sl strb r5, [r0] ldr r6, _0801A4D8 @ =0x040000D4 ldr r1, _0801A4DC @ =0x086ACEF8 ldr r2, _0801A4E0 @ =0x020314E0 ldr r0, [r2] adds r0, #0xf2 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #2 adds r2, r2, r1 adds r1, r3, #0 lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #3 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, [r2] adds r1, r1, r0 str r1, [r6] ldr r0, _0801A4E4 @ =0x06015800 str r0, [r6, #4] ldr r0, _0801A4E8 @ =0x800010E0 str r0, [r6, #8] ldr r0, [r6, #8] ldr r3, _0801A4E0 @ =0x020314E0 ldr r5, [r3] adds r1, r5, #0 adds r1, #0xf4 ldrh r2, [r1] movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bgt _0801A43A b _0801A6C8 _0801A43A: subs r0, r2, #1 strh r0, [r1] adds r0, r5, #0 adds r0, #0xf0 ldrh r0, [r0] cmp r0, #0 bne _0801A44A b _0801A692 _0801A44A: cmp r0, #0x28 bne _0801A456 ldr r0, _0801A4EC @ =0x02032F20 ldr r1, _0801A4F0 @ =0x0869F7C8 bl MPlayStart _0801A456: ldr r5, _0801A4E0 @ =0x020314E0 ldr r2, [r5] adds r1, r2, #0 adds r1, #0xf0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bhi _0801A474 adds r1, #6 ldrh r0, [r1] adds r0, #0xa0 strh r0, [r1] _0801A474: ldr r6, _0801A4E0 @ =0x020314E0 ldr r2, [r6] adds r1, r2, #0 adds r1, #0xf0 ldrh r3, [r1] adds r0, r3, #0 subs r0, #0x21 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bls _0801A48C b _0801A67A _0801A48C: cmp r3, #0x24 bls _0801A492 b _0801A5A0 _0801A492: mov r3, sb ldrh r0, [r3, #0x3c] strh r7, [r3, #0x3c] ldrh r0, [r1] cmp r0, #0x23 bls _0801A4A0 b _0801A67A _0801A4A0: adds r0, r2, #0 adds r0, #0x25 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _0801A4BA ldr r4, _0801A4F4 @ =0x000001A5 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A4C8 _0801A4BA: cmp r1, #4 bne _0801A500 ldr r5, _0801A4F8 @ =0x000006DC adds r0, r2, r5 ldrb r0, [r0] cmp r0, #9 bne _0801A500 _0801A4C8: ldr r0, _0801A4E0 @ =0x020314E0 ldr r1, [r0] adds r1, #0x70 movs r2, #0 strb r2, [r1] ldr r2, _0801A4FC @ =0x02031520 b _0801A51C .align 2, 0 _0801A4D8: .4byte 0x040000D4 _0801A4DC: .4byte 0x086ACEF8 _0801A4E0: .4byte 0x020314E0 _0801A4E4: .4byte 0x06015800 _0801A4E8: .4byte 0x800010E0 _0801A4EC: .4byte 0x02032F20 _0801A4F0: .4byte 0x0869F7C8 _0801A4F4: .4byte 0x000001A5 _0801A4F8: .4byte 0x000006DC _0801A4FC: .4byte 0x02031520 _0801A500: ldr r3, _0801A534 @ =0x020314E0 ldr r0, [r3] adds r0, #0x70 movs r1, #1 strb r1, [r0] ldr r1, _0801A538 @ =0x040000D4 ldr r2, _0801A53C @ =0x02031520 ldr r0, [r2, #0x34] str r0, [r1] ldr r0, _0801A540 @ =0x05000200 str r0, [r1, #4] ldr r0, _0801A544 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801A51C: ldr r0, _0801A548 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bne _0801A554 ldr r1, _0801A538 @ =0x040000D4 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801A54C @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A550 @ =0x80000060 b _0801A562 .align 2, 0 _0801A534: .4byte 0x020314E0 _0801A538: .4byte 0x040000D4 _0801A53C: .4byte 0x02031520 _0801A540: .4byte 0x05000200 _0801A544: .4byte 0x80000010 _0801A548: .4byte gMain _0801A54C: .4byte 0x05000240 _0801A550: .4byte 0x80000060 _0801A554: ldr r1, _0801A588 @ =0x040000D4 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801A58C @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A590 @ =0x80000070 _0801A562: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801A588 @ =0x040000D4 ldr r0, [r2, #0x34] movs r6, #0xa0 lsls r6, r6, #1 adds r0, r0, r6 str r0, [r1] ldr r0, _0801A594 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A598 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _0801A59C @ =0x020314E0 ldr r0, [r7] adds r0, #0x6f movs r1, #2 b _0801A678 .align 2, 0 _0801A588: .4byte 0x040000D4 _0801A58C: .4byte 0x05000240 _0801A590: .4byte 0x80000070 _0801A594: .4byte 0x05000340 _0801A598: .4byte 0x80000030 _0801A59C: .4byte 0x020314E0 _0801A5A0: mov r3, sb ldrh r0, [r3, #0x3c] mov r4, sl strh r4, [r3, #0x3c] ldrh r0, [r1] cmp r0, #0x27 bhi _0801A67A adds r0, r2, #0 adds r0, #0x25 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _0801A5C8 ldr r5, _0801A5E4 @ =0x000001A5 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A5D6 _0801A5C8: cmp r1, #4 bne _0801A5F4 ldr r6, _0801A5E8 @ =0x000006DC adds r0, r2, r6 ldrb r0, [r0] cmp r0, #9 bne _0801A5F4 _0801A5D6: ldr r0, _0801A5EC @ =0x020314E0 ldr r1, [r0] adds r1, #0x70 movs r2, #0 strb r2, [r1] ldr r2, _0801A5F0 @ =0x02031520 b _0801A610 .align 2, 0 _0801A5E4: .4byte 0x000001A5 _0801A5E8: .4byte 0x000006DC _0801A5EC: .4byte 0x020314E0 _0801A5F0: .4byte 0x02031520 _0801A5F4: ldr r3, _0801A628 @ =0x020314E0 ldr r0, [r3] adds r0, #0x70 movs r1, #1 strb r1, [r0] ldr r1, _0801A62C @ =0x040000D4 ldr r2, _0801A630 @ =0x02031520 ldr r0, [r2, #0x30] str r0, [r1] ldr r0, _0801A634 @ =0x05000200 str r0, [r1, #4] ldr r0, _0801A638 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801A610: ldr r0, _0801A63C @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bne _0801A648 ldr r1, _0801A62C @ =0x040000D4 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801A640 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A644 @ =0x80000060 b _0801A656 .align 2, 0 _0801A628: .4byte 0x020314E0 _0801A62C: .4byte 0x040000D4 _0801A630: .4byte 0x02031520 _0801A634: .4byte 0x05000200 _0801A638: .4byte 0x80000010 _0801A63C: .4byte gMain _0801A640: .4byte 0x05000240 _0801A644: .4byte 0x80000060 _0801A648: ldr r1, _0801A6B0 @ =0x040000D4 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801A6B4 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A6B8 @ =0x80000070 _0801A656: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801A6B0 @ =0x040000D4 ldr r0, [r2, #0x30] movs r7, #0xa0 lsls r7, r7, #1 adds r0, r0, r7 str r0, [r1] ldr r0, _0801A6BC @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A6C0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801A6C4 @ =0x020314E0 ldr r0, [r1] adds r0, #0x6f movs r1, #1 _0801A678: strb r1, [r0] _0801A67A: ldr r2, _0801A6C4 @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0xf0 ldrh r2, [r0] cmp r2, #0 bne _0801A692 adds r0, #6 strh r2, [r0] adds r1, #0xf8 movs r0, #0x3c strh r0, [r1] _0801A692: ldr r3, _0801A6C4 @ =0x020314E0 ldr r0, [r3] adds r0, #0xf6 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 adds r0, #0x7f mov r5, r8 strh r0, [r5, #2] movs r0, #0x2c strh r0, [r5, #4] b _0801A8B8 .align 2, 0 _0801A6B0: .4byte 0x040000D4 _0801A6B4: .4byte 0x05000240 _0801A6B8: .4byte 0x80000070 _0801A6BC: .4byte 0x05000340 _0801A6C0: .4byte 0x80000030 _0801A6C4: .4byte 0x020314E0 _0801A6C8: adds r7, r5, #0 adds r7, #0xf0 ldrh r0, [r7] cmp r0, #0x1d bls _0801A6D4 b _0801A8B8 _0801A6D4: adds r1, r5, #0 adds r1, #0xf6 adds r4, r5, #0 adds r4, #0xf8 ldrh r0, [r4] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r1, r3] movs r1, #0xa bl __divsi3 adds r0, #0x7f mov r1, r8 strh r0, [r1, #2] movs r0, #0x2c strh r0, [r1, #4] ldrh r0, [r7] adds r0, #1 strh r0, [r7] ldrh r0, [r4] subs r0, #0xa strh r0, [r4] ldrh r0, [r7] cmp r0, #0x18 bls _0801A7CE adds r0, r5, #0 adds r0, #0x25 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _0801A724 ldr r2, _0801A768 @ =0x000001A5 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A7CE _0801A724: cmp r1, #4 bne _0801A732 ldr r3, _0801A76C @ =0x000006DC adds r0, r5, r3 ldrb r0, [r0] cmp r0, #9 beq _0801A7CE _0801A732: mov r4, sb ldrh r0, [r4, #0x3c] mov r5, sl strh r5, [r4, #0x3c] ldrh r0, [r7] cmp r0, #0x19 bls _0801A7BA ldr r1, _0801A770 @ =0x02031520 ldr r3, [r1, #0x30] str r3, [r6] ldr r0, _0801A774 @ =0x05000200 str r0, [r6, #4] ldr r0, _0801A778 @ =0x80000010 str r0, [r6, #8] ldr r0, [r6, #8] ldrb r0, [r4, #4] adds r2, r1, #0 cmp r0, #1 bne _0801A784 adds r0, r3, #0 adds r0, #0x40 str r0, [r6] ldr r0, _0801A77C @ =0x05000240 str r0, [r6, #4] ldr r0, _0801A780 @ =0x80000060 b _0801A790 .align 2, 0 _0801A768: .4byte 0x000001A5 _0801A76C: .4byte 0x000006DC _0801A770: .4byte 0x02031520 _0801A774: .4byte 0x05000200 _0801A778: .4byte 0x80000010 _0801A77C: .4byte 0x05000240 _0801A780: .4byte 0x80000060 _0801A784: adds r0, r3, #0 adds r0, #0x40 str r0, [r6] ldr r0, _0801A850 @ =0x05000240 str r0, [r6, #4] ldr r0, _0801A854 @ =0x80000070 _0801A790: str r0, [r6, #8] ldr r0, [r6, #8] ldr r1, _0801A858 @ =0x040000D4 ldr r0, [r2, #0x30] movs r6, #0xa0 lsls r6, r6, #1 adds r0, r0, r6 str r0, [r1] ldr r0, _0801A85C @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A860 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _0801A864 @ =0x020314E0 ldr r0, [r7] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0x70 strb r1, [r0] _0801A7BA: ldr r1, _0801A864 @ =0x020314E0 ldr r0, [r1] adds r0, #0xf0 ldrh r0, [r0] cmp r0, #0x1d bne _0801A7CE mov r2, sb ldrh r0, [r2, #0x3c] movs r0, #0 strh r0, [r2, #0x3c] _0801A7CE: ldr r3, _0801A864 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0xf0 ldrh r0, [r0] cmp r0, #0x1e bne _0801A8B8 mov r4, sb ldr r0, [r4, #0x44] ldr r0, [r0, #0x2c] movs r1, #0 movs r3, #0 strh r3, [r0] adds r0, r2, #0 adds r0, #0xf2 strb r1, [r0] ldr r5, _0801A864 @ =0x020314E0 ldr r0, [r5] adds r0, #0xe4 strb r1, [r0] ldr r1, [r5] adds r0, r1, #0 adds r0, #0x25 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #3 bne _0801A812 ldr r6, _0801A868 @ =0x000001A5 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A8B8 _0801A812: cmp r2, #4 bne _0801A820 ldr r7, _0801A86C @ =0x000006DC adds r0, r1, r7 ldrb r0, [r0] cmp r0, #9 beq _0801A8B8 _0801A820: mov r1, sb ldrh r0, [r1, #0x3c] strh r3, [r1, #0x3c] ldr r3, _0801A858 @ =0x040000D4 ldr r1, _0801A870 @ =0x02031520 ldr r4, [r1, #0x2c] str r4, [r3] ldr r0, _0801A874 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801A878 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov r2, sb ldrb r0, [r2, #4] adds r2, r1, #0 cmp r0, #1 bne _0801A880 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801A850 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801A87C @ =0x80000060 b _0801A88C .align 2, 0 _0801A850: .4byte 0x05000240 _0801A854: .4byte 0x80000070 _0801A858: .4byte 0x040000D4 _0801A85C: .4byte 0x05000340 _0801A860: .4byte 0x80000030 _0801A864: .4byte 0x020314E0 _0801A868: .4byte 0x000001A5 _0801A86C: .4byte 0x000006DC _0801A870: .4byte 0x02031520 _0801A874: .4byte 0x05000200 _0801A878: .4byte 0x80000010 _0801A87C: .4byte 0x80000060 _0801A880: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801A94C @ =0x05000240 str r0, [r3, #4] ldr r0, _0801A950 @ =0x80000070 _0801A88C: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801A954 @ =0x040000D4 ldr r0, [r2, #0x2c] movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0801A958 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A95C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r4, _0801A960 @ =0x020314E0 ldr r0, [r4] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r0, [r4] adds r0, #0x70 movs r1, #1 strb r1, [r0] _0801A8B8: movs r2, #0 ldr r5, [sp] lsls r1, r5, #0x10 ldr r6, _0801A964 @ =0x03005000 mov ip, r6 ldr r7, _0801A968 @ =0x086B4568 mov sl, r7 asrs r1, r1, #0x10 movs r0, #0x5a adds r6, r1, #0 muls r6, r0, r6 ldr r0, _0801A96C @ =0xFFFFFE00 mov sb, r0 _0801A8D2: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, r8 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 add r1, sl ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 mov r7, r8 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _0801A970 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ldrh r5, [r2, #2] ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r7, r8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xe ble _0801A8D2 b _0801A97A .align 2, 0 _0801A94C: .4byte 0x05000240 _0801A950: .4byte 0x80000070 _0801A954: .4byte 0x040000D4 _0801A958: .4byte 0x05000340 _0801A95C: .4byte 0x80000030 _0801A960: .4byte 0x020314E0 _0801A964: .4byte 0x03005000 _0801A968: .4byte 0x086B4568 _0801A96C: .4byte 0xFFFFFE00 _0801A970: .4byte 0x000001FF _0801A974: movs r0, #1 mov r3, r8 strh r0, [r3] _0801A97A: 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 thumb_func_start sub_1A98C sub_1A98C: @ 0x0801A98C push {lr} ldr r0, _0801A9B0 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _0801A9E0 ldr r0, _0801A9B4 @ =0x020314E0 ldr r0, [r0] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801A9C8 cmp r0, #2 bgt _0801A9B8 cmp r0, #1 beq _0801A9C2 b _0801A9D8 .align 2, 0 _0801A9B0: .4byte gMain _0801A9B4: .4byte 0x020314E0 _0801A9B8: cmp r0, #3 beq _0801A9CE cmp r0, #4 beq _0801A9D4 b _0801A9D8 _0801A9C2: bl sub_1AA38 b _0801A9D8 _0801A9C8: bl sub_1AD84 b _0801A9D8 _0801A9CE: bl sub_1AF84 b _0801A9D8 _0801A9D4: bl sub_1C560 _0801A9D8: ldr r0, _0801A9E4 @ =0x020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] _0801A9E0: pop {r0} bx r0 .align 2, 0 _0801A9E4: .4byte 0x020314E0 thumb_func_start sub_1A9E8 sub_1A9E8: @ 0x0801A9E8 push {lr} ldr r2, _0801AA10 @ =0x020314E0 ldr r1, [r2] ldrh r0, [r1, #0x26] cmp r0, #0 beq _0801A9F8 subs r0, #1 strh r0, [r1, #0x26] _0801A9F8: ldr r0, [r2] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801AA24 cmp r0, #2 bgt _0801AA14 cmp r0, #1 beq _0801AA1E b _0801AA34 .align 2, 0 _0801AA10: .4byte 0x020314E0 _0801AA14: cmp r0, #3 beq _0801AA2A cmp r0, #4 beq _0801AA30 b _0801AA34 _0801AA1E: bl sub_1AAA0 b _0801AA34 _0801AA24: bl sub_1ADF4 b _0801AA34 _0801AA2A: bl sub_1AFD4 b _0801AA34 _0801AA30: bl sub_1C5AC _0801AA34: pop {r0} bx r0 thumb_func_start sub_1AA38 sub_1AA38: @ 0x0801AA38 push {r4, lr} ldr r4, _0801AA88 @ =0x020314E0 ldr r0, [r4] ldr r1, _0801AA8C @ =0x0000072F adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _0801AA52 movs r0, #4 bl sub_19B64 _0801AA52: ldr r0, [r4] ldr r2, _0801AA90 @ =0x000005FC adds r1, r0, r2 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r1, _0801AA94 @ =0x000005FB adds r0, r0, r1 strb r2, [r0] ldr r1, [r4] ldr r2, _0801AA98 @ =0x000005FE adds r0, r1, r2 strh r3, [r0] movs r0, #0x71 strh r0, [r1, #0x28] movs r0, #0xce bl m4aSongNumStart ldr r1, [r4] ldr r0, _0801AA9C @ =0x0000C350 str r0, [r1, #0x3c] movs r0, #8 bl sub_11B0 pop {r4} pop {r0} bx r0 .align 2, 0 _0801AA88: .4byte 0x020314E0 _0801AA8C: .4byte 0x0000072F _0801AA90: .4byte 0x000005FC _0801AA94: .4byte 0x000005FB _0801AA98: .4byte 0x000005FE _0801AA9C: .4byte 0x0000C350 thumb_func_start sub_1AAA0 sub_1AAA0: @ 0x0801AAA0 push {r4, r5, r6, lr} ldr r6, _0801AB04 @ =0x020314E0 ldr r0, [r6] mov ip, r0 ldrh r0, [r0, #0x28] cmp r0, #0 bne _0801AAB0 b _0801AD3C _0801AAB0: subs r0, #1 movs r3, #0 movs r4, #0 mov r1, ip strh r0, [r1, #0x28] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x64 bls _0801AB64 ldr r0, _0801AB08 @ =0x000005F7 add r0, ip movs r1, #1 strb r1, [r0] ldr r0, [r6] strb r1, [r0, #0x1f] ldr r3, [r6] ldr r5, _0801AB0C @ =0x0000132C adds r2, r3, r5 ldr r0, [r2] strh r4, [r0, #0x30] ldr r0, [r2] strh r4, [r0, #0x32] ldr r0, [r2] strh r4, [r0, #6] ldrh r0, [r3, #0x28] cmp r0, #0x6c bls _0801AB38 ldr r2, _0801AB10 @ =0x000005FA adds r0, r3, r2 strb r1, [r0] ldr r2, [r6] ldrh r0, [r2, #0x28] cmp r0, #0x6e bls _0801AB14 adds r2, r2, r5 ldr r1, [r2] movs r0, #0xc3 strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0xde b _0801AB20 .align 2, 0 _0801AB04: .4byte 0x020314E0 _0801AB08: .4byte 0x000005F7 _0801AB0C: .4byte 0x0000132C _0801AB10: .4byte 0x000005FA _0801AB14: adds r2, r2, r5 ldr r1, [r2] movs r0, #0xc4 strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0xdd _0801AB20: strh r0, [r1, #0x12] ldr r0, _0801AB34 @ =0x020314E0 ldr r0, [r0] movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 movs r1, #6 strb r1, [r0] b _0801ACFA .align 2, 0 _0801AB34: .4byte 0x020314E0 _0801AB38: cmp r0, #0x68 bls _0801AB52 ldr r1, [r2] movs r0, #0xc5 strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0xdb strh r0, [r1, #0x12] movs r4, #0xbd lsls r4, r4, #2 adds r1, r3, r4 movs r0, #7 b _0801ACF8 _0801AB52: ldr r0, [r2] strb r1, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #8 strb r1, [r0] b _0801ACFA _0801AB64: cmp r0, #0x14 bls _0801ABFE cmp r0, #0x4d bls _0801AB9C movs r0, #0xbd lsls r0, r0, #2 add r0, ip movs r1, #9 strb r1, [r0] ldr r2, [r6] ldrh r0, [r2, #0x28] cmp r0, #0x4f bls _0801AB80 b _0801ACFA _0801AB80: ldr r3, _0801AB98 @ =0x000002F6 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #0 bne _0801AB8C b _0801ACFA _0801AB8C: subs r0, #1 strh r0, [r1] ldrh r0, [r2, #0x28] adds r0, #1 strh r0, [r2, #0x28] b _0801ACFA .align 2, 0 _0801AB98: .4byte 0x000002F6 _0801AB9C: cmp r0, #0x48 bls _0801ABAA movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xa b _0801ACF8 _0801ABAA: cmp r0, #0x43 bls _0801ABB8 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xb b _0801ACF8 _0801ABB8: cmp r0, #0x2c bls _0801ABC6 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xc b _0801ACF8 _0801ABC6: cmp r0, #0x26 bls _0801ABD4 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xd b _0801ACF8 _0801ABD4: cmp r0, #0x1c bls _0801ABE2 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xe b _0801ACF8 _0801ABE2: cmp r0, #0x17 bls _0801ABF0 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xf b _0801ACF8 _0801ABF0: ldr r0, [r6] movs r4, #0xbd lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0x10 strb r1, [r0] b _0801ACFA _0801ABFE: cmp r0, #0x12 bls _0801AC28 ldr r1, _0801AC24 @ =0x0000132C add r1, ip ldr r2, [r1] movs r0, #0xc1 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xe2 strh r0, [r2, #0x12] ldr r0, [r1] strb r3, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x11 strb r1, [r0] b _0801ACFA .align 2, 0 _0801AC24: .4byte 0x0000132C _0801AC28: cmp r0, #0x10 bls _0801AC9C mov r2, ip strb r3, [r2, #0x1f] ldr r0, [r6] ldr r2, _0801AC8C @ =0x000005FE adds r1, r0, r2 strh r4, [r1] ldr r1, _0801AC90 @ =0x000005FB adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r6] subs r2, #4 adds r0, r0, r2 strb r3, [r0] ldr r3, [r6] ldr r0, _0801AC94 @ =0x0000132C adds r1, r3, r0 ldr r0, [r1] strh r4, [r0, #6] ldr r2, [r1] ldr r0, _0801AC98 @ =0x0000FF56 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xdc strh r0, [r2, #0x32] ldr r2, [r1] movs r0, #0xbe strh r0, [r2, #0x10] ldr r1, [r1] movs r0, #0xe8 strh r0, [r1, #0x12] movs r1, #0xbd lsls r1, r1, #2 adds r3, r3, r1 movs r0, #0x12 strb r0, [r3] ldr r0, [r6] ldrh r0, [r0, #0x28] cmp r0, #0x12 bne _0801ACFA movs r0, #0xc2 bl m4aSongNumStart movs r0, #7 bl sub_11B0 b _0801ACFA .align 2, 0 _0801AC8C: .4byte 0x000005FE _0801AC90: .4byte 0x000005FB _0801AC94: .4byte 0x0000132C _0801AC98: .4byte 0x0000FF56 _0801AC9C: cmp r0, #0xc bls _0801ACB8 ldr r0, _0801ACB4 @ =0x0000132C add r0, ip ldr r0, [r0] strh r4, [r0, #6] movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x13 b _0801ACF8 .align 2, 0 _0801ACB4: .4byte 0x0000132C _0801ACB8: cmp r0, #8 bls _0801ACD4 ldr r0, _0801ACD0 @ =0x0000132C add r0, ip ldr r0, [r0] strh r4, [r0, #6] movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x14 b _0801ACF8 .align 2, 0 _0801ACD0: .4byte 0x0000132C _0801ACD4: cmp r0, #4 bls _0801ACF0 ldr r0, _0801ACEC @ =0x0000132C add r0, ip ldr r0, [r0] strh r4, [r0, #6] movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x15 b _0801ACF8 .align 2, 0 _0801ACEC: .4byte 0x0000132C _0801ACF0: movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x16 _0801ACF8: strb r0, [r1] _0801ACFA: ldr r0, _0801AD34 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801AD38 @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r2] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r2] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] ldr r1, [r2] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] b _0801AD74 .align 2, 0 _0801AD34: .4byte 0x020314E0 _0801AD38: .4byte 0x0000132C _0801AD3C: movs r3, #0 movs r0, #0x1e mov r4, ip strh r0, [r4, #0x26] ldr r2, _0801AD7C @ =0x0000132C add r2, ip ldr r1, [r2] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r2] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] mov r0, ip adds r0, #0x25 strb r3, [r0] ldr r0, [r6] ldr r4, _0801AD80 @ =0x000005F7 adds r0, r0, r4 strb r3, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 strb r3, [r0] _0801AD74: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0801AD7C: .4byte 0x0000132C _0801AD80: .4byte 0x000005F7 thumb_func_start sub_1AD84 sub_1AD84: @ 0x0801AD84 push {r4, lr} ldr r4, _0801ADB4 @ =0x020314E0 ldr r1, [r4] ldr r0, _0801ADB8 @ =0x000186A0 str r0, [r1, #0x3c] ldr r0, _0801ADBC @ =0x000002DA adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #3 bne _0801ADC0 movs r0, #4 strb r0, [r2] movs r0, #0xb7 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r4] movs r0, #0xfa lsls r0, r0, #1 b _0801ADD8 .align 2, 0 _0801ADB4: .4byte 0x020314E0 _0801ADB8: .4byte 0x000186A0 _0801ADBC: .4byte 0x000002DA _0801ADC0: movs r2, #0xb4 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801ADD6 movs r0, #0x96 lsls r0, r0, #1 b _0801ADD8 _0801ADD6: movs r0, #0x78 _0801ADD8: strh r0, [r1, #0x28] ldr r0, _0801ADEC @ =0x020314E0 ldr r0, [r0] ldr r1, _0801ADF0 @ =0x000005F7 adds r0, r0, r1 movs r1, #1 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0801ADEC: .4byte 0x020314E0 _0801ADF0: .4byte 0x000005F7 thumb_func_start sub_1ADF4 sub_1ADF4: @ 0x0801ADF4 push {r4, r5, r6, lr} ldr r5, _0801AE7C @ =0x020314E0 ldr r0, [r5] ldrh r4, [r0, #0x28] cmp r4, #0 beq _0801AEE0 ldr r1, _0801AE80 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r5] strb r2, [r0, #0x1f] ldr r5, [r5] mov ip, r5 ldrh r0, [r5, #0x28] subs r0, #1 strh r0, [r5, #0x28] add r1, ip ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r2, [r1] movs r0, #0x58 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0x94 strh r0, [r2, #0x12] ldr r0, [r1] strh r3, [r0, #6] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r1, [r1] movs r4, #0x12 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x2a] movs r0, #0xb4 lsls r0, r0, #2 add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801AE5A b _0801AF78 _0801AE5A: ldrh r1, [r5, #0x28] adds r0, r1, #0 cmp r0, #0xc8 bls _0801AE64 b _0801AF78 _0801AE64: cmp r0, #0xc8 bne _0801AEA8 mov r0, ip adds r0, #0xe4 ldrb r0, [r0] cmp r0, #0 beq _0801AE84 adds r0, r1, #1 mov r1, ip strh r0, [r1, #0x28] b _0801AECA .align 2, 0 _0801AE7C: .4byte 0x020314E0 _0801AE80: .4byte 0x0000132C _0801AE84: mov r2, ip ldr r0, [r2, #0x48] cmp r0, #0 beq _0801AEA2 movs r0, #0xb6 lsls r0, r0, #1 add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801AEA2 bl sub_22978 b _0801AECA _0801AEA2: bl sub_22C6C b _0801AECA _0801AEA8: mov r3, ip ldr r0, [r3, #0x48] cmp r0, #0 beq _0801AEC6 movs r0, #0xb6 lsls r0, r0, #1 add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801AEC6 bl sub_22A30 b _0801AECA _0801AEC6: bl sub_22D54 _0801AECA: ldr r0, _0801AEDC @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x28] cmp r0, #9 bhi _0801AF78 adds r0, #1 strh r0, [r1, #0x28] b _0801AF78 .align 2, 0 _0801AEDC: .4byte 0x020314E0 _0801AEE0: ldr r1, _0801AF50 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] strb r4, [r0] ldr r0, [r5] adds r0, #0x25 strb r4, [r0] ldr r3, [r5] adds r1, r3, r1 ldr r2, [r1] movs r6, #0 movs r0, #0x58 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xa2 strh r0, [r2, #0x12] ldr r0, [r1] strh r4, [r0, #6] ldr r2, [r1] movs r4, #0x10 ldrsh r0, [r2, r4] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r4, _0801AF54 @ =0x000005F7 adds r3, r3, r4 strb r6, [r3] ldr r1, [r5] movs r2, #0xb4 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801AF60 ldr r3, _0801AF58 @ =0x000002DA adds r1, r1, r3 movs r0, #3 strb r0, [r1] ldr r1, [r5] ldr r4, _0801AF5C @ =0x000002DE adds r2, r1, r4 movs r0, #0x30 strh r0, [r2] movs r0, #0xb8 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0x1e strh r0, [r1] b _0801AF78 .align 2, 0 _0801AF50: .4byte 0x0000132C _0801AF54: .4byte 0x000005F7 _0801AF58: .4byte 0x000002DA _0801AF5C: .4byte 0x000002DE _0801AF60: strb r6, [r1, #0x1f] ldr r1, [r5] movs r0, #0x3c strh r0, [r1, #0x26] ldr r2, _0801AF80 @ =0x0000132C adds r1, r1, r2 ldr r2, [r1] movs r0, #0x14 strh r0, [r2, #0x30] ldr r1, [r1] movs r0, #0xc8 strh r0, [r1, #0x32] _0801AF78: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0801AF80: .4byte 0x0000132C thumb_func_start sub_1AF84 sub_1AF84: @ 0x0801AF84 push {r4, lr} ldr r0, _0801AFC4 @ =0x020314E0 ldr r3, [r0] movs r1, #0xdc lsls r1, r1, #1 adds r0, r3, r1 movs r2, #0 strh r2, [r0] movs r4, #0xdb lsls r4, r4, #1 adds r0, r3, r4 strh r2, [r0] movs r0, #0xb4 strh r0, [r3, #0x28] adds r4, #4 adds r1, r3, r4 strh r0, [r1] ldr r0, _0801AFC8 @ =0x0007A120 str r0, [r3, #0x3c] ldr r0, _0801AFCC @ =gMain ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r2, [r0, #0x3c] ldr r0, _0801AFD0 @ =0x000005F7 adds r1, r3, r0 movs r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0801AFC4: .4byte 0x020314E0 _0801AFC8: .4byte 0x0007A120 _0801AFCC: .4byte gMain _0801AFD0: .4byte 0x000005F7 thumb_func_start sub_1AFD4 sub_1AFD4: @ 0x0801AFD4 push {r4, r5, r6, r7, lr} ldr r7, _0801B074 @ =0x020314E0 ldr r2, [r7] ldrh r0, [r2, #0x28] adds r6, r0, #0 adds r5, r7, #0 cmp r6, #0x18 bls _0801B080 ldr r1, _0801B078 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r7] strb r2, [r0, #0x1f] ldr r4, [r7] ldrh r0, [r4, #0x28] subs r0, #1 strh r0, [r4, #0x28] adds r1, r4, r1 ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r2, [r1] movs r0, #0xdc strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0x62 strh r0, [r2, #0x12] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r3, #0x12 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] ldrh r0, [r4, #0x28] cmp r0, #0x9b bls _0801B054 adds r1, r0, #0 subs r1, #0x9c cmp r1, #0 bge _0801B04A adds r1, #7 _0801B04A: asrs r1, r1, #3 movs r3, #0xbc lsls r3, r3, #2 adds r0, r4, r3 strb r1, [r0] _0801B054: ldr r1, [r5] ldrh r0, [r1, #0x28] cmp r0, #0x31 bhi _0801B060 adds r0, #1 strh r0, [r1, #0x28] _0801B060: ldr r0, [r5] ldr r1, _0801B07C @ =0x000001A5 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_1B140 b _0801B12A .align 2, 0 _0801B074: .4byte 0x020314E0 _0801B078: .4byte 0x0000132C _0801B07C: .4byte 0x000001A5 _0801B080: cmp r6, #0 beq _0801B0A0 subs r0, #1 strh r0, [r2, #0x28] ldrh r1, [r2, #0x28] movs r0, #0x18 subs r0, r0, r1 cmp r0, #0 bge _0801B094 adds r0, #7 _0801B094: asrs r1, r0, #3 movs r3, #0xbc lsls r3, r3, #2 adds r0, r2, r3 strb r1, [r0] b _0801B12A _0801B0A0: ldr r4, _0801B130 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] strb r6, [r0] ldr r0, [r7] strb r6, [r0, #0x1f] ldr r3, [r7] movs r5, #0 movs r0, #0x3c strh r0, [r3, #0x26] adds r2, r3, r4 ldr r1, [r2] movs r0, #0x60 strh r0, [r1, #0x30] ldr r1, [r2] movs r0, #0xc0 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #0xdf strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0x63 strh r0, [r1, #0x12] ldr r0, [r2] strh r6, [r0, #6] ldr r0, _0801B134 @ =0x000005F7 adds r3, r3, r0 strb r5, [r3] ldr r2, [r7] adds r4, r2, r4 ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] adds r2, #0x25 strb r5, [r2] ldr r0, [r7] movs r1, #0xbc lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x13 strb r1, [r0] movs r0, #0xc3 bl m4aSongNumStart ldr r1, [r7] ldr r2, _0801B138 @ =0x0000072E adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0801B12A ldr r3, _0801B13C @ =0x00000281 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0801B12A movs r0, #6 bl sub_19B64 _0801B12A: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801B130: .4byte 0x0000132C _0801B134: .4byte 0x000005F7 _0801B138: .4byte 0x0000072E _0801B13C: .4byte 0x00000281 thumb_func_start sub_1B140 sub_1B140: @ 0x0801B140 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r7, #0 ldr r0, _0801B228 @ =gMain ldrb r0, [r0, #0xf] ldr r1, _0801B22C @ =0x020314E0 mov r8, r1 cmp r0, #0 bne _0801B16A ldr r0, [r1] movs r3, #0xdd lsls r3, r3, #1 adds r1, r0, r3 ldrh r0, [r1] cmp r0, #0 beq _0801B16A subs r0, #1 strh r0, [r1] _0801B16A: lsls r0, r2, #0x10 asrs r5, r0, #0x10 cmp r5, #0 beq _0801B176 bl sub_1BB68 _0801B176: ldr r4, _0801B22C @ =0x020314E0 ldr r0, [r4] movs r6, #0xdd lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0x95 bne _0801B1B8 bl m4aMPlayAllStop ldr r0, [r4] ldr r2, _0801B230 @ =0x000006DE adds r1, r0, r2 movs r2, #0 strh r5, [r1] ldr r3, _0801B234 @ =0x000006DD adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] movs r1, #0xd7 lsls r1, r1, #1 adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _0801B238 @ =0x00000252 adds r0, r0, r2 strh r5, [r0] ldr r0, _0801B228 @ =gMain ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r5, [r0, #0x3c] _0801B1B8: ldr r1, [r4] adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x92 bne _0801B1E6 adds r1, #0xe4 movs r0, #0x12 strb r0, [r1] ldr r1, _0801B23C @ =0x040000D4 ldr r0, _0801B240 @ =0x084F61EC str r0, [r1] ldr r0, _0801B244 @ =0x06015C00 str r0, [r1, #4] ldr r0, _0801B248 @ =0x800004A0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801B24C @ =0x081B45A4 str r0, [r1] ldr r0, _0801B250 @ =0x05000180 str r0, [r1, #4] ldr r0, _0801B254 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801B1E6: ldr r0, [r4] adds r2, r0, r6 ldrh r1, [r2] adds r0, r1, #0 subs r0, #0x91 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r4 cmp r0, #4 bls _0801B1FC b _0801B332 _0801B1FC: cmp r1, #0x92 bls _0801B2B8 ldr r1, _0801B228 @ =gMain ldrh r0, [r1, #0x3c] movs r0, #4 strh r0, [r1, #0x3c] ldrh r0, [r2] cmp r0, #0x94 bls _0801B210 b _0801B332 _0801B210: ldrb r0, [r1, #4] cmp r0, #1 bne _0801B264 ldr r1, _0801B23C @ =0x040000D4 ldr r2, _0801B258 @ =0x02031520 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801B25C @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B260 @ =0x80000060 b _0801B274 .align 2, 0 _0801B228: .4byte gMain _0801B22C: .4byte 0x020314E0 _0801B230: .4byte 0x000006DE _0801B234: .4byte 0x000006DD _0801B238: .4byte 0x00000252 _0801B23C: .4byte 0x040000D4 _0801B240: .4byte 0x084F61EC _0801B244: .4byte 0x06015C00 _0801B248: .4byte 0x800004A0 _0801B24C: .4byte 0x081B45A4 _0801B250: .4byte 0x05000180 _0801B254: .4byte 0x80000010 _0801B258: .4byte 0x02031520 _0801B25C: .4byte 0x05000240 _0801B260: .4byte 0x80000060 _0801B264: ldr r1, _0801B29C @ =0x040000D4 ldr r2, _0801B2A0 @ =0x02031520 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801B2A4 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B2A8 @ =0x80000070 _0801B274: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801B29C @ =0x040000D4 ldr r0, [r2, #0x30] movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0801B2AC @ =0x05000340 str r0, [r1, #4] ldr r0, _0801B2B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0801B2B4 @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r3, #0 movs r1, #1 b _0801B328 .align 2, 0 _0801B29C: .4byte 0x040000D4 _0801B2A0: .4byte 0x02031520 _0801B2A4: .4byte 0x05000240 _0801B2A8: .4byte 0x80000070 _0801B2AC: .4byte 0x05000340 _0801B2B0: .4byte 0x80000030 _0801B2B4: .4byte 0x020314E0 _0801B2B8: ldr r1, _0801B2E0 @ =gMain ldrh r0, [r1, #0x3c] movs r0, #7 strh r0, [r1, #0x3c] ldrh r0, [r2] cmp r0, #0x91 bls _0801B2C8 b _0801B44A _0801B2C8: ldrb r0, [r1, #4] cmp r0, #1 bne _0801B2F4 ldr r1, _0801B2E4 @ =0x040000D4 ldr r2, _0801B2E8 @ =0x02031520 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801B2EC @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B2F0 @ =0x80000060 b _0801B304 .align 2, 0 _0801B2E0: .4byte gMain _0801B2E4: .4byte 0x040000D4 _0801B2E8: .4byte 0x02031520 _0801B2EC: .4byte 0x05000240 _0801B2F0: .4byte 0x80000060 _0801B2F4: ldr r1, _0801B3FC @ =0x040000D4 ldr r2, _0801B400 @ =0x02031520 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801B404 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B408 @ =0x80000070 _0801B304: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801B3FC @ =0x040000D4 ldr r0, [r2, #0x34] movs r4, #0xa0 lsls r4, r4, #1 adds r0, r0, r4 str r0, [r1] ldr r0, _0801B40C @ =0x05000340 str r0, [r1, #4] ldr r0, _0801B410 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0801B414 @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r3, #0 movs r1, #2 _0801B328: strb r1, [r0] ldr r0, [r2] adds r0, #0x70 strb r3, [r0] mov r8, r2 _0801B332: mov r5, r8 ldr r0, [r5] movs r6, #0xdd lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0x91 beq _0801B344 b _0801B44A _0801B344: movs r0, #0xb bl m4aSongNumStart ldr r0, [r5] movs r1, #0xd3 lsls r1, r1, #1 adds r0, r0, r1 movs r4, #0 strb r4, [r0] ldr r0, [r5] movs r2, #0xd4 lsls r2, r2, #1 adds r0, r0, r2 strb r4, [r0] ldr r3, [r5] ldr r2, _0801B418 @ =0x086AD2DE adds r1, r3, r1 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r5, _0801B41C @ =0x000001A7 adds r1, r3, r5 strb r0, [r1] movs r0, #6 movs r1, #0 bl sub_1C7F4 movs r0, #1 bl sub_21FBC ldr r2, _0801B420 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #0x1c] movs r3, #1 strh r3, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x20] strh r3, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x18] strh r3, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x24] strh r3, [r0] ldr r1, _0801B3FC @ =0x040000D4 ldr r0, _0801B424 @ =0x081B8784 str r0, [r1] ldr r0, _0801B428 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0801B42C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801B430 @ =0x081B8984 str r0, [r1] ldr r0, _0801B434 @ =0x06002000 str r0, [r1, #4] ldr r0, _0801B438 @ =0x80000620 str r0, [r1, #8] ldr r0, [r1, #8] ldr r6, _0801B43C @ =0x000002EA adds r1, r2, r6 movs r0, #0x50 strh r0, [r1] strh r4, [r2, #0x2a] mov r1, r8 ldr r0, [r1] movs r4, #0xdc lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0xf strh r1, [r0] strh r3, [r2, #0x28] movs r0, #0x8f bl m4aSongNumStart mov r5, r8 ldr r1, [r5] movs r6, #0xf1 lsls r6, r6, #1 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801B440 movs r0, #0xd5 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #1 b _0801B448 .align 2, 0 _0801B3FC: .4byte 0x040000D4 _0801B400: .4byte 0x02031520 _0801B404: .4byte 0x05000240 _0801B408: .4byte 0x80000070 _0801B40C: .4byte 0x05000340 _0801B410: .4byte 0x80000030 _0801B414: .4byte 0x020314E0 _0801B418: .4byte 0x086AD2DE _0801B41C: .4byte 0x000001A7 _0801B420: .4byte gMain _0801B424: .4byte 0x081B8784 _0801B428: .4byte 0x050003C0 _0801B42C: .4byte 0x80000010 _0801B430: .4byte 0x081B8984 _0801B434: .4byte 0x06002000 _0801B438: .4byte 0x80000620 _0801B43C: .4byte 0x000002EA _0801B440: movs r2, #0xd5 lsls r2, r2, #1 adds r1, r1, r2 movs r0, #0 _0801B448: strb r0, [r1] _0801B44A: mov r4, r8 ldr r3, [r4] movs r5, #0xdd lsls r5, r5, #1 adds r0, r3, r5 ldrh r0, [r0] cmp r0, #0x90 bls _0801B45C b _0801B6F2 _0801B45C: movs r6, #0xdc lsls r6, r6, #3 adds r1, r3, r6 movs r2, #0 movs r0, #0 strh r0, [r1] ldr r0, _0801B4D8 @ =0x000006C4 adds r1, r3, r0 movs r0, #2 strb r0, [r1] ldr r0, [r4] ldr r1, _0801B4DC @ =0x000006DB adds r0, r0, r1 strb r2, [r0] movs r7, #0 ldr r3, [r4] movs r4, #0xdc lsls r4, r4, #1 adds r2, r3, r4 ldrh r1, [r2] movs r5, #0 ldrsh r0, [r2, r5] cmp r0, #0 ble _0801B552 subs r0, r1, #1 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _0801B540 movs r6, #0 ldrsh r1, [r2, r6] movs r0, #0x1e subs r0, r0, r1 lsls r1, r0, #3 subs r1, r1, r0 subs r4, #2 adds r0, r3, r4 strh r1, [r0] movs r5, #0 ldrsh r0, [r2, r5] cmp r0, #0xf beq _0801B4B4 b _0801B614 _0801B4B4: movs r6, #0xd3 lsls r6, r6, #1 adds r1, r3, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 bne _0801B4F0 ldr r1, _0801B4E0 @ =0x000005F6 adds r0, r3, r1 ldrb r1, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0801B4E4 adds r0, r1, #0 adds r0, #0xa b _0801B526 .align 2, 0 _0801B4D8: .4byte 0x000006C4 _0801B4DC: .4byte 0x000006DB _0801B4E0: .4byte 0x000005F6 _0801B4E4: ldr r4, _0801B4EC @ =0x000001A7 adds r1, r3, r4 movs r0, #0xc b _0801B52A .align 2, 0 _0801B4EC: .4byte 0x000001A7 _0801B4F0: cmp r0, #6 bne _0801B518 ldr r0, _0801B504 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _0801B50C ldr r5, _0801B508 @ =0x000001A7 adds r1, r3, r5 movs r0, #0x16 b _0801B52A .align 2, 0 _0801B504: .4byte gMain _0801B508: .4byte 0x000001A7 _0801B50C: ldr r6, _0801B514 @ =0x000001A7 adds r1, r3, r6 movs r0, #0x17 b _0801B52A .align 2, 0 _0801B514: .4byte 0x000001A7 _0801B518: ldr r0, _0801B538 @ =0x086AD2DE ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] _0801B526: ldr r2, _0801B53C @ =0x000001A7 adds r1, r3, r2 _0801B52A: strb r0, [r1] movs r0, #6 movs r1, #0 bl sub_1C7F4 movs r7, #1 b _0801B614 .align 2, 0 _0801B538: .4byte 0x086AD2DE _0801B53C: .4byte 0x000001A7 _0801B540: movs r4, #0 ldrsh r1, [r2, r4] lsls r0, r1, #3 subs r0, r0, r1 movs r5, #0xdb lsls r5, r5, #1 adds r1, r3, r5 strh r0, [r1] b _0801B614 _0801B552: ldr r0, _0801B58C @ =gMain ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0801B5B2 ldr r6, _0801B590 @ =0x000006DD adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801B5B2 movs r0, #0x82 bl m4aSongNumStart mov r1, r8 ldr r0, [r1] movs r2, #0xd3 lsls r2, r2, #1 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801B594 subs r0, r2, #1 b _0801B596 .align 2, 0 _0801B58C: .4byte gMain _0801B590: .4byte 0x000006DD _0801B594: movs r0, #7 _0801B596: strb r0, [r1] ldr r2, _0801B5EC @ =0x020314E0 ldr r0, [r2] movs r3, #0xd4 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r4, #0xdc lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0x1e strh r1, [r0] _0801B5B2: ldr r0, _0801B5F0 @ =gMain ldrh r1, [r0, #0x18] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801B614 ldr r5, _0801B5EC @ =0x020314E0 ldr r0, [r5] ldr r6, _0801B5F4 @ =0x000006DD adds r0, r0, r6 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #0 bne _0801B614 movs r0, #0x82 bl m4aSongNumStart ldr r0, [r5] movs r2, #0xd3 lsls r2, r2, #1 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bgt _0801B5F8 adds r0, r2, #1 strb r0, [r1] b _0801B5FA .align 2, 0 _0801B5EC: .4byte 0x020314E0 _0801B5F0: .4byte gMain _0801B5F4: .4byte 0x000006DD _0801B5F8: strb r4, [r1] _0801B5FA: ldr r2, _0801B63C @ =0x020314E0 ldr r0, [r2] movs r3, #0xd4 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r4, #0xdc lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0x1e strh r1, [r0] _0801B614: adds r0, r7, #0 bl sub_21FBC ldr r0, _0801B63C @ =0x020314E0 ldr r1, [r0] movs r5, #0xd4 lsls r5, r5, #1 adds r0, r1, r5 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0801B64A ldr r6, _0801B640 @ =0x000001A9 adds r1, r1, r6 ldrb r0, [r1] cmp r0, #0 beq _0801B644 subs r0, #1 strb r0, [r1] b _0801B662 .align 2, 0 _0801B63C: .4byte 0x020314E0 _0801B640: .4byte 0x000001A9 _0801B644: movs r0, #7 strb r0, [r1] b _0801B662 _0801B64A: ldr r0, _0801B65C @ =0x000001A9 adds r1, r1, r0 ldrb r0, [r1] cmp r0, #6 bhi _0801B660 adds r0, #1 strb r0, [r1] b _0801B662 .align 2, 0 _0801B65C: .4byte 0x000001A9 _0801B660: strb r2, [r1] _0801B662: ldr r1, _0801B6C0 @ =0x040000D4 ldr r3, _0801B6C4 @ =0x086AD50C ldr r4, _0801B6C8 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801B6CC @ =0x000001A9 adds r0, r2, r5 ldrb r0, [r0] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] ldr r0, _0801B6D0 @ =0x06002000 str r0, [r1, #4] ldr r0, _0801B6D4 @ =0x80000620 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _0801B6D8 @ =gMain movs r6, #0x2a ldrsh r0, [r3, r6] lsls r0, r0, #2 movs r1, #0x50 subs r1, r1, r0 ldr r5, _0801B6DC @ =0x000002EA adds r0, r3, r5 strh r1, [r0] ldr r6, _0801B6E0 @ =0x00000252 adds r2, r2, r6 ldrh r0, [r2] mov r8, r4 cmp r0, #0 beq _0801B6E4 ldrh r1, [r3, #0x2a] movs r2, #0x2a ldrsh r0, [r3, r2] cmp r0, #0 ble _0801B6F2 subs r0, r1, #1 strh r0, [r3, #0x2a] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bne _0801B6F2 strh r0, [r3, #0x28] movs r0, #0x90 strh r0, [r3, #0x26] b _0801B6F2 .align 2, 0 _0801B6C0: .4byte 0x040000D4 _0801B6C4: .4byte 0x086AD50C _0801B6C8: .4byte 0x020314E0 _0801B6CC: .4byte 0x000001A9 _0801B6D0: .4byte 0x06002000 _0801B6D4: .4byte 0x80000620 _0801B6D8: .4byte gMain _0801B6DC: .4byte 0x000002EA _0801B6E0: .4byte 0x00000252 _0801B6E4: ldrh r1, [r3, #0x2a] movs r4, #0x2a ldrsh r0, [r3, r4] cmp r0, #0x13 bgt _0801B6F2 adds r0, r1, #1 strh r0, [r3, #0x2a] _0801B6F2: mov r5, r8 ldr r2, [r5] movs r6, #0xdc lsls r6, r6, #1 adds r0, r2, r6 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 ble _0801B706 b _0801B85E _0801B706: ldr r0, _0801B76C @ =gMain movs r3, #0x2a ldrsh r1, [r0, r3] adds r3, r0, #0 cmp r1, #0x13 bgt _0801B714 b _0801B85E _0801B714: ldrh r1, [r3, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0801B720 b _0801B82C _0801B720: ldr r4, _0801B770 @ =0x000006DD adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801B730 b _0801B82C _0801B730: ldr r5, _0801B774 @ =0x000001A7 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801B778 @ =0x086AD000 adds r4, r0, r1 ldr r1, _0801B77C @ =0x086AD2DE subs r6, #0x12 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #3 bne _0801B784 movs r3, #0xf1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801B784 ldr r3, _0801B780 @ =0x000003E7 b _0801B7AC .align 2, 0 _0801B76C: .4byte gMain _0801B770: .4byte 0x000006DD _0801B774: .4byte 0x000001A7 _0801B778: .4byte 0x086AD000 _0801B77C: .4byte 0x086AD2DE _0801B780: .4byte 0x000003E7 _0801B784: mov r5, r8 ldr r2, [r5] movs r6, #0xd3 lsls r6, r6, #1 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #4 bne _0801B7AA ldr r1, _0801B804 @ =0x000001AF adds r0, r2, r1 ldrb r0, [r0] ldr r3, _0801B808 @ =0x000003E7 cmp r0, #0 bne _0801B7AC _0801B7AA: ldrh r3, [r4, #6] _0801B7AC: ldr r4, _0801B80C @ =0x020314E0 ldr r2, [r4] movs r5, #0xc9 lsls r5, r5, #1 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r1, r0 blt _0801B824 ldr r6, _0801B810 @ =0x000006DD adds r1, r2, r6 movs r0, #1 strb r0, [r1] ldr r0, [r4] ldr r2, _0801B814 @ =0x000001A7 adds r1, r0, r2 ldrb r1, [r1] ldr r5, _0801B818 @ =0x000006DC adds r0, r0, r5 strb r1, [r0] ldr r0, [r4] movs r6, #0xc9 lsls r6, r6, #1 adds r1, r0, r6 ldrb r0, [r1] subs r0, r0, r3 strb r0, [r1] bl m4aMPlayAllStop movs r0, #0x83 bl m4aSongNumStart ldr r0, [r4] ldr r2, _0801B81C @ =0x000001AB adds r1, r0, r2 movs r0, #0x13 strb r0, [r1] ldr r0, [r4] ldr r3, _0801B820 @ =0x00000376 adds r0, r0, r3 movs r1, #0x1e strh r1, [r0] b _0801B85E .align 2, 0 _0801B804: .4byte 0x000001AF _0801B808: .4byte 0x000003E7 _0801B80C: .4byte 0x020314E0 _0801B810: .4byte 0x000006DD _0801B814: .4byte 0x000001A7 _0801B818: .4byte 0x000006DC _0801B81C: .4byte 0x000001AB _0801B820: .4byte 0x00000376 _0801B824: movs r0, #0x8a bl m4aSongNumStart b _0801B85E _0801B82C: ldrh r1, [r3, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801B85E ldr r0, _0801B928 @ =0x020314E0 ldr r2, [r0] ldr r4, _0801B92C @ =0x000006DD adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801B870 ldr r5, _0801B930 @ =0x00000252 adds r0, r2, r5 movs r1, #0x1e strh r1, [r0] movs r6, #0xdc lsls r6, r6, #1 adds r0, r2, r6 strh r1, [r0] movs r0, #0x66 bl m4aSongNumStart _0801B85E: ldr r0, _0801B928 @ =0x020314E0 ldr r0, [r0] ldr r1, _0801B92C @ =0x000006DD adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801B8B2 _0801B870: bl sub_2A354 ldr r0, _0801B928 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801B934 @ =0x000006DE adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0xb3 bne _0801B8B2 ldr r4, _0801B930 @ =0x00000252 adds r0, r2, r4 movs r1, #0x1e strh r1, [r0] movs r5, #0xdc lsls r5, r5, #1 adds r0, r2, r5 strh r1, [r0] ldr r1, _0801B938 @ =0x086AD2DE movs r6, #0xd3 lsls r6, r6, #1 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #4 bne _0801B8B2 ldr r0, _0801B93C @ =0x000001AF adds r1, r2, r0 movs r0, #1 strb r0, [r1] _0801B8B2: ldr r0, _0801B928 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801B930 @ =0x00000252 adds r1, r2, r3 ldrh r5, [r1] mov r8, r0 cmp r5, #0 bne _0801B8C6 bl _0801C554 _0801B8C6: subs r0, r5, #1 strh r0, [r1] movs r4, #0xdc lsls r4, r4, #1 adds r1, r2, r4 movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0xe bgt _0801B8DC movs r0, #0xf strh r0, [r1] _0801B8DC: mov r6, r8 ldr r0, [r6] adds r1, r0, r3 ldrh r0, [r1] cmp r0, #4 bls _0801B8EA b _0801BA38 _0801B8EA: cmp r0, #1 bls _0801B9A8 ldr r5, _0801B940 @ =gMain ldrh r0, [r5, #0x3c] movs r0, #4 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #3 bls _0801B8FE b _0801BA38 _0801B8FE: ldr r3, _0801B944 @ =0x040000D4 ldr r1, _0801B948 @ =0x02031520 ldr r4, [r1, #0x30] str r4, [r3] ldr r0, _0801B94C @ =0x05000200 str r0, [r3, #4] ldr r0, _0801B950 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801B95C adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801B954 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801B958 @ =0x80000060 b _0801B968 .align 2, 0 _0801B928: .4byte 0x020314E0 _0801B92C: .4byte 0x000006DD _0801B930: .4byte 0x00000252 _0801B934: .4byte 0x000006DE _0801B938: .4byte 0x086AD2DE _0801B93C: .4byte 0x000001AF _0801B940: .4byte gMain _0801B944: .4byte 0x040000D4 _0801B948: .4byte 0x02031520 _0801B94C: .4byte 0x05000200 _0801B950: .4byte 0x80000010 _0801B954: .4byte 0x05000240 _0801B958: .4byte 0x80000060 _0801B95C: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801B994 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801B998 @ =0x80000070 _0801B968: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801B99C @ =0x040000D4 ldr r0, [r2, #0x30] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0801B9A0 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801B9A4 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r3, r8 ldr r0, [r3] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r3] adds r0, #0x70 b _0801BA36 .align 2, 0 _0801B994: .4byte 0x05000240 _0801B998: .4byte 0x80000070 _0801B99C: .4byte 0x040000D4 _0801B9A0: .4byte 0x05000340 _0801B9A4: .4byte 0x80000030 _0801B9A8: ldr r5, _0801B9E4 @ =gMain ldrh r0, [r5, #0x3c] movs r0, #0 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #0 beq _0801B9BA bl _0801C554 _0801B9BA: ldr r3, _0801B9E8 @ =0x040000D4 ldr r1, _0801B9EC @ =0x02031520 ldr r4, [r1, #0x2c] str r4, [r3] ldr r0, _0801B9F0 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801B9F4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801BA00 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801B9F8 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801B9FC @ =0x80000060 b _0801BA0C .align 2, 0 _0801B9E4: .4byte gMain _0801B9E8: .4byte 0x040000D4 _0801B9EC: .4byte 0x02031520 _0801B9F0: .4byte 0x05000200 _0801B9F4: .4byte 0x80000010 _0801B9F8: .4byte 0x05000240 _0801B9FC: .4byte 0x80000060 _0801BA00: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801BA74 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801BA78 @ =0x80000070 _0801BA0C: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801BA7C @ =0x040000D4 ldr r0, [r2, #0x2c] movs r4, #0xa0 lsls r4, r4, #1 adds r0, r0, r4 str r0, [r1] ldr r0, _0801BA80 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801BA84 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r5, r8 ldr r0, [r5] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r0, [r5] adds r0, #0x70 movs r1, #1 _0801BA36: strb r1, [r0] _0801BA38: mov r6, r8 ldr r1, [r6] ldr r2, _0801BA88 @ =0x00000252 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 beq _0801BA4A bl _0801C554 _0801BA4A: ldr r0, _0801BA8C @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _0801BA9C ldr r3, _0801BA90 @ =0x00000283 adds r0, r1, r3 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0801BA94 movs r0, #0x1c bl m4aSongNumStart b _0801BAC6 .align 2, 0 _0801BA74: .4byte 0x05000240 _0801BA78: .4byte 0x80000070 _0801BA7C: .4byte 0x040000D4 _0801BA80: .4byte 0x05000340 _0801BA84: .4byte 0x80000030 _0801BA88: .4byte 0x00000252 _0801BA8C: .4byte gMain _0801BA90: .4byte 0x00000283 _0801BA94: movs r0, #0x5b bl m4aSongNumStart b _0801BAC6 _0801BA9C: ldr r4, _0801BABC @ =0x00000283 adds r0, r1, r4 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0801BAC0 movs r0, #0x20 bl m4aSongNumStart b _0801BAC6 .align 2, 0 _0801BABC: .4byte 0x00000283 _0801BAC0: movs r0, #0x5c bl m4aSongNumStart _0801BAC6: ldr r0, _0801BAE4 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801BAEC ldr r5, _0801BAE8 @ =0x000006DE adds r1, r1, r5 movs r0, #0xaa strh r0, [r1] b _0801BAF0 .align 2, 0 _0801BAE4: .4byte 0x020314E0 _0801BAE8: .4byte 0x000006DE _0801BAEC: movs r0, #0x18 strh r0, [r1, #0x28] _0801BAF0: ldr r0, _0801BB08 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801BB0C movs r0, #1 movs r1, #0 bl sub_1C7F4 b _0801BB14 .align 2, 0 _0801BB08: .4byte 0x020314E0 _0801BB0C: movs r0, #0 movs r1, #0 bl sub_1C7F4 _0801BB14: ldr r3, _0801BB54 @ =0x020314E0 ldr r0, [r3] ldr r6, _0801BB58 @ =0x000006C4 adds r0, r0, r6 movs r2, #0 strb r2, [r0] ldr r0, [r3] ldr r1, _0801BB5C @ =0x000006DB adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r4, _0801BB60 @ =0x000006DD adds r0, r0, r4 strb r2, [r0] ldr r1, _0801BB64 @ =gMain ldr r0, [r1, #0x44] ldr r0, [r0, #0x1c] movs r4, #0 strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x20] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x18] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x24] strh r2, [r0] ldr r0, [r3] bl _0801C528 .align 2, 0 _0801BB54: .4byte 0x020314E0 _0801BB58: .4byte 0x000006C4 _0801BB5C: .4byte 0x000006DB _0801BB60: .4byte 0x000006DD _0801BB64: .4byte gMain thumb_func_start sub_1BB68 sub_1BB68: @ 0x0801BB68 movs r5, #0 mov r6, r8 ldr r1, [r6] ldr r2, _0801BD0C @ =0x00000281 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0801BB80 bl sub_1C544 _0801BB80: movs r6, #0xdd lsls r6, r6, #1 adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x95 bne _0801BC52 bl m4aMPlayAllStop ldr r3, _0801BD10 @ =gMain ldrb r1, [r3, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r3, #0xf] mov r0, r8 ldr r4, [r0] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r5, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0x78 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r5, [r0] subs r0, #2 strh r5, [r0] adds r0, #8 strh r5, [r0] adds r1, #6 movs r0, #3 strb r0, [r1] mov r1, r8 ldr r0, [r1] adds r0, #0xfa movs r1, #1 strb r1, [r0] mov r4, r8 ldr r0, [r4] adds r0, #0xfb strb r2, [r0] ldr r4, [r4] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _0801BD14 @ =0x0000F63C strh r0, [r1] subs r1, #6 movs r0, #0x32 strh r0, [r1] adds r0, r4, #0 adds r0, #0xf8 strh r5, [r0] ldr r1, _0801BD18 @ =0x040000D4 ldr r0, _0801BD1C @ =0x086ACEF8 ldr r0, [r0, #0xc] str r0, [r1] ldr r0, _0801BD20 @ =0x06015800 str r0, [r1, #4] ldr r0, _0801BD24 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801BD28 @ =0x086ACF18 ldr r0, [r0, #0xc] str r0, [r1] ldr r0, _0801BD2C @ =0x050003C0 str r0, [r1, #4] ldr r0, _0801BD30 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r3, #0x38] movs r0, #0xce strh r0, [r3, #0x38] mov r0, r8 ldr r3, [r0] adds r1, r3, r6 movs r0, #0x94 strh r0, [r1] movs r1, #0xa0 lsls r1, r1, #2 adds r0, r3, r1 strb r2, [r0] mov r3, r8 ldr r0, [r3] movs r4, #0xd3 lsls r4, r4, #1 adds r0, r0, r4 strb r2, [r0] ldr r0, [r3] subs r1, #0x24 adds r0, r0, r1 strb r2, [r0] ldr r0, [r3] movs r3, #0xd8 lsls r3, r3, #1 adds r0, r0, r3 strb r2, [r0] mov r4, r8 ldr r0, [r4] subs r1, #0xaa adds r0, r0, r1 strh r5, [r0] _0801BC52: mov r2, r8 ldr r1, [r2] adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x92 bne _0801BC82 adds r1, #0xe4 movs r0, #0x12 strb r0, [r1] ldr r1, _0801BD18 @ =0x040000D4 ldr r0, _0801BD34 @ =0x084F61EC str r0, [r1] ldr r0, _0801BD38 @ =0x06015C00 str r0, [r1, #4] ldr r0, _0801BD3C @ =0x800004A0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801BD40 @ =0x081B4584 str r0, [r1] ldr r0, _0801BD44 @ =0x05000180 str r0, [r1, #4] ldr r0, _0801BD30 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801BC82: mov r3, r8 ldr r1, [r3] adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x91 beq _0801BC90 b _0801BDAC _0801BC90: movs r4, #0xd4 lsls r4, r4, #1 adds r0, r1, r4 strb r5, [r0] ldr r1, [r3] movs r5, #0xa0 lsls r5, r5, #2 adds r0, r1, r5 movs r2, #0 ldrsb r2, [r0, r2] movs r6, #0x9c lsls r6, r6, #2 adds r0, r1, r6 adds r0, r0, r2 ldrb r3, [r0] movs r0, #0xb3 lsls r0, r0, #3 adds r2, r1, r0 movs r4, #0 strh r3, [r2] ldr r2, _0801BD48 @ =0x0000025D adds r1, r1, r2 strb r4, [r1] ldr r6, _0801BD4C @ =0x086A3700 mov r1, r8 ldr r5, [r1] adds r0, r5, r0 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r6 ldrb r4, [r0, #0x15] cmp r4, #0xcc bgt _0801BCF8 adds r1, r5, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #3 adds r0, r0, r6 ldrb r0, [r0, #0x15] cmp r0, #0xcc bgt _0801BCF8 mov r3, r8 ldr r1, [r3] adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0801BCF8: bl sub_22FA4 ldr r0, _0801BD10 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _0801BD50 movs r0, #0x1e bl m4aSongNumStart b _0801BD56 .align 2, 0 _0801BD0C: .4byte 0x00000281 _0801BD10: .4byte gMain _0801BD14: .4byte 0x0000F63C _0801BD18: .4byte 0x040000D4 _0801BD1C: .4byte 0x086ACEF8 _0801BD20: .4byte 0x06015800 _0801BD24: .4byte 0x80001200 _0801BD28: .4byte 0x086ACF18 _0801BD2C: .4byte 0x050003C0 _0801BD30: .4byte 0x80000010 _0801BD34: .4byte 0x084F61EC _0801BD38: .4byte 0x06015C00 _0801BD3C: .4byte 0x800004A0 _0801BD40: .4byte 0x081B4584 _0801BD44: .4byte 0x05000180 _0801BD48: .4byte 0x0000025D _0801BD4C: .4byte 0x086A3700 _0801BD50: movs r0, #0x22 bl m4aSongNumStart _0801BD56: adds r0, r7, #0 bl sub_21FBC ldr r3, _0801BE08 @ =gMain ldr r0, [r3, #0x44] ldr r0, [r0, #0x20] movs r5, #0 movs r4, #1 strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x24] strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x18] strh r4, [r0] ldr r2, _0801BE0C @ =0x040000D4 ldr r0, _0801BE10 @ =0x081B8784 str r0, [r2] ldr r0, _0801BE14 @ =0x050003C0 str r0, [r2, #4] ldr r0, _0801BE18 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r6, _0801BE1C @ =0x000002EA adds r1, r3, r6 movs r0, #0x50 strh r0, [r1] strh r5, [r3, #0x2a] ldr r0, _0801BE20 @ =0x020314E0 ldr r0, [r0] movs r1, #0xdc lsls r1, r1, #1 adds r0, r0, r1 movs r1, #0xf strh r1, [r0] strh r4, [r3, #0x28] ldr r0, _0801BE24 @ =0x081B4784 str r0, [r2] ldr r0, _0801BE28 @ =0x06002000 str r0, [r2, #4] ldr r0, _0801BE2C @ =0x80000620 str r0, [r2, #8] ldr r0, [r2, #8] _0801BDAC: ldr r4, _0801BE20 @ =0x020314E0 ldr r2, [r4] movs r3, #0xdd lsls r3, r3, #1 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x90 bls _0801BDBE b _0801C2D8 _0801BDBE: movs r5, #0xdc lsls r5, r5, #3 adds r1, r2, r5 movs r6, #0 movs r0, #0 strh r0, [r1] ldr r0, _0801BE30 @ =0x000006C4 adds r1, r2, r0 movs r0, #2 strb r0, [r1] ldr r0, [r4] ldr r1, _0801BE34 @ =0x000006DB adds r0, r0, r1 strb r6, [r0] ldr r3, [r4] movs r5, #0xdc lsls r5, r5, #1 adds r2, r3, r5 ldrh r1, [r2] movs r5, #0 ldrsh r0, [r2, r5] cmp r0, #0 ble _0801BE74 subs r1, #1 strh r1, [r2] movs r6, #0xd8 lsls r6, r6, #1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801BE38 lsls r0, r1, #0x10 asrs r0, r0, #0x10 b _0801BE58 .align 2, 0 _0801BE08: .4byte gMain _0801BE0C: .4byte 0x040000D4 _0801BE10: .4byte 0x081B8784 _0801BE14: .4byte 0x050003C0 _0801BE18: .4byte 0x80000010 _0801BE1C: .4byte 0x000002EA _0801BE20: .4byte 0x020314E0 _0801BE24: .4byte 0x081B4784 _0801BE28: .4byte 0x06002000 _0801BE2C: .4byte 0x80000620 _0801BE30: .4byte 0x000006C4 _0801BE34: .4byte 0x000006DB _0801BE38: lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _0801BE64 movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x1e subs r0, r0, r1 lsls r1, r0, #3 subs r1, r1, r0 movs r4, #0xdb lsls r4, r4, #1 adds r0, r3, r4 strh r1, [r0] movs r5, #0 ldrsh r0, [r2, r5] _0801BE58: cmp r0, #0xf beq _0801BE5E b _0801C1FA _0801BE5E: bl sub_22FA4 b _0801C1FA _0801BE64: movs r6, #0 ldrsh r1, [r2, r6] lsls r0, r1, #3 subs r0, r0, r1 movs r2, #0xdb lsls r2, r2, #1 adds r1, r3, r2 b _0801C1F8 _0801BE74: ldr r5, _0801BEAC @ =0x00000281 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _0801BE84 b _0801BFA6 _0801BE84: ldr r0, _0801BEB0 @ =gMain ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0801BEEC movs r0, #0x82 bl m4aSongNumStart ldr r2, [r4] movs r3, #0xa0 lsls r3, r3, #2 adds r1, r2, r3 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801BEB4 subs r0, r3, #1 b _0801BEBA .align 2, 0 _0801BEAC: .4byte 0x00000281 _0801BEB0: .4byte gMain _0801BEB4: adds r0, r2, r5 ldrb r0, [r0] subs r0, #1 _0801BEBA: strb r0, [r1] ldr r5, _0801BEE8 @ =0x020314E0 ldr r4, [r5] movs r6, #0xa0 lsls r6, r6, #2 adds r0, r4, r6 movs r1, #0 ldrsb r1, [r0, r1] movs r2, #0x9c lsls r2, r2, #2 adds r0, r4, r2 adds r0, r0, r1 ldrb r1, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 movs r2, #0 strh r1, [r0] subs r6, #0xd8 adds r1, r4, r6 movs r0, #1 strb r0, [r1] b _0801BF48 .align 2, 0 _0801BEE8: .4byte 0x020314E0 _0801BEEC: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801BFA6 movs r0, #0x82 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xa0 lsls r1, r1, #2 adds r2, r0, r1 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 bge _0801BF1C ldrb r0, [r2] adds r0, #1 strb r0, [r2] b _0801BF1E _0801BF1C: strb r6, [r2] _0801BF1E: ldr r5, _0801C000 @ =0x020314E0 ldr r4, [r5] movs r2, #0xa0 lsls r2, r2, #2 adds r0, r4, r2 movs r1, #0 ldrsb r1, [r0, r1] movs r3, #0x9c lsls r3, r3, #2 adds r0, r4, r3 adds r0, r0, r1 ldrb r1, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 movs r2, #0 strh r1, [r0] movs r6, #0xd4 lsls r6, r6, #1 adds r0, r4, r6 strb r2, [r0] _0801BF48: ldr r4, [r5] movs r0, #0xdc lsls r0, r0, #1 adds r1, r4, r0 movs r0, #0x1e strh r0, [r1] movs r1, #0x97 lsls r1, r1, #2 adds r0, r4, r1 strb r2, [r0] ldr r0, [r5] movs r4, #0xd8 lsls r4, r4, #1 adds r0, r0, r4 strb r2, [r0] ldr r0, [r5] ldr r7, _0801C004 @ =0x0000025D adds r0, r0, r7 strb r2, [r0] ldr r6, _0801C008 @ =0x086A3700 ldr r4, [r5] adds r3, r4, r3 ldrh r1, [r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r6 ldrb r2, [r0, #0x15] cmp r2, #0xcc bgt _0801BFA6 adds r0, r7, #0 adds r1, r4, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r0, r0, r6 ldrb r0, [r0, #0x15] cmp r0, #0xcc bgt _0801BFA6 ldr r1, [r5] adds r1, r1, r7 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0801BFA6: ldr r0, _0801C00C @ =gMain ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0801C070 ldr r6, _0801C000 @ =0x020314E0 ldr r1, [r6] movs r7, #0x97 lsls r7, r7, #2 adds r0, r1, r7 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #0 bne _0801C014 ldr r2, _0801C008 @ =0x086A3700 movs r3, #0xb3 lsls r3, r3, #3 adds r0, r1, r3 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r5, [r0, #0x15] cmp r5, #0xcc bgt _0801C058 movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r4, _0801C010 @ =0x0000059A adds r0, r1, r4 strh r5, [r0] movs r5, #0xdc lsls r5, r5, #1 adds r2, r1, r5 movs r0, #0x1e strh r0, [r2] movs r0, #0xd8 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #1 strb r0, [r1] b _0801C04E .align 2, 0 _0801C000: .4byte 0x020314E0 _0801C004: .4byte 0x0000025D _0801C008: .4byte 0x086A3700 _0801C00C: .4byte gMain _0801C010: .4byte 0x0000059A _0801C014: cmp r4, #1 bne _0801C058 ldr r2, _0801C064 @ =0x086A3700 ldr r3, _0801C068 @ =0x0000059A adds r0, r1, r3 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r5, [r0, #0x15] cmp r5, #0xcc bgt _0801C058 movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r2, _0801C068 @ =0x0000059A adds r0, r1, r2 strh r5, [r0] movs r3, #0xdc lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0x1e strh r0, [r2] movs r5, #0xd8 lsls r5, r5, #1 adds r1, r1, r5 strb r4, [r1] _0801C04E: ldr r1, [r6] adds r1, r1, r7 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0801C058: ldr r0, _0801C06C @ =0x020314E0 ldr r0, [r0] movs r6, #0xd9 lsls r6, r6, #1 adds r1, r0, r6 b _0801C116 .align 2, 0 _0801C064: .4byte 0x086A3700 _0801C068: .4byte 0x0000059A _0801C06C: .4byte 0x020314E0 _0801C070: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801C11A ldr r6, _0801C0BC @ =0x020314E0 ldr r1, [r6] movs r7, #0x97 lsls r7, r7, #2 adds r0, r1, r7 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bne _0801C0C4 movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r5, [r0] movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xcc bgt _0801C10C movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r2, _0801C0C0 @ =0x0000059A adds r0, r1, r2 strh r5, [r0] movs r3, #0xdc lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0x1e strh r0, [r2] movs r5, #0xd8 lsls r5, r5, #1 adds r1, r1, r5 strb r4, [r1] b _0801C102 .align 2, 0 _0801C0BC: .4byte 0x020314E0 _0801C0C0: .4byte 0x0000059A _0801C0C4: cmp r4, #2 bne _0801C10C ldr r2, _0801C148 @ =0x086A3700 movs r3, #0xb3 lsls r3, r3, #3 adds r0, r1, r3 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r5, [r0, #0x15] cmp r5, #0xcc bgt _0801C10C movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r4, _0801C14C @ =0x0000059A adds r0, r1, r4 strh r5, [r0] movs r5, #0xdc lsls r5, r5, #1 adds r2, r1, r5 movs r0, #0x1e strh r0, [r2] movs r0, #0xd8 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #1 strb r0, [r1] _0801C102: ldr r1, [r6] adds r1, r1, r7 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801C10C: ldr r0, _0801C150 @ =0x020314E0 ldr r0, [r0] movs r2, #0xd9 lsls r2, r2, #1 adds r1, r0, r2 _0801C116: movs r0, #0 strh r0, [r1] _0801C11A: ldr r0, _0801C150 @ =0x020314E0 ldr r1, [r0] movs r3, #0x97 lsls r3, r3, #2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0801C1FA ldr r4, _0801C14C @ =0x0000059A adds r2, r1, r4 ldrh r0, [r2] cmp r0, #0x59 beq _0801C190 cmp r0, #0x59 bgt _0801C154 cmp r0, #0xe beq _0801C168 cmp r0, #0x10 beq _0801C17C b _0801C1EA .align 2, 0 _0801C148: .4byte 0x086A3700 _0801C14C: .4byte 0x0000059A _0801C150: .4byte 0x020314E0 _0801C154: cmp r0, #0xb0 beq _0801C1B8 cmp r0, #0xb0 bgt _0801C162 cmp r0, #0x5a beq _0801C1A4 b _0801C1EA _0801C162: cmp r0, #0xb1 beq _0801C1D2 b _0801C1EA _0801C168: movs r5, #0xd9 lsls r5, r5, #1 adds r1, r1, r5 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0x10 b _0801C1CA _0801C17C: movs r6, #0xd9 lsls r6, r6, #1 adds r1, r1, r6 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0xe b _0801C1CA _0801C190: movs r0, #0xd9 lsls r0, r0, #1 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0x5a b _0801C1CA _0801C1A4: movs r3, #0xd9 lsls r3, r3, #1 adds r1, r1, r3 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0x59 b _0801C1CA _0801C1B8: movs r4, #0xd9 lsls r4, r4, #1 adds r1, r1, r4 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0xb1 _0801C1CA: strh r0, [r2] bl sub_22FA4 b _0801C1EA _0801C1D2: movs r5, #0xd9 lsls r5, r5, #1 adds r1, r1, r5 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0xb0 strh r0, [r2] bl sub_22FA4 _0801C1EA: ldr r0, _0801C220 @ =0x020314E0 ldr r0, [r0] movs r6, #0xd9 lsls r6, r6, #1 adds r1, r0, r6 ldrh r0, [r1] adds r0, #1 _0801C1F8: strh r0, [r1] _0801C1FA: bl sub_23070 ldr r0, _0801C220 @ =0x020314E0 ldr r1, [r0] movs r2, #0xd4 lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0801C22E ldr r3, _0801C224 @ =0x000001A9 adds r1, r1, r3 ldrb r0, [r1] cmp r0, #0 beq _0801C228 subs r0, #1 strb r0, [r1] b _0801C246 .align 2, 0 _0801C220: .4byte 0x020314E0 _0801C224: .4byte 0x000001A9 _0801C228: movs r0, #7 strb r0, [r1] b _0801C246 _0801C22E: ldr r4, _0801C240 @ =0x000001A9 adds r1, r1, r4 ldrb r0, [r1] cmp r0, #6 bhi _0801C244 adds r0, #1 strb r0, [r1] b _0801C246 .align 2, 0 _0801C240: .4byte 0x000001A9 _0801C244: strb r2, [r1] _0801C246: ldr r1, _0801C2A4 @ =0x040000D4 ldr r3, _0801C2A8 @ =0x086AD50C ldr r0, _0801C2AC @ =0x020314E0 ldr r2, [r0] ldr r5, _0801C2B0 @ =0x000001A9 adds r0, r2, r5 ldrb r0, [r0] lsrs r0, r0, #1 adds r0, #4 lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] ldr r0, _0801C2B4 @ =0x06002000 str r0, [r1, #4] ldr r0, _0801C2B8 @ =0x80000620 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _0801C2BC @ =gMain movs r6, #0x2a ldrsh r0, [r3, r6] lsls r0, r0, #2 movs r1, #0x50 subs r1, r1, r0 ldr r4, _0801C2C0 @ =0x000002EA adds r0, r3, r4 strh r1, [r0] adds r5, #0xa9 adds r2, r2, r5 ldrh r0, [r2] cmp r0, #0 beq _0801C2C4 ldrh r1, [r3, #0x2a] movs r6, #0x2a ldrsh r0, [r3, r6] cmp r0, #0 ble _0801C2D2 subs r0, r1, #1 strh r0, [r3, #0x2a] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bne _0801C2D2 strh r0, [r3, #0x28] movs r0, #0x90 strh r0, [r3, #0x26] b _0801C2D2 .align 2, 0 _0801C2A4: .4byte 0x040000D4 _0801C2A8: .4byte 0x086AD50C _0801C2AC: .4byte 0x020314E0 _0801C2B0: .4byte 0x000001A9 _0801C2B4: .4byte 0x06002000 _0801C2B8: .4byte 0x80000620 _0801C2BC: .4byte gMain _0801C2C0: .4byte 0x000002EA _0801C2C4: ldrh r1, [r3, #0x2a] movs r2, #0x2a ldrsh r0, [r3, r2] cmp r0, #0x13 bgt _0801C2D2 adds r0, r1, #1 strh r0, [r3, #0x2a] _0801C2D2: movs r0, #0 bl sub_21FBC _0801C2D8: ldr r5, _0801C38C @ =0x020314E0 ldr r3, [r5] movs r4, #0xdc lsls r4, r4, #1 adds r0, r3, r4 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0 bgt _0801C31A ldr r1, _0801C390 @ =gMain movs r2, #0x2a ldrsh r0, [r1, r2] cmp r0, #0x13 ble _0801C31A ldrh r1, [r1, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801C31A ldr r6, _0801C394 @ =0x00000252 adds r0, r3, r6 movs r1, #0 movs r2, #0x1e strh r2, [r0] subs r6, #0xa2 adds r0, r3, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r4 strh r2, [r0] movs r0, #0x83 bl m4aSongNumStart _0801C31A: ldr r0, _0801C38C @ =0x020314E0 ldr r2, [r0] ldr r3, _0801C394 @ =0x00000252 adds r1, r2, r3 ldrh r5, [r1] mov r8, r0 cmp r5, #0 bne _0801C32C b _0801C554 _0801C32C: subs r0, r5, #1 strh r0, [r1] movs r0, #0xdc lsls r0, r0, #1 adds r1, r2, r0 movs r2, #0 ldrsh r0, [r1, r2] cmp r0, #0xe bgt _0801C342 movs r0, #0xf strh r0, [r1] _0801C342: mov r4, r8 ldr r0, [r4] adds r1, r0, r3 ldrh r0, [r1] cmp r0, #4 bls _0801C350 b _0801C488 _0801C350: cmp r0, #1 bls _0801C3FC ldr r5, _0801C390 @ =gMain ldrh r0, [r5, #0x3c] movs r0, #4 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #3 bls _0801C364 b _0801C488 _0801C364: ldr r3, _0801C398 @ =0x040000D4 ldr r1, _0801C39C @ =0x02031520 ldr r4, [r1, #0x30] str r4, [r3] ldr r0, _0801C3A0 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801C3A4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801C3B0 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C3A8 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C3AC @ =0x80000060 b _0801C3BC .align 2, 0 _0801C38C: .4byte 0x020314E0 _0801C390: .4byte gMain _0801C394: .4byte 0x00000252 _0801C398: .4byte 0x040000D4 _0801C39C: .4byte 0x02031520 _0801C3A0: .4byte 0x05000200 _0801C3A4: .4byte 0x80000010 _0801C3A8: .4byte 0x05000240 _0801C3AC: .4byte 0x80000060 _0801C3B0: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C3E8 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C3EC @ =0x80000070 _0801C3BC: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801C3F0 @ =0x040000D4 ldr r0, [r2, #0x30] movs r5, #0xa0 lsls r5, r5, #1 adds r0, r0, r5 str r0, [r1] ldr r0, _0801C3F4 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801C3F8 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r6, r8 ldr r0, [r6] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r6] adds r0, #0x70 b _0801C486 .align 2, 0 _0801C3E8: .4byte 0x05000240 _0801C3EC: .4byte 0x80000070 _0801C3F0: .4byte 0x040000D4 _0801C3F4: .4byte 0x05000340 _0801C3F8: .4byte 0x80000030 _0801C3FC: ldr r5, _0801C434 @ =gMain ldrh r0, [r5, #0x3c] movs r0, #0 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #0 beq _0801C40C b _0801C554 _0801C40C: ldr r3, _0801C438 @ =0x040000D4 ldr r1, _0801C43C @ =0x02031520 ldr r4, [r1, #0x2c] str r4, [r3] ldr r0, _0801C440 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801C444 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801C450 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C448 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C44C @ =0x80000060 b _0801C45C .align 2, 0 _0801C434: .4byte gMain _0801C438: .4byte 0x040000D4 _0801C43C: .4byte 0x02031520 _0801C440: .4byte 0x05000200 _0801C444: .4byte 0x80000010 _0801C448: .4byte 0x05000240 _0801C44C: .4byte 0x80000060 _0801C450: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C4B0 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C4B4 @ =0x80000070 _0801C45C: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801C4B8 @ =0x040000D4 ldr r0, [r2, #0x2c] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0801C4BC @ =0x05000340 str r0, [r1, #4] ldr r0, _0801C4C0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r3, r8 ldr r0, [r3] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r0, [r3] adds r0, #0x70 movs r1, #1 _0801C486: strb r1, [r0] _0801C488: mov r4, r8 ldr r1, [r4] ldr r5, _0801C4C4 @ =0x00000252 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 bne _0801C554 adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801C4CC ldr r6, _0801C4C8 @ =0x000006DE adds r1, r1, r6 movs r0, #0xaa strh r0, [r1] b _0801C4D0 .align 2, 0 _0801C4B0: .4byte 0x05000240 _0801C4B4: .4byte 0x80000070 _0801C4B8: .4byte 0x040000D4 _0801C4BC: .4byte 0x05000340 _0801C4C0: .4byte 0x80000030 _0801C4C4: .4byte 0x00000252 _0801C4C8: .4byte 0x000006DE _0801C4CC: movs r0, #0x18 strh r0, [r1, #0x28] _0801C4D0: mov r1, r8 ldr r0, [r1] ldr r2, _0801C530 @ =0x000006C4 adds r0, r0, r2 movs r2, #0 strb r2, [r0] ldr r0, [r1] ldr r3, _0801C534 @ =0x000006DB adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r1, _0801C538 @ =gMain ldr r0, [r1, #0x44] ldr r0, [r0, #0x20] movs r4, #0 strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x18] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x24] strh r2, [r0] mov r5, r8 ldr r0, [r5] movs r6, #0xe4 lsls r6, r6, #3 adds r0, r0, r6 strb r4, [r0] ldr r0, [r5] ldr r1, _0801C53C @ =0x0000071D adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r0, [r5] ldr r2, _0801C540 @ =0x0000071E adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, #0x44 adds r0, r0, r3 strb r1, [r0] bl sub_2310C ldr r0, [r5] _0801C528: adds r0, #0xe4 strb r4, [r0] b _0801C554 .align 2, 0 _0801C530: .4byte 0x000006C4 _0801C534: .4byte 0x000006DB _0801C538: .4byte gMain _0801C53C: .4byte 0x0000071D _0801C540: .4byte 0x0000071E thumb_func_start sub_1C544 sub_1C544: @ 0x0801C544 movs r4, #0xdd lsls r4, r4, #1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x32 bne _0801C554 movs r0, #0x18 strh r0, [r1, #0x28] _0801C554: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_1C560 sub_1C560: @ 0x0801C560 push {r4, lr} ldr r3, _0801C598 @ =0x020314E0 ldr r1, [r3] movs r4, #0 movs r2, #0 movs r0, #0x96 strh r0, [r1, #0x28] ldr r0, _0801C59C @ =gMain ldr r0, [r0, #0x44] ldr r0, [r0, #0x34] strh r2, [r0] ldr r0, _0801C5A0 @ =0x000005F3 adds r1, r1, r0 strb r4, [r1] ldr r0, [r3] ldr r1, _0801C5A4 @ =0x00002710 str r1, [r0, #0x3c] ldr r1, _0801C5A8 @ =0x000005F7 adds r0, r0, r1 movs r1, #1 strb r1, [r0] movs r0, #8 bl sub_11B0 pop {r4} pop {r0} bx r0 .align 2, 0 _0801C598: .4byte 0x020314E0 _0801C59C: .4byte gMain _0801C5A0: .4byte 0x000005F3 _0801C5A4: .4byte 0x00002710 _0801C5A8: .4byte 0x000005F7 thumb_func_start sub_1C5AC sub_1C5AC: @ 0x0801C5AC push {r4, r5, r6, lr} ldr r5, _0801C614 @ =0x020314E0 ldr r2, [r5] ldrh r0, [r2, #0x28] adds r1, r0, #0 cmp r1, #0 bne _0801C5BC b _0801C728 _0801C5BC: subs r0, #1 movs r4, #0 movs r6, #0 strh r0, [r2, #0x28] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x94 bls _0801C61C ldr r1, _0801C618 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r4, #1 strb r4, [r0] ldr r0, [r5] strb r4, [r0, #0x1f] ldr r3, [r5] adds r1, r3, r1 ldr r0, [r1] strh r6, [r0, #0x30] ldr r0, [r1] strh r6, [r0, #0x32] ldr r2, [r1] movs r0, #0x77 strh r0, [r2, #0x10] ldr r2, [r1] adds r0, #0xa0 strh r0, [r2, #0x12] ldr r0, [r1] strh r6, [r0, #6] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] movs r5, #0xe6 lsls r5, r5, #3 adds r3, r3, r5 strb r4, [r3] b _0801C706 .align 2, 0 _0801C614: .4byte 0x020314E0 _0801C618: .4byte 0x0000132C _0801C61C: cmp r0, #0x94 bne _0801C630 movs r0, #1 strb r0, [r2, #0x1f] ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] b _0801C706 _0801C630: cmp r0, #0x24 bls _0801C644 movs r0, #1 strb r0, [r2, #0x1f] ldr r0, [r5] movs r2, #0xe6 lsls r2, r2, #3 adds r0, r0, r2 strb r4, [r0] b _0801C706 _0801C644: cmp r0, #0x18 bls _0801C658 movs r1, #1 strb r1, [r2, #0x1f] ldr r0, [r5] movs r3, #0xe6 lsls r3, r3, #3 adds r0, r0, r3 strb r1, [r0] b _0801C706 _0801C658: cmp r0, #0x18 bne _0801C6B0 movs r0, #0x80 bl m4aSongNumStart ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r1, [r5] ldr r3, _0801C6A4 @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] movs r0, #0x49 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xec strh r0, [r2, #0x32] ldr r0, [r1] strb r4, [r0] ldr r0, [r5] strb r4, [r0, #0x1f] ldr r0, [r5] ldr r2, _0801C6A8 @ =0x000005FA adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] adds r3, r1, r3 ldr r2, [r3] movs r0, #0x88 strh r0, [r2, #0xe] ldr r3, _0801C6AC @ =0x000005F7 adds r1, r1, r3 strb r4, [r1] b _0801C706 .align 2, 0 _0801C6A4: .4byte 0x0000132C _0801C6A8: .4byte 0x000005FA _0801C6AC: .4byte 0x000005F7 _0801C6B0: cmp r0, #0xc bls _0801C6FC movs r1, #0xe6 lsls r1, r1, #3 adds r0, r2, r1 movs r1, #2 strb r1, [r0] ldr r1, [r5] ldrh r0, [r1, #0x28] cmp r0, #0x15 bls _0801C6E8 ldr r2, _0801C6E4 @ =0x0000132C adds r0, r1, r2 ldr r4, [r0] ldrh r0, [r1, #0x28] movs r1, #0x18 subs r1, r1, r0 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #4 movs r1, #3 bl __divsi3 adds r0, #0x90 strh r0, [r4, #0xe] b _0801C706 .align 2, 0 _0801C6E4: .4byte 0x0000132C _0801C6E8: ldr r3, _0801C6F8 @ =0x0000132C adds r0, r1, r3 ldr r1, [r0] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0xe] b _0801C706 .align 2, 0 _0801C6F8: .4byte 0x0000132C _0801C6FC: movs r5, #0xe6 lsls r5, r5, #3 adds r1, r2, r5 movs r0, #1 strb r0, [r1] _0801C706: ldr r0, _0801C724 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x28] cmp r0, #0x28 bhi _0801C736 adds r1, #0xe6 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _0801C736 subs r0, r2, #1 strh r0, [r1] b _0801C736 .align 2, 0 _0801C724: .4byte 0x020314E0 _0801C728: movs r3, #0xe6 lsls r3, r3, #3 adds r0, r2, r3 strb r1, [r0] ldr r0, [r5] adds r0, #0x25 strb r1, [r0] _0801C736: pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_1C73C sub_1C73C: @ 0x0801C73C push {r4, r5, r6, r7, lr} ldr r7, _0801C7E0 @ =gMain ldr r0, [r7, #0x44] ldr r0, [r0, #0x34] movs r6, #0 movs r4, #0 strh r4, [r0] movs r0, #0 bl sub_4B408 ldr r5, _0801C7E4 @ =0x020314E0 ldr r1, [r5] ldr r2, _0801C7E8 @ =0x0000132C adds r1, r1, r2 ldr r0, [r1] strh r4, [r0, #0x30] ldr r0, [r1] strh r4, [r0, #0x32] ldr r0, [r1] strb r6, [r0] ldr r0, [r5] strb r6, [r0, #0x1f] ldr r1, [r5] adds r2, r1, r2 ldr r2, [r2] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0xe] movs r0, #0xe6 lsls r0, r0, #3 adds r1, r1, r0 strb r6, [r1] ldr r0, [r5] adds r0, #0x25 strb r6, [r0] ldr r1, [r5] ldr r2, _0801C7EC @ =0x00000282 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801C7BA ldr r2, _0801C7F0 @ =0x00000723 adds r0, r1, r2 strb r6, [r0] ldr r0, [r5] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 strb r6, [r0] ldr r0, [r5] subs r2, #6 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] subs r1, #2 adds r0, r0, r1 strb r6, [r0] ldr r0, [r5] adds r2, #2 adds r0, r0, r2 strb r6, [r0] _0801C7BA: bl m4aMPlayAllStop bl sub_D10 ldrb r0, [r7, #4] strb r0, [r7, #5] ldr r0, [r5] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r7, #4] movs r0, #1 strb r0, [r7, #6] strb r6, [r7, #3] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801C7E0: .4byte gMain _0801C7E4: .4byte 0x020314E0 _0801C7E8: .4byte 0x0000132C _0801C7EC: .4byte 0x00000282 _0801C7F0: .4byte 0x00000723 thumb_func_start sub_1C7F4 sub_1C7F4: @ 0x0801C7F4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x30 lsls r0, r0, #0x10 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 str r1, [sp, #0x2c] lsrs r1, r0, #0x10 str r1, [sp, #0x28] asrs r0, r0, #0x10 ldr r2, _0801C824 @ =0x020314E0 mov sl, r2 cmp r0, #9 bls _0801C81A bl _0801D0B8 _0801C81A: lsls r0, r0, #2 ldr r1, _0801C828 @ =_0801C82C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801C824: .4byte 0x020314E0 _0801C828: .4byte _0801C82C _0801C82C: @ jump table .4byte _0801C854 @ case 0 .4byte _0801C900 @ case 1 .4byte _0801C9A8 @ case 2 .4byte _0801CA4C @ case 3 .4byte _0801CCB8 @ case 4 .4byte _0801D0B8 @ case 5 .4byte _0801CDC0 @ case 6 .4byte _0801CF6C @ case 7 .4byte _0801D02C @ case 8 .4byte _0801CB24 @ case 9 _0801C854: ldr r6, _0801C8D0 @ =0x020314E0 ldr r0, [r6] ldr r3, _0801C8D4 @ =0x000006DB adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r6] ldr r4, [sp, #0x2c] lsls r3, r4, #0x10 asrs r3, r3, #0x10 ldr r2, _0801C8D8 @ =0x00000749 adds r1, r0, r2 adds r1, r1, r3 ldr r5, _0801C8DC @ =0x000006D9 mov r8, r5 add r0, r8 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r4, _0801C8E0 @ =0x040000D4 ldr r5, [r6] adds r2, r5, r2 adds r2, r2, r3 ldrb r1, [r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801C8E4 @ =0x0848D68C adds r0, r0, r1 str r0, [r4] lsls r2, r3, #1 adds r0, r2, r3 lsls r0, r0, #8 ldr r1, _0801C8E8 @ =0x06010CA0 adds r0, r0, r1 str r0, [r4, #4] ldr r0, _0801C8EC @ =0x80000180 str r0, [r4, #8] ldr r0, [r4, #8] add r5, r8 adds r5, r5, r3 movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #0x14 lsrs r0, r0, #0xf ldr r1, _0801C8F0 @ =0x081C00E4 adds r0, r0, r1 str r0, [r4] ldr r0, _0801C8F4 @ =0x086AD798 adds r2, r2, r0 ldrh r0, [r2] lsls r0, r0, #5 ldr r2, _0801C8F8 @ =0x05000200 adds r0, r0, r2 str r0, [r4, #4] ldr r0, _0801C8FC @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] mov sl, r6 bl _0801D0B8 .align 2, 0 _0801C8D0: .4byte 0x020314E0 _0801C8D4: .4byte 0x000006DB _0801C8D8: .4byte 0x00000749 _0801C8DC: .4byte 0x000006D9 _0801C8E0: .4byte 0x040000D4 _0801C8E4: .4byte 0x0848D68C _0801C8E8: .4byte 0x06010CA0 _0801C8EC: .4byte 0x80000180 _0801C8F0: .4byte 0x081C00E4 _0801C8F4: .4byte 0x086AD798 _0801C8F8: .4byte 0x05000200 _0801C8FC: .4byte 0x80000010 _0801C900: ldr r7, _0801C97C @ =0x086AD070 ldr r6, _0801C980 @ =0x020314E0 ldr r0, [r6] ldr r3, [sp, #0x2c] lsls r4, r3, #0x10 asrs r4, r4, #0x10 ldr r5, _0801C984 @ =0x00000749 mov r8, r5 adds r5, r0, r5 adds r5, r5, r4 movs r1, #0xe1 lsls r1, r1, #3 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r7 ldrh r0, [r0] strb r0, [r5] ldrh r2, [r7, #4] lsls r2, r2, #0x14 ldr r3, _0801C988 @ =0x040000D4 ldr r0, [r6] add r0, r8 adds r0, r0, r4 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801C98C @ =0x083A8EEC adds r0, r0, r1 str r0, [r3] lsls r1, r4, #1 adds r4, r1, r4 lsls r4, r4, #8 ldr r5, _0801C990 @ =0x06010CA0 adds r4, r4, r5 str r4, [r3, #4] ldr r0, _0801C994 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] lsrs r2, r2, #0xf ldr r0, _0801C998 @ =0x081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801C99C @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801C9A0 @ =0x05000200 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0801C9A4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, r6 b _0801D0B8 .align 2, 0 _0801C97C: .4byte 0x086AD070 _0801C980: .4byte 0x020314E0 _0801C984: .4byte 0x00000749 _0801C988: .4byte 0x040000D4 _0801C98C: .4byte 0x083A8EEC _0801C990: .4byte 0x06010CA0 _0801C994: .4byte 0x80000180 _0801C998: .4byte 0x081C02E4 _0801C99C: .4byte 0x086AD798 _0801C9A0: .4byte 0x05000200 _0801C9A4: .4byte 0x80000010 _0801C9A8: ldr r5, _0801CA1C @ =0x020314E0 ldr r3, [r5] ldr r4, [sp, #0x2c] lsls r2, r4, #0x10 asrs r2, r2, #0x10 ldr r1, _0801CA20 @ =0x000006EC adds r0, r3, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801CA24 @ =0x086AD000 adds r7, r0, r1 ldr r1, _0801CA28 @ =0x00000749 adds r3, r3, r1 adds r3, r3, r2 ldrh r0, [r7] strb r0, [r3] ldrh r3, [r7, #4] lsls r3, r3, #0x14 ldr r4, _0801CA2C @ =0x040000D4 ldr r0, [r5] adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CA30 @ =0x083A8EEC adds r0, r0, r1 str r0, [r4] lsls r1, r2, #1 adds r2, r1, r2 lsls r2, r2, #8 ldr r0, _0801CA34 @ =0x06010CA0 adds r2, r2, r0 str r2, [r4, #4] ldr r0, _0801CA38 @ =0x80000180 str r0, [r4, #8] ldr r0, [r4, #8] lsrs r3, r3, #0xf ldr r0, _0801CA3C @ =0x081C02E4 adds r3, r3, r0 str r3, [r4] ldr r0, _0801CA40 @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801CA44 @ =0x05000200 adds r0, r0, r1 str r0, [r4, #4] ldr r0, _0801CA48 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] mov sl, r5 b _0801D0B8 .align 2, 0 _0801CA1C: .4byte 0x020314E0 _0801CA20: .4byte 0x000006EC _0801CA24: .4byte 0x086AD000 _0801CA28: .4byte 0x00000749 _0801CA2C: .4byte 0x040000D4 _0801CA30: .4byte 0x083A8EEC _0801CA34: .4byte 0x06010CA0 _0801CA38: .4byte 0x80000180 _0801CA3C: .4byte 0x081C02E4 _0801CA40: .4byte 0x086AD798 _0801CA44: .4byte 0x05000200 _0801CA48: .4byte 0x80000010 _0801CA4C: ldr r7, _0801CAFC @ =0x020314E0 ldr r1, [r7] ldr r2, [sp, #0x2c] lsls r2, r2, #0x10 asrs r2, r2, #0x10 mov r8, r2 ldr r2, _0801CB00 @ =0x00000749 adds r0, r1, r2 add r0, r8 movs r3, #0xb3 lsls r3, r3, #3 adds r1, r1, r3 ldrh r1, [r1] strb r1, [r0] ldr r5, _0801CB04 @ =0x040000D4 ldr r4, _0801CB08 @ =gMonPortraitGroupGfx mov sl, r4 ldr r6, [r7] adds r6, r6, r2 add r6, r8 ldrb r0, [r6] mov sb, r0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, sl mov r0, sb movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r5] mov r1, r8 lsls r0, r1, #1 add r0, r8 lsls r0, r0, #3 ldr r2, _0801CB0C @ =0x06010CA0 adds r0, r0, r2 str r0, [r5, #4] ldr r0, _0801CB10 @ =0x80000180 str r0, [r5, #8] ldr r0, [r5, #8] ldr r3, _0801CB14 @ =gMonPortraitGroupPals mov r8, r3 ldrb r6, [r6] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x13 ldr r1, [r4] adds r1, r1, r0 str r1, [r5] ldr r0, _0801CB18 @ =0x050003A0 str r0, [r5, #4] ldr r1, _0801CB1C @ =0x80000010 str r1, [r5, #8] ldr r0, [r5, #8] mov r4, r8 ldr r0, [r4] movs r2, #0xf0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r5] ldr r0, _0801CB20 @ =0x050003E0 str r0, [r5, #4] str r1, [r5, #8] ldr r0, [r5, #8] mov sl, r7 b _0801D0B8 .align 2, 0 _0801CAFC: .4byte 0x020314E0 _0801CB00: .4byte 0x00000749 _0801CB04: .4byte 0x040000D4 _0801CB08: .4byte gMonPortraitGroupGfx _0801CB0C: .4byte 0x06010CA0 _0801CB10: .4byte 0x80000180 _0801CB14: .4byte gMonPortraitGroupPals _0801CB18: .4byte 0x050003A0 _0801CB1C: .4byte 0x80000010 _0801CB20: .4byte 0x050003E0 _0801CB24: ldr r0, _0801CB68 @ =0x020314E0 ldr r4, [r0] movs r3, #0x97 lsls r3, r3, #2 adds r1, r4, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 ble _0801CBEC ldr r0, _0801CB6C @ =0x0200B134 ldr r5, _0801CB70 @ =0x0000059A adds r1, r4, r5 ldrh r3, [r1] adds r0, r3, r0 ldrb r0, [r0] cmp r0, #0 bne _0801CB80 ldr r0, [sp, #0x2c] lsls r2, r0, #0x10 asrs r2, r2, #0x10 ldr r3, _0801CB74 @ =0x00000749 adds r0, r4, r3 adds r0, r0, r2 movs r1, #0xcd strb r1, [r0] ldr r5, _0801CB78 @ =0x040000D4 ldr r1, _0801CB7C @ =gMonPortraitGroupPals mov r8, r1 mov r4, sl ldr r0, [r4] b _0801CC0C .align 2, 0 _0801CB68: .4byte 0x020314E0 _0801CB6C: .4byte 0x0200B134 _0801CB70: .4byte 0x0000059A _0801CB74: .4byte 0x00000749 _0801CB78: .4byte 0x040000D4 _0801CB7C: .4byte gMonPortraitGroupPals _0801CB80: cmp r0, #3 bhi _0801CBC0 ldr r5, [sp, #0x2c] lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r2, _0801CBAC @ =0x00000749 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] ldr r1, _0801CBB0 @ =0x040000D4 ldr r0, _0801CBB4 @ =gMonPortraitGroupPals ldr r0, [r0] movs r3, #0xf0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0801CBB8 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0801CBBC @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _0801CC3E .align 2, 0 _0801CBAC: .4byte 0x00000749 _0801CBB0: .4byte 0x040000D4 _0801CBB4: .4byte gMonPortraitGroupPals _0801CBB8: .4byte 0x050003A0 _0801CBBC: .4byte 0x80000010 _0801CBC0: ldr r5, [sp, #0x2c] lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r2, _0801CBE0 @ =0x00000749 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] ldr r5, _0801CBE4 @ =0x040000D4 ldr r0, _0801CBE8 @ =gMonPortraitGroupPals mov r8, r0 mov r3, sl ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r1 b _0801CC10 .align 2, 0 _0801CBE0: .4byte 0x00000749 _0801CBE4: .4byte 0x040000D4 _0801CBE8: .4byte gMonPortraitGroupPals _0801CBEC: ldr r5, [sp, #0x2c] lsls r2, r5, #0x10 asrs r2, r2, #0x10 ldr r3, _0801CC98 @ =0x00000749 adds r0, r4, r3 adds r0, r0, r2 movs r5, #0xb3 lsls r5, r5, #3 adds r1, r4, r5 ldrh r1, [r1] strb r1, [r0] ldr r5, _0801CC9C @ =0x040000D4 ldr r0, _0801CCA0 @ =gMonPortraitGroupPals mov r8, r0 mov r1, sl ldr r0, [r1] _0801CC0C: adds r0, r0, r3 adds r0, r0, r2 _0801CC10: ldrb r6, [r0] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x13 ldr r1, [r4] adds r1, r1, r0 str r1, [r5] ldr r0, _0801CCA4 @ =0x050003A0 str r0, [r5, #4] ldr r0, _0801CCA8 @ =0x80000010 str r0, [r5, #8] ldr r0, [r5, #8] _0801CC3E: ldr r2, _0801CC9C @ =0x040000D4 mov r8, r2 ldr r3, _0801CCAC @ =gMonPortraitGroupGfx mov sb, r3 mov r4, sl ldr r0, [r4] ldr r1, [sp, #0x2c] lsls r5, r1, #0x10 asrs r5, r5, #0x10 ldr r2, _0801CC98 @ =0x00000749 adds r0, r0, r2 adds r0, r0, r5 ldrb r6, [r0] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, sb adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 mov r3, r8 str r0, [r3] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #3 ldr r4, _0801CCB0 @ =0x06010CA0 adds r0, r0, r4 str r0, [r3, #4] ldr r0, _0801CCB4 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] b _0801D0B8 .align 2, 0 _0801CC98: .4byte 0x00000749 _0801CC9C: .4byte 0x040000D4 _0801CCA0: .4byte gMonPortraitGroupPals _0801CCA4: .4byte 0x050003A0 _0801CCA8: .4byte 0x80000010 _0801CCAC: .4byte gMonPortraitGroupGfx _0801CCB0: .4byte 0x06010CA0 _0801CCB4: .4byte 0x80000180 _0801CCB8: ldr r0, _0801CD28 @ =0x020314E0 ldr r2, [r0] movs r1, #0x17 ldrsb r1, [r2, r1] mov sl, r0 cmp r1, #2 bne _0801CD44 ldr r0, [sp, #0x2c] lsls r5, r0, #0x10 asrs r5, r5, #0x10 ldr r1, _0801CD2C @ =0x00000749 mov r8, r1 adds r4, r2, r1 adds r4, r4, r5 ldr r6, _0801CD30 @ =0x086AD000 movs r3, #0xe1 lsls r3, r3, #3 adds r0, r2, r3 ldr r0, [r0] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r1, r6, #0 adds r1, #0x78 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r4] ldr r2, _0801CD34 @ =0x040000D4 mov r4, sl ldr r0, [r4] add r0, r8 adds r0, r0, r5 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CD38 @ =0x083A8EEC adds r0, r0, r1 str r0, [r2] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #8 ldr r5, _0801CD3C @ =0x06010CA0 adds r0, r0, r5 str r0, [r2, #4] ldr r0, _0801CD40 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, #0x7c ldrh r5, [r6] b _0801CF30 .align 2, 0 _0801CD28: .4byte 0x020314E0 _0801CD2C: .4byte 0x00000749 _0801CD30: .4byte 0x086AD000 _0801CD34: .4byte 0x040000D4 _0801CD38: .4byte 0x083A8EEC _0801CD3C: .4byte 0x06010CA0 _0801CD40: .4byte 0x80000180 _0801CD44: ldr r0, [sp, #0x2c] lsls r5, r0, #0x10 asrs r5, r5, #0x10 ldr r1, _0801CDA8 @ =0x00000749 mov r8, r1 adds r4, r2, r1 adds r4, r4, r5 ldr r6, _0801CDAC @ =0x086AD000 movs r3, #0xe1 lsls r3, r3, #3 adds r0, r2, r3 ldr r0, [r0] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r1, r6, #0 adds r1, #0x80 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r4] ldr r2, _0801CDB0 @ =0x040000D4 mov r4, sl ldr r0, [r4] add r0, r8 adds r0, r0, r5 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CDB4 @ =0x083A8EEC adds r0, r0, r1 str r0, [r2] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #8 ldr r5, _0801CDB8 @ =0x06010CA0 adds r0, r0, r5 str r0, [r2, #4] ldr r0, _0801CDBC @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, #0x84 ldrh r0, [r6] lsls r0, r0, #0x14 lsrs r5, r0, #0x10 b _0801CF30 .align 2, 0 _0801CDA8: .4byte 0x00000749 _0801CDAC: .4byte 0x086AD000 _0801CDB0: .4byte 0x040000D4 _0801CDB4: .4byte 0x083A8EEC _0801CDB8: .4byte 0x06010CA0 _0801CDBC: .4byte 0x80000180 _0801CDC0: ldr r4, _0801CEF8 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801CEFC @ =0x000001A7 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801CF00 @ =0x086AD000 adds r7, r0, r1 ldr r0, [sp, #0x2c] lsls r3, r0, #0x10 asrs r3, r3, #0x10 ldr r1, _0801CF04 @ =0x00000749 adds r2, r2, r1 adds r2, r2, r3 ldrh r0, [r7] strb r0, [r2] ldrh r0, [r7, #4] lsls r0, r0, #0x14 lsrs r5, r0, #0x10 ldr r2, _0801CF08 @ =0x040000D4 ldr r0, [r4] mov r8, r0 add r1, r8 adds r1, r1, r3 ldrb r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CF0C @ =0x083A8EEC adds r0, r0, r1 str r0, [r2] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #8 ldr r1, _0801CF10 @ =0x06010CA0 adds r0, r0, r1 str r0, [r2, #4] ldr r0, _0801CF14 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, r8 movs r3, #0xc9 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] mov sl, r4 ldrh r7, [r7, #6] cmp r0, r7 blo _0801CE5A ldr r1, _0801CF18 @ =0x086AD2DE movs r4, #0xd3 lsls r4, r4, #1 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] cmp r1, #3 bne _0801CE4C adds r3, #0x50 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801CE5A _0801CE4C: cmp r1, #4 bne _0801CF30 ldr r0, _0801CF1C @ =0x000001AF add r0, r8 ldrb r0, [r0] cmp r0, #0 beq _0801CF30 _0801CE5A: ldr r2, _0801CF08 @ =0x040000D4 lsls r0, r5, #1 ldr r1, _0801CF20 @ =0x081C02E4 adds r0, r0, r1 str r0, [r2] mov r4, sp str r4, [r2, #4] ldr r0, _0801CF24 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r5, _0801CF28 @ =0x086AD798 mov sb, r5 add r7, sp, #0x20 _0801CE76: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #1 mov r1, sp adds r6, r1, r0 ldrh r1, [r6] movs r0, #0x1f ands r0, r1 lsls r0, r0, #1 movs r1, #3 bl __divsi3 mov r8, r0 mov r2, r8 strh r2, [r7] ldrh r0, [r6] movs r3, #0xf8 lsls r3, r3, #2 adds r1, r3, #0 ands r0, r1 lsrs r0, r0, #4 movs r1, #3 bl __divsi3 adds r4, r0, #0 strh r4, [r7, #2] ldrh r0, [r6] movs r2, #0xf8 lsls r2, r2, #7 adds r1, r2, #0 ands r0, r1 lsrs r0, r0, #9 movs r1, #3 bl __divsi3 strh r0, [r7, #4] lsls r4, r4, #5 mov r3, r8 orrs r4, r3 lsls r0, r0, #0xa orrs r4, r0 strh r4, [r6] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #0xf ble _0801CE76 ldr r1, _0801CF08 @ =0x040000D4 mov r4, sp str r4, [r1] ldr r5, [sp, #0x2c] lsls r0, r5, #0x10 asrs r0, r0, #0xf add r0, sb ldrh r0, [r0] lsls r0, r0, #5 ldr r2, _0801CF2C @ =0x05000200 adds r0, r0, r2 str r0, [r1, #4] ldr r0, _0801CF24 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _0801D0B8 .align 2, 0 _0801CEF8: .4byte 0x020314E0 _0801CEFC: .4byte 0x000001A7 _0801CF00: .4byte 0x086AD000 _0801CF04: .4byte 0x00000749 _0801CF08: .4byte 0x040000D4 _0801CF0C: .4byte 0x083A8EEC _0801CF10: .4byte 0x06010CA0 _0801CF14: .4byte 0x80000180 _0801CF18: .4byte 0x086AD2DE _0801CF1C: .4byte 0x000001AF _0801CF20: .4byte 0x081C02E4 _0801CF24: .4byte 0x80000010 _0801CF28: .4byte 0x086AD798 _0801CF2C: .4byte 0x05000200 _0801CF30: ldr r2, _0801CF58 @ =0x040000D4 lsls r0, r5, #1 ldr r1, _0801CF5C @ =0x081C02E4 adds r0, r0, r1 str r0, [r2] ldr r1, _0801CF60 @ =0x086AD798 ldr r3, [sp, #0x2c] lsls r0, r3, #0x10 asrs r0, r0, #0xf adds r0, r0, r1 ldrh r0, [r0] lsls r0, r0, #5 ldr r4, _0801CF64 @ =0x05000200 adds r0, r0, r4 str r0, [r2, #4] ldr r0, _0801CF68 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] b _0801D0B8 .align 2, 0 _0801CF58: .4byte 0x040000D4 _0801CF5C: .4byte 0x081C02E4 _0801CF60: .4byte 0x086AD798 _0801CF64: .4byte 0x05000200 _0801CF68: .4byte 0x80000010 _0801CF6C: ldr r5, _0801CFFC @ =0x020314E0 mov r8, r5 ldr r2, [r5] ldr r0, [sp, #0x2c] lsls r4, r0, #0x10 asrs r4, r4, #0x10 ldr r1, _0801D000 @ =0x000006EC adds r0, r2, r1 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801D004 @ =0x086AD000 adds r7, r0, r1 ldr r6, _0801D008 @ =0x00000749 adds r5, r2, r6 adds r5, r5, r4 movs r3, #0xe1 lsls r3, r3, #3 adds r2, r2, r3 ldr r0, [r2] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r7, r0 ldrh r0, [r0] strb r0, [r5] ldrh r2, [r7, #4] lsls r2, r2, #0x14 ldr r3, _0801D00C @ =0x040000D4 mov r5, r8 ldr r0, [r5] adds r0, r0, r6 adds r0, r0, r4 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801D010 @ =0x083A8EEC adds r0, r0, r1 str r0, [r3] lsls r1, r4, #1 adds r4, r1, r4 lsls r4, r4, #8 ldr r0, _0801D014 @ =0x06010CA0 adds r4, r4, r0 str r4, [r3, #4] ldr r0, _0801D018 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] lsrs r2, r2, #0xf ldr r0, _0801D01C @ =0x081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801D020 @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801D024 @ =0x05000200 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0801D028 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, r8 b _0801D0B8 .align 2, 0 _0801CFFC: .4byte 0x020314E0 _0801D000: .4byte 0x000006EC _0801D004: .4byte 0x086AD000 _0801D008: .4byte 0x00000749 _0801D00C: .4byte 0x040000D4 _0801D010: .4byte 0x083A8EEC _0801D014: .4byte 0x06010CA0 _0801D018: .4byte 0x80000180 _0801D01C: .4byte 0x081C02E4 _0801D020: .4byte 0x086AD798 _0801D024: .4byte 0x05000200 _0801D028: .4byte 0x80000010 _0801D02C: ldr r2, _0801D0EC @ =0x020314E0 mov sb, r2 ldr r2, [r2] ldr r3, _0801D0F0 @ =0x000006DC adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #3 ldr r1, _0801D0F4 @ =0x086AD000 adds r7, r0, r1 ldr r5, [sp, #0x2c] lsls r4, r5, #0x10 asrs r4, r4, #0x10 ldr r0, _0801D0F8 @ =0x00000749 mov r8, r0 adds r5, r2, r0 adds r5, r5, r4 ldr r6, _0801D0FC @ =0x086AD79C ldr r1, _0801D100 @ =0x000006DE adds r2, r2, r1 ldrh r0, [r2] movs r1, #0xc bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r6 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r7, r0 ldrh r0, [r0] strb r0, [r5] ldrh r2, [r7, #4] lsls r2, r2, #0x14 ldr r3, _0801D104 @ =0x040000D4 mov r5, sb ldr r0, [r5] add r0, r8 adds r0, r0, r4 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801D108 @ =0x083A8EEC adds r0, r0, r1 str r0, [r3] lsls r1, r4, #1 adds r4, r1, r4 lsls r4, r4, #8 ldr r0, _0801D10C @ =0x06010CA0 adds r4, r4, r0 str r4, [r3, #4] ldr r0, _0801D110 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] lsrs r2, r2, #0xf ldr r0, _0801D114 @ =0x081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801D118 @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801D11C @ =0x05000200 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0801D120 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, sb _0801D0B8: mov r2, sl ldr r1, [r2] ldr r3, [sp, #0x2c] lsls r0, r3, #0x10 asrs r0, r0, #0x10 ldr r4, _0801D124 @ =0x00000747 adds r1, r1, r4 adds r1, r1, r0 add r5, sp, #0x28 ldrb r5, [r5] strb r5, [r1] ldr r1, [r2] movs r0, #0xe1 lsls r0, r0, #3 adds r1, r1, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] add sp, #0x30 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 _0801D0EC: .4byte 0x020314E0 _0801D0F0: .4byte 0x000006DC _0801D0F4: .4byte 0x086AD000 _0801D0F8: .4byte 0x00000749 _0801D0FC: .4byte 0x086AD79C _0801D100: .4byte 0x000006DE _0801D104: .4byte 0x040000D4 _0801D108: .4byte 0x083A8EEC _0801D10C: .4byte 0x06010CA0 _0801D110: .4byte 0x80000180 _0801D114: .4byte 0x081C02E4 _0801D118: .4byte 0x086AD798 _0801D11C: .4byte 0x05000200 _0801D120: .4byte 0x80000010 _0801D124: .4byte 0x00000747 thumb_func_start sub_1D128 sub_1D128: @ 0x0801D128 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r1, _0801D154 @ =0x020314E0 ldr r3, [r1] ldr r2, _0801D158 @ =0x000006C4 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #3 bne _0801D15C movs r3, #0 mov r8, r3 movs r0, #0xb4 mov sl, r0 movs r2, #0xb4 b _0801D1C4 .align 2, 0 _0801D154: .4byte 0x020314E0 _0801D158: .4byte 0x000006C4 _0801D15C: cmp r0, #2 bne _0801D190 ldr r0, _0801D174 @ =gMain movs r2, #0x2a ldrsh r1, [r0, r2] cmp r1, #0x13 bgt _0801D178 movs r3, #0xb4 mov sl, r3 movs r2, #0xb4 b _0801D18A .align 2, 0 _0801D174: .4byte gMain _0801D178: movs r1, #0xdc lsls r1, r1, #3 adds r0, r3, r1 ldrh r0, [r0] adds r0, #0x58 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r2, #0x58 _0801D18A: movs r3, #0x30 mov r8, r3 b _0801D1C4 _0801D190: adds r0, r3, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 movs r1, #0xdc lsls r1, r1, #3 adds r0, r3, r1 movs r1, #0x96 lsls r1, r1, #1 adds r2, r1, #0 ldrh r0, [r0] adds r0, r2, r0 adds r1, r3, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 subs r2, r2, r1 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 _0801D1C4: ldr r3, _0801D4A4 @ =gMain ldr r0, [r3, #0x44] ldr r6, [r0, #0x58] mov r0, r8 strh r0, [r6, #2] mov r1, sl strh r1, [r6, #4] mov r3, sb ldr r0, [r3] ldr r3, _0801D4A8 @ =0x000006E4 adds r1, r0, r3 mov r3, r8 strh r3, [r1] ldrh r1, [r6, #4] ldr r3, _0801D4AC @ =0x000006E6 adds r0, r0, r3 strh r1, [r0] movs r1, #4 ldrsh r0, [r6, r1] cmp r0, #0xc7 ble _0801D1F2 movs r0, #0xc8 strh r0, [r6, #4] _0801D1F2: movs r0, #0 mov r3, r8 lsls r3, r3, #0x10 str r3, [sp] lsls r2, r2, #0x10 str r2, [sp, #4] ldr r7, _0801D4B0 @ =0x03005000 mov ip, sb _0801D202: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 mov r1, ip ldr r0, [r1] ldr r2, _0801D4B4 @ =0x000006D3 adds r0, r0, r2 adds r0, r0, r4 ldrb r1, [r0] lsls r1, r1, #4 ldrb r2, [r3, #5] movs r0, #0xf ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 mov r1, ip ldr r0, [r1] ldr r2, _0801D4B8 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] movs r0, #3 ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] subs r0, #0x10 ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0801D4C0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D202 mov r3, sb ldr r0, [r3] ldr r1, _0801D4C4 @ =0x000006C4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801D298 b _0801D3FA _0801D298: ldr r2, _0801D4A4 @ =gMain ldr r0, [r2, #0x44] ldr r6, [r0, #0x5c] mov r3, r8 strh r3, [r6, #2] mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 subs r0, #0x20 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb3 ble _0801D2B8 movs r0, #0xb4 strh r0, [r6, #4] _0801D2B8: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 ldr r2, _0801D4C0 @ =0xFFFFFE00 mov ip, r2 _0801D2C0: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xc0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D2C0 ldr r3, _0801D4A4 @ =gMain ldr r0, [r3, #0x44] ldr r6, [r0, #0x50] mov r0, r8 strh r0, [r6, #2] mov r1, sb ldr r0, [r1] adds r0, #0x5a ldrh r1, [r0] ldr r2, _0801D4C8 @ =0x0000010B adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0801D33C movs r0, #0xc8 strh r0, [r6, #4] _0801D33C: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 ldr r3, _0801D4C0 @ =0xFFFFFE00 mov ip, r3 _0801D344: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D344 ldr r3, _0801D4A4 @ =gMain ldr r0, [r3, #0x44] ldr r6, [r0, #0x54] mov r0, r8 strh r0, [r6, #2] mov r1, sb ldr r0, [r1] adds r0, #0x5a ldrh r1, [r0] ldr r2, _0801D4CC @ =0x0000014D adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0801D3AE movs r0, #0xc8 strh r0, [r6, #4] _0801D3AE: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 ldr r3, _0801D4C0 @ =0xFFFFFE00 mov r8, r3 _0801D3B6: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D3B6 _0801D3FA: ldr r3, _0801D4A4 @ =gMain ldr r0, [r3, #0x44] ldr r6, [r0, #0x4c] ldr r1, [sp] asrs r0, r1, #0x10 subs r0, #8 strh r0, [r6, #2] ldr r2, [sp, #4] asrs r0, r2, #0x10 subs r0, #8 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0801D41C movs r0, #0xc8 strh r0, [r6, #4] _0801D41C: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 movs r3, #3 mov ip, r3 movs r1, #0xd rsbs r1, r1, #0 mov sl, r1 ldr r2, _0801D4C0 @ =0xFFFFFE00 mov r8, r2 _0801D42E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 mov r1, sb ldr r0, [r1] ldr r2, _0801D4B8 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] mov r0, ip ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D42E add sp, #8 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 _0801D4A4: .4byte gMain _0801D4A8: .4byte 0x000006E4 _0801D4AC: .4byte 0x000006E6 _0801D4B0: .4byte 0x03005000 _0801D4B4: .4byte 0x000006D3 _0801D4B8: .4byte 0x000006DB _0801D4BC: .4byte 0x000001FF _0801D4C0: .4byte 0xFFFFFE00 _0801D4C4: .4byte 0x000006C4 _0801D4C8: .4byte 0x0000010B _0801D4CC: .4byte 0x0000014D thumb_func_start sub_1D4D0 sub_1D4D0: @ 0x0801D4D0 push {r4, r5, r6, r7, lr} ldr r0, _0801D5C8 @ =0x020314E0 ldr r1, [r0] ldr r2, _0801D5CC @ =0x000006C4 adds r1, r1, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r7, r0, #0 cmp r1, #1 bne _0801D5C2 ldr r0, _0801D5D0 @ =gMain ldr r1, [r0, #0x44] ldr r4, [r1, #0x58] movs r1, #0xb4 strh r1, [r4, #4] movs r1, #0 adds r6, r0, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D4F6: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D4F6 ldr r0, [r6, #0x44] ldr r4, [r0, #0x5c] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb3 ble _0801D53A movs r0, #0xb4 strh r0, [r4, #4] _0801D53A: movs r1, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D53E: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D53E ldr r0, [r6, #0x44] ldr r4, [r0, #0x50] movs r0, #0xb4 strh r0, [r4, #4] movs r1, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D56E: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D56E ldr r0, [r6, #0x44] ldr r4, [r0, #0x54] movs r0, #0xb4 strh r0, [r4, #4] movs r1, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D59E: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D59E _0801D5C2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801D5C8: .4byte 0x020314E0 _0801D5CC: .4byte 0x000006C4 _0801D5D0: .4byte gMain _0801D5D4: .4byte 0x03005000 thumb_func_start sub_1D5D8 sub_1D5D8: @ 0x0801D5D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0801D60C @ =0x0200E6C0 mov sb, r0 movs r1, #0 mov r8, r1 movs r5, #0 ldr r1, _0801D610 @ =0x020314E0 ldr r0, [r1] ldr r2, _0801D614 @ =0x000002FB adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bls _0801D600 b _0801D930 _0801D600: lsls r0, r0, #2 ldr r1, _0801D618 @ =_0801D61C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801D60C: .4byte 0x0200E6C0 _0801D610: .4byte 0x020314E0 _0801D614: .4byte 0x000002FB _0801D618: .4byte _0801D61C _0801D61C: @ jump table .4byte _0801D63C @ case 0 .4byte _0801D65C @ case 1 .4byte _0801D6C4 @ case 2 .4byte _0801D760 @ case 3 .4byte _0801D7C8 @ case 4 .4byte _0801D860 @ case 5 .4byte _0801D860 @ case 6 .4byte _0801D8E0 @ case 7 _0801D63C: ldr r0, _0801D658 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x24 bl __umodsi3 movs r1, #0x12 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 mov r5, r8 b _0801D930 .align 2, 0 _0801D658: .4byte gMain _0801D65C: ldr r4, _0801D6AC @ =0x020314E0 ldr r1, [r4] ldr r3, _0801D6B0 @ =0x000002FE adds r2, r1, r3 movs r3, #0 movs r0, #0 strh r0, [r2] ldr r5, _0801D6B4 @ =0x000002FD adds r1, r1, r5 strb r3, [r1] ldr r0, [r4] ldr r7, _0801D6B8 @ =0x000002FB adds r0, r0, r7 movs r1, #2 strb r1, [r0] ldr r2, _0801D6BC @ =0x086AD7C0 ldr r0, [r4] adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r5, [r1] adds r2, #4 adds r0, r0, r2 ldrh r0, [r0] mov r8, r0 movs r0, #0xcf bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r4] ldr r0, _0801D6C0 @ =0x0000C350 str r0, [r1, #0x3c] b _0801D930 .align 2, 0 _0801D6AC: .4byte 0x020314E0 _0801D6B0: .4byte 0x000002FE _0801D6B4: .4byte 0x000002FD _0801D6B8: .4byte 0x000002FB _0801D6BC: .4byte 0x086AD7C0 _0801D6C0: .4byte 0x0000C350 _0801D6C4: ldr r3, _0801D6F0 @ =0x086AD7C0 ldr r0, _0801D6F4 @ =0x020314E0 ldr r2, [r0] ldr r6, _0801D6F8 @ =0x000002FD adds r4, r2, r6 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r5, _0801D6FC @ =0x000002FE adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0801D700 adds r0, r1, #1 strh r0, [r2] b _0801D736 .align 2, 0 _0801D6F0: .4byte 0x086AD7C0 _0801D6F4: .4byte 0x020314E0 _0801D6F8: .4byte 0x000002FD _0801D6FC: .4byte 0x000002FE _0801D700: movs r5, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r7, _0801D754 @ =0x020314E0 ldr r1, [r7] ldr r2, _0801D758 @ =0x000002FD adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801D736 ldr r7, _0801D75C @ =0x000002FB adds r0, r1, r7 strb r5, [r0] ldr r1, _0801D754 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r6 strb r5, [r0] ldr r0, [r1] subs r2, #4 adds r0, r0, r2 movs r1, #1 strb r1, [r0] _0801D736: ldr r0, _0801D754 @ =0x020314E0 ldr r0, [r0] ldr r5, _0801D758 @ =0x000002FD adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r5, [r1] adds r1, r3, #4 adds r0, r0, r1 b _0801D92C .align 2, 0 _0801D754: .4byte 0x020314E0 _0801D758: .4byte 0x000002FD _0801D75C: .4byte 0x000002FB _0801D760: ldr r4, _0801D7B0 @ =0x020314E0 ldr r1, [r4] ldr r7, _0801D7B4 @ =0x000002FE adds r2, r1, r7 movs r0, #0 strh r0, [r2] ldr r3, _0801D7B8 @ =0x000002FD adds r1, r1, r3 movs r0, #7 strb r0, [r1] ldr r0, [r4] ldr r1, _0801D7BC @ =0x000002FB adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r2, _0801D7C0 @ =0x086AD7C0 ldr r0, [r4] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r5, [r1] adds r2, #4 adds r0, r0, r2 ldrh r0, [r0] mov r8, r0 movs r0, #0xcf bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r4] ldr r0, _0801D7C4 @ =0x000186A0 str r0, [r1, #0x3c] b _0801D930 .align 2, 0 _0801D7B0: .4byte 0x020314E0 _0801D7B4: .4byte 0x000002FE _0801D7B8: .4byte 0x000002FD _0801D7BC: .4byte 0x000002FB _0801D7C0: .4byte 0x086AD7C0 _0801D7C4: .4byte 0x000186A0 _0801D7C8: ldr r2, _0801D7F4 @ =0x086AD7C0 ldr r5, _0801D7F8 @ =0x020314E0 ldr r3, [r5] ldr r7, _0801D7FC @ =0x000002FD adds r4, r3, r7 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] ldr r2, _0801D800 @ =0x000002FE adds r3, r3, r2 ldrh r1, [r3] cmp r0, r1 ble _0801D804 adds r0, r1, #1 strh r0, [r3] b _0801D82C .align 2, 0 _0801D7F4: .4byte 0x086AD7C0 _0801D7F8: .4byte 0x020314E0 _0801D7FC: .4byte 0x000002FD _0801D800: .4byte 0x000002FE _0801D804: movs r0, #0 strh r0, [r3] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r1, [r5] ldr r3, _0801D84C @ =0x000002FD adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bne _0801D82C ldr r5, _0801D850 @ =0x000002FB adds r1, r1, r5 movs r0, #5 strb r0, [r1] movs r0, #0xd1 bl m4aSongNumStart _0801D82C: ldr r4, _0801D854 @ =0x020314E0 ldr r0, [r4] ldr r7, _0801D858 @ =0x000002FE adds r0, r0, r7 ldrh r0, [r0] cmp r0, #6 bne _0801D840 movs r0, #0xd0 bl m4aSongNumStart _0801D840: ldr r2, _0801D85C @ =0x086AD7C0 ldr r0, [r4] ldr r1, _0801D84C @ =0x000002FD adds r0, r0, r1 b _0801D91A .align 2, 0 _0801D84C: .4byte 0x000002FD _0801D850: .4byte 0x000002FB _0801D854: .4byte 0x020314E0 _0801D858: .4byte 0x000002FE _0801D85C: .4byte 0x086AD7C0 _0801D860: ldr r3, _0801D88C @ =0x086AD7C0 ldr r5, _0801D890 @ =0x020314E0 ldr r2, [r5] ldr r7, _0801D894 @ =0x000002FD adds r4, r2, r7 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r5, _0801D898 @ =0x000002FE adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0801D89C adds r0, r1, #1 strh r0, [r2] b _0801D8BA .align 2, 0 _0801D88C: .4byte 0x086AD7C0 _0801D890: .4byte 0x020314E0 _0801D894: .4byte 0x000002FD _0801D898: .4byte 0x000002FE _0801D89C: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r7, _0801D8D8 @ =0x020314E0 ldr r0, [r7] ldr r2, _0801D8DC @ =0x000002FD adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x18 bne _0801D8BA movs r0, #0x12 strb r0, [r1] _0801D8BA: ldr r0, _0801D8D8 @ =0x020314E0 ldr r0, [r0] ldr r5, _0801D8DC @ =0x000002FD adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r5, [r1] adds r1, r3, #4 adds r0, r0, r1 b _0801D92C .align 2, 0 _0801D8D8: .4byte 0x020314E0 _0801D8DC: .4byte 0x000002FD _0801D8E0: ldr r4, _0801DA3C @ =0x020314E0 ldr r0, [r4] ldr r7, _0801DA40 @ =0x000002FA adds r0, r0, r7 movs r1, #0 strb r1, [r0] ldr r0, [r4] ldr r2, _0801DA44 @ =0x000002F9 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] ldr r3, _0801DA48 @ =0x000002FE adds r2, r0, r3 movs r5, #0 strh r1, [r2] subs r3, #1 adds r0, r0, r3 strb r5, [r0] ldr r0, [r4] adds r7, #1 adds r0, r0, r7 strb r5, [r0] ldr r0, [r4] adds r0, r0, r3 movs r1, #0x18 strb r1, [r0] ldr r2, _0801DA4C @ =0x086AD7C0 ldr r0, [r4] adds r0, r0, r3 _0801D91A: movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r5, [r1] adds r2, #4 adds r0, r0, r2 _0801D92C: ldrh r0, [r0] mov r8, r0 _0801D930: mov r1, sb ldrh r0, [r1] cmp r0, #0 beq _0801DA20 ldr r2, _0801DA50 @ =0x086AD856 ldr r3, _0801DA3C @ =0x020314E0 ldr r4, [r3] ldr r7, _0801DA44 @ =0x000002F9 adds r3, r4, r7 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 mov r1, sb strh r0, [r1, #2] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r2, #2 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0x5a ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 mov r2, sb strh r0, [r2, #4] ldr r2, _0801DA54 @ =0x040000D4 movs r3, #0xbf lsls r3, r3, #2 adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0801DA58 @ =0x0845710C adds r0, r0, r1 str r0, [r2] ldr r0, _0801DA5C @ =0x06014380 str r0, [r2, #4] ldr r0, _0801DA60 @ =0x80000130 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 lsls r1, r5, #0x10 ldr r5, _0801DA64 @ =0x03005000 mov ip, r5 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r6, r0, #2 ldr r7, _0801DA68 @ =0xFFFFFE00 mov sl, r7 _0801D9A6: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 ldr r5, _0801DA6C @ =0x086B2E64 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 adds r1, r1, r5 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r7, [r2, #2] lsls r1, r7, #0x17 lsrs r1, r1, #0x17 mov r5, sb movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _0801DA70 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, sl ldrh r7, [r2, #2] ands r0, r7 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r1] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0801D9A6 _0801DA20: ldr r7, _0801DA3C @ =0x020314E0 ldr r0, [r7] movs r1, #0xbf lsls r1, r1, #2 adds r0, r0, r1 mov r2, r8 strb r2, [r0] 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 _0801DA3C: .4byte 0x020314E0 _0801DA40: .4byte 0x000002FA _0801DA44: .4byte 0x000002F9 _0801DA48: .4byte 0x000002FE _0801DA4C: .4byte 0x086AD7C0 _0801DA50: .4byte 0x086AD856 _0801DA54: .4byte 0x040000D4 _0801DA58: .4byte 0x0845710C _0801DA5C: .4byte 0x06014380 _0801DA60: .4byte 0x80000130 _0801DA64: .4byte 0x03005000 _0801DA68: .4byte 0xFFFFFE00 _0801DA6C: .4byte 0x086B2E64 _0801DA70: .4byte 0x000001FF thumb_func_start sub_1DA74 sub_1DA74: @ 0x0801DA74 ldr r0, _0801DAB0 @ =0x020314E0 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _0801DAD4 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _0801DAC6 ldr r1, _0801DAB4 @ =0x000001A5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801DABC ldr r3, _0801DAB8 @ =0x000001AB adds r0, r2, r3 ldrb r0, [r0] movs r1, #0xf ands r1, r0 movs r3, #0xbc lsls r3, r3, #2 adds r0, r2, r3 strb r1, [r0] b _0801DAD4 .align 2, 0 _0801DAB0: .4byte 0x020314E0 _0801DAB4: .4byte 0x000001A5 _0801DAB8: .4byte 0x000001AB _0801DABC: movs r0, #0xbc lsls r0, r0, #2 adds r1, r2, r0 movs r0, #3 b _0801DAD2 _0801DAC6: cmp r0, #6 beq _0801DAD4 movs r3, #0xbc lsls r3, r3, #2 adds r1, r2, r3 movs r0, #0 _0801DAD2: strb r0, [r1] _0801DAD4: bx lr thumb_func_start sub_1DAD8 sub_1DAD8: @ 0x0801DAD8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _0801DB64 @ =0x0200E270 mov r8, r0 ldr r0, _0801DB68 @ =0x020314E0 ldr r4, [r0] movs r2, #0xbc lsls r2, r2, #2 adds r1, r4, r2 ldrb r1, [r1] movs r5, #0xf ldr r7, _0801DB6C @ =0x000002F1 adds r3, r4, r7 ldrb r2, [r3] ands r5, r1 adds r1, r2, #0 adds r7, r0, #0 cmp r5, r1 beq _0801DBAC ldr r6, _0801DB70 @ =0x000002F2 adds r0, r4, r6 ldrh r0, [r0] cmp r0, #0 beq _0801DB78 cmp r0, #5 bne _0801DB58 ldr r3, _0801DB74 @ =0xFFFFCE50 add r3, r8 ldrb r1, [r3, #0xf] movs r0, #1 movs r2, #0 orrs r0, r1 strb r0, [r3, #0xf] adds r0, r4, #0 adds r0, #0xea movs r3, #0 strh r2, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #3 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r2, [r0] subs r0, #2 strh r2, [r0] adds r0, #8 strh r2, [r0] adds r0, #4 strb r3, [r0] ldr r0, [r7] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r3, [r0] movs r0, #0xbd bl m4aSongNumStart _0801DB58: ldr r1, [r7] adds r1, r1, r6 ldrh r0, [r1] subs r0, #1 strh r0, [r1] b _0801DBAC .align 2, 0 _0801DB64: .4byte 0x0200E270 _0801DB68: .4byte 0x020314E0 _0801DB6C: .4byte 0x000002F1 _0801DB70: .4byte 0x000002F2 _0801DB74: .4byte 0xFFFFCE50 _0801DB78: cmp r1, r5 bls _0801DB80 subs r0, r2, #1 b _0801DB82 _0801DB80: adds r0, r2, #1 _0801DB82: strb r0, [r3] ldr r0, [r7] adds r0, r0, r6 movs r1, #4 strh r1, [r0] ldr r2, _0801DC58 @ =0x040000D4 ldr r0, [r7] ldr r1, _0801DC5C @ =0x000002F1 adds r0, r0, r1 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0801DC60 @ =0x084ED0CC adds r0, r0, r1 str r0, [r2] ldr r0, _0801DC64 @ =0x06013180 str r0, [r2, #4] ldr r0, _0801DC68 @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] _0801DBAC: ldr r2, [r7] ldr r7, _0801DC5C @ =0x000002F1 adds r0, r2, r7 ldrb r0, [r0] movs r3, #2 cmp r0, #2 bhi _0801DBBC movs r3, #3 _0801DBBC: adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xd0 subs r0, r0, r1 mov r1, r8 strh r0, [r1, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x50 subs r0, r0, r1 mov r2, r8 strh r0, [r2, #4] movs r0, #0 ldr r7, _0801DC6C @ =0x0200E278 mov sl, r7 ldr r6, _0801DC70 @ =0x03005000 lsls r3, r3, #2 str r3, [sp] movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 ldr r2, _0801DC74 @ =0xFFFFFE00 mov ip, r2 _0801DBEE: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 add r5, sl ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sb ands r0, r2 ldr r7, [sp] orrs r0, r7 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] mov r2, r8 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0801DC78 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r7, r8 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0801DBEE 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 _0801DC58: .4byte 0x040000D4 _0801DC5C: .4byte 0x000002F1 _0801DC60: .4byte 0x084ED0CC _0801DC64: .4byte 0x06013180 _0801DC68: .4byte 0x800000C0 _0801DC6C: .4byte 0x0200E278 _0801DC70: .4byte 0x03005000 _0801DC74: .4byte 0xFFFFFE00 _0801DC78: .4byte 0x000001FF thumb_func_start sub_1DC7C sub_1DC7C: @ 0x0801DC7C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r6, _0801DD7C @ =0x0200E100 ldr r2, _0801DD80 @ =0x020314E0 ldr r3, [r2] ldr r1, _0801DD84 @ =0x000002A5 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801DD88 @ =0x086AD862 adds r4, r0, r1 ldrh r0, [r6] mov sb, r2 cmp r0, #0 bne _0801DCA4 b _0801DDCC _0801DCA4: ldrh r2, [r4] mov r8, r2 ldr r2, _0801DD8C @ =0x040000D4 adds r0, r3, #0 adds r0, #0x6f movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _0801DD90 @ =0x081379D8 adds r0, r0, r1 str r0, [r2] ldr r0, _0801DD94 @ =0x05000320 str r0, [r2, #4] ldr r0, _0801DD98 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] mov r0, r8 lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0801DD9C @ =0x084B7FEC adds r0, r0, r1 str r0, [r2] ldr r0, _0801DDA0 @ =0x06014680 str r0, [r2, #4] ldr r0, _0801DDA4 @ =0x80000230 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xc2 lsls r2, r2, #1 adds r1, r3, r2 ldr r0, _0801DDA8 @ =0x0000FF08 strh r0, [r1] movs r0, #0xc3 lsls r0, r0, #1 adds r1, r3, r0 ldr r0, _0801DDAC @ =0x0000FEC4 strh r0, [r1] ldrh r0, [r4, #4] adds r0, #0x7c adds r1, r3, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldrh r0, [r4, #6] adds r0, #0x96 adds r1, r3, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _0801DDB0 @ =0x03005000 ldr r1, _0801DDB4 @ =0xFFFFFE00 mov ip, r1 _0801DD1C: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801DDB8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0801DD1C mov r1, r8 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #4 beq _0801DD6E cmp r0, #0xa bne _0801DDC0 _0801DD6E: mov r2, sb ldr r0, [r2] ldr r1, _0801DDBC @ =0x000002A3 adds r0, r0, r1 movs r1, #0 b _0801DDCA .align 2, 0 _0801DD7C: .4byte 0x0200E100 _0801DD80: .4byte 0x020314E0 _0801DD84: .4byte 0x000002A5 _0801DD88: .4byte 0x086AD862 _0801DD8C: .4byte 0x040000D4 _0801DD90: .4byte 0x081379D8 _0801DD94: .4byte 0x05000320 _0801DD98: .4byte 0x80000010 _0801DD9C: .4byte 0x084B7FEC _0801DDA0: .4byte 0x06014680 _0801DDA4: .4byte 0x80000230 _0801DDA8: .4byte 0x0000FF08 _0801DDAC: .4byte 0x0000FEC4 _0801DDB0: .4byte 0x03005000 _0801DDB4: .4byte 0xFFFFFE00 _0801DDB8: .4byte 0x000001FF _0801DDBC: .4byte 0x000002A3 _0801DDC0: mov r2, sb ldr r0, [r2] ldr r1, _0801DDD8 @ =0x000002A3 adds r0, r0, r1 movs r1, #1 _0801DDCA: strb r1, [r0] _0801DDCC: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801DDD8: .4byte 0x000002A3 thumb_func_start sub_1DDDC sub_1DDDC: @ 0x0801DDDC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 ldr r1, _0801DE70 @ =0x020314E0 ldr r4, [r1] movs r2, #0xa9 lsls r2, r2, #2 adds r0, r4, r2 movs r3, #0 ldrsb r3, [r0, r3] mov sl, r1 cmp r3, #0 bne _0801DDFE b _0801E518 _0801DDFE: movs r0, #0x13 ldrsb r0, [r4, r0] cmp r0, #2 ble _0801DE0E ldr r3, _0801DE74 @ =0x0000016F adds r1, r4, r3 movs r0, #1 strb r0, [r1] _0801DE0E: mov r4, sl ldr r1, [r4] ldr r3, _0801DE74 @ =0x0000016F adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801DE4E ldr r5, _0801DE78 @ =0x000002A2 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _0801DE44 movs r2, #0 movs r0, #9 strb r0, [r1] ldr r0, [r4] ldr r1, _0801DE7C @ =0x000002A5 adds r0, r0, r1 movs r1, #8 strb r1, [r0] ldr r0, [r4] ldr r4, _0801DE80 @ =0x000002A6 adds r0, r0, r4 strh r2, [r0] _0801DE44: mov r5, sl ldr r0, [r5] adds r0, r0, r3 movs r1, #0 strb r1, [r0] _0801DE4E: mov r1, sl ldr r0, [r1] ldr r2, _0801DE78 @ =0x000002A2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0801DE64 bl _0801E780 _0801DE64: lsls r0, r0, #2 ldr r1, _0801DE84 @ =_0801DE88 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801DE70: .4byte 0x020314E0 _0801DE74: .4byte 0x0000016F _0801DE78: .4byte 0x000002A2 _0801DE7C: .4byte 0x000002A5 _0801DE80: .4byte 0x000002A6 _0801DE84: .4byte _0801DE88 _0801DE88: @ jump table .4byte _0801DEB4 @ case 0 .4byte _0801DF2C @ case 1 .4byte _0801DF68 @ case 2 .4byte _0801DFC0 @ case 3 .4byte _0801E0D0 @ case 4 .4byte _0801E174 @ case 5 .4byte _0801E1B4 @ case 6 .4byte _0801E2F8 @ case 7 .4byte _0801E34C @ case 8 .4byte _0801E44C @ case 9 .4byte _0801E4CC @ case 10 _0801DEB4: ldr r1, _0801DF18 @ =0x086AD862 ldr r4, _0801DF1C @ =0x020314E0 ldr r2, [r4] ldr r5, _0801DF20 @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801DF24 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801DED8 b _0801E46E _0801DED8: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] ldr r2, _0801DF20 @ =0x000002A5 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801DEFA ldr r3, _0801DF28 @ =0x000002A2 adds r1, r1, r3 movs r0, #1 strb r0, [r1] _0801DEFA: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801DF0C bl _0801E780 _0801DF0C: movs r0, #0xd3 bl m4aSongNumStart bl _0801E780 .align 2, 0 _0801DF18: .4byte 0x086AD862 _0801DF1C: .4byte 0x020314E0 _0801DF20: .4byte 0x000002A5 _0801DF24: .4byte 0x000002A6 _0801DF28: .4byte 0x000002A2 _0801DF2C: ldr r6, _0801DF5C @ =0x020314E0 ldr r4, [r6] ldr r5, _0801DF60 @ =0x000002A6 adds r0, r4, r5 ldrh r0, [r0] movs r1, #0x2c bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x16 bl __udivsi3 adds r0, #4 ldr r1, _0801DF64 @ =0x000002A5 adds r4, r4, r1 strb r0, [r4] ldr r1, [r6] adds r1, r1, r5 ldrh r0, [r1] adds r0, #1 strh r0, [r1] bl _0801E780 .align 2, 0 _0801DF5C: .4byte 0x020314E0 _0801DF60: .4byte 0x000002A6 _0801DF64: .4byte 0x000002A5 _0801DF68: ldr r2, _0801DFA8 @ =0x020314E0 ldr r0, [r2] ldr r3, _0801DFAC @ =0x000002A5 adds r0, r0, r3 movs r3, #0 movs r1, #6 strb r1, [r0] ldr r1, [r2] ldr r4, _0801DFB0 @ =0x000002A6 adds r0, r1, r4 movs r4, #0 strh r3, [r0] ldr r5, _0801DFB4 @ =0x000002A2 adds r1, r1, r5 movs r0, #3 strb r0, [r1] ldr r0, [r2] ldr r1, _0801DFB8 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] strb r4, [r0, #1] ldr r1, [r2] ldr r0, _0801DFBC @ =0x00001388 str r0, [r1, #0x3c] movs r0, #0xd5 bl m4aSongNumStart movs r0, #7 bl sub_11B0 bl _0801E780 .align 2, 0 _0801DFA8: .4byte 0x020314E0 _0801DFAC: .4byte 0x000002A5 _0801DFB0: .4byte 0x000002A6 _0801DFB4: .4byte 0x000002A2 _0801DFB8: .4byte 0x0000132C _0801DFBC: .4byte 0x00001388 _0801DFC0: ldr r1, _0801DFE8 @ =0x086AD862 ldr r4, _0801DFEC @ =0x020314E0 ldr r2, [r4] ldr r6, _0801DFF0 @ =0x000002A5 adds r3, r2, r6 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r5, #0 ldrsh r0, [r0, r5] ldr r5, _0801DFF4 @ =0x000002A6 adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0801DFF8 adds r0, r1, #1 strh r0, [r2] b _0801E038 .align 2, 0 _0801DFE8: .4byte 0x086AD862 _0801DFEC: .4byte 0x020314E0 _0801DFF0: .4byte 0x000002A5 _0801DFF4: .4byte 0x000002A6 _0801DFF8: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E0C0 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd bne _0801E024 movs r0, #0xc strb r0, [r1] ldr r1, [r4] adds r2, r1, r5 movs r0, #0x41 strh r0, [r2] ldr r3, _0801E0C4 @ =0x000002A2 adds r1, r1, r3 movs r0, #4 strb r0, [r1] _0801E024: ldr r0, [r4] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _0801E038 movs r0, #0xd4 bl m4aSongNumStart _0801E038: ldr r5, _0801E0C8 @ =0x020314E0 ldr r2, [r5] ldr r4, _0801E0C0 @ =0x000002A5 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0801E070 ldr r0, _0801E0CC @ =0x0000132C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #0xa] adds r0, #0x40 movs r3, #0 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x89 lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xbd lsls r0, r0, #8 str r0, [r1, #0x38] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] _0801E070: ldr r2, [r5] adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801E0A4 ldr r1, _0801E0CC @ =0x0000132C adds r2, r2, r1 ldr r1, [r2] ldrh r0, [r1, #0xa] adds r0, #0x40 movs r3, #0 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x8c lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xb7 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] _0801E0A4: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _0801E0B4 b _0801E780 _0801E0B4: ldr r2, _0801E0CC @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r0, #1 strb r0, [r1] b _0801E780 .align 2, 0 _0801E0C0: .4byte 0x000002A5 _0801E0C4: .4byte 0x000002A2 _0801E0C8: .4byte 0x020314E0 _0801E0CC: .4byte 0x0000132C _0801E0D0: ldr r5, _0801E154 @ =0x020314E0 ldr r0, [r5] movs r3, #0x88 lsls r3, r3, #5 adds r0, r0, r3 movs r7, #1 strb r7, [r0] ldr r0, [r5] ldr r6, _0801E158 @ =0x000002A6 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0x41 bne _0801E0F8 movs r0, #0x9f bl m4aSongNumStart ldr r0, _0801E15C @ =gMain ldrh r1, [r0, #0x38] movs r1, #0x9e strh r1, [r0, #0x38] _0801E0F8: ldr r4, [r5] adds r3, r4, r6 ldrh r0, [r3] cmp r0, #0 bne _0801E104 b _0801E780 _0801E104: subs r0, #1 strh r0, [r3] ldr r2, _0801E15C @ =gMain ldrh r0, [r3] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3] cmp r0, #0 beq _0801E11E b _0801E780 _0801E11E: movs r0, #0xa1 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #7 strb r0, [r1] ldr r0, [r5] ldr r1, _0801E160 @ =0x00000282 adds r0, r0, r1 strb r7, [r0] ldr r0, [r5] ldr r2, _0801E164 @ =0x0000072E adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0801E168 @ =0x0000073C adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] ldr r4, _0801E16C @ =0x0000072F adds r1, r0, r4 ldrb r1, [r1] ldr r5, _0801E170 @ =0x0000073D adds r0, r0, r5 strb r1, [r0] bl sub_1C73C b _0801E780 .align 2, 0 _0801E154: .4byte 0x020314E0 _0801E158: .4byte 0x000002A6 _0801E15C: .4byte gMain _0801E160: .4byte 0x00000282 _0801E164: .4byte 0x0000072E _0801E168: .4byte 0x0000073C _0801E16C: .4byte 0x0000072F _0801E170: .4byte 0x0000073D _0801E174: ldr r2, _0801E1A0 @ =0x020314E0 ldr r0, [r2] ldr r1, _0801E1A4 @ =0x000002A5 adds r0, r0, r1 movs r3, #0 movs r1, #0xc strb r1, [r0] ldr r1, [r2] ldr r4, _0801E1A8 @ =0x000002A6 adds r0, r1, r4 movs r4, #0 strh r3, [r0] ldr r5, _0801E1AC @ =0x000002A2 adds r1, r1, r5 movs r0, #6 strb r0, [r1] ldr r0, [r2] ldr r1, _0801E1B0 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] strb r4, [r0, #1] b _0801E780 .align 2, 0 _0801E1A0: .4byte 0x020314E0 _0801E1A4: .4byte 0x000002A5 _0801E1A8: .4byte 0x000002A6 _0801E1AC: .4byte 0x000002A2 _0801E1B0: .4byte 0x0000132C _0801E1B4: ldr r1, _0801E1DC @ =0x086AD862 ldr r4, _0801E1E0 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801E1E4 @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801E1E8 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801E1EC adds r0, r1, #1 strh r0, [r2] b _0801E28A .align 2, 0 _0801E1DC: .4byte 0x086AD862 _0801E1E0: .4byte 0x020314E0 _0801E1E4: .4byte 0x000002A5 _0801E1E8: .4byte 0x000002A6 _0801E1EC: movs r6, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E2E4 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x1f bne _0801E212 strb r6, [r1] ldr r0, [r4] ldr r3, _0801E2E8 @ =0x000002A2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] _0801E212: ldr r2, [r4] adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0801E24E ldr r0, _0801E2EC @ =0x0000132C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #0xa] subs r0, #0x40 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x83 lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xc7 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r1, [r2] ldr r0, _0801E2F0 @ =0x0000FF88 strh r0, [r1, #0x30] ldr r1, [r2] movs r0, #0xd2 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #3 strb r0, [r1, #1] _0801E24E: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _0801E262 movs r0, #0xd3 bl m4aSongNumStart _0801E262: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1b bne _0801E276 movs r0, #0xd4 bl m4aSongNumStart _0801E276: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0801E2CA movs r0, #0xd6 bl m4aSongNumStart _0801E28A: ldr r1, _0801E2F4 @ =0x020314E0 ldr r3, [r1] ldr r2, _0801E2E4 @ =0x000002A5 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0801E2CA ldr r2, _0801E2EC @ =0x0000132C adds r0, r3, r2 ldr r0, [r0] movs r3, #0 strb r3, [r0] ldr r1, [r1] adds r1, r1, r2 ldr r2, [r1] ldrh r0, [r2, #0xa] subs r0, #0x40 strh r0, [r2, #0xa] ldr r2, [r1] movs r0, #0x85 lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r0, #0xc0 lsls r0, r0, #8 str r0, [r2, #0x38] ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] _0801E2CA: ldr r0, _0801E2F4 @ =0x020314E0 ldr r1, [r0] ldr r3, _0801E2E4 @ =0x000002A5 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x16 beq _0801E2DE b _0801E780 _0801E2DE: movs r0, #0 strb r0, [r1, #0x1f] b _0801E780 .align 2, 0 _0801E2E4: .4byte 0x000002A5 _0801E2E8: .4byte 0x000002A2 _0801E2EC: .4byte 0x0000132C _0801E2F0: .4byte 0x0000FF88 _0801E2F4: .4byte 0x020314E0 _0801E2F8: ldr r4, _0801E33C @ =0x020314E0 ldr r0, [r4] ldr r5, _0801E340 @ =0x000002A5 adds r0, r0, r5 movs r2, #0 movs r1, #0x1f strb r1, [r0] ldr r0, [r4] ldr r3, _0801E344 @ =0x000002A6 adds r1, r0, r3 strh r2, [r1] subs r5, #3 adds r0, r0, r5 movs r1, #8 strb r1, [r0] ldr r1, [r4] movs r0, #0xa str r0, [r1, #0x3c] movs r0, #0xb6 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r0, [r4] ldr r2, _0801E348 @ =0x00000724 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 bne _0801E336 b _0801E780 _0801E336: movs r0, #1 strh r0, [r1] b _0801E780 .align 2, 0 _0801E33C: .4byte 0x020314E0 _0801E340: .4byte 0x000002A5 _0801E344: .4byte 0x000002A6 _0801E348: .4byte 0x00000724 _0801E34C: ldr r1, _0801E374 @ =0x086AD862 ldr r4, _0801E378 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801E37C @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801E380 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801E384 adds r0, r1, #1 strh r0, [r2] b _0801E3D4 .align 2, 0 _0801E374: .4byte 0x086AD862 _0801E378: .4byte 0x020314E0 _0801E37C: .4byte 0x000002A5 _0801E380: .4byte 0x000002A6 _0801E384: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E430 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x2e bne _0801E3AA movs r0, #0 strb r0, [r1] ldr r0, [r4] ldr r3, _0801E434 @ =0x000002A2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] _0801E3AA: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x2a bne _0801E3BE movs r0, #0xd4 bl m4aSongNumStart _0801E3BE: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x21 bne _0801E3D4 movs r0, #0xa6 lsls r0, r0, #1 bl m4aSongNumStart _0801E3D4: ldr r6, _0801E438 @ =0x020314E0 ldr r4, [r6] ldr r5, _0801E430 @ =0x000002A5 adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x2d beq _0801E3E8 b _0801E780 _0801E3E8: ldr r3, _0801E43C @ =0x086AD9EC adds r5, #1 adds r2, r4, r5 ldrh r0, [r2] movs r1, #7 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] ldr r3, _0801E440 @ =0x000002AA adds r0, r4, r3 strh r1, [r0] ldrh r0, [r2] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0801E412 ldr r0, _0801E444 @ =0x02032FB0 ldr r1, _0801E448 @ =0x086A0F30 bl MPlayStart _0801E412: ldr r0, [r6] adds r0, r0, r5 ldrh r0, [r0] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0801E426 b _0801E780 _0801E426: movs r0, #0xc bl sub_11B0 b _0801E780 .align 2, 0 _0801E430: .4byte 0x000002A5 _0801E434: .4byte 0x000002A2 _0801E438: .4byte 0x020314E0 _0801E43C: .4byte 0x086AD9EC _0801E440: .4byte 0x000002AA _0801E444: .4byte 0x02032FB0 _0801E448: .4byte 0x086A0F30 _0801E44C: ldr r1, _0801E474 @ =0x086AD862 ldr r4, _0801E478 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801E47C @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801E480 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801E484 _0801E46E: adds r0, r1, #1 strh r0, [r2] b _0801E780 .align 2, 0 _0801E474: .4byte 0x086AD862 _0801E478: .4byte 0x020314E0 _0801E47C: .4byte 0x000002A5 _0801E480: .4byte 0x000002A6 _0801E484: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E4C4 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd bne _0801E4AA movs r0, #0 strb r0, [r1] ldr r0, [r4] ldr r3, _0801E4C8 @ =0x000002A2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] _0801E4AA: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 beq _0801E4BA b _0801E780 _0801E4BA: movs r0, #0xd4 bl m4aSongNumStart b _0801E780 .align 2, 0 _0801E4C4: .4byte 0x000002A5 _0801E4C8: .4byte 0x000002A2 _0801E4CC: ldr r2, _0801E508 @ =0x020314E0 ldr r0, [r2] movs r4, #0xa9 lsls r4, r4, #2 adds r0, r0, r4 movs r3, #0 strb r3, [r0] ldr r0, [r2] ldr r5, _0801E50C @ =0x000002A5 adds r0, r0, r5 strb r3, [r0] ldr r1, [r2] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldr r5, _0801E510 @ =0x0000016F adds r1, r1, r5 movs r0, #1 strb r0, [r1] ldr r0, [r2] movs r1, #0xba lsls r1, r1, #1 adds r2, r0, r1 movs r1, #0x40 strh r1, [r2] ldr r2, _0801E514 @ =0x000002AA adds r0, r0, r2 strh r3, [r0] b _0801E780 .align 2, 0 _0801E508: .4byte 0x020314E0 _0801E50C: .4byte 0x000002A5 _0801E510: .4byte 0x0000016F _0801E514: .4byte 0x000002AA _0801E518: ldr r5, _0801E560 @ =0x0000016F adds r1, r4, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _0801E526 b _0801E780 _0801E526: movs r0, #0xba lsls r0, r0, #1 adds r2, r4, r0 ldrh r0, [r2] cmp r0, #0x8f bhi _0801E56C ldr r1, _0801E564 @ =0x08137968 lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 ldrh r2, [r0] movs r1, #0xb8 lsls r1, r1, #1 adds r0, r4, r1 strb r2, [r0] mov r3, sl ldr r2, [r3] adds r0, r2, r1 ldrb r0, [r0] ldr r4, _0801E568 @ =0x00000171 adds r2, r2, r4 strb r0, [r2] ldr r0, [r3] adds r1, r0, r1 ldrb r1, [r1] adds r5, #3 adds r0, r0, r5 strb r1, [r0] b _0801E56E .align 2, 0 _0801E560: .4byte 0x0000016F _0801E564: .4byte 0x08137968 _0801E568: .4byte 0x00000171 _0801E56C: strb r3, [r1] _0801E56E: mov r0, sl ldr r4, [r0] movs r1, #0xb8 lsls r1, r1, #1 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa beq _0801E584 b _0801E6C4 _0801E584: movs r2, #0xba lsls r2, r2, #1 adds r0, r4, r2 ldrh r1, [r0] movs r0, #7 ands r0, r1 cmp r0, #0 beq _0801E596 b _0801E6C4 _0801E596: lsrs r0, r1, #3 cmp r0, #8 beq _0801E59E b _0801E6C4 _0801E59E: movs r3, #0xaa lsls r3, r3, #2 adds r1, r4, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bls _0801E5BA movs r0, #0x13 ldrsb r0, [r4, r0] cmp r0, #2 ble _0801E5E8 _0801E5BA: ldr r0, _0801E5E4 @ =gMain ldr r5, [r0, #0x4c] adds r0, r5, #0 movs r1, #5 bl __umodsi3 adds r0, #1 lsls r0, r0, #0x10 movs r1, #0xb6 lsls r1, r1, #1 adds r4, r4, r1 movs r1, #0 ldrsb r1, [r4, r1] lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _0801E61C adds r0, r5, #1 movs r1, #5 b _0801E60E .align 2, 0 _0801E5E4: .4byte gMain _0801E5E8: ldr r0, _0801E618 @ =gMain ldr r5, [r0, #0x4c] adds r0, r5, #0 movs r1, #6 bl __umodsi3 adds r0, #1 lsls r0, r0, #0x10 movs r2, #0xb6 lsls r2, r2, #1 adds r4, r4, r2 movs r1, #0 ldrsb r1, [r4, r1] lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _0801E61C adds r0, r5, #1 movs r1, #6 _0801E60E: bl __umodsi3 adds r0, #1 strb r0, [r4] b _0801E61E .align 2, 0 _0801E618: .4byte gMain _0801E61C: strb r2, [r4] _0801E61E: mov r3, sl ldr r0, [r3] movs r4, #0xb1 lsls r4, r4, #1 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0801E640 movs r0, #0 strb r0, [r1] ldr r0, [r3] movs r5, #0xb6 lsls r5, r5, #1 adds r0, r0, r5 movs r1, #6 strb r1, [r0] _0801E640: mov r0, sl ldr r1, [r0] movs r4, #0xb6 lsls r4, r4, #1 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0801E68E movs r2, #0xa9 lsls r2, r2, #2 adds r1, r1, r2 movs r3, #0 movs r0, #1 strb r0, [r1] mov r5, sl ldr r0, [r5] ldr r1, _0801E700 @ =0x000002A2 adds r0, r0, r1 strb r3, [r0] ldr r0, [r5] adds r2, #2 adds r1, r0, r2 movs r2, #0 strh r3, [r1] ldr r5, _0801E704 @ =0x000002A5 adds r0, r0, r5 strb r2, [r0] mov r1, sl ldr r0, [r1] ldr r5, _0801E708 @ =0x0000016F adds r0, r0, r5 strb r2, [r0] ldr r0, [r1] movs r1, #0xaa lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] _0801E68E: mov r2, sl ldr r3, [r2] adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _0801E6C4 ldr r2, _0801E70C @ =0x086AD9DC movs r4, #0 ldrsh r1, [r2, r4] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r5, #0xbc lsls r5, r5, #1 adds r1, r3, r5 strh r0, [r1] movs r0, #2 ldrsh r1, [r2, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xbd lsls r2, r2, #1 adds r1, r3, r2 strh r0, [r1] _0801E6C4: ldr r5, _0801E710 @ =0x020314E0 ldr r1, [r5] movs r4, #0xba lsls r4, r4, #1 adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bne _0801E6E2 movs r0, #0xc9 bl m4aSongNumStart _0801E6E2: ldr r1, [r5] movs r3, #0xb6 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0801E742 cmp r0, #4 ble _0801E714 cmp r0, #5 beq _0801E772 b _0801E780 .align 2, 0 _0801E700: .4byte 0x000002A2 _0801E704: .4byte 0x000002A5 _0801E708: .4byte 0x0000016F _0801E70C: .4byte 0x086AD9DC _0801E710: .4byte 0x020314E0 _0801E714: cmp r0, #0 blt _0801E780 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x66 bne _0801E726 movs r0, #0xc8 bl m4aSongNumStart _0801E726: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x74 bne _0801E736 movs r0, #0xc8 bl m4aSongNumStart _0801E736: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x82 bne _0801E780 b _0801E76A _0801E742: adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x66 bne _0801E750 movs r0, #0xc8 bl m4aSongNumStart _0801E750: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x76 bne _0801E760 movs r0, #0xc8 bl m4aSongNumStart _0801E760: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x86 bne _0801E780 _0801E76A: movs r0, #0xc8 bl m4aSongNumStart b _0801E780 _0801E772: adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x68 bne _0801E780 movs r0, #0xc8 bl m4aSongNumStart _0801E780: ldr r1, _0801E7A4 @ =0x020314E0 ldr r0, [r1] movs r4, #0xb6 lsls r4, r4, #1 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r1 cmp r0, #6 bls _0801E798 b _0801EC32 _0801E798: lsls r0, r0, #2 ldr r1, _0801E7A8 @ =_0801E7AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801E7A4: .4byte 0x020314E0 _0801E7A8: .4byte _0801E7AC _0801E7AC: @ jump table .4byte _0801E7C8 @ case 0 .4byte _0801E814 @ case 1 .4byte _0801E8D0 @ case 2 .4byte _0801E998 @ case 3 .4byte _0801EA50 @ case 4 .4byte _0801EB00 @ case 5 .4byte _0801EC00 @ case 6 _0801E7C8: mov r5, sl ldr r2, [r5] movs r0, #0xbc lsls r0, r0, #1 adds r1, r2, r0 ldr r0, _0801E80C @ =0x000004E2 strh r0, [r1] movs r3, #0xbd lsls r3, r3, #1 adds r1, r2, r3 adds r0, #0x14 strh r0, [r1] movs r4, #0xc0 lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r1] movs r5, #0xc1 lsls r5, r5, #1 adds r1, r2, r5 subs r0, #0xf0 strh r0, [r1] movs r0, #0xbe lsls r0, r0, #1 adds r1, r2, r0 ldr r0, _0801E810 @ =0x0000055A strh r0, [r1] adds r3, #4 adds r1, r2, r3 adds r0, #0xf0 strh r0, [r1] b _0801EC32 .align 2, 0 _0801E80C: .4byte 0x000004E2 _0801E810: .4byte 0x0000055A _0801E814: movs r6, #0 ldr r4, _0801E8C0 @ =0x020314E0 mov sb, r4 movs r5, #0xc8 lsls r5, r5, #1 mov r8, r5 ldr r0, _0801E8C4 @ =0x00004E20 mov sl, r0 _0801E824: mov r1, sb ldr r4, [r1] movs r2, #0xa4 lsls r2, r2, #2 adds r0, r4, r2 ldr r0, [r0] movs r3, #0x7f ands r3, r0 lsls r3, r3, #9 lsls r1, r6, #0x10 asrs r7, r1, #0x10 lsls r6, r7, #2 adds r1, r6, r7 lsls r2, r1, #4 adds r1, r1, r2 lsls r2, r1, #8 adds r1, r1, r2 adds r3, r3, r1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 movs r1, #0x3c bl __umodsi3 subs r0, #0x1e lsls r0, r0, #0x10 mov r3, r8 adds r1, r4, r3 movs r0, #0xb4 strh r0, [r1] adds r0, r5, #0 bl sub_C74 mov r4, sb ldr r1, [r4] adds r4, r1, r6 add r1, r8 movs r2, #0 ldrsh r1, [r1, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r3, _0801E8C8 @ =0x00000564 adds r0, r0, r3 movs r1, #0xbc lsls r1, r1, #1 adds r4, r4, r1 strh r0, [r4] adds r0, r5, #0 bl sub_C24 mov r2, sb ldr r1, [r2] adds r4, r1, r6 add r1, r8 movs r3, #0 ldrsh r1, [r1, r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r5, _0801E8CC @ =0x000005DC adds r0, r0, r5 movs r2, #0xbd lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0801E824 b _0801EC32 .align 2, 0 _0801E8C0: .4byte 0x020314E0 _0801E8C4: .4byte 0x00004E20 _0801E8C8: .4byte 0x00000564 _0801E8CC: .4byte 0x000005DC _0801E8D0: movs r6, #0 ldr r3, _0801E984 @ =0x020314E0 mov sb, r3 movs r4, #0xc8 lsls r4, r4, #1 mov r8, r4 ldr r5, _0801E988 @ =0x00004E20 mov sl, r5 _0801E8E0: mov r0, sb ldr r4, [r0] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] movs r3, #0x7f ands r3, r0 lsls r3, r3, #9 lsls r1, r6, #0x10 asrs r7, r1, #0x10 lsls r6, r7, #2 adds r1, r6, r7 lsls r2, r1, #4 adds r1, r1, r2 lsls r2, r1, #8 adds r1, r1, r2 adds r3, r3, r1 ldr r2, _0801E98C @ =0x00002710 adds r1, r2, #0 subs r1, r1, r3 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 movs r1, #0x3c bl __umodsi3 subs r0, #0x1e lsls r0, r0, #0x10 mov r3, r8 adds r1, r4, r3 movs r0, #0xb4 strh r0, [r1] adds r0, r5, #0 bl sub_C74 mov r4, sb ldr r1, [r4] adds r4, r1, r6 add r1, r8 movs r2, #0 ldrsh r1, [r1, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r3, _0801E990 @ =0x00000564 adds r0, r0, r3 movs r1, #0xbc lsls r1, r1, #1 adds r4, r4, r1 strh r0, [r4] adds r0, r5, #0 bl sub_C24 mov r2, sb ldr r1, [r2] adds r4, r1, r6 add r1, r8 movs r3, #0 ldrsh r1, [r1, r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r5, _0801E994 @ =0x000005DC adds r0, r0, r5 movs r2, #0xbd lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0801E8E0 b _0801EC32 .align 2, 0 _0801E984: .4byte 0x020314E0 _0801E988: .4byte 0x00004E20 _0801E98C: .4byte 0x00002710 _0801E990: .4byte 0x00000564 _0801E994: .4byte 0x000005DC _0801E998: movs r6, #0 _0801E99A: mov r3, sl ldr r5, [r3] movs r4, #0xa4 lsls r4, r4, #2 adds r0, r5, r4 ldr r0, [r0] movs r1, #0x2e bl __umodsi3 movs r7, #0x17 subs r0, r7, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _0801E9C0 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _0801E9C0: lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r2, r1, #1 lsls r0, r2, #2 adds r3, r5, r0 lsls r0, r1, #5 adds r0, r0, r1 adds r0, #0x79 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r5, #0xbc lsls r5, r5, #1 adds r0, r3, r5 strh r1, [r0] lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 ldr r0, _0801EA44 @ =0x0000053C adds r1, r1, r0 movs r4, #0xbd lsls r4, r4, #1 adds r3, r3, r4 strh r1, [r3] lsls r2, r2, #0x10 lsrs r6, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0801E99A mov r0, sl ldr r5, [r0] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r5, r1 ldr r0, [r0] adds r0, #0x17 movs r1, #0x2e bl __umodsi3 subs r0, r7, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _0801EA22 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _0801EA22: movs r2, #0xbc lsls r2, r2, #1 adds r1, r5, r2 ldr r0, _0801EA48 @ =0x0000055A strh r0, [r1] lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 ldr r3, _0801EA4C @ =0x00000654 adds r1, r1, r3 movs r4, #0xbd lsls r4, r4, #1 adds r2, r5, r4 strh r1, [r2] b _0801EC32 .align 2, 0 _0801EA44: .4byte 0x0000053C _0801EA48: .4byte 0x0000055A _0801EA4C: .4byte 0x00000654 _0801EA50: mov r5, sl ldr r6, [r5] movs r0, #0xbc lsls r0, r0, #1 adds r1, r6, r0 ldr r0, _0801EAE8 @ =0x000004BA strh r0, [r1] ldr r5, _0801EAEC @ =0x0813798C movs r1, #0xa4 lsls r1, r1, #2 adds r4, r6, r1 ldr r0, [r4] movs r1, #0x3c bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldr r2, _0801EAF0 @ =0x00000514 adds r1, r2, #0 ldrh r0, [r0] adds r1, r1, r0 movs r3, #0xbd lsls r3, r3, #1 adds r0, r6, r3 strh r1, [r0] movs r0, #0xbe lsls r0, r0, #1 adds r1, r6, r0 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r1] ldr r0, [r4] adds r0, #0x14 movs r1, #0x3c bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldr r2, _0801EAF4 @ =0x00000582 adds r1, r2, #0 ldrh r0, [r0] adds r1, r1, r0 movs r3, #0xbf lsls r3, r3, #1 adds r0, r6, r3 strh r1, [r0] movs r0, #0xc0 lsls r0, r0, #1 adds r1, r6, r0 ldr r0, _0801EAF8 @ =0x0000055A strh r0, [r1] ldr r0, [r4] adds r0, #0x28 movs r1, #0x3c bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldr r2, _0801EAFC @ =0x0000067C adds r1, r2, #0 ldrh r0, [r0] adds r1, r1, r0 movs r3, #0xc1 lsls r3, r3, #1 adds r0, r6, r3 b _0801EC30 .align 2, 0 _0801EAE8: .4byte 0x000004BA _0801EAEC: .4byte 0x0813798C _0801EAF0: .4byte 0x00000514 _0801EAF4: .4byte 0x00000582 _0801EAF8: .4byte 0x0000055A _0801EAFC: .4byte 0x0000067C _0801EB00: ldr r0, _0801EBF0 @ =0x086AD9DC mov r4, sl ldr r3, [r4] movs r5, #0xb7 lsls r5, r5, #1 adds r1, r3, r5 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #2 adds r2, r2, r0 movs r0, #0 ldrsh r1, [r2, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 adds r5, #0xa adds r1, r3, r5 movs r4, #0 ldrsh r1, [r1, r4] subs r1, r0, r1 str r1, [sp] movs r0, #2 ldrsh r1, [r2, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r1, #0xbd lsls r1, r1, #1 mov sb, r1 add r3, sb movs r2, #0 ldrsh r1, [r3, r2] subs r1, r0, r1 str r1, [sp, #4] ldr r4, [sp] adds r3, r4, #0 muls r3, r4, r3 mov r8, r3 adds r0, r1, #0 muls r0, r1, r0 add r8, r0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r6, _0801EBF4 @ =0x00004E20 adds r0, r1, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp, #8] adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r6, #0 bl __divsi3 str r0, [sp, #0xc] mov r0, sl ldr r1, [r0] adds r5, r1, r5 ldrh r0, [r5] ldr r2, [sp, #8] adds r0, r2, r0 movs r4, #0 strh r0, [r5] add r1, sb ldrh r0, [r1] ldr r3, [sp, #0xc] adds r0, r3, r0 strh r0, [r1] ldr r0, _0801EBF8 @ =0x000009C3 cmp r8, r0 bgt _0801EBCA bl sub_C00 mov r5, sl ldr r2, [r5] movs r1, #3 ands r1, r0 movs r3, #0xb7 lsls r3, r3, #1 adds r0, r2, r3 strb r1, [r0] _0801EBCA: mov r5, sl ldr r2, [r5] movs r1, #0xbe lsls r1, r1, #1 adds r0, r2, r1 strh r4, [r0] movs r3, #0xbf lsls r3, r3, #1 adds r0, r2, r3 ldr r1, _0801EBFC @ =0x0000FED4 strh r1, [r0] movs r5, #0xc0 lsls r5, r5, #1 adds r0, r2, r5 strh r4, [r0] adds r3, #4 adds r0, r2, r3 b _0801EC30 .align 2, 0 _0801EBF0: .4byte 0x086AD9DC _0801EBF4: .4byte 0x00004E20 _0801EBF8: .4byte 0x000009C3 _0801EBFC: .4byte 0x0000FED4 _0801EC00: mov r4, sl ldr r3, [r4] movs r5, #0xbc lsls r5, r5, #1 adds r0, r3, r5 movs r2, #0 strh r2, [r0] movs r1, #0xbd lsls r1, r1, #1 adds r0, r3, r1 ldr r1, _0801EC44 @ =0x0000FED4 strh r1, [r0] movs r4, #0xbe lsls r4, r4, #1 adds r0, r3, r4 strh r2, [r0] adds r5, #6 adds r0, r3, r5 strh r1, [r0] adds r4, #4 adds r0, r3, r4 strh r2, [r0] adds r5, #4 adds r0, r3, r5 _0801EC30: strh r1, [r0] _0801EC32: add sp, #0x10 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 _0801EC44: .4byte 0x0000FED4 thumb_func_start sub_1EC48 sub_1EC48: @ 0x0801EC48 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _0801ECAC @ =0x020314E0 ldr r3, [r1] ldr r2, _0801ECB0 @ =0x00000624 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0801EC66 b _0801EE4A _0801EC66: cmp r0, #2 beq _0801EC6C b _0801EE3C _0801EC6C: movs r0, #0xfa lsls r0, r0, #1 str r0, [r3, #0x3c] movs r0, #0xb6 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r3, _0801ECAC @ =0x020314E0 ldr r1, [r3] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 beq _0801EC8C b _0801EE1E _0801EC8C: movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #5 beq _0801EC96 b _0801EE1E _0801EC96: ldr r5, _0801ECB4 @ =0x00000625 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 ble _0801ECA4 b _0801EE1E _0801ECA4: cmp r0, #0 bne _0801ECB8 movs r0, #1 b _0801ECC2 .align 2, 0 _0801ECAC: .4byte 0x020314E0 _0801ECB0: .4byte 0x00000624 _0801ECB4: .4byte 0x00000625 _0801ECB8: cmp r0, #1 bne _0801ECC0 movs r0, #3 b _0801ECC2 _0801ECC0: movs r0, #6 _0801ECC2: strb r0, [r1] ldr r6, _0801ED70 @ =0x020314E0 ldr r5, [r6] ldr r1, _0801ED74 @ =0x00000625 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r0 cmp r0, #6 beq _0801ECDA b _0801EE1E _0801ECDA: ldr r2, _0801ED78 @ =0x000006C6 adds r0, r5, r2 movs r7, #0 ldrsb r7, [r0, r7] cmp r7, #0 beq _0801ECE8 b _0801EE1E _0801ECE8: movs r3, #0xb6 lsls r3, r3, #1 adds r0, r5, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r0 cmp r0, #4 bne _0801ED98 ldr r2, _0801ED7C @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r5, #0 adds r0, #0xea movs r4, #0 movs r3, #0x32 strh r3, [r0] adds r1, r5, #0 adds r1, #0xec movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] subs r1, #4 movs r0, #0xec strh r0, [r1] adds r0, r5, #0 adds r0, #0xe6 strh r7, [r0] adds r0, #8 mov r1, r8 strh r1, [r0] adds r0, #4 mov r5, sb strb r5, [r0] ldr r0, [r6] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r6] adds r0, #0xfb strb r4, [r0] ldr r4, [r6] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _0801ED80 @ =0x0000F63C strh r0, [r1] adds r0, r4, #0 adds r0, #0xf0 strh r3, [r0] adds r0, #8 strh r7, [r0] ldr r1, _0801ED84 @ =0x040000D4 ldr r0, _0801ED88 @ =0x086ACEF8 ldr r0, [r0, #0x18] str r0, [r1] ldr r0, _0801ED8C @ =0x06015800 str r0, [r1, #4] ldr r0, _0801ED90 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801ED94 @ =0x086ACF18 ldr r0, [r0, #0x18] b _0801EE0C .align 2, 0 _0801ED70: .4byte 0x020314E0 _0801ED74: .4byte 0x00000625 _0801ED78: .4byte 0x000006C6 _0801ED7C: .4byte gMain _0801ED80: .4byte 0x0000F63C _0801ED84: .4byte 0x040000D4 _0801ED88: .4byte 0x086ACEF8 _0801ED8C: .4byte 0x06015800 _0801ED90: .4byte 0x80001200 _0801ED94: .4byte 0x086ACF18 _0801ED98: ldr r2, _0801EEA8 @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r5, #0 adds r0, #0xea movs r4, #0 movs r3, #0x32 strh r3, [r0] adds r1, r5, #0 adds r1, #0xec movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] subs r1, #4 movs r0, #0xec strh r0, [r1] adds r0, r5, #0 adds r0, #0xe6 strh r7, [r0] adds r1, #6 movs r0, #4 strh r0, [r1] adds r0, r5, #0 adds r0, #0xf2 movs r1, #1 strb r1, [r0] ldr r0, [r6] adds r0, #0xfa strb r1, [r0] ldr r0, [r6] adds r0, #0xfb strb r4, [r0] ldr r4, [r6] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _0801EEAC @ =0x0000F63C strh r0, [r1] adds r0, r4, #0 adds r0, #0xf0 strh r3, [r0] adds r0, #8 strh r7, [r0] ldr r1, _0801EEB0 @ =0x040000D4 ldr r0, _0801EEB4 @ =0x086ACEF8 ldr r0, [r0, #4] str r0, [r1] ldr r0, _0801EEB8 @ =0x06015800 str r0, [r1, #4] ldr r0, _0801EEBC @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801EEC0 @ =0x086ACF18 ldr r0, [r0, #4] _0801EE0C: str r0, [r1] ldr r0, _0801EEC4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0801EEC8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _0801EE1E: ldr r2, _0801EECC @ =0x020314E0 ldr r0, [r2] movs r6, #0xbb lsls r6, r6, #1 adds r1, r0, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r2] movs r0, #0xc2 lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0801EE3C: ldr r2, _0801EECC @ =0x020314E0 ldr r1, [r2] ldr r3, _0801EED0 @ =0x00000624 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801EE4A: ldr r5, _0801EED4 @ =0x0200E048 mov sl, r5 ldr r6, _0801EECC @ =0x020314E0 ldr r0, [r6] movs r1, #0xb6 lsls r1, r1, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801EF4C movs r6, #0 ldr r2, _0801EED8 @ =0x0844928C mov sb, r2 ldr r3, _0801EECC @ =0x020314E0 mov r8, r3 movs r7, #0xb8 lsls r7, r7, #1 ldr r5, _0801EEB0 @ =0x040000D4 _0801EE72: mov r0, r8 ldr r3, [r0] lsls r0, r6, #0x10 asrs r4, r0, #0x10 adds r0, r3, r7 adds r2, r0, r4 ldrb r0, [r2] movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #0 beq _0801EEE2 cmp r1, #0x64 ble _0801EEDC subs r0, #1 movs r3, #0 strb r0, [r2] mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x64 bne _0801EEA4 strb r3, [r1] _0801EEA4: movs r1, #8 b _0801EEFA .align 2, 0 _0801EEA8: .4byte gMain _0801EEAC: .4byte 0x0000F63C _0801EEB0: .4byte 0x040000D4 _0801EEB4: .4byte 0x086ACEF8 _0801EEB8: .4byte 0x06015800 _0801EEBC: .4byte 0x80001200 _0801EEC0: .4byte 0x086ACF18 _0801EEC4: .4byte 0x050003C0 _0801EEC8: .4byte 0x80000010 _0801EECC: .4byte 0x020314E0 _0801EED0: .4byte 0x00000624 _0801EED4: .4byte 0x0200E048 _0801EED8: .4byte 0x0844928C _0801EEDC: movs r0, #0 ldrsb r0, [r2, r0] b _0801EEF6 _0801EEE2: movs r2, #0xa4 lsls r2, r2, #2 adds r0, r3, r2 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 _0801EEF6: lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0801EEFA: lsls r0, r1, #0x10 asrs r0, r0, #8 add r0, sb str r0, [r5] lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #8 ldr r3, _0801EF38 @ =0x06012E80 adds r0, r0, r3 str r0, [r5, #4] ldr r0, _0801EF3C @ =0x80000080 str r0, [r5, #8] ldr r0, [r5, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _0801EE72 ldr r2, _0801EF40 @ =0x040000D4 ldr r5, _0801EF44 @ =0x020314E0 ldr r0, [r5] adds r0, #0x6f movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldr r6, _0801EF48 @ =0x081379B8 b _0801F006 .align 2, 0 _0801EF38: .4byte 0x06012E80 _0801EF3C: .4byte 0x80000080 _0801EF40: .4byte 0x040000D4 _0801EF44: .4byte 0x020314E0 _0801EF48: .4byte 0x081379B8 _0801EF4C: movs r6, #0 movs r0, #0xb8 lsls r0, r0, #1 mov sb, r0 ldr r1, _0801EFA0 @ =0x040000D4 mov r8, r1 _0801EF58: ldr r2, _0801EFA4 @ =0x020314E0 ldr r1, [r2] lsls r0, r6, #0x10 asrs r5, r0, #0x10 mov r3, sb adds r0, r1, r3 adds r4, r0, r5 ldrb r7, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _0801EFAE cmp r0, #0x64 ble _0801EFA8 movs r1, #0x69 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #9 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 subs r0, r7, #1 movs r3, #0 strb r0, [r4] ldr r2, _0801EFA4 @ =0x020314E0 ldr r0, [r2] add r0, sb adds r2, r0, r5 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x64 bne _0801EFC6 strb r3, [r2] b _0801EFC6 .align 2, 0 _0801EFA0: .4byte 0x040000D4 _0801EFA4: .4byte 0x020314E0 _0801EFA8: movs r0, #0 ldrsb r0, [r4, r0] b _0801EFC2 _0801EFAE: movs r3, #0xa4 lsls r3, r3, #2 adds r0, r1, r3 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 _0801EFC2: lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0801EFC6: lsls r0, r1, #0x10 asrs r0, r0, #8 ldr r5, _0801F128 @ =0x083C806C adds r0, r0, r5 mov r1, r8 str r0, [r1] lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #8 ldr r2, _0801F12C @ =0x06012E80 adds r0, r0, r2 mov r3, r8 str r0, [r3, #4] ldr r0, _0801F130 @ =0x80000080 str r0, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _0801EF58 ldr r2, _0801F134 @ =0x040000D4 ldr r5, _0801F138 @ =0x020314E0 ldr r0, [r5] adds r0, #0x6f movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldr r6, _0801F13C @ =0x08137998 _0801F006: adds r0, r0, r6 str r0, [r2] ldr r0, _0801F140 @ =0x05000320 str r0, [r2, #4] ldr r0, _0801F144 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r6, #0 _0801F016: ldr r0, _0801F138 @ =0x020314E0 ldr r4, [r0] lsls r6, r6, #0x10 asrs r1, r6, #0x10 mov sb, r1 lsls r0, r1, #2 adds r7, r4, r0 movs r2, #0xbc lsls r2, r2, #1 adds r5, r7, r2 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 mov r1, sl strh r0, [r1, #2] movs r2, #0xbd lsls r2, r2, #1 adds r2, r2, r7 mov r8, r2 movs r3, #0 ldrsh r0, [r2, r3] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 subs r0, #4 mov r1, sl strh r0, [r1, #4] movs r2, #0 ldrsh r0, [r5, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #8 lsls r0, r0, #1 movs r3, #0xc2 lsls r3, r3, #1 adds r1, r7, r3 strh r0, [r1] mov r5, r8 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #7 lsls r0, r0, #1 movs r2, #0xc3 lsls r2, r2, #1 adds r1, r7, r2 strh r0, [r1] mov r3, sl movs r5, #4 ldrsh r1, [r3, r5] movs r0, #0x28 rsbs r0, r0, #0 mov r8, r6 cmp r1, r0 bge _0801F0AE ldr r0, _0801F148 @ =0x0000FFD8 strh r0, [r3, #4] _0801F0AE: movs r0, #0 mov r6, sb lsls r6, r6, #1 mov ip, r6 ldr r7, _0801F14C @ =0x03005000 ldr r1, _0801F150 @ =0xFFFFFE00 mov sb, r1 _0801F0BC: lsls r4, r0, #0x10 asrs r4, r4, #0x10 mov r3, ip adds r2, r4, r3 lsls r2, r2, #3 adds r2, #8 add r2, sl ldrh r3, [r2] lsls r3, r3, #3 adds r3, r3, r7 movs r5, #2 ldrsh r1, [r2, r5] mov r6, sl movs r5, #2 ldrsh r0, [r6, r5] adds r1, r1, r0 ldr r6, _0801F154 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r5, [r3, #2] mov r0, sb ands r0, r5 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r2] lsls r1, r1, #3 adds r1, r1, r7 mov r3, sl ldrb r0, [r3, #4] ldrb r2, [r2, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0801F0BC movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _0801F118 b _0801F016 _0801F118: 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 _0801F128: .4byte 0x083C806C _0801F12C: .4byte 0x06012E80 _0801F130: .4byte 0x80000080 _0801F134: .4byte 0x040000D4 _0801F138: .4byte 0x020314E0 _0801F13C: .4byte 0x08137998 _0801F140: .4byte 0x05000320 _0801F144: .4byte 0x80000010 _0801F148: .4byte 0x0000FFD8 _0801F14C: .4byte 0x03005000 _0801F150: .4byte 0xFFFFFE00 _0801F154: .4byte 0x000001FF thumb_func_start sub_1F158 sub_1F158: @ 0x0801F158 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0801F270 @ =gMain ldr r0, [r4, #0x4c] movs r1, #0x37 bl __umodsi3 movs r1, #0xb bl __udivsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0801F274 @ =0x00002ED0 adds r7, r4, r0 ldr r2, _0801F278 @ =0x040000D4 ldr r6, _0801F27C @ =0x020314E0 ldr r3, [r6] ldr r0, _0801F280 @ =0x000002F5 adds r4, r3, r0 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 lsls r0, r0, #5 ldr r1, _0801F284 @ =0x084F5ACC adds r0, r0, r1 str r0, [r2] ldr r0, _0801F288 @ =0x06012C20 str r0, [r2, #4] ldr r0, _0801F28C @ =0x80000130 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xbd lsls r2, r2, #2 adds r3, r3, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0801F1B4 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 _0801F1B4: ldr r2, _0801F290 @ =0x086AD9FC lsls r0, r5, #0x10 asrs r0, r0, #0xe adds r1, r0, r2 ldrh r3, [r1] adds r2, #2 adds r0, r0, r2 ldrh r0, [r0] strb r0, [r4] ldr r1, [r6] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0xb3 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0xae subs r0, r0, r1 strh r0, [r7, #4] movs r1, #0 ldr r5, _0801F294 @ =0x086B3A04 mov sb, r5 ldr r6, _0801F298 @ =0x03005000 lsls r3, r3, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, r0, r3 lsls r0, r0, #1 mov ip, r0 ldr r0, _0801F29C @ =0xFFFFFE00 mov r8, r0 _0801F1F6: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r5, [r2, #2] mov sl, r5 mov r0, sl lsls r1, r0, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r5, _0801F2A0 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 mov r5, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0801F1F6 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 _0801F270: .4byte gMain _0801F274: .4byte 0x00002ED0 _0801F278: .4byte 0x040000D4 _0801F27C: .4byte 0x020314E0 _0801F280: .4byte 0x000002F5 _0801F284: .4byte 0x084F5ACC _0801F288: .4byte 0x06012C20 _0801F28C: .4byte 0x80000130 _0801F290: .4byte 0x086AD9FC _0801F294: .4byte 0x086B3A04 _0801F298: .4byte 0x03005000 _0801F29C: .4byte 0xFFFFFE00 _0801F2A0: .4byte 0x000001FF thumb_func_start sub_1F2A4 sub_1F2A4: @ 0x0801F2A4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r5, _0801F3E8 @ =0x020314E0 ldr r4, [r5] movs r1, #0xe3 lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0xe4 lsls r2, r2, #1 mov sb, r2 adds r2, r4, r2 movs r3, #0 ldrsh r1, [r0, r3] ldrh r3, [r2] movs r6, #0 ldrsh r0, [r2, r6] cmp r1, r0 beq _0801F39A adds r0, r3, #2 strh r0, [r2] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xe bl __divsi3 movs r6, #0xe5 lsls r6, r6, #1 adds r2, r4, r6 strh r0, [r2] movs r3, #0xe8 lsls r3, r3, #1 mov r8, r3 adds r1, r4, r3 movs r0, #0x50 strh r0, [r1] movs r0, #0xec lsls r0, r0, #1 mov ip, r0 adds r0, r4, r0 subs r3, #0xd0 strh r3, [r0] movs r7, #0xed lsls r7, r7, #1 adds r0, r4, r7 strh r3, [r0] movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xb bne _0801F314 movs r2, #0xe7 lsls r2, r2, #1 adds r1, r4, r2 movs r0, #0x78 strh r0, [r1] _0801F314: ldr r2, [r5] adds r1, r2, r6 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0xb ble _0801F336 movs r0, #0xc strh r0, [r1] mov r6, r8 adds r1, r2, r6 movs r0, #0x78 strh r0, [r1] mov r1, ip adds r0, r2, r1 strh r3, [r0] adds r0, r2, r7 strh r3, [r0] _0801F336: ldr r0, [r5] mov r3, sb adds r2, r0, r3 movs r4, #0 ldrsh r0, [r2, r4] cmp r0, #0xa7 bgt _0801F368 ldrh r0, [r2] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0801F368 movs r5, #0 ldrsh r0, [r2, r5] movs r1, #0x15 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #8 movs r6, #0xa8 lsls r6, r6, #0x10 adds r0, r0, r6 lsrs r0, r0, #0x10 bl m4aSongNumStart _0801F368: ldr r4, _0801F3E8 @ =0x020314E0 ldr r1, [r4] movs r2, #0xe3 lsls r2, r2, #1 adds r0, r1, r2 movs r3, #0xe4 lsls r3, r3, #1 adds r2, r1, r3 ldrh r3, [r0] movs r5, #0 ldrsh r1, [r0, r5] movs r6, #0 ldrsh r0, [r2, r6] cmp r1, r0 bgt _0801F39A strh r3, [r2] cmp r1, #0xa7 ble _0801F39A ldr r0, _0801F3EC @ =0x02032F20 ldr r1, _0801F3F0 @ =0x0869F2A0 bl MPlayStart ldr r1, [r4] ldr r0, _0801F3F4 @ =0x00000BB8 str r0, [r1, #0x3c] _0801F39A: ldr r5, _0801F3E8 @ =0x020314E0 ldr r0, [r5] ldr r2, _0801F3F8 @ =0x00000616 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _0801F3AC subs r0, #1 strh r0, [r1] _0801F3AC: ldr r4, [r5] ldr r3, _0801F3FC @ =0x00000614 adds r2, r4, r3 ldrh r0, [r2] movs r6, #0 ldrsh r1, [r2, r6] cmp r1, #0 ble _0801F478 subs r0, #3 movs r3, #0 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bge _0801F3CA strh r3, [r2] _0801F3CA: ldr r0, [r5] movs r2, #0xc3 lsls r2, r2, #3 adds r1, r0, r2 ldrh r2, [r1] ldr r4, _0801F400 @ =0x0000061A adds r0, r0, r4 movs r6, #0 ldrsh r0, [r0, r6] subs r0, #1 cmp r2, r0 bge _0801F404 adds r0, r2, #1 strh r0, [r1] b _0801F44E .align 2, 0 _0801F3E8: .4byte 0x020314E0 _0801F3EC: .4byte 0x02032F20 _0801F3F0: .4byte 0x0869F2A0 _0801F3F4: .4byte 0x00000BB8 _0801F3F8: .4byte 0x00000616 _0801F3FC: .4byte 0x00000614 _0801F400: .4byte 0x0000061A _0801F404: strh r3, [r1] ldr r0, _0801F464 @ =0x02032FB0 ldr r1, _0801F468 @ =0x0869F240 bl MPlayStart ldr r2, [r5] movs r0, #0x64 str r0, [r2, #0x3c] movs r1, #0xe5 lsls r1, r1, #1 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xb bgt _0801F44E ldr r4, _0801F46C @ =0x0000061C adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801F44E movs r5, #0xe8 lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x50 strh r0, [r1] movs r6, #0xec lsls r6, r6, #1 adds r0, r2, r6 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] movs r3, #0xed lsls r3, r3, #1 adds r0, r2, r3 strh r1, [r0] _0801F44E: ldr r5, _0801F470 @ =0x020314E0 ldr r4, [r5] ldr r6, _0801F474 @ =0x00000614 adds r0, r4, r6 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #0xe1 lsls r0, r0, #1 subs r0, r0, r1 b _0801F508 .align 2, 0 _0801F464: .4byte 0x02032FB0 _0801F468: .4byte 0x0869F240 _0801F46C: .4byte 0x0000061C _0801F470: .4byte 0x020314E0 _0801F474: .4byte 0x00000614 _0801F478: cmp r1, #0 bge _0801F55C adds r0, #3 movs r3, #0 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 ble _0801F48A strh r3, [r2] _0801F48A: ldr r0, [r5] movs r2, #0xc3 lsls r2, r2, #3 adds r1, r0, r2 ldrh r2, [r1] ldr r4, _0801F4A8 @ =0x0000061A adds r0, r0, r4 movs r6, #0 ldrsh r0, [r0, r6] subs r0, #1 cmp r2, r0 bge _0801F4AC adds r0, r2, #1 strh r0, [r1] b _0801F4F6 .align 2, 0 _0801F4A8: .4byte 0x0000061A _0801F4AC: strh r3, [r1] ldr r0, _0801F540 @ =0x02032FB0 ldr r1, _0801F544 @ =0x0869F240 bl MPlayStart ldr r2, [r5] movs r0, #0x64 str r0, [r2, #0x3c] movs r1, #0xe5 lsls r1, r1, #1 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xb bgt _0801F4F6 ldr r4, _0801F548 @ =0x0000061C adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801F4F6 movs r5, #0xe8 lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x50 strh r0, [r1] movs r6, #0xec lsls r6, r6, #1 adds r0, r2, r6 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] movs r3, #0xed lsls r3, r3, #1 adds r0, r2, r3 strh r1, [r0] _0801F4F6: ldr r5, _0801F54C @ =0x020314E0 ldr r4, [r5] ldr r6, _0801F550 @ =0x00000614 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0xe1 lsls r2, r2, #1 adds r0, r0, r2 _0801F508: movs r1, #0xa bl __divsi3 ldr r1, _0801F554 @ =0x0000061A adds r4, r4, r1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _0801F520 movs r0, #5 strh r0, [r4] _0801F520: ldr r4, [r5] movs r3, #0xc3 lsls r3, r3, #3 adds r0, r4, r3 ldrh r0, [r0] lsls r0, r0, #4 adds r1, r4, r1 movs r5, #0 ldrsh r1, [r1, r5] bl __divsi3 ldr r6, _0801F558 @ =0x000001E5 adds r1, r4, r6 strb r0, [r1] b _0801F58A .align 2, 0 _0801F540: .4byte 0x02032FB0 _0801F544: .4byte 0x0869F240 _0801F548: .4byte 0x0000061C _0801F54C: .4byte 0x020314E0 _0801F550: .4byte 0x00000614 _0801F554: .4byte 0x0000061A _0801F558: .4byte 0x000001E5 _0801F55C: ldr r0, _0801F598 @ =0x000001E5 adds r5, r4, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 ble _0801F58A movs r1, #0xc3 lsls r1, r1, #3 adds r4, r4, r1 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldrh r0, [r4] movs r1, #0x28 bl __umodsi3 strh r0, [r4] ldrh r0, [r4] lsls r0, r0, #4 movs r1, #0x28 bl __divsi3 strb r0, [r5] _0801F58A: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801F598: .4byte 0x000001E5 thumb_func_start sub_1F59C sub_1F59C: @ 0x0801F59C push {r4, r5, r6, r7, lr} ldr r3, _0801F5D4 @ =0x020314E0 ldr r4, [r3] ldr r1, _0801F5D8 @ =0x000001E5 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r2, _0801F5DC @ =gMain ldr r0, [r2, #0x44] ldr r6, [r0, #0x7c] adds r0, r4, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xce subs r0, r0, r1 strh r0, [r6, #2] ldrb r0, [r2, #4] cmp r0, #0 bne _0801F5E0 adds r0, r4, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0xae b _0801F5E8 .align 2, 0 _0801F5D4: .4byte 0x020314E0 _0801F5D8: .4byte 0x000001E5 _0801F5DC: .4byte gMain _0801F5E0: adds r0, r4, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x9a _0801F5E8: subs r0, r0, r1 strh r0, [r6, #4] ldr r1, [r3] ldr r2, _0801F678 @ =0x000001E5 adds r0, r1, r2 movs r3, #0xf3 lsls r3, r3, #1 adds r2, r1, r3 ldrb r3, [r0] movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0 ldrsb r0, [r2, r0] cmp r1, r0 beq _0801F624 strb r3, [r2] ldr r2, _0801F67C @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _0801F680 @ =0x084FA48C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F684 @ =0x06010780 str r0, [r2, #4] ldr r0, _0801F688 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] _0801F624: movs r0, #0 ldr r7, _0801F68C @ =0x03005000 ldr r1, _0801F690 @ =0xFFFFFE00 mov ip, r1 _0801F62C: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801F694 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0801F62C pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801F678: .4byte 0x000001E5 _0801F67C: .4byte 0x040000D4 _0801F680: .4byte 0x084FA48C _0801F684: .4byte 0x06010780 _0801F688: .4byte 0x80000090 _0801F68C: .4byte 0x03005000 _0801F690: .4byte 0xFFFFFE00 _0801F694: .4byte 0x000001FF thumb_func_start sub_1F698 sub_1F698: @ 0x0801F698 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r2, #0 ldr r7, _0801F6EC @ =0x0200BDC8 ldr r0, _0801F6F0 @ =0x020314E0 ldr r4, [r0] movs r1, #0xaf lsls r1, r1, #2 adds r3, r4, r1 ldrh r1, [r3] mov sb, r0 cmp r1, #0x3b bhi _0801F712 adds r0, r1, #0 subs r0, #0x1b lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x13 bhi _0801F704 ldrh r0, [r3] subs r0, #0x1b movs r1, #5 bl __divsi3 ldr r2, _0801F6F4 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, _0801F6F8 @ =0x083C562C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F6FC @ =0x06014280 str r0, [r2, #4] ldr r0, _0801F700 @ =0x80000080 str r0, [r2, #8] ldr r0, [r2, #8] adds r0, r4, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xb0 b _0801F760 .align 2, 0 _0801F6EC: .4byte 0x0200BDC8 _0801F6F0: .4byte 0x020314E0 _0801F6F4: .4byte 0x040000D4 _0801F6F8: .4byte 0x083C562C _0801F6FC: .4byte 0x06014280 _0801F700: .4byte 0x80000080 _0801F704: strh r2, [r7] mov r2, sb ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xb0 b _0801F760 _0801F712: adds r0, r1, #0 subs r0, #0x64 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x13 bhi _0801F754 ldrh r0, [r3] subs r0, #0x64 movs r1, #5 bl __divsi3 ldr r2, _0801F744 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, _0801F748 @ =0x083C562C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F74C @ =0x06014280 str r0, [r2, #4] ldr r0, _0801F750 @ =0x80000080 str r0, [r2, #8] ldr r0, [r2, #8] adds r0, r4, #0 b _0801F75A .align 2, 0 _0801F744: .4byte 0x040000D4 _0801F748: .4byte 0x083C562C _0801F74C: .4byte 0x06014280 _0801F750: .4byte 0x80000080 _0801F754: strh r2, [r7] mov r3, sb ldr r0, [r3] _0801F75A: adds r0, #0x58 ldrh r1, [r0] movs r0, #0x20 _0801F760: subs r0, r0, r1 strh r0, [r7, #2] ldrh r0, [r7] ldr r1, _0801F880 @ =0x0200BD10 mov r8, r1 cmp r0, #0 beq _0801F7D8 mov r2, sb ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r3, #0x94 lsls r3, r3, #1 adds r0, r3, #0 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _0801F78C movs r0, #0xb4 strh r0, [r7, #4] _0801F78C: movs r0, #0 ldr r6, _0801F884 @ =0x03005000 ldr r1, _0801F888 @ =0xFFFFFE00 mov ip, r1 _0801F794: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0801F88C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0801F794 _0801F7D8: mov r7, r8 ldrh r0, [r7] cmp r0, #0 bne _0801F7E2 b _0801FA26 _0801F7E2: mov r0, sb ldr r3, [r0] movs r6, #0xaf lsls r6, r6, #2 adds r1, r3, r6 ldrh r0, [r1] cmp r0, #0x77 bls _0801F7F4 b _0801F990 _0801F7F4: movs r1, #7 ands r0, r1 cmp r0, #0 bne _0801F802 movs r0, #0xc6 bl m4aSongNumStart _0801F802: mov r1, sb ldr r0, [r1] adds r0, r0, r6 ldrh r0, [r0] movs r1, #0xf ands r0, r1 ldr r2, _0801F890 @ =0x040000D4 lsrs r0, r0, #2 lsls r0, r0, #7 ldr r1, _0801F894 @ =0x083C542C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F898 @ =0x06014200 str r0, [r2, #4] ldr r0, _0801F89C @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, sb ldr r4, [r2] adds r5, r4, r6 ldrh r0, [r5] lsls r0, r0, #0x10 movs r1, #0x5a bl __divsi3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r3, #0xae lsls r3, r3, #2 adds r0, r4, r3 ldrh r1, [r0] subs r1, #2 strh r1, [r0] movs r0, #0xad lsls r0, r0, #2 adds r4, r4, r0 ldrh r0, [r4] adds r0, r0, r1 strh r0, [r4] ldrh r0, [r5] cmp r0, #0x1d bhi _0801F8A8 adds r0, r2, #0 bl sub_C24 adds r1, r0, #0 mov r2, sb ldr r4, [r2] adds r5, r4, r6 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 ldr r1, _0801F8A0 @ =0x00004E20 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 ldr r3, _0801F8A4 @ =0x000002B6 adds r4, r4, r3 strh r1, [r4] b _0801F8CC .align 2, 0 _0801F880: .4byte 0x0200BD10 _0801F884: .4byte 0x03005000 _0801F888: .4byte 0xFFFFFE00 _0801F88C: .4byte 0x000001FF _0801F890: .4byte 0x040000D4 _0801F894: .4byte 0x083C542C _0801F898: .4byte 0x06014200 _0801F89C: .4byte 0x80000040 _0801F8A0: .4byte 0x00004E20 _0801F8A4: .4byte 0x000002B6 _0801F8A8: adds r0, r2, #0 bl sub_C24 adds r1, r0, #0 mov r0, sb ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 ldr r1, _0801F910 @ =0x00004E20 bl __divsi3 adds r0, #0x1e ldr r1, _0801F914 @ =0x000002B6 adds r4, r4, r1 strh r0, [r4] _0801F8CC: ldr r2, _0801F918 @ =0x020314E0 ldr r1, [r2] movs r3, #0xaf lsls r3, r3, #2 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r2 cmp r0, #0x1b bne _0801F934 ldr r0, _0801F91C @ =gMain ldr r1, _0801F920 @ =0x00000D08 adds r0, r0, r1 movs r1, #1 strh r1, [r0] movs r0, #0xc7 bl m4aSongNumStart mov r2, sb ldr r0, [r2] movs r3, #0xb9 lsls r3, r3, #2 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801F924 adds r0, r2, #1 strb r0, [r1] b _0801F934 .align 2, 0 _0801F910: .4byte 0x00004E20 _0801F914: .4byte 0x000002B6 _0801F918: .4byte 0x020314E0 _0801F91C: .4byte gMain _0801F920: .4byte 0x00000D08 _0801F924: movs r0, #2 strb r0, [r1] mov r1, sb ldr r0, [r1] ldr r2, _0801F96C @ =0x000002EA adds r0, r0, r2 movs r1, #0xbe strh r1, [r0] _0801F934: mov r3, sb ldr r0, [r3] movs r1, #0xaf lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x64 bne _0801F9B6 ldr r0, _0801F970 @ =gMain ldr r2, _0801F974 @ =0x00000D08 adds r0, r0, r2 movs r1, #1 strh r1, [r0] movs r0, #0xc7 bl m4aSongNumStart mov r3, sb ldr r0, [r3] ldr r2, _0801F978 @ =0x000002E3 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801F97C adds r0, r2, #1 strb r0, [r1] b _0801F9B6 .align 2, 0 _0801F96C: .4byte 0x000002EA _0801F970: .4byte gMain _0801F974: .4byte 0x00000D08 _0801F978: .4byte 0x000002E3 _0801F97C: movs r0, #2 strb r0, [r1] mov r3, sb ldr r0, [r3] movs r1, #0xba lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0xbe strh r1, [r0] b _0801F9B6 _0801F990: movs r2, #0 strh r2, [r1] movs r1, #0xad lsls r1, r1, #2 adds r0, r3, r1 strh r2, [r0] ldr r0, _0801FA34 @ =0x000002B6 adds r1, r3, r0 movs r0, #0xbe strh r0, [r1] movs r0, #0xae lsls r0, r0, #2 adds r1, r3, r0 movs r0, #0x64 strh r0, [r1] ldr r1, _0801FA38 @ =0x000002BA adds r0, r3, r1 strh r2, [r0] strh r2, [r7] _0801F9B6: mov r2, sb ldr r4, [r2] movs r3, #0xad lsls r3, r3, #2 adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x14 bl __divsi3 adds r0, #0x47 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r2, _0801FA34 @ =0x000002B6 adds r0, r4, r2 ldrh r0, [r0] adds r0, #0xf8 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xbe ble _0801F9F2 movs r0, #0xbe strh r0, [r7, #4] _0801F9F2: adds r5, r7, #0 adds r5, #8 ldr r4, _0801FA3C @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r3, _0801FA40 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0801FA44 @ =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] _0801FA26: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801FA34: .4byte 0x000002B6 _0801FA38: .4byte 0x000002BA _0801FA3C: .4byte 0x03005000 _0801FA40: .4byte 0x000001FF _0801FA44: .4byte 0xFFFFFE00 thumb_func_start sub_1FA48 sub_1FA48: @ 0x0801FA48 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r7, _0801FAD0 @ =0x0200D9D0 ldr r0, _0801FAD4 @ =0x020314E0 ldr r6, [r0] ldr r1, _0801FAD8 @ =0x000002B2 mov sb, r1 adds r1, r6, r1 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 beq _0801FAF0 ldr r5, _0801FADC @ =0x086ADA58 movs r2, #0xac lsls r2, r2, #2 mov r8, r2 adds r0, r6, r2 ldrh r4, [r0] adds r0, r4, #0 movs r1, #5 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r5 ldrh r3, [r0] cmp r4, #0x28 bne _0801FABA movs r1, #0xaf lsls r1, r1, #2 adds r0, r6, r1 movs r1, #0 strh r1, [r0] movs r2, #0xad lsls r2, r2, #2 adds r0, r6, r2 strh r1, [r0] adds r2, #2 adds r0, r6, r2 strh r1, [r0] movs r0, #0xae lsls r0, r0, #2 adds r2, r6, r0 movs r0, #0x64 strh r0, [r2] ldr r2, _0801FAE0 @ =0x000002BA adds r0, r6, r2 strh r1, [r0] ldr r0, _0801FAE4 @ =0xFFFFE340 adds r1, r7, r0 movs r0, #1 strh r0, [r1] _0801FABA: mov r2, sl ldr r1, [r2] mov r0, r8 adds r2, r1, r0 ldrh r0, [r2] cmp r0, #0x35 bhi _0801FAE8 adds r0, #1 strh r0, [r2] b _0801FB12 .align 2, 0 _0801FAD0: .4byte 0x0200D9D0 _0801FAD4: .4byte 0x020314E0 _0801FAD8: .4byte 0x000002B2 _0801FADC: .4byte 0x086ADA58 _0801FAE0: .4byte 0x000002BA _0801FAE4: .4byte 0xFFFFE340 _0801FAE8: add r1, sb movs r0, #0 strb r0, [r1] b _0801FB12 _0801FAF0: ldr r1, _0801FBA4 @ =0xFFFFD6F0 adds r0, r7, r1 ldr r0, [r0, #0x4c] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 movs r2, #0xde lsls r2, r2, #1 adds r0, r6, r2 ldrh r0, [r0] cmp r0, #1 bne _0801FB2E _0801FB12: ldr r2, _0801FBA8 @ =0x040000D4 lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801FBAC @ =0x083C3C2C adds r0, r0, r1 str r0, [r2] ldr r0, _0801FBB0 @ =0x06012720 str r0, [r2, #4] ldr r0, _0801FBB4 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] _0801FB2E: mov r0, sl ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x37 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0xdd subs r0, r0, r1 strh r0, [r7, #4] movs r0, #0 ldr r6, _0801FBB8 @ =0x03005000 ldr r1, _0801FBBC @ =0xFFFFFE00 mov ip, r1 _0801FB50: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r7, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r6 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0801FBC0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _0801FB50 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 _0801FBA4: .4byte 0xFFFFD6F0 _0801FBA8: .4byte 0x040000D4 _0801FBAC: .4byte 0x083C3C2C _0801FBB0: .4byte 0x06012720 _0801FBB4: .4byte 0x80000180 _0801FBB8: .4byte 0x03005000 _0801FBBC: .4byte 0xFFFFFE00 _0801FBC0: .4byte 0x000001FF thumb_func_start sub_1FBC4 sub_1FBC4: @ 0x0801FBC4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0801FC74 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801FC78 @ =0x000002C2 adds r3, r2, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _0801FC7C @ =0x086ADA6E adds r7, r0, r1 ldr r0, _0801FC80 @ =0x0200DCB0 mov sb, r0 adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #9 subs r0, r0, r1 movs r1, #0 mov r8, r1 mov r6, sb strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r1, [r0] movs r6, #0x90 lsls r6, r6, #1 adds r0, r6, #0 subs r0, r0, r1 mov r1, sb strh r0, [r1, #4] ldr r6, _0801FC84 @ =0x000002BE mov ip, r6 adds r1, r2, r6 ldr r6, _0801FC88 @ =0x000006BD adds r0, r2, r6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 ble _0801FCDC ldr r0, _0801FC8C @ =0x000006BE mov sl, r0 adds r0, r2, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801FC38 b _0801FDFC _0801FC38: adds r6, #3 adds r0, r2, r6 ldrh r0, [r0] cmp r0, #0 bne _0801FC5A movs r0, #0x3b strb r0, [r3] ldr r1, [r4] movs r2, #0xb0 lsls r2, r2, #2 adds r0, r1, r2 movs r3, #0 strh r3, [r0] adds r1, r1, r6 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0801FC5A: movs r1, #2 ldrsh r0, [r7, r1] ldr r1, [r4] movs r3, #0xb0 lsls r3, r3, #2 adds r2, r1, r3 ldrh r3, [r2] cmp r0, r3 ble _0801FC90 adds r0, r3, #1 strh r0, [r2] b _0801FDFC .align 2, 0 _0801FC74: .4byte 0x020314E0 _0801FC78: .4byte 0x000002C2 _0801FC7C: .4byte 0x086ADA6E _0801FC80: .4byte 0x0200DCB0 _0801FC84: .4byte 0x000002BE _0801FC88: .4byte 0x000006BD _0801FC8C: .4byte 0x000006BE _0801FC90: movs r0, #1 strh r0, [r2] adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r4] adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x54 bne _0801FCC2 mov r0, r8 strb r0, [r1] ldr r0, [r4] add r0, sl mov r1, r8 strb r1, [r0] ldr r0, [r4] adds r1, r0, r6 movs r2, #0 strh r2, [r1] add r0, ip mov r3, r8 strb r3, [r0] _0801FCC2: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x3c beq _0801FD8E cmp r0, #0x45 beq _0801FD8E cmp r0, #0x4e beq _0801FCDA b _0801FDFC _0801FCDA: b _0801FD8E _0801FCDC: cmp r1, r0 bge _0801FD96 movs r1, #2 ldrsh r0, [r7, r1] mov r8, r0 movs r0, #0xb0 lsls r0, r0, #2 adds r1, r2, r0 ldrh r2, [r1] cmp r8, r2 bgt _0801FDAC movs r0, #1 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] adds r0, r1, r6 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 bne _0801FD32 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _0801FD22 add r1, ip movs r0, #1 strb r0, [r1] ldr r0, [r4] adds r0, r0, r5 movs r1, #0x54 strb r1, [r0] _0801FD22: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0801FDFC b _0801FD8E _0801FD32: cmp r2, #2 bne _0801FD60 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 bne _0801FD50 mov r3, ip adds r0, r1, r3 strb r2, [r0] ldr r0, [r4] adds r0, r0, r5 movs r1, #0x5f strb r1, [r0] _0801FD50: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0801FDFC b _0801FD8E _0801FD60: cmp r2, #3 bne _0801FDFC adds r0, r1, r5 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0x23 bne _0801FD80 mov r6, ip adds r0, r1, r6 strb r2, [r0] ldr r0, [r4] adds r0, r0, r5 strb r3, [r0] movs r0, #7 bl sub_19B64 _0801FD80: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 bne _0801FDFC _0801FD8E: movs r0, #0xd2 bl m4aSongNumStart b _0801FDFC _0801FD96: cmp r0, #0 beq _0801FDFC movs r1, #2 ldrsh r0, [r7, r1] mov r8, r0 movs r0, #0xb0 lsls r0, r0, #2 adds r1, r2, r0 ldrh r2, [r1] cmp r8, r2 ble _0801FDB2 _0801FDAC: adds r0, r2, #1 strh r0, [r1] b _0801FDFC _0801FDB2: movs r0, #1 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0801FDD8 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x5f bne _0801FDFC movs r0, #0x54 b _0801FDFA _0801FDD8: cmp r0, #2 bne _0801FDEA adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x6d bne _0801FDFC movs r0, #0x5f b _0801FDFA _0801FDEA: cmp r0, #3 bne _0801FDFC adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x3c bne _0801FDFC movs r0, #0x23 _0801FDFA: strb r0, [r1] _0801FDFC: ldrh r5, [r7] ldr r2, _0801FEE4 @ =0x040000D4 movs r3, #4 ldrsh r1, [r7, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r4, _0801FEE8 @ =0x08447A8C adds r0, r0, r4 str r0, [r2] ldr r0, _0801FEEC @ =0x06013B80 str r0, [r2, #4] ldr r3, _0801FEF0 @ =0x800000C0 str r3, [r2, #8] ldr r0, [r2, #8] movs r6, #6 ldrsh r1, [r7, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 adds r0, r0, r4 str r0, [r2] ldr r0, _0801FEF4 @ =0x06013A00 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] movs r0, #8 ldrsh r1, [r7, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 adds r0, r0, r4 str r0, [r2] ldr r0, _0801FEF8 @ =0x06013880 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r2, _0801FEFC @ =0x03005000 mov ip, r2 ldr r3, _0801FF00 @ =0x086B2FC0 mov sl, r3 lsls r5, r5, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #3 adds r0, r0, r5 lsls r6, r0, #2 ldr r5, _0801FF04 @ =0xFFFFFE00 mov r8, r5 _0801FE5E: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 add r1, sl ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r7, [r2, #2] lsls r1, r7, #0x17 lsrs r1, r1, #0x17 mov r5, sb movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _0801FF08 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 ldrh r7, [r2, #2] ands r0, r7 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r1] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _0801FE5E 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 _0801FEE4: .4byte 0x040000D4 _0801FEE8: .4byte 0x08447A8C _0801FEEC: .4byte 0x06013B80 _0801FEF0: .4byte 0x800000C0 _0801FEF4: .4byte 0x06013A00 _0801FEF8: .4byte 0x06013880 _0801FEFC: .4byte 0x03005000 _0801FF00: .4byte 0x086B2FC0 _0801FF04: .4byte 0xFFFFFE00 _0801FF08: .4byte 0x000001FF thumb_func_start sub_1FF0C sub_1FF0C: @ 0x0801FF0C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r1, #0 ldr r6, _0801FF70 @ =0x020314E0 mov sb, r6 ldr r0, _0801FF74 @ =0x000002E3 mov sl, r0 movs r2, #0xba lsls r2, r2, #2 mov r8, r2 movs r3, #0xbb lsls r3, r3, #2 mov ip, r3 _0801FF2E: mov r4, sb ldr r3, [r4] lsls r0, r1, #0x10 asrs r5, r0, #0x10 mov r7, sl adds r1, r3, r7 adds r1, r1, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 str r0, [sp] cmp r1, #0 ble _08020012 ldr r1, _0801FF78 @ =0x000002E5 adds r0, r3, r1 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r1, r1, #2 ldr r2, _0801FF7C @ =0x086ADEB2 adds r1, r1, r2 lsls r2, r5, #1 mov r7, r8 adds r0, r3, r7 adds r2, r0, r2 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0801FF80 adds r0, r3, #1 strh r0, [r2] b _0801FFAE .align 2, 0 _0801FF70: .4byte 0x020314E0 _0801FF74: .4byte 0x000002E3 _0801FF78: .4byte 0x000002E5 _0801FF7C: .4byte 0x086ADEB2 _0801FF80: movs r3, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] mov r1, sb ldr r0, [r1] ldr r2, _08020070 @ =0x000002E5 adds r0, r0, r2 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb ble _0801FFAE strb r3, [r1] mov r3, sb ldr r1, [r3] add r1, sl adds r1, r1, r5 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801FFAE: ldr r3, [r6] ldr r7, [sp] asrs r4, r7, #0x10 ldr r5, _08020070 @ =0x000002E5 adds r0, r3, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0801FFD8 lsls r2, r4, #1 mov r0, ip adds r1, r3, r0 adds r1, r1, r2 mov r7, r8 adds r0, r3, r7 adds r0, r0, r2 ldrh r0, [r0] lsrs r0, r0, #1 strh r0, [r1] _0801FFD8: ldr r1, [r6] adds r0, r1, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r3, r4, #1 cmp r0, #0xb bne _08020000 mov r0, ip adds r2, r1, r0 adds r2, r2, r3 mov r4, r8 adds r0, r1, r4 adds r0, r0, r3 ldrh r1, [r0] lsrs r1, r1, #1 movs r0, #0xe subs r0, r0, r1 strh r0, [r2] _08020000: ldr r0, [r6] add r0, ip adds r2, r0, r3 movs r7, #0 ldrsh r0, [r2, r7] cmp r0, #2 bgt _08020012 movs r0, #3 strh r0, [r2] _08020012: ldr r1, [sp] movs r2, #0x80 lsls r2, r2, #9 adds r0, r1, r2 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801FF2E ldr r1, [r6] ldr r3, _08020074 @ =0x000002E2 adds r0, r1, r3 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _08020032 b _0802018E _08020032: cmp r3, #1 bne _08020120 movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #7 bne _08020040 b _08020136 _08020040: cmp r0, #2 bgt _080200C4 ldr r4, _08020078 @ =0x000006BD adds r1, r1, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08020136 adds r0, r2, #1 movs r2, #0 strb r0, [r1] ldr r1, [r6] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08020080 ldr r7, _0802007C @ =0x000002C2 adds r0, r1, r7 strb r2, [r0] b _08020110 .align 2, 0 _08020070: .4byte 0x000002E5 _08020074: .4byte 0x000002E2 _08020078: .4byte 0x000006BD _0802007C: .4byte 0x000002C2 _08020080: cmp r0, #2 bne _0802009C ldr r3, _08020098 @ =0x000002C2 adds r1, r1, r3 movs r0, #0xc strb r0, [r1] ldr r0, [r6] movs r4, #0xb0 lsls r4, r4, #2 adds r0, r0, r4 strh r2, [r0] b _08020136 .align 2, 0 _08020098: .4byte 0x000002C2 _0802009C: cmp r0, #3 bne _08020136 ldr r7, _080200BC @ =0x000002C2 adds r1, r1, r7 movs r0, #0x18 strb r0, [r1] ldr r0, [r6] movs r4, #0xb0 lsls r4, r4, #2 adds r1, r0, r4 strh r2, [r1] ldr r7, _080200C0 @ =0x000006C2 adds r0, r0, r7 strh r3, [r0] b _08020136 .align 2, 0 _080200BC: .4byte 0x000002C2 _080200C0: .4byte 0x000006C2 _080200C4: ldr r0, _080200FC @ =0x000006BD adds r1, r1, r0 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08020136 adds r0, r2, #1 movs r2, #0 strb r0, [r1] ldr r1, [r6] ldr r3, _080200FC @ =0x000006BD adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08020104 ldr r4, _08020100 @ =0x000002C2 adds r0, r1, r4 strb r2, [r0] ldr r0, [r6] movs r7, #0xb0 lsls r7, r7, #2 adds r0, r0, r7 strh r2, [r0] b _08020136 .align 2, 0 _080200FC: .4byte 0x000006BD _08020100: .4byte 0x000002C2 _08020104: cmp r0, #2 bne _08020136 ldr r0, _0802011C @ =0x000002C2 adds r1, r1, r0 movs r0, #0xc strb r0, [r1] _08020110: ldr r0, [r6] movs r1, #0xb0 lsls r1, r1, #2 adds r0, r0, r1 strh r2, [r0] b _08020136 .align 2, 0 _0802011C: .4byte 0x000002C2 _08020120: movs r2, #0xc0 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08020132 movs r0, #1 b _08020134 _08020132: movs r0, #0 _08020134: strb r0, [r1] _08020136: ldr r0, [r6] ldr r3, _080201A0 @ =0x000002E3 adds r0, r0, r3 movs r4, #0 strb r4, [r0] ldr r0, [r6] movs r7, #0xb9 lsls r7, r7, #2 adds r0, r0, r7 strb r4, [r0] ldr r0, [r6] ldr r1, _080201A4 @ =0x000002E2 adds r0, r0, r1 strb r4, [r0] movs r0, #7 bl sub_11B0 movs r0, #0xb7 bl m4aSongNumStart ldr r0, [r6] ldr r1, _080201A8 @ =0x00000BB8 str r1, [r0, #0x3c] ldr r2, _080201AC @ =0x000002E5 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] ldr r3, _080201B0 @ =0x000002E6 adds r0, r0, r3 strb r4, [r0] ldr r1, [r6] adds r7, #4 adds r0, r1, r7 strh r4, [r0] adds r2, #5 adds r0, r1, r2 strh r4, [r0] adds r3, #6 adds r0, r1, r3 movs r2, #3 strh r2, [r0] ldr r4, _080201B4 @ =0x000002EE adds r1, r1, r4 strh r2, [r1] _0802018E: 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 _080201A0: .4byte 0x000002E3 _080201A4: .4byte 0x000002E2 _080201A8: .4byte 0x00000BB8 _080201AC: .4byte 0x000002E5 _080201B0: .4byte 0x000002E6 _080201B4: .4byte 0x000002EE thumb_func_start sub_201B8 sub_201B8: @ 0x080201B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r1, #0 ldr r0, _080202D0 @ =0x020314E0 mov sl, r0 ldr r2, _080202D4 @ =0x040000D4 mov r8, r2 _080201CC: mov r3, sl ldr r0, [r3] lsls r1, r1, #0x10 asrs r3, r1, #0x10 ldr r4, _080202D8 @ =0x000002E5 adds r0, r0, r4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r5, _080202DC @ =0x086ADEB0 adds r0, r0, r5 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 ldr r4, _080202E0 @ =0x0847FD0C adds r0, r0, r4 mov r5, r8 str r0, [r5] lsls r0, r3, #8 ldr r2, _080202E4 @ =0x06012A20 adds r0, r0, r2 str r0, [r5, #4] ldr r0, _080202E8 @ =0x80000080 str r0, [r5, #8] ldr r0, [r5, #8] movs r0, #0xb8 muls r0, r3, r0 ldr r4, _080202EC @ =0x0200DE20 adds r6, r0, r4 ldrh r0, [r6] mov sb, r1 cmp r0, #0 beq _0802029A lsls r1, r3, #4 subs r1, r1, r3 lsls r1, r1, #3 adds r1, #0x30 mov r5, sl ldr r4, [r5] adds r0, r4, #0 adds r0, #0x58 ldrh r0, [r0] subs r1, r1, r0 lsls r3, r3, #1 movs r2, #1 subs r2, r2, r3 movs r5, #0xbb lsls r5, r5, #2 adds r0, r4, r5 adds r0, r0, r3 movs r3, #0 ldrsh r0, [r0, r3] subs r0, #0xe muls r0, r2, r0 adds r1, r1, r0 strh r1, [r6, #2] adds r0, r4, #0 adds r0, #0x5a ldrh r1, [r0] ldr r4, _080202F0 @ =0x0000012D adds r0, r4, #0 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _080202F4 @ =0x03005000 ldr r5, _080202F8 @ =0xFFFFFE00 mov ip, r5 _08020256: lsls r3, r0, #0x10 asrs r3, r3, #0x10 lsls r5, r3, #3 adds r5, #8 adds r5, r6, r5 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r4, _080202FC @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r0, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08020256 _0802029A: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080201CC mov r5, sl ldr r2, [r5] ldr r0, _08020300 @ =0x000006C2 adds r1, r2, r0 ldrh r0, [r1] cmp r0, #0 beq _08020398 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08020398 adds r2, #0xe4 ldrb r0, [r2] cmp r0, #0 beq _08020304 movs r0, #1 strh r0, [r1] b _08020308 .align 2, 0 _080202D0: .4byte 0x020314E0 _080202D4: .4byte 0x040000D4 _080202D8: .4byte 0x000002E5 _080202DC: .4byte 0x086ADEB0 _080202E0: .4byte 0x0847FD0C _080202E4: .4byte 0x06012A20 _080202E8: .4byte 0x80000080 _080202EC: .4byte 0x0200DE20 _080202F0: .4byte 0x0000012D _080202F4: .4byte 0x03005000 _080202F8: .4byte 0xFFFFFE00 _080202FC: .4byte 0x000001FF _08020300: .4byte 0x000006C2 _08020304: movs r0, #4 strb r0, [r2] _08020308: mov r1, sl ldr r4, [r1] ldr r2, _080203A8 @ =0x000006C2 adds r0, r4, r2 ldrh r5, [r0] cmp r5, #0 bne _08020398 ldr r2, _080203AC @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r1, r4, #0 adds r1, #0xea movs r3, #0 movs r0, #0x46 strh r0, [r1] adds r1, #2 movs r0, #0xa0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r5, [r0] subs r0, #2 strh r5, [r0] adds r0, #8 strh r5, [r0] adds r1, #6 movs r0, #4 strb r0, [r1] mov r4, sl ldr r0, [r4] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r4] adds r0, #0xfb strb r3, [r0] ldr r3, [r4] adds r1, r3, #0 adds r1, #0xf4 movs r0, #0x78 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf6 strh r5, [r0] subs r1, #4 movs r0, #0x32 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf8 strh r5, [r0] ldr r1, _080203B0 @ =0x040000D4 ldr r0, _080203B4 @ =0x086ACEF8 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _080203B8 @ =0x06015800 str r0, [r1, #4] ldr r0, _080203BC @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080203C0 @ =0x086ACF18 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _080203C4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _080203C8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _08020398: 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 _080203A8: .4byte 0x000006C2 _080203AC: .4byte gMain _080203B0: .4byte 0x040000D4 _080203B4: .4byte 0x086ACEF8 _080203B8: .4byte 0x06015800 _080203BC: .4byte 0x80001200 _080203C0: .4byte 0x086ACF18 _080203C4: .4byte 0x050003C0 _080203C8: .4byte 0x80000010 thumb_func_start sub_203CC sub_203CC: @ 0x080203CC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} bl sub_20EC0 ldr r6, _0802042C @ =0x020314E0 ldr r5, [r6] movs r1, #0xe3 lsls r1, r1, #1 adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xa7 ble _0802044C ldr r4, _08020430 @ =0x086ADF48 ldr r0, _08020434 @ =gMain ldr r0, [r0, #0x50] movs r1, #0xa0 bl __umodsi3 movs r1, #5 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] ldr r3, _08020438 @ =0x00000744 adds r0, r5, r3 strb r1, [r0] ldr r2, [r6] movs r4, #0xf1 lsls r4, r4, #1 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020440 adds r0, r2, r3 ldrb r0, [r0] adds r0, #6 ldr r5, _0802043C @ =0x00000745 adds r1, r2, r5 strb r0, [r1] b _0802049C .align 2, 0 _0802042C: .4byte 0x020314E0 _08020430: .4byte 0x086ADF48 _08020434: .4byte gMain _08020438: .4byte 0x00000744 _0802043C: .4byte 0x00000745 _08020440: ldr r7, _08020448 @ =0x00000744 adds r0, r2, r7 b _08020494 .align 2, 0 _08020448: .4byte 0x00000744 _0802044C: ldr r0, _08020484 @ =gMain ldr r0, [r0, #0x50] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 ldr r4, _08020488 @ =0x00000744 adds r1, r5, r4 strb r0, [r1] ldr r2, [r6] movs r5, #0xf1 lsls r5, r5, #1 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020490 adds r0, r2, r4 ldrb r0, [r0] adds r0, #9 ldr r7, _0802048C @ =0x00000745 adds r1, r2, r7 strb r0, [r1] b _0802049C .align 2, 0 _08020484: .4byte gMain _08020488: .4byte 0x00000744 _0802048C: .4byte 0x00000745 _08020490: ldr r1, _080204C8 @ =0x00000744 adds r0, r2, r1 _08020494: ldrb r1, [r0] ldr r3, _080204CC @ =0x00000745 adds r0, r2, r3 strb r1, [r0] _0802049C: ldr r1, _080204D0 @ =0x020314E0 ldr r5, [r1] movs r4, #0xf1 lsls r4, r4, #1 adds r3, r5, r4 movs r0, #0 ldrsb r0, [r3, r0] mov sl, r1 cmp r0, #2 bne _080204D8 ldr r7, _080204D4 @ =0x000001E3 adds r0, r5, r7 movs r1, #1 strb r1, [r0] mov r2, sl ldr r0, [r2] movs r3, #0xf2 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] b _08020500 .align 2, 0 _080204C8: .4byte 0x00000744 _080204CC: .4byte 0x00000745 _080204D0: .4byte 0x020314E0 _080204D4: .4byte 0x000001E3 _080204D8: movs r1, #0 ldrsb r1, [r3, r1] ldr r3, _0802060C @ =0x000001E3 adds r0, r5, r3 adds r0, r0, r1 movs r4, #0 movs r2, #1 strb r2, [r0] mov r5, sl ldr r0, [r5] movs r7, #0xf1 lsls r7, r7, #1 adds r1, r0, r7 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r2, r2, r1 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] _08020500: mov r0, sl ldr r1, [r0] movs r3, #0xe2 lsls r3, r3, #1 adds r2, r1, r3 ldrh r4, [r2] cmp r4, #0 bne _08020512 b _0802073A _08020512: cmp r4, #0x78 beq _08020518 b _080206CC _08020518: movs r5, #0xe1 lsls r5, r5, #1 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r1, r0 movs r7, #0xf1 lsls r7, r7, #1 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08020538 b _080206CC _08020538: movs r6, #0xe3 lsls r6, r6, #1 adds r0, r1, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xa7 ble _08020630 movs r5, #0 movs r3, #1 strb r3, [r1, #0x1f] mov r7, sl ldr r0, [r7] ldr r1, _08020610 @ =0x0000061C adds r0, r0, r1 strb r3, [r0] ldr r1, [r7] movs r7, #0xef lsls r7, r7, #1 adds r2, r1, r7 movs r0, #0 mov r8, r0 strh r4, [r2] adds r7, #2 adds r0, r1, r7 strh r4, [r0] ldrh r2, [r2] ldr r4, _08020614 @ =0x0000061E adds r0, r1, r4 strh r2, [r0] ldr r7, _08020618 @ =0x000005F7 adds r1, r1, r7 strb r3, [r1] mov r1, sl ldr r0, [r1] movs r2, #0x82 lsls r2, r2, #2 adds r1, r0, r2 strh r5, [r1] ldr r3, _0802061C @ =0x0000020A adds r0, r0, r3 mov r4, r8 strb r4, [r0] mov r7, sl ldr r2, [r7] movs r1, #0xf1 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _080205E4 adds r0, r2, r6 strh r5, [r0] subs r3, #0x42 adds r0, r2, r3 strh r5, [r0] movs r4, #0xe6 lsls r4, r4, #1 adds r0, r2, r4 strh r5, [r0] movs r7, #0xe5 lsls r7, r7, #1 adds r0, r2, r7 strh r5, [r0] subs r1, #0xe adds r0, r2, r1 strh r5, [r0] adds r3, #0xe adds r1, r2, r3 ldr r0, _08020620 @ =0x0000FFFC strh r0, [r1] adds r4, #0xc adds r0, r2, r4 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] adds r7, #0x10 adds r0, r2, r7 strh r1, [r0] adds r1, #0xce adds r0, r2, r1 strh r5, [r0] subs r3, #6 adds r0, r2, r3 strh r5, [r0] _080205E4: mov r4, sl ldr r1, [r4] movs r5, #0xc4 lsls r5, r5, #3 adds r2, r1, r5 ldr r7, _08020624 @ =0x0000132C adds r0, r1, r7 ldr r0, [r0] ldr r0, [r0, #0x28] str r0, [r2] ldr r0, _08020628 @ =0x00007530 str r0, [r1, #0x3c] ldr r0, _0802062C @ =0x0000062E adds r1, r1, r0 ldrb r0, [r1] cmp r0, #0x62 bhi _0802063C adds r0, #1 strb r0, [r1] b _0802063C .align 2, 0 _0802060C: .4byte 0x000001E3 _08020610: .4byte 0x0000061C _08020614: .4byte 0x0000061E _08020618: .4byte 0x000005F7 _0802061C: .4byte 0x0000020A _08020620: .4byte 0x0000FFFC _08020624: .4byte 0x0000132C _08020628: .4byte 0x00007530 _0802062C: .4byte 0x0000062E _08020630: movs r0, #0x3c strh r0, [r2] ldr r0, _0802067C @ =0x02032F20 ldr r1, _08020680 @ =0x086A2FA0 bl MPlayStart _0802063C: ldr r0, _08020684 @ =0x020314E0 ldr r5, [r0] movs r2, #0xe1 lsls r2, r2, #1 adds r1, r5, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 movs r3, #0xf1 lsls r3, r3, #1 adds r1, r5, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #2 bne _0802068C lsls r3, r2, #0x10 asrs r1, r3, #0x10 ldr r4, _08020688 @ =0x00000744 adds r2, r5, r4 adds r2, r2, r1 lsls r0, r1, #3 subs r0, r0, r1 adds r0, #2 strb r0, [r2] mov r8, r3 b _0802069C .align 2, 0 _0802067C: .4byte 0x02032F20 _08020680: .4byte 0x086A2FA0 _08020684: .4byte 0x020314E0 _08020688: .4byte 0x00000744 _0802068C: lsls r2, r2, #0x10 asrs r1, r2, #0x10 ldr r7, _08020700 @ =0x00000744 adds r0, r5, r7 adds r0, r0, r1 movs r1, #2 strb r1, [r0] mov r8, r2 _0802069C: ldr r3, _08020704 @ =0x040000D4 mov r1, sl ldr r0, [r1] mov r4, r8 asrs r2, r4, #0x10 ldr r5, _08020700 @ =0x00000744 adds r0, r0, r5 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08020708 @ =0x084C07EC adds r0, r0, r1 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r7, _0802070C @ =0x06010480 adds r0, r0, r7 str r0, [r3, #4] ldr r0, _08020710 @ =0x800000C0 str r0, [r3, #8] ldr r0, [r3, #8] _080206CC: mov r0, sl ldr r2, [r0] movs r1, #0xf1 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020714 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 ldr r4, _08020700 @ =0x00000744 adds r2, r2, r4 adds r2, r2, r0 lsls r1, r0, #3 subs r1, r1, r0 adds r1, #2 strb r1, [r2] b _0802072A .align 2, 0 _08020700: .4byte 0x00000744 _08020704: .4byte 0x040000D4 _08020708: .4byte 0x084C07EC _0802070C: .4byte 0x06010480 _08020710: .4byte 0x800000C0 _08020714: movs r5, #0xe1 lsls r5, r5, #1 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r2, r0 ldr r7, _080207B4 @ =0x00000743 adds r0, r0, r7 movs r1, #2 strb r1, [r0] _0802072A: mov r0, sl ldr r1, [r0] movs r2, #0xe2 lsls r2, r2, #1 adds r1, r1, r2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _0802073A: mov r3, sl ldr r5, [r3] ldr r4, _080207B8 @ =0x0000061C adds r0, r5, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0802074E b _08020D82 _0802074E: ldr r7, _080207BC @ =0x0000061E mov sb, r7 mov r0, sb adds r6, r5, r0 ldrh r7, [r6] mov r8, r7 mov r1, r8 cmp r1, #1 bhi _08020762 b _08020928 _08020762: movs r2, #0xef lsls r2, r2, #1 adds r4, r5, r2 ldrh r0, [r4] lsls r0, r0, #0x10 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 subs r0, r7, #1 strh r0, [r6] ldrh r0, [r4] cmp r0, #0 beq _08020796 subs r0, #1 strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x28 bne _08020796 ldrh r0, [r6] cmp r0, #0x28 bls _08020796 movs r0, #0x3c strh r0, [r4] _08020796: ldr r3, _080207C0 @ =0x020314E0 ldr r1, [r3] ldr r4, _080207BC @ =0x0000061E adds r2, r1, r4 ldrh r0, [r2] cmp r0, #0x74 bne _08020832 adds r1, #0xe4 ldrb r0, [r1] cmp r0, #0 beq _080207C4 movs r0, #0x78 strh r0, [r2] b _08020832 .align 2, 0 _080207B4: .4byte 0x00000743 _080207B8: .4byte 0x0000061C _080207BC: .4byte 0x0000061E _080207C0: .4byte 0x020314E0 _080207C4: movs r0, #1 strb r0, [r1] ldr r1, [r3] movs r7, #0xf1 lsls r7, r7, #1 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020820 movs r2, #0xe1 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080207FC ldr r0, _080207F4 @ =0x02032F20 ldr r1, _080207F8 @ =0x086A0328 bl MPlayStart b _08020804 .align 2, 0 _080207F4: .4byte 0x02032F20 _080207F8: .4byte 0x086A0328 _080207FC: ldr r0, _08020810 @ =0x02032F20 ldr r1, _08020814 @ =0x086A0368 bl MPlayStart _08020804: ldr r0, _08020818 @ =0x02032EE0 ldr r1, _0802081C @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl b _08020832 .align 2, 0 _08020810: .4byte 0x02032F20 _08020814: .4byte 0x086A0368 _08020818: .4byte 0x02032EE0 _0802081C: .4byte 0x0000FFFF _08020820: ldr r0, _08020900 @ =0x02032F20 ldr r1, _08020904 @ =0x086A0328 bl MPlayStart ldr r0, _08020908 @ =0x02032EE0 ldr r1, _0802090C @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl _08020832: ldr r0, _08020910 @ =0x020314E0 ldr r1, [r0] ldr r3, _08020914 @ =0x0000061E adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x73 bne _08020856 adds r0, r1, #0 adds r0, #0xe4 ldrb r0, [r0] cmp r0, #1 bne _08020856 ldr r0, _08020900 @ =0x02032F20 ldr r1, _0802090C @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #2 bl m4aMPlayVolumeControl _08020856: adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 ldr r0, _08020910 @ =0x020314E0 ldr r4, [r0] ldr r5, _08020918 @ =0x0000132C adds r5, r5, r4 mov r8, r5 ldr r7, [r5] mov sb, r7 movs r0, #0xc4 lsls r0, r0, #3 adds r6, r4, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _0802091C @ =0x00004E20 bl __divsi3 ldrh r5, [r6] adds r5, r5, r0 ldr r1, _08020920 @ =0x086ADF8A movs r2, #0xe1 lsls r2, r2, #1 adds r0, r4, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #1 adds r0, r0, r1 movs r3, #0 ldrsh r2, [r0, r3] lsls r2, r2, #1 movs r7, #0 ldrsh r0, [r6, r7] subs r2, r2, r0 movs r0, #0xf0 lsls r0, r0, #1 adds r6, r4, r0 ldrh r1, [r6] movs r3, #0xef lsls r3, r3, #1 adds r7, r4, r3 ldrh r0, [r7] subs r0, r1, r0 muls r0, r2, r0 bl __divsi3 adds r5, r5, r0 mov r0, sb strh r5, [r0, #0x28] ldrh r1, [r6] ldrh r2, [r7] subs r2, r1, r2 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #3 bl __divsi3 mov r1, r8 ldr r2, [r1] ldr r3, _08020924 @ =0x00000622 adds r4, r4, r3 ldrh r1, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r1, r1, r0 strh r1, [r2, #0x2a] mov r4, r8 ldr r1, [r4] movs r5, #0x28 ldrsh r0, [r1, r5] lsls r0, r0, #7 str r0, [r1, #0x34] ldr r1, [r4] movs r7, #0x2a ldrsh r0, [r1, r7] lsls r0, r0, #7 str r0, [r1, #0x38] b _080209FE .align 2, 0 _08020900: .4byte 0x02032F20 _08020904: .4byte 0x086A0328 _08020908: .4byte 0x02032EE0 _0802090C: .4byte 0x0000FFFF _08020910: .4byte 0x020314E0 _08020914: .4byte 0x0000061E _08020918: .4byte 0x0000132C _0802091C: .4byte 0x00004E20 _08020920: .4byte 0x086ADF8A _08020924: .4byte 0x00000622 _08020928: mov r0, r8 cmp r0, #1 bne _080209FE ldr r1, _08020A3C @ =0x0000132C adds r2, r5, r1 ldr r3, [r2] ldr r1, _08020A40 @ =0x086ADF8A movs r4, #0xe1 lsls r4, r4, #1 adds r0, r5, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #1 adds r0, r0, r1 movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #1 movs r6, #0 movs r5, #0 strh r0, [r3, #0x28] ldr r1, [r2] ldr r0, _08020A44 @ =0x000002BE strh r0, [r1, #0x2a] ldr r1, [r2] movs r7, #0x28 ldrsh r0, [r1, r7] lsls r0, r0, #7 str r0, [r1, #0x34] ldr r1, [r2] movs r3, #0x2a ldrsh r0, [r1, r3] lsls r0, r0, #7 str r0, [r1, #0x38] ldr r0, [r2] strh r5, [r0, #0x30] ldr r1, [r2] ldr r0, _08020A48 @ =0x0000FED4 strh r0, [r1, #0x32] movs r0, #0x7c bl m4aSongNumStart mov r7, sl ldr r1, [r7] mov r2, sb adds r0, r1, r2 strh r5, [r0] strb r6, [r1, #0x1f] ldr r0, [r7] ldr r3, _08020A4C @ =0x000005F7 adds r0, r0, r3 strb r6, [r0] ldr r2, [r7] adds r4, r2, r4 movs r0, #0 ldrsb r0, [r4, r0] subs r0, #1 lsls r1, r0, #1 adds r1, r1, r0 movs r4, #0xe2 lsls r4, r4, #3 adds r2, r2, r4 adds r2, r2, r1 mov r5, r8 strb r5, [r2] ldr r3, [r7] ldr r7, _08020A50 @ =0x00000714 adds r4, r3, r7 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _080209F8 movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08020A54 @ =0x00000711 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r5, _08020A58 @ =0x00000712 adds r1, r3, r5 ldrb r1, [r1] ands r0, r1 subs r7, #1 adds r1, r3, r7 ldrb r1, [r1] ands r0, r1 cmp r0, #0 beq _080209F8 mov r0, r8 strb r0, [r4] mov r1, sl ldr r0, [r1] ldr r2, _08020A5C @ =0x00000715 adds r0, r0, r2 movs r1, #0x7e strb r1, [r0] mov r3, sl ldr r1, [r3] movs r0, #0xfa lsls r0, r0, #4 str r0, [r1, #0x3c] _080209F8: movs r0, #0xb bl sub_11B0 _080209FE: ldr r0, _08020A60 @ =0x020314E0 ldr r3, [r0] ldr r4, _08020A64 @ =0x0000061E adds r1, r3, r4 ldrh r1, [r1] mov sl, r0 cmp r1, #0x63 bls _08020AFC movs r5, #0xf1 lsls r5, r5, #1 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020A6C movs r7, #0xe1 lsls r7, r7, #1 adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 ldr r1, _08020A68 @ =0x00000744 adds r2, r3, r1 adds r2, r2, r0 lsls r1, r0, #3 subs r1, r1, r0 adds r1, #2 strb r1, [r2] b _08020A82 .align 2, 0 _08020A3C: .4byte 0x0000132C _08020A40: .4byte 0x086ADF8A _08020A44: .4byte 0x000002BE _08020A48: .4byte 0x0000FED4 _08020A4C: .4byte 0x000005F7 _08020A50: .4byte 0x00000714 _08020A54: .4byte 0x00000711 _08020A58: .4byte 0x00000712 _08020A5C: .4byte 0x00000715 _08020A60: .4byte 0x020314E0 _08020A64: .4byte 0x0000061E _08020A68: .4byte 0x00000744 _08020A6C: movs r2, #0xe1 lsls r2, r2, #1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r3, r0 ldr r3, _08020AC4 @ =0x00000743 adds r0, r0, r3 movs r1, #2 strb r1, [r0] _08020A82: mov r4, sl ldr r2, [r4] ldr r5, _08020AC8 @ =0x0000061E adds r0, r2, r5 ldrh r0, [r0] cmp r0, #0x64 beq _08020A92 b _08020D82 _08020A92: ldr r0, _08020ACC @ =gMain ldr r0, [r0, #0x44] adds r0, #0x98 ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r7, #0xf1 lsls r7, r7, #1 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020AD8 movs r1, #0xe1 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020AD8 ldr r1, _08020AD0 @ =0x040000D4 ldr r0, _08020AD4 @ =0x08395A4C b _08020ADC .align 2, 0 _08020AC4: .4byte 0x00000743 _08020AC8: .4byte 0x0000061E _08020ACC: .4byte gMain _08020AD0: .4byte 0x040000D4 _08020AD4: .4byte 0x08395A4C _08020AD8: ldr r1, _08020AEC @ =0x040000D4 ldr r0, _08020AF0 @ =0x08397E6C _08020ADC: str r0, [r1] ldr r0, _08020AF4 @ =0x06015800 str r0, [r1, #4] ldr r0, _08020AF8 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] b _08020D82 .align 2, 0 _08020AEC: .4byte 0x040000D4 _08020AF0: .4byte 0x08397E6C _08020AF4: .4byte 0x06015800 _08020AF8: .4byte 0x80001200 _08020AFC: ldr r2, _08020B24 @ =0x086ADEE0 ldr r6, _08020B28 @ =0x0000020A adds r4, r3, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r1, r2, #2 adds r0, r0, r1 movs r5, #0x82 lsls r5, r5, #2 adds r1, r3, r5 ldrh r3, [r1] ldrh r0, [r0] mov r8, r2 cmp r0, r3 bls _08020B2C adds r0, r3, #1 strh r0, [r1] b _08020C1C .align 2, 0 _08020B24: .4byte 0x086ADEE0 _08020B28: .4byte 0x0000020A _08020B2C: movs r5, #0 movs r7, #0 strh r7, [r1] ldrb r0, [r4] adds r0, #1 strb r0, [r4] mov r1, sl ldr r0, [r1] ldr r2, _08020BC0 @ =0x0000020A adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 bne _08020B5C movs r0, #0x7c bl m4aSongNumStop ldr r0, _08020BC4 @ =0x02032EE0 ldr r1, _08020BC8 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _08020B5C: mov r3, sl ldr r0, [r3] adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x19 ble _08020C1C movs r0, #0x19 strb r0, [r1] mov r4, sl ldr r0, [r4] ldr r1, _08020BCC @ =0x0000061C adds r0, r0, r1 strb r5, [r0] ldr r2, _08020BD0 @ =gMain ldr r0, [r2, #0x44] adds r0, #0x98 ldr r0, [r0] strh r7, [r0] ldr r0, [r4] adds r0, #0xe4 strb r5, [r0] ldr r4, [r4] movs r3, #0xe1 lsls r3, r3, #1 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r7, #0xf1 lsls r7, r7, #1 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020BD8 lsls r3, r2, #0x10 asrs r1, r3, #0x10 ldr r0, _08020BD4 @ =0x00000744 adds r2, r4, r0 adds r2, r2, r1 lsls r0, r1, #3 adds r0, r0, r1 strb r0, [r2] mov r8, r3 b _08020BE6 .align 2, 0 _08020BC0: .4byte 0x0000020A _08020BC4: .4byte 0x02032EE0 _08020BC8: .4byte 0x0000FFFF _08020BCC: .4byte 0x0000061C _08020BD0: .4byte gMain _08020BD4: .4byte 0x00000744 _08020BD8: lsls r2, r2, #0x10 asrs r1, r2, #0x10 ldr r3, _08020C48 @ =0x00000744 adds r0, r4, r3 adds r0, r0, r1 strb r5, [r0] mov r8, r2 _08020BE6: ldr r3, _08020C4C @ =0x040000D4 ldr r4, _08020C50 @ =0x020314E0 ldr r0, [r4] mov r5, r8 asrs r2, r5, #0x10 ldr r7, _08020C48 @ =0x00000744 adds r0, r0, r7 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08020C54 @ =0x084C07EC adds r0, r0, r1 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r1, _08020C58 @ =0x06010480 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _08020C5C @ =0x800000C0 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, r4 ldr r2, _08020C60 @ =0x086ADEE0 mov r8, r2 _08020C1C: mov r3, sl ldr r1, [r3] ldr r4, _08020C64 @ =0x0000020A adds r0, r1, r4 ldrb r0, [r0] subs r0, #0x11 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #6 bhi _08020C76 ldr r5, _08020C68 @ =gMain ldr r0, [r5, #0x4c] movs r2, #3 ands r0, r2 lsrs r0, r0, #1 cmp r0, #0 beq _08020C70 adds r1, #0x4c ldr r0, _08020C6C @ =0x0000FFFD strh r0, [r1] b _08020C76 .align 2, 0 _08020C48: .4byte 0x00000744 _08020C4C: .4byte 0x040000D4 _08020C50: .4byte 0x020314E0 _08020C54: .4byte 0x084C07EC _08020C58: .4byte 0x06010480 _08020C5C: .4byte 0x800000C0 _08020C60: .4byte 0x086ADEE0 _08020C64: .4byte 0x0000020A _08020C68: .4byte gMain _08020C6C: .4byte 0x0000FFFD _08020C70: adds r0, r1, #0 adds r0, #0x4c strh r2, [r0] _08020C76: mov r7, sl ldr r3, [r7] ldr r1, _08020CD8 @ =0x0000020A adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, r8 ldrh r5, [r0] movs r2, #0xe1 lsls r2, r2, #1 adds r0, r3, r2 movs r1, #0 ldrsb r1, [r0, r1] ldr r4, _08020CDC @ =gMain ldr r0, [r4, #0x44] adds r0, #0x98 ldr r6, [r0] subs r2, r1, #1 movs r0, #0xb1 adds r1, r2, #0 muls r1, r0, r1 adds r0, r3, #0 adds r0, #0x58 ldrh r0, [r0] subs r0, #0x10 subs r1, r1, r0 strh r1, [r6, #2] ldr r7, _08020CE0 @ =0x0000061C adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08020CE8 adds r0, r3, #0 adds r0, #0x5a ldrh r1, [r0] movs r4, #0xbe lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r7, _08020CE4 @ =0x000001E3 adds r0, r3, r7 adds r0, r0, r2 movs r1, #0 b _08020CF4 .align 2, 0 _08020CD8: .4byte 0x0000020A _08020CDC: .4byte gMain _08020CE0: .4byte 0x0000061C _08020CE4: .4byte 0x000001E3 _08020CE8: movs r0, #0xb4 strh r0, [r6, #4] ldr r1, _08020E14 @ =0x000001E3 adds r0, r3, r1 adds r0, r0, r2 movs r1, #1 _08020CF4: strb r1, [r0] movs r4, #0 lsls r1, r5, #0x10 ldr r2, _08020E18 @ =0x03005000 mov sb, r2 ldr r3, _08020E1C @ =0x086B4922 mov r8, r3 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov ip, r0 ldr r5, _08020E20 @ =0xFFFFFE00 mov sl, r5 _08020D10: lsls r3, r4, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 add r2, sb lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, ip add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08020E24 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r4, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _08020D10 _08020D82: ldr r0, _08020E28 @ =gMain ldr r1, [r0, #0x44] ldr r6, [r1, #0x74] ldrh r1, [r6] cmp r1, #0 bne _08020D90 b _08020EA4 _08020D90: movs r2, #0 ldr r3, _08020E2C @ =0x040000D4 mov sl, r3 _08020D96: lsls r2, r2, #0x10 asrs r5, r2, #0x10 ldr r4, _08020E28 @ =gMain ldr r1, [r4, #0x44] lsls r0, r5, #2 adds r0, r0, r1 ldr r6, [r0, #0x74] movs r0, #0xb1 adds r1, r5, #0 muls r1, r0, r1 ldr r7, _08020E30 @ =0x020314E0 ldr r4, [r7] adds r0, r4, #0 adds r0, #0x58 ldrh r0, [r0] subs r0, #0x10 subs r1, r1, r0 strh r1, [r6, #2] ldr r1, _08020E14 @ =0x000001E3 adds r0, r4, r1 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r2 cmp r0, #0 beq _08020E44 ldr r2, _08020E28 @ =gMain ldr r0, [r2, #0x50] movs r1, #5 bl __umodsi3 cmp r0, #0 bne _08020E02 ldr r3, _08020E34 @ =0x00000744 adds r0, r4, r3 adds r0, r0, r5 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08020E38 @ =0x084C07EC adds r0, r0, r1 mov r4, sl str r0, [r4] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #7 ldr r5, _08020E3C @ =0x06010480 adds r0, r0, r5 str r0, [r4, #4] ldr r0, _08020E40 @ =0x800000C0 str r0, [r4, #8] ldr r0, [r4, #8] _08020E02: ldr r7, _08020E30 @ =0x020314E0 ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r2, #0xbe lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 b _08020E46 .align 2, 0 _08020E14: .4byte 0x000001E3 _08020E18: .4byte 0x03005000 _08020E1C: .4byte 0x086B4922 _08020E20: .4byte 0xFFFFFE00 _08020E24: .4byte 0x000001FF _08020E28: .4byte gMain _08020E2C: .4byte 0x040000D4 _08020E30: .4byte 0x020314E0 _08020E34: .4byte 0x00000744 _08020E38: .4byte 0x084C07EC _08020E3C: .4byte 0x06010480 _08020E40: .4byte 0x800000C0 _08020E44: movs r0, #0xc8 _08020E46: strh r0, [r6, #4] movs r4, #0 ldr r7, _08020EB4 @ =0x03005000 ldr r3, _08020EB8 @ =0xFFFFFE00 mov sb, r3 _08020E50: lsls r3, r4, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r4, #2 ldrsh r1, [r5, r4] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r4, _08020EBC @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r4, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08020E50 movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08020EA4 b _08020D96 _08020EA4: 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 _08020EB4: .4byte 0x03005000 _08020EB8: .4byte 0xFFFFFE00 _08020EBC: .4byte 0x000001FF thumb_func_start sub_20EC0 sub_20EC0: @ 0x08020EC0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r0, _08020F24 @ =gMain ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r7, [r0] ldr r0, _08020F28 @ =0x020314E0 ldr r2, [r0] movs r1, #0xe0 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] cmp r1, #0 bne _08020EE6 b _08021220 _08020EE6: movs r0, #0xc8 lsls r0, r0, #2 cmp r1, r0 bne _08020F5C movs r0, #1 strh r0, [r7] movs r1, #0xdf lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08020F34 movs r0, #0xfe lsls r0, r0, #1 adds r1, r2, r0 ldr r0, _08020F2C @ =0x00000442 str r0, [r1] movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08020F30 @ =0x00001248 str r0, [r1] movs r0, #0x81 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0 strb r0, [r1] b _08021210 .align 2, 0 _08020F24: .4byte gMain _08020F28: .4byte 0x020314E0 _08020F2C: .4byte 0x00000442 _08020F30: .4byte 0x00001248 _08020F34: movs r0, #0xfe lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0xfa lsls r0, r0, #3 str r0, [r1] movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08020F58 @ =0x00000EEC str r0, [r1] movs r0, #0x81 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #4 strb r0, [r1] b _08021210 .align 2, 0 _08020F58: .4byte 0x00000EEC _08020F5C: ldr r0, _08021084 @ =0x0000031F cmp r1, r0 bne _08020F82 movs r1, #0xdf lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _08020F82 ldr r1, _08021088 @ =0x040000D4 ldr r0, _0802108C @ =0x084C07EC str r0, [r1] ldr r0, _08021090 @ =0x06010600 str r0, [r1, #4] ldr r0, _08021094 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] _08020F82: ldr r4, _08021098 @ =0x086ADF90 ldr r2, _0802109C @ =0x020314E0 mov sl, r2 ldr r3, [r2] movs r1, #0x81 lsls r1, r1, #2 adds r0, r3, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 adds r0, r2, r4 mov r8, r0 subs r1, #8 mov sb, r1 adds r0, r3, r1 ldr r0, [r0] adds r0, #0x78 mov ip, r0 mov r0, r8 ldr r0, [r0] mov r1, ip subs r5, r0, r1 adds r4, #4 adds r2, r2, r4 movs r0, #0x80 lsls r0, r0, #2 mov r8, r0 add r3, r8 ldr r0, [r3] adds r0, #0xa0 ldr r1, [r2] subs r6, r1, r0 adds r1, r5, #0 muls r1, r5, r1 adds r0, r6, #0 muls r0, r6, r0 adds r1, r1, r0 str r1, [sp, #8] lsls r0, r5, #0x10 asrs r0, r0, #0x10 rsbs r1, r6, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r6, _080210A0 @ =0x00004E20 adds r0, r1, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp] adds r0, r5, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r6, #0 bl __divsi3 str r0, [sp, #4] ldr r0, _080210A4 @ =0x086AD788 lsrs r4, r4, #0x1d lsls r4, r4, #1 adds r4, r4, r0 ldr r0, _080210A8 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x18 bl __umodsi3 lsrs r0, r0, #3 ldrh r4, [r4] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 mov r1, sl ldr r5, [r1] mov r2, sb adds r1, r5, r2 ldr r0, [r1] ldr r2, [sp] adds r0, r0, r2 str r0, [r1] mov r0, r8 adds r4, r5, r0 ldr r0, [r4] ldr r2, [sp, #4] adds r0, r0, r2 str r0, [r4] ldrh r0, [r7] cmp r0, #0 beq _0802114A ldr r0, [r1] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r0, [r4] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _080210AC movs r0, #0xb4 strh r0, [r7, #4] b _080210B6 .align 2, 0 _08021084: .4byte 0x0000031F _08021088: .4byte 0x040000D4 _0802108C: .4byte 0x084C07EC _08021090: .4byte 0x06010600 _08021094: .4byte 0x800000C0 _08021098: .4byte 0x086ADF90 _0802109C: .4byte 0x020314E0 _080210A0: .4byte 0x00004E20 _080210A4: .4byte 0x086AD788 _080210A8: .4byte gMain _080210AC: movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _080210B6 strh r1, [r7, #4] _080210B6: ldr r2, _080211B8 @ =0x040000D4 lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r1, #0x1e lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _080211BC @ =0x083E85AC adds r0, r0, r1 str r0, [r2] ldr r0, _080211C0 @ =0x060112A0 str r0, [r2, #4] ldr r0, _080211C4 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r6, _080211C8 @ =0x03005000 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 ldr r2, _080211CC @ =0xFFFFFE00 mov r8, r2 _080210E2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] mov r0, sb ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x30 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080211D0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _080210E2 _0802114A: ldr r0, _080211D4 @ =0x000009C3 ldr r1, [sp, #8] cmp r1, r0 bgt _08021210 ldr r3, _080211D8 @ =0x020314E0 ldr r1, [r3] movs r2, #0x81 lsls r2, r2, #2 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 movs r5, #0 strb r0, [r1] ldr r2, [r3] movs r1, #0xdf lsls r1, r1, #1 adds r0, r2, r1 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bne _080211EC adds r1, #0x46 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08021210 ldr r1, _080211B8 @ =0x040000D4 ldr r0, _080211DC @ =0x084C156C str r0, [r1] ldr r0, _080211E0 @ =0x06010600 str r0, [r1, #4] ldr r0, _080211E4 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xf1 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #2 strb r0, [r1] ldr r0, _080211E8 @ =gMain ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r5, [r0] ldr r0, [r3] movs r1, #0xe0 lsls r1, r1, #1 adds r0, r0, r1 strh r4, [r0] movs r0, #0x75 bl m4aSongNumStart b _08021210 .align 2, 0 _080211B8: .4byte 0x040000D4 _080211BC: .4byte 0x083E85AC _080211C0: .4byte 0x060112A0 _080211C4: .4byte 0x80000090 _080211C8: .4byte 0x03005000 _080211CC: .4byte 0xFFFFFE00 _080211D0: .4byte 0x000001FF _080211D4: .4byte 0x000009C3 _080211D8: .4byte 0x020314E0 _080211DC: .4byte 0x084C156C _080211E0: .4byte 0x06010600 _080211E4: .4byte 0x800000C0 _080211E8: .4byte gMain _080211EC: movs r1, #0x81 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _08021210 ldr r0, _08021230 @ =gMain ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r5, [r0] movs r0, #0xe0 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #1 strh r0, [r1] _08021210: ldr r0, _08021234 @ =0x020314E0 ldr r1, [r0] movs r2, #0xe0 lsls r2, r2, #1 adds r1, r1, r2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _08021220: add sp, #0xc 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 _08021230: .4byte gMain _08021234: .4byte 0x020314E0 thumb_func_start sub_21238 sub_21238: @ 0x08021238 push {r4, r5, lr} lsls r0, r0, #0x10 cmp r0, #0 beq _0802127A ldr r3, _080212E0 @ =0x020314E0 ldr r0, [r3] ldr r1, _080212E4 @ =0x00000714 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r3] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r1, [r0] ldr r0, [r3] adds r1, r0, r2 ldrb r1, [r1] ldr r4, _080212E8 @ =0x00000711 adds r0, r0, r4 strb r1, [r0] ldr r0, [r3] adds r1, r0, r2 ldrb r1, [r1] adds r4, #1 adds r0, r0, r4 strb r1, [r0] ldr r0, [r3] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _080212EC @ =0x00000713 adds r0, r0, r2 strb r1, [r0] _0802127A: ldr r5, _080212E0 @ =0x020314E0 ldr r0, [r5] movs r4, #0xe6 lsls r4, r4, #3 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _080212F0 @ =0x000005F3 adds r0, r0, r2 strb r1, [r0] ldr r1, [r5] movs r0, #0x16 ldrsb r0, [r1, r0] cmp r0, #2 bne _080212A2 movs r0, #0x14 ldrsb r0, [r1, r0] cmp r0, #2 bgt _080212C0 _080212A2: adds r0, r1, #0 adds r0, #0x72 ldrb r0, [r0] movs r4, #0xf ands r4, r0 cmp r4, #0 bne _080212C0 movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r1, _080212F4 @ =0x000006C4 adds r0, r0, r1 strb r4, [r0] _080212C0: ldr r0, _080212E0 @ =0x020314E0 ldr r2, [r0] ldr r0, [r2, #0x14] ldr r1, _080212F8 @ =0x00FF00FF ands r0, r1 ldr r1, _080212FC @ =0x00020006 cmp r0, r1 bne _080212DA movs r4, #0xbc lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0 strb r0, [r1] _080212DA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080212E0: .4byte 0x020314E0 _080212E4: .4byte 0x00000714 _080212E8: .4byte 0x00000711 _080212EC: .4byte 0x00000713 _080212F0: .4byte 0x000005F3 _080212F4: .4byte 0x000006C4 _080212F8: .4byte 0x00FF00FF _080212FC: .4byte 0x00020006 thumb_func_start sub_21300 sub_21300: @ 0x08021300 ldr r2, _08021318 @ =0x020314E0 ldr r1, [r2] movs r3, #0 movs r0, #1 strb r0, [r1, #0x17] ldr r0, [r2] movs r1, #0 strh r3, [r0, #0x18] ldr r2, _0802131C @ =0x000006DD adds r0, r0, r2 strb r1, [r0] bx lr .align 2, 0 _08021318: .4byte 0x020314E0 _0802131C: .4byte 0x000006DD thumb_func_start sub_21320 sub_21320: @ 0x08021320 push {r4, lr} ldr r1, _08021340 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] subs r0, #1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r1, #0 cmp r0, #6 bls _08021336 b _0802150C _08021336: lsls r0, r0, #2 ldr r1, _08021344 @ =_08021348 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021340: .4byte 0x020314E0 _08021344: .4byte _08021348 _08021348: @ jump table .4byte _08021364 @ case 0 .4byte _080213B2 @ case 1 .4byte _080213E8 @ case 2 .4byte _0802144C @ case 3 .4byte _080214CC @ case 4 .4byte _080214E0 @ case 5 .4byte _080214F8 @ case 6 _08021364: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #8 bls _0802136E b _0802150C _0802136E: adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bhi _08021386 movs r0, #0xe6 lsls r0, r0, #3 adds r1, r1, r0 movs r0, #1 strb r0, [r1] b _0802150C _08021386: cmp r0, #8 beq _0802138C b _0802150C _0802138C: bl sub_219A8 ldr r0, [r4] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r4] movs r2, #0xe1 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0 str r1, [r0] movs r0, #1 bl sub_1C7F4 ldr r1, [r4] b _080214EA _080213B2: bl sub_219EC ldr r4, _080213E4 @ =0x020314E0 ldr r0, [r4] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080213CE movs r0, #1 movs r1, #0 bl sub_1C7F4 _080213CE: ldr r1, [r4] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _080213E0 b _0802150C _080213E0: b _080214EA .align 2, 0 _080213E4: .4byte 0x020314E0 _080213E8: ldr r0, [r4] ldr r3, _08021440 @ =0x00000714 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, [r4] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] subs r3, #3 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08021444 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] bl sub_29D9C ldr r0, [r4] ldr r3, _08021448 @ =0x0000062D adds r1, r0, r3 ldrb r0, [r1] cmp r0, #0x62 bhi _0802150C adds r0, #1 strb r0, [r1] b _0802150C .align 2, 0 _08021440: .4byte 0x00000714 _08021444: .4byte 0x00000713 _08021448: .4byte 0x0000062D _0802144C: ldr r0, _08021464 @ =0x020314E0 ldr r2, [r0] ldrh r0, [r2, #0x28] adds r1, r0, #0 cmp r1, #0x94 bne _08021468 adds r0, #1 strh r0, [r2, #0x28] bl sub_2A054 b _08021484 .align 2, 0 _08021464: .4byte 0x020314E0 _08021468: cmp r1, #0x8b beq _08021484 cmp r1, #0x18 bne _0802147A movs r0, #0 movs r1, #0 bl sub_1C7F4 b _08021484 _0802147A: cmp r1, #0 bne _08021484 ldrb r0, [r2, #0x17] adds r0, #1 strb r0, [r2, #0x17] _08021484: ldr r4, _080214C0 @ =0x020314E0 ldr r0, [r4] ldr r1, _080214C4 @ =0x000006DD adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080214B4 bl sub_2A354 ldr r1, [r4] ldr r3, _080214C8 @ =0x000006DE adds r2, r1, r3 ldrh r0, [r2] cmp r0, #0xb3 bhi _080214B4 movs r0, #0x8c strh r0, [r1, #0x28] ldrh r0, [r2] cmp r0, #0xb3 bne _080214B4 movs r0, #0x1e strh r0, [r1, #0x28] _080214B4: ldr r0, _080214C0 @ =0x020314E0 ldr r1, [r0] movs r0, #0 strh r0, [r1, #0x18] b _0802150C .align 2, 0 _080214C0: .4byte 0x020314E0 _080214C4: .4byte 0x000006DD _080214C8: .4byte 0x000006DE _080214CC: bl sub_219EC ldr r0, _080214DC @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r0, #0 strh r0, [r1] b _080214E6 .align 2, 0 _080214DC: .4byte gMain _080214E0: movs r0, #1 bl sub_21238 _080214E6: ldr r0, _080214F4 @ =0x020314E0 ldr r1, [r0] _080214EA: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _0802150C .align 2, 0 _080214F4: .4byte 0x020314E0 _080214F8: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0 beq _08021506 subs r0, #1 strh r0, [r1, #0x18] b _0802150C _08021506: movs r0, #1 bl sub_19B64 _0802150C: pop {r4} pop {r0} bx r0 thumb_func_start sub_21514 sub_21514: @ 0x08021514 push {r4, r5, lr} ldr r5, _0802156C @ =0x020314E0 ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r4, #0 strb r4, [r0] ldr r0, [r5] ldr r1, _08021570 @ =0x000005F3 adds r0, r0, r1 strb r4, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r1, _08021574 @ =0x000006C4 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r1, #0x5f adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] subs r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] subs r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r1, #1 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r1, #1 adds r0, r0, r1 strb r4, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0802156C: .4byte 0x020314E0 _08021570: .4byte 0x000005F3 _08021574: .4byte 0x000006C4 thumb_func_start sub_21578 sub_21578: @ 0x08021578 push {r4, lr} ldr r0, _080215A8 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _0802161C ldr r4, _080215AC @ =0x020314E0 ldr r0, [r4] ldr r1, _080215B0 @ =0x00000283 adds r0, r0, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bls _0802159C b _080216AE _0802159C: lsls r0, r0, #2 ldr r1, _080215B4 @ =_080215B8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080215A8: .4byte gMain _080215AC: .4byte 0x020314E0 _080215B0: .4byte 0x00000283 _080215B4: .4byte _080215B8 _080215B8: @ jump table .4byte _080215CC @ case 0 .4byte _080215E8 @ case 1 .4byte _080215CC @ case 2 .4byte _080215E8 @ case 3 .4byte _08021604 @ case 4 _080215CC: ldr r0, [r4] ldr r2, _080215E4 @ =0x000006EC adds r0, r0, r2 movs r1, #0x2a strb r1, [r0] ldr r0, [r4] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #3 b _080216AC .align 2, 0 _080215E4: .4byte 0x000006EC _080215E8: ldr r0, [r4] ldr r2, _08021600 @ =0x000006EC adds r0, r0, r2 movs r1, #0x2c strb r1, [r0] ldr r0, [r4] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #5 b _080216AC .align 2, 0 _08021600: .4byte 0x000006EC _08021604: ldr r0, [r4] ldr r2, _08021618 @ =0x000006EC adds r0, r0, r2 movs r1, #0x2d strb r1, [r0] ldr r0, [r4] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 b _080216AA .align 2, 0 _08021618: .4byte 0x000006EC _0802161C: ldr r4, _08021640 @ =0x020314E0 ldr r0, [r4] ldr r2, _08021644 @ =0x00000283 adds r0, r0, r2 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080216AE lsls r0, r0, #2 ldr r1, _08021648 @ =_0802164C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021640: .4byte 0x020314E0 _08021644: .4byte 0x00000283 _08021648: .4byte _0802164C _0802164C: @ jump table .4byte _08021660 @ case 0 .4byte _0802167C @ case 1 .4byte _08021660 @ case 2 .4byte _0802167C @ case 3 .4byte _08021698 @ case 4 _08021660: ldr r0, [r4] ldr r1, _08021678 @ =0x000006EC adds r0, r0, r1 movs r1, #0x29 strb r1, [r0] ldr r0, [r4] movs r2, #0xa1 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #2 b _080216AC .align 2, 0 _08021678: .4byte 0x000006EC _0802167C: ldr r0, [r4] ldr r1, _08021694 @ =0x000006EC adds r0, r0, r1 movs r1, #0x2b strb r1, [r0] ldr r0, [r4] movs r2, #0xa1 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #4 b _080216AC .align 2, 0 _08021694: .4byte 0x000006EC _08021698: ldr r0, [r4] ldr r1, _080216D8 @ =0x000006EC adds r0, r0, r1 movs r1, #0x2d strb r1, [r0] ldr r0, [r4] movs r2, #0xa1 lsls r2, r2, #2 adds r0, r0, r2 _080216AA: movs r1, #6 _080216AC: strb r1, [r0] _080216AE: ldr r2, [r4] adds r0, r2, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080216DC movs r0, #0x15 ldrsb r0, [r2, r0] cmp r0, #2 bne _080216DC movs r1, #0 movs r0, #0x96 strh r0, [r2, #0x28] movs r0, #3 strb r0, [r2, #0x17] ldr r0, [r4] strh r1, [r0, #0x18] b _080216F4 .align 2, 0 _080216D8: .4byte 0x000006EC _080216DC: ldr r0, [r4] movs r1, #0 strb r1, [r0, #0x17] ldr r0, [r4] strh r1, [r0, #0x18] movs r2, #0xe1 lsls r2, r2, #3 adds r0, r0, r2 str r1, [r0] movs r0, #7 bl sub_1C7F4 _080216F4: pop {r4} pop {r0} bx r0 thumb_func_start sub_216FC sub_216FC: @ 0x080216FC push {r4, lr} ldr r1, _0802171C @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r1, #0 cmp r0, #8 bls _08021710 b _080219A2 _08021710: lsls r0, r0, #2 ldr r1, _08021720 @ =_08021724 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802171C: .4byte 0x020314E0 _08021720: .4byte _08021724 _08021724: @ jump table .4byte _08021748 @ case 0 .4byte _0802175C @ case 1 .4byte _080217FC @ case 2 .4byte _08021824 @ case 3 .4byte _08021850 @ case 4 .4byte _08021938 @ case 5 .4byte _08021960 @ case 6 .4byte _08021988 @ case 7 .4byte _0802199C @ case 8 _08021748: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0x3b bhi _08021756 adds r0, #1 strh r0, [r1, #0x18] b _080219A2 _08021756: movs r0, #0 strh r0, [r1, #0x18] b _08021990 _0802175C: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #8 bls _08021766 b _080219A2 _08021766: adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bhi _0802177E movs r0, #0xe6 lsls r0, r0, #3 adds r1, r1, r0 movs r0, #1 strb r0, [r1] b _080219A2 _0802177E: cmp r0, #8 beq _08021784 b _080219A2 _08021784: ldr r2, _080217A4 @ =0x00000283 adds r0, r1, r2 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080217CE lsls r0, r0, #2 ldr r1, _080217A8 @ =_080217AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080217A4: .4byte 0x00000283 _080217A8: .4byte _080217AC _080217AC: @ jump table .4byte _080217C0 @ case 0 .4byte _080217C8 @ case 1 .4byte _080217C0 @ case 2 .4byte _080217C8 @ case 3 .4byte _080217C8 @ case 4 _080217C0: movs r0, #0xe bl m4aSongNumStart b _080217CE _080217C8: movs r0, #0xf bl m4aSongNumStart _080217CE: bl sub_219A8 ldr r2, _080217F8 @ =0x020314E0 ldr r0, [r2] movs r3, #0xe6 lsls r3, r3, #3 adds r0, r0, r3 movs r3, #0 movs r1, #2 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r2] movs r1, #0xe1 lsls r1, r1, #3 adds r0, r0, r1 str r3, [r0] b _080219A2 .align 2, 0 _080217F8: .4byte 0x020314E0 _080217FC: bl sub_219EC movs r0, #7 movs r1, #0 bl sub_1C7F4 ldr r0, _08021820 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0802181C b _080219A2 _0802181C: b _08021990 .align 2, 0 _08021820: .4byte 0x020314E0 _08021824: ldr r1, [r3] ldrb r0, [r1, #0x17] adds r0, #1 movs r2, #0 strb r0, [r1, #0x17] ldr r0, [r3] strh r2, [r0, #0x18] movs r3, #0xe1 lsls r3, r3, #3 adds r1, r0, r3 str r2, [r1] ldr r1, _0802184C @ =0x000006EC adds r0, r0, r1 movs r1, #0x2e strb r1, [r0] movs r0, #7 movs r1, #0 bl sub_1C7F4 b _080219A2 .align 2, 0 _0802184C: .4byte 0x000006EC _08021850: ldr r4, _08021874 @ =0x020314E0 ldr r1, [r4] ldrh r0, [r1, #0x28] cmp r0, #0x91 bne _080218C4 adds r0, #1 strh r0, [r1, #0x28] ldr r0, _08021878 @ =gMain ldrh r2, [r0, #0x18] movs r0, #1 ands r0, r2 cmp r0, #0 beq _0802187C movs r0, #0x90 strh r0, [r1, #0x28] bl m4aMPlayAllStop b _080218B0 .align 2, 0 _08021874: .4byte 0x020314E0 _08021878: .4byte gMain _0802187C: movs r0, #2 ands r0, r2 cmp r0, #0 beq _080218B0 bl m4aMPlayAllStop movs r0, #0x66 bl m4aSongNumStart ldr r1, [r4] movs r0, #0x3c strh r0, [r1, #0x28] movs r0, #6 strb r0, [r1, #0x17] ldr r1, [r4] ldr r2, _08021924 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080218B0 ldr r3, _08021928 @ =0x000006EE adds r1, r1, r3 movs r0, #0x78 strh r0, [r1] _080218B0: ldr r0, _0802192C @ =0x020314E0 ldr r0, [r0] ldr r1, _08021930 @ =0x000006EC adds r0, r0, r1 movs r1, #0x2e strb r1, [r0] movs r0, #7 movs r1, #0 bl sub_1C7F4 _080218C4: ldr r4, _0802192C @ =0x020314E0 ldr r0, [r4] ldrh r0, [r0, #0x28] cmp r0, #0x82 bne _080218E2 movs r0, #0x9f bl m4aSongNumStart ldr r1, [r4] movs r0, #0x41 strh r0, [r1, #0x18] ldr r1, _08021934 @ =gMain ldrh r0, [r1, #0x38] movs r0, #0x9f strh r0, [r1, #0x38] _080218E2: ldr r1, [r4] ldrh r0, [r1, #0x28] cmp r0, #0x7d bne _080218EE adds r0, #1 strh r0, [r1, #0x28] _080218EE: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080219A2 movs r2, #0x88 lsls r2, r2, #5 adds r1, r1, r2 movs r0, #1 strb r0, [r1] ldr r3, [r4] ldrh r0, [r3, #0x18] subs r0, #1 strh r0, [r3, #0x18] ldr r2, _08021934 @ =gMain ldrh r0, [r3, #0x18] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3, #0x18] cmp r0, #0 bne _080219A2 ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] b _080219A2 .align 2, 0 _08021924: .4byte 0x00000714 _08021928: .4byte 0x000006EE _0802192C: .4byte 0x020314E0 _08021930: .4byte 0x000006EC _08021934: .4byte gMain _08021938: ldr r2, [r3] ldrh r0, [r2, #0x18] cmp r0, #0x1d bhi _08021946 adds r0, #1 strh r0, [r2, #0x18] b _080219A2 _08021946: movs r1, #0 movs r0, #0 strh r0, [r2, #0x18] strb r1, [r2, #0x17] ldr r0, [r3] ldr r3, _0802195C @ =0x00000282 adds r0, r0, r3 strb r1, [r0] bl sub_1C73C b _080219A2 .align 2, 0 _0802195C: .4byte 0x00000282 _08021960: bl sub_219EC ldr r0, _08021980 @ =gMain ldr r0, [r0, #0x44] ldr r0, [r0, #0x34] movs r3, #0 strh r3, [r0] ldr r2, _08021984 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r2] strh r3, [r0, #0x18] b _080219A2 .align 2, 0 _08021980: .4byte gMain _08021984: .4byte 0x020314E0 _08021988: bl sub_21514 ldr r0, _08021998 @ =0x020314E0 ldr r1, [r0] _08021990: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _080219A2 .align 2, 0 _08021998: .4byte 0x020314E0 _0802199C: movs r0, #1 bl sub_19B64 _080219A2: pop {r4} pop {r0} bx r0 thumb_func_start sub_219A8 sub_219A8: @ 0x080219A8 ldr r1, _080219D0 @ =0x040000D4 ldr r0, _080219D4 @ =0x0844838C str r0, [r1] ldr r0, _080219D8 @ =0x060113C0 str r0, [r1, #4] ldr r0, _080219DC @ =0x80000180 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080219E0 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r2, #1 movs r0, #1 strh r0, [r1] ldr r0, _080219E4 @ =0x020314E0 ldr r0, [r0] ldr r1, _080219E8 @ =0x000005F3 adds r0, r0, r1 strb r2, [r0] bx lr .align 2, 0 _080219D0: .4byte 0x040000D4 _080219D4: .4byte 0x0844838C _080219D8: .4byte 0x060113C0 _080219DC: .4byte 0x80000180 _080219E0: .4byte gMain _080219E4: .4byte 0x020314E0 _080219E8: .4byte 0x000005F3 thumb_func_start sub_219EC sub_219EC: @ 0x080219EC push {r4, r5, r6, r7, lr} ldr r0, _08021A58 @ =gMain ldr r0, [r0, #0x44] ldr r6, [r0, #0x34] ldr r5, _08021A5C @ =0x020314E0 ldr r4, [r5] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] movs r1, #0x23 bl __umodsi3 movs r1, #7 bl __udivsi3 ldr r3, _08021A60 @ =0x0000020B adds r4, r4, r3 strb r0, [r4] ldrh r0, [r6] cmp r0, #0 beq _08021AE8 ldr r1, [r5] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0x8c lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08021A40 movs r0, #0xc8 strh r0, [r6, #4] _08021A40: ldr r4, [r5] adds r0, r4, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08021A64 movs r0, #0xc8 strh r0, [r6, #4] b _08021A9C .align 2, 0 _08021A58: .4byte gMain _08021A5C: .4byte 0x020314E0 _08021A60: .4byte 0x0000020B _08021A64: adds r3, r4, r3 movs r1, #0x83 lsls r1, r1, #2 adds r0, r4, r1 movs r1, #0 ldrsb r1, [r3, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 beq _08021A9C ldr r2, _08021AF0 @ =0x040000D4 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _08021AF4 @ =0x0844838C adds r0, r0, r1 str r0, [r2] ldr r0, _08021AF8 @ =0x060113C0 str r0, [r2, #4] ldr r0, _08021AFC @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r1, [r3] movs r2, #0x83 lsls r2, r2, #2 adds r0, r4, r2 strb r1, [r0] _08021A9C: movs r0, #0 ldr r7, _08021B00 @ =0x03005000 ldr r1, _08021B04 @ =0xFFFFFE00 mov ip, r1 _08021AA4: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08021B08 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _08021AA4 _08021AE8: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021AF0: .4byte 0x040000D4 _08021AF4: .4byte 0x0844838C _08021AF8: .4byte 0x060113C0 _08021AFC: .4byte 0x80000180 _08021B00: .4byte 0x03005000 _08021B04: .4byte 0xFFFFFE00 _08021B08: .4byte 0x000001FF thumb_func_start sub_21B0C sub_21B0C: @ 0x08021B0C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r0, _08021BE8 @ =gMain ldr r0, [r0, #0x44] ldr r7, [r0, #0x44] mov r0, sp movs r1, #0 movs r2, #6 bl memset ldr r5, _08021BEC @ =0x020314E0 ldr r6, [r5] movs r0, #0xe5 lsls r0, r0, #1 adds r3, r6, r0 movs r1, #0xe6 lsls r1, r1, #1 adds r4, r6, r1 movs r2, #0 ldrsh r1, [r3, r2] movs r2, #0 ldrsh r0, [r4, r2] cmp r1, r0 bne _08021B44 b _08021C5C _08021B44: cmp r1, #0xc bne _08021C40 movs r0, #0xe7 lsls r0, r0, #1 mov sb, r0 adds r1, r6, r0 ldrh r0, [r1] adds r2, r0, #0 cmp r2, #0 beq _08021BF0 subs r0, #1 strh r0, [r1] ldrh r4, [r1] adds r0, r4, #0 movs r1, #0x14 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xa bl __udivsi3 adds r0, #0xc lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 cmp r4, #0x28 bhi _08021C14 cmp r4, #2 bls _08021B98 movs r1, #0xea lsls r1, r1, #1 adds r0, r6, r1 ldrh r1, [r0] adds r1, #3 strh r1, [r0] movs r2, #0xeb lsls r2, r2, #1 adds r1, r6, r2 ldrh r0, [r1] adds r0, #2 strh r0, [r1] _08021B98: ldr r5, [r5] mov r0, sb adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #7 movs r4, #0x28 movs r1, #0x28 bl __divsi3 adds r0, #0x80 movs r2, #0xed lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] movs r1, #0xec lsls r1, r1, #1 adds r5, r5, r1 strh r0, [r5] mov r5, sp ldrh r0, [r6] subs r0, r4, r0 lsls r0, r0, #4 movs r1, #0x28 bl __divsi3 strh r0, [r5, #2] mov r5, sp ldrh r0, [r6] subs r4, r4, r0 lsls r4, r4, #4 rsbs r4, r4, #0 adds r0, r4, #0 movs r1, #0x28 bl __divsi3 strh r0, [r5] mov r1, sp movs r0, #0 strh r0, [r1, #4] b _08021C14 .align 2, 0 _08021BE8: .4byte gMain _08021BEC: .4byte 0x020314E0 _08021BF0: movs r0, #0xd strh r0, [r4] strh r0, [r3] mov r8, r0 movs r1, #0xe8 lsls r1, r1, #1 adds r0, r6, r1 strh r2, [r0] movs r2, #0xeb lsls r2, r2, #1 adds r1, r6, r2 movs r0, #0x78 strh r0, [r1] movs r0, #0xee lsls r0, r0, #1 adds r1, r6, r0 movs r0, #0x3c strh r0, [r1] _08021C14: ldr r2, _08021C30 @ =0x040000D4 mov r1, r8 lsls r0, r1, #0x10 asrs r0, r0, #9 ldr r1, _08021C34 @ =0x084C00EC adds r0, r0, r1 str r0, [r2] ldr r0, _08021C38 @ =0x06010AE0 str r0, [r2, #4] ldr r0, _08021C3C @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] b _08021C5C .align 2, 0 _08021C30: .4byte 0x040000D4 _08021C34: .4byte 0x084C00EC _08021C38: .4byte 0x06010AE0 _08021C3C: .4byte 0x80000040 _08021C40: ldr r2, _08021C98 @ =0x040000D4 movs r1, #0 ldrsh r0, [r3, r1] lsls r0, r0, #7 ldr r1, _08021C9C @ =0x084C00EC adds r0, r0, r1 str r0, [r2] ldr r0, _08021CA0 @ =0x06010AE0 str r0, [r2, #4] ldr r0, _08021CA4 @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r0, [r3] strh r0, [r4] _08021C5C: ldr r0, _08021CA8 @ =0x020314E0 ldr r3, [r0] movs r2, #0xe8 lsls r2, r2, #1 adds r1, r3, r2 ldrh r2, [r1] adds r4, r0, #0 cmp r2, #0 beq _08021CAC subs r0, r2, #1 strh r0, [r1] movs r2, #0xeb lsls r2, r2, #1 adds r0, r3, r2 ldrh r0, [r0] adds r0, #0x50 strh r0, [r7, #4] ldrh r0, [r1] cmp r0, #0x13 bhi _08021CB0 adds r1, r0, #0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0x10 adds r2, #4 adds r1, r3, r2 strh r0, [r1] b _08021CB0 .align 2, 0 _08021C98: .4byte 0x040000D4 _08021C9C: .4byte 0x084C00EC _08021CA0: .4byte 0x06010AE0 _08021CA4: .4byte 0x80000040 _08021CA8: .4byte 0x020314E0 _08021CAC: movs r0, #0xb4 strh r0, [r7, #4] _08021CB0: ldr r1, [r4] movs r2, #0xea lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] adds r0, #0x77 strh r0, [r7, #2] adds r2, #4 adds r0, r1, r2 movs r2, #0 ldrsh r0, [r0, r2] movs r2, #0xed lsls r2, r2, #1 adds r1, r1, r2 movs r2, #0 ldrsh r1, [r1, r2] movs r2, #1 bl sub_7C0 movs r0, #0 ldr r6, _08021D6C @ =0x03005000 ldr r1, _08021D70 @ =0xFFFFFE00 mov ip, r1 movs r2, #4 rsbs r2, r2, #0 mov sb, r2 movs r1, #0xf rsbs r1, r1, #0 mov r8, r1 _08021CEA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 adds r4, r7, r4 ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 lsls r0, r5, #1 add r0, sp movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _08021D74 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #1] mov r0, sb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #3] mov r0, r8 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #3] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _08021CEA add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021D6C: .4byte 0x03005000 _08021D70: .4byte 0xFFFFFE00 _08021D74: .4byte 0x000001FF thumb_func_start sub_21D78 sub_21D78: @ 0x08021D78 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r7, _08021DD8 @ =0x0200EBC8 ldr r4, _08021DDC @ =0x020314E0 ldr r6, [r4] movs r0, #0xd2 lsls r0, r0, #1 adds r2, r6, r0 movs r3, #0 ldrsb r3, [r2, r3] cmp r3, #0 bne _08021E2C ldr r1, _08021DE0 @ =0x0000072E adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08021DEC ldr r1, _08021DE4 @ =0x00000281 adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08021DB0 b _08021F86 _08021DB0: subs r1, #0xdc adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08021DC0 b _08021F86 _08021DC0: movs r1, #1 strb r1, [r2] ldr r2, [r4] movs r4, #0xda lsls r4, r4, #1 adds r0, r2, r4 strh r3, [r0] ldr r3, _08021DE8 @ =0x000001A5 adds r0, r2, r3 strb r1, [r0] b _08021F86 .align 2, 0 _08021DD8: .4byte 0x0200EBC8 _08021DDC: .4byte 0x020314E0 _08021DE0: .4byte 0x0000072E _08021DE4: .4byte 0x00000281 _08021DE8: .4byte 0x000001A5 _08021DEC: movs r0, #0x13 ldrsb r0, [r6, r0] cmp r0, #6 bne _08021DF6 b _08021F86 _08021DF6: ldr r5, _08021E28 @ =0x000001A5 adds r0, r6, r5 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #1 beq _08021E04 b _08021F86 _08021E04: adds r0, r6, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08021E14 b _08021F86 _08021E14: strb r1, [r2] ldr r0, [r4] movs r4, #0xda lsls r4, r4, #1 adds r1, r0, r4 movs r2, #0 strh r3, [r1] adds r0, r0, r5 strb r2, [r0] b _08021F86 .align 2, 0 _08021E28: .4byte 0x000001A5 _08021E2C: ldr r5, _08021E7C @ =0x086AD456 movs r1, #0xda lsls r1, r1, #1 adds r0, r6, r1 ldrh r4, [r0] adds r0, r4, #0 movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf ldr r2, _08021E80 @ =0x000001A5 adds r1, r6, r2 movs r2, #0 ldrsb r2, [r1, r2] lsls r1, r2, #3 subs r1, r1, r2 lsls r1, r1, #1 adds r0, r0, r1 adds r0, r0, r5 ldrh r5, [r0] cmp r4, #0 bne _08021E94 movs r0, #1 strh r0, [r7] ldr r1, _08021E84 @ =0x040000D4 ldr r0, _08021E88 @ =0x083A8A8C str r0, [r1] ldr r0, _08021E8C @ =0x05000240 str r0, [r1, #4] ldr r0, _08021E90 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _08021E9E .align 2, 0 _08021E7C: .4byte 0x086AD456 _08021E80: .4byte 0x000001A5 _08021E84: .4byte 0x040000D4 _08021E88: .4byte 0x083A8A8C _08021E8C: .4byte 0x05000240 _08021E90: .4byte 0x80000010 _08021E94: cmp r4, #0x25 bne _08021E9E movs r0, #0xca bl m4aSongNumStart _08021E9E: ldr r4, _08021F90 @ =0x020314E0 ldr r0, [r4] movs r3, #0xda lsls r3, r3, #1 adds r0, r0, r3 ldrh r0, [r0] movs r1, #6 bl __umodsi3 lsls r0, r0, #0x10 mov r8, r4 cmp r0, #0 bne _08021ED4 ldr r2, _08021F94 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _08021F98 @ =0x084F6B0C adds r0, r0, r1 str r0, [r2] ldr r0, _08021F9C @ =0x06013D00 str r0, [r2, #4] ldr r0, _08021FA0 @ =0x80000280 str r0, [r2, #8] ldr r0, [r2, #8] _08021ED4: mov r4, r8 ldr r1, [r4] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0xb5 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x30 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 rsbs r1, r1, #0 cmp r0, r1 bge _08021EFC strh r1, [r7, #4] _08021EFC: movs r0, #0 ldr r6, _08021FA4 @ =0x03005000 ldr r1, _08021FA8 @ =0xFFFFFE00 mov ip, r1 _08021F04: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r7, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r6 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08021FAC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _08021F04 mov r3, r8 ldr r2, [r3] movs r4, #0xda lsls r4, r4, #1 adds r1, r2, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x28 bls _08021F86 ldr r1, _08021FB0 @ =0x000001A5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_4E9F0 mov r2, r8 ldr r0, [r2] movs r3, #0xd2 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, _08021FB4 @ =gMain ldr r4, _08021FB8 @ =0x00003B08 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08021F86: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021F90: .4byte 0x020314E0 _08021F94: .4byte 0x040000D4 _08021F98: .4byte 0x084F6B0C _08021F9C: .4byte 0x06013D00 _08021FA0: .4byte 0x80000280 _08021FA4: .4byte 0x03005000 _08021FA8: .4byte 0xFFFFFE00 _08021FAC: .4byte 0x000001FF _08021FB0: .4byte 0x000001A5 _08021FB4: .4byte gMain _08021FB8: .4byte 0x00003B08 thumb_func_start sub_21FBC sub_21FBC: @ 0x08021FBC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r5, _08022168 @ =gMain ldr r1, [r5, #0x44] ldr r7, [r1, #0x1c] ldr r3, _0802216C @ =0x086AD2DE ldr r4, _08022170 @ =0x020314E0 ldr r1, [r4] movs r2, #0xd3 lsls r2, r2, #1 adds r1, r1, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r1, r1, #1 adds r1, r1, r3 ldrh r1, [r1] lsls r1, r1, #3 ldr r2, _08022174 @ =0x086AD000 adds r1, r1, r2 mov r8, r1 lsls r0, r0, #0x10 mov sl, r4 cmp r0, #0 beq _0802202E ldrh r0, [r1, #6] movs r1, #0xa bl __udivsi3 ldr r4, _08022178 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #0xa ldr r6, _0802217C @ =0x08480E0C adds r0, r0, r6 str r0, [r4] ldr r0, _08022180 @ =0x06015DA0 str r0, [r4, #4] ldr r5, _08022184 @ =0x80000020 str r5, [r4, #8] ldr r0, [r4, #8] mov r3, r8 ldrh r0, [r3, #6] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xa adds r0, r0, r6 str r0, [r4] ldr r0, _08022188 @ =0x06015E60 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] _0802202E: ldrh r0, [r7] cmp r0, #0 beq _08022094 mov r4, sl ldr r0, [r4] movs r6, #0xdb lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] adds r0, #0x9c strh r0, [r7, #2] movs r0, #0x60 strh r0, [r7, #4] movs r5, #0 ldr r6, _0802218C @ =0x03005000 ldr r0, _08022190 @ =0xFFFFFE00 mov r8, r0 _08022050: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08022194 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08022050 _08022094: ldr r3, _08022168 @ =gMain ldr r0, [r3, #0x44] ldr r7, [r0, #0x20] mov r4, sl ldr r2, [r4] ldr r6, _08022198 @ =0x000001A5 adds r0, r2, r6 movs r1, #0 ldrsb r1, [r0, r1] rsbs r0, r1, #0 orrs r0, r1 lsrs r1, r0, #0x1f ldrh r0, [r7] cmp r0, #0 beq _0802214C movs r3, #0xdb lsls r3, r3, #1 adds r0, r2, r3 ldrh r0, [r0] adds r0, #0x88 strh r0, [r7, #2] movs r0, #0x58 strh r0, [r7, #4] movs r5, #0 ldr r4, _0802218C @ =0x03005000 mov r8, r4 ldr r6, _0802219C @ =0x086B47DE mov ip, r6 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 str r0, [sp, #8] ldr r0, _08022190 @ =0xFFFFFE00 mov sb, r0 _080220D8: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r4, [sp, #8] adds r0, r0, r4 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r4 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r4 add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _08022194 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #4 ble _080220D8 _0802214C: ldr r3, _08022168 @ =gMain ldr r0, [r3, #0x44] ldr r7, [r0, #0x18] ldrh r0, [r7] cmp r0, #0 bne _0802215A b _08022470 _0802215A: movs r4, #0x2a ldrsh r0, [r3, r4] cmp r0, #0x13 bgt _080221A0 movs r0, #0xb4 b _080221A2 .align 2, 0 _08022168: .4byte gMain _0802216C: .4byte 0x086AD2DE _08022170: .4byte 0x020314E0 _08022174: .4byte 0x086AD000 _08022178: .4byte 0x040000D4 _0802217C: .4byte 0x08480E0C _08022180: .4byte 0x06015DA0 _08022184: .4byte 0x80000020 _08022188: .4byte 0x06015E60 _0802218C: .4byte 0x03005000 _08022190: .4byte 0xFFFFFE00 _08022194: .4byte 0x000001FF _08022198: .4byte 0x000001A5 _0802219C: .4byte 0x086B47DE _080221A0: movs r0, #0x56 _080221A2: strh r0, [r7, #4] mov r5, sp ldr r4, _08022254 @ =0x086ADFC8 ldr r6, _08022258 @ =gMain ldr r0, [r6, #0x4c] movs r1, #0x1e bl __umodsi3 movs r1, #5 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] rsbs r0, r1, #0 strh r0, [r5] mov r0, sp strh r1, [r0, #2] add r1, sp, #4 ldrh r0, [r0] strh r0, [r1] mov r0, sp ldrh r0, [r0, #2] strh r0, [r1, #2] mov r0, sl ldr r2, [r0] ldr r3, _0802225C @ =0x000001A5 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0802226C movs r5, #0 movs r4, #0x28 adds r4, r4, r7 mov ip, r4 movs r6, #0x30 adds r6, r6, r7 mov sb, r6 ldr r6, _08022260 @ =0x03005000 ldr r0, _08022264 @ =0xFFFFFE00 mov r8, r0 _080221F8: lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsrs r0, r0, #0x1f adds r0, r4, r0 asrs r0, r0, #1 lsls r1, r0, #1 adds r0, r1, r0 lsls r0, r0, #3 add r1, sp ldrh r1, [r1] adds r1, #0x24 adds r0, r0, r1 strh r0, [r7, #2] lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08022268 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _080221F8 b _0802233E .align 2, 0 _08022254: .4byte 0x086ADFC8 _08022258: .4byte gMain _0802225C: .4byte 0x000001A5 _08022260: .4byte 0x03005000 _08022264: .4byte 0xFFFFFE00 _08022268: .4byte 0x000001FF _0802226C: ldr r3, _080222EC @ =0x00000281 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _080222FC movs r5, #0 movs r4, #0x28 adds r4, r4, r7 mov ip, r4 movs r6, #0x30 adds r6, r6, r7 mov sb, r6 ldr r6, _080222F0 @ =0x03005000 ldr r0, _080222F4 @ =0xFFFFFE00 mov r8, r0 _0802228E: lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsrs r0, r0, #0x1f adds r0, r4, r0 asrs r0, r0, #1 lsls r1, r0, #1 adds r0, r1, r0 lsls r0, r0, #3 add r1, sp ldrh r1, [r1] adds r1, #0x24 adds r0, r0, r1 strh r0, [r7, #2] lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080222F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _0802228E b _0802233E .align 2, 0 _080222EC: .4byte 0x00000281 _080222F0: .4byte 0x03005000 _080222F4: .4byte 0xFFFFFE00 _080222F8: .4byte 0x000001FF _080222FC: movs r5, #0 movs r3, #0x28 adds r3, r3, r7 mov ip, r3 movs r4, #0x30 adds r4, r4, r7 mov sb, r4 ldr r4, _08022354 @ =0x03005000 ldr r6, _08022358 @ =0xFFFFFE00 mov r8, r6 movs r6, #0xb4 _08022312: lsls r2, r5, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r5, r7, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r4 ldrh r3, [r1, #2] mov r0, r8 ands r0, r3 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r4 strb r6, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r5, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _08022312 _0802233E: mov r1, sl ldr r0, [r1] ldr r2, _0802235C @ =0x000001A5 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08022360 movs r0, #0xb4 b _08022376 .align 2, 0 _08022354: .4byte 0x03005000 _08022358: .4byte 0xFFFFFE00 _0802235C: .4byte 0x000001A5 _08022360: ldr r3, _08022370 @ =gMain movs r4, #0x2a ldrsh r0, [r3, r4] cmp r0, #0x13 bgt _08022374 movs r0, #0xb4 b _08022376 .align 2, 0 _08022370: .4byte gMain _08022374: movs r0, #0x56 _08022376: strh r0, [r7, #4] movs r0, #0x30 strh r0, [r7, #2] mov r6, sl ldr r0, [r6] movs r2, #0x97 lsls r2, r2, #2 adds r1, r0, r2 ldr r3, _080223D0 @ =0x0000025D adds r0, r0, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _080223DC mov r5, ip ldrh r2, [r7, #0x28] lsls r2, r2, #3 ldr r4, _080223D4 @ =0x03005000 adds r2, r2, r4 movs r6, #2 ldrsh r1, [r5, r6] adds r1, #0x30 subs r3, #0x5e adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080223D8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r2, [r7, #0x28] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r7, #4] ldrb r5, [r5, #4] adds r1, r1, r5 mov r4, sp ldrb r0, [r4, #4] adds r0, r0, r1 strb r0, [r2] b _080223F6 .align 2, 0 _080223D0: .4byte 0x0000025D _080223D4: .4byte 0x03005000 _080223D8: .4byte 0xFFFFFE00 _080223DC: ldrh r1, [r7, #0x28] lsls r1, r1, #3 ldr r6, _08022448 @ =0x03005000 adds r1, r1, r6 ldrh r2, [r1, #2] ldr r0, _0802244C @ =0xFFFFFE00 ands r0, r2 strh r0, [r1, #2] ldrh r0, [r7, #0x28] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] _080223F6: mov r1, sl ldr r0, [r1] movs r2, #0x97 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08022454 mov r5, sb ldrh r2, [r7, #0x30] lsls r2, r2, #3 ldr r3, _08022448 @ =0x03005000 adds r2, r2, r3 movs r4, #2 ldrsh r1, [r5, r4] movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r3, _08022450 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802244C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r2, [r7, #0x30] lsls r2, r2, #3 ldr r4, _08022448 @ =0x03005000 adds r2, r2, r4 ldrb r1, [r7, #4] ldrb r5, [r5, #4] adds r1, r1, r5 mov r6, sp ldrh r0, [r6, #6] adds r0, r0, r1 strb r0, [r2] b _08022470 .align 2, 0 _08022448: .4byte 0x03005000 _0802244C: .4byte 0xFFFFFE00 _08022450: .4byte 0x000001FF _08022454: ldrh r1, [r7, #0x30] lsls r1, r1, #3 ldr r0, _08022490 @ =0x03005000 adds r1, r1, r0 ldrh r2, [r1, #2] ldr r0, _08022494 @ =0xFFFFFE00 ands r0, r2 strh r0, [r1, #2] ldrh r0, [r7, #0x30] lsls r0, r0, #3 ldr r1, _08022490 @ =0x03005000 adds r0, r0, r1 movs r1, #0xb4 strb r1, [r0] _08022470: ldr r2, _08022498 @ =gMain ldr r0, [r2, #0x44] ldr r7, [r0, #0x24] ldrh r0, [r7] cmp r0, #0 bne _0802247E b _080225BE _0802247E: movs r0, #0x30 strh r0, [r7, #2] movs r3, #0x2a ldrsh r0, [r2, r3] cmp r0, #0x13 bgt _0802249C movs r0, #0xb4 b _0802249E .align 2, 0 _08022490: .4byte 0x03005000 _08022494: .4byte 0xFFFFFE00 _08022498: .4byte gMain _0802249C: movs r0, #0x58 _0802249E: strh r0, [r7, #4] mov r4, sl ldr r1, [r4] movs r6, #0xd3 lsls r6, r6, #1 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 ldr r2, _080224EC @ =0x086AD2DE adds r0, r0, r2 ldrh r3, [r0] cmp r3, #4 bne _080224F8 ldr r3, _080224F0 @ =0x000001AF adds r0, r1, r3 ldrb r0, [r0] cmp r0, #0 beq _080224DC movs r4, #0xdc lsls r4, r4, #1 adds r0, r1, r4 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _08022522 _080224DC: ldr r4, _080224F4 @ =0x086ADFD4 mov r1, sl ldr r0, [r1] movs r2, #0xdc lsls r2, r2, #1 adds r0, r0, r2 b _08022544 .align 2, 0 _080224EC: .4byte 0x086AD2DE _080224F0: .4byte 0x000001AF _080224F4: .4byte 0x086ADFD4 _080224F8: cmp r3, #3 bne _0802253C movs r4, #0xd5 lsls r4, r4, #1 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08022526 movs r6, #0xdc lsls r6, r6, #1 adds r0, r1, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08022526 _08022522: movs r1, #4 b _08022556 _08022526: ldr r4, _08022538 @ =0x086ADFD4 mov r2, sl ldr r0, [r2] movs r3, #0xdc lsls r3, r3, #1 adds r0, r0, r3 movs r6, #0 ldrsh r0, [r0, r6] b _08022548 .align 2, 0 _08022538: .4byte 0x086ADFD4 _0802253C: ldr r4, _080225D0 @ =0x086ADFD4 movs r2, #0xdc lsls r2, r2, #1 adds r0, r1, r2 _08022544: movs r3, #0 ldrsh r0, [r0, r3] _08022548: movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r4 ldrh r1, [r0] _08022556: ldr r2, _080225D4 @ =0x040000D4 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _080225D8 @ =0x0847FF0C adds r0, r0, r1 str r0, [r2] ldr r0, _080225DC @ =0x06016220 str r0, [r2, #4] ldr r0, _080225E0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] movs r5, #0 ldr r6, _080225E4 @ =0x03005000 ldr r4, _080225E8 @ =0xFFFFFE00 mov r8, r4 _0802257A: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080225EC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0802257A _080225BE: add sp, #0xc 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 _080225D0: .4byte 0x086ADFD4 _080225D4: .4byte 0x040000D4 _080225D8: .4byte 0x0847FF0C _080225DC: .4byte 0x06016220 _080225E0: .4byte 0x80000180 _080225E4: .4byte 0x03005000 _080225E8: .4byte 0xFFFFFE00 _080225EC: .4byte 0x000001FF thumb_func_start sub_225F0 sub_225F0: @ 0x080225F0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r5, _08022680 @ =gMain ldr r0, [r5, #0x44] adds r0, #0x9c ldr r7, [r0] ldr r2, _08022684 @ =0x020314E0 ldr r3, [r2] movs r1, #0xcb lsls r1, r1, #1 adds r0, r3, r1 ldrh r4, [r0] movs r6, #0xca lsls r6, r6, #1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r1, r0, #3 adds r1, r1, r0 adds r1, #0x13 mov sl, r2 cmp r4, r1 blt _0802262A b _08022958 _0802262A: cmp r4, #0 bne _08022690 movs r1, #0 movs r0, #1 strh r0, [r7] ldr r2, _08022688 @ =0x00000193 adds r0, r3, r2 strb r1, [r0] movs r2, #0 _0802263C: mov r3, sl ldr r4, [r3] lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 movs r5, #0xcc lsls r5, r5, #1 adds r0, r4, r5 adds r0, r0, r2 movs r5, #0 strh r5, [r0] lsls r0, r1, #2 adds r3, r4, r0 movs r6, #0xce lsls r6, r6, #1 adds r2, r3, r6 movs r0, #0x46 strh r0, [r2] movs r0, #0xcf lsls r0, r0, #1 adds r2, r3, r0 movs r0, #0xb4 strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #1 ble _0802263C ldr r1, _0802268C @ =0x00000195 adds r0, r4, r1 strb r5, [r0] b _08022908 .align 2, 0 _08022680: .4byte gMain _08022684: .4byte 0x020314E0 _08022688: .4byte 0x00000193 _0802268C: .4byte 0x00000195 _08022690: adds r0, r3, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080226B6 ldrb r0, [r3, #5] cmp r0, #0 bne _080226AE ldrh r1, [r5, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080226B6 _080226AE: ldr r2, _0802279C @ =0x00000195 adds r1, r3, r2 movs r0, #1 strb r0, [r1] _080226B6: mov r3, sl ldr r5, [r3] ldr r4, _080227A0 @ =0x00000193 mov sb, r4 adds r6, r5, r4 movs r0, #0xca lsls r0, r0, #1 mov r8, r0 adds r0, r5, r0 movs r1, #0 ldrsb r1, [r6, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _080226D8 b _0802280E _080226D8: movs r1, #0xcb lsls r1, r1, #1 adds r0, r5, r1 ldrh r0, [r0] subs r4, r0, #1 adds r0, r4, #0 movs r1, #9 bl __modsi3 cmp r0, #0 beq _080226F0 b _0802280E _080226F0: ldr r2, _0802279C @ =0x00000195 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080227A4 adds r0, r4, #0 movs r1, #0x12 bl __modsi3 movs r1, #9 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 movs r3, #0xcc lsls r3, r3, #1 adds r1, r5, r3 adds r1, r1, r2 movs r2, #0x11 strh r2, [r1] lsls r0, r0, #2 adds r2, r5, r0 movs r4, #0xce lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xbc strh r0, [r1] movs r5, #0xcf lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x8c strh r0, [r1] movs r0, #0x7e bl m4aSongNumStart mov r6, sl ldr r1, [r6] movs r3, #0xc9 lsls r3, r3, #1 adds r2, r1, r3 mov r4, r8 adds r0, r1, r4 add r1, sb ldrb r0, [r0] ldrb r1, [r1] subs r0, r0, r1 ldrb r5, [r2] adds r0, r0, r5 strb r0, [r2] ldr r0, [r6] adds r1, r0, r3 ldrb r0, [r1] cmp r0, #0x63 bls _08022766 movs r0, #0x63 strb r0, [r1] _08022766: mov r6, sl ldr r2, [r6] mov r0, r8 adds r3, r2, r0 movs r1, #0 ldrsb r1, [r3, r1] mov r5, sb adds r4, r2, r5 movs r0, #0 ldrsb r0, [r4, r0] subs r1, r1, r0 movs r0, #0x64 muls r0, r1, r0 str r0, [r2, #0x3c] movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #3 adds r0, r0, r1 adds r0, #1 movs r6, #0xcb lsls r6, r6, #1 adds r2, r2, r6 strh r0, [r2] ldrb r0, [r3] strb r0, [r4] b _0802280E .align 2, 0 _0802279C: .4byte 0x00000195 _080227A0: .4byte 0x00000193 _080227A4: adds r0, r4, #0 movs r1, #0x12 bl __modsi3 movs r1, #9 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 movs r3, #0xcc lsls r3, r3, #1 adds r1, r5, r3 adds r1, r1, r2 movs r2, #0x11 strh r2, [r1] lsls r0, r0, #2 adds r2, r5, r0 movs r4, #0xce lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xbc strh r0, [r1] movs r5, #0xcf lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x8c strh r0, [r1] ldrb r0, [r6] adds r0, #1 strb r0, [r6] movs r0, #0x7e bl m4aSongNumStart mov r6, sl ldr r1, [r6] movs r2, #0xc9 lsls r2, r2, #1 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r6] adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x63 bls _08022806 movs r0, #0x63 strb r0, [r1] _08022806: mov r0, sl ldr r1, [r0] movs r0, #0x64 str r0, [r1, #0x3c] _0802280E: movs r2, #0 ldr r1, _08022848 @ =0x086B481A mov r8, r1 ldr r3, _0802284C @ =0x03005000 mov ip, r3 _08022818: mov r5, sl ldr r4, [r5] lsls r1, r2, #0x10 asrs r3, r1, #0x10 lsls r0, r3, #2 adds r2, r4, r0 movs r6, #0xce lsls r6, r6, #1 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r7, #2] movs r0, #0xcf lsls r0, r0, #1 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r7, #4] movs r5, #0 ldrsh r0, [r2, r5] mov sb, r1 cmp r0, #0xa0 ble _08022850 movs r0, #0 b _0802286A .align 2, 0 _08022848: .4byte 0x086B481A _0802284C: .4byte 0x03005000 _08022850: lsls r1, r3, #1 movs r6, #0xcc lsls r6, r6, #1 adds r0, r4, r6 adds r0, r0, r1 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #0x11 subs r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 lsls r0, r0, #0xf lsrs r0, r0, #0x10 _0802286A: mov r3, sb asrs r5, r3, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r7, r3 ldrh r2, [r3] lsls r2, r2, #3 add r2, ip lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 add r1, r8 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r3] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _08022968 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldr r0, _0802296C @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r3] lsls r1, r1, #3 add r1, ip ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] mov r4, sl ldr r3, [r4] lsls r1, r5, #1 subs r6, #0x67 adds r0, r3, r6 adds r1, r0, r1 ldrh r2, [r1] movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 ble _080228FA subs r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080228FA lsls r0, r5, #2 adds r2, r3, r0 movs r5, #0xce lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x46 strh r0, [r1] adds r6, #6 adds r1, r2, r6 movs r0, #0xb4 strh r0, [r1] _080228FA: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08022818 _08022908: mov r0, sl ldr r3, [r0] movs r2, #0xcb lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldrh r2, [r1] movs r4, #0xca lsls r4, r4, #1 adds r3, r3, r4 movs r1, #0 ldrsb r1, [r3, r1] subs r1, #1 lsls r0, r1, #3 adds r0, r0, r1 adds r0, #0x13 cmp r2, r0 bne _08022958 ldr r0, _08022970 @ =gMain ldr r0, [r0, #0x44] adds r0, #0x9c ldr r1, [r0] movs r0, #0 strh r0, [r1] strb r0, [r3] mov r5, sl ldr r1, [r5] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08022958 ldr r6, _08022974 @ =0x000006DE adds r1, r1, r6 movs r0, #0xaa strh r0, [r1] _08022958: 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 _08022968: .4byte 0x000001FF _0802296C: .4byte 0xFFFFFE00 _08022970: .4byte gMain _08022974: .4byte 0x000006DE thumb_func_start sub_22978 sub_22978: @ 0x08022978 push {r4, r5, lr} ldr r3, _08022A00 @ =0x020314E0 ldr r1, [r3] movs r0, #0xb2 lsls r0, r0, #2 adds r2, r1, r0 movs r4, #0 movs r5, #0 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] ldr r0, _08022A04 @ =0x000002CA adds r2, r1, r0 movs r0, #0x82 lsls r0, r0, #4 strh r0, [r2] ldr r0, _08022A08 @ =0x000002C3 adds r1, r1, r0 strb r4, [r1] ldr r4, [r3] movs r1, #0xb1 lsls r1, r1, #2 adds r0, r4, r1 strh r5, [r0] ldr r0, _08022A0C @ =gMain ldr r1, _08022A10 @ =0x00003DE8 adds r0, r0, r1 movs r2, #1 movs r1, #1 strh r1, [r0] movs r1, #0xf6 lsls r1, r1, #1 adds r0, r4, r1 strb r2, [r0] ldr r2, [r3] movs r0, #0xfa lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0xf0 strh r0, [r1] movs r0, #0xfb lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0xa0 strh r0, [r1] adds r1, r2, #0 adds r1, #0xe4 movs r0, #3 strb r0, [r1] ldr r1, _08022A14 @ =0x040000D4 ldr r0, _08022A18 @ =0x083A808C str r0, [r1] ldr r0, _08022A1C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08022A20 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08022A24 @ =0x0848FD8C str r0, [r1] ldr r0, _08022A28 @ =0x06015800 str r0, [r1, #4] ldr r0, _08022A2C @ =0x80000650 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08022A00: .4byte 0x020314E0 _08022A04: .4byte 0x000002CA _08022A08: .4byte 0x000002C3 _08022A0C: .4byte gMain _08022A10: .4byte 0x00003DE8 _08022A14: .4byte 0x040000D4 _08022A18: .4byte 0x083A808C _08022A1C: .4byte 0x050003C0 _08022A20: .4byte 0x80000010 _08022A24: .4byte 0x0848FD8C _08022A28: .4byte 0x06015800 _08022A2C: .4byte 0x80000650 thumb_func_start sub_22A30 sub_22A30: @ 0x08022A30 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r6, #0 ldr r7, _08022A68 @ =0x0200EEA8 ldr r1, _08022A6C @ =0x086ADFE2 ldr r4, _08022A70 @ =0x020314E0 ldr r2, [r4] ldr r5, _08022A74 @ =0x000002C3 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0xb1 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08022A78 adds r0, r1, #1 strh r0, [r2] b _08022B2E .align 2, 0 _08022A68: .4byte 0x0200EEA8 _08022A6C: .4byte 0x086ADFE2 _08022A70: .4byte 0x020314E0 _08022A74: .4byte 0x000002C3 _08022A78: ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] movs r2, #0xb1 lsls r2, r2, #2 adds r0, r1, r2 strh r6, [r0] ldr r3, _08022C30 @ =0x000002C3 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x29 bne _08022AAE movs r0, #0x28 strb r0, [r1] strh r6, [r7] ldr r0, [r4] movs r1, #0xb4 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r4] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _08022AAE: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08022AC4 movs r0, #0xa3 lsls r0, r0, #1 bl m4aSongNumStart _08022AC4: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _08022AD8 ldr r0, _08022C34 @ =0x00000147 bl m4aSongNumStart _08022AD8: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xd bne _08022AEE movs r0, #0xa4 lsls r0, r0, #1 bl m4aSongNumStart _08022AEE: ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x27 bne _08022B1C movs r2, #0xfa lsls r2, r2, #1 adds r0, r1, r2 strh r6, [r0] movs r3, #0xfb lsls r3, r3, #1 adds r0, r1, r3 strh r6, [r0] ldr r1, _08022C38 @ =0x040000D4 ldr r0, _08022C3C @ =0x084FD18C str r0, [r1] ldr r0, _08022C40 @ =0x06011CE0 str r0, [r1, #4] ldr r0, _08022C44 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] _08022B1C: ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _08022B2E ldr r0, _08022C48 @ =0x001E8480 str r0, [r1, #0x3c] _08022B2E: ldr r0, _08022C4C @ =0x020314E0 ldr r1, [r0] ldr r5, _08022C30 @ =0x000002C3 adds r0, r1, r5 ldrb r0, [r0] subs r0, #0xe lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x17 bhi _08022B5A movs r2, #0xa4 lsls r2, r2, #2 adds r0, r1, r2 ldr r0, [r0] movs r1, #7 bl __umodsi3 cmp r0, #0 bne _08022B5A ldr r0, _08022C50 @ =0x00000149 bl m4aSongNumStart _08022B5A: ldr r0, _08022C4C @ =0x020314E0 ldr r4, [r0] movs r3, #0xb2 lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0x14 bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r1, _08022C54 @ =0x000002CA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x14 bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] ldr r1, _08022C58 @ =0x086ADFE2 ldr r3, _08022C30 @ =0x000002C3 adds r4, r4, r3 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r1 movs r2, #0 ldr r5, _08022C5C @ =0x086B28A0 mov sb, r5 ldr r6, _08022C60 @ =0x03005000 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r5, _08022C64 @ =0xFFFFFE00 mov r8, r5 _08022BB6: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] mov sl, r0 mov r5, sl lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r5, _08022C68 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 mov r5, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _08022BB6 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 _08022C30: .4byte 0x000002C3 _08022C34: .4byte 0x00000147 _08022C38: .4byte 0x040000D4 _08022C3C: .4byte 0x084FD18C _08022C40: .4byte 0x06011CE0 _08022C44: .4byte 0x80000100 _08022C48: .4byte 0x001E8480 _08022C4C: .4byte 0x020314E0 _08022C50: .4byte 0x00000149 _08022C54: .4byte 0x000002CA _08022C58: .4byte 0x086ADFE2 _08022C5C: .4byte 0x086B28A0 _08022C60: .4byte 0x03005000 _08022C64: .4byte 0xFFFFFE00 _08022C68: .4byte 0x000001FF thumb_func_start sub_22C6C sub_22C6C: @ 0x08022C6C push {r4, r5, r6, lr} ldr r4, _08022D14 @ =0x020314E0 ldr r2, [r4] ldr r0, _08022D18 @ =0x000002C6 adds r1, r2, r0 movs r0, #0 strh r0, [r1] movs r5, #0xb2 lsls r5, r5, #2 adds r1, r2, r5 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] ldr r6, _08022D1C @ =0x000002CA adds r1, r2, r6 ldr r0, _08022D20 @ =0x0000FFD8 strh r0, [r1] movs r0, #0xb3 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08022D24 @ =0x0000FFDC strh r0, [r1] ldr r0, _08022D28 @ =0x000002CE adds r1, r2, r0 movs r0, #0x3c strh r0, [r1] ldr r0, _08022D2C @ =gMain ldr r1, _08022D30 @ =0x00000B98 adds r0, r0, r1 movs r3, #1 movs r1, #1 strh r1, [r0] movs r0, #0xf6 lsls r0, r0, #1 adds r2, r2, r0 strb r3, [r2] ldr r4, [r4] adds r5, r4, r5 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0x14 bl __divsi3 ldr r5, _08022D34 @ =0x086AE088 ldrh r1, [r5] subs r0, r0, r1 movs r2, #0xfa lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r6, r4, r6 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0x14 bl __divsi3 ldrh r1, [r5, #2] subs r0, r0, r1 movs r2, #0xfb lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r4, #0xe4 movs r0, #2 strb r0, [r4] ldr r1, _08022D38 @ =0x040000D4 ldr r0, _08022D3C @ =0x083A806C str r0, [r1] ldr r0, _08022D40 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08022D44 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08022D48 @ =0x083A704C str r0, [r1] ldr r0, _08022D4C @ =0x06015800 str r0, [r1, #4] ldr r0, _08022D50 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08022D14: .4byte 0x020314E0 _08022D18: .4byte 0x000002C6 _08022D1C: .4byte 0x000002CA _08022D20: .4byte 0x0000FFD8 _08022D24: .4byte 0x0000FFDC _08022D28: .4byte 0x000002CE _08022D2C: .4byte gMain _08022D30: .4byte 0x00000B98 _08022D34: .4byte 0x086AE088 _08022D38: .4byte 0x040000D4 _08022D3C: .4byte 0x083A806C _08022D40: .4byte 0x050003C0 _08022D44: .4byte 0x80000010 _08022D48: .4byte 0x083A704C _08022D4C: .4byte 0x06015800 _08022D50: .4byte 0x80000800 thumb_func_start sub_22D54 sub_22D54: @ 0x08022D54 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _08022E38 @ =0x020314E0 ldr r5, [r4] ldr r0, _08022E3C @ =0x000002C6 mov sb, r0 adds r0, r5, r0 ldrh r6, [r0] adds r0, r6, #0 movs r1, #0x38 bl __umodsi3 lsls r0, r0, #0x10 lsrs r7, r0, #0x13 ldr r1, _08022E40 @ =0x0200BC58 mov r8, r1 mov sl, r4 cmp r6, #0x81 bls _08022D82 b _08022EA0 _08022D82: adds r0, r6, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08022D96 movs r0, #0xb8 bl m4aSongNumStart _08022D96: mov r2, sl ldr r1, [r2] mov r3, sb adds r2, r1, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r2] movs r5, #0xb2 lsls r5, r5, #2 adds r2, r1, r5 movs r3, #0xb3 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] ldrh r5, [r2] adds r0, r0, r5 strh r0, [r2] ldr r0, _08022E44 @ =0x000002CA adds r2, r1, r0 adds r3, #2 adds r4, r1, r3 ldrh r0, [r4] ldrh r5, [r2] adds r0, r0, r5 strh r0, [r2] ldrh r6, [r4] movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #7 bgt _08022DE2 ldr r0, _08022E48 @ =0xFFFFF468 add r0, r8 ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 cmp r0, #0 bne _08022DE6 _08022DE2: subs r0, r6, #1 strh r0, [r4] _08022DE6: ldr r0, _08022E38 @ =0x020314E0 ldr r6, [r0] ldr r2, _08022E3C @ =0x000002C6 adds r1, r6, r2 ldrh r1, [r1] mov sl, r0 cmp r1, #0x4d bhi _08022E50 movs r3, #0xb2 lsls r3, r3, #2 adds r0, r6, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0x14 bl __divsi3 ldr r1, _08022E4C @ =0x086AE088 lsls r5, r7, #0x10 lsrs r4, r5, #0xe adds r4, r4, r1 ldrh r1, [r4] subs r0, r0, r1 movs r7, #0xfa lsls r7, r7, #1 adds r1, r6, r7 strh r0, [r1] ldr r1, _08022E44 @ =0x000002CA adds r0, r6, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x14 bl __divsi3 ldrh r1, [r4, #2] subs r0, r0, r1 movs r3, #0xfb lsls r3, r3, #1 adds r1, r6, r3 strh r0, [r1] b _08022E64 .align 2, 0 _08022E38: .4byte 0x020314E0 _08022E3C: .4byte 0x000002C6 _08022E40: .4byte 0x0200BC58 _08022E44: .4byte 0x000002CA _08022E48: .4byte 0xFFFFF468 _08022E4C: .4byte 0x086AE088 _08022E50: movs r5, #0xfa lsls r5, r5, #1 adds r0, r6, r5 movs r1, #0 strh r1, [r0] movs r2, #0xfb lsls r2, r2, #1 adds r0, r6, r2 strh r1, [r0] lsls r5, r7, #0x10 _08022E64: mov r3, sl ldr r1, [r3] ldr r7, _08022E88 @ =0x000002C6 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0x4e bne _08022E76 ldr r0, _08022E8C @ =0x000186A0 str r0, [r1, #0x3c] _08022E76: ldr r1, _08022E90 @ =0x040000D4 ldr r0, _08022E94 @ =0x084FD18C str r0, [r1] ldr r0, _08022E98 @ =0x06011CE0 str r0, [r1, #4] ldr r0, _08022E9C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] b _08022EBA .align 2, 0 _08022E88: .4byte 0x000002C6 _08022E8C: .4byte 0x000186A0 _08022E90: .4byte 0x040000D4 _08022E94: .4byte 0x084FD18C _08022E98: .4byte 0x06011CE0 _08022E9C: .4byte 0x80000100 _08022EA0: movs r2, #0 mov r0, r8 strh r2, [r0] movs r3, #0xb4 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #2 strb r0, [r1] mov r5, sl ldr r0, [r5] adds r0, #0xe4 strb r2, [r0] lsls r5, r7, #0x10 _08022EBA: mov r7, sl ldr r4, [r7] movs r1, #0xb2 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x14 bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r3, r8 strh r0, [r3, #2] ldr r7, _08022F90 @ =0x000002CA adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x14 bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 mov r2, r8 strh r0, [r2, #4] movs r2, #0 ldr r3, _08022F94 @ =0x03005000 mov ip, r3 ldr r7, _08022F98 @ =0x086B4850 mov sl, r7 asrs r1, r5, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r6, r0, #1 ldr r0, _08022F9C @ =0xFFFFFE00 mov sb, r0 _08022F08: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, r8 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 add r1, sl ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 mov r7, r8 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _08022FA0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ldrh r5, [r2, #2] ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r7, r8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #4 ble _08022F08 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 _08022F90: .4byte 0x000002CA _08022F94: .4byte 0x03005000 _08022F98: .4byte 0x086B4850 _08022F9C: .4byte 0xFFFFFE00 _08022FA0: .4byte 0x000001FF thumb_func_start sub_22FA4 sub_22FA4: @ 0x08022FA4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _0802301C @ =0x020314E0 ldr r0, [r4] ldr r1, _08023020 @ =0x0000020E adds r0, r0, r1 movs r1, #0 strh r1, [r0] movs r0, #9 bl sub_1C7F4 ldr r0, [r4] adds r0, #0xe4 movs r1, #0xe strb r1, [r0] ldr r0, _08023024 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x10] movs r0, #1 strh r0, [r1] movs r2, #0 mov r8, r4 ldr r7, _08023028 @ =0x086A3707 mov ip, r7 ldr r4, _0802302C @ =0x040000D4 ldr r0, _08023030 @ =0x06015800 mov sb, r0 ldr r6, _08023034 @ =0x80000020 _08022FE0: lsls r2, r2, #0x10 asrs r3, r2, #0x10 mov r1, r8 ldr r5, [r1] movs r7, #0xb3 lsls r7, r7, #3 adds r0, r5, r7 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r3, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _0802303C ldr r0, _08023038 @ =0x083FFD4C str r0, [r4] lsls r0, r3, #6 add r0, sb str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08023020 @ =0x0000020E adds r1, r5, r0 ldrh r0, [r1] adds r0, #4 strh r0, [r1] b _08023052 .align 2, 0 _0802301C: .4byte 0x020314E0 _08023020: .4byte 0x0000020E _08023024: .4byte gMain _08023028: .4byte 0x086A3707 _0802302C: .4byte 0x040000D4 _08023030: .4byte 0x06015800 _08023034: .4byte 0x80000020 _08023038: .4byte 0x083FFD4C _0802303C: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0802306C @ =0x083FF04C adds r0, r0, r1 str r0, [r4] lsls r0, r3, #6 add r0, sb str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] _08023052: movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08022FE0 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802306C: .4byte 0x083FF04C thumb_func_start sub_23070 sub_23070: @ 0x08023070 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _080230F4 @ =gMain ldr r0, [r0, #0x44] ldr r6, [r0, #0x10] movs r0, #0 ldr r1, _080230F8 @ =0x020314E0 mov r8, r1 ldr r7, _080230FC @ =0x03005000 ldr r2, _08023100 @ =0xFFFFFE00 mov ip, r2 _08023088: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 mov r3, r8 ldr r1, [r3] ldr r2, _08023104 @ =0x0000020E adds r0, r1, r2 ldrh r0, [r0] adds r0, #0x98 movs r3, #0xdb lsls r3, r3, #1 adds r2, r1, r3 adds r0, r4, r0 ldrh r2, [r2] adds r0, r0, r2 strh r0, [r6, #2] movs r0, #0x60 strh r0, [r6, #4] adds r4, #8 adds r4, r6, r4 ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08023108 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #9 ble _08023088 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080230F4: .4byte gMain _080230F8: .4byte 0x020314E0 _080230FC: .4byte 0x03005000 _08023100: .4byte 0xFFFFFE00 _08023104: .4byte 0x0000020E _08023108: .4byte 0x000001FF thumb_func_start sub_2310C sub_2310C: @ 0x0802310C ldr r0, _08023124 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x10] movs r2, #0 movs r0, #0 strh r0, [r1] ldr r0, _08023128 @ =0x020314E0 ldr r0, [r0] adds r0, #0xe4 strb r2, [r0] bx lr .align 2, 0 _08023124: .4byte gMain _08023128: .4byte 0x020314E0 thumb_func_start sub_2312C sub_2312C: @ 0x0802312C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _080231B8 @ =0x020314E0 ldr r0, [r4] ldr r2, _080231BC @ =0x0000020E adds r1, r0, r2 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r7, _080231C0 @ =0x000006DB adds r0, r0, r7 strb r2, [r0] ldr r0, [r4] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] adds r0, #0xe4 movs r1, #0xd strb r1, [r0] ldr r0, _080231C4 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x10] movs r0, #1 strh r0, [r1] movs r5, #0 mov r8, r4 ldr r2, _080231C8 @ =0x086A3707 mov ip, r2 ldr r3, _080231CC @ =0x040000D4 ldr r7, _080231D0 @ =0x06015800 mov sb, r7 ldr r6, _080231D4 @ =0x80000020 _0802317C: lsls r0, r5, #0x10 asrs r2, r0, #0x10 mov r0, r8 ldr r4, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r4, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r2, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _080231DC ldr r0, _080231D8 @ =0x083FFD4C str r0, [r3] lsls r0, r2, #6 add r0, sb str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] ldr r0, _080231BC @ =0x0000020E adds r1, r4, r0 ldrh r0, [r1] adds r0, #4 strh r0, [r1] b _080231F2 .align 2, 0 _080231B8: .4byte 0x020314E0 _080231BC: .4byte 0x0000020E _080231C0: .4byte 0x000006DB _080231C4: .4byte gMain _080231C8: .4byte 0x086A3707 _080231CC: .4byte 0x040000D4 _080231D0: .4byte 0x06015800 _080231D4: .4byte 0x80000020 _080231D8: .4byte 0x083FFD4C _080231DC: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _08023230 @ =0x083FF04C adds r0, r0, r1 str r0, [r3] lsls r0, r2, #6 add r0, sb str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] _080231F2: lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0802317C ldr r0, _08023234 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x14] movs r0, #1 strh r0, [r1] movs r5, #0 ldr r2, _08023238 @ =0x086ACFE0 mov r8, r2 ldr r3, _0802323C @ =0x040000D4 ldr r6, _08023240 @ =0x06015800 ldr r4, _08023244 @ =0x80000020 _08023218: lsls r0, r5, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #1 mov r7, r8 adds r1, r0, r7 movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0x20 bne _0802324C ldr r0, _08023248 @ =0x083FFD4C b _08023258 .align 2, 0 _08023230: .4byte 0x083FF04C _08023234: .4byte gMain _08023238: .4byte 0x086ACFE0 _0802323C: .4byte 0x040000D4 _08023240: .4byte 0x06015800 _08023244: .4byte 0x80000020 _08023248: .4byte 0x083FFD4C _0802324C: movs r7, #0 ldrsh r0, [r1, r7] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _080232EC @ =0x083FF04C adds r0, r0, r1 _08023258: str r0, [r3] adds r0, r2, #0 adds r0, #0xa lsls r0, r0, #6 adds r0, r0, r6 str r0, [r3, #4] str r4, [r3, #8] ldr r0, [r3, #8] lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08023218 movs r5, #0 ldr r2, _080232F0 @ =0x020314E0 mov ip, r2 ldr r7, _080232F4 @ =0x00000212 movs r6, #0 movs r4, #0x8a lsls r4, r4, #2 _08023286: mov r0, ip ldr r2, [r0] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r3, r1, #1 adds r0, r2, r7 adds r0, r0, r3 strh r3, [r0] lsls r0, r1, #2 adds r2, r2, r0 adds r2, r2, r4 strh r6, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _08023286 movs r5, #0 ldr r1, _080232F0 @ =0x020314E0 mov ip, r1 movs r7, #0 ldr r6, _080232F8 @ =0x000013D4 ldr r4, _080232FC @ =0x000013E8 _080232B6: mov r2, ip ldr r3, [r2] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r2, r3, r6 adds r2, r2, r0 adds r0, r1, #0 adds r0, #0xa lsls r0, r0, #1 strh r0, [r2] lsls r0, r1, #2 adds r3, r3, r0 adds r3, r3, r4 strh r7, [r3] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _080232B6 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080232EC: .4byte 0x083FF04C _080232F0: .4byte 0x020314E0 _080232F4: .4byte 0x00000212 _080232F8: .4byte 0x000013D4 _080232FC: .4byte 0x000013E8 thumb_func_start sub_23300 sub_23300: @ 0x08023300 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _080233E4 @ =0x020314E0 ldr r1, [r0] ldr r2, _080233E8 @ =0x000006C4 adds r1, r1, r2 movs r4, #0 strb r4, [r1] ldr r1, [r0] movs r3, #0x84 lsls r3, r3, #2 adds r1, r1, r3 ldrh r2, [r1] adds r3, r2, #0 mov r8, r0 cmp r3, #0 bne _080233FC adds r0, r2, #1 strh r0, [r1] ldr r1, _080233EC @ =gMain ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] strh r4, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _080233F0 @ =0x03005000 ldr r4, _080233F4 @ =0xFFFFFE00 mov r8, r4 _08023342: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080233F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _08023342 ldr r3, _080233EC @ =gMain ldr r0, [r3, #0x44] ldr r7, [r0, #0x14] movs r0, #0 strh r0, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _080233F0 @ =0x03005000 ldr r4, _080233F4 @ =0xFFFFFE00 mov r8, r4 _0802339C: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080233F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _0802339C b _08023934 .align 2, 0 _080233E4: .4byte 0x020314E0 _080233E8: .4byte 0x000006C4 _080233EC: .4byte gMain _080233F0: .4byte 0x03005000 _080233F4: .4byte 0xFFFFFE00 _080233F8: .4byte 0x000001FF _080233FC: cmp r3, #0xc2 bls _08023402 b _0802385C _08023402: adds r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x9b bls _08023410 b _08023688 _08023410: ldr r1, _0802343C @ =gMain ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] movs r5, #0 ldr r3, _08023440 @ =0x03005000 mov sb, r3 ldr r4, _08023444 @ =0x00000637 mov sl, r4 _08023420: mov r0, r8 ldr r3, [r0] lsls r0, r5, #0x10 asrs r2, r0, #0x10 lsls r1, r2, #1 ldr r4, _08023448 @ =0x00000212 adds r0, r3, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 beq _0802344C subs r0, #1 strh r0, [r1] b _0802347C .align 2, 0 _0802343C: .4byte gMain _08023440: .4byte 0x03005000 _08023444: .4byte 0x00000637 _08023448: .4byte 0x00000212 _0802344C: lsls r0, r2, #2 adds r0, r3, r0 movs r1, #0x8a lsls r1, r1, #2 adds r4, r0, r1 movs r2, #0 ldrsh r1, [r4, r2] movs r6, #0xc8 lsls r6, r6, #3 subs r1, r6, r1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, sl ble _0802347C strh r6, [r4] _0802347C: lsls r6, r5, #0x10 asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 movs r1, #0x8a lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 subs r0, #0xa0 ldr r3, _08023530 @ =0x0000020E adds r1, r5, r3 subs r4, r4, r0 ldrh r1, [r1] adds r4, r4, r1 strh r4, [r7, #2] ldr r4, _08023534 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x24 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023538 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _0802353C @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023420 ldr r5, _08023540 @ =gMain ldr r0, [r5, #0x44] ldr r7, [r0, #0x14] movs r5, #0 ldr r0, _08023544 @ =0x00000637 mov sl, r0 ldr r1, _08023548 @ =0x03005000 mov sb, r1 _08023512: mov r2, r8 ldr r4, [r2] lsls r2, r5, #0x10 asrs r3, r2, #0x10 lsls r1, r3, #1 ldr r5, _0802354C @ =0x000013D4 adds r0, r4, r5 adds r1, r0, r1 ldrh r0, [r1] adds r6, r2, #0 cmp r0, #0 beq _08023550 subs r0, #1 strh r0, [r1] b _0802357E .align 2, 0 _08023530: .4byte 0x0000020E _08023534: .4byte 0x000006E6 _08023538: .4byte 0x000001FF _0802353C: .4byte 0xFFFFFE00 _08023540: .4byte gMain _08023544: .4byte 0x00000637 _08023548: .4byte 0x03005000 _0802354C: .4byte 0x000013D4 _08023550: lsls r0, r3, #2 adds r0, r4, r0 ldr r1, _0802366C @ =0x000013E8 adds r4, r0, r1 movs r2, #0 ldrsh r1, [r4, r2] movs r5, #0xc8 lsls r5, r5, #3 subs r1, r5, r1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, sl ble _0802357E strh r5, [r4] _0802357E: asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 ldr r1, _0802366C @ =0x000013E8 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 subs r0, #0xa0 subs r4, r4, r0 strh r4, [r7, #2] ldr r4, _08023670 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x34 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023674 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _08023678 @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023512 mov r5, r8 ldr r0, [r5] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x9b beq _0802360A b _08023934 _0802360A: movs r0, #0 ldr r7, _0802367C @ =0x00000212 movs r6, #0 movs r4, #0x8a lsls r4, r4, #2 _08023614: ldr r2, [r5] lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r3, r1, #1 adds r0, r2, r7 adds r0, r0, r3 strh r3, [r0] lsls r0, r1, #2 adds r2, r2, r0 adds r2, r2, r4 strh r6, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _08023614 movs r0, #0 ldr r7, _08023680 @ =0x020314E0 movs r6, #0 ldr r5, _08023684 @ =0x000013D4 ldr r4, _0802366C @ =0x000013E8 _08023640: ldr r3, [r7] lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r2, r3, r5 adds r2, r2, r0 adds r0, r1, #0 adds r0, #0xa lsls r0, r0, #1 strh r0, [r2] lsls r0, r1, #2 adds r3, r3, r0 adds r3, r3, r4 strh r6, [r3] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _08023640 b _08023934 .align 2, 0 _0802366C: .4byte 0x000013E8 _08023670: .4byte 0x000006E6 _08023674: .4byte 0x000001FF _08023678: .4byte 0xFFFFFE00 _0802367C: .4byte 0x00000212 _08023680: .4byte 0x020314E0 _08023684: .4byte 0x000013D4 _08023688: ldr r1, _080236B0 @ =gMain ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] movs r5, #0 ldr r2, _080236B4 @ =0x03005000 mov sb, r2 _08023694: mov r3, r8 ldr r2, [r3] lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsls r1, r4, #1 ldr r3, _080236B8 @ =0x00000212 adds r0, r2, r3 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 beq _080236BC subs r0, #1 strh r0, [r1] b _080236E2 .align 2, 0 _080236B0: .4byte gMain _080236B4: .4byte 0x03005000 _080236B8: .4byte 0x00000212 _080236BC: lsls r4, r4, #2 adds r4, r2, r4 movs r0, #0x8a lsls r0, r0, #2 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xfa lsls r1, r1, #3 subs r1, r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] _080236E2: lsls r6, r5, #0x10 asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 movs r1, #0x8a lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 ldr r3, _08023790 @ =0x0000020E adds r1, r5, r3 subs r4, r4, r0 ldrh r1, [r1] adds r4, r4, r1 strh r4, [r7, #2] ldr r4, _08023794 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x24 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023798 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _0802379C @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023694 ldr r5, _080237A0 @ =gMain ldr r0, [r5, #0x44] ldr r7, [r0, #0x14] movs r5, #0 ldr r0, _080237A4 @ =0x03005000 mov sb, r0 _08023772: mov r1, r8 ldr r3, [r1] lsls r2, r5, #0x10 asrs r4, r2, #0x10 lsls r1, r4, #1 ldr r5, _080237A8 @ =0x000013D4 adds r0, r3, r5 adds r1, r0, r1 ldrh r0, [r1] adds r6, r2, #0 cmp r0, #0 beq _080237AC subs r0, #1 strh r0, [r1] b _080237D0 .align 2, 0 _08023790: .4byte 0x0000020E _08023794: .4byte 0x000006E6 _08023798: .4byte 0x000001FF _0802379C: .4byte 0xFFFFFE00 _080237A0: .4byte gMain _080237A4: .4byte 0x03005000 _080237A8: .4byte 0x000013D4 _080237AC: lsls r4, r4, #2 adds r4, r3, r4 ldr r0, _0802384C @ =0x000013E8 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xfa lsls r1, r1, #3 subs r1, r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] _080237D0: asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 ldr r1, _0802384C @ =0x000013E8 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 subs r4, r4, r0 strh r4, [r7, #2] ldr r4, _08023850 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x34 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023854 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _08023858 @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023772 b _08023934 .align 2, 0 _0802384C: .4byte 0x000013E8 _08023850: .4byte 0x000006E6 _08023854: .4byte 0x000001FF _08023858: .4byte 0xFFFFFE00 _0802385C: ldr r0, _08023944 @ =gMain ldr r1, [r0, #0x44] ldr r7, [r1, #0x10] ldrh r1, [r7] cmp r1, #0 beq _080238BA strh r4, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _08023948 @ =0x03005000 ldr r0, _0802394C @ =0xFFFFFE00 mov sb, r0 _08023876: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08023950 @ =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, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _08023876 _080238BA: ldr r3, _08023944 @ =gMain ldr r0, [r3, #0x44] ldr r7, [r0, #0x14] ldrh r0, [r7] cmp r0, #0 beq _0802391A movs r0, #0 strh r0, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _08023948 @ =0x03005000 ldr r4, _0802394C @ =0xFFFFFE00 mov sb, r4 _080238D6: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08023950 @ =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, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _080238D6 _0802391A: ldr r3, _08023944 @ =gMain ldr r0, [r3, #0x44] ldr r0, [r0, #0x10] movs r2, #0 movs r1, #0 strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x14] strh r1, [r0] mov r4, r8 ldr r0, [r4] adds r0, #0xe4 strb r2, [r0] _08023934: 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 _08023944: .4byte gMain _08023948: .4byte 0x03005000 _0802394C: .4byte 0xFFFFFE00 _08023950: .4byte 0x000001FF thumb_func_start sub_23954 sub_23954: @ 0x08023954 push {r4, lr} ldr r2, _08023998 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf6 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r4, #0xf7 lsls r4, r4, #1 adds r0, r0, r4 strb r3, [r0] ldr r0, [r2] ldr r1, _0802399C @ =0x000001ED adds r0, r0, r1 strb r3, [r0] ldr r0, [r2] adds r4, #2 adds r1, r0, r4 movs r4, #0 strh r3, [r1] ldr r1, _080239A0 @ =0x000002DA adds r0, r0, r1 strb r4, [r0] ldr r0, [r2] subs r1, #1 adds r0, r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08023998: .4byte 0x020314E0 _0802399C: .4byte 0x000001ED _080239A0: .4byte 0x000002DA thumb_func_start sub_239A4 sub_239A4: @ 0x080239A4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov r8, r0 movs r7, #0 movs r6, #0 ldr r1, _080239DC @ =0x0200D638 mov sb, r1 mov ip, r6 ldr r1, _080239E0 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf6 lsls r2, r2, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bhi _08023A22 lsls r0, r0, #2 ldr r1, _080239E4 @ =_080239E8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080239DC: .4byte 0x0200D638 _080239E0: .4byte 0x020314E0 _080239E4: .4byte _080239E8 _080239E8: @ jump table .4byte _08023A22 @ case 0 .4byte _08023A22 @ case 1 .4byte _08023A00 @ case 2 .4byte _08023A06 @ case 3 .4byte _08023A10 @ case 4 .4byte _08023A1A @ case 5 _08023A00: movs r3, #4 mov r8, r3 b _08023A0A _08023A06: movs r4, #8 mov r8, r4 _08023A0A: movs r7, #4 movs r6, #3 b _08023A22 _08023A10: movs r6, #0xc mov r8, r6 movs r7, #0xc movs r6, #5 b _08023A22 _08023A1A: movs r0, #0x21 mov r8, r0 movs r7, #0 movs r6, #0 _08023A22: ldr r1, _08023AD4 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r0, r2 ldr r5, _08023AD8 @ =0x000001ED adds r2, r0, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r0, #0 ldrsb r0, [r2, r0] cmp r1, r0 beq _08023A9A ldr r3, _08023ADC @ =0x086AD2EE lsls r0, r0, #3 adds r1, r3, #4 adds r0, r0, r1 ldr r2, _08023AE0 @ =0x040000D4 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08023AE4 @ =0x084FB68C adds r0, r0, r1 str r0, [r2] ldr r0, _08023AE8 @ =0x060122A0 str r0, [r2, #4] ldr r0, _08023AEC @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _08023AD4 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r3, #6 adds r0, r0, r3 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #9 ldr r1, _08023AF0 @ =0x084FD18C adds r0, r0, r1 str r0, [r2] ldr r0, _08023AF4 @ =0x06011CE0 str r0, [r2, #4] ldr r0, _08023AF8 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r4, _08023AD4 @ =0x020314E0 ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r1, r2 strb r0, [r1] _08023A9A: ldr r3, _08023AD4 @ =0x020314E0 ldr r2, [r3] movs r4, #0xf6 lsls r4, r4, #1 mov sl, r4 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08023AB2 b _08023C06 _08023AB2: ldr r0, _08023ADC @ =0x086AD2EE adds r3, r2, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #3 adds r0, #2 adds r1, r1, r0 movs r0, #0xf8 lsls r0, r0, #1 adds r4, r2, r0 ldrh r2, [r4] ldrh r0, [r1] cmp r0, r2 bls _08023AFC adds r0, r2, #1 strh r0, [r4] b _08023BEE .align 2, 0 _08023AD4: .4byte 0x020314E0 _08023AD8: .4byte 0x000001ED _08023ADC: .4byte 0x086AD2EE _08023AE0: .4byte 0x040000D4 _08023AE4: .4byte 0x084FB68C _08023AE8: .4byte 0x060122A0 _08023AEC: .4byte 0x80000240 _08023AF0: .4byte 0x084FD18C _08023AF4: .4byte 0x06011CE0 _08023AF8: .4byte 0x80000100 _08023AFC: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] ldr r3, _08023C94 @ =0x020314E0 ldr r1, [r3] movs r4, #0xf8 lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, r8 blt _08023B22 strb r7, [r1] ldr r0, [r3] add r0, sl strb r6, [r0] _08023B22: ldr r6, _08023C94 @ =0x020314E0 ldr r0, [r6] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bne _08023B36 bl sub_32484 _08023B36: ldr r1, _08023C94 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x13 bne _08023B66 bl sub_325E0 ldr r0, _08023C98 @ =gMain ldrb r0, [r0, #2] cmp r0, #3 beq _08023B66 ldr r2, _08023C94 @ =0x020314E0 ldr r0, [r2] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #1 bl sub_52BB0 _08023B66: ldr r5, _08023C94 @ =0x020314E0 ldr r0, [r5] ldr r4, _08023C9C @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _08023B7C bl sub_28BFC _08023B7C: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _08023B8E cmp r0, #0x1b bne _08023B9E _08023B8E: movs r6, #0xf8 lsls r6, r6, #1 adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0 bne _08023B9E bl m4aMPlayAllStop _08023B9E: ldr r0, _08023C94 @ =0x020314E0 ldr r1, [r0] ldr r2, _08023C9C @ =0x000001ED adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _08023BC2 movs r3, #0xf8 lsls r3, r3, #1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _08023BC2 movs r0, #0x16 bl m4aSongNumStart _08023BC2: ldr r5, _08023C94 @ =0x020314E0 ldr r0, [r5] ldr r4, _08023C9C @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1d bne _08023BDA movs r0, #5 bl sub_19B64 _08023BDA: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1c bne _08023BEE movs r0, #0x92 bl m4aSongNumStart _08023BEE: ldr r2, _08023CA0 @ =0x086AD2EE ldr r1, _08023C94 @ =0x020314E0 ldr r0, [r1] ldr r4, _08023C9C @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] mov ip, r0 _08023C06: ldr r6, _08023C94 @ =0x020314E0 ldr r3, [r6] adds r0, r3, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x58 subs r0, r0, r1 movs r1, #0xf4 lsls r1, r1, #1 adds r2, r3, r1 strh r0, [r2] adds r0, r3, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x90 subs r0, r0, r1 movs r6, #0xf5 lsls r6, r6, #1 adds r4, r3, r6 strh r0, [r4] movs r1, #0xfa lsls r1, r1, #1 adds r0, r3, r1 ldrh r0, [r0] ldrh r2, [r2] adds r0, r0, r2 mov r2, sb strh r0, [r2, #2] adds r6, #2 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08023CC4 subs r1, #7 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 bne _08023CA4 movs r2, #0xf8 lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r1] cmp r0, #0xd0 bls _08023CA4 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #1 subs r0, r0, r1 cmp r0, #0 bge _08023C74 adds r0, #0xf _08023C74: asrs r0, r0, #4 ldr r1, _08023C98 @ =gMain adds r0, #1 lsls r0, r0, #1 ldr r1, [r1, #0x4c] ands r1, r0 cmp r1, #0 beq _08023CC4 movs r6, #0xfb lsls r6, r6, #1 adds r0, r3, r6 ldrh r0, [r0] ldrh r4, [r4] adds r0, r0, r4 b _08023CBA .align 2, 0 _08023C94: .4byte 0x020314E0 _08023C98: .4byte gMain _08023C9C: .4byte 0x000001ED _08023CA0: .4byte 0x086AD2EE _08023CA4: ldr r3, _08023CC0 @ =0x020314E0 ldr r0, [r3] movs r4, #0xf5 lsls r4, r4, #1 adds r1, r0, r4 movs r6, #0xfb lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] ldrh r1, [r1] adds r0, r0, r1 _08023CBA: mov r1, sb strh r0, [r1, #4] b _08023CCA .align 2, 0 _08023CC0: .4byte 0x020314E0 _08023CC4: movs r0, #0xc8 mov r2, sb strh r0, [r2, #4] _08023CCA: movs r2, #0 mov r3, ip lsls r1, r3, #0x10 ldr r7, _08023DFC @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov sl, r0 _08023CDC: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 mov r4, sb adds r5, r4, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r6, _08023E00 @ =0x086B4D4E adds r0, r0, r6 add r0, sl ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 movs r0, #1 lsls r0, r0, #2 str r0, [sp] ldrb r2, [r1, #5] movs r4, #0xd rsbs r4, r4, #0 mov r8, r4 mov r0, r8 ands r0, r2 ldr r6, [sp] orrs r0, r6 strb r0, [r1, #5] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 mov r1, sb movs r6, #2 ldrsh r0, [r1, r6] mov r6, ip adds r1, r6, r0 ldr r6, _08023E04 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldr r0, _08023E08 @ =0xFFFFFE00 mov ip, r0 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 mov r2, sb ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08023CDC ldr r6, _08023E0C @ =0x0200D918 mov sb, r6 ldr r1, _08023E10 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf4 lsls r2, r2, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r6, #2] ldr r0, [r1] movs r3, #0xf5 lsls r3, r3, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r6, #4] movs r2, #0 ldr r7, _08023DFC @ =0x03005000 mov sl, r8 mov r8, ip _08023D92: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 ldr r6, _08023E14 @ =0x0200D920 adds r5, r0, r6 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #5] mov r0, sl ands r0, r2 ldr r2, [sp] orrs r0, r2 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r6, #2 ldrsh r1, [r5, r6] mov r2, sb movs r6, #2 ldrsh r0, [r2, r6] adds r1, r1, r0 ldr r2, _08023E04 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08023D92 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 _08023DFC: .4byte 0x03005000 _08023E00: .4byte 0x086B4D4E _08023E04: .4byte 0x000001FF _08023E08: .4byte 0xFFFFFE00 _08023E0C: .4byte 0x0200D918 _08023E10: .4byte 0x020314E0 _08023E14: .4byte 0x0200D920 thumb_func_start sub_23E18 sub_23E18: @ 0x08023E18 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #1 str r0, [sp] ldr r1, _08023F00 @ =0x0200D860 mov sl, r1 ldr r5, _08023F04 @ =0xFFFFD860 add r5, sl ldr r0, [r5, #0x4c] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r7, _08023F08 @ =0x020314E0 ldr r0, [r7] ldr r2, _08023F0C @ =0x00000746 mov sb, r2 add r0, sb movs r3, #0 mov r8, r3 mov r6, r8 strb r6, [r0] ldr r0, [r7] movs r1, #0xb6 lsls r1, r1, #2 adds r0, r0, r1 mov r2, sp ldrb r2, [r2] strb r2, [r0] ldr r6, [r7] ldr r3, _08023F10 @ =0x000002DA adds r0, r6, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08023F30 ldr r5, _08023F14 @ =0x086AE0B4 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #6 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r5 ldrh r1, [r0] ldr r2, _08023F0C @ =0x00000746 adds r0, r6, r2 strb r1, [r0] ldr r5, [r7] ldr r2, _08023F18 @ =0x086AE0A4 ldr r3, _08023F10 @ =0x000002DA adds r1, r5, r3 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] movs r6, #0xb5 lsls r6, r6, #2 adds r3, r5, r6 strh r0, [r3] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] ldr r7, _08023F1C @ =0x000002D6 adds r2, r5, r7 strh r0, [r2] adds r1, r5, #0 adds r1, #0x58 ldrh r0, [r3] ldrh r1, [r1] subs r0, r0, r1 mov r1, sl strh r0, [r1, #2] adds r1, r5, #0 adds r1, #0x5a ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 mov r2, sl strh r0, [r2, #4] adds r0, r4, #0 movs r1, #6 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _08023EDE b _08024226 _08023EDE: ldr r2, _08023F20 @ =0x040000D4 mov r3, sb adds r0, r5, r3 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08023F24 @ =0x08449D8C adds r0, r0, r1 str r0, [r2] ldr r0, _08023F28 @ =0x06013300 str r0, [r2, #4] ldr r0, _08023F2C @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] b _08024226 .align 2, 0 _08023F00: .4byte 0x0200D860 _08023F04: .4byte 0xFFFFD860 _08023F08: .4byte 0x020314E0 _08023F0C: .4byte 0x00000746 _08023F10: .4byte 0x000002DA _08023F14: .4byte 0x086AE0B4 _08023F18: .4byte 0x086AE0A4 _08023F1C: .4byte 0x000002D6 _08023F20: .4byte 0x040000D4 _08023F24: .4byte 0x08449D8C _08023F28: .4byte 0x06013300 _08023F2C: .4byte 0x80000140 _08023F30: cmp r0, #3 beq _08023F36 b _080241D4 _08023F36: movs r1, #0xb4 lsls r1, r1, #2 adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _08024004 movs r2, #0xf6 lsls r2, r2, #1 adds r4, r6, r2 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bne _08023FCA movs r3, #2 strb r3, [r4] ldr r0, [r7] add r0, sb mov r6, sp ldrb r6, [r6] strb r6, [r0] ldr r2, _08023FEC @ =0x040000D4 ldr r4, [r7] mov r1, sb adds r0, r4, r1 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08023FF0 @ =0x08449D8C adds r0, r0, r1 str r0, [r2] ldr r0, _08023FF4 @ =0x06013300 str r0, [r2, #4] ldr r0, _08023FF8 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r5, #0xf] movs r1, #1 orrs r0, r1 strb r0, [r5, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 mov r6, r8 strh r6, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0x3c strh r0, [r1] subs r1, #4 movs r0, #0x48 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe6 strh r6, [r0] adds r0, #8 strh r3, [r0] adds r0, #4 strb r2, [r0] ldr r0, [r7] adds r0, #0xfa mov r1, sp ldrb r1, [r1] strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r2, [r0] ldr r0, [r7] ldr r2, _08023FFC @ =0x000002DE adds r0, r0, r2 movs r1, #0x30 strh r1, [r0] _08023FCA: ldr r0, [r7] ldr r3, _08024000 @ =0x000002D9 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08023FDA b _080240FA _08023FDA: mov r6, r8 strb r6, [r1] ldr r0, [r7] ldr r7, _08023FFC @ =0x000002DE adds r0, r0, r7 movs r1, #0x30 strh r1, [r0] b _080240FA .align 2, 0 _08023FEC: .4byte 0x040000D4 _08023FF0: .4byte 0x08449D8C _08023FF4: .4byte 0x06013300 _08023FF8: .4byte 0x80000140 _08023FFC: .4byte 0x000002DE _08024000: .4byte 0x000002D9 _08024004: ldr r0, _0802407C @ =0x000002DE adds r2, r6, r0 ldrh r0, [r2] cmp r0, #0 bne _080240A8 movs r5, #0xb8 lsls r5, r5, #2 adds r0, r6, r5 ldrh r0, [r0] cmp r0, #0x1e bne _0802406A mov r1, r8 strb r1, [r6, #0x1f] ldr r1, [r7] movs r4, #0 movs r0, #0x3c strh r0, [r1, #0x26] ldr r2, _08024080 @ =0x0000132C adds r1, r1, r2 ldr r2, [r1] movs r0, #0x14 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xc8 strh r0, [r2, #0x32] ldr r2, [r1] movs r0, #0x58 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xa3 strh r0, [r2, #0x12] ldr r0, [r1] mov r3, r8 strh r3, [r0, #6] ldr r2, [r1] movs r6, #0x10 ldrsh r0, [r2, r6] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] movs r0, #0xb9 bl m4aSongNumStart ldr r0, [r7] ldr r3, _08024084 @ =0x000005FA adds r0, r0, r3 strb r4, [r0] _0802406A: ldr r0, [r7] adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _08024088 subs r0, #1 strh r0, [r1] b _080240FA .align 2, 0 _0802407C: .4byte 0x000002DE _08024080: .4byte 0x0000132C _08024084: .4byte 0x000005FA _08024088: bl sub_23954 ldr r0, [r7] ldr r6, _080240A4 @ =0x000002DA adds r0, r0, r6 mov r1, r8 strb r1, [r0] ldr r0, [r7] movs r2, #0xb4 lsls r2, r2, #2 adds r0, r0, r2 strb r1, [r0] b _080240FA .align 2, 0 _080240A4: .4byte 0x000002DA _080240A8: ldr r3, _08024184 @ =0x0000132C adds r4, r6, r3 ldr r1, [r4] movs r0, #0x58 strh r0, [r1, #0x10] ldr r5, [r4] ldrh r0, [r2] movs r1, #3 bl __udivsi3 movs r1, #0xa3 subs r1, r1, r0 strh r1, [r5, #0x12] ldr r0, [r4] mov r7, r8 strh r7, [r0, #6] ldr r1, [r4] movs r2, #0x10 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r7, #0x10 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] ldr r3, _08024188 @ =0x000005FA adds r0, r6, r3 mov r6, sp ldrb r6, [r6] strb r6, [r0] _080240FA: ldr r6, _0802418C @ =0x020314E0 ldr r7, [r6] ldr r1, _08024190 @ =0x086AE0A4 ldr r0, _08024194 @ =0x000002DA adds r0, r0, r7 mov r8, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] movs r2, #0xb5 lsls r2, r2, #2 adds r5, r7, r2 strh r0, [r5] mov r3, r8 movs r4, #0 ldrsb r4, [r3, r4] lsls r4, r4, #2 adds r4, r4, r1 ldr r1, _08024198 @ =0x000002DE adds r0, r7, r1 ldrh r0, [r0] movs r1, #3 bl __udivsi3 ldrh r1, [r4, #2] subs r1, r1, r0 ldr r3, _0802419C @ =0x000002D6 adds r2, r7, r3 strh r1, [r2] adds r1, r7, #0 adds r1, #0x58 ldrh r0, [r5] ldrh r1, [r1] subs r0, r0, r1 mov r1, sl strh r0, [r1, #2] adds r1, r7, #0 adds r1, #0x5a ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 mov r2, sl strh r0, [r2, #4] movs r0, #0x13 ldrsb r0, [r7, r0] cmp r0, #2 bgt _080241AE mov r3, r8 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #3 bne _080241A0 movs r1, #0xb4 lsls r1, r1, #2 adds r0, r7, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _080241A0 movs r2, #0xe5 lsls r2, r2, #3 adds r1, r7, r2 movs r0, #1 b _080241B6 .align 2, 0 _08024184: .4byte 0x0000132C _08024188: .4byte 0x000005FA _0802418C: .4byte 0x020314E0 _08024190: .4byte 0x086AE0A4 _08024194: .4byte 0x000002DA _08024198: .4byte 0x000002DE _0802419C: .4byte 0x000002D6 _080241A0: ldr r0, [r6] movs r3, #0xe5 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0 strb r1, [r0] b _080241B8 _080241AE: movs r0, #0xe5 lsls r0, r0, #3 adds r1, r7, r0 movs r0, #0 _080241B6: strb r0, [r1] _080241B8: ldr r0, [r6] ldr r1, _080241D0 @ =0x000002DE adds r6, r0, r1 ldrh r0, [r6] cmp r0, #0 beq _08024226 subs r0, #1 strh r0, [r6] movs r2, #2 str r2, [sp] b _08024226 .align 2, 0 _080241D0: .4byte 0x000002DE _080241D4: movs r3, #0xf6 lsls r3, r3, #1 adds r0, r6, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0802420C movs r1, #0xe5 lsls r1, r1, #3 adds r0, r6, r1 mov r2, r8 strb r2, [r0] ldr r0, [r7] adds r0, r0, r3 movs r1, #4 strb r1, [r0] ldr r0, [r7] adds r3, #1 adds r1, r0, r3 movs r0, #8 strb r0, [r1] ldr r0, [r7] movs r6, #0xf8 lsls r6, r6, #1 adds r0, r0, r6 mov r1, r8 strh r1, [r0] _0802420C: ldr r0, [r7] movs r2, #0xb5 lsls r2, r2, #2 adds r1, r0, r2 mov r3, r8 strh r3, [r1] ldr r6, _080242A4 @ =0x000002D6 adds r0, r0, r6 strh r3, [r0] mov r7, sl strh r3, [r7, #2] movs r0, #0xa0 strh r0, [r7, #4] _08024226: movs r0, #0 ldr r6, _080242A8 @ =0x03005000 ldr r1, [sp] lsls r1, r1, #2 mov ip, r1 movs r2, #0xd rsbs r2, r2, #0 mov sb, r2 ldr r3, _080242AC @ =0xFFFFFE00 mov r8, r3 _0802423A: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 add r4, sl ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sb ands r0, r2 mov r7, ip orrs r0, r7 strb r0, [r1, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _080242B0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 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 r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _0802423A 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 _080242A4: .4byte 0x000002D6 _080242A8: .4byte 0x03005000 _080242AC: .4byte 0xFFFFFE00 _080242B0: .4byte 0x000001FF thumb_func_start sub_242B4 sub_242B4: @ 0x080242B4 push {r4, r5, lr} ldr r0, _080242C8 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _080242D0 ldr r0, _080242CC @ =0x020314E0 ldr r0, [r0] movs r1, #0xb4 lsls r1, r1, #2 b _080242D6 .align 2, 0 _080242C8: .4byte gMain _080242CC: .4byte 0x020314E0 _080242D0: ldr r0, _0802431C @ =0x020314E0 ldr r0, [r0] ldr r1, _08024320 @ =0x00000343 _080242D6: adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r5, _0802431C @ =0x020314E0 ldr r0, [r5] ldr r1, _08024324 @ =0x000005A5 adds r0, r0, r1 movs r4, #0 strb r4, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r1, _08024328 @ =0x000006C4 adds r0, r0, r1 strb r4, [r0] movs r2, #0 ldr r5, _0802432C @ =0x0000071D _080242FC: ldr r0, _0802431C @ =0x020314E0 ldr r3, [r0] ldr r0, _08024330 @ =0x00000723 adds r1, r3, r0 lsls r0, r2, #0x10 asrs r2, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, #0 cmp r2, r1 bge _08024334 adds r0, r3, r5 adds r0, r0, r2 movs r1, #1 b _0802433A .align 2, 0 _0802431C: .4byte 0x020314E0 _08024320: .4byte 0x00000343 _08024324: .4byte 0x000005A5 _08024328: .4byte 0x000006C4 _0802432C: .4byte 0x0000071D _08024330: .4byte 0x00000723 _08024334: adds r0, r3, r5 adds r0, r0, r2 movs r1, #0 _0802433A: strb r1, [r0] movs r1, #0x80 lsls r1, r1, #9 adds r0, r4, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _080242FC pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_24350 sub_24350: @ 0x08024350 push {r4, r5, lr} ldr r4, _0802439C @ =0x020314E0 ldr r0, [r4] movs r3, #0 strb r3, [r0, #0x17] ldr r1, [r4] movs r5, #0 strh r3, [r1, #0x18] ldr r0, _080243A0 @ =0x00000724 adds r2, r1, r0 subs r0, #0x1c strh r0, [r2] ldr r0, _080243A4 @ =0x000005A5 adds r1, r1, r0 strb r5, [r1] ldr r2, [r4] movs r1, #0xfc lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] adds r1, #2 adds r0, r2, r1 strh r3, [r0] ldr r0, _080243A8 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _080243B0 movs r3, #0xfe lsls r3, r3, #1 adds r1, r2, r3 ldr r0, _080243AC @ =0x000002EE str r0, [r1] subs r0, #0xee adds r1, r2, r0 movs r0, #0x82 lsls r0, r0, #3 b _080243C4 .align 2, 0 _0802439C: .4byte 0x020314E0 _080243A0: .4byte 0x00000724 _080243A4: .4byte 0x000005A5 _080243A8: .4byte gMain _080243AC: .4byte 0x000002EE _080243B0: movs r3, #0xfe lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0xf5 lsls r0, r0, #3 str r0, [r1] movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 subs r0, #0xd4 _080243C4: str r0, [r1] ldr r0, [r4] movs r1, #0x81 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r4] ldr r3, _080243FC @ =0x00000206 adds r1, r0, r3 movs r3, #0 strh r2, [r1] movs r4, #0xfc lsls r4, r4, #1 adds r1, r0, r4 strh r2, [r1] adds r4, #2 adds r1, r0, r4 strh r2, [r1] ldr r4, _08024400 @ =0x000005AA adds r1, r0, r4 strh r2, [r1] ldr r1, _08024404 @ =0x000005A9 adds r0, r0, r1 strb r3, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080243FC: .4byte 0x00000206 _08024400: .4byte 0x000005AA _08024404: .4byte 0x000005A9 thumb_func_start sub_24408 sub_24408: @ 0x08024408 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 ldr r2, _08024440 @ =gMain ldr r0, [r2, #0x44] adds r0, #0xa4 ldr r0, [r0] mov sb, r0 movs r0, #1 mov sl, r0 ldr r1, _08024444 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bls _08024434 bl _080252F6 _08024434: lsls r0, r0, #2 ldr r1, _08024448 @ =_0802444C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08024440: .4byte gMain _08024444: .4byte 0x020314E0 _08024448: .4byte _0802444C _0802444C: @ jump table .4byte _08024470 @ case 0 .4byte _080244A0 @ case 1 .4byte _08024784 @ case 2 .4byte _08024AB4 @ case 3 .4byte _08024EFC @ case 4 .4byte _080250E4 @ case 5 .4byte _08025208 @ case 6 .4byte _08025294 @ case 7 .4byte _080252B8 @ case 8 _08024470: ldr r1, _08024494 @ =0x020314E0 ldr r0, [r1] ldr r2, _08024498 @ =0x000006C4 adds r0, r0, r2 movs r1, #3 strb r1, [r0] ldr r3, _0802449C @ =gMain ldr r0, [r3, #0x44] adds r0, #0xa4 ldr r1, [r0] movs r0, #1 strh r0, [r1] ldr r4, _08024494 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 bl _080252F4 .align 2, 0 _08024494: .4byte 0x020314E0 _08024498: .4byte 0x000006C4 _0802449C: .4byte gMain _080244A0: ldr r3, _080244D0 @ =0x086AD52C ldr r5, _080244D4 @ =0x020314E0 ldr r2, [r5] movs r6, #0x81 lsls r6, r6, #2 adds r4, r2, r6 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r7, #0 ldrsh r0, [r0, r7] ldr r7, _080244D8 @ =0x00000206 adds r2, r2, r7 ldrh r1, [r2] cmp r0, r1 ble _080244DC adds r0, r1, #1 strh r0, [r2] b _080245FE .align 2, 0 _080244D0: .4byte 0x086AD52C _080244D4: .4byte 0x020314E0 _080244D8: .4byte 0x00000206 _080244DC: ldrb r0, [r4] adds r0, #1 movs r5, #0 strb r0, [r4] ldr r0, _0802459C @ =0x020314E0 ldr r1, [r0] ldr r4, _080245A0 @ =0x00000206 adds r2, r1, r4 strh r5, [r2] ldr r4, _080245A4 @ =gMain ldrb r0, [r4, #4] cmp r0, #0 bne _080245D4 adds r1, r1, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd ble _08024520 movs r0, #0 strb r0, [r1] ldr r0, _0802459C @ =0x020314E0 ldr r1, [r0] movs r0, #3 strb r0, [r1, #0x17] ldr r2, _0802459C @ =0x020314E0 ldr r1, [r2] movs r3, #0xfc lsls r3, r3, #1 adds r0, r1, r3 strh r5, [r0] movs r4, #0xfd lsls r4, r4, #1 adds r0, r1, r4 strh r5, [r0] _08024520: ldr r5, _0802459C @ =0x020314E0 ldr r1, [r5] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _0802453E adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0 bne _0802453E movs r0, #0x15 bl m4aSongNumStart _0802453E: ldr r4, _0802459C @ =0x020314E0 ldr r3, [r4] movs r5, #0x81 lsls r5, r5, #2 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08024576 movs r6, #0xa7 lsls r6, r6, #2 adds r1, r3, r6 movs r0, #0x8c strh r0, [r1] ldr r2, _080245A8 @ =0x086A3700 movs r7, #0xb3 lsls r7, r7, #3 adds r0, r3, r7 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC _08024576: ldr r2, [r4] adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _080245B8 movs r1, #0xfc lsls r1, r1, #1 adds r0, r2, r1 ldr r1, _080245AC @ =0x0000FFF8 strh r1, [r0] movs r3, #0xfd lsls r3, r3, #1 adds r1, r2, r3 ldr r0, _080245B0 @ =0x0000FFE2 strh r0, [r1] ldr r3, _080245B4 @ =0x086AD52C b _080245FE .align 2, 0 _0802459C: .4byte 0x020314E0 _080245A0: .4byte 0x00000206 _080245A4: .4byte gMain _080245A8: .4byte 0x086A3700 _080245AC: .4byte 0x0000FFF8 _080245B0: .4byte 0x0000FFE2 _080245B4: .4byte 0x086AD52C _080245B8: movs r5, #0xfc lsls r5, r5, #1 adds r0, r2, r5 movs r1, #0 strh r1, [r0] movs r6, #0xfd lsls r6, r6, #1 adds r0, r2, r6 strh r1, [r0] ldr r3, _080245D0 @ =0x086AD52C b _080245FE .align 2, 0 _080245D0: .4byte 0x086AD52C _080245D4: adds r1, r1, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #9 ble _080245FE strh r5, [r2] movs r0, #0xa strb r0, [r1] ldr r7, _08024754 @ =0x020314E0 ldr r1, [r7] movs r0, #2 strb r0, [r1, #0x17] ldr r1, [r7] movs r2, #0xfc lsls r2, r2, #1 adds r0, r1, r2 strh r5, [r0] movs r4, #0xfd lsls r4, r4, #1 adds r0, r1, r4 strh r5, [r0] _080245FE: ldr r5, _08024754 @ =0x020314E0 ldr r4, [r5] movs r6, #0x81 lsls r6, r6, #2 adds r2, r4, r6 movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r5, [r1] adds r1, r3, #4 adds r0, r0, r1 ldrh r6, [r0] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0xc bne _08024656 movs r7, #0xfd lsls r7, r7, #1 adds r3, r4, r7 ldrh r0, [r3] adds r0, #2 strh r0, [r3] movs r0, #0xfe lsls r0, r0, #1 adds r2, r4, r0 movs r1, #0xfc lsls r1, r1, #1 adds r0, r4, r1 movs r7, #0 ldrsh r1, [r0, r7] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x80 lsls r0, r0, #2 adds r2, r4, r0 movs r4, #0 ldrsh r1, [r3, r4] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] _08024656: ldr r7, _08024754 @ =0x020314E0 ldr r4, [r7] movs r1, #0xfe lsls r1, r1, #1 adds r0, r4, r1 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r2, sb strh r0, [r2, #2] movs r3, #0x80 lsls r3, r3, #2 adds r0, r4, r3 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r4, sb strh r0, [r4, #4] ldr r2, _08024758 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _0802475C @ =0x0202C7A0 adds r0, r0, r1 str r0, [r2] ldr r0, _08024760 @ =0x060112A0 str r0, [r2, #4] ldr r0, _08024764 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08024768 @ =0x020315D0 str r0, [r2] ldr r0, _0802476C @ =0x050003A0 str r0, [r2, #4] ldr r0, _08024770 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 lsls r1, r6, #0x10 ldr r5, _08024774 @ =0x086B4B0E mov r8, r5 ldr r6, _08024778 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov ip, r0 _080246CC: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 mov r7, sb adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, r8 add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 str r1, [sp, #0xc] movs r1, #2 ldrsh r0, [r7, r1] ldr r7, [sp, #0xc] adds r1, r7, r0 ldr r7, _0802477C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _08024780 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r5, sl lsls r4, r5, #2 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _080246CC bl _080252F6 .align 2, 0 _08024754: .4byte 0x020314E0 _08024758: .4byte 0x040000D4 _0802475C: .4byte 0x0202C7A0 _08024760: .4byte 0x060112A0 _08024764: .4byte 0x80000090 _08024768: .4byte 0x020315D0 _0802476C: .4byte 0x050003A0 _08024770: .4byte 0x80000010 _08024774: .4byte 0x086B4B0E _08024778: .4byte 0x03005000 _0802477C: .4byte 0x000001FF _08024780: .4byte 0xFFFFFE00 _08024784: ldr r0, _080247B0 @ =0x020314E0 mov sl, r0 ldr r4, [r0] ldr r1, _080247B4 @ =0x00000206 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0xef bhi _080247BC movs r2, #1 mov sl, r2 cmp r0, #0 bne _080247AA ldr r3, _080247B8 @ =0x00000346 adds r1, r4, r3 movs r0, #3 strb r0, [r1] movs r0, #0xdd bl m4aSongNumStart _080247AA: movs r5, #0 b _0802499E .align 2, 0 _080247B0: .4byte 0x020314E0 _080247B4: .4byte 0x00000206 _080247B8: .4byte 0x00000346 _080247BC: cmp r0, #0xf0 bne _080247F4 movs r5, #0xfe lsls r5, r5, #1 adds r1, r4, r5 ldr r0, _080247F0 @ =0x000008D4 str r0, [r1] movs r6, #0x80 lsls r6, r6, #2 adds r1, r4, r6 movs r0, #0xb9 lsls r0, r0, #2 str r0, [r1] movs r7, #0x81 lsls r7, r7, #2 adds r1, r4, r7 movs r0, #0 strb r0, [r1] movs r0, #2 mov sl, r0 movs r5, #0 movs r0, #0x15 bl m4aSongNumStart b _0802499E .align 2, 0 _080247F0: .4byte 0x000008D4 _080247F4: ldr r3, _080248A0 @ =0x086AD750 movs r1, #0x81 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 adds r1, r2, r3 movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] adds r0, #0x78 ldr r1, [r1] subs r6, r1, r0 adds r3, #4 adds r2, r2, r3 movs r1, #0x80 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] adds r0, #0xa0 ldr r1, [r2] subs r7, r1, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 str r1, [sp, #8] lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r4, r0, #0x10 lsrs r2, r4, #0x10 mov r8, r2 mov r3, sl ldr r2, [r3] adds r5, #0xa adds r0, r2, r5 ldrh r1, [r0] ldr r0, _080248A4 @ =0x00000143 movs r6, #1 mov sl, r6 cmp r1, r0 bhi _0802485C movs r7, #2 mov sl, r7 _0802485C: movs r1, #0x81 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bgt _080248AC movs r5, #0 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 lsls r1, r1, #1 ldr r4, _080248A8 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 str r0, [sp] mov r0, r8 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 b _080248F0 .align 2, 0 _080248A0: .4byte 0x086AD750 _080248A4: .4byte 0x00000143 _080248A8: .4byte 0x00004E20 _080248AC: ldr r0, _08024934 @ =0x086AD788 lsrs r4, r4, #0x1d lsls r4, r4, #1 adds r4, r4, r0 ldr r0, _08024938 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x18 bl __umodsi3 lsrs r0, r0, #3 ldrh r4, [r4] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r4, _0802493C @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 str r0, [sp] mov r0, r8 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 _080248F0: adds r1, r4, #0 bl __divsi3 str r0, [sp, #4] ldr r4, _08024940 @ =0x020314E0 ldr r2, [r4] movs r3, #0xfe lsls r3, r3, #1 adds r1, r2, r3 ldr r0, [r1] ldr r6, [sp] adds r0, r0, r6 str r0, [r1] movs r7, #0x80 lsls r7, r7, #2 adds r1, r2, r7 ldr r0, [r1] ldr r3, [sp, #4] adds r0, r0, r3 str r0, [r1] ldr r0, _08024944 @ =0x000009C3 ldr r6, [sp, #8] cmp r6, r0 bgt _08024964 adds r7, #4 adds r3, r2, r7 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #5 bgt _08024948 adds r0, r1, #1 strb r0, [r3] b _08024964 .align 2, 0 _08024934: .4byte 0x086AD788 _08024938: .4byte gMain _0802493C: .4byte 0x00004E20 _08024940: .4byte 0x020314E0 _08024944: .4byte 0x000009C3 _08024948: movs r2, #0 movs r1, #3 strb r1, [r3] ldr r0, [r4] strb r1, [r0, #0x17] ldr r1, [r4] movs r3, #0xfc lsls r3, r3, #1 adds r0, r1, r3 strh r2, [r0] movs r4, #0xfd lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] _08024964: ldr r0, _0802497C @ =0x020314E0 ldr r1, [r0] ldr r6, _08024980 @ =0x00000206 adds r0, r1, r6 ldrh r2, [r0] ldr r0, _08024984 @ =0x0000017B cmp r2, r0 bhi _08024988 adds r1, #0xe6 ldrh r0, [r1] adds r0, #1 b _0802499C .align 2, 0 _0802497C: .4byte 0x020314E0 _08024980: .4byte 0x00000206 _08024984: .4byte 0x0000017B _08024988: ldr r0, _08024A0C @ =0x0000018F cmp r2, r0 bls _0802499E adds r1, #0xe6 ldrh r2, [r1] movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0 ble _0802499E subs r0, r2, #1 _0802499C: strh r0, [r1] _0802499E: ldr r2, _08024A10 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _08024A14 @ =0x0202C7A0 adds r0, r0, r1 str r0, [r2] ldr r0, _08024A18 @ =0x060112A0 str r0, [r2, #4] ldr r0, _08024A1C @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08024A20 @ =0x020314E0 ldr r4, [r0] ldr r0, _08024A24 @ =0x00000206 adds r1, r4, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] movs r1, #0xfe lsls r1, r1, #1 adds r0, r4, r1 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r2, sb strh r0, [r2, #2] movs r3, #0x80 lsls r3, r3, #2 adds r0, r4, r3 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r4, sb strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08024A28 movs r0, #0xb4 strh r0, [r4, #4] b _08024A34 .align 2, 0 _08024A0C: .4byte 0x0000018F _08024A10: .4byte 0x040000D4 _08024A14: .4byte 0x0202C7A0 _08024A18: .4byte 0x060112A0 _08024A1C: .4byte 0x80000090 _08024A20: .4byte 0x020314E0 _08024A24: .4byte 0x00000206 _08024A28: movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08024A34 mov r5, sb strh r1, [r5, #4] _08024A34: movs r2, #0 ldr r6, _08024AA8 @ =0x03005000 mov r7, sl lsls r7, r7, #2 mov ip, r7 movs r0, #0xd rsbs r0, r0, #0 mov sl, r0 ldr r1, _08024AAC @ =0xFFFFFE00 mov r8, r1 _08024A48: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r2, sb adds r5, r2, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sl ands r0, r2 mov r3, ip orrs r0, r3 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r7, #2 ldrsh r1, [r5, r7] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08024AB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08024A48 bl _080252F6 .align 2, 0 _08024AA8: .4byte 0x03005000 _08024AAC: .4byte 0xFFFFFE00 _08024AB0: .4byte 0x000001FF _08024AB4: ldr r3, _08024B5C @ =0x086AD580 ldr r5, _08024B60 @ =0x020314E0 ldr r4, [r5] movs r1, #0x81 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 ldr r5, _08024B64 @ =gMain ldrb r1, [r5, #4] movs r0, #0xe8 muls r0, r1, r0 adds r2, r2, r0 adds r1, r2, r3 movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] adds r0, #0x78 ldr r1, [r1] subs r6, r1, r0 adds r3, #4 adds r2, r2, r3 movs r1, #0x80 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] adds r0, #0xa0 ldr r1, [r2] subs r7, r1, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 str r1, [sp, #8] lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 mov sl, r0 mov r2, sl lsrs r2, r2, #0x10 mov r8, r2 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r4, _08024B68 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 str r0, [sp] mov r0, r8 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r4, #0 bl __divsi3 str r0, [sp, #4] ldr r3, _08024B60 @ =0x020314E0 ldr r5, [r3] ldr r4, _08024B6C @ =0x000005A9 adds r1, r5, r4 ldrb r0, [r1] cmp r0, #0 beq _08024B70 subs r0, #1 strb r0, [r1] movs r5, #0xe b _08024BFA .align 2, 0 _08024B5C: .4byte 0x086AD580 _08024B60: .4byte 0x020314E0 _08024B64: .4byte gMain _08024B68: .4byte 0x00004E20 _08024B6C: .4byte 0x000005A9 _08024B70: ldr r2, _08024BA8 @ =0x086A3700 movs r1, #0xb3 lsls r1, r1, #3 adds r0, r5, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #0x13] cmp r0, #0 beq _08024BB4 ldr r0, _08024BAC @ =0x086AD788 mov r2, sl lsrs r4, r2, #0x1d lsls r4, r4, #1 adds r4, r4, r0 ldr r3, _08024BB0 @ =gMain ldr r0, [r3, #0x4c] movs r1, #0x18 bl __umodsi3 lsrs r0, r0, #3 ldrh r4, [r4] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 b _08024BDA .align 2, 0 _08024BA8: .4byte 0x086A3700 _08024BAC: .4byte 0x086AD788 _08024BB0: .4byte gMain _08024BB4: ldr r0, _08024C1C @ =0x086AD788 mov r4, sl lsrs r2, r4, #0x1d lsls r2, r2, #1 adds r2, r2, r0 ldr r5, _08024C20 @ =gMain ldr r0, [r5, #0x4c] movs r1, #0x1f ands r0, r1 lsrs r4, r0, #3 ldrh r2, [r2] adds r4, r4, r2 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 subs r4, r4, r0 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 _08024BDA: ldr r0, _08024C24 @ =0x020314E0 ldr r2, [r0] movs r0, #0xfe lsls r0, r0, #1 adds r1, r2, r0 ldr r0, [r1] ldr r3, [sp] adds r0, r0, r3 str r0, [r1] movs r4, #0x80 lsls r4, r4, #2 adds r1, r2, r4 ldr r0, [r1] ldr r2, [sp, #4] adds r0, r0, r2 str r0, [r1] _08024BFA: ldr r0, _08024C28 @ =0x000009C3 ldr r3, [sp, #8] cmp r3, r0 bgt _08024C40 ldr r4, _08024C24 @ =0x020314E0 ldr r0, [r4] movs r2, #0x81 lsls r2, r2, #2 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x1b bgt _08024C2C adds r0, r2, #1 strb r0, [r1] b _08024C40 .align 2, 0 _08024C1C: .4byte 0x086AD788 _08024C20: .4byte gMain _08024C24: .4byte 0x020314E0 _08024C28: .4byte 0x000009C3 _08024C2C: bl m4aMPlayAllStop movs r0, #0xd bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #6 strb r1, [r0, #0x17] _08024C40: ldr r0, _08024C68 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _08024C70 ldr r0, _08024C6C @ =0x020314E0 ldr r1, [r0] movs r3, #0x81 lsls r3, r3, #2 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r4, #1 mov sl, r4 cmp r1, #0x1a ble _08024CA0 movs r0, #2 mov sl, r0 b _08024CA0 .align 2, 0 _08024C68: .4byte gMain _08024C6C: .4byte 0x020314E0 _08024C70: ldr r0, _08024C94 @ =0x020314E0 ldr r3, [r0] movs r2, #0x81 lsls r2, r2, #2 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #0x1b ble _08024C9C movs r4, #3 mov sl, r4 ldr r0, _08024C98 @ =0x00000367 adds r1, r3, r0 movs r0, #1 strb r0, [r1] b _08024CA0 .align 2, 0 _08024C94: .4byte 0x020314E0 _08024C98: .4byte 0x00000367 _08024C9C: movs r1, #1 mov sl, r1 _08024CA0: ldr r2, _08024CE8 @ =0x020314E0 ldr r4, [r2] movs r3, #0xfe lsls r3, r3, #1 adds r0, r4, r3 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r1, sb strh r0, [r1, #2] movs r2, #0x80 lsls r2, r2, #2 adds r0, r4, r2 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r3, sb strh r0, [r3, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08024CEC movs r0, #0xb4 strh r0, [r3, #4] b _08024CF8 .align 2, 0 _08024CE8: .4byte 0x020314E0 _08024CEC: movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08024CF8 mov r4, sb strh r1, [r4, #4] _08024CF8: ldr r2, _08024DA0 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _08024DA4 @ =0x0202C7A0 adds r0, r0, r1 str r0, [r2] ldr r0, _08024DA8 @ =0x060112A0 str r0, [r2, #4] ldr r0, _08024DAC @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 ldr r5, _08024DB0 @ =0x03005000 mov r8, r5 mov r0, sl lsls r0, r0, #2 mov sl, r0 ldr r1, _08024DB4 @ =0xFFFFFE00 mov ip, r1 _08024D24: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r2, sb adds r5, r2, r0 ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 mov r3, sl orrs r0, r3 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 add r3, r8 movs r1, #2 ldrsh r0, [r5, r1] str r0, [sp, #0xc] mov r2, sb movs r1, #2 ldrsh r0, [r2, r1] ldr r2, [sp, #0xc] adds r1, r2, r0 ldr r2, _08024DB8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08024D24 ldr r4, _08024DBC @ =0x020314E0 ldr r4, [r4] mov r8, r4 ldr r5, _08024DC0 @ =0x000005AA mov sl, r5 mov r1, r8 add r1, sl ldrh r0, [r1] cmp r0, #0 beq _08024DC4 subs r0, #1 strh r0, [r1] b _080252F6 .align 2, 0 _08024DA0: .4byte 0x040000D4 _08024DA4: .4byte 0x0202C7A0 _08024DA8: .4byte 0x060112A0 _08024DAC: .4byte 0x80000090 _08024DB0: .4byte 0x03005000 _08024DB4: .4byte 0xFFFFFE00 _08024DB8: .4byte 0x000001FF _08024DBC: .4byte 0x020314E0 _08024DC0: .4byte 0x000005AA _08024DC4: ldr r0, _08024EA0 @ =0x0000132C mov sb, r0 mov r0, r8 add r0, sb ldr r5, [r0] movs r1, #0x10 ldrsh r4, [r5, r1] subs r4, #0xc movs r0, #0xfe lsls r0, r0, #1 add r0, r8 ldr r0, [r0] movs r1, #0xa bl __divsi3 subs r6, r4, r0 movs r2, #0x12 ldrsh r4, [r5, r2] subs r4, #0xe movs r0, #0x80 lsls r0, r0, #2 add r0, r8 ldr r0, [r0] movs r1, #0xa bl __divsi3 subs r7, r4, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 cmp r1, #0x51 ble _08024E0A b _080252F6 _08024E0A: ldr r4, _08024EA4 @ =0x000005A5 mov r3, r8 adds r1, r3, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r5, _08024EA8 @ =0x020314E0 ldr r1, [r5] mov r6, sl adds r2, r1, r6 movs r0, #4 strh r0, [r2] ldr r7, _08024EAC @ =0x000005A9 adds r1, r1, r7 movs r0, #0x14 strb r0, [r1] ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] cmp r0, #1 bls _08024E38 movs r0, #4 strb r0, [r1, #0x17] _08024E38: movs r0, #0x75 bl m4aSongNumStart ldr r1, _08024EA8 @ =0x020314E0 ldr r0, [r1] add r0, sb ldr r1, [r0] ldrh r0, [r1, #0x30] rsbs r0, r0, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x32 ldrsh r1, [r1, r2] bl ArcTan2 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r3, _08024EA8 @ =0x020314E0 ldr r0, [r3] adds r0, r0, r4 ldrb r0, [r0] cmp r0, #1 bls _08024EB0 adds r0, r5, #0 bl sub_C74 ldr r4, _08024EA8 @ =0x020314E0 ldr r1, [r4] add r1, sb ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 bl __divsi3 strh r0, [r4, #0x30] adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 ldr r5, _08024EA8 @ =0x020314E0 ldr r0, [r5] add r0, sb ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r1 lsls r0, r0, #4 b _08024EE2 .align 2, 0 _08024EA0: .4byte 0x0000132C _08024EA4: .4byte 0x000005A5 _08024EA8: .4byte 0x020314E0 _08024EAC: .4byte 0x000005A9 _08024EB0: adds r0, r5, #0 bl sub_C74 ldr r6, _08024EF4 @ =0x020314E0 ldr r1, [r6] add r1, sb ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x7d bl __divsi3 strh r0, [r4, #0x30] adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 ldr r0, [r6] add r0, sb ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #5 _08024EE2: rsbs r0, r0, #0 ldr r1, _08024EF8 @ =0x00004E20 bl __divsi3 strh r0, [r4, #0x32] movs r0, #7 bl sub_11B0 b _080252F6 .align 2, 0 _08024EF4: .4byte 0x020314E0 _08024EF8: .4byte 0x00004E20 _08024EFC: ldr r7, _0802508C @ =0x020314E0 ldr r0, [r7] adds r0, #0xe4 movs r5, #0 movs r1, #9 strb r1, [r0] ldr r1, _08025090 @ =0x040000D4 ldr r0, _08025094 @ =0x086ACF80 str r0, [r1] ldr r0, _08025098 @ =0x050003E0 str r0, [r1, #4] ldr r0, _0802509C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080250A0 @ =0x081428D4 str r0, [r1] ldr r0, _080250A4 @ =0x06015800 str r0, [r1, #4] ldr r0, _080250A8 @ =0x80000E00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] ldr r2, _080250AC @ =0x000005F6 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #9 ldr r4, _080250B0 @ =0x08138014 adds r0, r0, r4 str r0, [r1] ldr r0, _080250B4 @ =0x060164C0 str r0, [r1, #4] ldr r3, _080250B8 @ =0x80000040 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r0, #4 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r1] ldr r0, _080250BC @ =0x06016760 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] subs r2, #0x50 adds r1, r0, r2 strh r5, [r1] ldr r3, _080250C0 @ =0x000005A4 adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r4, [r7] movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r0, #8 movs r6, #0xa2 lsls r6, r6, #2 adds r1, r4, r6 strh r0, [r1] movs r7, #0x80 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0xa bl __divsi3 subs r0, #0x1f ldr r2, _080250C4 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] movs r2, #0 ldr r5, _0802508C @ =0x020314E0 ldr r4, _080250C8 @ =0x000006D3 movs r3, #0xd _08024FA8: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08024FA8 ldr r3, _0802508C @ =0x020314E0 ldr r1, [r3] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r4, [r3] movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r6, sb strh r0, [r6, #2] movs r7, #0x80 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _0802500A movs r0, #0xb4 strh r0, [r6, #4] _0802500A: ldr r1, _08025090 @ =0x040000D4 ldr r0, _080250CC @ =0x0202D760 str r0, [r1] ldr r0, _080250D0 @ =0x060112A0 str r0, [r1, #4] ldr r0, _080250D4 @ =0x80000090 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 ldr r6, _080250D8 @ =0x03005000 movs r1, #0xd rsbs r1, r1, #0 mov r8, r1 ldr r3, _080250DC @ =0xFFFFFE00 mov sl, r3 _08025028: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r7, sb adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] mov r0, r8 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _080250E0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08025028 ldr r3, _0802508C @ =0x020314E0 ldr r1, [r3] movs r0, #0 strh r0, [r1, #0x18] b _080252F6 .align 2, 0 _0802508C: .4byte 0x020314E0 _08025090: .4byte 0x040000D4 _08025094: .4byte 0x086ACF80 _08025098: .4byte 0x050003E0 _0802509C: .4byte 0x80000010 _080250A0: .4byte 0x081428D4 _080250A4: .4byte 0x06015800 _080250A8: .4byte 0x80000E00 _080250AC: .4byte 0x000005F6 _080250B0: .4byte 0x08138014 _080250B4: .4byte 0x060164C0 _080250B8: .4byte 0x80000040 _080250BC: .4byte 0x06016760 _080250C0: .4byte 0x000005A4 _080250C4: .4byte 0x0000028A _080250C8: .4byte 0x000006D3 _080250CC: .4byte 0x0202D760 _080250D0: .4byte 0x060112A0 _080250D4: .4byte 0x80000090 _080250D8: .4byte 0x03005000 _080250DC: .4byte 0xFFFFFE00 _080250E0: .4byte 0x000001FF _080250E4: ldr r5, _080251E4 @ =0x020314E0 ldr r4, [r5] movs r6, #0xb5 lsls r6, r6, #3 adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r7, #0 mov sl, r7 cmp r0, #0x10 bgt _08025100 movs r0, #2 mov sl, r0 _08025100: mov r1, sb ldrh r0, [r1] cmp r0, #0 bne _0802510A b _080252F6 _0802510A: movs r2, #0xfe lsls r2, r2, #1 adds r0, r4, r2 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r3, sb strh r0, [r3, #2] movs r5, #0x80 lsls r5, r5, #2 adds r0, r4, r5 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r6, sb strh r0, [r6, #4] movs r2, #0 ldr r6, _080251E8 @ =0x03005000 mov r7, sl lsls r7, r7, #2 mov ip, r7 movs r0, #0xd rsbs r0, r0, #0 mov sl, r0 ldr r1, _080251EC @ =0xFFFFFE00 mov r8, r1 _08025152: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r2, sb adds r5, r2, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sl ands r0, r2 mov r3, ip orrs r0, r3 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r7, #2 ldrsh r1, [r5, r7] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _080251F0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08025152 ldr r1, _080251F4 @ =0x040000D4 ldr r4, _080251F8 @ =0x0202D760 str r4, [r1] ldr r0, _080251FC @ =0x060112A0 str r0, [r1, #4] ldr r0, _08025200 @ =0x80000090 str r0, [r1, #8] ldr r0, [r1, #8] ldr r5, _080251E4 @ =0x020314E0 ldr r0, [r5] movs r6, #0xb5 lsls r6, r6, #3 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 beq _080251D4 b _080252F6 _080251D4: ldr r7, _08025204 @ =gMain ldr r0, [r7, #0x44] adds r0, #0xa4 ldr r1, [r0] movs r0, #0 strh r0, [r1] b _080252F6 .align 2, 0 _080251E4: .4byte 0x020314E0 _080251E8: .4byte 0x03005000 _080251EC: .4byte 0xFFFFFE00 _080251F0: .4byte 0x000001FF _080251F4: .4byte 0x040000D4 _080251F8: .4byte 0x0202D760 _080251FC: .4byte 0x060112A0 _08025200: .4byte 0x80000090 _08025204: .4byte gMain _08025208: mov r1, sb ldrh r0, [r1] cmp r0, #0 beq _08025268 movs r0, #0 strh r0, [r1, #2] movs r0, #0xc8 strh r0, [r1, #4] movs r2, #0 ldr r6, _08025280 @ =0x03005000 ldr r3, _08025284 @ =0xFFFFFE00 mov r8, r3 _08025220: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r7, sb adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _08025288 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08025220 _08025268: ldr r3, _0802528C @ =gMain ldr r0, [r3, #0x44] adds r0, #0xa4 ldr r1, [r0] movs r0, #0 strh r0, [r1] ldr r4, _08025290 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 b _080252F4 .align 2, 0 _08025280: .4byte 0x03005000 _08025284: .4byte 0xFFFFFE00 _08025288: .4byte 0x000001FF _0802528C: .4byte gMain _08025290: .4byte 0x020314E0 _08025294: bl sub_242B4 ldr r2, _080252B0 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 movs r3, #0 strb r0, [r1, #0x17] ldr r0, [r2] ldr r5, _080252B4 @ =0x00000367 adds r0, r0, r5 strb r3, [r0] b _080252F6 .align 2, 0 _080252B0: .4byte 0x020314E0 _080252B4: .4byte 0x00000367 _080252B8: ldr r6, _080252C8 @ =0x020314E0 ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080252CC subs r0, #1 strh r0, [r1, #0x18] b _080252F6 .align 2, 0 _080252C8: .4byte 0x020314E0 _080252CC: ldr r7, _080252E4 @ =0x0000071F adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080252E8 movs r0, #3 bl sub_19B64 b _080252EE .align 2, 0 _080252E4: .4byte 0x0000071F _080252E8: movs r0, #1 bl sub_19B64 _080252EE: ldr r0, _08025308 @ =0x020314E0 ldr r1, [r0] movs r0, #0 _080252F4: strb r0, [r1, #0x17] _080252F6: add sp, #0x10 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 _08025308: .4byte 0x020314E0 thumb_func_start sub_2530C sub_2530C: @ 0x0802530C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _080253D0 @ =gMain ldr r1, [r0, #0x44] ldr r5, [r1, #0x48] ldrh r1, [r5] mov r8, r0 ldr r0, _080253D4 @ =0x020314E0 mov sb, r0 cmp r1, #0 beq _08025360 movs r0, #0 ldr r6, _080253D8 @ =0x03005000 ldr r1, _080253DC @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _08025330: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r4, r5, r0 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _08025330 _08025360: mov r1, r8 ldr r0, [r1, #0x44] ldr r1, [r0, #0x48] movs r0, #0 strh r0, [r1] mov r1, r8 ldr r0, [r1, #0x44] ldr r5, [r0, #0x30] ldrh r0, [r5] cmp r0, #0 beq _080253B0 movs r0, #0 ldr r6, _080253D8 @ =0x03005000 ldr r1, _080253DC @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _08025380: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r4, r5, r0 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _08025380 _080253B0: mov r1, r8 ldr r0, [r1, #0x44] ldr r1, [r0, #0x30] movs r2, #0 movs r0, #0 strh r0, [r1] mov r1, sb ldr r0, [r1] adds r0, #0xe4 strb r2, [r0] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080253D0: .4byte gMain _080253D4: .4byte 0x020314E0 _080253D8: .4byte 0x03005000 _080253DC: .4byte 0xFFFFFE00 thumb_func_start sub_253E0 sub_253E0: @ 0x080253E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #1 mov r8, r0 ldr r0, _08025490 @ =gMain ldr r0, [r0, #0x44] ldr r0, [r0, #0x48] mov r1, r8 strh r1, [r0] ldr r4, _08025494 @ =0x020314E0 ldr r0, [r4] ldr r5, _08025498 @ =0x000006CC adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08025410 bl sub_2971C _08025410: ldr r3, [r4] ldr r2, _0802549C @ =0x000006C7 adds r0, r3, r2 ldr r4, _080254A0 @ =0x000006C6 adds r1, r3, r4 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 blt _08025428 b _0802564C _08025428: adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08025464 ldr r1, _080254A4 @ =0x000006CA adds r0, r3, r1 ldrh r0, [r0] cmp r0, #0 bne _08025464 adds r1, r3, #0 adds r1, #0xe4 movs r0, #0xb strb r0, [r1] ldr r1, _080254A8 @ =0x040000D4 ldr r0, _080254AC @ =0x083A05CC str r0, [r1] ldr r0, _080254B0 @ =0x050003C0 str r0, [r1, #4] ldr r0, _080254B4 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080254B8 @ =0x0839DDAC str r0, [r1] ldr r0, _080254BC @ =0x06015800 str r0, [r1, #4] ldr r0, _080254C0 @ =0x80001400 str r0, [r1, #8] ldr r0, [r1, #8] _08025464: ldr r1, _080254C4 @ =0x086AD3FE ldr r3, _08025494 @ =0x020314E0 ldr r2, [r3] ldr r6, _08025498 @ =0x000006CC adds r4, r2, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _080254A4 @ =0x000006CA adds r2, r2, r1 ldrh r1, [r2] adds r5, r3, #0 cmp r0, r1 ble _080254C8 adds r0, r1, #1 strh r0, [r2] b _08025650 .align 2, 0 _08025490: .4byte gMain _08025494: .4byte 0x020314E0 _08025498: .4byte 0x000006CC _0802549C: .4byte 0x000006C7 _080254A0: .4byte 0x000006C6 _080254A4: .4byte 0x000006CA _080254A8: .4byte 0x040000D4 _080254AC: .4byte 0x083A05CC _080254B0: .4byte 0x050003C0 _080254B4: .4byte 0x80000010 _080254B8: .4byte 0x0839DDAC _080254BC: .4byte 0x06015800 _080254C0: .4byte 0x80001400 _080254C4: .4byte 0x086AD3FE _080254C8: movs r7, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r3, [r5] ldr r2, _0802559C @ =0x000006CC adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bgt _080254E6 b _0802562C _080254E6: subs r2, #5 adds r1, r3, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r6 strb r7, [r0] movs r3, #0 mov r8, r3 ldr r1, [r5] ldr r4, _080255A0 @ =0x000006C9 adds r1, r1, r4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r3, [r5] adds r2, r3, r2 ldr r1, _080255A4 @ =0x000006C6 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _0802552E adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 blt _0802553A adds r0, r3, #0 adds r0, #0xe4 strb r7, [r0] _0802552E: ldr r0, [r5] adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _080255B4 _0802553A: ldr r0, [r5] ldr r2, _080255A4 @ =0x000006C6 adds r0, r0, r2 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r3, _080255A8 @ =0x000006C7 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] ldr r4, _080255AC @ =0x00000625 adds r0, r0, r4 strb r1, [r0] movs r2, #0 ldr r6, _080255B0 @ =gMain adds r4, r5, #0 adds r3, #6 _0802555C: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _0802555C ldr r0, [r6, #0x4c] movs r1, #6 bl __umodsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldr r0, [r5] ldr r1, _080255A0 @ =0x000006C9 adds r0, r0, r1 movs r2, #0 movs r1, #5 strb r1, [r0] ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r6, #0x44] ldr r0, [r0, #0x48] strh r2, [r0] b _080255CE .align 2, 0 _0802559C: .4byte 0x000006CC _080255A0: .4byte 0x000006C9 _080255A4: .4byte 0x000006C6 _080255A8: .4byte 0x000006C7 _080255AC: .4byte 0x00000625 _080255B0: .4byte gMain _080255B4: cmp r0, #0 bne _080255BC movs r3, #0 b _080255CE _080255BC: ldr r0, _08025620 @ =gMain ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldr r0, [r0, #0x4c] bl __umodsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _080255CE: ldr r1, [r5] lsls r3, r3, #0x10 asrs r2, r3, #0x10 ldr r7, _08025624 @ =0x000006CD adds r0, r1, r7 adds r0, r0, r2 ldrb r0, [r0] movs r2, #0xd9 lsls r2, r2, #3 adds r1, r1, r2 strb r0, [r1] ldr r0, [r5] ldr r6, _08025628 @ =0x000006C9 adds r0, r0, r6 asrs r1, r3, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _08025650 adds r4, r5, #0 adds r5, r7, #0 _080255FA: ldr r0, [r4] asrs r1, r3, #0x10 adds r0, r0, r5 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, [r4] adds r0, r0, r6 lsls r3, r1, #0x10 asrs r1, r3, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _080255FA b _08025650 .align 2, 0 _08025620: .4byte gMain _08025624: .4byte 0x000006CD _08025628: .4byte 0x000006C9 _0802562C: cmp r0, #1 bne _0802566C movs r4, #0xd9 lsls r4, r4, #3 adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] ldr r2, _08025648 @ =0x000006D3 adds r0, r3, r2 adds r0, r0, r1 movs r1, #0xd strb r1, [r0] b _08025650 .align 2, 0 _08025648: .4byte 0x000006D3 _0802564C: movs r3, #0 mov r8, r3 _08025650: ldr r0, _080256CC @ =0x020314E0 ldr r0, [r0] ldr r4, _080256D0 @ =0x000006CC adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0802566C movs r0, #0x8c bl m4aSongNumStart bl sub_29664 _0802566C: ldr r0, _080256CC @ =0x020314E0 ldr r5, [r0] ldr r1, _080256D0 @ =0x000006CC adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _08025682 movs r2, #0 mov r8, r2 _08025682: ldr r0, _080256D4 @ =gMain ldr r0, [r0, #0x44] ldr r7, [r0, #0x48] mov r3, r8 cmp r3, #0 beq _080256DC movs r0, #0xd9 lsls r0, r0, #3 adds r4, r5, r0 movs r0, #0 ldrsb r0, [r4, r0] movs r1, #3 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x14 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x60 subs r0, r0, r1 strh r0, [r7, #2] movs r0, #0 ldrsb r0, [r4, r0] movs r1, #3 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x14 adds r2, r5, #0 adds r2, #0x5a ldr r3, _080256D8 @ =0xFFFFFED4 adds r1, r3, #0 ldrh r2, [r2] adds r1, r1, r2 subs r0, r0, r1 b _080256DE .align 2, 0 _080256CC: .4byte 0x020314E0 _080256D0: .4byte 0x000006CC _080256D4: .4byte gMain _080256D8: .4byte 0xFFFFFED4 _080256DC: movs r0, #0xc8 _080256DE: strh r0, [r7, #4] movs r4, #4 ldrsh r0, [r7, r4] cmp r0, #0xc7 ble _080256EC movs r0, #0xc8 strh r0, [r7, #4] _080256EC: movs r2, #0 ldr r0, _080257EC @ =0x03005000 mov ip, r0 ldr r1, _080257F0 @ =0x086AD3FE mov sl, r1 ldr r3, _080257F4 @ =0x020314E0 mov sb, r3 ldr r4, _080257F8 @ =0x000006CC mov r8, r4 _080256FE: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #3 adds r6, #8 adds r6, r7, r6 ldrh r4, [r6] lsls r4, r4, #3 add r4, ip lsls r3, r5, #1 adds r3, r3, r5 lsls r0, r3, #1 str r0, [sp] mov r1, sb ldr r0, [r1] add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 ldr r0, _080257FC @ =0x086B53E4 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r4] adds r4, #2 adds r2, r3, #1 lsls r2, r2, #1 str r2, [sp] mov r1, sb ldr r0, [r1] add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 ldr r0, _080257FC @ =0x086B53E4 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r4] adds r3, #2 lsls r3, r3, #1 mov r1, sb ldr r0, [r1] add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 adds r3, r3, r0 ldr r0, _080257FC @ =0x086B53E4 adds r3, r3, r0 ldrh r0, [r3] strh r0, [r4, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r0, [r2, #5] movs r1, #0xc orrs r0, r1 strb r0, [r2, #5] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r4, _08025800 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08025804 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _080256FE 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 _080257EC: .4byte 0x03005000 _080257F0: .4byte 0x086AD3FE _080257F4: .4byte 0x020314E0 _080257F8: .4byte 0x000006CC _080257FC: .4byte 0x086B53E4 _08025800: .4byte 0x000001FF _08025804: .4byte 0xFFFFFE00 thumb_func_start sub_25808 sub_25808: @ 0x08025808 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _08025834 @ =0x020314E0 ldr r0, [r1] ldr r2, _08025838 @ =0x00000602 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 cmp r0, #8 bls _08025828 b _08025F36 _08025828: lsls r0, r0, #2 ldr r1, _0802583C @ =_08025840 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08025834: .4byte 0x020314E0 _08025838: .4byte 0x00000602 _0802583C: .4byte _08025840 _08025840: @ jump table .4byte _08025864 @ case 0 .4byte _080258A8 @ case 1 .4byte _0802592C @ case 2 .4byte _08025A7C @ case 3 .4byte _08025AF8 @ case 4 .4byte _08025C18 @ case 5 .4byte _08025C78 @ case 6 .4byte _08025D60 @ case 7 .4byte _08025DD0 @ case 8 _08025864: ldr r1, [r7] ldr r3, _08025878 @ =0x00000604 adds r2, r1, r3 ldrh r0, [r2] cmp r0, #0x3b bhi _0802587C adds r0, #1 strh r0, [r2] b _08025890 .align 2, 0 _08025878: .4byte 0x00000604 _0802587C: ldr r4, _0802589C @ =0x00000602 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 movs r2, #0 strb r0, [r1] ldr r0, [r7] ldr r6, _080258A0 @ =0x00000604 adds r0, r0, r6 strh r2, [r0] _08025890: ldr r0, _080258A4 @ =gMain ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] b _08025F36 .align 2, 0 _0802589C: .4byte 0x00000602 _080258A0: .4byte 0x00000604 _080258A4: .4byte gMain _080258A8: ldr r0, [r7] adds r0, #0xe4 movs r5, #0 movs r1, #5 strb r1, [r0] ldr r1, _08025900 @ =0x040000D4 ldr r0, _08025904 @ =0x083A07CC str r0, [r1] ldr r0, _08025908 @ =0x06015800 str r0, [r1, #4] ldr r0, _0802590C @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025910 @ =0x083A27EC str r0, [r1] ldr r0, _08025914 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025918 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802591C @ =gMain ldr r0, [r0, #0x44] adds r0, #0x8c ldr r1, [r0] movs r4, #0 movs r0, #1 strh r0, [r1] movs r0, #0x8d bl m4aSongNumStart ldr r1, [r7] ldr r0, _08025920 @ =0x00000602 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] ldr r2, _08025924 @ =0x00000604 adds r1, r0, r2 strh r5, [r1] ldr r3, _08025928 @ =0x00000603 adds r0, r0, r3 strb r4, [r0] b _08025F36 .align 2, 0 _08025900: .4byte 0x040000D4 _08025904: .4byte 0x083A07CC _08025908: .4byte 0x06015800 _0802590C: .4byte 0x80001000 _08025910: .4byte 0x083A27EC _08025914: .4byte 0x050003C0 _08025918: .4byte 0x80000010 _0802591C: .4byte gMain _08025920: .4byte 0x00000602 _08025924: .4byte 0x00000604 _08025928: .4byte 0x00000603 _0802592C: ldr r2, _08025954 @ =0x086AE0C0 ldr r1, [r7] ldr r4, _08025958 @ =0x00000603 adds r3, r1, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r6, #0 ldrsh r0, [r0, r6] ldr r2, _0802595C @ =0x00000604 adds r1, r1, r2 ldrh r2, [r1] cmp r0, r2 ble _08025964 adds r0, r2, #1 strh r0, [r1] ldr r3, _08025960 @ =gMain b _08025996 .align 2, 0 _08025954: .4byte 0x086AE0C0 _08025958: .4byte 0x00000603 _0802595C: .4byte 0x00000604 _08025960: .4byte gMain _08025964: movs r2, #0 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r7] ldr r3, _08025A60 @ =0x00000603 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] ldr r3, _08025A64 @ =gMain cmp r0, #7 ble _08025996 movs r0, #7 strb r0, [r1] ldr r1, [r7] ldr r4, _08025A68 @ =0x00000602 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r3, #0x44] adds r0, #0x8c ldr r0, [r0] strh r2, [r0] _08025996: ldr r2, [r7] ldr r6, _08025A60 @ =0x00000603 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, [r3, #0x44] adds r0, #0x8c ldr r6, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x7c subs r0, r0, r1 strh r0, [r6, #2] adds r2, #0x5a ldrh r1, [r2] movs r0, #0xf4 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _080259CE movs r0, #0xc8 strh r0, [r6, #4] _080259CE: movs r2, #0 lsls r0, r5, #0x10 ldr r7, _08025A6C @ =0x03005000 mov r8, r7 ldr r1, _08025A70 @ =0x086B50AE mov ip, r1 asrs r1, r0, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r3, _08025A74 @ =0xFFFFFE00 mov sb, r3 _080259E8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08025A78 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _080259E8 b _08025F36 .align 2, 0 _08025A60: .4byte 0x00000603 _08025A64: .4byte gMain _08025A68: .4byte 0x00000602 _08025A6C: .4byte 0x03005000 _08025A70: .4byte 0x086B50AE _08025A74: .4byte 0xFFFFFE00 _08025A78: .4byte 0x000001FF _08025A7C: ldr r0, [r7] adds r0, #0xe4 movs r3, #0 movs r1, #6 strb r1, [r0] ldr r1, _08025AD0 @ =0x040000D4 ldr r0, _08025AD4 @ =0x083A29EC str r0, [r1] ldr r0, _08025AD8 @ =0x06015800 str r0, [r1, #4] ldr r0, _08025ADC @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025AE0 @ =0x083A320C str r0, [r1] ldr r0, _08025AE4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025AE8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025AEC @ =gMain ldr r0, [r0, #0x44] adds r0, #0x90 ldr r1, [r0] movs r2, #1 movs r0, #1 strh r0, [r1] ldr r1, [r7] ldr r4, _08025AF0 @ =0x00000602 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] ldr r6, _08025AF4 @ =0x00000604 adds r1, r0, r6 strh r3, [r1] movs r7, #0x88 lsls r7, r7, #5 adds r0, r0, r7 strb r2, [r0] b _08025F36 .align 2, 0 _08025AD0: .4byte 0x040000D4 _08025AD4: .4byte 0x083A29EC _08025AD8: .4byte 0x06015800 _08025ADC: .4byte 0x80000400 _08025AE0: .4byte 0x083A320C _08025AE4: .4byte 0x050003C0 _08025AE8: .4byte 0x80000010 _08025AEC: .4byte gMain _08025AF0: .4byte 0x00000602 _08025AF4: .4byte 0x00000604 _08025AF8: ldr r1, [r7] ldr r0, _08025B10 @ =0x00000604 adds r2, r1, r0 ldrh r0, [r2] lsrs r5, r0, #1 cmp r0, #0xe bhi _08025B18 adds r0, #1 strh r0, [r2] ldr r3, _08025B14 @ =gMain b _08025B3E .align 2, 0 _08025B10: .4byte 0x00000604 _08025B14: .4byte gMain _08025B18: ldr r3, _08025BFC @ =gMain ldr r0, [r3, #0x44] adds r0, #0x90 ldr r0, [r0] movs r4, #0 movs r2, #0 strh r2, [r0] ldr r6, _08025C00 @ =0x00000602 adds r1, r1, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] adds r6, #2 adds r1, r0, r6 strh r2, [r1] ldr r1, _08025C04 @ =0x00000603 adds r0, r0, r1 strb r4, [r0] _08025B3E: ldr r0, [r3, #0x44] adds r0, #0x90 ldr r6, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08025B6C movs r0, #0xc8 strh r0, [r6, #4] _08025B6C: movs r2, #0 lsls r0, r5, #0x10 ldr r3, _08025C08 @ =0x03005000 mov r8, r3 ldr r4, _08025C0C @ =0x086B4F6A mov ip, r4 asrs r1, r0, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r7, _08025C10 @ =0xFFFFFE00 mov sb, r7 _08025B86: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, r8 adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08025C14 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _08025B86 b _08025F36 .align 2, 0 _08025BFC: .4byte gMain _08025C00: .4byte 0x00000602 _08025C04: .4byte 0x00000603 _08025C08: .4byte 0x03005000 _08025C0C: .4byte 0x086B4F6A _08025C10: .4byte 0xFFFFFE00 _08025C14: .4byte 0x000001FF _08025C18: ldr r0, [r7] adds r0, #0xe4 movs r1, #7 strb r1, [r0] ldr r1, _08025C58 @ =0x040000D4 ldr r0, _08025C5C @ =0x083A340C str r0, [r1] ldr r0, _08025C60 @ =0x06015800 str r0, [r1, #4] ldr r0, _08025C64 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025C68 @ =0x083A542C str r0, [r1] ldr r0, _08025C6C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025C70 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, [r7] ldr r3, _08025C74 @ =0x00000602 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] bl sub_29924 movs r0, #0x8e bl m4aSongNumStart b _08025F36 .align 2, 0 _08025C58: .4byte 0x040000D4 _08025C5C: .4byte 0x083A340C _08025C60: .4byte 0x06015800 _08025C64: .4byte 0x80001000 _08025C68: .4byte 0x083A542C _08025C6C: .4byte 0x050003C0 _08025C70: .4byte 0x80000010 _08025C74: .4byte 0x00000602 _08025C78: ldr r2, _08025CB0 @ =gMain ldrh r0, [r2, #0x3c] movs r0, #0 strh r0, [r2, #0x3c] movs r0, #0x80 lsls r0, r0, #0x13 ldrh r1, [r0] movs r0, #0xf8 lsls r0, r0, #5 ands r0, r1 lsrs r0, r0, #8 movs r1, #0xa0 ldrh r3, [r2, #0x38] orrs r0, r1 strh r0, [r2, #0x38] ldr r0, [r7] ldr r4, _08025CB4 @ =0x00000604 adds r0, r0, r4 ldrh r0, [r0] adds r3, r2, #0 cmp r0, #0x48 bhi _08025CF2 cmp r0, #7 bhi _08025CB8 ldrh r0, [r3, #0x3c] movs r0, #0x10 b _08025CF0 .align 2, 0 _08025CB0: .4byte gMain _08025CB4: .4byte 0x00000604 _08025CB8: movs r2, #0 adds r6, r7, #0 ldr r5, _08025D04 @ =0x000006D3 movs r4, #0xd _08025CC0: ldr r1, [r6] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r5 adds r1, r1, r0 strb r4, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08025CC0 ldr r0, [r7] ldr r6, _08025D08 @ =0x00000604 adds r0, r0, r6 ldrh r1, [r0] movs r0, #8 subs r0, r0, r1 cmp r0, #0 bge _08025CEA adds r0, #3 _08025CEA: asrs r0, r0, #2 adds r0, #0x10 ldrh r1, [r3, #0x3c] _08025CF0: strh r0, [r3, #0x3c] _08025CF2: ldr r1, [r7] ldr r0, _08025D08 @ =0x00000604 adds r2, r1, r0 ldrh r0, [r2] cmp r0, #0x47 bhi _08025D0C adds r0, #1 strh r0, [r2] b _08025D28 .align 2, 0 _08025D04: .4byte 0x000006D3 _08025D08: .4byte 0x00000604 _08025D0C: ldr r2, _08025D4C @ =0x00000602 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 movs r3, #0 strb r0, [r1] ldr r0, [r7] ldr r4, _08025D50 @ =0x00000604 adds r1, r0, r4 movs r2, #0 strh r3, [r1] ldr r6, _08025D54 @ =0x00000603 adds r0, r0, r6 strb r2, [r0] _08025D28: ldr r1, [r7] ldr r7, _08025D50 @ =0x00000604 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #8 bhi _08025D36 b _08025F36 _08025D36: ldr r2, _08025D58 @ =0x000006CA adds r0, r1, r2 ldrh r1, [r0] ldr r0, _08025D5C @ =0x00006FFF cmp r1, r0 bls _08025D44 b _08025F36 _08025D44: bl sub_29A6C b _08025F36 .align 2, 0 _08025D4C: .4byte 0x00000602 _08025D50: .4byte 0x00000604 _08025D54: .4byte 0x00000603 _08025D58: .4byte 0x000006CA _08025D5C: .4byte 0x00006FFF _08025D60: ldr r0, [r7] adds r0, #0xe4 movs r1, #8 strb r1, [r0] ldr r1, _08025DAC @ =0x040000D4 ldr r0, _08025DB0 @ =0x083A562C str r0, [r1] ldr r0, _08025DB4 @ =0x06015800 str r0, [r1, #4] ldr r0, _08025DB8 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025DBC @ =0x083A6E4C str r0, [r1] ldr r0, _08025DC0 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025DC4 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025DC8 @ =gMain ldr r0, [r0, #0x44] adds r0, #0x94 ldr r1, [r0] movs r2, #0 movs r0, #1 strh r0, [r1] ldr r1, [r7] ldr r3, _08025DCC @ =0x00000602 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] movs r4, #0x88 lsls r4, r4, #5 adds r0, r0, r4 strb r2, [r0] b _08025F36 .align 2, 0 _08025DAC: .4byte 0x040000D4 _08025DB0: .4byte 0x083A562C _08025DB4: .4byte 0x06015800 _08025DB8: .4byte 0x80000C00 _08025DBC: .4byte 0x083A6E4C _08025DC0: .4byte 0x050003C0 _08025DC4: .4byte 0x80000010 _08025DC8: .4byte gMain _08025DCC: .4byte 0x00000602 _08025DD0: ldr r2, _08025DF8 @ =0x086AE0D0 ldr r1, [r7] ldr r5, _08025DFC @ =0x00000603 adds r3, r1, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r6, #0 ldrsh r0, [r0, r6] ldr r2, _08025E00 @ =0x00000604 adds r1, r1, r2 ldrh r2, [r1] cmp r0, r2 ble _08025E08 adds r0, r2, #1 strh r0, [r1] ldr r3, _08025E04 @ =gMain b _08025E6C .align 2, 0 _08025DF8: .4byte 0x086AE0D0 _08025DFC: .4byte 0x00000603 _08025E00: .4byte 0x00000604 _08025E04: .4byte gMain _08025E08: movs r4, #0 movs r2, #0 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r7] ldr r3, _08025F44 @ =0x00000603 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r3, _08025F48 @ =gMain cmp r0, #0xa ble _08025E6C ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r3, #0x44] adds r0, #0x94 ldr r0, [r0] strh r2, [r0] ldr r0, [r7] ldr r6, _08025F4C @ =0x000006C6 adds r0, r0, r6 strb r4, [r0] ldr r0, [r7] ldr r1, _08025F50 @ =0x000006C7 adds r0, r0, r1 strb r4, [r0] ldr r0, [r7] subs r6, #0xa1 adds r0, r0, r6 strb r4, [r0] ldrh r0, [r3, #0x38] movs r0, #0xce strh r0, [r3, #0x38] ldrh r0, [r3, #0x3c] strh r2, [r3, #0x3c] ldr r0, [r3, #0x44] adds r0, #0x94 ldr r0, [r0] strh r2, [r0] ldr r0, [r7] adds r0, r0, r5 movs r1, #0xa strb r1, [r0] ldr r0, [r7] adds r0, #0xe4 strb r4, [r0] _08025E6C: ldr r2, [r7] ldr r7, _08025F44 @ =0x00000603 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, [r3, #0x44] adds r0, #0x94 ldr r6, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 strh r0, [r6, #2] adds r2, #0x5a ldrh r1, [r2] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08025EA8 movs r0, #0xc8 strh r0, [r6, #4] _08025EA8: movs r2, #0 lsls r0, r5, #0x10 ldr r3, _08025F54 @ =0x03005000 mov r8, r3 ldr r4, _08025F58 @ =0x086B4E62 mov ip, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r7, _08025F5C @ =0xFFFFFE00 mov sb, r7 _08025EC2: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, r8 adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08025F60 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _08025EC2 _08025F36: 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 _08025F44: .4byte 0x00000603 _08025F48: .4byte gMain _08025F4C: .4byte 0x000006C6 _08025F50: .4byte 0x000006C7 _08025F54: .4byte 0x03005000 _08025F58: .4byte 0x086B4E62 _08025F5C: .4byte 0xFFFFFE00 _08025F60: .4byte 0x000001FF thumb_func_start sub_25F64 sub_25F64: @ 0x08025F64 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} ldr r5, _0802607C @ =0x020314E0 ldr r1, [r5] movs r2, #0 movs r0, #1 strb r0, [r1, #0x17] ldr r0, [r5] movs r3, #0 strh r2, [r0, #0x18] ldr r1, _08026080 @ =0x000006DB adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] adds r0, #0x36 strb r3, [r0] bl sub_C00 ldr r4, [r5] ldr r6, _08026084 @ =gMain ldr r1, [r6, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 adds r4, #0x32 strb r0, [r4] ldr r2, [r5] ldr r0, _08026088 @ =0x08055A68 mov sb, r0 adds r0, r2, #0 adds r0, #0x32 movs r3, #0 ldrsb r3, [r0, r3] ldrb r1, [r6, #4] lsls r0, r1, #3 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] adds r2, #0x35 strb r0, [r2] ldr r1, [r5] ldr r2, _0802608C @ =0x08137928 mov r8, r2 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] ldr r2, _08026090 @ =0x000006DA adds r1, r1, r2 strb r0, [r1] ldr r4, [r5] adds r0, r4, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 movs r1, #6 bl __modsi3 ldrb r2, [r6, #4] lsls r1, r2, #3 subs r1, r1, r2 adds r1, r1, r0 lsls r1, r1, #1 add r1, sb ldrh r0, [r1] adds r4, #0x35 strb r0, [r4] ldr r1, [r5] adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] ldr r2, _08026094 @ =0x000006D9 adds r1, r1, r2 strb r0, [r1] movs r0, #0 movs r1, #0 bl sub_1C7F4 movs r0, #0 movs r1, #1 bl sub_1C7F4 movs r2, #0 ldr r4, _08026098 @ =0x000006D3 movs r3, #0xd adds r6, r5, #0 _08026032: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08026032 ldr r1, _0802609C @ =0x040000D4 ldr r0, _080260A0 @ =0x083A8AAC str r0, [r1] ldr r0, _080260A4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _080260A8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080260AC @ =0x084FA20C str r0, [r1] ldr r0, _080260B0 @ =0x06015800 str r0, [r1, #4] ldr r0, _080260B4 @ =0x80000140 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r6] adds r0, #0xe4 movs r1, #0xc strb r1, [r0] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0802607C: .4byte 0x020314E0 _08026080: .4byte 0x000006DB _08026084: .4byte gMain _08026088: .4byte 0x08055A68 _0802608C: .4byte 0x08137928 _08026090: .4byte 0x000006DA _08026094: .4byte 0x000006D9 _08026098: .4byte 0x000006D3 _0802609C: .4byte 0x040000D4 _080260A0: .4byte 0x083A8AAC _080260A4: .4byte 0x050003C0 _080260A8: .4byte 0x80000010 _080260AC: .4byte 0x084FA20C _080260B0: .4byte 0x06015800 _080260B4: .4byte 0x80000140 thumb_func_start sub_260B8 sub_260B8: @ 0x080260B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r1, _080260E4 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] subs r0, #1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #5 bls _080260D8 b _0802674E _080260D8: lsls r0, r0, #2 ldr r1, _080260E8 @ =_080260EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080260E4: .4byte 0x020314E0 _080260E8: .4byte _080260EC _080260EC: @ jump table .4byte _08026104 @ case 0 .4byte _080261E0 @ case 1 .4byte _080262E4 @ case 2 .4byte _08026318 @ case 3 .4byte _08026318 @ case 4 .4byte _08026608 @ case 5 _08026104: ldr r3, _08026198 @ =gMain ldrh r0, [r3, #0x38] movs r5, #0 movs r4, #0 ldr r0, _0802619C @ =0x00001C10 strh r0, [r3, #0x38] ldrh r0, [r3, #0x3a] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r3, #0x3a] mov r0, sb ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] mov r2, sb ldr r1, [r2] movs r6, #0xdc lsls r6, r6, #3 adds r0, r1, r6 strh r4, [r0] ldr r7, _080261A0 @ =0x000005FE adds r0, r1, r7 strh r4, [r0] ldr r0, _080261A4 @ =0x000005FB adds r1, r1, r0 movs r2, #1 strb r2, [r1] ldr r0, [r3, #0x44] ldr r0, [r0, #0x50] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x54] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x5c] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x58] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x4c] strh r2, [r0] mov r1, sb ldr r2, [r1] adds r6, #0x10 adds r0, r2, r6 movs r1, #0x1e strh r1, [r0] adds r7, #0xf4 adds r0, r2, r7 strh r1, [r0] ldr r1, _080261A8 @ =0x000006F4 adds r0, r2, r1 strh r4, [r0] ldrb r0, [r3, #4] cmp r0, #0 bne _080261B0 movs r3, #0xb8 lsls r3, r3, #1 adds r0, r2, r3 movs r1, #0xa strb r1, [r0] mov r4, sb ldr r0, [r4] ldr r5, _080261AC @ =0x00000171 adds r0, r0, r5 strb r1, [r0] ldr r0, [r4] movs r6, #0xb9 lsls r6, r6, #1 adds r0, r0, r6 strb r1, [r0] b _080261CC .align 2, 0 _08026198: .4byte gMain _0802619C: .4byte 0x00001C10 _080261A0: .4byte 0x000005FE _080261A4: .4byte 0x000005FB _080261A8: .4byte 0x000006F4 _080261AC: .4byte 0x00000171 _080261B0: movs r7, #0xb8 lsls r7, r7, #1 adds r0, r2, r7 strb r5, [r0] mov r1, sb ldr r0, [r1] ldr r2, _080261DC @ =0x00000171 adds r0, r0, r2 strb r5, [r0] ldr r0, [r1] movs r3, #0xb9 lsls r3, r3, #1 adds r0, r0, r3 strb r5, [r0] _080261CC: mov r4, sb ldr r0, [r4] movs r5, #0xba lsls r5, r5, #1 adds r0, r0, r5 movs r1, #0 strh r1, [r0] b _0802674E .align 2, 0 _080261DC: .4byte 0x00000171 _080261E0: mov r6, sb ldr r1, [r6] ldr r7, _080262CC @ =0x000005FC adds r0, r1, r7 movs r3, #0 ldrsh r2, [r0, r3] cmp r2, #0 bne _080261FA ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r6] strh r2, [r0, #0x18] _080261FA: ldr r0, _080262D0 @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _08026296 mov r4, sb ldr r3, [r4] movs r4, #0xba lsls r4, r4, #1 adds r2, r3, r4 ldrh r0, [r2] cmp r0, #0x8e bhi _08026224 ldr r1, _080262D4 @ =0x08137944 lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] movs r5, #0xb8 lsls r5, r5, #1 adds r0, r3, r5 strb r1, [r0] _08026224: mov r6, sb ldr r2, [r6] adds r1, r2, r4 ldrh r0, [r1] subs r0, #0x12 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x8e bhi _08026254 ldr r3, _080262D4 @ =0x08137944 ldrh r1, [r1] adds r0, r1, #0 subs r0, #0x12 cmp r0, #0 bge _08026244 adds r0, #7 _08026244: asrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] movs r7, #0xb9 lsls r7, r7, #1 adds r1, r2, r7 strb r0, [r1] _08026254: mov r0, sb ldr r2, [r0] movs r3, #0xba lsls r3, r3, #1 adds r1, r2, r3 ldrh r0, [r1] subs r0, #0x24 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x8e bhi _08026286 ldr r3, _080262D4 @ =0x08137944 ldrh r1, [r1] adds r0, r1, #0 subs r0, #0x24 cmp r0, #0 bge _08026278 adds r0, #7 _08026278: asrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] ldr r4, _080262D8 @ =0x00000171 adds r1, r2, r4 strb r0, [r1] _08026286: mov r5, sb ldr r1, [r5] movs r6, #0xba lsls r6, r6, #1 adds r1, r1, r6 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08026296: mov r7, sb ldr r4, [r7] movs r1, #0xde lsls r1, r1, #3 adds r0, r4, r1 ldrh r0, [r0] lsls r0, r0, #5 ldr r2, _080262DC @ =0x000006F2 adds r1, r4, r2 ldrh r1, [r1] bl __divsi3 movs r3, #0xdc lsls r3, r3, #3 adds r1, r4, r3 strh r0, [r1] ldr r5, _080262E0 @ =0x000006C4 adds r4, r4, r5 movs r0, #1 strb r0, [r4] ldr r1, [r7] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] bl sub_26778 b _0802674E .align 2, 0 _080262CC: .4byte 0x000005FC _080262D0: .4byte gMain _080262D4: .4byte 0x08137944 _080262D8: .4byte 0x00000171 _080262DC: .4byte 0x000006F2 _080262E0: .4byte 0x000006C4 _080262E4: ldr r1, _08026338 @ =0x020314E0 ldr r2, [r1] ldrh r0, [r2, #0x18] cmp r0, #0xe bhi _08026312 adds r0, #1 strh r0, [r2, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _08026312 ldrb r0, [r2, #0x17] adds r0, #1 strb r0, [r2, #0x17] ldr r1, [r1] ldr r6, _0802633C @ =0x000006F2 adds r2, r1, r6 movs r0, #6 strh r0, [r2] ldr r7, _08026340 @ =0x000006F4 adds r1, r1, r7 movs r0, #0 strh r0, [r1] _08026312: movs r0, #0 bl sub_26820 _08026318: ldr r0, _08026338 @ =0x020314E0 ldr r5, [r0] movs r2, #0x17 ldrsb r2, [r5, r2] mov sb, r0 cmp r2, #3 bne _08026344 movs r0, #0xde lsls r0, r0, #3 adds r4, r5, r0 ldrh r0, [r4] subs r0, #1 strh r0, [r4] ldr r2, _0802633C @ =0x000006F2 adds r1, r5, r2 b _0802647C .align 2, 0 _08026338: .4byte 0x020314E0 _0802633C: .4byte 0x000006F2 _08026340: .4byte 0x000006F4 _08026344: cmp r2, #4 beq _0802634A b _08026494 _0802634A: movs r3, #0xde lsls r3, r3, #3 adds r0, r5, r3 ldrh r1, [r0] adds r1, #1 strh r1, [r0] ldrb r0, [r5, #5] cmp r0, #0 beq _080263C0 movs r0, #0x17 ldrsb r0, [r5, r0] cmp r0, #4 bne _080263C0 ldr r4, _08026380 @ =0x000006F4 adds r1, r5, r4 ldrh r0, [r1] cmp r0, #0 bne _080263CE ldr r0, _08026384 @ =gMain ldrb r0, [r0, #0xa] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026388 movs r0, #0x30 b _0802638A .align 2, 0 _08026380: .4byte 0x000006F4 _08026384: .4byte gMain _08026388: movs r0, #1 _0802638A: strh r0, [r1] mov r5, sb ldr r1, [r5] ldr r6, _08026428 @ =0x000006F4 adds r0, r1, r6 ldrh r2, [r0] ldr r7, _0802642C @ =0x000006F6 adds r0, r1, r7 strh r2, [r0] ldr r2, _08026430 @ =0x00000163 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0x21 strb r1, [r0] ldr r1, [r5] ldr r3, _08026434 @ =0x00000724 adds r2, r1, r3 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] movs r4, #0xb6 lsls r4, r4, #1 adds r1, r1, r4 movs r0, #2 strb r0, [r1] _080263C0: mov r5, sb ldr r0, [r5] ldr r6, _08026428 @ =0x000006F4 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0 beq _0802646E _080263CE: mov r7, sb ldr r2, [r7] ldr r0, _08026428 @ =0x000006F4 adds r1, r2, r0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] ldr r0, _08026438 @ =gMain ldrb r0, [r0, #0xa] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026412 ldr r1, _0802643C @ =0x00000283 adds r0, r2, r1 movs r1, #4 strb r1, [r0] ldr r2, [r7] ldr r3, _08026428 @ =0x000006F4 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #0x17 bhi _08026412 movs r0, #0x18 strh r0, [r1] adds r0, r2, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _08026412 movs r0, #0 strh r0, [r1] _08026412: mov r5, sb ldr r4, [r5] ldr r6, _08026428 @ =0x000006F4 adds r1, r4, r6 ldrh r0, [r1] cmp r0, #0 bne _08026440 movs r0, #5 strb r0, [r4, #0x17] b _0802646E .align 2, 0 _08026428: .4byte 0x000006F4 _0802642C: .4byte 0x000006F6 _08026430: .4byte 0x00000163 _08026434: .4byte 0x00000724 _08026438: .4byte gMain _0802643C: .4byte 0x00000283 _08026440: movs r7, #0xde lsls r7, r7, #3 adds r6, r4, r7 ldr r0, _08026488 @ =0x000006F2 adds r5, r4, r0 ldrh r0, [r6] ldrh r2, [r5] cmp r0, r2 bne _0802646E ldrh r1, [r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 ldr r3, _0802648C @ =0x000006F6 adds r1, r4, r3 ldrh r1, [r1] bl __divsi3 movs r1, #0x28 subs r1, r1, r0 movs r0, #0 strh r1, [r5] strh r0, [r6] _0802646E: ldr r0, _08026490 @ =0x020314E0 ldr r1, [r0] movs r5, #0xde lsls r5, r5, #3 adds r4, r1, r5 ldr r6, _08026488 @ =0x000006F2 adds r1, r1, r6 _0802647C: ldrh r0, [r4] ldrh r1, [r1] bl __umodsi3 strh r0, [r4] b _080264E2 .align 2, 0 _08026488: .4byte 0x000006F2 _0802648C: .4byte 0x000006F6 _08026490: .4byte 0x020314E0 _08026494: movs r7, #0xde lsls r7, r7, #3 adds r4, r5, r7 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r0, _08026554 @ =0x000006F2 adds r1, r5, r0 ldrh r0, [r4] ldrh r1, [r1] bl __umodsi3 strh r0, [r4] lsls r0, r0, #0x10 lsrs r2, r0, #0x10 cmp r2, #0 bne _080264E2 strh r2, [r5, #0x18] ldrb r0, [r5, #0x17] adds r0, #1 strb r0, [r5, #0x17] ldr r1, _08026558 @ =gMain ldr r0, [r1, #0x44] ldr r0, [r0, #0x5c] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x50] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x54] strh r2, [r0] ldr r0, [r1, #0x44] adds r0, #0x88 ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r0, #0x93 bl m4aSongNumStart _080264E2: ldr r6, _0802655C @ =0x020314E0 ldr r5, [r6] movs r7, #0xde lsls r7, r7, #3 adds r4, r5, r7 ldrh r0, [r4] lsls r0, r0, #5 ldr r2, _08026554 @ =0x000006F2 adds r1, r5, r2 ldrh r1, [r1] bl __divsi3 movs r3, #0xdc lsls r3, r3, #3 adds r1, r5, r3 strh r0, [r1] ldrh r0, [r4] cmp r0, #0 bne _0802651C ldr r4, _08026560 @ =0x000006DA adds r0, r5, r4 ldrb r1, [r0] ldr r2, _08026564 @ =0x000006D9 adds r0, r5, r2 strb r1, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 _0802651C: ldr r4, [r6] adds r0, r4, r7 ldrh r5, [r0] cmp r5, #1 beq _08026528 b _0802674E _08026528: ldr r0, _08026558 @ =gMain movs r1, #0xa ldrsb r1, [r0, r1] cmp r1, #0 beq _08026568 adds r4, #0x32 movs r0, #0 ldrsb r0, [r4, r0] adds r0, #1 movs r1, #7 bl __modsi3 strb r0, [r4] ldr r0, [r6] adds r0, #0x33 movs r1, #0 strb r1, [r0] ldr r0, [r6] adds r0, #0x34 strb r5, [r0] b _080265A8 .align 2, 0 _08026554: .4byte 0x000006F2 _08026558: .4byte gMain _0802655C: .4byte 0x020314E0 _08026560: .4byte 0x000006DA _08026564: .4byte 0x000006D9 _08026568: adds r4, #0x32 movs r0, #0 ldrsb r0, [r4, r0] adds r0, #1 movs r1, #6 bl __modsi3 strb r0, [r4] ldr r4, [r6] adds r0, r4, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 movs r1, #6 bl __modsi3 adds r4, #0x33 strb r0, [r4] ldr r4, [r6] adds r0, r4, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 movs r1, #6 bl __modsi3 adds r4, #0x34 strb r0, [r4] _080265A8: ldr r5, _080265F4 @ =0x020314E0 ldr r2, [r5] ldr r4, _080265F8 @ =0x08055A68 adds r0, r2, #0 adds r0, #0x32 movs r3, #0 ldrsb r3, [r0, r3] ldr r6, _080265FC @ =gMain ldrb r1, [r6, #4] lsls r0, r1, #3 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] adds r2, #0x35 strb r0, [r2] ldr r1, [r5] ldr r2, _08026600 @ =0x08137928 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08026604 @ =0x000006DA adds r1, r1, r7 strb r0, [r1] movs r0, #0 movs r1, #1 bl sub_1C7F4 movs r0, #0x81 bl m4aSongNumStart b _0802674E .align 2, 0 _080265F4: .4byte 0x020314E0 _080265F8: .4byte 0x08055A68 _080265FC: .4byte gMain _08026600: .4byte 0x08137928 _08026604: .4byte 0x000006DA _08026608: ldr r0, _08026640 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0x31 bhi _08026628 adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x32 bne _08026628 movs r0, #0 strb r0, [r1, #0x17] movs r0, #1 bl sub_19B64 _08026628: ldr r0, _08026640 @ =0x020314E0 ldr r2, [r0] ldrh r3, [r2, #0x18] mov sb, r0 cmp r3, #0x1c bls _08026636 b _08026742 _08026636: cmp r3, #7 bhi _08026644 adds r0, r3, #0 lsrs r3, r0, #2 b _08026654 .align 2, 0 _08026640: .4byte 0x020314E0 _08026644: ldrh r0, [r2, #0x18] subs r0, #8 movs r1, #3 bl __divsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _08026654: ldr r0, _08026760 @ =gMain ldr r1, [r0, #0x44] adds r1, #0x88 ldr r6, [r1] ldrh r1, [r6] cmp r1, #0 beq _08026724 mov r0, sb ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r6, #2] movs r4, #0xdc lsls r4, r4, #3 adds r2, r1, r4 movs r5, #0x96 lsls r5, r5, #1 adds r0, r5, #0 ldrh r2, [r2] adds r0, r0, r2 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08026696 movs r0, #0xc8 strh r0, [r6, #4] _08026696: movs r2, #0 lsls r1, r3, #0x10 ldr r7, _08026764 @ =0x03005000 mov r8, r7 ldr r0, _08026768 @ =0x086B51CE mov ip, r0 asrs r1, r1, #0x10 movs r0, #0x36 adds r3, r1, #0 muls r3, r0, r3 str r3, [sp] ldr r4, _0802676C @ =0xFFFFFE00 mov sl, r4 _080266B0: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r5, [sp] adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r5 add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08026770 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #8 ble _080266B0 _08026724: mov r4, sb ldr r3, [r4] ldrh r0, [r3, #0x18] cmp r0, #0x1c bne _08026742 ldr r5, _08026760 @ =gMain ldr r0, [r5, #0x44] adds r0, #0x88 ldr r1, [r0] movs r2, #0 movs r0, #0 strh r0, [r1] adds r0, r3, #0 adds r0, #0xe4 strb r2, [r0] _08026742: mov r6, sb ldr r0, [r6] ldr r7, _08026774 @ =0x000006C4 adds r0, r0, r7 movs r1, #0 strb r1, [r0] _0802674E: 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 _08026760: .4byte gMain _08026764: .4byte 0x03005000 _08026768: .4byte 0x086B51CE _0802676C: .4byte 0xFFFFFE00 _08026770: .4byte 0x000001FF _08026774: .4byte 0x000006C4 thumb_func_start sub_26778 sub_26778: @ 0x08026778 push {r4, r5, lr} ldr r0, _080267E0 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x64 bl __umodsi3 movs r1, #0xa bl __udivsi3 ldr r4, _080267E4 @ =0x020314E0 ldr r2, [r4] ldr r1, _080267E8 @ =0x0000070C adds r3, r2, r1 movs r5, #0 movs r1, #0 strh r1, [r3] ldr r1, _080267EC @ =0x08137AB8 lsls r0, r0, #0x10 asrs r3, r0, #0x10 lsls r0, r3, #1 adds r0, r0, r1 ldrh r1, [r0] ldr r0, _080267F0 @ =0x0000072F adds r2, r2, r0 strb r1, [r2] ldr r0, [r4] ldr r2, _080267F4 @ =0x0000072E adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] subs r2, #3 adds r0, r0, r2 strb r1, [r0] cmp r3, #7 beq _080267C2 cmp r3, #9 bne _080267FC _080267C2: ldr r0, [r4] movs r1, #0xe5 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r4] ldr r2, _080267F8 @ =0x0000072A adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] subs r2, #1 adds r0, r0, r2 strb r1, [r0] b _08026816 .align 2, 0 _080267E0: .4byte gMain _080267E4: .4byte 0x020314E0 _080267E8: .4byte 0x0000070C _080267EC: .4byte 0x08137AB8 _080267F0: .4byte 0x0000072F _080267F4: .4byte 0x0000072E _080267F8: .4byte 0x0000072A _080267FC: ldr r0, [r4] movs r1, #0xe5 lsls r1, r1, #3 adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _0802681C @ =0x0000072A adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] adds r1, #1 adds r0, r0, r1 strb r5, [r0] _08026816: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0802681C: .4byte 0x0000072A thumb_func_start sub_26820 sub_26820: @ 0x08026820 push {r4, lr} lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 beq _08026878 ldr r2, _0802686C @ =0x020314E0 ldr r0, [r2] ldr r1, _08026870 @ =0x0000072A adds r0, r0, r1 movs r3, #1 strb r3, [r0] ldr r0, [r2] movs r4, #0xe5 lsls r4, r4, #3 adds r0, r0, r4 strb r3, [r0] ldr r0, [r2] adds r1, #7 adds r0, r0, r1 strb r3, [r0] ldr r0, [r2] adds r4, #6 adds r0, r0, r4 movs r1, #3 strb r1, [r0] ldr r0, [r2] subs r4, #3 adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] adds r4, #4 adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] ldr r1, _08026874 @ =0x00000729 adds r0, r0, r1 strb r3, [r0] b _080268AC .align 2, 0 _0802686C: .4byte 0x020314E0 _08026870: .4byte 0x0000072A _08026874: .4byte 0x00000729 _08026878: ldr r2, _080268BC @ =0x020314E0 ldr r0, [r2] ldr r3, _080268C0 @ =0x00000729 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] ldr r4, _080268C4 @ =0x0000072A adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] subs r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, #4 adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] adds r3, #3 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, #1 adds r0, r0, r4 movs r1, #2 strb r1, [r0] _080268AC: ldr r0, [r2] ldr r1, _080268C8 @ =0x0000070E adds r0, r0, r1 movs r1, #1 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080268BC: .4byte 0x020314E0 _080268C0: .4byte 0x00000729 _080268C4: .4byte 0x0000072A _080268C8: .4byte 0x0000070E thumb_func_start sub_268CC sub_268CC: @ 0x080268CC push {r4, r5, r6, r7, lr} ldr r5, _08026974 @ =0x020314E0 ldr r0, [r5] ldr r1, _08026978 @ =0x000006BC adds r0, r0, r1 movs r6, #0 strb r6, [r0] ldr r0, [r5] ldr r2, _0802697C @ =0x000006BD adds r0, r0, r2 strb r6, [r0] ldr r7, _08026980 @ =gMain ldrb r0, [r7, #4] cmp r0, #0 bne _08026902 ldr r0, [r5] ldr r1, _08026984 @ =0x000002BE adds r0, r0, r1 strb r6, [r0] ldr r0, [r5] ldr r2, _08026988 @ =0x000002C2 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #2 adds r0, r0, r1 strh r6, [r0] _08026902: ldr r0, [r5] ldr r2, _0802698C @ =0x000006BE adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, [r5] movs r1, #0xd8 lsls r1, r1, #3 adds r0, r0, r1 movs r4, #0 strh r6, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r2, _08026990 @ =0x000006C4 adds r0, r0, r2 strb r4, [r0] ldr r0, [r7, #0x44] ldr r0, [r0, #0x34] strh r6, [r0] ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] subs r2, #0xd1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r2, _08026994 @ =0x00000736 adds r1, r0, r2 strb r4, [r1] ldr r1, _08026998 @ =0x00000739 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] ldr r1, _0802699C @ =0x0000073A adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] ldr r1, _080269A0 @ =0x0000073B adds r0, r0, r1 strb r4, [r0] bl sub_4D648 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08026974: .4byte 0x020314E0 _08026978: .4byte 0x000006BC _0802697C: .4byte 0x000006BD _08026980: .4byte gMain _08026984: .4byte 0x000002BE _08026988: .4byte 0x000002C2 _0802698C: .4byte 0x000006BE _08026990: .4byte 0x000006C4 _08026994: .4byte 0x00000736 _08026998: .4byte 0x00000739 _0802699C: .4byte 0x0000073A _080269A0: .4byte 0x0000073B thumb_func_start sub_269A4 sub_269A4: @ 0x080269A4 push {r4, r5, lr} ldr r2, _080269F4 @ =0x020314E0 ldr r0, [r2] movs r3, #0 strb r3, [r0, #0x17] ldr r0, [r2] strh r3, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r2, [r2] adds r4, r2, #0 adds r4, #0x6c movs r5, #0xe1 lsls r5, r5, #4 adds r0, r5, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r5, _080269F8 @ =0x00000296 adds r1, r2, r5 strh r0, [r1] strh r3, [r4] ldr r0, _080269FC @ =0x00000724 adds r2, r2, r0 subs r0, #0x1c strh r0, [r2] ldr r1, _08026A00 @ =0x040000D4 ldr r0, _08026A04 @ =0x081C0064 str r0, [r1] ldr r0, _08026A08 @ =0x05000180 str r0, [r1, #4] ldr r0, _08026A0C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080269F4: .4byte 0x020314E0 _080269F8: .4byte 0x00000296 _080269FC: .4byte 0x00000724 _08026A00: .4byte 0x040000D4 _08026A04: .4byte 0x081C0064 _08026A08: .4byte 0x05000180 _08026A0C: .4byte 0x80000010 thumb_func_start sub_26A10 sub_26A10: @ 0x08026A10 push {r4, r5, r6, lr} ldr r4, _08026A68 @ =0x020314E0 ldr r1, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026A4C ldr r3, _08026A6C @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bhi _08026A4C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #5 bgt _08026A4C bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #6 strb r1, [r0, #0x17] _08026A4C: ldr r1, _08026A68 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #7 bls _08026A5E b _08026E9E _08026A5E: lsls r0, r0, #2 ldr r1, _08026A70 @ =_08026A74 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08026A68: .4byte 0x020314E0 _08026A6C: .4byte 0x00000296 _08026A70: .4byte _08026A74 _08026A74: @ jump table .4byte _08026A94 @ case 0 .4byte _08026AC4 @ case 1 .4byte _08026C10 @ case 2 .4byte _08026C68 @ case 3 .4byte _08026C88 @ case 4 .4byte _08026CC0 @ case 5 .4byte _08026E5C @ case 6 .4byte _08026E84 @ case 7 _08026A94: ldr r0, _08026ABC @ =gMain ldrb r2, [r0, #0xf] cmp r2, #0 bne _08026AAE ldr r0, [r5] ldrb r1, [r0, #0x17] adds r1, #1 strb r1, [r0, #0x17] ldr r0, [r5] movs r1, #0xe1 lsls r1, r1, #3 adds r0, r0, r1 str r2, [r0] _08026AAE: ldr r0, [r5] ldr r2, _08026AC0 @ =0x000006BC adds r0, r0, r2 movs r1, #0 strb r1, [r0] b _08026E9E .align 2, 0 _08026ABC: .4byte gMain _08026AC0: .4byte 0x000006BC _08026AC4: movs r0, #4 movs r1, #0 bl sub_1C7F4 ldr r4, _08026B5C @ =0x020314E0 ldr r0, [r4] ldrh r0, [r0, #0x18] cmp r0, #0x23 bne _08026ADC movs r0, #0x17 bl m4aSongNumStart _08026ADC: ldr r1, [r4] ldr r3, _08026B60 @ =0x000006BC adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026B1E ldrb r0, [r1, #0x17] adds r0, #1 movs r5, #0 strb r0, [r1, #0x17] ldr r0, [r4] ldrh r0, [r0, #0x18] cmp r0, #0x22 bhi _08026B02 movs r0, #0x17 bl m4aSongNumStart _08026B02: ldr r0, [r4] ldr r1, _08026B64 @ =0x000006BD adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _08026B68 @ =0x000006BE adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r3, #0xd8 lsls r3, r3, #3 adds r0, r0, r3 strh r5, [r0] _08026B1E: ldr r5, _08026B5C @ =0x020314E0 ldr r6, [r5] ldrh r4, [r6, #0x18] adds r0, r4, #0 movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xa bl __udivsi3 adds r4, #1 movs r3, #0 strh r4, [r6, #0x18] lsls r0, r0, #0x10 asrs r2, r0, #0x10 cmp r2, #0 bne _08026B74 ldr r1, _08026B6C @ =0x00000736 adds r0, r6, r1 strb r3, [r0] ldr r0, [r5] ldr r2, _08026B70 @ =0x00000737 adds r0, r0, r2 strb r3, [r0] ldr r0, [r5] adds r1, #2 adds r0, r0, r1 strb r3, [r0] b _08026BD8 .align 2, 0 _08026B5C: .4byte 0x020314E0 _08026B60: .4byte 0x000006BC _08026B64: .4byte 0x000006BD _08026B68: .4byte 0x000006BE _08026B6C: .4byte 0x00000736 _08026B70: .4byte 0x00000737 _08026B74: cmp r2, #1 bne _08026B9C ldr r0, _08026B94 @ =0x00000736 adds r1, r6, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] ldr r1, _08026B98 @ =0x00000737 adds r0, r0, r1 strb r2, [r0] ldr r0, [r5] movs r2, #0xe7 lsls r2, r2, #3 adds r0, r0, r2 strb r3, [r0] b _08026BD8 .align 2, 0 _08026B94: .4byte 0x00000736 _08026B98: .4byte 0x00000737 _08026B9C: cmp r2, #2 bne _08026BC0 ldr r3, _08026BBC @ =0x00000736 adds r0, r6, r3 movs r1, #3 strb r1, [r0] ldr r0, [r5] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] movs r1, #0xe7 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] b _08026BD8 .align 2, 0 _08026BBC: .4byte 0x00000736 _08026BC0: ldr r2, _08026C04 @ =0x00000736 adds r0, r6, r2 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r3, _08026C08 @ =0x00000737 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, #2 adds r0, r0, r2 strb r1, [r0] _08026BD8: ldr r0, [r5] ldr r3, _08026C04 @ =0x00000736 adds r1, r0, r3 ldrb r1, [r1] ldr r2, _08026C0C @ =0x00000739 adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, #1 adds r1, r0, r3 ldrb r1, [r1] adds r2, #1 adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, #1 adds r1, r0, r3 ldrb r1, [r1] adds r2, #1 adds r0, r0, r2 strb r1, [r0] b _08026E9E .align 2, 0 _08026C04: .4byte 0x00000736 _08026C08: .4byte 0x00000737 _08026C0C: .4byte 0x00000739 _08026C10: bl sub_219A8 ldr r5, _08026C5C @ =0x020314E0 ldr r0, [r5] movs r3, #0xe6 lsls r3, r3, #3 adds r0, r0, r3 movs r4, #0 movs r1, #2 strb r1, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r2, _08026C60 @ =0x00000736 adds r1, r0, r2 strb r4, [r1] ldr r3, _08026C64 @ =0x00000739 adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] adds r3, #1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] adds r3, #1 adds r0, r0, r3 strb r4, [r0] ldr r1, [r5] b _08026E72 .align 2, 0 _08026C5C: .4byte 0x020314E0 _08026C60: .4byte 0x00000736 _08026C64: .4byte 0x00000739 _08026C68: bl sub_219EC ldr r0, _08026C84 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _08026C80 b _08026E9E _08026C80: b _08026E72 .align 2, 0 _08026C84: .4byte 0x020314E0 _08026C88: ldr r0, [r5] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 movs r1, #3 strb r1, [r0] ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r5] strh r2, [r0, #0x18] movs r3, #0xe1 lsls r3, r3, #3 adds r1, r0, r3 str r2, [r1] ldr r1, _08026CBC @ =0x000006EC adds r0, r0, r1 movs r1, #0x2f strb r1, [r0] movs r0, #7 movs r1, #0 bl sub_1C7F4 b _08026E9E .align 2, 0 _08026CBC: .4byte 0x000006EC _08026CC0: ldr r4, _08026D34 @ =0x020314E0 ldr r1, [r4] ldrh r0, [r1, #0x28] cmp r0, #0x91 beq _08026CCC b _08026DC6 _08026CCC: adds r0, #1 strh r0, [r1, #0x28] ldr r2, _08026D38 @ =0x000006EC adds r1, r1, r2 movs r0, #0x2f strb r0, [r1] movs r0, #7 movs r1, #0 bl sub_1C7F4 ldr r0, _08026D3C @ =gMain ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08026D92 ldr r0, [r4] movs r1, #0x90 strh r1, [r0, #0x28] bl m4aMPlayAllStop movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r2, [r4] adds r0, r2, #0 adds r0, #0x36 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bgt _08026D80 adds r1, r2, #0 adds r1, #0x34 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r3, _08026D40 @ =0x000006BC adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08026D44 adds r0, r2, #0 adds r0, #0x33 ldrb r1, [r0] subs r0, #1 b _08026D4A .align 2, 0 _08026D34: .4byte 0x020314E0 _08026D38: .4byte 0x000006EC _08026D3C: .4byte gMain _08026D40: .4byte 0x000006BC _08026D44: ldrb r1, [r1] adds r0, r2, #0 adds r0, #0x32 _08026D4A: strb r1, [r0] ldr r6, _08026D7C @ =0x020314E0 ldr r5, [r6] lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #1 movs r1, #6 bl __modsi3 adds r5, #0x33 strb r0, [r5] ldr r5, [r6] adds r4, #2 adds r0, r4, #0 movs r1, #6 bl __modsi3 adds r5, #0x34 strb r0, [r5] ldr r1, [r6] adds r1, #0x36 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08026DC6 .align 2, 0 _08026D7C: .4byte 0x020314E0 _08026D80: adds r1, r2, #0 adds r1, #0x32 movs r0, #6 strb r0, [r1] ldr r0, [r4] adds r0, #0x36 movs r1, #0 strb r1, [r0] b _08026DC6 _08026D92: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08026DC6 bl m4aMPlayAllStop movs r0, #0x66 bl m4aSongNumStart ldr r1, [r4] movs r0, #0x3c strh r0, [r1, #0x28] movs r0, #6 strb r0, [r1, #0x17] ldr r1, [r4] ldr r2, _08026E14 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026DC6 ldr r3, _08026E18 @ =0x000006EE adds r1, r1, r3 movs r0, #0x78 strh r0, [r1] _08026DC6: ldr r0, _08026E1C @ =0x020314E0 ldr r3, [r0] ldrh r4, [r3, #0x28] adds r2, r4, #0 adds r5, r0, #0 cmp r2, #0x82 bne _08026E3A adds r0, r4, #1 strh r0, [r3, #0x28] ldrh r1, [r3, #0x18] ldr r0, _08026E20 @ =0x000001E9 cmp r1, r0 bhi _08026E2C bl sub_2E094 ldr r5, [r5] ldrb r0, [r5, #0x1c] cmp r0, #0 beq _08026DF8 ldrh r1, [r5, #0x18] ldr r0, _08026E24 @ =0x000001AB cmp r1, r0 bls _08026DF8 adds r0, #1 strh r0, [r5, #0x18] _08026DF8: ldr r0, _08026E1C @ =0x020314E0 ldr r3, [r0] ldrh r2, [r3, #0x18] movs r1, #0xc5 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bne _08026E30 movs r0, #1 strb r0, [r3, #0x1c] ldr r1, [r5] ldr r0, _08026E28 @ =0x0007A120 str r0, [r1, #0x3c] b _08026E30 .align 2, 0 _08026E14: .4byte 0x00000714 _08026E18: .4byte 0x000006EE _08026E1C: .4byte 0x020314E0 _08026E20: .4byte 0x000001E9 _08026E24: .4byte 0x000001AB _08026E28: .4byte 0x0007A120 _08026E2C: movs r0, #0x78 strh r0, [r3, #0x28] _08026E30: ldr r1, [r5] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _08026E9E _08026E3A: cmp r2, #0 bne _08026E9E ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] ldr r0, [r5] strh r2, [r0, #0x18] ldr r2, _08026E58 @ =0x0000062C adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x62 bhi _08026E9E adds r0, #1 strb r0, [r1] b _08026E9E .align 2, 0 _08026E58: .4byte 0x0000062C _08026E5C: bl sub_219EC ldr r0, _08026E7C @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r0, #0 strh r0, [r1] bl sub_268CC ldr r0, _08026E80 @ =0x020314E0 ldr r1, [r0] _08026E72: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _08026E9E .align 2, 0 _08026E7C: .4byte gMain _08026E80: .4byte 0x020314E0 _08026E84: ldr r1, [r5] ldrh r0, [r1, #0x18] adds r4, r0, #0 cmp r4, #0 beq _08026E94 subs r0, #1 strh r0, [r1, #0x18] b _08026E9E _08026E94: movs r0, #1 bl sub_19B64 ldr r0, [r5] strb r4, [r0, #0x17] _08026E9E: pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_26EA4 sub_26EA4: @ 0x08026EA4 push {r4, r5, r6, lr} movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, _08026EE0 @ =0x020314E0 ldr r1, [r0] ldr r2, _08026EE4 @ =0x000006C4 adds r1, r1, r2 movs r2, #0 strb r2, [r1] adds r6, r0, #0 ldr r5, _08026EE8 @ =0x0000071D _08026EBE: ldr r0, _08026EE0 @ =0x020314E0 ldr r3, [r0] ldr r0, _08026EEC @ =0x00000723 adds r1, r3, r0 lsls r0, r2, #0x10 asrs r2, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, #0 cmp r2, r1 bge _08026EF0 adds r0, r3, r5 adds r0, r0, r2 movs r1, #1 b _08026EF6 .align 2, 0 _08026EE0: .4byte 0x020314E0 _08026EE4: .4byte 0x000006C4 _08026EE8: .4byte 0x0000071D _08026EEC: .4byte 0x00000723 _08026EF0: adds r0, r3, r5 adds r0, r0, r2 movs r1, #0 _08026EF6: strb r1, [r0] movs r1, #0x80 lsls r1, r1, #9 adds r0, r4, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08026EBE ldr r0, _08026F30 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r2, #0 movs r0, #0 strh r0, [r1] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] ldr r1, _08026F34 @ =0x000005F3 adds r0, r0, r1 strb r2, [r0] bl sub_4D648 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08026F30: .4byte gMain _08026F34: .4byte 0x000005F3 thumb_func_start sub_26F38 sub_26F38: @ 0x08026F38 push {r4, r5, r6, r7, lr} ldr r4, _08026F88 @ =0x020314E0 ldr r0, [r4] movs r3, #0 strb r3, [r0, #0x17] ldr r0, [r4] movs r6, #0 strh r3, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r5, [r4] adds r2, r5, #0 adds r2, #0x6c movs r7, #0xe1 lsls r7, r7, #5 adds r0, r7, #0 ldrh r1, [r2] adds r0, r0, r1 ldr r7, _08026F8C @ =0x00000296 adds r1, r5, r7 strh r0, [r1] strh r3, [r2] ldr r0, _08026F90 @ =0x00000724 adds r1, r5, r0 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] movs r2, #0xb3 lsls r2, r2, #3 adds r1, r5, r2 ldrh r0, [r1] cmp r0, #0xd bne _08026F94 subs r7, #0x37 adds r0, r5, r7 strb r6, [r0] b _08026FFC .align 2, 0 _08026F88: .4byte 0x020314E0 _08026F8C: .4byte 0x00000296 _08026F90: .4byte 0x00000724 _08026F94: cmp r0, #0x58 bne _08026FC4 ldr r0, _08026FAC @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _08026FB4 ldr r0, _08026FB0 @ =0x0000025F adds r1, r5, r0 movs r0, #1 strb r0, [r1] b _08026FFC .align 2, 0 _08026FAC: .4byte gMain _08026FB0: .4byte 0x0000025F _08026FB4: ldr r2, _08026FC0 @ =0x0000025F adds r1, r5, r2 movs r0, #7 strb r0, [r1] b _08026FFC .align 2, 0 _08026FC0: .4byte 0x0000025F _08026FC4: cmp r0, #0xaf bne _08026FD8 ldr r7, _08026FD4 @ =0x0000025F adds r1, r5, r7 movs r0, #3 strb r0, [r1] b _08026FFC .align 2, 0 _08026FD4: .4byte 0x0000025F _08026FD8: ldr r2, _08027054 @ =0x086A3700 ldrh r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #0x14] subs r0, #1 ldr r2, _08027058 @ =0x0000025F adds r1, r5, r2 strb r0, [r1] ldr r0, [r4] adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _08026FFC strb r6, [r1] _08026FFC: ldr r1, _0802705C @ =0x040000D4 ldr r0, _08027060 @ =0x081C0064 str r0, [r1] ldr r0, _08027064 @ =0x05000180 str r0, [r1, #4] ldr r0, _08027068 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r4] ldr r1, _0802706C @ =0x0000072E adds r0, r0, r1 movs r3, #0 strb r3, [r0] ldr r0, [r4] ldr r2, _08027070 @ =0x0000072A adds r0, r0, r2 strb r3, [r0] ldr r0, [r4] ldr r7, _08027074 @ =0x00000252 adds r1, r0, r7 movs r2, #0 strh r3, [r1] ldr r1, _08027078 @ =0x0000025E adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] adds r7, #0x19 adds r0, r0, r7 strb r2, [r0] ldr r0, [r4] adds r1, #0xe adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _0802707C @ =0x0000026E adds r0, r0, r2 strh r3, [r0] movs r0, #3 movs r1, #0 bl sub_1C7F4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08027054: .4byte 0x086A3700 _08027058: .4byte 0x0000025F _0802705C: .4byte 0x040000D4 _08027060: .4byte 0x081C0064 _08027064: .4byte 0x05000180 _08027068: .4byte 0x80000010 _0802706C: .4byte 0x0000072E _08027070: .4byte 0x0000072A _08027074: .4byte 0x00000252 _08027078: .4byte 0x0000025E _0802707C: .4byte 0x0000026E thumb_func_start sub_27080 sub_27080: @ 0x08027080 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _080270E0 @ =0x020314E0 ldr r1, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080270C0 ldr r3, _080270E4 @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bhi _080270C0 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #7 bgt _080270C0 bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #8 strb r1, [r0, #0x17] _080270C0: ldr r1, _080270E0 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #0xa bls _080270D4 bl _080278E6 _080270D4: lsls r0, r0, #2 ldr r1, _080270E8 @ =_080270EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080270E0: .4byte 0x020314E0 _080270E4: .4byte 0x00000296 _080270E8: .4byte _080270EC _080270EC: @ jump table .4byte _08027118 @ case 0 .4byte _08027390 @ case 1 .4byte _08027414 @ case 2 .4byte _08027424 @ case 3 .4byte _08027452 @ case 4 .4byte _08027474 @ case 5 .4byte _080274B4 @ case 6 .4byte _08027506 @ case 7 .4byte _080277D8 @ case 8 .4byte _0802789C @ case 9 .4byte _080278B0 @ case 10 _08027118: ldr r0, [r6] movs r5, #0x94 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r0, #1 bhi _08027208 movs r2, #0 adds r3, r6, #0 ldr r4, _080271F4 @ =0x00000263 _0802712C: ldr r1, [r3] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0802712C bl sub_C00 ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #5 bl __umodsi3 ldr r5, _080271FC @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _080271F4 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] movs r6, #0x98 lsls r6, r6, #2 adds r2, r2, r6 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #6 bgt _0802718E adds r3, r4, #0 _08027176: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #6 ble _08027176 _0802718E: bl sub_C00 ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r2, r0, r1 movs r0, #3 ands r2, r0 ldr r4, _080271FC @ =0x020314E0 ldr r1, [r4] ldr r3, _080271F4 @ =0x00000263 adds r0, r1, r3 adds r0, r2, r0 ldrb r0, [r0] ldr r7, _08027200 @ =0x00000261 adds r1, r1, r7 strb r0, [r1] lsls r1, r2, #0x10 cmp r2, #5 bgt _080271CC _080271B4: ldr r0, [r4] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #5 ble _080271B4 _080271CC: bl sub_C00 ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 bl __umodsi3 ldr r1, _080271FC @ =0x020314E0 ldr r2, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r3, _080271F4 @ =0x00000263 adds r1, r2, r3 adds r1, r1, r0 ldrb r0, [r1] ldr r5, _08027204 @ =0x00000262 adds r2, r2, r5 strb r0, [r2] b _08027362 .align 2, 0 _080271F4: .4byte 0x00000263 _080271F8: .4byte gMain _080271FC: .4byte 0x020314E0 _08027200: .4byte 0x00000261 _08027204: .4byte 0x00000262 _08027208: movs r2, #0 adds r3, r6, #0 ldr r4, _08027378 @ =0x00000263 _0802720E: ldr r1, [r3] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0802720E bl sub_C00 ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 ldr r5, _08027380 @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _08027378 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] movs r6, #0x98 lsls r6, r6, #2 adds r2, r2, r6 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #6 bgt _08027270 adds r3, r4, #0 _08027258: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #6 ble _08027258 _08027270: bl sub_C00 ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 ldr r5, _08027380 @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _08027378 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] ldr r7, _08027384 @ =0x00000261 adds r2, r2, r7 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #5 bgt _080272B8 adds r3, r4, #0 _080272A0: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #5 ble _080272A0 _080272B8: bl sub_C00 ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 ldr r5, _08027380 @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _08027378 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] ldr r3, _08027388 @ =0x00000262 adds r2, r2, r3 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #4 bgt _08027300 adds r3, r4, #0 _080272E8: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #4 ble _080272E8 _08027300: ldr r0, _0802737C @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bne _08027362 ldr r1, _08027380 @ =0x020314E0 ldr r0, [r1] ldr r5, _0802738C @ =0x00000283 adds r0, r0, r5 ldrb r0, [r0] cmp r0, #4 bhi _08027362 movs r2, #0 adds r5, r1, #0 _0802731A: ldr r0, [r5] lsls r1, r2, #0x10 asrs r4, r1, #0x10 movs r6, #0x98 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _08027356 bl sub_C00 ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #5 bl __umodsi3 ldr r1, [r5] adds r2, r1, r6 adds r2, r2, r4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r7, _08027378 @ =0x00000263 adds r1, r1, r7 adds r1, r1, r0 ldrb r0, [r1] strb r0, [r2] _08027356: adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0802731A _08027362: ldr r0, _08027380 @ =0x020314E0 ldr r1, [r0] movs r0, #0x94 lsls r0, r0, #2 adds r2, r1, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r2] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _08027378: .4byte 0x00000263 _0802737C: .4byte gMain _08027380: .4byte 0x020314E0 _08027384: .4byte 0x00000261 _08027388: .4byte 0x00000262 _0802738C: .4byte 0x00000283 _08027390: ldr r1, [r6] ldr r2, _080273FC @ =0x0000026B adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] movs r3, #0x98 lsls r3, r3, #2 adds r0, r1, r3 adds r0, r0, r2 ldrb r0, [r0] ldr r2, _08027400 @ =0x0000025E adds r1, r1, r2 strb r0, [r1] ldr r3, [r6] ldr r5, _08027404 @ =0x086ACFA0 adds r2, r3, r2 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #2 ldr r4, _08027408 @ =gMain ldrb r0, [r4, #4] lsls r0, r0, #5 adds r1, r1, r0 adds r1, r1, r5 ldrh r1, [r1] movs r6, #0x96 lsls r6, r6, #2 adds r0, r3, r6 strh r1, [r0] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 ldrb r1, [r4, #4] lsls r1, r1, #5 adds r0, r0, r1 adds r0, r0, r5 ldrh r1, [r0, #2] ldr r7, _0802740C @ =0x0000025A adds r0, r3, r7 strh r1, [r0] ldr r0, _08027410 @ =0x0000026E adds r1, r3, r0 movs r0, #0x50 strh r0, [r1] ldr r0, [r4, #0x44] adds r0, #0xa0 ldr r1, [r0] movs r0, #1 strh r0, [r1] ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] b _080278E6 .align 2, 0 _080273FC: .4byte 0x0000026B _08027400: .4byte 0x0000025E _08027404: .4byte 0x086ACFA0 _08027408: .4byte gMain _0802740C: .4byte 0x0000025A _08027410: .4byte 0x0000026E _08027414: bl sub_278F4 ldr r0, _08027420 @ =0x020314E0 ldr r1, [r0] b _080277B8 .align 2, 0 _08027420: .4byte 0x020314E0 _08027424: ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #7 bhi _0802743A b _08027684 _0802743A: bl sub_219A8 ldr r0, [r6] movs r2, #0xe6 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #2 strb r1, [r0] ldr r1, [r6] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 _08027452: bl sub_219EC ldr r0, _08027470 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0802746A b _080278E6 _0802746A: ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _08027470: .4byte 0x020314E0 _08027474: ldr r0, [r6] movs r3, #0xa5 lsls r3, r3, #2 adds r0, r0, r3 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r0, [r6] movs r4, #0xb3 lsls r4, r4, #3 adds r1, r0, r4 ldrh r1, [r1] movs r7, #0xb4 lsls r7, r7, #3 adds r0, r0, r7 strh r1, [r0] movs r0, #1 bl sub_31CF8 ldr r1, [r6] adds r4, r1, r4 ldrh r2, [r4] ldr r3, _080274B0 @ =0x000005A2 adds r0, r1, r3 strh r2, [r0] strh r5, [r1, #0x18] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _080274B0: .4byte 0x000005A2 _080274B4: ldr r1, [r6] ldrh r0, [r1, #0x28] cmp r0, #0x94 beq _080274BE b _080278E6 _080274BE: adds r0, #1 strh r0, [r1, #0x28] ldr r0, _080274F0 @ =gMain movs r5, #0xc5 lsls r5, r5, #4 adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0 beq _080274F4 movs r7, #0xaf lsls r7, r7, #2 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0x4f bhi _080274DE b _080278E6 _080274DE: bl sub_2D204 ldr r1, [r6] movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #6 beq _080274EE b _080278E6 _080274EE: b _08027682 .align 2, 0 _080274F0: .4byte gMain _080274F4: bl sub_2D204 ldr r1, [r6] movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #6 beq _08027504 b _080278E6 _08027504: b _08027682 _08027506: ldr r3, [r6] ldrh r0, [r3, #0x28] adds r1, r0, #0 cmp r1, #0x94 beq _08027512 b _080276BA _08027512: adds r0, #1 strh r0, [r3, #0x28] ldrh r1, [r3, #0x18] ldr r0, _08027530 @ =0x00000117 cmp r1, r0 bls _08027520 b _080276B4 _08027520: cmp r1, #0 bne _08027534 bl sub_2312C movs r0, #0x12 bl m4aSongNumStart b _0802758E .align 2, 0 _08027530: .4byte 0x00000117 _08027534: bl sub_23300 ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #0xe5 bhi _08027550 movs r0, #0x84 lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0x96 bne _08027550 subs r0, #1 strh r0, [r1] _08027550: ldr r4, _0802768C @ =0x020314E0 ldr r0, [r4] ldrh r1, [r0, #0x18] movs r0, #0x87 lsls r0, r0, #1 cmp r1, r0 bne _08027570 movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r1, _08027690 @ =0x000006C4 adds r0, r0, r1 movs r1, #0 strb r1, [r0] _08027570: ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0802757C movs r0, #0xb5 strh r0, [r1, #0x18] _0802757C: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0802758E movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08027694 @ =0x004C4B40 str r0, [r1, #0x3c] _0802758E: ldr r0, _0802768C @ =0x020314E0 ldr r2, [r0] ldrh r1, [r2, #0x18] adds r6, r0, #0 cmp r1, #0x1d bhi _08027600 ldr r1, _08027698 @ =gMain movs r0, #1 strh r0, [r1, #0x2c] ldrh r1, [r2, #0x18] movs r3, #0xa6 lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] movs r2, #0 lsls r0, r1, #0x10 asrs r0, r0, #0x10 ldr r5, _0802769C @ =0x03005C00 mov r8, r5 cmp r2, r0 bgt _080275F0 adds r7, r0, #0 movs r4, #0xc1 lsls r4, r4, #8 _080275BE: movs r0, #2 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _080275C4: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xb ble _080275C4 movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r7 ble _080275BE _080275F0: ldr r1, _080276A0 @ =0x040000D4 mov r2, r8 str r2, [r1] ldr r0, _080276A4 @ =0x06002000 str r0, [r1, #4] ldr r0, _080276A8 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _08027600: ldr r0, [r6] ldrh r0, [r0, #0x18] subs r0, #0xf0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1d bhi _08027680 movs r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r3, _0802769C @ =0x03005C00 mov r8, r3 cmp r2, r0 bgt _08027654 mov r5, r8 ldr r4, _080276AC @ =0x000001FF adds r7, r0, #0 _08027622: movs r0, #2 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _08027628: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xb ble _08027628 movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r7 ble _08027622 _08027654: ldr r1, _080276A0 @ =0x040000D4 mov r2, r8 str r2, [r1] ldr r0, _080276A4 @ =0x06002000 str r0, [r1, #4] ldr r0, _080276A8 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r6] ldrh r1, [r0, #0x18] ldr r0, _080276B0 @ =0x0000010D cmp r1, r0 bne _08027680 ldr r0, _08027698 @ =gMain movs r1, #0 strh r1, [r0, #0x2c] ldrh r2, [r0, #0x38] strh r1, [r0, #0x38] ldrh r2, [r0, #0x3c] strh r1, [r0, #0x3c] ldrh r2, [r0, #0x3a] strh r1, [r0, #0x3a] _08027680: ldr r1, [r6] _08027682: ldrh r0, [r1, #0x18] _08027684: adds r0, #1 strh r0, [r1, #0x18] b _080278E6 .align 2, 0 _0802768C: .4byte 0x020314E0 _08027690: .4byte 0x000006C4 _08027694: .4byte 0x004C4B40 _08027698: .4byte gMain _0802769C: .4byte 0x03005C00 _080276A0: .4byte 0x040000D4 _080276A4: .4byte 0x06002000 _080276A8: .4byte 0x80000400 _080276AC: .4byte 0x000001FF _080276B0: .4byte 0x0000010D _080276B4: movs r0, #0x28 strh r0, [r3, #0x28] b _080278E6 _080276BA: cmp r1, #0x18 beq _080276C0 b _080278E6 _080276C0: ldr r5, _080277C0 @ =0x00000723 adds r0, r3, r5 ldrb r1, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08027748 ldr r2, _080277C4 @ =0x00000721 adds r0, r3, r2 strb r1, [r0] ldr r0, [r6] adds r1, r0, r5 ldrb r1, [r1] ldr r3, _080277C8 @ =0x00000722 adds r0, r0, r3 strb r1, [r0] ldr r0, [r6] adds r2, r0, r2 movs r1, #0 ldrsb r1, [r2, r1] ldr r7, _080277CC @ =0x0000071D adds r0, r0, r7 adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r6] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 movs r3, #0x78 strb r3, [r0] ldr r1, [r6] adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r6] adds r0, r1, r5 ldrb r2, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08027748 adds r7, #5 adds r0, r1, r7 strb r2, [r0] ldr r0, [r6] adds r2, r7, #0 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r7, #5 adds r0, r0, r7 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 strb r3, [r0] ldr r1, [r6] adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08027748: ldr r2, [r6] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x2a bne _08027780 adds r3, #0x58 adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r5, _080277D0 @ =0x0000062B adds r1, r2, r5 ldrb r0, [r1] cmp r0, #0x62 bhi _0802776E adds r0, #1 strb r0, [r1] _0802776E: ldr r1, [r6] adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0xf bne _08027780 ldr r7, _080277D4 @ =0x00000286 adds r1, r1, r7 movs r0, #0x5c strh r0, [r1] _08027780: ldr r2, [r6] movs r0, #0xbe lsls r0, r0, #3 adds r1, r2, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _0802779E ldr r3, _080277D4 @ =0x00000286 adds r1, r2, r3 movs r0, #0x5c strh r0, [r1] _0802779E: ldr r0, [r6] ldr r5, _080277D0 @ =0x0000062B adds r1, r0, r5 ldrb r0, [r1] cmp r0, #0x62 bhi _080277AE adds r0, #1 strb r0, [r1] _080277AE: ldr r1, [r6] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, [r6] _080277B8: movs r0, #0 strh r0, [r1, #0x18] b _080278E6 .align 2, 0 _080277C0: .4byte 0x00000723 _080277C4: .4byte 0x00000721 _080277C8: .4byte 0x00000722 _080277CC: .4byte 0x0000071D _080277D0: .4byte 0x0000062B _080277D4: .4byte 0x00000286 _080277D8: ldr r6, _0802787C @ =gMain ldr r0, [r6, #0x44] adds r0, #0x80 ldr r4, [r0] movs r7, #8 adds r7, r7, r4 ldr r5, _08027880 @ =0x03005000 ldrh r1, [r4, #8] lsls r1, r1, #3 adds r1, r1, r5 movs r0, #2 ldrsh r2, [r7, r0] ldr r3, _08027884 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] ldr r0, _08027888 @ =0xFFFFFE00 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] subs r0, #0x38 movs r5, #0 strb r0, [r1] ldr r0, [r6, #0x44] adds r0, #0x80 ldr r0, [r0] movs r7, #0 mov r8, r7 strh r5, [r0] bl sub_278F4 ldr r0, [r6, #0x44] adds r0, #0xa0 ldr r0, [r0] strh r5, [r0] ldr r4, _0802788C @ =0x020314E0 ldr r0, [r4] adds r0, #0xe4 mov r1, r8 strb r1, [r0] bl sub_219EC ldr r0, [r6, #0x44] ldr r0, [r0, #0x34] strh r5, [r0] ldr r0, [r4] movs r2, #0xd2 lsls r2, r2, #1 adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r1, [r4] movs r3, #0xda lsls r3, r3, #1 adds r0, r1, r3 strh r5, [r0] ldr r5, _08027890 @ =0x000001A5 adds r0, r1, r5 mov r6, r8 strb r6, [r0] ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, [r4] ldr r7, _08027894 @ =0x00000714 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080278E6 ldr r0, _08027898 @ =0x000006EE adds r1, r1, r0 movs r0, #0x78 strh r0, [r1] b _080278E6 .align 2, 0 _0802787C: .4byte gMain _08027880: .4byte 0x03005000 _08027884: .4byte 0x000001FF _08027888: .4byte 0xFFFFFE00 _0802788C: .4byte 0x020314E0 _08027890: .4byte 0x000001A5 _08027894: .4byte 0x00000714 _08027898: .4byte 0x000006EE _0802789C: bl sub_26EA4 ldr r0, _080278AC @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _080278AC: .4byte 0x020314E0 _080278B0: ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080278BE subs r0, #1 strh r0, [r1, #0x18] b _080278E6 _080278BE: ldr r2, _080278D4 @ =0x0000071F adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080278D8 movs r0, #3 bl sub_19B64 b _080278DE .align 2, 0 _080278D4: .4byte 0x0000071F _080278D8: movs r0, #1 bl sub_19B64 _080278DE: ldr r0, _080278F0 @ =0x020314E0 ldr r1, [r0] movs r0, #0 _080278E4: strb r0, [r1, #0x17] _080278E6: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080278F0: .4byte 0x020314E0 thumb_func_start sub_278F4 sub_278F4: @ 0x080278F4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080279C4 @ =gMain mov sl, r0 ldr r0, [r0, #0x4c] movs r1, #0x4b bl __umodsi3 movs r1, #3 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 mov r1, sl ldr r2, [r1, #0x44] adds r0, r2, #0 adds r0, #0x80 ldr r7, [r0] ldr r6, _080279C8 @ =0x020314E0 ldr r3, [r6] ldr r0, _080279CC @ =0x0000026E mov sb, r0 adds r0, r3, r0 ldrh r1, [r0] cmp r1, #0 bne _08027932 b _08027B74 _08027932: adds r0, r2, #0 adds r0, #0xa0 ldr r7, [r0] cmp r1, #0x50 bne _0802798C adds r1, r3, #0 adds r1, #0xe4 movs r5, #0 movs r0, #0xf strb r0, [r1] ldr r2, _080279D0 @ =0x040000D4 ldr r1, _080279D4 @ =0x086AD474 ldr r3, [r6] ldr r0, _080279D8 @ =0x0000025F adds r4, r3, r0 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, _080279DC @ =0x06015800 str r0, [r2, #4] ldr r0, _080279E0 @ =0x80000E00 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #5 ldr r1, _080279E4 @ =0x0815C4C4 adds r0, r0, r1 str r0, [r2] ldr r0, _080279E8 @ =0x050003E0 str r0, [r2, #4] ldr r0, _080279EC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _080279F0 @ =0x00000626 adds r3, r3, r1 strb r5, [r3] ldr r0, [r6] movs r2, #0xc5 lsls r2, r2, #3 adds r0, r0, r2 strh r5, [r0] _0802798C: ldr r0, [r6] add r0, sb ldrh r0, [r0] cmp r0, #0x3c bne _0802799E ldr r0, _080279F4 @ =0x02032F20 ldr r1, _080279F8 @ =0x0869F58C bl MPlayStart _0802799E: ldr r2, _080279FC @ =0x086AE0E6 ldr r1, [r6] ldr r5, _080279F0 @ =0x00000626 adds r3, r1, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r0, [r0, r2] adds r5, #2 adds r1, r1, r5 ldrh r2, [r1] cmp r0, r2 ble _08027A00 adds r0, r2, #1 strh r0, [r1] b _08027A46 .align 2, 0 _080279C4: .4byte gMain _080279C8: .4byte 0x020314E0 _080279CC: .4byte 0x0000026E _080279D0: .4byte 0x040000D4 _080279D4: .4byte 0x086AD474 _080279D8: .4byte 0x0000025F _080279DC: .4byte 0x06015800 _080279E0: .4byte 0x80000E00 _080279E4: .4byte 0x0815C4C4 _080279E8: .4byte 0x050003E0 _080279EC: .4byte 0x80000010 _080279F0: .4byte 0x00000626 _080279F4: .4byte 0x02032F20 _080279F8: .4byte 0x0869F58C _080279FC: .4byte 0x086AE0E6 _08027A00: movs r2, #1 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r6] ldr r3, _08027B48 @ =0x00000626 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x1d bne _08027A46 movs r0, #0x1c strb r0, [r1] ldr r0, [r6] add r0, sb strh r2, [r0] mov r5, sl ldr r0, [r5, #0x44] adds r0, #0xa0 ldr r1, [r0] movs r0, #0 strh r0, [r1] ldr r0, [r5, #0x44] adds r0, #0x80 ldr r0, [r0] strh r2, [r0] ldr r0, _08027B4C @ =0x02032F20 ldr r1, _08027B50 @ =0x0869F5C8 bl MPlayStart ldr r0, [r6] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _08027A46: ldr r3, _08027B54 @ =0x020314E0 ldr r2, [r3] movs r6, #0x96 lsls r6, r6, #2 adds r0, r2, r6 adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 adds r0, #8 strh r0, [r7, #2] ldr r1, _08027B58 @ =0x0000025A adds r0, r2, r1 adds r2, #0x5a ldrh r0, [r0] ldrh r1, [r2] subs r0, r0, r1 adds r0, #8 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08027A7E ldr r0, _08027B5C @ =0x0000FFE2 strh r0, [r7, #4] _08027A7E: movs r2, #4 ldrsh r0, [r7, r2] cmp r0, #0xc8 ble _08027A8A movs r0, #0xc8 strh r0, [r7, #4] _08027A8A: movs r0, #0 ldr r3, _08027B60 @ =0x03005000 mov sl, r3 ldr r5, _08027B64 @ =0x086B4202 mov sb, r5 ldr r6, _08027B54 @ =0x020314E0 mov r8, r6 ldr r1, _08027B48 @ =0x00000626 mov ip, r1 _08027A9C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r6, r7, r0 ldrh r2, [r6] lsls r2, r2, #3 add r2, sl lsls r3, r4, #1 adds r3, r3, r4 mov r5, r8 ldr r0, [r5] add r0, ip movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r5, r3, #1 mov r1, r8 ldr r0, [r1] add r0, ip movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 adds r0, r0, r5 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r3, #2 mov r5, r8 ldr r0, [r5] add r0, ip movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, sl ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r5, _08027B68 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldr r0, _08027B6C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r6, [r1] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _08027A9C ldr r0, _08027B54 @ =0x020314E0 ldr r1, [r0] ldr r2, _08027B70 @ =0x0000026E adds r1, r1, r2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] b _08027CE8 .align 2, 0 _08027B48: .4byte 0x00000626 _08027B4C: .4byte 0x02032F20 _08027B50: .4byte 0x0869F5C8 _08027B54: .4byte 0x020314E0 _08027B58: .4byte 0x0000025A _08027B5C: .4byte 0x0000FFE2 _08027B60: .4byte 0x03005000 _08027B64: .4byte 0x086B4202 _08027B68: .4byte 0x000001FF _08027B6C: .4byte 0xFFFFFE00 _08027B70: .4byte 0x0000026E _08027B74: ldr r6, _08027CF8 @ =0x0000132C adds r0, r3, r6 ldr r2, [r0] movs r1, #0x10 ldrsh r0, [r2, r1] subs r0, #8 movs r6, #0x96 lsls r6, r6, #2 adds r1, r3, r6 movs r6, #0 ldrsh r1, [r1, r6] subs r4, r0, r1 movs r1, #0x12 ldrsh r0, [r2, r1] subs r0, #8 ldr r2, _08027CFC @ =0x0000025A adds r1, r3, r2 movs r6, #0 ldrsh r1, [r1, r6] subs r5, r0, r1 adds r0, r4, #0 muls r0, r4, r0 adds r1, r5, #0 muls r1, r5, r1 adds r0, r0, r1 cmp r0, #0x51 bgt _08027C38 adds r0, r3, #0 adds r0, #0x24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _08027BC4 adds r2, #4 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 ble _08027BD6 _08027BC4: cmp r1, #2 bne _08027C38 ldr r5, _08027D00 @ =0x0000025E adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 ble _08027C38 _08027BD6: ldr r4, _08027D04 @ =0x020314E0 ldr r1, [r4] ldr r6, _08027D08 @ =0x0000026B adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08027C38 ldr r0, _08027D0C @ =0x00002710 str r0, [r1, #0x3c] ldr r0, _08027D10 @ =0x02032F20 ldr r1, _08027D14 @ =0x0869F618 bl MPlayStart ldr r1, [r4] movs r2, #0 movs r0, #1 strb r0, [r1, #0x17] ldr r0, [r4] adds r1, r0, r6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldr r3, _08027D18 @ =0x0000071D adds r0, r0, r3 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r1, [r4] adds r1, r1, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08027D1C @ =gMain ldr r0, [r0, #0x44] adds r0, #0x80 ldr r0, [r0] strh r2, [r0] ldr r0, [r4] adds r2, r0, r6 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #3 bne _08027C38 movs r0, #0 strb r0, [r2] ldr r0, [r4] strb r1, [r0, #0x17] _08027C38: ldr r3, _08027D04 @ =0x020314E0 ldr r2, [r3] movs r5, #0x96 lsls r5, r5, #2 adds r0, r2, r5 adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 strh r0, [r7, #2] ldr r6, _08027CFC @ =0x0000025A adds r0, r2, r6 adds r2, #0x5a ldrh r0, [r0] ldrh r1, [r2] subs r0, r0, r1 subs r0, #8 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08027C70 ldr r0, _08027D20 @ =0x0000FFE2 strh r0, [r7, #4] _08027C70: movs r1, #4 ldrsh r0, [r7, r1] cmp r0, #0xc8 ble _08027C7C movs r0, #0xc8 strh r0, [r7, #4] _08027C7C: mov r2, r8 lsls r0, r2, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _08027C8A movs r5, #0xe mov r8, r5 _08027C8A: ldr r2, _08027D24 @ =0x040000D4 ldr r1, _08027D28 @ =0x086AD49C ldr r0, [r3] ldr r6, _08027D2C @ =0x0000025F adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 mov r3, r8 lsls r1, r3, #0x10 asrs r1, r1, #7 ldr r0, [r0] adds r0, r0, r1 str r0, [r2] ldr r0, _08027D30 @ =0x060116C0 str r0, [r2, #4] ldr r0, _08027D34 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, r7, #0 adds r6, #8 ldr r4, _08027D38 @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r5, #2 ldrsh r1, [r6, r5] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r5, _08027D3C @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08027D40 @ =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 r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _08027CE8: 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 _08027CF8: .4byte 0x0000132C _08027CFC: .4byte 0x0000025A _08027D00: .4byte 0x0000025E _08027D04: .4byte 0x020314E0 _08027D08: .4byte 0x0000026B _08027D0C: .4byte 0x00002710 _08027D10: .4byte 0x02032F20 _08027D14: .4byte 0x0869F618 _08027D18: .4byte 0x0000071D _08027D1C: .4byte gMain _08027D20: .4byte 0x0000FFE2 _08027D24: .4byte 0x040000D4 _08027D28: .4byte 0x086AD49C _08027D2C: .4byte 0x0000025F _08027D30: .4byte 0x060116C0 _08027D34: .4byte 0x80000100 _08027D38: .4byte 0x03005000 _08027D3C: .4byte 0x000001FF _08027D40: .4byte 0xFFFFFE00 thumb_func_start sub_27D44 sub_27D44: @ 0x08027D44 push {r4, r5, r6, lr} ldr r4, _08027DC8 @ =0x020314E0 ldr r0, [r4] ldr r1, _08027DCC @ =0x000005A5 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r4] ldr r2, _08027DD0 @ =0x000005A9 adds r0, r0, r2 strb r1, [r0] ldr r2, _08027DD4 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #0x48] movs r5, #0 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x30] strh r1, [r0] ldr r0, [r4] ldr r1, _08027DD8 @ =0x000005F2 adds r0, r0, r1 strb r5, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r2, _08027DDC @ =0x000006C4 adds r0, r0, r2 strb r5, [r0] bl sub_4D648 movs r2, #0 ldr r5, _08027DE0 @ =0x000006D3 movs r3, #0xd adds r6, r4, #0 _08027D8E: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r5 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08027D8E movs r2, #0 ldr r5, _08027DE4 @ =0x0000071D _08027DAA: ldr r3, [r6] ldr r1, _08027DE8 @ =0x00000723 adds r0, r3, r1 lsls r1, r2, #0x10 asrs r2, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r1, #0 cmp r2, r0 bge _08027DEC adds r0, r3, r5 adds r0, r0, r2 movs r1, #1 b _08027DF2 .align 2, 0 _08027DC8: .4byte 0x020314E0 _08027DCC: .4byte 0x000005A5 _08027DD0: .4byte 0x000005A9 _08027DD4: .4byte gMain _08027DD8: .4byte 0x000005F2 _08027DDC: .4byte 0x000006C4 _08027DE0: .4byte 0x000006D3 _08027DE4: .4byte 0x0000071D _08027DE8: .4byte 0x00000723 _08027DEC: adds r0, r3, r5 adds r0, r0, r2 movs r1, #0 _08027DF2: strb r1, [r0] movs r2, #0x80 lsls r2, r2, #9 adds r0, r4, r2 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08027DAA pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_27E08 sub_27E08: @ 0x08027E08 push {r4, r5, r6, r7, lr} ldr r3, _08027E9C @ =0x020314E0 ldr r0, [r3] movs r5, #0 strb r5, [r0, #0x17] ldr r0, [r3] movs r6, #0 strh r5, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r2, [r3] adds r4, r2, #0 adds r4, #0x6c movs r7, #0xe1 lsls r7, r7, #5 adds r0, r7, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r7, _08027EA0 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r5, [r4] ldr r0, _08027EA4 @ =0x000005A5 adds r2, r2, r0 strb r6, [r2] ldr r0, [r3] ldr r2, _08027EA8 @ =0x000005AA adds r1, r0, r2 strh r5, [r1] ldr r7, _08027EAC @ =0x000005A9 adds r0, r0, r7 strb r6, [r0] ldr r0, [r3] ldr r1, _08027EB0 @ =0x000006C6 adds r0, r0, r1 strb r6, [r0] ldr r0, [r3] ldr r2, _08027EB4 @ =0x000006C7 adds r0, r0, r2 strb r6, [r0] ldr r0, [r3] adds r7, #0x7c adds r0, r0, r7 strb r6, [r0] ldr r0, [r3] adds r2, #3 adds r1, r0, r2 strh r5, [r1] adds r7, #0xa7 adds r0, r0, r7 strb r6, [r0] ldr r0, [r3] ldr r1, _08027EB8 @ =0x0000072F adds r0, r0, r1 strb r6, [r0] ldr r0, [r3] adds r2, #0x67 adds r0, r0, r2 strb r6, [r0] ldr r1, [r3] ldr r7, _08027EBC @ =0x0000029A adds r0, r1, r7 ldrh r0, [r0] adds r5, r3, #0 cmp r0, #0 bne _08027EC8 ldr r0, _08027EC0 @ =0x00000724 adds r1, r1, r0 ldr r0, _08027EC4 @ =0x00001770 b _08027ECE .align 2, 0 _08027E9C: .4byte 0x020314E0 _08027EA0: .4byte 0x00000296 _08027EA4: .4byte 0x000005A5 _08027EA8: .4byte 0x000005AA _08027EAC: .4byte 0x000005A9 _08027EB0: .4byte 0x000006C6 _08027EB4: .4byte 0x000006C7 _08027EB8: .4byte 0x0000072F _08027EBC: .4byte 0x0000029A _08027EC0: .4byte 0x00000724 _08027EC4: .4byte 0x00001770 _08027EC8: ldr r2, _08027F6C @ =0x00000724 adds r1, r1, r2 ldr r0, _08027F70 @ =0x00001068 _08027ECE: strh r0, [r1] ldr r1, [r5] ldr r7, _08027F74 @ =0x0000029A adds r1, r1, r7 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r1, _08027F78 @ =0x040000D4 ldr r0, _08027F7C @ =0x081C0064 str r0, [r1] ldr r0, _08027F80 @ =0x05000180 str r0, [r1, #4] ldr r0, _08027F84 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 ldr r6, _08027F88 @ =gMain adds r4, r5, #0 ldr r3, _08027F8C @ =0x000006CD _08027EF4: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08027EF4 ldr r4, [r5] ldr r0, [r6, #0x4c] movs r1, #6 bl __umodsi3 movs r2, #0xd9 lsls r2, r2, #3 adds r4, r4, r2 strb r0, [r4] ldr r0, [r5] ldr r4, _08027F90 @ =0x000006C9 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r4 lsls r2, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _08027F64 adds r3, r5, #0 ldr r5, _08027F8C @ =0x000006CD _08027F42: ldr r0, [r3] asrs r1, r2, #0x10 adds r0, r0, r5 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, [r3] adds r0, r0, r4 lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _08027F42 _08027F64: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08027F6C: .4byte 0x00000724 _08027F70: .4byte 0x00001068 _08027F74: .4byte 0x0000029A _08027F78: .4byte 0x040000D4 _08027F7C: .4byte 0x081C0064 _08027F80: .4byte 0x05000180 _08027F84: .4byte 0x80000010 _08027F88: .4byte gMain _08027F8C: .4byte 0x000006CD _08027F90: .4byte 0x000006C9 thumb_func_start sub_27F94 sub_27F94: @ 0x08027F94 push {r4, r5, lr} ldr r4, _08027FEC @ =0x020314E0 ldr r1, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08027FD0 ldr r3, _08027FF0 @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bhi _08027FD0 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 bgt _08027FD0 bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #0xa strb r1, [r0, #0x17] _08027FD0: ldr r1, _08027FEC @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #0xc bls _08027FE2 b _080283FA _08027FE2: lsls r0, r0, #2 ldr r1, _08027FF4 @ =_08027FF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027FEC: .4byte 0x020314E0 _08027FF0: .4byte 0x00000296 _08027FF4: .4byte _08027FF8 _08027FF8: @ jump table .4byte _0802802C @ case 0 .4byte _08028040 @ case 1 .4byte _08028074 @ case 2 .4byte _08028094 @ case 3 .4byte _080280E8 @ case 4 .4byte _080281FC @ case 5 .4byte _08028214 @ case 6 .4byte _08028284 @ case 7 .4byte _0802828A @ case 8 .4byte _08028358 @ case 9 .4byte _08028388 @ case 10 .4byte _080283A0 @ case 11 .4byte _080283B4 @ case 12 _0802802C: bl sub_31F6C ldr r0, _0802803C @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802803C: .4byte 0x020314E0 _08028040: bl sub_3219C ldr r0, _0802806C @ =gMain ldrb r0, [r0, #2] cmp r0, #3 beq _08028060 ldr r0, _08028070 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #1 bl sub_52BB0 _08028060: ldr r0, _08028070 @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802806C: .4byte gMain _08028070: .4byte 0x020314E0 _08028074: bl sub_28AE0 ldr r2, _0802808C @ =0x020314E0 ldr r0, [r2] ldr r3, _08028090 @ =0x0000073D adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802808C: .4byte 0x020314E0 _08028090: .4byte 0x0000073D _08028094: movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r2, _080280D8 @ =0x020314E0 ldr r0, [r2] ldr r1, _080280DC @ =0x000006C5 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] ldr r3, _080280E0 @ =0x00000602 adds r0, r0, r3 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] movs r3, #0 ldr r5, _080280E4 @ =0x000006D3 movs r4, #0xf _080280BE: ldr r1, [r2] lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r1, r1, r5 adds r1, r1, r0 strb r4, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _080280BE b _080283FA .align 2, 0 _080280D8: .4byte 0x020314E0 _080280DC: .4byte 0x000006C5 _080280E0: .4byte 0x00000602 _080280E4: .4byte 0x000006D3 _080280E8: ldr r4, _08028114 @ =gMain ldrb r1, [r4, #0xf] adds r3, r1, #0 cmp r3, #0 beq _080280F4 b _080281F6 _080280F4: ldrb r0, [r4, #4] cmp r0, #0 bne _08028124 ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x5e beq _0802812C cmp r0, #0x5d beq _08028136 cmp r0, #0x49 bne _08028118 movs r0, #0x1d bl m4aSongNumStart b _080281F6 .align 2, 0 _08028114: .4byte gMain _08028118: cmp r0, #0x10 bhi _080281F6 movs r0, #0xa5 lsls r0, r0, #2 adds r1, r2, r0 b _080281EA _08028124: ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x44 bne _08028132 _0802812C: bl m4aMPlayAllStop b _080281F6 _08028132: cmp r0, #0x43 bne _080281D4 _08028136: movs r0, #1 orrs r0, r1 strb r0, [r4, #0xf] adds r0, r2, #0 adds r0, #0xea strh r3, [r0] adds r1, r2, #0 adds r1, #0xec movs r0, #0x78 strh r0, [r1] adds r0, r2, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r1, #6 movs r0, #2 strb r0, [r1] ldr r0, [r5] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0xfb strb r1, [r0] ldr r2, [r5] adds r1, r2, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _080281B4 @ =0x0000F63C strh r0, [r1] subs r1, #6 movs r0, #0x32 strh r0, [r1] adds r0, r2, #0 adds r0, #0xf8 strh r3, [r0] ldr r1, _080281B8 @ =0x040000D4 ldr r0, _080281BC @ =0x086ACEF8 ldr r0, [r0, #8] str r0, [r1] ldr r0, _080281C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _080281C4 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080281C8 @ =0x086ACF18 ldr r0, [r0, #8] str r0, [r1] ldr r0, _080281CC @ =0x050003C0 str r0, [r1, #4] ldr r0, _080281D0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r4, #0x38] movs r0, #0xce strh r0, [r4, #0x38] b _080281F6 .align 2, 0 _080281B4: .4byte 0x0000F63C _080281B8: .4byte 0x040000D4 _080281BC: .4byte 0x086ACEF8 _080281C0: .4byte 0x06015800 _080281C4: .4byte 0x80001200 _080281C8: .4byte 0x086ACF18 _080281CC: .4byte 0x050003C0 _080281D0: .4byte 0x80000010 _080281D4: cmp r0, #0x2f bne _080281E0 movs r0, #0x21 bl m4aSongNumStart b _080281F6 _080281E0: cmp r0, #0 bne _080281F6 movs r3, #0xa5 lsls r3, r3, #2 adds r1, r2, r3 _080281EA: movs r0, #2 strb r0, [r1] ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] _080281F6: bl sub_29334 b _080283FA _080281FC: ldr r0, [r5] ldr r1, _08028210 @ =0x00000729 adds r0, r0, r1 movs r4, #0 movs r1, #1 strb r1, [r0] bl sub_29334 b _08028262 .align 2, 0 _08028210: .4byte 0x00000729 _08028214: ldr r0, [r5] ldr r2, _0802822C @ =0x00000729 adds r0, r0, r2 movs r4, #0 strb r4, [r0] ldr r1, [r5] ldrh r0, [r1, #0x18] cmp r0, #0 bne _08028230 adds r0, #1 strh r0, [r1, #0x18] b _080283FA .align 2, 0 _0802822C: .4byte 0x00000729 _08028230: adds r1, #0xe4 movs r0, #0xa strb r0, [r1] ldr r1, _08028268 @ =0x040000D4 ldr r0, _0802826C @ =0x0839C78C str r0, [r1] ldr r0, _08028270 @ =0x06015800 str r0, [r1, #4] ldr r0, _08028274 @ =0x80000A00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08028278 @ =0x0839DBAC str r0, [r1] ldr r0, _0802827C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08028280 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xa7 bl m4aSongNumStart ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] _08028262: ldr r0, [r5] strh r4, [r0, #0x18] b _080283FA .align 2, 0 _08028268: .4byte 0x040000D4 _0802826C: .4byte 0x0839C78C _08028270: .4byte 0x06015800 _08028274: .4byte 0x80000A00 _08028278: .4byte 0x0839DBAC _0802827C: .4byte 0x050003C0 _08028280: .4byte 0x80000010 _08028284: bl sub_293D8 b _080283FA _0802828A: bl sub_29624 ldr r0, _0802832C @ =0x040000D4 ldr r1, _08028330 @ =0x086ACF80 str r1, [r0] ldr r1, _08028334 @ =0x050003E0 str r1, [r0, #4] ldr r2, _08028338 @ =0x80000010 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0802833C @ =0x020306D0 str r1, [r0] ldr r1, _08028340 @ =0x050003A0 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] ldr r4, _08028344 @ =0x020314E0 ldr r1, [r4] movs r3, #0xa2 lsls r3, r3, #2 adds r2, r1, r3 movs r3, #0 movs r5, #0 movs r0, #0x76 strh r0, [r2] ldr r0, _08028348 @ =0x0000028A adds r2, r1, r0 movs r0, #0x84 lsls r0, r0, #1 strh r0, [r2] movs r2, #0xe4 lsls r2, r2, #3 adds r1, r1, r2 strb r3, [r1] ldr r0, [r4] ldr r3, _0802834C @ =0x0000071D adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r0, [r4] subs r2, #2 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] adds r3, #2 adds r0, r0, r3 strb r1, [r0] bl sub_28C90 ldr r0, [r4] ldr r1, _08028350 @ =0x000005F2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, [r4] movs r3, #0xa7 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0x8c strh r0, [r2] ldr r2, _08028354 @ =0x086A3700 movs r0, #0xb3 lsls r0, r0, #3 adds r1, r1, r0 ldrh r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC ldr r0, [r4] strh r5, [r0, #0x18] b _080283FA .align 2, 0 _0802832C: .4byte 0x040000D4 _08028330: .4byte 0x086ACF80 _08028334: .4byte 0x050003E0 _08028338: .4byte 0x80000010 _0802833C: .4byte 0x020306D0 _08028340: .4byte 0x050003A0 _08028344: .4byte 0x020314E0 _08028348: .4byte 0x0000028A _0802834C: .4byte 0x0000071D _08028350: .4byte 0x000005F2 _08028354: .4byte 0x086A3700 _08028358: ldr r1, [r5] ldrh r2, [r1, #0x18] cmp r2, #0 bne _0802836C adds r0, r1, #0 adds r0, #0xec strh r2, [r0] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] _0802836C: bl sub_28C90 ldr r0, [r5] ldr r2, _08028384 @ =0x000005AA adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _080283FA subs r0, #1 strh r0, [r1] b _080283FA .align 2, 0 _08028384: .4byte 0x000005AA _08028388: bl sub_28E2C bl sub_2530C ldr r0, _0802839C @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802839C: .4byte 0x020314E0 _080283A0: bl sub_27D44 ldr r0, _080283B0 @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _080283B0: .4byte 0x020314E0 _080283B4: ldr r0, [r5] ldr r3, _080283CC @ =0x00000729 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r1, [r5] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080283D0 subs r0, #1 strh r0, [r1, #0x18] b _080283FA .align 2, 0 _080283CC: .4byte 0x00000729 _080283D0: ldr r2, _080283E8 @ =0x0000071F adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080283EC movs r0, #3 bl sub_19B64 b _080283F2 .align 2, 0 _080283E8: .4byte 0x0000071F _080283EC: movs r0, #1 bl sub_19B64 _080283F2: ldr r0, _08028400 @ =0x020314E0 ldr r1, [r0] movs r0, #0 _080283F8: strb r0, [r1, #0x17] _080283FA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08028400: .4byte 0x020314E0 thumb_func_start sub_28404 sub_28404: @ 0x08028404 push {r4, r5, r6, r7, lr} ldr r5, _08028500 @ =0x020314E0 ldr r0, [r5] movs r3, #0 strb r3, [r0, #0x17] ldr r0, [r5] movs r6, #0 strh r3, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r2, [r5] adds r4, r2, #0 adds r4, #0x6c movs r7, #0xe1 lsls r7, r7, #3 adds r0, r7, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r7, _08028504 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r3, [r4] ldr r0, _08028508 @ =0x000005A5 adds r2, r2, r0 strb r6, [r2] ldr r0, [r5] ldr r2, _0802850C @ =0x000005AA adds r1, r0, r2 strh r3, [r1] ldr r7, _08028510 @ =0x000005A9 adds r0, r0, r7 strb r6, [r0] ldr r2, [r5] adds r0, r2, #0 adds r0, #0x7c strh r3, [r0] adds r1, r2, #0 adds r1, #0x80 movs r0, #0xe1 lsls r0, r0, #2 strh r0, [r1] adds r1, #2 ldr r0, _08028514 @ =0x0000FA88 strh r0, [r1] adds r0, r2, #0 adds r0, #0x73 strb r6, [r0] ldr r1, [r5] adds r0, r1, #0 adds r0, #0xbc strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] ldr r2, _08028518 @ =0x0000072F adds r0, r1, r2 strb r6, [r0] ldr r0, [r5] ldr r7, _0802851C @ =0x00000731 adds r0, r0, r7 strb r6, [r0] ldr r2, [r5] adds r0, r2, #0 adds r0, #0x74 strh r3, [r0] adds r1, r2, #0 adds r1, #0x76 movs r0, #0xa strh r0, [r1] adds r1, #2 movs r0, #0x14 strh r0, [r1] adds r1, #2 movs r0, #0x1e strh r0, [r1] ldr r0, _08028520 @ =0x00000724 adds r1, r2, r0 ldr r0, _08028524 @ =0x00000CA8 strh r0, [r1] ldr r1, _08028528 @ =0x00000714 adds r0, r2, r1 strb r6, [r0] ldr r0, [r5] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0802852C @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] subs r7, #0x1f adds r0, r0, r7 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08028530 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, _08028534 @ =0x040000D4 ldr r0, _08028538 @ =0x081C0064 str r0, [r1] ldr r0, _0802853C @ =0x05000180 str r0, [r1, #4] ldr r0, _08028540 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028500: .4byte 0x020314E0 _08028504: .4byte 0x00000296 _08028508: .4byte 0x000005A5 _0802850C: .4byte 0x000005AA _08028510: .4byte 0x000005A9 _08028514: .4byte 0x0000FA88 _08028518: .4byte 0x0000072F _0802851C: .4byte 0x00000731 _08028520: .4byte 0x00000724 _08028524: .4byte 0x00000CA8 _08028528: .4byte 0x00000714 _0802852C: .4byte 0x00000711 _08028530: .4byte 0x00000713 _08028534: .4byte 0x040000D4 _08028538: .4byte 0x081C0064 _0802853C: .4byte 0x05000180 _08028540: .4byte 0x80000010 thumb_func_start sub_28544 sub_28544: @ 0x08028544 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r1, _08028568 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r1 cmp r0, #6 bls _0802855C b _08028AD2 _0802855C: lsls r0, r0, #2 ldr r1, _0802856C @ =_08028570 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028568: .4byte 0x020314E0 _0802856C: .4byte _08028570 _08028570: @ jump table .4byte _0802858C @ case 0 .4byte _080285A8 @ case 1 .4byte _080286C8 @ case 2 .4byte _080287E0 @ case 3 .4byte _08028A2C @ case 4 .4byte _08028A60 @ case 5 .4byte _08028A88 @ case 6 _0802858C: mov r1, r8 ldr r0, [r1] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0xc8 strh r1, [r0] bl sub_28AE0 mov r3, r8 ldr r1, [r3] ldrb r0, [r1, #0x17] adds r0, #1 b _08028AD0 _080285A8: ldr r4, _080285CC @ =gMain ldrb r1, [r4, #0xf] adds r3, r1, #0 cmp r3, #0 bne _0802869E ldrb r0, [r4, #4] cmp r0, #0 bne _080285D0 mov r5, r8 ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x5e beq _080285DA cmp r0, #0x5d beq _080285E4 cmp r0, #0x49 beq _08028688 b _08028690 .align 2, 0 _080285CC: .4byte gMain _080285D0: mov r5, r8 ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x44 bne _080285E0 _080285DA: bl m4aMPlayAllStop b _08028AD2 _080285E0: cmp r0, #0x43 bne _08028684 _080285E4: movs r0, #1 orrs r0, r1 strb r0, [r4, #0xf] adds r0, r2, #0 adds r0, #0xea strh r3, [r0] adds r1, r2, #0 adds r1, #0xec movs r0, #0x78 strh r0, [r1] adds r0, r2, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r1, #6 movs r0, #5 strb r0, [r1] mov r1, r8 ldr r0, [r1] adds r0, #0xfa movs r1, #1 strb r1, [r0] mov r2, r8 ldr r0, [r2] adds r0, #0xfb strb r1, [r0] ldr r2, [r2] adds r1, r2, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _08028664 @ =0x0000F63C strh r0, [r1] subs r1, #6 movs r0, #0x32 strh r0, [r1] adds r0, r2, #0 adds r0, #0xf8 strh r3, [r0] ldr r1, _08028668 @ =0x040000D4 ldr r0, _0802866C @ =0x086ACEF8 ldr r0, [r0, #0x14] str r0, [r1] ldr r0, _08028670 @ =0x06015800 str r0, [r1, #4] ldr r0, _08028674 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08028678 @ =0x086ACF18 ldr r0, [r0, #0x14] str r0, [r1] ldr r0, _0802867C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08028680 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r4, #0x38] movs r0, #0xce strh r0, [r4, #0x38] b _08028AD2 .align 2, 0 _08028664: .4byte 0x0000F63C _08028668: .4byte 0x040000D4 _0802866C: .4byte 0x086ACEF8 _08028670: .4byte 0x06015800 _08028674: .4byte 0x80001200 _08028678: .4byte 0x086ACF18 _0802867C: .4byte 0x050003C0 _08028680: .4byte 0x80000010 _08028684: cmp r0, #0x2f bne _08028690 _08028688: movs r0, #0x2f bl m4aSongNumStart b _08028AD2 _08028690: cmp r0, #0x28 beq _08028696 b _08028AD2 _08028696: ldrb r0, [r2, #0x17] adds r0, #1 strb r0, [r2, #0x17] b _08028AD2 _0802869E: movs r0, #1 ands r0, r1 cmp r0, #0 bne _080286A8 b _08028AD2 _080286A8: mov r3, r8 ldr r1, [r3] adds r0, r1, #0 adds r0, #0xf0 ldrh r0, [r0] cmp r0, #1 beq _080286B8 b _08028AD2 _080286B8: ldr r4, _080286C4 @ =0x000006C4 adds r1, r1, r4 movs r0, #3 strb r0, [r1] b _08028AD2 .align 2, 0 _080286C4: .4byte 0x000006C4 _080286C8: ldr r2, _080287A4 @ =0x040000D4 ldr r0, _080287A8 @ =0x086ACF80 str r0, [r2] ldr r0, _080287AC @ =0x050003E0 str r0, [r2, #4] ldr r1, _080287B0 @ =0x80000010 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, _080287B4 @ =0x020306D0 str r0, [r2] ldr r0, _080287B8 @ =0x050003A0 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] mov r5, r8 ldr r0, [r5] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 movs r4, #0 strb r4, [r0] ldr r0, [r5] ldr r3, _080287BC @ =0x0000071D adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r0, [r5] ldr r5, _080287C0 @ =0x0000071E adds r0, r0, r5 strb r1, [r0] mov r3, r8 ldr r0, [r3] adds r5, #1 adds r0, r0, r5 strb r1, [r0] ldr r0, [r3] ldr r1, _080287C4 @ =0x000005F2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, _080287C8 @ =gMain ldr r0, [r0, #0x44] adds r0, #0x84 ldr r0, [r0] movs r3, #0 strh r1, [r0] ldr r0, _080287CC @ =0x02030760 str r0, [r2] ldr r0, _080287D0 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _080287D4 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] mov r5, r8 ldr r2, [r5] movs r0, #0x28 strh r0, [r2, #0x28] adds r1, r2, #0 adds r1, #0x80 movs r0, #0xe1 lsls r0, r0, #2 strh r0, [r1] adds r1, #2 ldr r0, _080287D8 @ =0x0000FA88 strh r0, [r1] adds r0, r2, #0 adds r0, #0x73 strb r3, [r0] ldr r3, [r5] ldr r2, _080287DC @ =0x086AE124 adds r5, r3, #0 adds r5, #0x73 movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0xbc strh r1, [r0] movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] adds r1, r3, #0 adds r1, #0xbe strh r0, [r1] strh r4, [r3, #0x18] movs r0, #0xa2 lsls r0, r0, #1 bl m4aSongNumStart mov r0, r8 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] mov r1, r8 ldr r2, [r1] adds r0, r2, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, #0x40 strh r1, [r0] subs r0, #0x3e ldrh r1, [r0] adds r0, #0x40 strh r1, [r0] b _08028AD2 .align 2, 0 _080287A4: .4byte 0x040000D4 _080287A8: .4byte 0x086ACF80 _080287AC: .4byte 0x050003E0 _080287B0: .4byte 0x80000010 _080287B4: .4byte 0x020306D0 _080287B8: .4byte 0x050003A0 _080287BC: .4byte 0x0000071D _080287C0: .4byte 0x0000071E _080287C4: .4byte 0x000005F2 _080287C8: .4byte gMain _080287CC: .4byte 0x02030760 _080287D0: .4byte 0x06010CA0 _080287D4: .4byte 0x80000240 _080287D8: .4byte 0x0000FA88 _080287DC: .4byte 0x086AE124 _080287E0: ldr r4, _08028824 @ =0x020314E0 mov r8, r4 ldr r4, [r4] ldr r5, _08028828 @ =0x000005A4 adds r0, r4, r5 ldrb r0, [r0] cmp r0, #2 bne _08028830 adds r0, r4, #0 adds r0, #0xc0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x76 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] adds r0, r4, #0 adds r0, #0xc2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 movs r5, #0x88 lsls r5, r5, #1 adds r0, r0, r5 ldr r2, _0802882C @ =0x0000028A adds r1, r4, r2 strh r0, [r1] b _08028974 .align 2, 0 _08028824: .4byte 0x020314E0 _08028828: .4byte 0x000005A4 _0802882C: .4byte 0x0000028A _08028830: adds r0, r4, #0 adds r0, #0xbc movs r5, #0 ldrsh r1, [r0, r5] subs r0, #0x3c movs r5, #0 ldrsh r0, [r0, r5] subs r2, r1, r0 adds r0, r4, #0 adds r0, #0xbe movs r5, #0 ldrsh r1, [r0, r5] subs r0, #0x3c movs r4, #0 ldrsh r0, [r0, r4] subs r3, r1, r0 adds r4, r2, #0 muls r4, r2, r4 adds r0, r3, #0 muls r0, r3, r0 adds r4, r4, r0 lsls r0, r2, #0x10 asrs r0, r0, #0x10 rsbs r1, r3, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0802888C @ =0x000009C3 cmp r4, r0 bgt _080288E8 movs r6, #0 movs r7, #0 mov r5, r8 ldr r2, [r5] adds r1, r2, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0xc7 bhi _08028890 adds r0, #1 strh r0, [r1] b _08028918 .align 2, 0 _0802888C: .4byte 0x000009C3 _08028890: movs r0, #0 strh r0, [r1] adds r1, r2, #0 adds r1, #0x73 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xa bgt _080288A6 adds r0, r2, #1 b _080288A8 _080288A6: movs r0, #0 _080288A8: strb r0, [r1] movs r0, #0xa2 lsls r0, r0, #1 bl m4aSongNumStart ldr r0, _080288E0 @ =0x020314E0 ldr r3, [r0] ldr r2, _080288E4 @ =0x086AE124 adds r4, r3, #0 adds r4, #0x73 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0xbc strh r1, [r0] movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r1, [r0, #2] adds r0, r3, #0 adds r0, #0xbe strh r1, [r0] b _08028918 .align 2, 0 _080288E0: .4byte 0x020314E0 _080288E4: .4byte 0x086AE124 _080288E8: adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r4, _08028A0C @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 adds r6, r0, #0 adds r0, r5, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r4, #0 bl __divsi3 adds r7, r0, #0 _08028918: ldr r5, _08028A10 @ =0x020314E0 ldr r0, [r5] mov r8, r0 mov r4, r8 adds r4, #0x80 ldrh r0, [r4] adds r0, r6, r0 strh r0, [r4] mov r1, r8 adds r1, #0x82 ldrh r0, [r1] adds r0, r7, r0 strh r0, [r1] mov r1, r8 ldrh r0, [r1, #0x18] movs r1, #0x50 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0x50 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldrh r2, [r4] mov r1, r8 adds r1, #0xc0 strh r2, [r1] bl sub_C24 adds r1, r0, #0 ldr r4, [r5] adds r5, r4, #0 adds r5, #0x82 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 ldr r1, _08028A0C @ =0x00004E20 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 adds r4, #0xc2 strh r1, [r4] _08028974: ldr r0, _08028A10 @ =0x020314E0 ldr r1, [r0] ldrh r2, [r1, #0x18] ldr r3, _08028A14 @ =0x000001F3 mov r8, r0 cmp r2, r3 bhi _08028994 movs r0, #0x28 strh r0, [r1, #0x28] cmp r2, r3 bne _08028994 movs r2, #0xa5 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #2 strb r0, [r1] _08028994: mov r3, r8 ldr r0, [r3] ldrh r1, [r0, #0x18] adds r1, #1 strh r1, [r0, #0x18] bl sub_28EA0 mov r4, r8 ldr r0, [r4] ldr r5, _08028A18 @ =0x000005AA adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _080289B4 subs r0, #1 strh r0, [r1] _080289B4: mov r0, r8 ldr r1, [r0] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080289CA b _08028AD2 _080289CA: ldr r3, _08028A1C @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bls _080289D6 b _08028AD2 _080289D6: movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #4 ble _080289E0 b _08028AD2 _080289E0: bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart mov r4, r8 ldr r1, [r4] movs r0, #4 strb r0, [r1, #0x17] ldr r0, [r4] movs r1, #0x96 strh r1, [r0, #0x18] ldr r5, _08028A20 @ =0x000005F2 adds r0, r0, r5 movs r1, #0 strb r1, [r0] ldr r0, _08028A24 @ =0x02032F20 ldr r1, _08028A28 @ =0x0869F58C bl MPlayStart b _08028AD2 .align 2, 0 _08028A0C: .4byte 0x00004E20 _08028A10: .4byte 0x020314E0 _08028A14: .4byte 0x000001F3 _08028A18: .4byte 0x000005AA _08028A1C: .4byte 0x00000296 _08028A20: .4byte 0x000005F2 _08028A24: .4byte 0x02032F20 _08028A28: .4byte 0x0869F58C _08028A2C: mov r0, r8 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0 beq _08028A3C subs r0, #1 strh r0, [r1, #0x18] b _08028A40 _08028A3C: movs r0, #5 strb r0, [r1, #0x17] _08028A40: bl sub_28EA0 ldr r0, _08028A58 @ =0x020314E0 ldr r0, [r0] ldr r2, _08028A5C @ =0x000005AA adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08028AD2 subs r0, #1 strh r0, [r1] b _08028AD2 .align 2, 0 _08028A58: .4byte 0x020314E0 _08028A5C: .4byte 0x000005AA _08028A60: bl sub_28EA0 bl sub_292A0 bl sub_27D44 ldr r2, _08028A84 @ =0x020314E0 ldr r0, [r2] adds r0, #0x72 movs r3, #0 movs r1, #0xf0 strb r1, [r0] ldr r1, [r2] movs r0, #6 strb r0, [r1, #0x17] ldr r0, [r2] strh r3, [r0, #0x18] b _08028AD2 .align 2, 0 _08028A84: .4byte 0x020314E0 _08028A88: mov r3, r8 ldr r0, [r3] ldr r4, _08028AA4 @ =0x00000729 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0 beq _08028AA8 subs r0, #1 strh r0, [r1, #0x18] b _08028AD2 .align 2, 0 _08028AA4: .4byte 0x00000729 _08028AA8: ldr r5, _08028AC0 @ =0x0000071F adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08028AC4 movs r0, #3 bl sub_19B64 b _08028ACA .align 2, 0 _08028AC0: .4byte 0x0000071F _08028AC4: movs r0, #1 bl sub_19B64 _08028ACA: ldr r0, _08028ADC @ =0x020314E0 ldr r1, [r0] movs r0, #0 _08028AD0: strb r0, [r1, #0x17] _08028AD2: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028ADC: .4byte 0x020314E0 thumb_func_start sub_28AE0 sub_28AE0: @ 0x08028AE0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 ldr r2, _08028BD4 @ =0x086A3700 ldr r0, _08028BD8 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 movs r7, #0 ldr r6, _08028BDC @ =0x086BB6F4 add r3, sp, #0xc mov r8, r3 ldr r4, _08028BE0 @ =0x02030760 mov sl, r4 ldr r1, _08028BE4 @ =0x020306D0 mov sb, r1 ldrb r5, [r0, #0x11] adds r0, r5, #0 movs r1, #5 bl __divsi3 adds r4, r0, #0 adds r0, r5, #0 movs r1, #5 bl __modsi3 lsls r4, r4, #0x10 asrs r4, r4, #0xe adds r6, r4, r6 lsls r0, r0, #0x10 asrs r5, r0, #0x10 ldr r6, [r6] mov ip, r6 ldr r3, _08028BE8 @ =0x086B15B4 adds r4, r4, r3 ldr r6, [r4] _08028B3A: lsls r3, r7, #0x10 asrs r3, r3, #0x10 lsls r2, r3, #2 mov r0, sp adds r4, r0, r2 lsls r1, r5, #1 adds r1, r1, r5 adds r1, r3, r1 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 add r0, ip str r0, [r4] mov r1, r8 adds r0, r1, r2 adds r2, r2, r3 adds r2, r2, r5 lsls r2, r2, #5 adds r2, r6, r2 str r2, [r0] adds r3, #1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08028B3A movs r7, #0 ldr r3, _08028BEC @ =0x040000D4 _08028B72: lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #2 mov r4, sp adds r0, r4, r2 ldr r0, [r0] str r0, [r3] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 add r0, sl str r0, [r3, #4] ldr r0, _08028BF0 @ =0x80000240 str r0, [r3, #8] ldr r0, [r3, #8] add r2, r8 ldr r0, [r2] str r0, [r3] lsls r0, r1, #5 add r0, sb str r0, [r3, #4] ldr r2, _08028BF4 @ =0x80000010 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r7, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _08028B72 ldr r0, _08028BEC @ =0x040000D4 ldr r3, _08028BE8 @ =0x086B15B4 ldr r1, [r3] movs r4, #0xf0 lsls r4, r4, #1 adds r1, r1, r4 str r1, [r0] ldr r1, _08028BF8 @ =0x02030730 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] add sp, #0x18 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 _08028BD4: .4byte 0x086A3700 _08028BD8: .4byte 0x020314E0 _08028BDC: .4byte 0x086BB6F4 _08028BE0: .4byte 0x02030760 _08028BE4: .4byte 0x020306D0 _08028BE8: .4byte 0x086B15B4 _08028BEC: .4byte 0x040000D4 _08028BF0: .4byte 0x80000240 _08028BF4: .4byte 0x80000010 _08028BF8: .4byte 0x02030730 thumb_func_start sub_28BFC sub_28BFC: @ 0x08028BFC push {r4, r5, r6, lr} ldr r2, _08028C6C @ =0x086A3700 ldr r0, _08028C70 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldr r5, _08028C74 @ =gMonHatchSpriteGroupGfx ldrb r6, [r0, #0x12] adds r0, r6, #0 movs r1, #6 bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x10 asrs r4, r4, #0xe adds r5, r4, r5 adds r0, r6, #0 movs r1, #6 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 adds r1, r1, r0 lsls r1, r1, #3 subs r1, r1, r0 lsls r1, r1, #5 ldr r2, [r5] adds r2, r2, r1 ldr r1, _08028C78 @ =gMonHatchSpriteGroupPals adds r4, r4, r1 lsls r0, r0, #5 ldr r3, [r4] adds r3, r3, r0 ldr r0, _08028C7C @ =0x040000D4 str r2, [r0] ldr r1, _08028C80 @ =0x0202C7A0 str r1, [r0, #4] ldr r1, _08028C84 @ =0x80000870 str r1, [r0, #8] ldr r1, [r0, #8] str r3, [r0] ldr r1, _08028C88 @ =0x020315D0 str r1, [r0, #4] ldr r1, _08028C8C @ =0x80000010 str r1, [r0, #8] ldr r0, [r0, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08028C6C: .4byte 0x086A3700 _08028C70: .4byte 0x020314E0 _08028C74: .4byte gMonHatchSpriteGroupGfx _08028C78: .4byte gMonHatchSpriteGroupPals _08028C7C: .4byte 0x040000D4 _08028C80: .4byte 0x0202C7A0 _08028C84: .4byte 0x80000870 _08028C88: .4byte 0x020315D0 _08028C8C: .4byte 0x80000010 thumb_func_start sub_28C90 sub_28C90: @ 0x08028C90 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _08028D30 @ =gMain ldr r0, [r4, #0x50] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, [r4, #0x44] adds r0, #0x84 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _08028CBA b _08028E02 _08028CBA: ldr r3, _08028D34 @ =0x020314E0 ldr r4, [r3] adds r1, r4, #0 adds r1, #0xc4 movs r2, #0x60 movs r0, #0x60 strh r0, [r1] adds r0, r4, #0 adds r0, #0xc6 movs r1, #0x90 lsls r1, r1, #1 strh r1, [r0] subs r0, #0x6e ldrh r0, [r0] subs r2, r2, r0 strh r2, [r6, #2] adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #4] ldr r1, _08028D38 @ =0x000005A9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #4 bls _08028D50 cmp r0, #0x14 beq _08028CF6 cmp r0, #0xc8 bne _08028D06 _08028CF6: ldr r1, _08028D3C @ =0x040000D4 ldr r0, _08028D40 @ =0x02031060 str r0, [r1] ldr r0, _08028D44 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028D48 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028D06: ldr r0, [r3] ldr r2, _08028D38 @ =0x000005A9 adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0x18 bne _08028D22 ldr r1, _08028D3C @ =0x040000D4 ldr r0, _08028D4C @ =0x02030760 str r0, [r1] ldr r0, _08028D44 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028D48 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028D22: ldr r1, [r3] adds r1, r1, r2 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _08028D78 .align 2, 0 _08028D30: .4byte gMain _08028D34: .4byte 0x020314E0 _08028D38: .4byte 0x000005A9 _08028D3C: .4byte 0x040000D4 _08028D40: .4byte 0x02031060 _08028D44: .4byte 0x06010CA0 _08028D48: .4byte 0x80000240 _08028D4C: .4byte 0x02030760 _08028D50: movs r2, #0xde lsls r2, r2, #1 adds r0, r4, r2 ldrh r0, [r0] cmp r0, #5 bne _08028D78 ldr r2, _08028E10 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08028E14 @ =0x02030760 adds r0, r0, r1 str r0, [r2] ldr r0, _08028E18 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _08028E1C @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] _08028D78: ldr r0, [r3] movs r1, #0xb5 lsls r1, r1, #3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #1 cmp r0, #0xc bgt _08028D8E movs r1, #2 _08028D8E: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xc7 ble _08028D9A movs r0, #0xc8 strh r0, [r6, #4] _08028D9A: movs r0, #0 ldr r7, _08028E20 @ =0x03005000 ldr r2, _08028E24 @ =0xFFFFFE00 mov sb, r2 lsls r1, r1, #2 mov ip, r1 movs r1, #0xd rsbs r1, r1, #0 mov r8, r1 _08028DAC: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08028E28 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r3, #4] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #5] mov r0, r8 ands r0, r2 mov r2, ip orrs r0, r2 strb r0, [r1, #5] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _08028DAC _08028E02: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028E10: .4byte 0x040000D4 _08028E14: .4byte 0x02030760 _08028E18: .4byte 0x06010CA0 _08028E1C: .4byte 0x80000240 _08028E20: .4byte 0x03005000 _08028E24: .4byte 0xFFFFFE00 _08028E28: .4byte 0x000001FF thumb_func_start sub_28E2C sub_28E2C: @ 0x08028E2C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08028E94 @ =gMain ldr r1, [r0, #0x44] adds r1, #0x84 ldr r5, [r1] ldrh r1, [r5] mov r8, r0 cmp r1, #0 beq _08028E7C movs r0, #0 ldr r6, _08028E98 @ =0x03005000 ldr r1, _08028E9C @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _08028E4C: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r4, r2, #3 adds r4, #8 adds r4, r5, r4 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _08028E4C _08028E7C: mov r1, r8 ldr r0, [r1, #0x44] adds r0, #0x84 ldr r1, [r0] movs r0, #0 strh r0, [r1] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028E94: .4byte gMain _08028E98: .4byte 0x03005000 _08028E9C: .4byte 0xFFFFFE00 thumb_func_start sub_28EA0 sub_28EA0: @ 0x08028EA0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, _08028F64 @ =gMain ldr r0, [r4, #0x50] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 ldr r0, [r4, #0x44] adds r0, #0x84 ldr r7, [r0] ldrh r0, [r7] ldr r1, _08028F68 @ =0x020314E0 mov sl, r1 cmp r0, #0 bne _08028ED4 b _080290C4 _08028ED4: ldr r6, [r1] adds r4, r6, #0 adds r4, #0xc0 movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 adds r0, #0x60 adds r1, r6, #0 adds r1, #0xc4 strh r0, [r1] movs r0, #0xc2 adds r0, r0, r6 mov r8, r0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 movs r2, #0x90 lsls r2, r2, #1 adds r5, r2, #0 adds r0, r0, r5 adds r1, r6, #0 adds r1, #0xc6 strh r0, [r1] movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r0, #0x60 adds r1, r6, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] mov r2, r8 movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 adds r0, r0, r5 adds r1, r6, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] movs r0, #0x17 ldrsb r0, [r6, r0] cmp r0, #3 ble _08028F7A ldrh r0, [r6, #0x18] cmp r0, #0x59 bls _08028F74 adds r1, r0, #0 movs r0, #0x96 subs r0, r0, r1 cmp r0, #0 bge _08028F52 adds r0, #3 _08028F52: lsls r1, r0, #0xe ldr r2, _08028F6C @ =0x040000D4 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08028F70 @ =0x0844AA0C b _08028FFC .align 2, 0 _08028F64: .4byte gMain _08028F68: .4byte 0x020314E0 _08028F6C: .4byte 0x040000D4 _08028F70: .4byte 0x0844AA0C _08028F74: movs r0, #0xbe strh r0, [r7, #4] b _0802900A _08028F7A: ldr r2, _08028FC8 @ =0x000005A9 adds r0, r6, r2 ldrb r0, [r0] cmp r0, #4 bls _08028FE0 cmp r0, #0x14 beq _08028F8C cmp r0, #0xc8 bne _08028F9C _08028F8C: ldr r1, _08028FCC @ =0x040000D4 ldr r0, _08028FD0 @ =0x02031060 str r0, [r1] ldr r0, _08028FD4 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028FD8 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028F9C: mov r6, sl ldr r0, [r6] ldr r2, _08028FC8 @ =0x000005A9 adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0x18 bne _08028FBA ldr r1, _08028FCC @ =0x040000D4 ldr r0, _08028FDC @ =0x02030760 str r0, [r1] ldr r0, _08028FD4 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028FD8 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028FBA: mov r0, sl ldr r1, [r0] adds r1, r1, r2 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0802900A .align 2, 0 _08028FC8: .4byte 0x000005A9 _08028FCC: .4byte 0x040000D4 _08028FD0: .4byte 0x02031060 _08028FD4: .4byte 0x06010CA0 _08028FD8: .4byte 0x80000240 _08028FDC: .4byte 0x02030760 _08028FE0: movs r1, #0xde lsls r1, r1, #1 adds r0, r6, r1 ldrh r0, [r0] cmp r0, #5 bne _0802900A ldr r2, _0802901C @ =0x040000D4 mov r6, sb lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08029020 @ =0x02030760 _08028FFC: adds r0, r0, r1 str r0, [r2] ldr r0, _08029024 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _08029028 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] _0802900A: mov r0, sl ldr r1, [r0] ldr r2, _0802902C @ =0x000005A4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #2 beq _08029030 movs r3, #1 b _08029044 .align 2, 0 _0802901C: .4byte 0x040000D4 _08029020: .4byte 0x02030760 _08029024: .4byte 0x06010CA0 _08029028: .4byte 0x80000240 _0802902C: .4byte 0x000005A4 _08029030: movs r6, #0xb5 lsls r6, r6, #3 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r3, #1 cmp r0, #0xc bgt _08029044 movs r3, #2 _08029044: movs r1, #4 ldrsh r0, [r7, r1] cmp r0, #0xc7 ble _08029052 movs r0, #0xc8 strh r0, [r7, #4] b _0802905C _08029052: movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _0802905C strh r1, [r7, #4] _0802905C: movs r2, #0 ldr r6, _0802912C @ =0x03005000 ldr r0, _08029130 @ =0xFFFFFE00 mov sl, r0 lsls r3, r3, #2 mov r8, r3 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 _0802906E: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08029134 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r5, #4] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sb ands r0, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, #5] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _0802906E _080290C4: movs r1, #0 _080290C6: lsls r0, r1, #0x10 asrs r5, r0, #0x10 ldr r6, _08029138 @ =gMain ldr r1, [r6, #0x44] lsls r4, r5, #2 adds r1, r4, r1 adds r1, #0xb4 ldr r7, [r1] ldrh r1, [r7] mov r8, r0 cmp r1, #0 beq _080291D2 ldr r0, _0802913C @ =0x020314E0 ldr r2, [r0] adds r3, r2, r4 adds r0, r3, #0 adds r0, #0x84 adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] adds r3, #0x86 adds r0, r2, #0 adds r0, #0x5a ldrh r3, [r3] ldrh r0, [r0] subs r3, r3, r0 strh r3, [r7, #4] lsls r0, r5, #1 adds r2, #0x74 adds r2, r2, r0 ldrh r0, [r2] lsrs r0, r0, #2 movs r1, #9 subs r1, r1, r0 lsls r1, r1, #1 adds r0, r4, r5 lsls r0, r0, #2 adds r1, r1, r0 ldr r2, _08029140 @ =0x086AE154 adds r1, r1, r2 ldrh r1, [r1] lsls r3, r3, #0x10 asrs r0, r3, #0x10 cmp r0, #0xc7 ble _08029144 movs r0, #0xc8 strh r0, [r7, #4] b _0802914E .align 2, 0 _0802912C: .4byte 0x03005000 _08029130: .4byte 0xFFFFFE00 _08029134: .4byte 0x000001FF _08029138: .4byte gMain _0802913C: .4byte 0x020314E0 _08029140: .4byte 0x086AE154 _08029144: movs r2, #0x3c rsbs r2, r2, #0 cmp r0, r2 bge _0802914E strh r2, [r7, #4] _0802914E: movs r2, #0 lsls r1, r1, #0x10 ldr r6, _08029284 @ =0x086B263C mov sl, r6 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 mov ip, r0 ldr r0, _08029288 @ =0xFFFFFE00 mov sb, r0 _08029164: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 ldr r1, _0802928C @ =0x03005000 adds r2, r2, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r6, _0802928C @ =0x03005000 adds r2, r2, r6 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r1, #2 ldrsh r0, [r7, r1] ldr r6, [sp] adds r1, r6, r0 ldr r6, _08029290 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _0802928C @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08029164 _080291D2: ldr r6, _08029294 @ =0x020314E0 ldr r4, [r6] ldr r1, _08029298 @ =0x000005A4 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #2 beq _08029228 movs r0, #0x17 ldrsb r0, [r4, r0] cmp r0, #3 bgt _08029228 mov r2, r8 asrs r3, r2, #0x10 lsls r0, r3, #1 adds r1, r4, #0 adds r1, #0x74 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0 bne _0802923A movs r0, #0x28 strh r0, [r1] lsls r3, r3, #2 adds r2, r4, r3 adds r0, r4, #0 adds r0, #0xc4 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x84 strh r1, [r0] adds r0, r4, #0 adds r0, #0xc6 ldrh r0, [r0] adds r0, #0x10 adds r2, #0x86 strh r0, [r2] ldr r6, _0802929C @ =gMain ldr r0, [r6, #0x44] adds r3, r3, r0 adds r3, #0xb4 ldr r1, [r3] movs r0, #1 strh r0, [r1] _08029228: ldr r1, _08029294 @ =0x020314E0 ldr r0, [r1] mov r2, r8 asrs r1, r2, #0xf adds r0, #0x74 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0 beq _08029264 _0802923A: ldr r6, _08029294 @ =0x020314E0 ldr r0, [r6] mov r1, r8 asrs r3, r1, #0x10 lsls r1, r3, #1 adds r0, #0x74 adds r0, r0, r1 ldrh r1, [r0] subs r1, #1 strh r1, [r0] lsls r1, r1, #0x10 lsrs r2, r1, #0x10 cmp r2, #0 bne _08029264 ldr r6, _0802929C @ =gMain ldr r0, [r6, #0x44] lsls r1, r3, #2 adds r1, r1, r0 adds r1, #0xb4 ldr r0, [r1] strh r2, [r0] _08029264: movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _08029274 b _080290C6 _08029274: 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 _08029284: .4byte 0x086B263C _08029288: .4byte 0xFFFFFE00 _0802928C: .4byte 0x03005000 _08029290: .4byte 0x000001FF _08029294: .4byte 0x020314E0 _08029298: .4byte 0x000005A4 _0802929C: .4byte gMain thumb_func_start sub_292A0 sub_292A0: @ 0x080292A0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08029328 @ =gMain ldr r1, [r0, #0x44] adds r1, #0x84 ldr r5, [r1] ldrh r1, [r5] mov r8, r0 cmp r1, #0 beq _080292F0 movs r0, #0 ldr r6, _0802932C @ =0x03005000 ldr r1, _08029330 @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _080292C0: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r4, r2, #3 adds r4, #8 adds r4, r5, r4 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _080292C0 _080292F0: mov r1, r8 ldr r0, [r1, #0x44] adds r0, #0x84 ldr r1, [r0] movs r0, #0 strh r0, [r1] mov r4, r8 movs r3, #0 _08029300: lsls r1, r0, #0x10 asrs r1, r1, #0x10 ldr r2, [r4, #0x44] lsls r0, r1, #2 adds r0, r0, r2 adds r0, #0xb4 ldr r0, [r0] strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _08029300 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029328: .4byte gMain _0802932C: .4byte 0x03005000 _08029330: .4byte 0xFFFFFE00 thumb_func_start sub_29334 sub_29334: @ 0x08029334 push {r4, r5, lr} ldr r0, _08029384 @ =0x020314E0 ldr r2, [r0] adds r1, r2, #0 adds r1, #0x68 movs r3, #0 ldrsh r1, [r1, r3] adds r4, r0, #0 cmp r1, #0x8a ble _080293A6 ldr r5, _08029388 @ =0x000006C5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 bne _08029398 ldr r0, _0802938C @ =0x00000625 adds r1, r2, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08029398 adds r5, #1 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 bne _08029394 movs r0, #2 strb r0, [r3] ldr r1, [r4] ldr r0, _08029390 @ =0x000493E0 str r0, [r1, #0x3c] b _08029398 .align 2, 0 _08029384: .4byte 0x020314E0 _08029388: .4byte 0x000006C5 _0802938C: .4byte 0x00000625 _08029390: .4byte 0x000493E0 _08029394: movs r0, #1 strb r0, [r3] _08029398: ldr r0, [r4] ldr r2, _080293BC @ =0x00000625 adds r1, r0, r2 ldrb r1, [r1] ldr r3, _080293C0 @ =0x000006C6 adds r0, r0, r3 strb r1, [r0] _080293A6: ldr r0, [r4] ldr r5, _080293C4 @ =0x000006C5 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _080293C8 bl sub_25808 b _080293D0 .align 2, 0 _080293BC: .4byte 0x00000625 _080293C0: .4byte 0x000006C6 _080293C4: .4byte 0x000006C5 _080293C8: cmp r0, #1 bne _080293D0 bl sub_253E0 _080293D0: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_293D8 sub_293D8: @ 0x080293D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r1, _0802940C @ =0x086AD436 ldr r3, _08029410 @ =0x020314E0 ldr r2, [r3] ldr r0, _08029414 @ =0x000006CC adds r4, r2, r0 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _08029418 @ =0x000006CA adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0802941C adds r0, r1, #1 strh r0, [r2] b _08029426 .align 2, 0 _0802940C: .4byte 0x086AD436 _08029410: .4byte 0x020314E0 _08029414: .4byte 0x000006CC _08029418: .4byte 0x000006CA _0802941C: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] _08029426: ldr r2, _080295E4 @ =0x020314E0 ldr r1, [r2] ldr r4, _080295E8 @ =0x000006CC adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08029456 ldr r2, _080295EC @ =0x000006CA adds r0, r1, r2 ldrh r0, [r0] cmp r0, #3 bls _08029456 subs r4, #8 adds r1, r1, r4 movs r0, #3 strb r0, [r1] ldr r0, _080295F0 @ =gMain ldr r0, [r0, #0x44] adds r0, #0x84 ldr r1, [r0] movs r0, #1 strh r0, [r1] _08029456: ldr r4, _080295E4 @ =0x020314E0 ldr r0, [r4] ldr r5, _080295E8 @ =0x000006CC adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0802948A ldr r1, _080295F4 @ =0x040000D4 ldr r0, _080295F8 @ =0x020306D0 str r0, [r1] ldr r0, _080295FC @ =0x050003A0 str r0, [r1, #4] ldr r0, _08029600 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08029604 @ =0x02030760 str r0, [r1] ldr r0, _08029608 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _0802960C @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_28C90 _0802948A: ldr r0, _080295F0 @ =gMain ldr r1, [r0, #0x44] ldr r7, [r1, #0x48] ldrh r1, [r7] cmp r1, #0 bne _08029498 b _080295A0 _08029498: ldr r0, _080295E4 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0x94 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _080294C2 movs r0, #0xc8 strh r0, [r7, #4] _080294C2: movs r0, #0 ldr r4, _08029610 @ =0x086B55DC mov sl, r4 ldr r1, _08029614 @ =0x086AD436 mov sb, r1 ldr r2, _080295E4 @ =0x020314E0 mov r8, r2 mov ip, r5 _080294D2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #3 adds r6, #8 adds r6, r7, r6 ldrh r4, [r6] lsls r4, r4, #3 ldr r0, _08029618 @ =0x03005000 adds r4, r4, r0 lsls r3, r5, #1 adds r3, r3, r5 lsls r1, r3, #1 str r1, [sp] mov r2, r8 ldr r0, [r2] add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sb movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 add r2, sl ldrh r0, [r2] strh r0, [r4] adds r4, #2 adds r2, r3, #1 lsls r2, r2, #1 str r2, [sp] mov r2, r8 ldr r0, [r2] add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sb movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 add r2, sl ldrh r0, [r2] strh r0, [r4] adds r3, #2 lsls r3, r3, #1 mov r2, r8 ldr r0, [r2] add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sb movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 adds r3, r3, r0 add r3, sl ldrh r0, [r3] strh r0, [r4, #2] ldrh r2, [r6] lsls r2, r2, #3 ldr r4, _08029618 @ =0x03005000 adds r2, r2, r4 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r4, _0802961C @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08029620 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 ldr r0, _08029618 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _080294D2 _080295A0: ldr r4, _080295F0 @ =gMain ldr r0, [r4, #0x44] ldr r1, [r0, #0x48] movs r0, #1 strh r0, [r1] ldr r0, _080295E4 @ =0x020314E0 ldr r1, [r0] ldr r2, _080295E8 @ =0x000006CC adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 ble _080295D4 ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r4, #0x44] ldr r1, [r0, #0x48] movs r0, #0 strh r0, [r1] ldr r4, _080295E4 @ =0x020314E0 ldr r0, [r4] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _080295D4: 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 _080295E4: .4byte 0x020314E0 _080295E8: .4byte 0x000006CC _080295EC: .4byte 0x000006CA _080295F0: .4byte gMain _080295F4: .4byte 0x040000D4 _080295F8: .4byte 0x020306D0 _080295FC: .4byte 0x050003A0 _08029600: .4byte 0x80000010 _08029604: .4byte 0x02030760 _08029608: .4byte 0x06010CA0 _0802960C: .4byte 0x80000240 _08029610: .4byte 0x086B55DC _08029614: .4byte 0x086AD436 _08029618: .4byte 0x03005000 _0802961C: .4byte 0x000001FF _08029620: .4byte 0xFFFFFE00 thumb_func_start sub_29624 sub_29624: @ 0x08029624 push {r4, r5, lr} ldr r0, _08029658 @ =0x020314E0 ldr r1, [r0] ldr r2, _0802965C @ =0x000006CC adds r1, r1, r2 movs r2, #0 strb r2, [r1] adds r5, r0, #0 ldr r4, _08029660 @ =0x000006D3 movs r3, #0xd _08029638: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08029638 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08029658: .4byte 0x020314E0 _0802965C: .4byte 0x000006CC _08029660: .4byte 0x000006D3 thumb_func_start sub_29664 sub_29664: @ 0x08029664 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r0, #0 ldr r7, _08029700 @ =0x020314E0 mov r8, r0 _08029670: ldr r1, [r7] lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #2 adds r1, r1, r6 movs r2, #0xb8 lsls r2, r2, #3 adds r0, r1, r2 mov r2, r8 strh r2, [r0] ldr r0, _08029704 @ =0x000005C2 adds r1, r1, r0 strh r2, [r1] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 movs r1, #0xc8 lsls r1, r1, #1 bl __umodsi3 movs r1, #0xc8 subs r1, r1, r0 movs r2, #0xbb lsls r2, r2, #3 adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029708 @ =0x00000226 bl __umodsi3 movs r1, #0x50 subs r1, r1, r0 ldr r0, _0802970C @ =0x000005DA adds r4, r4, r0 strh r1, [r4] bl sub_C00 ldr r4, [r7] ldr r1, _08029710 @ =0x000005B9 adds r4, r4, r1 adds r4, r4, r5 movs r1, #0xf bl __umodsi3 adds r0, #0xa strb r0, [r4] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _08029670 ldr r0, _08029700 @ =0x020314E0 ldr r0, [r0] ldr r2, _08029714 @ =0x00000606 adds r0, r0, r2 movs r1, #0 strh r1, [r0] ldr r0, _08029718 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x30] movs r0, #1 strh r0, [r1] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029700: .4byte 0x020314E0 _08029704: .4byte 0x000005C2 _08029708: .4byte 0x00000226 _0802970C: .4byte 0x000005DA _08029710: .4byte 0x000005B9 _08029714: .4byte 0x00000606 _08029718: .4byte gMain thumb_func_start sub_2971C sub_2971C: @ 0x0802971C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _080298B8 @ =gMain ldr r1, [r0, #0x44] ldr r1, [r1, #0x30] str r1, [sp] ldrh r1, [r1] cmp r1, #0 bne _08029738 b _080298A2 _08029738: movs r3, #0 _0802973A: ldr r0, _080298BC @ =0x020314E0 ldr r2, [r0] ldr r1, _080298C0 @ =0x00000606 adds r0, r2, r1 ldrh r1, [r0] lsrs r1, r1, #2 lsls r1, r1, #1 lsls r0, r3, #0x10 asrs r0, r0, #0x10 mov sb, r0 lsls r0, r0, #1 add r0, sb lsls r0, r0, #3 adds r1, r1, r0 ldr r3, _080298C4 @ =0x086AE1A4 adds r1, r1, r3 ldrh r1, [r1] mov sl, r1 mov r6, sb lsls r5, r6, #2 adds r3, r2, r5 ldr r0, _080298C8 @ =0x000005DA adds r4, r3, r0 ldr r1, _080298CC @ =0x000005B9 adds r2, r2, r1 add r2, sb movs r0, #0 ldrsb r0, [r2, r0] ldrh r2, [r4] adds r0, r0, r2 strh r0, [r4] ldr r6, _080298D0 @ =0x000005C2 adds r2, r3, r6 movs r0, #0 ldrsh r1, [r2, r0] ldr r0, _080298D4 @ =0x000036AF cmp r1, r0 bgt _0802979E subs r6, #2 adds r1, r3, r6 adds r6, #0x18 adds r0, r3, r6 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldrh r0, [r4] ldrh r6, [r2] adds r0, r0, r6 strh r0, [r2] _0802979E: ldr r0, _080298BC @ =0x020314E0 ldr r6, [r0] movs r1, #0xd9 lsls r1, r1, #3 adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r0 movs r1, #3 bl __modsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #0x14 adds r0, r6, #0 adds r0, #0x58 ldrh r0, [r0] subs r0, #0x60 subs r4, r4, r0 adds r5, r6, r5 movs r2, #0xb8 lsls r2, r2, #3 adds r0, r5, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0x64 bl __divsi3 adds r4, r4, r0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 ldr r0, _080298D8 @ =0xFFFF0000 ands r7, r0 orrs r7, r4 mov r0, r8 movs r1, #3 bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #0x14 adds r6, #0x5a ldr r1, _080298DC @ =0xFFFFFED4 adds r0, r1, #0 ldrh r6, [r6] adds r0, r0, r6 subs r4, r4, r0 ldr r2, _080298D0 @ =0x000005C2 adds r5, r5, r2 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0x64 bl __divsi3 adds r4, r4, r0 lsls r4, r4, #0x10 ldr r0, _080298E0 @ =0x0000FFFF ands r7, r0 orrs r7, r4 asrs r4, r4, #0x10 cmp r4, #0xc7 ble _08029824 ands r7, r0 movs r0, #0xc8 lsls r0, r0, #0x10 orrs r7, r0 _08029824: mov r5, sb lsls r4, r5, #3 adds r4, #8 ldr r6, [sp] adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 ldr r0, _080298E4 @ =0x03005000 adds r2, r2, r0 mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 ldr r3, _080298E8 @ =0x086B53B4 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r3, #0 adds r0, #2 adds r0, r1, r0 ldrh r0, [r0] strh r0, [r2] ldr r5, _080298EC @ =0x086B53B8 adds r1, r1, r5 ldrh r0, [r1] strh r0, [r2, #2] ldrh r3, [r4] lsls r3, r3, #3 ldr r6, _080298E4 @ =0x03005000 adds r3, r3, r6 ldrh r2, [r3, #2] lsls r1, r2, #0x17 lsrs r1, r1, #0x17 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r1, r0 ldr r5, _080298F0 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldr r6, _080298F4 @ =0xFFFFFE00 adds r0, r6, #0 ands r2, r0 orrs r2, r1 strh r2, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 ldr r0, _080298E4 @ =0x03005000 adds r1, r1, r0 asrs r0, r7, #0x10 ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] mov r0, sb adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 bgt _080298A2 b _0802973A _080298A2: ldr r3, _080298BC @ =0x020314E0 ldr r1, [r3] ldr r5, _080298C0 @ =0x00000606 adds r2, r1, r5 ldrh r0, [r2] cmp r0, #0x2f bhi _080298F8 adds r0, #1 strh r0, [r2] b _0802990C .align 2, 0 _080298B8: .4byte gMain _080298BC: .4byte 0x020314E0 _080298C0: .4byte 0x00000606 _080298C4: .4byte 0x086AE1A4 _080298C8: .4byte 0x000005DA _080298CC: .4byte 0x000005B9 _080298D0: .4byte 0x000005C2 _080298D4: .4byte 0x000036AF _080298D8: .4byte 0xFFFF0000 _080298DC: .4byte 0xFFFFFED4 _080298E0: .4byte 0x0000FFFF _080298E4: .4byte 0x03005000 _080298E8: .4byte 0x086B53B4 _080298EC: .4byte 0x086B53B8 _080298F0: .4byte 0x000001FF _080298F4: .4byte 0xFFFFFE00 _080298F8: ldr r6, _0802991C @ =0x000006CA adds r1, r1, r6 movs r2, #0 movs r0, #0xe2 lsls r0, r0, #7 strh r0, [r1] ldr r1, _08029920 @ =gMain ldr r0, [r1, #0x44] ldr r0, [r0, #0x30] strh r2, [r0] _0802990C: 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 _0802991C: .4byte 0x000006CA _08029920: .4byte gMain thumb_func_start sub_29924 sub_29924: @ 0x08029924 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r0, #0 ldr r7, _08029A34 @ =0x020314E0 movs r1, #0x64 mov sb, r1 ldr r2, _08029A38 @ =0x086AE2F4 mov sl, r2 _0802993A: ldr r4, [r7] lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #2 adds r4, r4, r6 adds r0, r5, #0 movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xc subs r0, #0x18 mov r1, sb muls r1, r0, r1 movs r2, #0xb8 lsls r2, r2, #3 adds r0, r4, r2 strh r1, [r0] adds r0, r5, #0 movs r1, #3 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xc subs r0, #0x1c mov r1, sb muls r1, r0, r1 adds r0, r1, #0 ldr r2, _08029A3C @ =0x000005C2 adds r4, r4, r2 strh r0, [r4] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 adds r1, r6, #0 add r1, sl mov r8, r1 movs r1, #0xc8 bl __umodsi3 subs r0, #0x3c mov r2, r8 ldrh r1, [r2] subs r1, r1, r0 movs r0, #0xbb lsls r0, r0, #3 adds r4, r4, r0 strh r1, [r4] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029A40 @ =0x086AE2F6 adds r6, r6, r1 movs r1, #0xc8 bl __umodsi3 subs r0, #0x3c ldrh r1, [r6] subs r1, r1, r0 ldr r2, _08029A44 @ =0x000005DA adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r1, [r7] ldr r2, _08029A48 @ =0x000005B9 adds r1, r1, r2 adds r1, r1, r5 movs r2, #3 ands r0, r2 adds r0, #1 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _0802993A ldr r3, _08029A34 @ =0x020314E0 ldr r1, [r3] movs r0, #0xb8 lsls r0, r0, #3 adds r2, r1, r0 movs r5, #0 ldr r0, _08029A4C @ =0x0000EA20 strh r0, [r2] ldr r0, _08029A3C @ =0x000005C2 adds r2, r1, r0 ldr r0, _08029A50 @ =0x0000E890 strh r0, [r2] ldr r2, _08029A48 @ =0x000005B9 adds r1, r1, r2 movs r4, #3 strb r4, [r1] ldr r1, [r3] movs r0, #0xba lsls r0, r0, #3 adds r2, r1, r0 ldr r0, _08029A54 @ =0x0000F060 strh r0, [r2] ldr r0, _08029A58 @ =0x000005D2 adds r2, r1, r0 ldr r0, _08029A5C @ =0x0000EED0 strh r0, [r2] ldr r2, _08029A60 @ =0x000005BD adds r1, r1, r2 strb r4, [r1] ldr r0, [r3] ldr r1, _08029A64 @ =0x00000606 adds r0, r0, r1 strh r5, [r0] ldr r0, _08029A68 @ =gMain ldr r0, [r0, #0x44] ldr r1, [r0, #0x30] movs r0, #1 strh r0, [r1] 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 _08029A34: .4byte 0x020314E0 _08029A38: .4byte 0x086AE2F4 _08029A3C: .4byte 0x000005C2 _08029A40: .4byte 0x086AE2F6 _08029A44: .4byte 0x000005DA _08029A48: .4byte 0x000005B9 _08029A4C: .4byte 0x0000EA20 _08029A50: .4byte 0x0000E890 _08029A54: .4byte 0x0000F060 _08029A58: .4byte 0x000005D2 _08029A5C: .4byte 0x0000EED0 _08029A60: .4byte 0x000005BD _08029A64: .4byte 0x00000606 _08029A68: .4byte gMain thumb_func_start sub_29A6C sub_29A6C: @ 0x08029A6C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r0, _08029D2C @ =gMain ldr r0, [r0, #0x44] ldr r0, [r0, #0x30] mov sb, r0 ldrh r0, [r0] cmp r0, #0 bne _08029A88 b _08029C52 _08029A88: movs r5, #0 ldr r0, _08029D30 @ =0x03005000 mov r8, r0 ldr r1, _08029D34 @ =0x086B4E3E mov sl, r1 _08029A92: ldr r2, _08029D38 @ =0x020314E0 ldr r6, [r2] ldr r0, _08029D3C @ =0x00000606 adds r4, r6, r0 ldrh r0, [r4] movs r1, #5 bl __udivsi3 lsls r3, r5, #0x10 asrs r5, r3, #0x10 lsls r1, r5, #1 add r1, sp mov ip, r1 lsls r0, r0, #0x10 asrs r0, r0, #0xf lsls r1, r5, #5 adds r0, r0, r1 ldr r1, _08029D40 @ =0x086AE234 adds r0, r0, r1 ldrh r0, [r0] mov r2, ip strh r0, [r2] ldrh r0, [r4] mov ip, r3 cmp r0, #4 bls _08029B22 lsls r2, r5, #2 adds r0, r6, r2 ldr r3, _08029D44 @ =0x000005DA adds r0, r0, r3 ldr r4, _08029D48 @ =0x000005B9 adds r1, r6, r4 adds r1, r1, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrh r4, [r0] adds r1, r1, r4 strh r1, [r0] cmp r5, #4 bne _08029AFC movs r0, #0xbd lsls r0, r0, #3 adds r1, r6, r0 ldr r4, _08029D4C @ =0x000005BD adds r0, r6, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] _08029AFC: ldr r0, _08029D38 @ =0x020314E0 ldr r1, [r0] adds r1, r1, r2 movs r4, #0xb8 lsls r4, r4, #3 adds r2, r1, r4 adds r4, #0x18 adds r0, r1, r4 ldrh r0, [r0] ldrh r4, [r2] adds r0, r0, r4 strh r0, [r2] ldr r0, _08029D50 @ =0x000005C2 adds r2, r1, r0 adds r1, r1, r3 ldrh r0, [r1] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] _08029B22: ldr r2, _08029D38 @ =0x020314E0 ldr r5, [r2] mov r4, ip asrs r6, r4, #0x10 lsls r4, r6, #2 adds r4, r5, r4 movs r1, #0xb8 lsls r1, r1, #3 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x64 bl __divsi3 adds r0, #0x60 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08029D54 @ =0xFFFF0000 ands r7, r1 orrs r7, r0 ldr r0, _08029D50 @ =0x000005C2 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0x64 bl __divsi3 movs r2, #0x98 lsls r2, r2, #1 adds r0, r0, r2 adds r5, #0x5a ldrh r1, [r5] subs r0, r0, r1 lsls r0, r0, #0x10 ldr r1, _08029D58 @ =0x0000FFFF ands r7, r1 orrs r7, r0 asrs r0, r0, #0x10 cmp r0, #0x9f ble _08029B82 ands r7, r1 movs r0, #0xa0 lsls r0, r0, #0x10 orrs r7, r0 _08029B82: lsls r4, r6, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 lsls r5, r6, #1 mov r0, sp adds r3, r0, r5 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 mov r1, sl adds r1, #2 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2] movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08029D5C @ =0x086B4E42 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #2] ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 ldrh r2, [r3, #2] lsls r1, r2, #0x17 lsrs r1, r1, #0x17 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r1, r0 ldr r0, _08029D60 @ =0x000001FF mov ip, r0 mov r0, ip ands r1, r0 ldr r0, _08029D64 @ =0xFFFFFE00 mov ip, r0 mov r0, ip ands r2, r0 orrs r2, r1 strh r2, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 asrs r0, r7, #0x10 ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 ldr r1, _08029D68 @ =0x086AE30C adds r0, r5, r1 movs r1, #0 ldrsh r2, [r0, r1] movs r0, #3 ands r2, r0 ldrb r0, [r3, #1] movs r1, #4 rsbs r1, r1, #0 mov ip, r1 mov r1, ip ands r0, r1 orrs r0, r2 strb r0, [r3, #1] ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 ldr r2, _08029D6C @ =0x086AE318 adds r5, r5, r2 movs r4, #0 ldrsh r2, [r5, r4] movs r0, #7 ands r2, r0 lsls r2, r2, #1 ldrb r0, [r3, #3] movs r4, #0xf rsbs r4, r4, #0 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strb r0, [r3, #3] adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 bgt _08029C52 b _08029A92 _08029C52: ldr r4, _08029D38 @ =0x020314E0 ldr r0, [r4] ldr r6, _08029D3C @ =0x00000606 adds r0, r0, r6 ldrh r0, [r0] adds r1, r0, #0 muls r1, r0, r1 movs r0, #0xd0 muls r0, r1, r0 movs r5, #0xa2 lsls r5, r5, #3 adds r1, r5, #0 bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #4 bne _08029C84 lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08029C84: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #2 bl sub_7C0 movs r1, #0x80 mov r0, sp ldrh r0, [r0, #2] cmp r0, #4 bne _08029CA0 rsbs r0, r1, #0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _08029CA0: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #3 bl sub_7C0 ldr r0, [r4] adds r0, r0, r6 ldrh r0, [r0] adds r1, r0, #0 muls r1, r0, r1 adds r0, r1, #0 lsls r0, r0, #8 adds r1, r5, #0 bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 mov r0, sp movs r2, #6 ldrsh r0, [r0, r2] cmp r0, #4 bne _08029CD6 lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08029CD6: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #4 bl sub_7C0 ldr r0, [r4] adds r0, r0, r6 ldrh r0, [r0] adds r1, r0, #0 muls r1, r0, r1 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #6 adds r1, r5, #0 bl __divsi3 adds r0, #0x40 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 mov r0, sp movs r4, #8 ldrsh r0, [r0, r4] cmp r0, #4 bne _08029D0E lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08029D0E: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #5 bl sub_7C0 ldr r0, _08029D38 @ =0x020314E0 ldr r1, [r0] adds r2, r1, r6 ldrh r0, [r2] cmp r0, #0x2e bhi _08029D70 adds r0, #1 strh r0, [r2] b _08029D84 .align 2, 0 _08029D2C: .4byte gMain _08029D30: .4byte 0x03005000 _08029D34: .4byte 0x086B4E3E _08029D38: .4byte 0x020314E0 _08029D3C: .4byte 0x00000606 _08029D40: .4byte 0x086AE234 _08029D44: .4byte 0x000005DA _08029D48: .4byte 0x000005B9 _08029D4C: .4byte 0x000005BD _08029D50: .4byte 0x000005C2 _08029D54: .4byte 0xFFFF0000 _08029D58: .4byte 0x0000FFFF _08029D5C: .4byte 0x086B4E42 _08029D60: .4byte 0x000001FF _08029D64: .4byte 0xFFFFFE00 _08029D68: .4byte 0x086AE30C _08029D6C: .4byte 0x086AE318 _08029D70: ldr r2, _08029D94 @ =0x000006CA adds r1, r1, r2 movs r2, #0 movs r0, #0xe2 lsls r0, r0, #7 strh r0, [r1] ldr r0, _08029D98 @ =gMain ldr r0, [r0, #0x44] ldr r0, [r0, #0x30] strh r2, [r0] _08029D84: add sp, #0xc 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 _08029D94: .4byte 0x000006CA _08029D98: .4byte gMain thumb_func_start sub_29D9C sub_29D9C: @ 0x08029D9C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r3, _08029E60 @ =gMain ldr r0, [r3, #0x44] ldr r0, [r0, #0x5c] movs r2, #0 movs r5, #0 movs r1, #1 strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x50] strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x54] strh r1, [r0] ldrh r0, [r3, #0x38] ldr r0, _08029E64 @ =0x00001C10 strh r0, [r3, #0x38] ldrh r0, [r3, #0x3a] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r3, #0x3a] ldr r4, _08029E68 @ =0x020314E0 ldr r0, [r4] movs r1, #0xdd lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r1, [r4] ldr r0, _08029E6C @ =0x000006F2 adds r2, r1, r0 movs r0, #8 strh r0, [r2] ldr r2, _08029E70 @ =0x000006F4 adds r0, r1, r2 strh r5, [r0] subs r2, #0x14 adds r0, r1, r2 strh r5, [r0] ldr r0, _08029E74 @ =0x000006E9 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] mov r8, r3 adds r7, r4, #0 cmp r0, #0x19 bne _08029E02 movs r0, #0xa strb r0, [r1] _08029E02: movs r3, #0 ldr r1, _08029E78 @ =0x086AD180 mov sb, r1 _08029E08: ldr r5, [r7] lsls r3, r3, #0x10 asrs r2, r3, #0xf movs r1, #0xdf lsls r1, r1, #3 adds r0, r5, r1 adds r4, r0, r2 subs r1, #0xf adds r0, r5, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 adds r2, r2, r0 add r2, sb ldrh r0, [r2] strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r6, r3, #0 cmp r0, #0x29 beq _08029E38 b _08029F2E _08029E38: mov r2, r8 ldrb r0, [r2, #4] cmp r0, #0 bne _08029EBC ldr r1, _08029E7C @ =0x00000283 adds r0, r5, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bls _08029E56 b _08029F9E _08029E56: lsls r0, r0, #2 ldr r1, _08029E80 @ =_08029E84 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029E60: .4byte gMain _08029E64: .4byte 0x00001C10 _08029E68: .4byte 0x020314E0 _08029E6C: .4byte 0x000006F2 _08029E70: .4byte 0x000006F4 _08029E74: .4byte 0x000006E9 _08029E78: .4byte 0x086AD180 _08029E7C: .4byte 0x00000283 _08029E80: .4byte _08029E84 _08029E84: @ jump table .4byte _08029E98 @ case 0 .4byte _08029EAA @ case 1 .4byte _08029E98 @ case 2 .4byte _08029EAA @ case 3 .4byte _08029F1C @ case 4 _08029E98: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2a strh r1, [r0] b _08029F9E _08029EAA: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2c strh r1, [r0] b _08029F9E _08029EBC: ldr r1, _08029EDC @ =0x00000283 adds r0, r5, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _08029F9E lsls r0, r0, #2 ldr r1, _08029EE0 @ =_08029EE4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029EDC: .4byte 0x00000283 _08029EE0: .4byte _08029EE4 _08029EE4: @ jump table .4byte _08029EF8 @ case 0 .4byte _08029F0A @ case 1 .4byte _08029EF8 @ case 2 .4byte _08029F0A @ case 3 .4byte _08029F1C @ case 4 _08029EF8: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x29 strh r1, [r0] b _08029F9E _08029F0A: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2b strh r1, [r0] b _08029F9E _08029F1C: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2d strh r1, [r0] b _08029F9E _08029F2E: cmp r0, #0xa bne _08029F4C ldr r0, _08029F44 @ =0x000005F6 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08029F48 adds r0, #0xa b _08029F9C .align 2, 0 _08029F44: .4byte 0x000005F6 _08029F48: movs r0, #0xc b _08029F9C _08029F4C: cmp r0, #3 bne _08029F88 movs r1, #0xf1 lsls r1, r1, #1 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08029F9E mov r2, r8 ldr r0, [r2, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08029F84 ldr r0, _08029F7C @ =0x000005F6 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08029F80 adds r0, #0xa b _08029F9C .align 2, 0 _08029F7C: .4byte 0x000005F6 _08029F80: movs r0, #0xc b _08029F9C _08029F84: strh r1, [r4] b _08029F9E _08029F88: cmp r0, #9 bne _08029F9E ldr r1, _0802A040 @ =0x00000281 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08029F9E movs r0, #8 _08029F9C: strh r0, [r4] _08029F9E: movs r2, #0x80 lsls r2, r2, #9 adds r0, r6, r2 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 bgt _08029FAE b _08029E08 _08029FAE: ldr r2, [r7] ldr r0, _0802A044 @ =0x00000704 adds r1, r2, r0 movs r0, #0x15 strh r0, [r1] ldr r1, _0802A048 @ =0x000006E9 adds r2, r2, r1 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x18 bgt _08029FCA adds r0, r1, #1 strb r0, [r2] _08029FCA: ldr r0, [r7] ldr r3, _0802A04C @ =0x000006EA adds r0, r0, r3 movs r1, #5 strb r1, [r0] ldr r2, [r7] adds r0, r2, #0 adds r0, #0x72 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0xf0 ands r0, r1 cmp r0, #0 bne _08029FFE adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xb ble _08029FFE adds r1, r2, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08029FFE: ldr r0, [r7] ldr r2, _0802A050 @ =0x000006EB adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r2, #0xd adds r1, r0, r2 ldrh r1, [r1] subs r2, #0xc adds r0, r0, r2 strb r1, [r0] ldr r0, [r7] adds r2, #0xe adds r1, r0, r2 ldrh r1, [r1] subs r2, #0xd adds r0, r0, r2 strb r1, [r0] movs r0, #2 movs r1, #0 bl sub_1C7F4 movs r0, #2 movs r1, #1 bl sub_1C7F4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802A040: .4byte 0x00000281 _0802A044: .4byte 0x00000704 _0802A048: .4byte 0x000006E9 _0802A04C: .4byte 0x000006EA _0802A050: .4byte 0x000006EB thumb_func_start sub_2A054 sub_2A054: @ 0x0802A054 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0802A128 @ =gMain ldrb r3, [r0, #4] mov r8, r0 ldr r0, _0802A12C @ =0x020314E0 mov sb, r0 cmp r3, #1 bne _0802A0E4 ldr r2, [r0] movs r4, #0xdd lsls r4, r4, #3 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802A07E b _0802A20C _0802A07E: ldrb r0, [r2, #5] cmp r0, #0 bne _0802A090 mov r5, r8 ldrh r1, [r5, #0x18] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0802A0E4 _0802A090: movs r1, #0xdf lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802A0E4 movs r5, #0xde lsls r5, r5, #2 adds r1, r2, r5 movs r0, #2 strb r0, [r1] mov r0, sb ldr r2, [r0] movs r1, #0xdc lsls r1, r1, #3 adds r0, r2, r1 movs r5, #0 ldrsh r0, [r0, r5] cmp r0, #0x10 bgt _0802A0C8 adds r1, #0xc adds r0, r2, r1 ldrb r1, [r0] ldr r5, _0802A130 @ =0x000006ED adds r0, r2, r5 strb r1, [r0] _0802A0C8: mov r1, sb ldr r0, [r1] adds r0, r0, r4 strb r3, [r0] ldr r1, [r1] ldr r3, _0802A134 @ =0x000006F2 adds r2, r1, r3 movs r0, #0x28 strh r0, [r2] movs r5, #0xde lsls r5, r5, #3 adds r1, r1, r5 movs r0, #0x27 strh r0, [r1] _0802A0E4: mov r0, sb ldr r2, [r0] movs r1, #0xdd lsls r1, r1, #3 adds r0, r2, r1 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _0802A0F8 b _0802A20C _0802A0F8: ldr r3, _0802A138 @ =0x000006C4 adds r0, r2, r3 movs r5, #1 strb r5, [r0] mov r0, sb ldr r2, [r0] adds r3, #0x2c adds r4, r2, r3 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r7, _0802A13C @ =0x000006F4 adds r3, r2, r7 ldrh r0, [r3] cmp r0, #0 beq _0802A170 subs r0, #1 strh r0, [r3] lsls r0, r0, #0x10 cmp r0, #0 bne _0802A140 adds r0, r2, r1 strb r5, [r0] b _0802A1CA .align 2, 0 _0802A128: .4byte gMain _0802A12C: .4byte 0x020314E0 _0802A130: .4byte 0x000006ED _0802A134: .4byte 0x000006F2 _0802A138: .4byte 0x000006C4 _0802A13C: .4byte 0x000006F4 _0802A140: ldr r0, _0802A168 @ =0x000006F2 adds r5, r2, r0 ldrh r0, [r4] ldrh r1, [r5] cmp r0, r1 bne _0802A1CA ldrh r1, [r3] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #1 ldr r3, _0802A16C @ =0x000006F6 adds r1, r2, r3 ldrh r1, [r1] bl __divsi3 movs r1, #0x28 subs r1, r1, r0 strh r1, [r5] strh r6, [r4] b _0802A1CA .align 2, 0 _0802A168: .4byte 0x000006F2 _0802A16C: .4byte 0x000006F6 _0802A170: ldrb r0, [r2, #5] cmp r0, #0 bne _0802A182 mov r0, r8 ldrh r1, [r0, #0x18] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0802A1CA _0802A182: bl sub_C00 mov r1, sb ldr r4, [r1] movs r1, #0xc8 bl __umodsi3 adds r0, #0x64 adds r2, r4, r7 strh r0, [r2] ldr r0, _0802A1F8 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bne _0802A1BA movs r3, #0xde lsls r3, r3, #2 adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #1 bne _0802A1BA movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r2] movs r5, #0xdf lsls r5, r5, #2 adds r0, r4, r5 strb r1, [r0] _0802A1BA: ldr r0, _0802A1FC @ =0x020314E0 ldr r0, [r0] ldr r2, _0802A200 @ =0x000006F4 adds r1, r0, r2 ldrh r1, [r1] ldr r3, _0802A204 @ =0x000006F6 adds r0, r0, r3 strh r1, [r0] _0802A1CA: ldr r0, _0802A1FC @ =0x020314E0 ldr r5, [r0] movs r0, #0xde lsls r0, r0, #3 adds r4, r5, r0 ldr r1, _0802A208 @ =0x000006F2 adds r6, r5, r1 ldrh r0, [r4] ldrh r1, [r6] bl __umodsi3 strh r0, [r4] ldrh r0, [r4] lsls r0, r0, #5 ldrh r1, [r6] bl __divsi3 movs r2, #0xdc lsls r2, r2, #3 adds r5, r5, r2 strh r0, [r5] b _0802A27C .align 2, 0 _0802A1F8: .4byte gMain _0802A1FC: .4byte 0x020314E0 _0802A200: .4byte 0x000006F4 _0802A204: .4byte 0x000006F6 _0802A208: .4byte 0x000006F2 _0802A20C: ldr r7, _0802A2DC @ =0x020314E0 ldr r6, [r7] movs r3, #0xde lsls r3, r3, #3 adds r4, r6, r3 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r0, _0802A2E0 @ =0x000006F2 adds r5, r6, r0 ldrh r0, [r4] ldrh r1, [r5] bl __umodsi3 strh r0, [r4] ldrh r0, [r4] lsls r0, r0, #5 ldrh r1, [r5] bl __divsi3 movs r2, #0xdc lsls r2, r2, #3 adds r1, r6, r2 strh r0, [r1] ldrh r4, [r4] cmp r4, #0 bne _0802A2AC movs r0, #0x8c strh r0, [r6, #0x28] mov r3, r8 ldr r0, [r3, #0x44] ldr r0, [r0, #0x5c] strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x50] strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x54] strh r4, [r0] strh r4, [r1] ldr r5, _0802A2E4 @ =0x000006C4 adds r1, r6, r5 movs r0, #0 strb r0, [r1] ldr r0, _0802A2E8 @ =0x02032EE0 bl m4aMPlayStop ldr r0, [r7] ldr r1, _0802A2EC @ =0x000006DD adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r7] ldr r2, _0802A2F0 @ =0x000006DE adds r0, r0, r2 strh r4, [r0] _0802A27C: ldr r5, _0802A2DC @ =0x020314E0 ldr r2, [r5] movs r3, #0xde lsls r3, r3, #3 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _0802A2AC ldr r1, _0802A2F4 @ =0x000006ED adds r0, r2, r1 ldrb r1, [r0] ldr r4, _0802A2F8 @ =0x000006EC adds r0, r2, r4 strb r1, [r0] movs r0, #2 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] adds r4, r0, r4 ldrb r1, [r4] ldr r2, _0802A2FC @ =0x000006DC adds r0, r0, r2 strb r1, [r0] _0802A2AC: ldr r0, _0802A2DC @ =0x020314E0 ldr r3, [r0] movs r5, #0xde lsls r5, r5, #3 adds r1, r3, r5 ldrh r1, [r1] mov sb, r0 cmp r1, #1 bne _0802A33A ldr r0, _0802A300 @ =0x000006EB adds r2, r3, r0 ldr r1, _0802A304 @ =0x000006EA adds r0, r3, r1 ldrb r3, [r2] movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _0802A308 adds r0, r3, #1 b _0802A30A .align 2, 0 _0802A2DC: .4byte 0x020314E0 _0802A2E0: .4byte 0x000006F2 _0802A2E4: .4byte 0x000006C4 _0802A2E8: .4byte 0x02032EE0 _0802A2EC: .4byte 0x000006DD _0802A2F0: .4byte 0x000006DE _0802A2F4: .4byte 0x000006ED _0802A2F8: .4byte 0x000006EC _0802A2FC: .4byte 0x000006DC _0802A300: .4byte 0x000006EB _0802A304: .4byte 0x000006EA _0802A308: movs r0, #0 _0802A30A: strb r0, [r2] mov r3, sb ldr r2, [r3] ldr r5, _0802A348 @ =0x000006EB adds r0, r2, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #1 movs r3, #0xdf lsls r3, r3, #3 adds r0, r2, r3 adds r0, r0, r1 ldrh r0, [r0] adds r5, #2 adds r2, r2, r5 strb r0, [r2] movs r0, #2 movs r1, #1 bl sub_1C7F4 ldr r0, _0802A34C @ =0x02032F20 ldr r1, _0802A350 @ =0x0869F45C bl MPlayStart _0802A33A: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802A348: .4byte 0x000006EB _0802A34C: .4byte 0x02032F20 _0802A350: .4byte 0x0869F45C thumb_func_start sub_2A354 sub_2A354: @ 0x0802A354 push {r4, r5, r6, r7, lr} ldr r4, _0802A3C4 @ =0x020314E0 ldr r0, [r4] ldr r5, _0802A3C8 @ =0x000006DE adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0xb3 bhi _0802A3A6 cmp r0, #4 bne _0802A36E movs r0, #0x14 bl m4aSongNumStart _0802A36E: ldr r1, [r4] ldr r2, _0802A3CC @ =0x000006DC adds r0, r1, r2 ldrb r0, [r0] cmp r0, #3 bne _0802A388 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0x78 bne _0802A388 movs r0, #0xb2 bl m4aSongNumStart _0802A388: ldr r0, _0802A3C4 @ =0x020314E0 ldr r1, [r0] ldr r3, _0802A3C8 @ =0x000006DE adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x4f bhi _0802A3A6 movs r0, #8 movs r1, #0 bl sub_1C7F4 _0802A3A6: ldr r1, _0802A3C4 @ =0x020314E0 ldr r0, [r1] ldr r4, _0802A3CC @ =0x000006DC adds r0, r0, r4 ldrb r0, [r0] adds r5, r1, #0 cmp r0, #0x2d bls _0802A3B8 b _0802AAD2 _0802A3B8: lsls r0, r0, #2 ldr r1, _0802A3D0 @ =_0802A3D4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802A3C4: .4byte 0x020314E0 _0802A3C8: .4byte 0x000006DE _0802A3CC: .4byte 0x000006DC _0802A3D0: .4byte _0802A3D4 _0802A3D4: @ jump table .4byte _0802A48C @ case 0 .4byte _0802A48C @ case 1 .4byte _0802A48C @ case 2 .4byte _0802A4B0 @ case 3 .4byte _0802A648 @ case 4 .4byte _0802A668 @ case 5 .4byte _0802A690 @ case 6 .4byte _0802A718 @ case 7 .4byte _0802A778 @ case 8 .4byte _0802A798 @ case 9 .4byte _0802A830 @ case 10 .4byte _0802A830 @ case 11 .4byte _0802A830 @ case 12 .4byte _0802A864 @ case 13 .4byte _0802AAD2 @ case 14 .4byte _0802AAD2 @ case 15 .4byte _0802AAD2 @ case 16 .4byte _0802A8CC @ case 17 .4byte _0802A8CC @ case 18 .4byte _0802A8CC @ case 19 .4byte _0802A924 @ case 20 .4byte _0802A940 @ case 21 .4byte _0802A964 @ case 22 .4byte _0802A9A8 @ case 23 .4byte _0802A9E0 @ case 24 .4byte _0802A9E0 @ case 25 .4byte _0802A9E0 @ case 26 .4byte _0802A9E0 @ case 27 .4byte _0802A9E0 @ case 28 .4byte _0802A9E0 @ case 29 .4byte _0802A9E0 @ case 30 .4byte _0802A9E0 @ case 31 .4byte _0802A9E0 @ case 32 .4byte _0802AA24 @ case 33 .4byte _0802AA44 @ case 34 .4byte _0802AA64 @ case 35 .4byte _0802AA84 @ case 36 .4byte _0802AA84 @ case 37 .4byte _0802AA84 @ case 38 .4byte _0802AA84 @ case 39 .4byte _0802AA84 @ case 40 .4byte _0802AAC0 @ case 41 .4byte _0802AAC0 @ case 42 .4byte _0802AAC0 @ case 43 .4byte _0802AAC0 @ case 44 .4byte _0802AAC0 @ case 45 _0802A48C: ldr r2, [r5] ldr r1, _0802A4A8 @ =0x000006DC adds r0, r2, r1 ldrb r1, [r0] adds r1, #1 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r1 lsls r0, r0, #3 ldr r3, _0802A4AC @ =0x00000724 adds r2, r2, r3 strh r0, [r2] b _0802AAD2 .align 2, 0 _0802A4A8: .4byte 0x000006DC _0802A4AC: .4byte 0x00000724 _0802A4B0: ldr r4, [r5] adds r0, r4, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0802A578 ldr r2, _0802A560 @ =0x000006DE adds r0, r4, r2 ldrh r0, [r0] cmp r0, #0x7c bls _0802A4E2 movs r0, #0xd7 lsls r0, r0, #1 adds r1, r4, r0 ldrb r0, [r1] cmp r0, #0x63 bhi _0802A4E2 adds r0, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r2 movs r1, #0x7c strh r1, [r0] _0802A4E2: ldr r3, [r5] ldr r1, _0802A560 @ =0x000006DE adds r0, r3, r1 ldrh r0, [r0] cmp r0, #4 beq _0802A4F0 b _0802AAD2 _0802A4F0: movs r2, #0xe3 lsls r2, r2, #1 adds r0, r3, r2 movs r2, #0 movs r1, #0xa8 strh r1, [r0] movs r4, #0xe4 lsls r4, r4, #1 adds r0, r3, r4 strh r1, [r0] movs r1, #0xe6 lsls r1, r1, #1 adds r0, r3, r1 movs r1, #0xd strh r1, [r0] adds r4, #2 adds r0, r3, r4 strh r1, [r0] movs r1, #0xe8 lsls r1, r1, #1 adds r0, r3, r1 strh r2, [r0] adds r4, #0xc adds r1, r3, r4 movs r0, #0x78 strh r0, [r1] movs r0, #0xee lsls r0, r0, #1 adds r1, r3, r0 movs r0, #0x3c strh r0, [r1] ldr r1, _0802A564 @ =0x040000D4 ldr r0, _0802A568 @ =0x084C156C str r0, [r1] ldr r0, _0802A56C @ =0x06010600 str r0, [r1, #4] ldr r0, _0802A570 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5] movs r3, #0xf1 lsls r3, r3, #1 adds r1, r0, r3 movs r0, #2 strb r0, [r1] ldr r0, _0802A574 @ =gMain ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r2, [r0] ldr r0, [r5] subs r4, #0x16 adds r0, r0, r4 movs r1, #1 strh r1, [r0] b _0802AAD2 .align 2, 0 _0802A560: .4byte 0x000006DE _0802A564: .4byte 0x040000D4 _0802A568: .4byte 0x084C156C _0802A56C: .4byte 0x06010600 _0802A570: .4byte 0x800000C0 _0802A574: .4byte gMain _0802A578: ldr r7, _0802A640 @ =0x000006DE adds r0, r4, r7 ldrh r6, [r0] cmp r6, #0x78 bne _0802A61E ldr r2, _0802A644 @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 movs r3, #0 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r3, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0xfa strh r0, [r1] subs r1, #4 adds r0, #0x16 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe6 strh r3, [r0] adds r1, #6 movs r0, #2 strh r0, [r1] adds r0, r4, #0 adds r0, #0xf2 strb r2, [r0] ldr r0, [r5] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0xfb strb r2, [r0] ldr r0, [r5] movs r4, #0xdf lsls r4, r4, #1 adds r0, r0, r4 strb r1, [r0] ldr r4, [r5] movs r0, #0xe0 lsls r0, r0, #1 adds r1, r4, r0 movs r0, #0xc8 lsls r0, r0, #2 strh r0, [r1] movs r1, #0xf1 lsls r1, r1, #1 adds r0, r4, r1 strb r2, [r0] ldr r2, [r5] movs r4, #0xe3 lsls r4, r4, #1 adds r0, r2, r4 movs r1, #0xa8 strh r1, [r0] adds r4, #2 adds r0, r2, r4 strh r1, [r0] movs r1, #0xe6 lsls r1, r1, #1 adds r0, r2, r1 movs r1, #0xd strh r1, [r0] adds r4, #2 adds r0, r2, r4 strh r1, [r0] movs r1, #0xe8 lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] movs r3, #0xeb lsls r3, r3, #1 adds r0, r2, r3 strh r6, [r0] adds r4, #0x12 adds r1, r2, r4 movs r0, #0x3c strh r0, [r1] _0802A61E: ldr r1, [r5] movs r2, #0xe0 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _0802A62E b _0802AAD2 _0802A62E: adds r1, r1, r7 ldrh r0, [r1] cmp r0, #0xaf bhi _0802A638 b _0802AAD2 _0802A638: movs r0, #0xb0 strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A640: .4byte 0x000006DE _0802A644: .4byte gMain _0802A648: ldr r1, [r5] ldr r3, _0802A660 @ =0x000006DE adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x82 beq _0802A656 b _0802AAD2 _0802A656: ldr r4, _0802A664 @ =0x00000286 adds r1, r1, r4 movs r0, #0x5a strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A660: .4byte 0x000006DE _0802A664: .4byte 0x00000286 _0802A668: ldr r4, [r5] ldr r0, _0802A688 @ =0x000006DE adds r1, r4, r0 ldrh r0, [r1] cmp r0, #0x5f beq _0802A676 b _0802AAD2 _0802A676: movs r0, #0xc strh r0, [r1] ldr r0, _0802A68C @ =gMain ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 adds r0, #0x21 b _0802A744 .align 2, 0 _0802A688: .4byte 0x000006DE _0802A68C: .4byte gMain _0802A690: ldr r4, [r5] ldr r3, _0802A6BC @ =0x000006DE adds r1, r4, r3 ldrh r0, [r1] cmp r0, #0x5f beq _0802A69E b _0802AAD2 _0802A69E: movs r0, #0xc strh r0, [r1] ldr r0, _0802A6C0 @ =0x000006E9 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0802A6C8 ldr r0, _0802A6C4 @ =gMain ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 adds r0, #0x18 b _0802A744 .align 2, 0 _0802A6BC: .4byte 0x000006DE _0802A6C0: .4byte 0x000006E9 _0802A6C4: .4byte gMain _0802A6C8: cmp r0, #0xa bgt _0802A6E0 ldr r0, _0802A6DC @ =gMain ldr r0, [r0, #0x4c] movs r1, #5 bl __umodsi3 adds r0, #0x18 b _0802A768 .align 2, 0 _0802A6DC: .4byte gMain _0802A6E0: movs r0, #0 ldrsb r0, [r1, r0] movs r1, #5 bl __modsi3 lsls r0, r0, #0x18 cmp r0, #0 bne _0802A704 ldr r0, _0802A700 @ =gMain ldr r0, [r0, #0x4c] movs r1, #5 bl __umodsi3 adds r0, #0x1c b _0802A744 .align 2, 0 _0802A700: .4byte gMain _0802A704: ldr r0, _0802A714 @ =gMain ldr r0, [r0, #0x4c] movs r1, #7 bl __umodsi3 adds r0, #0x18 b _0802A768 .align 2, 0 _0802A714: .4byte gMain _0802A718: ldr r4, [r5] ldr r0, _0802A74C @ =0x000006DE adds r1, r4, r0 ldrh r0, [r1] cmp r0, #0x5f beq _0802A726 b _0802AAD2 _0802A726: movs r0, #0xc strh r0, [r1] ldr r1, _0802A750 @ =0x000006E9 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _0802A75C ldr r0, _0802A754 @ =gMain ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 adds r0, #0x24 _0802A744: ldr r2, _0802A758 @ =0x000006DC adds r1, r4, r2 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802A74C: .4byte 0x000006DE _0802A750: .4byte 0x000006E9 _0802A754: .4byte gMain _0802A758: .4byte 0x000006DC _0802A75C: ldr r0, _0802A770 @ =gMain ldr r0, [r0, #0x4c] movs r1, #5 bl __umodsi3 adds r0, #0x24 _0802A768: ldr r3, _0802A774 @ =0x000006DC adds r1, r4, r3 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802A770: .4byte gMain _0802A774: .4byte 0x000006DC _0802A778: ldr r0, [r5] ldr r4, _0802A794 @ =0x000006DE adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x96 beq _0802A786 b _0802AAD2 _0802A786: movs r0, #4 bl sub_19B64 ldr r1, [r5] movs r0, #0x64 strh r0, [r1, #0x28] b _0802AAD2 .align 2, 0 _0802A794: .4byte 0x000006DE _0802A798: ldr r1, [r5] ldr r2, _0802A818 @ =0x00000281 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0802A7AA b _0802AAD2 _0802A7AA: ldr r4, _0802A81C @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x95 bne _0802A7C6 movs r3, #0xdd lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0xb4 strh r0, [r2] ldr r0, _0802A820 @ =0x000006C4 adds r1, r1, r0 movs r0, #3 strb r0, [r1] _0802A7C6: ldr r2, [r5] adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0x96 bne _0802A7F2 movs r0, #0x95 strh r0, [r1] ldr r3, _0802A824 @ =0x000001A5 adds r1, r2, r3 movs r0, #1 strb r0, [r1] bl sub_1B140 ldr r0, [r5] ldr r1, _0802A828 @ =0x0000036A adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r2, _0802A82C @ =0x0000036B adds r0, r0, r2 strb r1, [r0] _0802A7F2: ldr r1, [r5] adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0xaa beq _0802A7FE b _0802AAD2 _0802A7FE: movs r3, #0xbc lsls r3, r3, #2 adds r0, r1, r3 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r4, _0802A824 @ =0x000001A5 adds r0, r0, r4 strb r1, [r0] movs r0, #6 bl sub_19B64 b _0802AAD2 .align 2, 0 _0802A818: .4byte 0x00000281 _0802A81C: .4byte 0x000006DE _0802A820: .4byte 0x000006C4 _0802A824: .4byte 0x000001A5 _0802A828: .4byte 0x0000036A _0802A82C: .4byte 0x0000036B _0802A830: ldr r1, [r5] ldr r2, _0802A85C @ =0x000006DE adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x82 beq _0802A83E b _0802AAD2 _0802A83E: ldr r4, _0802A860 @ =0x000005F6 adds r1, r1, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _0802A850 adds r0, r2, #1 strb r0, [r1] _0802A850: ldr r0, [r5] movs r3, #0xbf lsls r3, r3, #3 adds r0, r0, r3 b _0802A882 .align 2, 0 _0802A85C: .4byte 0x000006DE _0802A860: .4byte 0x000005F6 _0802A864: ldr r1, [r5] ldr r4, _0802A8B0 @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x82 beq _0802A872 b _0802AAD2 _0802A872: subs r4, #0xe8 adds r1, r1, r4 movs r0, #3 strb r0, [r1] ldr r0, [r5] movs r1, #0xbf lsls r1, r1, #3 adds r0, r0, r1 _0802A882: movs r1, #0xe1 lsls r1, r1, #4 strh r1, [r0] ldr r0, _0802A8B4 @ =0x02032F20 ldr r1, _0802A8B8 @ =0x0869F664 bl MPlayStart ldr r2, _0802A8BC @ =0x040000D4 ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802A8C0 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802A8C4 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802A8C8 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] b _0802AAD2 .align 2, 0 _0802A8B0: .4byte 0x000006DE _0802A8B4: .4byte 0x02032F20 _0802A8B8: .4byte 0x0869F664 _0802A8BC: .4byte 0x040000D4 _0802A8C0: .4byte 0x08137E14 _0802A8C4: .4byte 0x05000220 _0802A8C8: .4byte 0x80000010 _0802A8CC: ldr r1, [r5] ldr r4, _0802A918 @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x82 bne _0802A906 ldr r2, _0802A91C @ =0x0000072B adds r1, r1, r2 movs r3, #0 movs r0, #1 strb r0, [r1] ldr r2, [r5] ldr r1, _0802A920 @ =0x000006DC adds r0, r2, r1 ldrb r1, [r0] subs r1, #0x11 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0xa movs r1, #0xca lsls r1, r1, #1 adds r2, r2, r1 strb r0, [r2] ldr r0, [r5] movs r2, #0xcb lsls r2, r2, #1 adds r0, r0, r2 strh r3, [r0] _0802A906: ldr r0, [r5] adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0x8c beq _0802A912 b _0802AAD2 _0802A912: movs r0, #0x8b strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A918: .4byte 0x000006DE _0802A91C: .4byte 0x0000072B _0802A920: .4byte 0x000006DC _0802A924: ldr r1, [r5] ldr r3, _0802A93C @ =0x000006DE adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x82 beq _0802A932 b _0802AAD2 _0802A932: adds r1, #0x6c movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A93C: .4byte 0x000006DE _0802A940: ldr r1, [r5] ldr r4, _0802A960 @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x96 beq _0802A94E b _0802AAD2 _0802A94E: movs r0, #0x64 strh r0, [r1, #0x28] adds r1, #0x72 movs r0, #0xf strb r0, [r1] movs r0, #8 bl sub_19B64 b _0802AAD2 .align 2, 0 _0802A960: .4byte 0x000006DE _0802A964: ldr r1, [r5] ldr r2, _0802A9A0 @ =0x000006DE adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x96 beq _0802A972 b _0802AAD2 _0802A972: movs r3, #0xa9 lsls r3, r3, #2 adds r0, r1, r3 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0802A982 b _0802AAD2 _0802A982: movs r4, #0xba lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] ldr r2, _0802A9A4 @ =0x0000016F adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r5] movs r3, #0xb1 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] b _0802AAD2 .align 2, 0 _0802A9A0: .4byte 0x000006DE _0802A9A4: .4byte 0x0000016F _0802A9A8: ldr r2, [r5] ldr r4, _0802A9D8 @ =0x000006DE adds r0, r2, r4 ldrh r0, [r0] cmp r0, #0x96 beq _0802A9B6 b _0802AAD2 _0802A9B6: movs r0, #0xc2 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x64 strh r0, [r1] movs r3, #0xc3 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r4, _0802A9DC @ =0x00000306 adds r1, r2, r4 movs r0, #1 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802A9D8: .4byte 0x000006DE _0802A9DC: .4byte 0x00000306 _0802A9E0: ldr r1, [r5] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0802A9F0 ldr r0, _0802AA1C @ =0x000006DE adds r1, r1, r0 movs r0, #0x51 strh r0, [r1] _0802A9F0: ldr r1, [r5] ldr r2, _0802AA1C @ =0x000006DE adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #1 strb r0, [r1, #0x1c] ldr r3, [r5] ldr r4, _0802AA20 @ =0x000006DC adds r0, r3, r4 ldrb r2, [r0] subs r2, #0x17 lsls r1, r2, #5 subs r1, r1, r2 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 lsls r0, r0, #6 str r0, [r3, #0x3c] b _0802AAD2 .align 2, 0 _0802AA1C: .4byte 0x000006DE _0802AA20: .4byte 0x000006DC _0802AA24: ldr r0, [r5] ldr r1, _0802AA40 @ =0x000006DE adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #0x91 bl m4aSongNumStart ldr r1, [r5] movs r0, #0x64 str r0, [r1, #0x3c] b _0802AAD2 .align 2, 0 _0802AA40: .4byte 0x000006DE _0802AA44: ldr r0, [r5] ldr r2, _0802AA60 @ =0x000006DE adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #0x91 bl m4aSongNumStart ldr r1, [r5] movs r0, #0xfa lsls r0, r0, #1 str r0, [r1, #0x3c] b _0802AAD2 .align 2, 0 _0802AA60: .4byte 0x000006DE _0802AA64: ldr r0, [r5] ldr r3, _0802AA80 @ =0x000006DE adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #0x91 bl m4aSongNumStart ldr r1, [r5] movs r0, #0xe1 lsls r0, r0, #2 str r0, [r1, #0x3c] b _0802AAD2 .align 2, 0 _0802AA80: .4byte 0x000006DE _0802AA84: ldr r4, [r5] ldr r1, _0802AAB4 @ =0x000006DE adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 ldr r2, _0802AAB8 @ =0x0000070E adds r1, r4, r2 ldr r3, _0802AABC @ =0x000006DC adds r0, r4, r3 ldrb r0, [r0] adds r0, #0xdd ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x63 ble _0802AAD2 movs r0, #0x63 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802AAB4: .4byte 0x000006DE _0802AAB8: .4byte 0x0000070E _0802AABC: .4byte 0x000006DC _0802AAC0: ldr r0, [r5] ldr r1, _0802AAD8 @ =0x000006DE adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x96 bne _0802AAD2 movs r0, #3 bl sub_19B64 _0802AAD2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802AAD8: .4byte 0x000006DE thumb_func_start sub_2AADC sub_2AADC: @ 0x0802AADC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _0802AB5C @ =0x020314E0 ldr r3, [r0] ldrb r5, [r3, #0x1e] cmp r5, #0 beq _0802AAF6 bl sub_2C518 _0802AAF6: ldr r0, _0802AB60 @ =0x000005A6 adds r4, r3, r0 ldrh r1, [r4] ldr r6, _0802AB64 @ =0x086ACF38 adds r0, #2 adds r2, r3, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r0, r0, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r1, r0 bge _0802AB38 adds r0, r1, #1 strh r0, [r4] ldrh r1, [r4] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r0, r0, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r1, r0 blt _0802AB38 strh r5, [r4] ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x22 bgt _0802AB38 adds r0, r1, #1 strb r0, [r2] _0802AB38: ldr r4, _0802AB5C @ =0x020314E0 ldr r0, [r4] movs r1, #0xb5 lsls r1, r1, #3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x22 bls _0802AB50 bl _0802C4D2 _0802AB50: lsls r0, r0, #2 ldr r1, _0802AB68 @ =_0802AB6C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802AB5C: .4byte 0x020314E0 _0802AB60: .4byte 0x000005A6 _0802AB64: .4byte 0x086ACF38 _0802AB68: .4byte _0802AB6C _0802AB6C: @ jump table .4byte _0802ABF8 @ case 0 .4byte _0802AD18 @ case 1 .4byte _0802ADB4 @ case 2 .4byte _0802AE98 @ case 3 .4byte _0802AF6C @ case 4 .4byte _0802AF6C @ case 5 .4byte _0802AF6C @ case 6 .4byte _0802AF6C @ case 7 .4byte _0802AF6C @ case 8 .4byte _0802AF6C @ case 9 .4byte _0802AF6C @ case 10 .4byte _0802B200 @ case 11 .4byte _0802B33C @ case 12 .4byte _0802B42C @ case 13 .4byte _0802B460 @ case 14 .4byte _0802B4B8 @ case 15 .4byte _0802B510 @ case 16 .4byte _0802B574 @ case 17 .4byte _0802B574 @ case 18 .4byte _0802B574 @ case 19 .4byte _0802B574 @ case 20 .4byte _0802B574 @ case 21 .4byte _0802B574 @ case 22 .4byte _0802B574 @ case 23 .4byte _0802B574 @ case 24 .4byte _0802B574 @ case 25 .4byte _0802B8D0 @ case 26 .4byte _0802B574 @ case 27 .4byte _0802B574 @ case 28 .4byte _0802BA7C @ case 29 .4byte _0802BB4C @ case 30 .4byte _0802BE94 @ case 31 .4byte _0802BEB4 @ case 32 .4byte _0802C04C @ case 33 .4byte _0802C314 @ case 34 _0802ABF8: ldr r0, _0802ACDC @ =gMain ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrb r0, [r0, #4] cmp r0, #1 bhi _0802AC20 ldr r2, _0802ACE0 @ =0x020314E0 ldr r0, [r2] movs r3, #0x13 ldrsb r3, [r0, r3] cmp r3, #4 beq _0802AC16 cmp r3, #8 bne _0802AC20 _0802AC16: movs r3, #0xa5 lsls r3, r3, #2 adds r1, r0, r3 movs r0, #1 strb r0, [r1] _0802AC20: ldr r7, _0802ACE0 @ =0x020314E0 ldr r0, [r7] movs r4, #1 mov r8, r4 mov r1, r8 strb r1, [r0, #0x1f] ldr r6, [r7] ldr r2, _0802ACE4 @ =0x0000132C adds r4, r6, r2 ldr r5, [r4] movs r3, #0x30 ldrsh r0, [r5, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r5, #0x30] ldr r5, [r4] movs r1, #0x32 ldrsh r0, [r5, r1] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r5, #0x32] ldr r1, [r4] movs r3, #0x30 ldrsh r2, [r1, r3] ldr r0, [r1, #0x34] adds r0, r0, r2 str r0, [r1, #0x34] ldr r1, [r4] movs r4, #0x32 ldrsh r2, [r1, r4] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] adds r6, #0xe4 movs r0, #9 strb r0, [r6] ldr r1, _0802ACE8 @ =0x040000D4 ldr r0, _0802ACEC @ =0x081428D4 str r0, [r1] ldr r0, _0802ACF0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0802ACF4 @ =0x80000E00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, [r7] ldr r0, _0802ACF8 @ =0x000005F6 adds r3, r2, r0 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #9 ldr r5, _0802ACFC @ =0x08138014 adds r0, r0, r5 str r0, [r1] ldr r0, _0802AD00 @ =0x060164C0 str r0, [r1, #4] ldr r4, _0802AD04 @ =0x80000040 str r4, [r1, #8] ldr r0, [r1, #8] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r0, #4 lsls r0, r0, #6 adds r0, r0, r5 str r0, [r1] ldr r0, _0802AD08 @ =0x06016760 str r0, [r1, #4] str r4, [r1, #8] ldr r0, [r1, #8] ldr r1, _0802AD0C @ =0x000005F7 adds r2, r2, r1 mov r3, r8 strb r3, [r2] ldr r0, [r7] ldr r4, _0802AD10 @ =0x000005A6 adds r0, r0, r4 ldrh r4, [r0] cmp r4, #1 beq _0802ACCA bl _0802C4D2 _0802ACCA: ldr r0, _0802AD14 @ =0x02032EE0 bl m4aMPlayStop ldr r0, [r7] adds r0, #0x71 strb r4, [r0] bl _0802C4D2 .align 2, 0 _0802ACDC: .4byte gMain _0802ACE0: .4byte 0x020314E0 _0802ACE4: .4byte 0x0000132C _0802ACE8: .4byte 0x040000D4 _0802ACEC: .4byte 0x081428D4 _0802ACF0: .4byte 0x06015800 _0802ACF4: .4byte 0x80000E00 _0802ACF8: .4byte 0x000005F6 _0802ACFC: .4byte 0x08138014 _0802AD00: .4byte 0x060164C0 _0802AD04: .4byte 0x80000040 _0802AD08: .4byte 0x06016760 _0802AD0C: .4byte 0x000005F7 _0802AD10: .4byte 0x000005A6 _0802AD14: .4byte 0x02032EE0 _0802AD18: ldr r4, _0802AD94 @ =0x020314E0 ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0802AD48 movs r7, #0xe4 lsls r7, r7, #3 adds r1, r1, r7 movs r0, #0 strb r0, [r1] ldr r0, [r4] ldr r1, _0802AD98 @ =0x0000071D adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r4] ldr r2, _0802AD9C @ =0x0000071E adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] ldr r3, _0802ADA0 @ =0x0000071F adds r0, r0, r3 strb r1, [r0] _0802AD48: ldr r0, [r4] ldr r2, _0802ADA4 @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] movs r1, #0 strb r1, [r0, #1] ldr r4, [r4] adds r2, r4, r2 ldr r0, [r2] strh r1, [r0, #0x30] ldr r0, [r2] strh r1, [r0, #0x32] ldr r1, [r2] movs r7, #0x30 ldrsh r3, [r1, r7] ldr r0, [r1, #0x34] adds r0, r0, r3 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0x32 ldrsh r2, [r1, r0] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] ldr r1, _0802ADA8 @ =0x000005A6 adds r4, r4, r1 ldrh r0, [r4] cmp r0, #0 beq _0802AD86 bl _0802C4D2 _0802AD86: ldr r0, _0802ADAC @ =0x02032F20 ldr r1, _0802ADB0 @ =0x0869FCE4 bl MPlayStart bl _0802C4D2 .align 2, 0 _0802AD94: .4byte 0x020314E0 _0802AD98: .4byte 0x0000071D _0802AD9C: .4byte 0x0000071E _0802ADA0: .4byte 0x0000071F _0802ADA4: .4byte 0x0000132C _0802ADA8: .4byte 0x000005A6 _0802ADAC: .4byte 0x02032F20 _0802ADB0: .4byte 0x0869FCE4 _0802ADB4: ldr r2, _0802AE14 @ =0x040000D4 ldr r3, _0802AE18 @ =0x020314E0 ldr r0, [r3] ldr r4, _0802AE1C @ =0x000005F6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802AE20 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802AE24 @ =0x05000220 str r0, [r2, #4] ldr r5, _0802AE28 @ =0x80000010 str r5, [r2, #8] ldr r0, [r2, #8] ldr r4, _0802AE2C @ =gMain ldrh r0, [r4, #0x3c] movs r0, #4 strh r0, [r4, #0x3c] ldr r0, [r3] ldr r7, _0802AE30 @ =0x000005A6 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bhi _0802ADF0 bl _0802C4D2 _0802ADF0: ldr r1, _0802AE34 @ =0x02031520 ldr r3, [r1, #0x30] str r3, [r2] ldr r0, _0802AE38 @ =0x05000200 str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r4, #4] adds r4, r1, #0 cmp r0, #1 bne _0802AE44 adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AE3C @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AE40 @ =0x80000060 b _0802AE50 .align 2, 0 _0802AE14: .4byte 0x040000D4 _0802AE18: .4byte 0x020314E0 _0802AE1C: .4byte 0x000005F6 _0802AE20: .4byte 0x08137E14 _0802AE24: .4byte 0x05000220 _0802AE28: .4byte 0x80000010 _0802AE2C: .4byte gMain _0802AE30: .4byte 0x000005A6 _0802AE34: .4byte 0x02031520 _0802AE38: .4byte 0x05000200 _0802AE3C: .4byte 0x05000240 _0802AE40: .4byte 0x80000060 _0802AE44: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AE80 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AE84 @ =0x80000070 _0802AE50: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802AE88 @ =0x040000D4 ldr r0, [r4, #0x30] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0802AE8C @ =0x05000340 str r0, [r1, #4] ldr r0, _0802AE90 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0802AE94 @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r2] adds r0, #0x70 strb r1, [r0] bl _0802C4D2 .align 2, 0 _0802AE80: .4byte 0x05000240 _0802AE84: .4byte 0x80000070 _0802AE88: .4byte 0x040000D4 _0802AE8C: .4byte 0x05000340 _0802AE90: .4byte 0x80000030 _0802AE94: .4byte 0x020314E0 _0802AE98: ldr r4, _0802AED8 @ =gMain ldrh r0, [r4, #0x3c] movs r0, #7 strh r0, [r4, #0x3c] ldr r3, _0802AEDC @ =0x020314E0 ldr r0, [r3] ldr r7, _0802AEE0 @ =0x000005A6 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bls _0802AF34 ldr r2, _0802AEE4 @ =0x040000D4 ldr r1, _0802AEE8 @ =0x02031520 ldr r3, [r1, #0x34] str r3, [r2] ldr r0, _0802AEEC @ =0x05000200 str r0, [r2, #4] ldr r0, _0802AEF0 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r4, #4] adds r4, r1, #0 cmp r0, #1 bne _0802AEFC adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AEF4 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AEF8 @ =0x80000060 b _0802AF08 .align 2, 0 _0802AED8: .4byte gMain _0802AEDC: .4byte 0x020314E0 _0802AEE0: .4byte 0x000005A6 _0802AEE4: .4byte 0x040000D4 _0802AEE8: .4byte 0x02031520 _0802AEEC: .4byte 0x05000200 _0802AEF0: .4byte 0x80000010 _0802AEF4: .4byte 0x05000240 _0802AEF8: .4byte 0x80000060 _0802AEFC: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AF48 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AF4C @ =0x80000070 _0802AF08: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802AF50 @ =0x040000D4 ldr r0, [r4, #0x34] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0802AF54 @ =0x05000340 str r0, [r1, #4] ldr r0, _0802AF58 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0802AF5C @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r1, #2 strb r1, [r0] ldr r0, [r2] adds r0, #0x70 movs r1, #1 strb r1, [r0] _0802AF34: ldr r1, _0802AF50 @ =0x040000D4 ldr r0, _0802AF60 @ =0x08137F14 str r0, [r1] ldr r0, _0802AF64 @ =0x05000220 str r0, [r1, #4] ldr r0, _0802AF68 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] bl _0802C4D2 .align 2, 0 _0802AF48: .4byte 0x05000240 _0802AF4C: .4byte 0x80000070 _0802AF50: .4byte 0x040000D4 _0802AF54: .4byte 0x05000340 _0802AF58: .4byte 0x80000030 _0802AF5C: .4byte 0x020314E0 _0802AF60: .4byte 0x08137F14 _0802AF64: .4byte 0x05000220 _0802AF68: .4byte 0x80000010 _0802AF6C: ldr r3, _0802AFDC @ =0x020314E0 ldr r4, [r3] movs r7, #0xb5 lsls r7, r7, #3 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #4 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 beq _0802AF8C cmp r0, #6 bne _0802AFFC _0802AF8C: ldr r0, _0802AFE0 @ =gMain ldrb r1, [r0, #4] mov ip, r0 cmp r1, #3 bhi _0802AFC2 movs r1, #0x13 ldrsb r1, [r4, r1] cmp r1, #4 bne _0802AFA6 movs r0, #0x17 ldrsb r0, [r4, r0] cmp r0, #9 beq _0802AFB2 _0802AFA6: cmp r1, #8 bne _0802AFC2 movs r0, #0x17 ldrsb r0, [r4, r0] cmp r0, #3 bne _0802AFC2 _0802AFB2: ldr r1, _0802AFE4 @ =0x040000D4 ldr r0, _0802AFE8 @ =0x02030710 str r0, [r1] ldr r0, _0802AFEC @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802AFF0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802AFC2: ldr r1, _0802AFE4 @ =0x040000D4 ldr r0, _0802AFF4 @ =0x08137F14 str r0, [r1] ldr r0, _0802AFF8 @ =0x05000220 str r0, [r1, #4] ldr r0, _0802AFF0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] mov r1, ip ldrh r0, [r1, #0x3c] movs r0, #6 strh r0, [r1, #0x3c] b _0802B026 .align 2, 0 _0802AFDC: .4byte 0x020314E0 _0802AFE0: .4byte gMain _0802AFE4: .4byte 0x040000D4 _0802AFE8: .4byte 0x02030710 _0802AFEC: .4byte 0x050003A0 _0802AFF0: .4byte 0x80000010 _0802AFF4: .4byte 0x08137F14 _0802AFF8: .4byte 0x05000220 _0802AFFC: ldr r2, _0802B0EC @ =0x040000D4 ldr r7, _0802B0F0 @ =0x000005F6 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802B0F4 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B0F8 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B0FC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802B100 @ =gMain ldrh r1, [r0, #0x3c] movs r1, #7 strh r1, [r0, #0x3c] mov ip, r0 _0802B026: mov r1, ip ldr r0, [r1, #0x44] ldr r6, [r0, #0xc] ldrh r0, [r6] cmp r0, #0 bne _0802B034 b _0802B1AC _0802B034: ldr r4, _0802B104 @ =0x020314E0 ldr r2, [r4] ldr r7, _0802B108 @ =0x0000132C adds r1, r2, r7 ldr r0, [r1] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r1] ldrh r0, [r0, #0x26] strh r0, [r6, #4] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #5 bne _0802B11C movs r5, #0 lsls r0, r3, #0x10 ldr r1, _0802B10C @ =0x03005000 mov r8, r1 ldr r2, _0802B110 @ =0x081B0FE4 mov sb, r2 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov sl, r0 _0802B066: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B114 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _0802B118 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B066 b _0802B1AC .align 2, 0 _0802B0EC: .4byte 0x040000D4 _0802B0F0: .4byte 0x000005F6 _0802B0F4: .4byte 0x08137E14 _0802B0F8: .4byte 0x05000220 _0802B0FC: .4byte 0x80000010 _0802B100: .4byte gMain _0802B104: .4byte 0x020314E0 _0802B108: .4byte 0x0000132C _0802B10C: .4byte 0x03005000 _0802B110: .4byte 0x081B0FE4 _0802B114: .4byte 0x000001FF _0802B118: .4byte 0xFFFFFE00 _0802B11C: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802B1E8 @ =0x03005000 mov sb, r3 ldr r4, _0802B1EC @ =0x081B0FE4 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 str r0, [sp] ldr r7, _0802B1F0 @ =0xFFFFFE00 mov sl, r7 _0802B136: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r4, [sp] adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r4 add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B1F4 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B136 _0802B1AC: mov r3, ip ldr r0, [r3, #0x44] ldr r1, [r0, #0xc] movs r0, #1 strh r0, [r1] ldr r0, _0802B1F8 @ =0x020314E0 ldr r1, [r0] movs r4, #0xb5 lsls r4, r4, #3 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa beq _0802B1CE bl _0802C4D2 _0802B1CE: ldr r7, _0802B1FC @ =0x000005A6 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #3 beq _0802B1DC bl _0802C4D2 _0802B1DC: ldr r0, [r3, #0x44] ldr r1, [r0, #0xc] movs r0, #0 strh r0, [r1] bl _0802C4D2 .align 2, 0 _0802B1E8: .4byte 0x03005000 _0802B1EC: .4byte 0x081B0FE4 _0802B1F0: .4byte 0xFFFFFE00 _0802B1F4: .4byte 0x000001FF _0802B1F8: .4byte 0x020314E0 _0802B1FC: .4byte 0x000005A6 _0802B200: ldr r2, _0802B29C @ =0x040000D4 ldr r6, _0802B2A0 @ =0x020314E0 ldr r3, [r6] ldr r1, _0802B2A4 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802B2A8 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B2AC @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B2B0 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xa2 lsls r2, r2, #2 adds r0, r3, r2 ldrh r2, [r0] lsls r2, r2, #8 ldr r4, _0802B2B4 @ =0x0000132C adds r0, r3, r4 ldr r1, [r0] ldr r0, [r1, #0x34] subs r2, r2, r0 lsls r2, r2, #0x10 ldr r7, _0802B2B8 @ =0x0000028A adds r0, r3, r7 ldrh r0, [r0] lsls r0, r0, #8 ldr r1, [r1, #0x38] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r7, r2, #0x10 orrs r7, r0 ldr r5, _0802B2BC @ =0x000005AC adds r3, r3, r5 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r0, r1 adds r0, r1, #0 asrs r4, r7, #0x10 adds r1, r4, #0 muls r1, r4, r1 adds r0, r0, r1 str r0, [r3] lsls r0, r0, #2 bl Sqrt ldr r1, [r6] adds r1, r1, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] rsbs r0, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r4, #0 bl ArcTan2 ldr r6, [r6] movs r2, #0xb6 lsls r2, r2, #3 adds r1, r6, r2 strh r0, [r1] ldr r0, _0802B2C0 @ =gMain ldrb r0, [r0, #4] cmp r0, #3 bls _0802B2C8 ldr r3, _0802B2C4 @ =0x00000389 adds r1, r6, r3 movs r0, #0 strb r0, [r1] b _0802B2F4 .align 2, 0 _0802B29C: .4byte 0x040000D4 _0802B2A0: .4byte 0x020314E0 _0802B2A4: .4byte 0x000005F6 _0802B2A8: .4byte 0x08137E14 _0802B2AC: .4byte 0x05000220 _0802B2B0: .4byte 0x80000010 _0802B2B4: .4byte 0x0000132C _0802B2B8: .4byte 0x0000028A _0802B2BC: .4byte 0x000005AC _0802B2C0: .4byte gMain _0802B2C4: .4byte 0x00000389 _0802B2C8: movs r1, #0x13 ldrsb r1, [r6, r1] cmp r1, #4 bne _0802B2D8 movs r0, #0x17 ldrsb r0, [r6, r0] cmp r0, #9 beq _0802B2E4 _0802B2D8: cmp r1, #8 bne _0802B2F4 movs r0, #0x17 ldrsb r0, [r6, r0] cmp r0, #3 bne _0802B2F4 _0802B2E4: ldr r1, _0802B324 @ =0x040000D4 ldr r0, _0802B328 @ =0x020306D0 str r0, [r1] ldr r0, _0802B32C @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802B330 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802B2F4: movs r5, #0 ldr r7, _0802B334 @ =0x020314E0 ldr r6, _0802B338 @ =0x0000132C _0802B2FA: ldr r4, [r7] adds r4, r4, r6 ldr r0, [r4] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #2 adds r3, r0, r2 ldrh r0, [r0, #0x10] strh r0, [r3, #0x14] ldr r0, [r4] adds r2, r0, r2 ldrh r0, [r0, #0x12] strh r0, [r2, #0x16] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _0802B2FA bl _0802C4D2 .align 2, 0 _0802B324: .4byte 0x040000D4 _0802B328: .4byte 0x020306D0 _0802B32C: .4byte 0x050003A0 _0802B330: .4byte 0x80000010 _0802B334: .4byte 0x020314E0 _0802B338: .4byte 0x0000132C _0802B33C: ldr r4, _0802B410 @ =0x020314E0 mov sl, r4 ldr r5, [r4] ldr r7, _0802B414 @ =0x000005A6 adds r0, r5, r7 ldrh r0, [r0] movs r4, #0x63 subs r4, r4, r0 movs r0, #0xb6 lsls r0, r0, #3 adds r6, r5, r0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x64 bl __divsi3 ldr r1, _0802B418 @ =0xFFFFE000 adds r2, r1, #0 adds r0, r0, r2 ldrh r1, [r6] subs r1, r1, r0 strh r1, [r6] ldr r7, _0802B41C @ =0x0000132C adds r1, r5, r7 ldr r0, [r1] ldrh r3, [r0, #0xa] adds r2, r2, r3 strh r2, [r0, #0xa] subs r4, #0x14 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 cmp r4, #0 bge _0802B388 movs r5, #0 ldr r1, [r1] movs r0, #0 strb r0, [r1] _0802B388: mov r0, sl ldr r4, [r0] ldr r2, _0802B420 @ =0x000005AC adds r1, r4, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 ldr r1, [r1] muls r0, r1, r0 movs r1, #0x50 bl __divsi3 mov sb, r0 movs r3, #0xb6 lsls r3, r3, #3 adds r4, r4, r3 ldrh r0, [r4] bl sub_C74 mov r4, sl ldr r5, [r4] adds r1, r5, r7 ldr r6, [r1] movs r2, #0xa2 lsls r2, r2, #2 adds r1, r5, r2 movs r3, #0 ldrsh r4, [r1, r3] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sb muls r1, r0, r1 adds r0, r1, #0 ldr r2, _0802B424 @ =0x00004E20 mov r8, r2 mov r1, r8 bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] movs r3, #0xb6 lsls r3, r3, #3 adds r5, r5, r3 ldrh r0, [r5] bl sub_C24 mov r4, sl ldr r1, [r4] adds r2, r1, r7 ldr r5, [r2] ldr r7, _0802B428 @ =0x0000028A adds r1, r1, r7 movs r2, #0 ldrsh r4, [r1, r2] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r3, sb muls r3, r0, r3 adds r0, r3, #0 mov r1, r8 bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] bl _0802C4D2 .align 2, 0 _0802B410: .4byte 0x020314E0 _0802B414: .4byte 0x000005A6 _0802B418: .4byte 0xFFFFE000 _0802B41C: .4byte 0x0000132C _0802B420: .4byte 0x000005AC _0802B424: .4byte 0x00004E20 _0802B428: .4byte 0x0000028A _0802B42C: ldr r5, _0802B454 @ =0x020314E0 ldr r1, [r5] ldr r4, _0802B458 @ =0x0000132C adds r0, r1, r4 ldr r2, [r0] movs r3, #0 movs r0, #0 strh r0, [r2, #6] adds r1, #0x71 strb r3, [r1] ldr r0, [r5] adds r0, r0, r4 ldr r1, [r0] ldr r4, _0802B45C @ =0xFFFFE000 adds r0, r4, #0 ldrh r7, [r1, #0xa] adds r0, r0, r7 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B454: .4byte 0x020314E0 _0802B458: .4byte 0x0000132C _0802B45C: .4byte 0xFFFFE000 _0802B460: ldr r2, _0802B498 @ =0x040000D4 ldr r0, _0802B49C @ =0x020314E0 ldr r3, [r0] ldr r1, _0802B4A0 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802B4A4 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B4A8 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B4AC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802B4B0 @ =0x0000132C adds r3, r3, r2 ldr r1, [r3] ldr r3, _0802B4B4 @ =0xFFFFE000 adds r0, r3, #0 ldrh r4, [r1, #0xa] adds r0, r0, r4 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B498: .4byte 0x040000D4 _0802B49C: .4byte 0x020314E0 _0802B4A0: .4byte 0x000005F6 _0802B4A4: .4byte 0x08137E14 _0802B4A8: .4byte 0x05000220 _0802B4AC: .4byte 0x80000010 _0802B4B0: .4byte 0x0000132C _0802B4B4: .4byte 0xFFFFE000 _0802B4B8: ldr r2, _0802B4F0 @ =0x040000D4 ldr r0, _0802B4F4 @ =0x020314E0 ldr r3, [r0] ldr r7, _0802B4F8 @ =0x000005F6 adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802B4FC @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B500 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B504 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802B508 @ =0x0000132C adds r3, r3, r0 ldr r1, [r3] ldr r2, _0802B50C @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B4F0: .4byte 0x040000D4 _0802B4F4: .4byte 0x020314E0 _0802B4F8: .4byte 0x000005F6 _0802B4FC: .4byte 0x08137E14 _0802B500: .4byte 0x05000220 _0802B504: .4byte 0x80000010 _0802B508: .4byte 0x0000132C _0802B50C: .4byte 0xFFFFE000 _0802B510: ldr r4, _0802B554 @ =0x020314E0 ldr r0, [r4] ldr r7, _0802B558 @ =0x000005A6 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0 bne _0802B524 movs r0, #0x9b bl m4aSongNumStart _0802B524: ldr r2, _0802B55C @ =0x040000D4 ldr r3, [r4] ldr r1, _0802B560 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802B564 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B568 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B56C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802B570 @ =0x0000132C adds r3, r3, r2 ldr r1, [r3] movs r0, #0xe0 lsls r0, r0, #7 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B554: .4byte 0x020314E0 _0802B558: .4byte 0x000005A6 _0802B55C: .4byte 0x040000D4 _0802B560: .4byte 0x000005F6 _0802B564: .4byte 0x08137E14 _0802B568: .4byte 0x05000220 _0802B56C: .4byte 0x80000010 _0802B570: .4byte 0x0000132C _0802B574: ldr r0, _0802B664 @ =gMain ldr r1, [r0, #0x44] ldr r6, [r1, #0xc] ldrh r1, [r6] mov ip, r0 cmp r1, #0 bne _0802B584 b _0802B714 _0802B584: ldr r3, _0802B668 @ =0x020314E0 ldr r0, [r3] ldr r1, _0802B66C @ =0x0000132C adds r0, r0, r1 ldr r2, [r0] movs r0, #1 strb r0, [r2] ldr r2, [r3] adds r1, r2, r1 ldr r0, [r1] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r1] ldrh r0, [r0, #0x26] strh r0, [r6, #4] ldr r1, _0802B670 @ =0x086ACFF4 movs r4, #0xb5 lsls r4, r4, #3 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #0x11 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #7 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #5 bne _0802B684 movs r5, #0 lsls r0, r3, #0x10 ldr r7, _0802B674 @ =0x03005000 mov r8, r7 ldr r1, _0802B678 @ =0x081B0FE4 mov sb, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov sl, r0 _0802B5DE: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B67C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _0802B680 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B5DE b _0802B714 .align 2, 0 _0802B664: .4byte gMain _0802B668: .4byte 0x020314E0 _0802B66C: .4byte 0x0000132C _0802B670: .4byte 0x086ACFF4 _0802B674: .4byte 0x03005000 _0802B678: .4byte 0x081B0FE4 _0802B67C: .4byte 0x000001FF _0802B680: .4byte 0xFFFFFE00 _0802B684: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802B75C @ =0x03005000 mov sb, r3 ldr r4, _0802B760 @ =0x081B0FE4 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 str r0, [sp] ldr r7, _0802B764 @ =0xFFFFFE00 mov sl, r7 _0802B69E: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r4, [sp] adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r4 add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B768 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B69E _0802B714: mov r3, ip ldr r0, [r3, #0x44] ldr r1, [r0, #0xc] movs r0, #1 strh r0, [r1] ldr r4, _0802B76C @ =0x020314E0 ldr r1, [r4] movs r7, #0xb5 lsls r7, r7, #3 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 beq _0802B73A cmp r0, #0x14 beq _0802B73A cmp r0, #0x15 bne _0802B7AC _0802B73A: ldr r1, _0802B76C @ =0x020314E0 ldr r0, [r1] ldr r2, _0802B770 @ =0x000005A9 adds r0, r0, r2 movs r1, #0xc8 strb r1, [r0] mov r3, ip ldrb r0, [r3, #4] cmp r0, #3 bls _0802B778 ldr r4, _0802B76C @ =0x020314E0 ldr r0, [r4] ldr r7, _0802B774 @ =0x00000389 adds r0, r0, r7 movs r1, #1 strb r1, [r0] b _0802B7F8 .align 2, 0 _0802B75C: .4byte 0x03005000 _0802B760: .4byte 0x081B0FE4 _0802B764: .4byte 0xFFFFFE00 _0802B768: .4byte 0x000001FF _0802B76C: .4byte 0x020314E0 _0802B770: .4byte 0x000005A9 _0802B774: .4byte 0x00000389 _0802B778: ldr r0, _0802B7A0 @ =0x020314E0 ldr r1, [r0] movs r2, #0x13 ldrsb r2, [r1, r2] cmp r2, #4 bne _0802B78C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 beq _0802B798 _0802B78C: cmp r2, #8 bne _0802B7F8 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #3 bne _0802B7F8 _0802B798: ldr r1, _0802B7A4 @ =0x040000D4 ldr r0, _0802B7A8 @ =0x020306F0 b _0802B7EC .align 2, 0 _0802B7A0: .4byte 0x020314E0 _0802B7A4: .4byte 0x040000D4 _0802B7A8: .4byte 0x020306F0 _0802B7AC: cmp r0, #0x13 beq _0802B7B4 cmp r0, #0x16 bne _0802B7F8 _0802B7B4: mov r2, ip ldrb r0, [r2, #4] cmp r0, #3 bls _0802B7CC ldr r3, _0802B7C8 @ =0x00000389 adds r1, r1, r3 movs r0, #3 strb r0, [r1] b _0802B7F8 .align 2, 0 _0802B7C8: .4byte 0x00000389 _0802B7CC: movs r2, #0x13 ldrsb r2, [r1, r2] cmp r2, #4 bne _0802B7DC movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 beq _0802B7E8 _0802B7DC: cmp r2, #8 bne _0802B7F8 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #3 bne _0802B7F8 _0802B7E8: ldr r1, _0802B820 @ =0x040000D4 ldr r0, _0802B824 @ =0x02030730 _0802B7EC: str r0, [r1] ldr r0, _0802B828 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802B82C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802B7F8: ldr r4, _0802B830 @ =0x020314E0 ldr r1, [r4] movs r7, #0xb5 lsls r7, r7, #3 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 bne _0802B880 mov r2, ip ldrb r0, [r2, #4] cmp r0, #3 bls _0802B838 ldr r3, _0802B834 @ =0x00000389 adds r1, r1, r3 movs r0, #0xa strb r0, [r1] b _0802B880 .align 2, 0 _0802B820: .4byte 0x040000D4 _0802B824: .4byte 0x02030730 _0802B828: .4byte 0x050003A0 _0802B82C: .4byte 0x80000010 _0802B830: .4byte 0x020314E0 _0802B834: .4byte 0x00000389 _0802B838: movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0802B85A movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 bne _0802B85A bl sub_28E2C ldr r0, [r4] ldr r4, _0802B8C4 @ =0x000005F2 adds r0, r0, r4 movs r1, #0 strb r1, [r0] bl m4aMPlayAllStop _0802B85A: ldr r4, _0802B8C8 @ =0x020314E0 ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #8 bne _0802B880 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #3 bne _0802B880 bl sub_292A0 ldr r0, [r4] ldr r7, _0802B8C4 @ =0x000005F2 adds r0, r0, r7 movs r1, #0 strb r1, [r0] bl m4aMPlayAllStop _0802B880: ldr r5, _0802B8C8 @ =0x020314E0 ldr r1, [r5] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1c beq _0802B898 bl _0802C4D2 _0802B898: ldr r4, _0802B8CC @ =0x000005A6 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0 bne _0802B8AC bl m4aMPlayAllStop movs r0, #8 bl sub_11B0 _0802B8AC: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #2 beq _0802B8BA bl _0802C4D2 _0802B8BA: movs r0, #0x9c bl m4aSongNumStart bl _0802C4D2 .align 2, 0 _0802B8C4: .4byte 0x000005F2 _0802B8C8: .4byte 0x020314E0 _0802B8CC: .4byte 0x000005A6 _0802B8D0: ldr r0, _0802B9B8 @ =gMain ldr r0, [r0, #0x44] ldr r6, [r0, #0xc] ldrh r0, [r6] cmp r0, #0 bne _0802B8E0 bl _0802C4D2 _0802B8E0: ldr r3, _0802B9BC @ =0x020314E0 ldr r2, [r3] ldr r4, _0802B9C0 @ =0x0000132C adds r1, r2, r4 ldr r0, [r1] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r1] ldrh r0, [r0, #0x26] strh r0, [r6, #4] ldr r1, _0802B9C4 @ =0x086ACFF4 movs r7, #0xb5 lsls r7, r7, #3 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #0x11 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #7 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #5 bne _0802B9D8 movs r5, #0 lsls r0, r3, #0x10 ldr r1, _0802B9C8 @ =0x03005000 mov r8, r1 ldr r2, _0802B9CC @ =0x081B0FE4 mov sb, r2 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov sl, r0 _0802B930: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B9D0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _0802B9D4 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B930 bl _0802C4D2 .align 2, 0 _0802B9B8: .4byte gMain _0802B9BC: .4byte 0x020314E0 _0802B9C0: .4byte 0x0000132C _0802B9C4: .4byte 0x086ACFF4 _0802B9C8: .4byte 0x03005000 _0802B9CC: .4byte 0x081B0FE4 _0802B9D0: .4byte 0x000001FF _0802B9D4: .4byte 0xFFFFFE00 _0802B9D8: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802BA6C @ =0x03005000 mov sb, r3 ldr r4, _0802BA70 @ =0x081B0FE4 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov ip, r0 ldr r7, _0802BA74 @ =0xFFFFFE00 mov sl, r7 _0802B9F2: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, ip add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802BA78 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B9F2 bl _0802C4D2 .align 2, 0 _0802BA6C: .4byte 0x03005000 _0802BA70: .4byte 0x081B0FE4 _0802BA74: .4byte 0xFFFFFE00 _0802BA78: .4byte 0x000001FF _0802BA7C: ldr r3, _0802BB28 @ =gMain ldrh r0, [r3, #0x3c] movs r0, #4 strh r0, [r3, #0x3c] ldr r2, _0802BB2C @ =0x040000D4 ldr r4, _0802BB30 @ =0x020314E0 ldr r0, [r4] ldr r7, _0802BB34 @ =0x000005F6 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802BB38 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802BB3C @ =0x05000220 str r0, [r2, #4] ldr r0, _0802BB40 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #0x44] ldr r6, [r0, #0xc] ldrh r0, [r6] mov ip, r3 cmp r0, #0 beq _0802BAD6 movs r5, #0 ldr r3, _0802BB44 @ =0x03005000 movs r2, #0xbe _0802BAB8: lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 adds r1, #8 adds r5, r6, r1 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r3 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0802BAB8 _0802BAD6: mov r1, ip ldr r0, [r1, #0x44] ldr r1, [r0, #0xc] movs r5, #0 movs r0, #0 strh r0, [r1] ldr r1, _0802BB30 @ =0x020314E0 ldr r0, [r1] ldr r2, _0802BB48 @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] strb r5, [r0] ldr r4, [r1] adds r2, r4, r2 ldr r1, [r2] movs r0, #0xff lsls r0, r0, #8 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #0x28 strh r0, [r1, #0x30] ldr r1, [r2] adds r0, #0xd8 strh r0, [r1, #6] ldr r1, [r2] movs r7, #0x32 ldrsh r3, [r1, r7] ldr r0, [r1, #0x38] adds r0, r0, r3 str r0, [r1, #0x38] ldr r1, [r2] movs r0, #0x30 ldrsh r2, [r1, r0] ldr r0, [r1, #0x34] adds r0, r0, r2 str r0, [r1, #0x34] adds r4, #0xe4 strb r5, [r4] bl _0802C4D2 .align 2, 0 _0802BB28: .4byte gMain _0802BB2C: .4byte 0x040000D4 _0802BB30: .4byte 0x020314E0 _0802BB34: .4byte 0x000005F6 _0802BB38: .4byte 0x08137E14 _0802BB3C: .4byte 0x05000220 _0802BB40: .4byte 0x80000010 _0802BB44: .4byte 0x03005000 _0802BB48: .4byte 0x0000132C _0802BB4C: ldr r1, _0802BB90 @ =0x020314E0 ldr r0, [r1] ldr r2, _0802BB94 @ =0x000005A6 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #7 bls _0802BB5C b _0802BC92 _0802BB5C: cmp r0, #3 bhi _0802BC04 cmp r0, #0 beq _0802BB66 b _0802BC92 _0802BB66: ldr r2, _0802BB98 @ =0x040000D4 ldr r1, _0802BB9C @ =0x02031520 ldr r3, [r1, #0x30] str r3, [r2] ldr r0, _0802BBA0 @ =0x05000200 str r0, [r2, #4] ldr r0, _0802BBA4 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802BBA8 @ =gMain ldrb r0, [r0, #4] adds r4, r1, #0 cmp r0, #1 bne _0802BBB4 adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BBAC @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BBB0 @ =0x80000060 b _0802BBC0 .align 2, 0 _0802BB90: .4byte 0x020314E0 _0802BB94: .4byte 0x000005A6 _0802BB98: .4byte 0x040000D4 _0802BB9C: .4byte 0x02031520 _0802BBA0: .4byte 0x05000200 _0802BBA4: .4byte 0x80000010 _0802BBA8: .4byte gMain _0802BBAC: .4byte 0x05000240 _0802BBB0: .4byte 0x80000060 _0802BBB4: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BBEC @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BBF0 @ =0x80000070 _0802BBC0: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802BBF4 @ =0x040000D4 ldr r0, [r4, #0x30] movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0802BBF8 @ =0x05000340 str r0, [r1, #4] ldr r0, _0802BBFC @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r4, _0802BC00 @ =0x020314E0 ldr r0, [r4] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r4] adds r0, #0x70 b _0802BC90 .align 2, 0 _0802BBEC: .4byte 0x05000240 _0802BBF0: .4byte 0x80000070 _0802BBF4: .4byte 0x040000D4 _0802BBF8: .4byte 0x05000340 _0802BBFC: .4byte 0x80000030 _0802BC00: .4byte 0x020314E0 _0802BC04: ldr r4, _0802BC3C @ =gMain ldrh r0, [r4, #0x3c] movs r0, #0 strh r0, [r4, #0x3c] ldrh r0, [r1] cmp r0, #4 bls _0802BC92 ldr r2, _0802BC40 @ =0x040000D4 ldr r1, _0802BC44 @ =0x02031520 ldr r3, [r1, #0x2c] str r3, [r2] ldr r0, _0802BC48 @ =0x05000200 str r0, [r2, #4] ldr r0, _0802BC4C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r4, #4] adds r4, r1, #0 cmp r0, #1 bne _0802BC58 adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BC50 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BC54 @ =0x80000060 b _0802BC64 .align 2, 0 _0802BC3C: .4byte gMain _0802BC40: .4byte 0x040000D4 _0802BC44: .4byte 0x02031520 _0802BC48: .4byte 0x05000200 _0802BC4C: .4byte 0x80000010 _0802BC50: .4byte 0x05000240 _0802BC54: .4byte 0x80000060 _0802BC58: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BDA0 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BDA4 @ =0x80000070 _0802BC64: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802BDA8 @ =0x040000D4 ldr r0, [r4, #0x2c] movs r7, #0xa0 lsls r7, r7, #1 adds r0, r0, r7 str r0, [r1] ldr r0, _0802BDAC @ =0x05000340 str r0, [r1, #4] ldr r0, _0802BDB0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0802BDB4 @ =0x020314E0 ldr r0, [r1] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r2, _0802BDB4 @ =0x020314E0 ldr r0, [r2] adds r0, #0x70 movs r1, #1 _0802BC90: strb r1, [r0] _0802BC92: ldr r3, _0802BDB4 @ =0x020314E0 ldr r5, [r3] movs r0, #0x13 ldrsb r0, [r5, r0] cmp r0, #5 beq _0802BCA4 cmp r0, #8 beq _0802BCA4 b _0802BDC4 _0802BCA4: ldr r7, _0802BDB8 @ =0x0000132C adds r5, r5, r7 ldr r1, [r5] ldrh r0, [r1, #0x32] adds r0, #0x10 strh r0, [r1, #0x32] ldr r1, [r5] movs r4, #0x32 ldrsh r2, [r1, r4] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] ldr r6, [r5] ldr r4, [r6, #0x34] movs r0, #0xec lsls r0, r0, #7 subs r0, r0, r4 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] ldr r3, [r5] ldr r1, [r3, #0x38] ldr r0, _0802BDBC @ =0x000139FF cmp r1, r0 ble _0802BD70 movs r1, #0x32 ldrsh r0, [r3, r1] cmp r0, #0x31 ble _0802BCE8 movs r0, #0x9d bl m4aSongNumStart _0802BCE8: ldr r2, _0802BDB4 @ =0x020314E0 ldr r0, [r2] adds r0, r0, r7 ldr r0, [r0] movs r3, #0x32 ldrsh r1, [r0, r3] movs r0, #0x32 rsbs r0, r0, #0 cmp r1, r0 bgt _0802BD02 movs r0, #0x9d bl m4aSongNumStart _0802BD02: ldr r0, _0802BDB4 @ =0x020314E0 ldr r4, [r0] adds r4, r4, r7 ldr r1, [r4] movs r0, #0x9d lsls r0, r0, #9 str r0, [r1, #0x38] ldr r5, [r4] movs r2, #0x32 ldrsh r1, [r5, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r1, r0, #4 subs r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0x32] ldr r5, [r4] movs r3, #6 ldrsh r1, [r5, r3] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r5, #6] ldr r4, [r4] ldrh r1, [r4, #6] movs r2, #6 ldrsh r0, [r4, r2] cmp r0, #0 ble _0802BD48 rsbs r0, r1, #0 strh r0, [r4, #6] _0802BD48: ldr r3, _0802BDB4 @ =0x020314E0 ldr r4, [r3] adds r4, r4, r7 ldr r5, [r4] movs r7, #0x30 ldrsh r1, [r5, r7] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r5, #0x30] ldr r4, [r4] ldrh r1, [r4, #0x30] movs r2, #0x30 ldrsh r0, [r4, r2] cmp r0, #0 ble _0802BD70 rsbs r0, r1, #0 strh r0, [r4, #0x30] _0802BD70: ldr r3, _0802BDB4 @ =0x020314E0 ldr r2, [r3] ldr r4, _0802BDB8 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] ldrh r1, [r0, #0x32] movs r7, #0x32 ldrsh r0, [r0, r7] cmp r0, #0 bge _0802BD8A rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0802BD8A: lsls r1, r1, #0x10 movs r0, #0x80 lsls r0, r0, #0x11 cmp r1, r0 ble _0802BE78 ldr r0, _0802BDC0 @ =0x000005A6 adds r1, r2, r0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] b _0802BE78 .align 2, 0 _0802BDA0: .4byte 0x05000240 _0802BDA4: .4byte 0x80000070 _0802BDA8: .4byte 0x040000D4 _0802BDAC: .4byte 0x05000340 _0802BDB0: .4byte 0x80000030 _0802BDB4: .4byte 0x020314E0 _0802BDB8: .4byte 0x0000132C _0802BDBC: .4byte 0x000139FF _0802BDC0: .4byte 0x000005A6 _0802BDC4: ldr r6, _0802BE88 @ =0x0000132C adds r3, r5, r6 ldr r1, [r3] ldrh r0, [r1, #0x32] adds r0, #0x10 strh r0, [r1, #0x32] ldr r1, [r3] movs r4, #0x32 ldrsh r2, [r1, r4] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] ldr r1, [r3] movs r7, #0x30 ldrsh r2, [r1, r7] ldr r0, [r1, #0x34] adds r0, r0, r2 str r0, [r1, #0x34] ldr r1, [r3] ldr r2, _0802BE8C @ =0x0000028A adds r0, r5, r2 movs r3, #0 ldrsh r0, [r0, r3] adds r0, #0x32 lsls r0, r0, #8 ldr r1, [r1, #0x38] cmp r1, r0 blt _0802BE78 movs r0, #0x9d bl m4aSongNumStart ldr r4, _0802BE90 @ =0x020314E0 ldr r0, [r4] adds r5, r0, r6 ldr r1, [r5] ldr r7, _0802BE8C @ =0x0000028A adds r0, r0, r7 movs r2, #0 ldrsh r0, [r0, r2] adds r0, #0x32 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r4, [r5] movs r3, #0x32 ldrsh r1, [r4, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r1, r0, #4 subs r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r4, #0x32] ldr r4, [r5] movs r7, #6 ldrsh r1, [r4, r7] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r4, #6] ldr r5, [r5] ldrh r1, [r5, #6] movs r2, #6 ldrsh r0, [r5, r2] cmp r0, #0 ble _0802BE50 rsbs r0, r1, #0 strh r0, [r5, #6] _0802BE50: ldr r3, _0802BE90 @ =0x020314E0 ldr r4, [r3] adds r4, r4, r6 ldr r5, [r4] movs r7, #0x30 ldrsh r1, [r5, r7] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r5, #0x30] ldr r1, [r4] ldrh r2, [r1, #0x30] movs r3, #0x30 ldrsh r0, [r1, r3] cmp r0, #0 ble _0802BE78 rsbs r0, r2, #0 strh r0, [r1, #0x30] _0802BE78: ldr r0, _0802BE90 @ =0x020314E0 ldr r0, [r0] movs r4, #0xb6 lsls r4, r4, #3 adds r0, r0, r4 movs r1, #0 strh r1, [r0] b _0802C4D2 .align 2, 0 _0802BE88: .4byte 0x0000132C _0802BE8C: .4byte 0x0000028A _0802BE90: .4byte 0x020314E0 _0802BE94: ldr r0, _0802BEAC @ =0x020314E0 ldr r1, [r0] ldr r7, _0802BEB0 @ =0x0000132C adds r1, r1, r7 ldr r0, [r1] movs r2, #0 strh r2, [r0, #0x30] ldr r0, [r1] strh r2, [r0, #0x32] ldr r0, [r1] strh r2, [r0, #6] b _0802C4D2 .align 2, 0 _0802BEAC: .4byte 0x020314E0 _0802BEB0: .4byte 0x0000132C _0802BEB4: ldr r6, _0802BF00 @ =0x020314E0 ldr r2, [r6] ldr r1, _0802BF04 @ =0x000005A6 adds r0, r2, r1 ldrh r1, [r0] movs r0, #0xed subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r4, r0, #0x10 cmp r4, #0xbf ble _0802BECE b _0802C036 _0802BECE: cmp r4, #0xb7 ble _0802BF10 cmp r4, #0xb9 bne _0802BEDC movs r0, #6 bl sub_11B0 _0802BEDC: cmp r4, #0xb8 bne _0802BEE6 movs r0, #0x9e bl m4aSongNumStart _0802BEE6: ldr r1, [r6] ldr r2, _0802BF08 @ =0x0000132C adds r1, r1, r2 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r3, _0802BF0C @ =0xFFFFFC00 adds r0, r3, #0 ldrh r4, [r1, #0xa] adds r0, r0, r4 b _0802C034 .align 2, 0 _0802BF00: .4byte 0x020314E0 _0802BF04: .4byte 0x000005A6 _0802BF08: .4byte 0x0000132C _0802BF0C: .4byte 0xFFFFFC00 _0802BF10: cmp r4, #0xaf ble _0802BF20 ldr r7, _0802BF1C @ =0x0000132C adds r2, r2, r7 b _0802C020 .align 2, 0 _0802BF1C: .4byte 0x0000132C _0802BF20: cmp r4, #0xa7 ble _0802BF5C cmp r4, #0xa9 bne _0802BF2E movs r0, #6 bl sub_11B0 _0802BF2E: cmp r4, #0xa8 bne _0802BF38 movs r0, #0x9e bl m4aSongNumStart _0802BF38: ldr r1, [r6] ldr r4, _0802BF54 @ =0x0000132C adds r1, r1, r4 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r7, _0802BF58 @ =0xFFFFFC00 adds r0, r7, #0 ldrh r2, [r1, #0xa] adds r0, r0, r2 b _0802C034 .align 2, 0 _0802BF54: .4byte 0x0000132C _0802BF58: .4byte 0xFFFFFC00 _0802BF5C: cmp r4, #0x9f ble _0802BF80 ldr r3, _0802BF7C @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] ldr r0, [r1, #0x34] adds r0, #0x60 str r0, [r1, #0x34] ldr r1, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r0, r4, #0 ldrh r7, [r1, #0xa] adds r0, r0, r7 b _0802C034 .align 2, 0 _0802BF7C: .4byte 0x0000132C _0802BF80: cmp r4, #0x7b bgt _0802C036 cmp r4, #0x73 ble _0802BFB8 cmp r4, #0x75 bne _0802BF92 movs r0, #6 bl sub_11B0 _0802BF92: cmp r4, #0x74 bne _0802BF9C movs r0, #0x9e bl m4aSongNumStart _0802BF9C: ldr r1, [r6] ldr r0, _0802BFB0 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r2, _0802BFB4 @ =0xFFFFFC00 b _0802C02E .align 2, 0 _0802BFB0: .4byte 0x0000132C _0802BFB4: .4byte 0xFFFFFC00 _0802BFB8: cmp r4, #0x6b ble _0802BFDC ldr r4, _0802BFD8 @ =0x0000132C adds r2, r2, r4 ldr r1, [r2] ldr r0, [r1, #0x34] adds r0, #0x60 str r0, [r1, #0x34] ldr r1, [r2] movs r7, #0x80 lsls r7, r7, #3 adds r0, r7, #0 ldrh r2, [r1, #0xa] adds r0, r0, r2 b _0802C034 .align 2, 0 _0802BFD8: .4byte 0x0000132C _0802BFDC: cmp r4, #0x63 ble _0802C018 cmp r4, #0x65 bne _0802BFEA movs r0, #6 bl sub_11B0 _0802BFEA: cmp r4, #0x64 bne _0802BFF4 movs r0, #0x9e bl m4aSongNumStart _0802BFF4: ldr r1, [r6] ldr r3, _0802C010 @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r4, _0802C014 @ =0xFFFFFC00 adds r0, r4, #0 ldrh r7, [r1, #0xa] adds r0, r0, r7 b _0802C034 .align 2, 0 _0802C010: .4byte 0x0000132C _0802C014: .4byte 0xFFFFFC00 _0802C018: cmp r4, #0x5b ble _0802C036 ldr r0, _0802C048 @ =0x0000132C adds r2, r2, r0 _0802C020: ldr r1, [r2] ldr r0, [r1, #0x34] adds r0, #0x60 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x80 lsls r2, r2, #3 _0802C02E: adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 _0802C034: strh r0, [r1, #0xa] _0802C036: cmp r5, #0 beq _0802C03C b _0802C4D2 _0802C03C: movs r0, #0x11 bl m4aSongNumStart bl sub_2312C b _0802C4D2 .align 2, 0 _0802C048: .4byte 0x0000132C _0802C04C: ldr r4, _0802C208 @ =0x020314E0 ldr r0, [r4] ldr r7, _0802C20C @ =0x0000132C adds r0, r0, r7 ldr r1, [r0] movs r0, #3 strb r0, [r1, #1] bl sub_23300 ldr r4, [r4] ldr r1, _0802C210 @ =0x000005A6 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0xe5 bhi _0802C07A movs r2, #0x84 lsls r2, r2, #2 adds r4, r4, r2 ldrh r0, [r4] cmp r0, #0x96 bne _0802C07A subs r0, #1 strh r0, [r4] _0802C07A: ldr r4, _0802C208 @ =0x020314E0 ldr r0, [r4] ldr r3, _0802C210 @ =0x000005A6 adds r0, r0, r3 ldrh r1, [r0] movs r0, #0x87 lsls r0, r0, #1 cmp r1, r0 bne _0802C0A6 ldr r0, _0802C214 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bhi _0802C0A6 movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r4, _0802C218 @ =0x000006C4 adds r0, r0, r4 movs r1, #0 strb r1, [r0] _0802C0A6: ldr r1, _0802C208 @ =0x020314E0 ldr r3, [r1] ldr r7, _0802C210 @ =0x000005A6 adds r4, r3, r7 ldrh r0, [r4] cmp r0, #0x1d bhi _0802C11C ldr r1, _0802C214 @ =gMain movs r0, #1 strh r0, [r1, #0x2c] ldrh r5, [r4] movs r1, #0xa6 lsls r1, r1, #2 adds r0, r3, r1 strh r5, [r0] movs r1, #0 lsls r0, r5, #0x10 asrs r0, r0, #0x10 ldr r2, _0802C21C @ =0x03005C00 mov r8, r2 cmp r1, r0 bgt _0802C10C mov r7, r8 adds r4, r0, #0 movs r6, #0xc1 lsls r6, r6, #8 _0802C0DA: movs r5, #1 lsls r2, r1, #0x10 asrs r3, r2, #0x10 _0802C0E0: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r7 strh r6, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802C0E0 movs r3, #0x80 lsls r3, r3, #9 adds r0, r2, r3 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 ble _0802C0DA _0802C10C: ldr r1, _0802C220 @ =0x040000D4 mov r4, r8 str r4, [r1] ldr r0, _0802C224 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802C228 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _0802C11C: ldr r7, _0802C208 @ =0x020314E0 ldr r0, [r7] ldr r1, _0802C210 @ =0x000005A6 adds r0, r0, r1 ldrh r0, [r0] subs r0, #0xf0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1d bhi _0802C1AE movs r1, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _0802C21C @ =0x03005C00 mov r8, r2 cmp r1, r0 bgt _0802C176 mov r6, r8 ldr r4, _0802C22C @ =0x000001FF adds r7, r0, #0 _0802C144: movs r5, #1 lsls r2, r1, #0x10 asrs r3, r2, #0x10 _0802C14A: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802C14A movs r3, #0x80 lsls r3, r3, #9 adds r0, r2, r3 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r7 ble _0802C144 _0802C176: ldr r1, _0802C220 @ =0x040000D4 mov r4, r8 str r4, [r1] ldr r0, _0802C224 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802C228 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _0802C208 @ =0x020314E0 ldr r0, [r7] ldr r1, _0802C210 @ =0x000005A6 adds r0, r0, r1 ldrh r1, [r0] ldr r0, _0802C230 @ =0x0000010D cmp r1, r0 bne _0802C1AE ldr r1, _0802C214 @ =gMain movs r2, #0 strh r2, [r1, #0x2c] ldrb r0, [r1, #4] cmp r0, #1 bhi _0802C1AE ldrh r0, [r1, #0x38] strh r2, [r1, #0x38] ldrh r0, [r1, #0x3c] strh r2, [r1, #0x3c] ldrh r0, [r1, #0x3a] strh r2, [r1, #0x3a] _0802C1AE: ldr r2, _0802C208 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0802C1C0 ldr r3, _0802C210 @ =0x000005A6 adds r1, r1, r3 movs r0, #0xb5 strh r0, [r1] _0802C1C0: ldr r4, _0802C208 @ =0x020314E0 ldr r1, [r4] ldr r7, _0802C210 @ =0x000005A6 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0xb4 beq _0802C1D0 b _0802C4D2 _0802C1D0: movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 beq _0802C1DC cmp r0, #8 bne _0802C28C _0802C1DC: movs r0, #1 strb r0, [r1, #0x1c] ldr r0, _0802C208 @ =0x020314E0 ldr r1, [r0] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x8d beq _0802C268 cmp r0, #0x8d bgt _0802C23E cmp r0, #0x84 beq _0802C268 cmp r0, #0x84 bgt _0802C234 cmp r0, #0x3b beq _0802C268 cmp r0, #0x72 beq _0802C268 b _0802C284 .align 2, 0 _0802C208: .4byte 0x020314E0 _0802C20C: .4byte 0x0000132C _0802C210: .4byte 0x000005A6 _0802C214: .4byte gMain _0802C218: .4byte 0x000006C4 _0802C21C: .4byte 0x03005C00 _0802C220: .4byte 0x040000D4 _0802C224: .4byte 0x06002000 _0802C228: .4byte 0x80000400 _0802C22C: .4byte 0x000001FF _0802C230: .4byte 0x0000010D _0802C234: cmp r0, #0x86 beq _0802C268 cmp r0, #0x8b beq _0802C268 b _0802C284 _0802C23E: cmp r0, #0xa0 beq _0802C268 cmp r0, #0xa0 bgt _0802C250 cmp r0, #0x90 beq _0802C268 cmp r0, #0x97 beq _0802C268 b _0802C284 _0802C250: cmp r0, #0xc4 bgt _0802C284 cmp r0, #0xc3 blt _0802C284 ldr r0, _0802C260 @ =0x000222E0 str r0, [r1, #0x38] ldr r0, _0802C264 @ =0x00989680 b _0802C28A .align 2, 0 _0802C260: .4byte 0x000222E0 _0802C264: .4byte 0x00989680 _0802C268: ldr r3, _0802C278 @ =0x020314E0 ldr r0, [r3] ldr r1, _0802C27C @ =0x00013880 str r1, [r0, #0x38] ldr r1, _0802C280 @ =0x004C4B40 str r1, [r0, #0x3c] b _0802C28C .align 2, 0 _0802C278: .4byte 0x020314E0 _0802C27C: .4byte 0x00013880 _0802C280: .4byte 0x004C4B40 _0802C284: ldr r4, _0802C2B4 @ =0x020314E0 ldr r1, [r4] ldr r0, _0802C2B8 @ =0x000F4240 _0802C28A: str r0, [r1, #0x3c] _0802C28C: ldr r7, _0802C2B4 @ =0x020314E0 ldr r1, [r7] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _0802C2C8 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x9a bne _0802C2C4 ldr r0, _0802C2BC @ =0x000222E0 str r0, [r1, #0x38] ldr r0, _0802C2C0 @ =0x00989680 b _0802C2C6 .align 2, 0 _0802C2B4: .4byte 0x020314E0 _0802C2B8: .4byte 0x000F4240 _0802C2BC: .4byte 0x000222E0 _0802C2C0: .4byte 0x00989680 _0802C2C4: ldr r0, _0802C2EC @ =0x002DC6C0 _0802C2C6: str r0, [r1, #0x3c] _0802C2C8: ldr r3, _0802C2F0 @ =gMain ldrb r0, [r3, #4] cmp r0, #2 bhi _0802C2D2 b _0802C4D2 _0802C2D2: ldr r2, _0802C2F4 @ =0x020314E0 ldr r0, [r2] movs r1, #1 strb r1, [r0, #0x1c] ldrb r0, [r3, #4] cmp r0, #6 bne _0802C300 ldr r0, [r2] ldr r1, _0802C2F8 @ =0x00061A80 str r1, [r0, #0x38] ldr r1, _0802C2FC @ =0x01C9C380 str r1, [r0, #0x3c] b _0802C4D2 .align 2, 0 _0802C2EC: .4byte 0x002DC6C0 _0802C2F0: .4byte gMain _0802C2F4: .4byte 0x020314E0 _0802C2F8: .4byte 0x00061A80 _0802C2FC: .4byte 0x01C9C380 _0802C300: ldr r0, [r2] ldr r1, _0802C30C @ =0x00061A80 str r1, [r0, #0x38] ldr r1, _0802C310 @ =0x00989680 str r1, [r0, #0x3c] b _0802C4D2 .align 2, 0 _0802C30C: .4byte 0x00061A80 _0802C310: .4byte 0x00989680 _0802C314: ldr r3, _0802C38C @ =0x020314E0 ldr r0, [r3] ldr r4, _0802C390 @ =0x000005F7 adds r0, r0, r4 movs r3, #0 strb r3, [r0] ldr r7, _0802C38C @ =0x020314E0 ldr r0, [r7] ldr r1, _0802C394 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] movs r4, #3 strb r4, [r0, #1] ldr r0, [r7] ldr r2, _0802C398 @ =0x000005A4 adds r0, r0, r2 strb r3, [r0] ldr r0, [r7] ldr r7, _0802C39C @ =0x000005A6 adds r1, r0, r7 movs r2, #0 strh r3, [r1] movs r1, #0xb5 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, _0802C3A0 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bls _0802C352 b _0802C48C _0802C352: ldr r3, _0802C38C @ =0x020314E0 ldr r0, [r3] strb r2, [r0, #0x1f] ldr r0, [r3] ldr r4, _0802C394 @ =0x0000132C adds r0, r0, r4 ldr r2, [r0] ldr r1, _0802C3A4 @ =0x0000FFF6 strh r1, [r2, #0x32] ldr r1, [r0] movs r0, #0x14 strh r0, [r1, #0x30] movs r5, #0 ldr r3, _0802C3A8 @ =0x0000071D _0802C36E: ldr r7, _0802C38C @ =0x020314E0 ldr r2, [r7] ldr r1, _0802C3AC @ =0x00000723 adds r0, r2, r1 lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _0802C3B0 adds r0, r2, r3 adds r0, r0, r1 movs r1, #1 b _0802C3B6 .align 2, 0 _0802C38C: .4byte 0x020314E0 _0802C390: .4byte 0x000005F7 _0802C394: .4byte 0x0000132C _0802C398: .4byte 0x000005A4 _0802C39C: .4byte 0x000005A6 _0802C3A0: .4byte gMain _0802C3A4: .4byte 0x0000FFF6 _0802C3A8: .4byte 0x0000071D _0802C3AC: .4byte 0x00000723 _0802C3B0: adds r0, r2, r3 adds r0, r0, r1 movs r1, #0 _0802C3B6: strb r1, [r0] lsls r0, r5, #0x10 movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0802C36E ldr r4, _0802C474 @ =0x020314E0 ldr r1, [r4] ldr r3, _0802C478 @ =0x00000723 adds r0, r1, r3 ldrb r3, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0802C41A ldr r2, _0802C47C @ =0x00000721 adds r0, r1, r2 strb r3, [r0] ldr r0, [r4] ldr r7, _0802C478 @ =0x00000723 adds r1, r0, r7 ldrb r1, [r1] ldr r3, _0802C480 @ =0x00000722 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 movs r1, #0 ldrsb r1, [r2, r1] subs r7, #6 adds r0, r0, r7 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #0x78 strb r1, [r0] ldr r1, [r4] ldr r2, _0802C478 @ =0x00000723 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0802C41A: ldr r2, [r4] movs r3, #0xbe lsls r3, r3, #3 adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _0802C438 ldr r7, _0802C484 @ =0x00000286 adds r1, r2, r7 movs r0, #0x5a strh r0, [r1] _0802C438: ldr r0, [r4] ldr r2, _0802C488 @ =0x0000062A adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x62 bhi _0802C448 adds r0, #1 strb r0, [r1] _0802C448: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0802C456 movs r0, #0xa strb r0, [r1, #0x17] _0802C456: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #8 bne _0802C464 movs r0, #5 strb r0, [r1, #0x17] _0802C464: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _0802C4CC movs r0, #6 strb r0, [r1, #0x17] b _0802C4CC .align 2, 0 _0802C474: .4byte 0x020314E0 _0802C478: .4byte 0x00000723 _0802C47C: .4byte 0x00000721 _0802C480: .4byte 0x00000722 _0802C484: .4byte 0x00000286 _0802C488: .4byte 0x0000062A _0802C48C: ldr r7, _0802C528 @ =0x020314E0 ldr r1, [r7] movs r0, #1 strb r0, [r1, #0x1f] ldr r1, [r7] ldr r0, _0802C52C @ =0x0000132C adds r2, r1, r0 ldr r0, [r2] strh r3, [r0, #0x32] ldr r0, [r2] strh r3, [r0, #0x30] ldr r2, _0802C530 @ =0x000006C4 adds r1, r1, r2 strb r4, [r1] ldr r1, [r7] movs r0, #4 strb r0, [r1, #0x13] ldr r2, [r7] movs r3, #0xbe lsls r3, r3, #3 adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _0802C4CC ldr r4, _0802C534 @ =0x00000286 adds r1, r2, r4 movs r0, #0x5b strh r0, [r1] _0802C4CC: movs r0, #0 bl sub_31CF8 _0802C4D2: ldr r4, _0802C528 @ =0x020314E0 ldr r1, [r4] ldr r3, _0802C52C @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] ldrh r0, [r2, #0x10] strh r0, [r2, #0x14] ldr r1, [r1] ldrh r0, [r1, #0x12] strh r0, [r1, #0x16] movs r5, #2 adds r7, r4, #0 adds r6, r3, #0 _0802C4EC: ldr r3, [r7] adds r3, r3, r6 ldr r0, [r3] lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r2, r1, #1 lsls r2, r2, #2 adds r4, r0, r2 lsls r5, r1, #2 adds r0, r0, r5 ldrh r0, [r0, #0x14] strh r0, [r4, #0x14] ldr r0, [r3] adds r2, r0, r2 adds r0, r0, r5 ldrh r0, [r0, #0x16] strh r0, [r2, #0x16] subs r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 cmp r1, #0 bge _0802C4EC thumb_func_start sub_2C518 sub_2C518: @ 0x0802C518 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 _0802C528: .4byte 0x020314E0 _0802C52C: .4byte 0x0000132C _0802C530: .4byte 0x000006C4 _0802C534: .4byte 0x00000286 thumb_func_start sub_2C538 sub_2C538: @ 0x0802C538 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r0, #0 mov sb, r0 ldr r1, _0802C568 @ =0x020314E0 ldr r0, [r1] movs r2, #0xc0 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 cmp r0, #5 bls _0802C55C b _0802C784 _0802C55C: lsls r0, r0, #2 ldr r1, _0802C56C @ =_0802C570 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C568: .4byte 0x020314E0 _0802C56C: .4byte _0802C570 _0802C570: @ jump table .4byte _0802C588 @ case 0 .4byte _0802C5BC @ case 1 .4byte _0802C614 @ case 2 .4byte _0802C650 @ case 3 .4byte _0802C6C0 @ case 4 .4byte _0802C708 @ case 5 _0802C588: ldr r5, [r7] movs r3, #0xc1 lsls r3, r3, #2 adds r6, r5, r3 ldrh r4, [r6] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 movs r0, #0 strh r4, [r6] ldr r1, _0802C5B8 @ =0x00000301 adds r5, r5, r1 strb r0, [r5] b _0802C784 .align 2, 0 _0802C5B8: .4byte 0x00000301 _0802C5BC: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 strh r4, [r5] ldr r2, _0802C610 @ =0x00000301 adds r0, r6, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802C608 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #2 strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _0802C608: ldr r0, [r7] adds r0, r0, r2 b _0802C780 .align 2, 0 _0802C610: .4byte 0x00000301 _0802C614: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #9 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #3 bl __udivsi3 adds r0, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #9 beq _0802C646 b _0802C784 _0802C646: movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #3 b _0802C6F8 _0802C650: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 mov r8, r2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 movs r2, #0 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0x41 bls _0802C698 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #1 strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 strh r2, [r0] _0802C698: ldr r1, [r7] mov r3, r8 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #6 bls _0802C784 ldr r3, _0802C6BC @ =0x00000301 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802C784 movs r0, #0xc0 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #4 b _0802C772 .align 2, 0 _0802C6BC: .4byte 0x00000301 _0802C6C0: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #9 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #3 bl __udivsi3 adds r0, #7 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #9 bne _0802C784 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #5 _0802C6F8: strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strh r1, [r0] b _0802C784 _0802C708: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 mov r8, r2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 movs r2, #0 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0x41 bls _0802C750 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #1 strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 strh r2, [r0] _0802C750: ldr r1, [r7] mov r3, r8 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #6 bls _0802C784 ldr r3, _0802C7B8 @ =0x00000301 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802C784 movs r0, #0xc0 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #2 _0802C772: strb r0, [r1] ldr r0, [r7] mov r3, r8 adds r1, r0, r3 strh r2, [r1] ldr r1, _0802C7B8 @ =0x00000301 adds r0, r0, r1 _0802C780: movs r1, #0 strb r1, [r0] _0802C784: ldr r6, _0802C7BC @ =0x0200E498 ldrh r0, [r6] cmp r0, #0 beq _0802C83C ldr r1, [r7] movs r2, #0xc0 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0802C7C4 adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xbc subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] ldr r3, _0802C7C0 @ =0x00000119 adds r0, r3, #0 b _0802C7DC .align 2, 0 _0802C7B8: .4byte 0x00000301 _0802C7BC: .4byte 0x0200E498 _0802C7C0: .4byte 0x00000119 _0802C7C4: adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc0 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r2, #0x8b lsls r2, r2, #1 adds r0, r2, #0 _0802C7DC: subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r7] ldr r3, _0802C95C @ =0x00000302 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0802C808 subs r0, r2, #1 strb r0, [r1] ldr r0, [r7] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0802C808 ldr r0, _0802C960 @ =gMain ldr r2, _0802C964 @ =0x000033D8 adds r0, r0, r2 strh r1, [r0] _0802C808: adds r5, r6, #0 adds r5, #8 ldr r4, _0802C968 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802C96C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802C970 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _0802C83C: ldr r2, [r7] movs r1, #0xc0 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0802C852 cmp r0, #2 bne _0802C8C0 _0802C852: ldr r4, _0802C974 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r3, #0x10 ldrsh r1, [r0, r3] subs r1, #0xbe movs r3, #0x12 ldrsh r0, [r0, r3] ldr r3, _0802C978 @ =0xFFFFFEE3 adds r0, r0, r3 adds r3, r1, #0 muls r3, r1, r3 adds r1, r3, #0 adds r3, r0, #0 muls r3, r0, r3 adds r0, r3, #0 adds r1, r1, r0 cmp r1, #0x8c bhi _0802C8C0 ldr r1, _0802C95C @ =0x00000302 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0802C8C0 movs r0, #0xc5 bl m4aSongNumStart ldr r1, [r7] ldr r0, _0802C97C @ =0x00002710 str r0, [r1, #0x3c] adds r1, r1, r4 ldr r2, [r1] movs r3, #0 ldr r0, _0802C980 @ =0x0000FDA8 strh r0, [r2, #0x30] ldr r2, [r1] ldr r0, _0802C984 @ =0x0000FED4 strh r0, [r2, #0x32] ldr r0, [r1] strh r3, [r0, #6] ldr r0, _0802C960 @ =gMain ldr r2, _0802C964 @ =0x000033D8 adds r0, r0, r2 movs r1, #1 strh r1, [r0] ldr r0, [r7] ldr r3, _0802C95C @ =0x00000302 adds r0, r0, r3 movs r1, #6 strb r1, [r0] movs r0, #8 bl sub_11B0 _0802C8C0: ldr r6, _0802C988 @ =0x0200DD68 ldrh r0, [r6] cmp r0, #0 beq _0802C94E ldr r2, _0802C98C @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xb8 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] ldr r2, _0802C990 @ =0x00000115 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r2, _0802C994 @ =0x040000D4 mov r3, sb lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0802C998 @ =0x0847DF0C adds r0, r0, r1 str r0, [r2] ldr r0, _0802C99C @ =0x06013580 str r0, [r2, #4] ldr r0, _0802C9A0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _0802C968 @ =0x03005000 ldr r1, _0802C970 @ =0xFFFFFE00 mov r8, r1 _0802C90A: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802C96C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _0802C90A _0802C94E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802C95C: .4byte 0x00000302 _0802C960: .4byte gMain _0802C964: .4byte 0x000033D8 _0802C968: .4byte 0x03005000 _0802C96C: .4byte 0x000001FF _0802C970: .4byte 0xFFFFFE00 _0802C974: .4byte 0x0000132C _0802C978: .4byte 0xFFFFFEE3 _0802C97C: .4byte 0x00002710 _0802C980: .4byte 0x0000FDA8 _0802C984: .4byte 0x0000FED4 _0802C988: .4byte 0x0200DD68 _0802C98C: .4byte 0x020314E0 _0802C990: .4byte 0x00000115 _0802C994: .4byte 0x040000D4 _0802C998: .4byte 0x0847DF0C _0802C99C: .4byte 0x06013580 _0802C9A0: .4byte 0x80000180 thumb_func_start sub_2C9A4 sub_2C9A4: @ 0x0802C9A4 push {r4, r5, r6, lr} ldr r6, _0802C9E0 @ =0x0200E328 ldrh r0, [r6] cmp r0, #0 beq _0802CA7A ldr r0, _0802C9E4 @ =0x020314E0 ldr r2, [r0] ldr r3, _0802C9E8 @ =0x0000029F adds r1, r2, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r3, r0, #0 cmp r1, #0 beq _0802C9EC movs r1, #0xa4 lsls r1, r1, #2 adds r0, r2, r1 ldr r1, [r0] movs r0, #0x1f ands r1, r0 lsrs r1, r1, #3 adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] subs r0, #0x34 subs r1, r1, r0 strh r1, [r6, #4] b _0802C9F0 .align 2, 0 _0802C9E0: .4byte 0x0200E328 _0802C9E4: .4byte 0x020314E0 _0802C9E8: .4byte 0x0000029F _0802C9EC: movs r0, #0xb4 strh r0, [r6, #4] _0802C9F0: ldr r2, [r3] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _0802CA20 @ =0x0000029F adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0802CA24 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r2, r1 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 adds r0, #4 b _0802CA32 .align 2, 0 _0802CA20: .4byte 0x0000029F _0802CA24: movs r3, #0xa4 lsls r3, r3, #2 adds r0, r2, r3 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 _0802CA32: ldr r2, _0802CA80 @ =0x040000D4 lsls r0, r0, #7 ldr r1, _0802CA84 @ =0x084FEF0C adds r0, r0, r1 str r0, [r2] ldr r0, _0802CA88 @ =0x06014B00 str r0, [r2, #4] ldr r0, _0802CA8C @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _0802CA90 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802CA94 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802CA98 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _0802CA7A: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0802CA80: .4byte 0x040000D4 _0802CA84: .4byte 0x084FEF0C _0802CA88: .4byte 0x06014B00 _0802CA8C: .4byte 0x80000040 _0802CA90: .4byte 0x03005000 _0802CA94: .4byte 0x000001FF _0802CA98: .4byte 0xFFFFFE00 thumb_func_start sub_2CA9C sub_2CA9C: @ 0x0802CA9C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r0, #0 mov ip, r0 ldr r0, _0802CADC @ =gMain ldr r0, [r0, #0x44] adds r0, #0xc8 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _0802CAB8 b _0802CCF2 _0802CAB8: movs r0, #0xca strh r0, [r6, #2] ldr r0, _0802CAE0 @ =0x020314E0 ldr r0, [r0] ldr r1, _0802CAE4 @ =0x00000286 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x30 bls _0802CB44 subs r0, #0x30 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x21 ble _0802CAE8 movs r1, #0x2a subs r1, r1, r0 lsls r1, r1, #1 b _0802CB12 .align 2, 0 _0802CADC: .4byte gMain _0802CAE0: .4byte 0x020314E0 _0802CAE4: .4byte 0x00000286 _0802CAE8: cmp r0, #0x17 ble _0802CAFC movs r0, #0x82 strh r0, [r6, #4] movs r0, #1 ldr r3, _0802CAF8 @ =0x0000FFF7 mov ip, r3 b _0802CB1A .align 2, 0 _0802CAF8: .4byte 0x0000FFF7 _0802CAFC: cmp r0, #7 ble _0802CB10 movs r0, #0x82 strh r0, [r6, #4] movs r0, #2 ldr r1, _0802CB0C @ =0x0000FFFC mov ip, r1 b _0802CB1A .align 2, 0 _0802CB0C: .4byte 0x0000FFFC _0802CB10: lsls r1, r0, #1 _0802CB12: movs r0, #0x92 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 _0802CB1A: ldr r2, _0802CB34 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #7 ldr r1, _0802CB38 @ =0x08455E8C adds r0, r0, r1 str r0, [r2] ldr r0, _0802CB3C @ =0x060152A0 str r0, [r2, #4] ldr r0, _0802CB40 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] b _0802CB48 .align 2, 0 _0802CB34: .4byte 0x040000D4 _0802CB38: .4byte 0x08455E8C _0802CB3C: .4byte 0x060152A0 _0802CB40: .4byte 0x80000100 _0802CB44: movs r0, #0xb4 strh r0, [r6, #4] _0802CB48: adds r5, r6, #0 adds r5, #8 ldr r4, _0802CB90 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802CB94 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802CB98 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] ldr r0, _0802CB9C @ =0x020314E0 ldr r0, [r0] ldr r1, _0802CBA0 @ =0x00000286 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x38 bls _0802CBA4 movs r7, #0x80 lsls r7, r7, #1 b _0802CBD6 .align 2, 0 _0802CB90: .4byte 0x03005000 _0802CB94: .4byte 0x000001FF _0802CB98: .4byte 0xFFFFFE00 _0802CB9C: .4byte 0x020314E0 _0802CBA0: .4byte 0x00000286 _0802CBA4: subs r0, #0x24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 blt _0802CBCC lsls r0, r0, #7 movs r1, #0x14 bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 movs r0, #0x82 strh r0, [r6, #4] ldr r3, _0802CBC8 @ =0x0000FFFE mov ip, r3 b _0802CBD6 .align 2, 0 _0802CBC8: .4byte 0x0000FFFE _0802CBCC: movs r7, #0x80 movs r0, #0xb4 strh r0, [r6, #4] movs r0, #0 mov ip, r0 _0802CBD6: adds r5, r6, #0 adds r5, #0x10 ldrh r2, [r6, #0x10] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r0, _0802CCA8 @ =0x000001FF mov r8, r0 mov r3, r8 ands r1, r3 ldrh r3, [r2, #2] ldr r0, _0802CCAC @ =0xFFFFFE00 mov sb, r0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #0x10] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 add r0, ip strb r0, [r1] ldrh r2, [r6, #0x10] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #1] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r6, #0x10] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 movs r1, #0xc orrs r0, r1 strb r0, [r2, #3] lsls r1, r7, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #6 bl sub_7C0 ldr r0, _0802CCB0 @ =0x020314E0 ldr r1, [r0] ldr r0, _0802CCB4 @ =0x00000286 adds r3, r1, r0 ldrh r0, [r3] cmp r0, #0x39 bhi _0802CCC8 adds r0, r1, #0 adds r0, #0x30 movs r2, #0 ldrsb r2, [r0, r2] ldrh r1, [r3] movs r0, #0xf ands r1, r0 lsrs r1, r1, #3 lsls r0, r1, #3 adds r0, r0, r1 subs r0, #1 ldr r1, _0802CCB8 @ =0x040000D4 adds r2, r2, r0 lsls r2, r2, #6 ldr r0, _0802CCBC @ =0x0845648C adds r2, r2, r0 str r2, [r1] ldr r0, _0802CCC0 @ =0x06015520 str r0, [r1, #4] ldr r0, _0802CCC4 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] adds r5, r6, #0 adds r5, #0x18 ldrh r2, [r6, #0x18] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] adds r1, #0xd8 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #0x18] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r5, #4] subs r0, #0x70 b _0802CCF0 .align 2, 0 _0802CCA8: .4byte 0x000001FF _0802CCAC: .4byte 0xFFFFFE00 _0802CCB0: .4byte 0x020314E0 _0802CCB4: .4byte 0x00000286 _0802CCB8: .4byte 0x040000D4 _0802CCBC: .4byte 0x0845648C _0802CCC0: .4byte 0x06015520 _0802CCC4: .4byte 0x80000020 _0802CCC8: adds r5, r6, #0 adds r5, #0x18 ldrh r2, [r6, #0x18] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] adds r1, #0xd8 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #0x18] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r5, #4] subs r0, #0x4c _0802CCF0: strb r0, [r1] _0802CCF2: ldr r5, _0802CD74 @ =0x020314E0 ldr r0, [r5] ldr r4, _0802CD78 @ =0x00000286 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 beq _0802CD68 cmp r0, #0x5a bne _0802CD18 movs r0, #1 strh r0, [r6] ldr r1, _0802CD7C @ =0x040000D4 ldr r0, _0802CD80 @ =0x086AE324 str r0, [r1] ldr r0, _0802CD84 @ =0x05000380 str r0, [r1, #4] ldr r0, _0802CD88 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802CD18: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x55 bne _0802CD2A ldr r0, _0802CD8C @ =0x02032F20 ldr r1, _0802CD90 @ =0x086A1ABC bl MPlayStart _0802CD2A: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x3a bne _0802CD50 ldr r0, _0802CD8C @ =0x02032F20 ldr r1, _0802CD94 @ =0x0869F2A0 bl MPlayStart ldr r0, [r5] adds r1, r0, #0 adds r1, #0x30 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bgt _0802CD50 adds r0, r2, #1 strb r0, [r1] _0802CD50: ldr r0, _0802CD74 @ =0x020314E0 ldr r1, [r0] ldr r3, _0802CD78 @ =0x00000286 adds r1, r1, r3 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0 bne _0802CD68 strh r0, [r6] _0802CD68: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802CD74: .4byte 0x020314E0 _0802CD78: .4byte 0x00000286 _0802CD7C: .4byte 0x040000D4 _0802CD80: .4byte 0x086AE324 _0802CD84: .4byte 0x05000380 _0802CD88: .4byte 0x80000010 _0802CD8C: .4byte 0x02032F20 _0802CD90: .4byte 0x086A1ABC _0802CD94: .4byte 0x0869F2A0 thumb_func_start sub_2CD98 sub_2CD98: @ 0x0802CD98 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0802CE6C @ =gMain ldr r1, [r0, #0x44] ldr r6, [r1, #0x28] ldrh r1, [r6] mov sb, r0 ldr r0, _0802CE70 @ =0x020314E0 mov ip, r0 cmp r1, #0 beq _0802CE0E ldr r0, [r0] movs r1, #0xb5 lsls r1, r1, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r6, #2] movs r0, #0x2c strh r0, [r6, #4] movs r0, #0 ldr r7, _0802CE74 @ =0x03005000 ldr r2, _0802CE78 @ =0xFFFFFE00 mov r8, r2 _0802CDCA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r0, #2 ldrsh r1, [r3, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802CE7C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #6 ble _0802CDCA _0802CE0E: mov r4, ip ldr r0, [r4] adds r0, #0xf4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 ble _0802CE5E cmp r0, #0x78 bne _0802CE2A mov r2, sb ldr r0, [r2, #0x44] ldr r1, [r0, #0x28] movs r0, #1 strh r0, [r1] _0802CE2A: mov r4, ip ldr r3, [r4] adds r2, r3, #0 adds r2, #0xf4 movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x78 subs r0, r0, r1 lsls r1, r0, #1 adds r1, r1, r0 movs r4, #0x87 lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 adds r4, #0x5c adds r1, r3, r4 strh r0, [r1] movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #1 bne _0802CE5E mov r2, sb ldr r0, [r2, #0x44] ldr r1, [r0, #0x28] movs r0, #0 strh r0, [r1] _0802CE5E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802CE6C: .4byte gMain _0802CE70: .4byte 0x020314E0 _0802CE74: .4byte 0x03005000 _0802CE78: .4byte 0xFFFFFE00 _0802CE7C: .4byte 0x000001FF thumb_func_start sub_2CE80 sub_2CE80: @ 0x0802CE80 push {r4, r5, lr} ldr r0, _0802CEC0 @ =0x020314E0 ldr r4, [r0] adds r1, r4, #0 adds r1, #0x68 movs r2, #0 ldrsh r1, [r1, r2] adds r5, r0, #0 cmp r1, #0xa9 bgt _0802CED8 ldr r3, _0802CEC4 @ =0x040000D4 ldr r0, _0802CEC8 @ =gMain ldrb r0, [r0, #4] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #6 adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #6 ldr r2, _0802CECC @ =0x08137B3C adds r0, r0, r2 adds r1, r1, r0 str r1, [r3] ldr r0, _0802CED0 @ =0x05000360 str r0, [r3, #4] ldr r0, _0802CED4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] b _0802CF02 .align 2, 0 _0802CEC0: .4byte 0x020314E0 _0802CEC4: .4byte 0x040000D4 _0802CEC8: .4byte gMain _0802CECC: .4byte 0x08137B3C _0802CED0: .4byte 0x05000360 _0802CED4: .4byte 0x80000010 _0802CED8: ldr r2, _0802CF20 @ =0x040000D4 ldr r0, _0802CF24 @ =gMain ldrb r0, [r0, #4] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #6 ldr r0, _0802CF28 @ =0x08137B5C adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #6 adds r1, r1, r0 str r1, [r2] ldr r0, _0802CF2C @ =0x05000360 str r0, [r2, #4] ldr r0, _0802CF30 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0802CF02: ldr r0, [r5] ldr r3, _0802CF34 @ =0x00000163 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bls _0802CF14 b _0802D0FA _0802CF14: lsls r0, r0, #2 ldr r1, _0802CF38 @ =_0802CF3C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CF20: .4byte 0x040000D4 _0802CF24: .4byte gMain _0802CF28: .4byte 0x08137B5C _0802CF2C: .4byte 0x05000360 _0802CF30: .4byte 0x80000010 _0802CF34: .4byte 0x00000163 _0802CF38: .4byte _0802CF3C _0802CF3C: @ jump table .4byte _0802CF50 @ case 0 .4byte _0802CFAC @ case 1 .4byte _0802D02C @ case 2 .4byte _0802D074 @ case 3 .4byte _0802D0A4 @ case 4 _0802CF50: ldr r0, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r4, [r5] movs r2, #0xb4 lsls r2, r2, #1 adds r0, r4, r2 strh r1, [r0] ldr r3, _0802CF90 @ =0x00000165 adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 beq _0802CF94 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] movs r1, #0x1e bl __umodsi3 movs r1, #0xf bl __udivsi3 movs r2, #0xb3 lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] b _0802CF9C .align 2, 0 _0802CF90: .4byte 0x00000165 _0802CF94: movs r3, #0xb3 lsls r3, r3, #1 adds r0, r4, r3 strh r1, [r0] _0802CF9C: ldr r0, [r5] ldr r4, _0802CFA8 @ =0x00000165 adds r1, r0, r4 movs r0, #0 strb r0, [r1] b _0802D0FA .align 2, 0 _0802CFA8: .4byte 0x00000165 _0802CFAC: ldr r1, [r5] movs r2, #0xb4 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #4 bhi _0802D00A cmp r0, #1 bhi _0802CFD4 movs r3, #0xb2 lsls r3, r3, #1 adds r1, r1, r3 movs r0, #2 strb r0, [r1] ldr r0, [r5] movs r4, #0xb3 lsls r4, r4, #1 adds r1, r0, r4 movs r0, #3 b _0802CFE8 _0802CFD4: movs r0, #0xb2 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] movs r2, #0xb3 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #5 _0802CFE8: strh r0, [r1] ldr r0, [r5] movs r4, #0xb4 lsls r4, r4, #1 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0802CFFE movs r0, #0xcc bl m4aSongNumStart _0802CFFE: ldr r1, [r5] adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0802D0FA _0802D00A: ldr r3, _0802D028 @ =0x00000163 adds r1, r1, r3 movs r2, #0 movs r0, #2 strb r0, [r1] ldr r0, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r0, r0, r4 movs r1, #4 strb r1, [r0] ldr r0, [r5] movs r1, #0xb4 lsls r1, r1, #1 b _0802D09A .align 2, 0 _0802D028: .4byte 0x00000163 _0802D02C: ldr r0, _0802D070 @ =0x086AE344 ldr r2, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r3, r2, r4 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r4, #0 ldrsh r0, [r1, r4] movs r4, #0xb4 lsls r4, r4, #1 adds r1, r2, r4 ldrh r2, [r1] cmp r0, r2 bgt _0802D0C8 movs r0, #0 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r5] movs r2, #0xb2 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #7 ble _0802D0FA movs r0, #4 strb r0, [r1] b _0802D0FA .align 2, 0 _0802D070: .4byte 0x086AE344 _0802D074: ldr r0, [r5] movs r3, #0xb2 lsls r3, r3, #1 adds r0, r0, r3 movs r2, #0 movs r1, #8 strb r1, [r0] ldr r1, [r5] movs r4, #0xb4 lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] ldr r0, _0802D0A0 @ =0x00000163 adds r1, r1, r0 movs r0, #4 strb r0, [r1] ldr r0, [r5] movs r1, #0xb3 lsls r1, r1, #1 _0802D09A: adds r0, r0, r1 strh r2, [r0] b _0802D0FA .align 2, 0 _0802D0A0: .4byte 0x00000163 _0802D0A4: ldr r0, _0802D0D0 @ =0x086AE344 ldr r2, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r3, r2, r4 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r4, #0 ldrsh r0, [r1, r4] movs r4, #0xb4 lsls r4, r4, #1 adds r1, r2, r4 ldrh r2, [r1] cmp r0, r2 ble _0802D0D4 _0802D0C8: adds r0, r2, #1 strh r0, [r1] b _0802D0FA .align 2, 0 _0802D0D0: .4byte 0x086AE344 _0802D0D4: movs r2, #0 movs r0, #0 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r5] movs r3, #0xb2 lsls r3, r3, #1 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x13 ble _0802D0FA strb r2, [r1] ldr r0, [r5] ldr r4, _0802D100 @ =0x00000163 adds r0, r0, r4 strb r2, [r0] _0802D0FA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0802D100: .4byte 0x00000163 thumb_func_start sub_2D104 sub_2D104: @ 0x0802D104 push {r4, r5, r6, r7, lr} ldr r0, _0802D144 @ =gMain ldr r0, [r0, #0x44] adds r0, #0xb0 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 beq _0802D1DC ldr r1, _0802D148 @ =0x020314E0 ldr r3, [r1] movs r0, #0xb2 lsls r0, r0, #1 adds r2, r3, r0 movs r0, #0 ldrsb r0, [r2, r0] adds r4, r1, #0 cmp r0, #0 bne _0802D14C movs r1, #0xa4 lsls r1, r1, #2 adds r0, r3, r1 ldr r0, [r0] movs r1, #0x1e bl __umodsi3 movs r1, #0xf bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 b _0802D158 .align 2, 0 _0802D144: .4byte gMain _0802D148: .4byte 0x020314E0 _0802D14C: ldr r1, _0802D1E4 @ =0x086AE344 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] _0802D158: ldr r2, _0802D1E8 @ =0x040000D4 lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, _0802D1EC @ =0x083C076C adds r0, r0, r1 str r0, [r2] ldr r0, _0802D1F0 @ =0x060120E0 str r0, [r2, #4] ldr r0, _0802D1F4 @ =0x800000E0 str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, [r4] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0xe7 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0xbc lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _0802D1F8 @ =0x03005000 ldr r1, _0802D1FC @ =0xFFFFFE00 mov ip, r1 _0802D198: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802D200 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _0802D198 _0802D1DC: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802D1E4: .4byte 0x086AE344 _0802D1E8: .4byte 0x040000D4 _0802D1EC: .4byte 0x083C076C _0802D1F0: .4byte 0x060120E0 _0802D1F4: .4byte 0x800000E0 _0802D1F8: .4byte 0x03005000 _0802D1FC: .4byte 0xFFFFFE00 _0802D200: .4byte 0x000001FF thumb_func_start sub_2D204 sub_2D204: @ 0x0802D204 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0802D358 @ =0xFFFFFDE0 add sp, r4 ldr r1, _0802D35C @ =0x020314E0 ldr r2, [r1] ldrh r3, [r2, #0x18] adds r4, r3, #0 movs r0, #0xb4 lsls r0, r0, #1 cmp r4, r0 bls _0802D226 bl sub_2DE54 _0802D226: cmp r4, #0 bne _0802D254 bl m4aMPlayAllStop ldr r1, _0802D360 @ =0x040000D4 ldr r0, _0802D364 @ =0x05000200 str r0, [r1] ldr r2, _0802D35C @ =0x020314E0 ldr r0, [r2] ldr r3, _0802D368 @ =0x0000111A adds r0, r0, r3 str r0, [r1, #4] ldr r0, _0802D36C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2] ldr r1, _0802D370 @ =0x000006DB adds r0, r0, r1 strb r4, [r0] ldr r0, [r2] ldr r2, _0802D374 @ =0x000005FA adds r0, r0, r2 strb r4, [r0] _0802D254: ldr r3, _0802D35C @ =0x020314E0 ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0xa bne _0802D2AA adds r1, #0xe4 movs r0, #0x10 strb r0, [r1] ldr r1, _0802D360 @ =0x040000D4 ldr r0, _0802D378 @ =0x08158284 str r0, [r1] ldr r0, _0802D37C @ =0x06015800 str r0, [r1, #4] ldr r0, _0802D380 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802D384 @ =0x0815A6A4 str r0, [r1] ldr r0, _0802D388 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802D38C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0802D390 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #0x60] movs r1, #1 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x64] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x68] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x6c] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x70] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x3c] strh r1, [r0] _0802D2AA: ldr r4, _0802D35C @ =0x020314E0 ldr r1, [r4] adds r0, r1, #0 adds r0, #0xcc movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xeb bgt _0802D2C2 ldrh r0, [r1, #0x18] lsrs r0, r0, #1 adds r1, #0xe6 strh r0, [r1] _0802D2C2: ldr r3, _0802D35C @ =0x020314E0 ldr r0, [r3] ldrh r0, [r0, #0x18] adds r3, r0, #0 cmp r3, #0x23 bhi _0802D2D0 b _0802D3F6 _0802D2D0: cmp r3, #0x43 bhi _0802D3A0 subs r0, #0x24 lsls r0, r0, #0x10 movs r3, #0 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 ldr r4, _0802D394 @ =0x03005C00 mov sb, r4 cmp r3, r0 bgt _0802D320 mov r2, sb mov r8, r0 movs r7, #0xc1 lsls r7, r7, #8 _0802D2EE: movs r6, #1 lsls r3, r3, #0x10 asrs r4, r3, #0x10 _0802D2F4: lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r4 lsls r0, r0, #1 adds r0, r0, r2 strh r7, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802D2F4 movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r8 ble _0802D2EE _0802D320: ldr r1, _0802D360 @ =0x040000D4 mov r2, sb str r2, [r1] ldr r0, _0802D398 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802D39C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] cmp r5, #0x1e bne _0802D33A movs r0, #0x1a bl m4aSongNumStart _0802D33A: ldr r0, _0802D390 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bne _0802D3F6 ldr r0, _0802D35C @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0x43 bne _0802D3F6 movs r3, #0xe0 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #0x78 strh r0, [r1] b _0802D3F6 .align 2, 0 _0802D358: .4byte 0xFFFFFDE0 _0802D35C: .4byte 0x020314E0 _0802D360: .4byte 0x040000D4 _0802D364: .4byte 0x05000200 _0802D368: .4byte 0x0000111A _0802D36C: .4byte 0x80000100 _0802D370: .4byte 0x000006DB _0802D374: .4byte 0x000005FA _0802D378: .4byte 0x08158284 _0802D37C: .4byte 0x06015800 _0802D380: .4byte 0x80001200 _0802D384: .4byte 0x0815A6A4 _0802D388: .4byte 0x050003C0 _0802D38C: .4byte 0x80000010 _0802D390: .4byte gMain _0802D394: .4byte 0x03005C00 _0802D398: .4byte 0x06002000 _0802D39C: .4byte 0x80000400 _0802D3A0: movs r0, #0xac lsls r0, r0, #1 cmp r3, r0 bhi _0802D3F6 movs r3, #0 ldr r4, _0802D484 @ =0x03005C00 mov sb, r4 mov r5, sb movs r4, #0xc1 lsls r4, r4, #8 _0802D3B4: movs r6, #1 lsls r3, r3, #0x10 asrs r2, r3, #0x10 _0802D3BA: lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802D3BA movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1e ble _0802D3B4 ldr r1, _0802D488 @ =0x040000D4 mov r2, sb str r2, [r1] ldr r0, _0802D48C @ =0x06002000 str r0, [r1, #4] ldr r0, _0802D490 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _0802D3F6: ldr r2, _0802D494 @ =0x020314E0 ldr r1, [r2] ldr r3, _0802D498 @ =0xFFFFFEF2 adds r0, r3, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1e bls _0802D40C b _0802D54C _0802D40C: lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 bne _0802D4A4 movs r6, #0 mov sl, r0 ldr r4, _0802D49C @ =0x020028A8 mov sb, r4 adds r0, r2, #0 mov r8, r0 ldr r7, _0802D4A0 @ =0x000012BA movs r1, #2 add r1, sb mov ip, r1 _0802D428: lsls r2, r6, #0x10 asrs r2, r2, #0x10 lsls r5, r2, #1 adds r4, r5, r2 mov r0, sb adds r3, r4, r0 mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r0, r0, r5 ldrb r1, [r0] movs r0, #0x1f ands r0, r1 strb r0, [r3] mov r3, sb adds r3, #1 adds r3, r4, r3 mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r0, r0, r5 ldrh r1, [r0] movs r0, #0xf8 lsls r0, r0, #2 ands r0, r1 lsrs r0, r0, #5 strb r0, [r3] add r4, ip mov r3, r8 ldr r0, [r3] adds r0, r0, r7 adds r0, r0, r5 ldrh r1, [r0] movs r0, #0xf8 lsls r0, r0, #7 ands r0, r1 lsrs r0, r0, #0xa strb r0, [r4] adds r2, #1 lsls r2, r2, #0x10 lsrs r6, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #0xf ble _0802D428 b _0802D53E .align 2, 0 _0802D484: .4byte 0x03005C00 _0802D488: .4byte 0x040000D4 _0802D48C: .4byte 0x06002000 _0802D490: .4byte 0x80000400 _0802D494: .4byte 0x020314E0 _0802D498: .4byte 0xFFFFFEF2 _0802D49C: .4byte 0x020028A8 _0802D4A0: .4byte 0x000012BA _0802D4A4: movs r6, #0 mov sl, r0 movs r4, #0xd8 lsls r4, r4, #1 add r4, sp str r4, [sp, #0x214] add r7, sp, #0x210 mov sb, r1 _0802D4B4: lsls r5, r6, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #1 mov r8, r0 adds r6, r0, r5 ldr r1, _0802D5B8 @ =0x020028A8 adds r0, r6, r1 ldrb r4, [r0] movs r2, #0x1f subs r0, r2, r4 mov r3, sb muls r3, r0, r3 adds r0, r3, #0 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 strb r4, [r7] ldr r0, _0802D5B8 @ =0x020028A8 adds r0, #1 adds r0, r6, r0 ldrb r4, [r0] movs r1, #0x1f subs r0, r1, r4 mov r2, sb muls r2, r0, r2 adds r0, r2, #0 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 strb r4, [r7, #1] ldr r3, _0802D5BC @ =0x020028AA adds r6, r6, r3 ldrb r4, [r6] movs r1, #0x1f subs r0, r1, r4 mov r2, sb muls r2, r0, r2 adds r0, r2, #0 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 strb r4, [r7, #2] ldr r3, [sp, #0x214] add r8, r3 ldrb r1, [r7] ldrb r0, [r7, #1] lsls r0, r0, #5 orrs r1, r0 ldrb r0, [r7, #2] lsls r0, r0, #0xa orrs r1, r0 mov r4, r8 strh r1, [r4] adds r5, #1 lsls r5, r5, #0x10 lsrs r6, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #0xf ble _0802D4B4 ldr r1, _0802D5C0 @ =0x040000D4 str r3, [r1] ldr r0, _0802D5C4 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802D5C8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802D53E: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0xa bne _0802D54C movs r0, #0xb0 bl m4aSongNumStart _0802D54C: ldr r1, _0802D5CC @ =0x020314E0 ldr r3, [r1] ldr r4, _0802D5D0 @ =0xFFFFFED4 adds r2, r4, #0 ldrh r4, [r3, #0x18] adds r0, r2, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x10 bhi _0802D582 movs r0, #0x88 lsls r0, r0, #5 adds r1, r3, r0 movs r0, #1 strb r0, [r1] ldr r1, _0802D5CC @ =0x020314E0 ldr r0, [r1] ldrh r0, [r0, #0x18] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0802D5D4 @ =gMain ldrh r1, [r0, #0x38] movs r1, #0x9f strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r5, [r0, #0x3c] _0802D582: ldr r2, _0802D5CC @ =0x020314E0 ldr r0, [r2] ldrh r2, [r0, #0x18] cmp r2, #0xa bhi _0802D58E b _0802DD32 _0802D58E: ldr r1, _0802D5D4 @ =gMain ldr r0, [r1, #0x44] ldr r7, [r0, #0x60] ldr r3, _0802D5D8 @ =0x0000FF88 adds r0, r2, r3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0802D5DC mov r4, sp subs r0, #0x16 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa0 strh r1, [r4] b _0802D5E2 .align 2, 0 _0802D5B8: .4byte 0x020028A8 _0802D5BC: .4byte 0x020028AA _0802D5C0: .4byte 0x040000D4 _0802D5C4: .4byte 0x050003A0 _0802D5C8: .4byte 0x80000010 _0802D5CC: .4byte 0x020314E0 _0802D5D0: .4byte 0xFFFFFED4 _0802D5D4: .4byte gMain _0802D5D8: .4byte 0x0000FF88 _0802D5DC: mov r1, sp ldr r0, _0802D604 @ =0x0000FF5E strh r0, [r1] _0802D5E2: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0 blt _0802D608 mov r4, sp adds r0, r1, #0 movs r1, #0x66 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #2] b _0802D60E .align 2, 0 _0802D604: .4byte 0x0000FF5E _0802D608: mov r1, sp ldr r0, _0802D62C @ =0x0000FF5E strh r0, [r1, #2] _0802D60E: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0x47 ble _0802D630 mov r4, sp subs r0, #0x48 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #4] b _0802D636 .align 2, 0 _0802D62C: .4byte 0x0000FF5E _0802D630: mov r1, sp ldr r0, _0802D654 @ =0x0000FF5E strh r0, [r1, #4] _0802D636: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x32 ble _0802D658 mov r4, sp subs r0, #0x33 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa1 strh r1, [r4, #6] b _0802D65E .align 2, 0 _0802D654: .4byte 0x0000FF5E _0802D658: mov r1, sp ldr r0, _0802D6F8 @ =0x0000FF5F strh r0, [r1, #6] _0802D65E: ldr r2, _0802D6FC @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r3, #0x9a lsls r3, r3, #1 adds r0, r3, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802D700 @ =0x03005000 ldr r4, _0802D704 @ =0xFFFFFE00 mov r8, r4 _0802D684: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r0, #2 ldrsh r2, [r7, r0] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802D708 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802D684 ldr r2, _0802D6FC @ =0x020314E0 ldr r1, [r2] ldr r3, _0802D70C @ =0x0000FFC4 adds r0, r3, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0802D710 mov r4, sp subs r0, #0x16 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa0 strh r1, [r4] b _0802D716 .align 2, 0 _0802D6F8: .4byte 0x0000FF5F _0802D6FC: .4byte 0x020314E0 _0802D700: .4byte 0x03005000 _0802D704: .4byte 0xFFFFFE00 _0802D708: .4byte 0x000001FF _0802D70C: .4byte 0x0000FFC4 _0802D710: mov r1, sp ldr r0, _0802D738 @ =0x0000FF5E strh r0, [r1] _0802D716: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0 blt _0802D73C mov r4, sp adds r0, r1, #0 movs r1, #0x66 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #2] b _0802D742 .align 2, 0 _0802D738: .4byte 0x0000FF5E _0802D73C: mov r1, sp ldr r0, _0802D760 @ =0x0000FF5E strh r0, [r1, #2] _0802D742: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0x47 ble _0802D764 mov r4, sp subs r0, #0x48 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #4] b _0802D76A .align 2, 0 _0802D760: .4byte 0x0000FF5E _0802D764: mov r1, sp ldr r0, _0802D788 @ =0x0000FF5E strh r0, [r1, #4] _0802D76A: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x32 ble _0802D78C mov r4, sp subs r0, #0x33 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa1 strh r1, [r4, #6] b _0802D792 .align 2, 0 _0802D788: .4byte 0x0000FF5E _0802D78C: mov r1, sp ldr r0, _0802D834 @ =0x0000FF5F strh r0, [r1, #6] _0802D792: ldr r2, _0802D838 @ =gMain ldr r0, [r2, #0x44] ldr r7, [r0, #0x64] ldr r3, _0802D83C @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802D840 @ =0x03005000 ldr r0, _0802D844 @ =0xFFFFFE00 mov r8, r0 _0802D7BE: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802D848 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802D7BE ldr r2, _0802D838 @ =gMain ldr r0, [r2, #0x44] ldr r7, [r0, #0x68] ldr r3, _0802D83C @ =0x020314E0 ldr r1, [r3] ldr r4, _0802D84C @ =0x0000FF9C adds r0, r4, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 blt _0802D850 mov r4, sp movs r1, #0x98 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf subs r0, #0xa0 strh r0, [r4] b _0802D856 .align 2, 0 _0802D834: .4byte 0x0000FF5F _0802D838: .4byte gMain _0802D83C: .4byte 0x020314E0 _0802D840: .4byte 0x03005000 _0802D844: .4byte 0xFFFFFE00 _0802D848: .4byte 0x000001FF _0802D84C: .4byte 0x0000FF9C _0802D850: mov r1, sp ldr r0, _0802D874 @ =0x0000FF60 strh r0, [r1] _0802D856: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0x25 ble _0802D878 mov r4, sp adds r0, r1, #0 subs r0, #0x26 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #2] b _0802D87E .align 2, 0 _0802D874: .4byte 0x0000FF60 _0802D878: mov r1, sp ldr r0, _0802D898 @ =0x0000FF60 strh r0, [r1, #2] _0802D87E: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x4b ble _0802D89C mov r4, sp subs r0, #0x4c movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #4] b _0802D8A2 .align 2, 0 _0802D898: .4byte 0x0000FF60 _0802D89C: mov r1, sp ldr r0, _0802D8BC @ =0x0000FF60 strh r0, [r1, #4] _0802D8A2: mov r2, sl asrs r0, r2, #0x10 cmp r0, #0x71 ble _0802D8C0 mov r4, sp subs r0, #0x72 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #6] b _0802D8C6 .align 2, 0 _0802D8BC: .4byte 0x0000FF60 _0802D8C0: mov r1, sp ldr r0, _0802D964 @ =0x0000FF60 strh r0, [r1, #6] _0802D8C6: ldr r3, _0802D968 @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802D96C @ =0x03005000 ldr r0, _0802D970 @ =0xFFFFFE00 mov r8, r0 _0802D8EC: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802D974 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802D8EC ldr r2, _0802D978 @ =gMain ldr r0, [r2, #0x44] ldr r7, [r0, #0x6c] ldr r3, _0802D968 @ =0x020314E0 ldr r1, [r3] ldr r4, _0802D97C @ =0x0000FFB0 adds r0, r4, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 blt _0802D980 mov r4, sp movs r1, #0x98 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf subs r0, #0xa0 strh r0, [r4] b _0802D986 .align 2, 0 _0802D964: .4byte 0x0000FF60 _0802D968: .4byte 0x020314E0 _0802D96C: .4byte 0x03005000 _0802D970: .4byte 0xFFFFFE00 _0802D974: .4byte 0x000001FF _0802D978: .4byte gMain _0802D97C: .4byte 0x0000FFB0 _0802D980: mov r1, sp ldr r0, _0802D9A4 @ =0x0000FF60 strh r0, [r1] _0802D986: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0x25 ble _0802D9A8 mov r4, sp adds r0, r1, #0 subs r0, #0x26 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #2] b _0802D9AE .align 2, 0 _0802D9A4: .4byte 0x0000FF60 _0802D9A8: mov r1, sp ldr r0, _0802D9C8 @ =0x0000FF60 strh r0, [r1, #2] _0802D9AE: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x4b ble _0802D9CC mov r4, sp subs r0, #0x4c movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #4] b _0802D9D2 .align 2, 0 _0802D9C8: .4byte 0x0000FF60 _0802D9CC: mov r1, sp ldr r0, _0802D9EC @ =0x0000FF60 strh r0, [r1, #4] _0802D9D2: mov r2, sl asrs r0, r2, #0x10 cmp r0, #0x71 ble _0802D9F0 mov r4, sp subs r0, #0x72 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #6] b _0802D9F6 .align 2, 0 _0802D9EC: .4byte 0x0000FF60 _0802D9F0: mov r1, sp ldr r0, _0802DA8C @ =0x0000FF60 strh r0, [r1, #6] _0802D9F6: ldr r3, _0802DA90 @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802DA94 @ =0x03005000 ldr r0, _0802DA98 @ =0xFFFFFE00 mov r8, r0 _0802DA1C: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802DA9C @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802DA1C ldr r2, _0802DA90 @ =0x020314E0 ldr r1, [r2] ldr r3, _0802DAA0 @ =0x0000FFA6 adds r0, r3, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xeb ble _0802DAA4 mov r4, sp subs r0, #0xec movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4] b _0802DAAA .align 2, 0 _0802DA8C: .4byte 0x0000FF60 _0802DA90: .4byte 0x020314E0 _0802DA94: .4byte 0x03005000 _0802DA98: .4byte 0xFFFFFE00 _0802DA9C: .4byte 0x000001FF _0802DAA0: .4byte 0x0000FFA6 _0802DAA4: mov r1, sp ldr r0, _0802DAC8 @ =0x0000FF80 strh r0, [r1] _0802DAAA: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0xcb ble _0802DACC mov r4, sp adds r0, r1, #0 subs r0, #0xcc movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #2] b _0802DAD2 .align 2, 0 _0802DAC8: .4byte 0x0000FF80 _0802DACC: mov r1, sp ldr r0, _0802DAEC @ =0x0000FF80 strh r0, [r1, #2] _0802DAD2: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0xa7 ble _0802DAF0 mov r4, sp subs r0, #0xa8 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #4] b _0802DAF6 .align 2, 0 _0802DAEC: .4byte 0x0000FF80 _0802DAF0: mov r1, sp ldr r0, _0802DB10 @ =0x0000FF80 strh r0, [r1, #4] _0802DAF6: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x87 ble _0802DB14 mov r4, sp subs r0, #0x88 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #6] b _0802DB1A .align 2, 0 _0802DB10: .4byte 0x0000FF80 _0802DB14: mov r1, sp ldr r0, _0802DB34 @ =0x0000FF80 strh r0, [r1, #6] _0802DB1A: mov r2, sl asrs r0, r2, #0x10 cmp r0, #0x63 ble _0802DB38 mov r4, sp subs r0, #0x64 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #8] b _0802DB3E .align 2, 0 _0802DB34: .4byte 0x0000FF80 _0802DB38: mov r1, sp ldr r0, _0802DB58 @ =0x0000FF80 strh r0, [r1, #8] _0802DB3E: mov r3, sl asrs r0, r3, #0x10 cmp r0, #0x43 ble _0802DB5C mov r4, sp subs r0, #0x44 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #0xa] b _0802DB62 .align 2, 0 _0802DB58: .4byte 0x0000FF80 _0802DB5C: mov r1, sp ldr r0, _0802DB7C @ =0x0000FF80 strh r0, [r1, #0xa] _0802DB62: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0x1f ble _0802DB80 mov r4, sp subs r0, #0x20 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #0xc] b _0802DB86 .align 2, 0 _0802DB7C: .4byte 0x0000FF80 _0802DB80: mov r1, sp ldr r0, _0802DBA0 @ =0x0000FF80 strh r0, [r1, #0xc] _0802DB86: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0 blt _0802DBA4 mov r4, sp movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #0xe] b _0802DBAA .align 2, 0 _0802DBA0: .4byte 0x0000FF80 _0802DBA4: mov r1, sp ldr r0, _0802DC74 @ =0x0000FF80 strh r0, [r1, #0xe] _0802DBAA: ldr r2, _0802DC78 @ =gMain ldr r0, [r2, #0x44] ldr r7, [r0, #0x70] ldr r3, _0802DC7C @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802DC80 @ =0x03005000 ldr r0, _0802DC84 @ =0xFFFFFE00 mov r8, r0 _0802DBD6: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802DC88 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #7 ble _0802DBD6 ldr r2, _0802DC78 @ =gMain ldr r0, [r2, #0x44] ldr r7, [r0, #0x3c] ldr r3, _0802DC7C @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 strh r0, [r7, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r1, [r0] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] ldr r1, _0802DC8C @ =0x0000FF88 adds r0, r1, #0 ldrh r2, [r2, #0x18] adds r0, r0, r2 lsls r0, r0, #0x10 asrs r2, r0, #0x10 cmp r2, #0 ble _0802DC90 mov r1, sp movs r0, #0 strh r0, [r1] adds r0, r2, #0 movs r1, #0x46 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #7 bl __divsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 b _0802DC98 .align 2, 0 _0802DC74: .4byte 0x0000FF80 _0802DC78: .4byte gMain _0802DC7C: .4byte 0x020314E0 _0802DC80: .4byte 0x03005000 _0802DC84: .4byte 0xFFFFFE00 _0802DC88: .4byte 0x000001FF _0802DC8C: .4byte 0x0000FF88 _0802DC90: mov r1, sp ldr r0, _0802DE04 @ =0x0000FF60 strh r0, [r1] movs r3, #0 _0802DC98: movs r6, #0 lsls r0, r3, #0x10 ldr r2, _0802DE08 @ =0x03005000 mov sl, r2 ldr r3, _0802DE0C @ =0x086B4112 mov sb, r3 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov r8, r0 ldr r4, _0802DE10 @ =0xFFFFFE00 mov ip, r4 _0802DCB2: lsls r4, r6, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r1, sl adds r2, r0, r1 lsls r1, r4, #1 adds r1, r1, r4 lsls r0, r1, #1 add r0, r8 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, r8 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, r8 add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r3, [r6] lsls r3, r3, #3 add r3, sl ldrh r5, [r3, #2] lsls r2, r5, #0x17 lsrs r2, r2, #0x17 str r2, [sp, #0x218] movs r2, #2 ldrsh r1, [r7, r2] mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r0, [sp, #0x218] adds r2, r0, r1 ldr r1, _0802DE14 @ =0x000001FF adds r0, r1, #0 ands r2, r0 mov r0, ip ands r0, r5 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r6, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _0802DCB2 _0802DD32: ldr r3, _0802DE18 @ =0x020314E0 ldr r0, [r3] ldrh r1, [r0, #0x18] movs r0, #0xaf lsls r0, r0, #1 cmp r1, r0 bne _0802DD84 movs r1, #0xf0 lsls r1, r1, #0x11 ldr r4, _0802DE1C @ =0x03005C00 mov sb, r4 ldr r3, _0802DE14 @ =0x000001FF ldr r2, _0802DE20 @ =0x0000033F _0802DD4C: asrs r0, r1, #0x10 lsls r1, r0, #1 adds r1, r1, r4 strh r3, [r1] adds r0, #1 lsls r1, r0, #0x10 asrs r0, r1, #0x10 cmp r0, r2 ble _0802DD4C ldr r1, _0802DE24 @ =0x040000D4 mov r0, sb str r0, [r1] ldr r0, _0802DE28 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802DE2C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0802DE30 @ =gMain ldrb r0, [r1, #4] cmp r0, #1 bne _0802DD84 ldr r2, _0802DE18 @ =0x020314E0 ldr r0, [r2] movs r3, #0xe0 lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0 strh r1, [r0] _0802DD84: ldr r4, _0802DE18 @ =0x020314E0 ldr r3, [r4] ldrh r1, [r3, #0x18] movs r0, #0xb4 lsls r0, r0, #1 cmp r1, r0 beq _0802DD94 b _0802E052 _0802DD94: ldr r2, _0802DE30 @ =gMain ldr r0, [r2, #0x44] ldr r0, [r0, #0x60] movs r1, #0 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x64] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x68] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x6c] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x70] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x3c] strh r1, [r0] ldr r1, _0802DE34 @ =0x000005A2 adds r0, r3, r1 ldrh r1, [r0] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r3, r2 strh r1, [r0] movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] adds r0, #0xe4 movs r1, #0x11 strb r1, [r0] ldr r1, _0802DE24 @ =0x040000D4 ldr r0, _0802DE38 @ =0x083A562C str r0, [r1] ldr r0, _0802DE3C @ =0x06015800 str r0, [r1, #4] ldr r0, _0802DE40 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802DE44 @ =0x083A6E4C str r0, [r1] ldr r0, _0802DE48 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802DE4C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r4] ldr r3, _0802DE50 @ =0x000006DB adds r0, r0, r3 movs r1, #3 strb r1, [r0] b _0802E052 .align 2, 0 _0802DE04: .4byte 0x0000FF60 _0802DE08: .4byte 0x03005000 _0802DE0C: .4byte 0x086B4112 _0802DE10: .4byte 0xFFFFFE00 _0802DE14: .4byte 0x000001FF _0802DE18: .4byte 0x020314E0 _0802DE1C: .4byte 0x03005C00 _0802DE20: .4byte 0x0000033F _0802DE24: .4byte 0x040000D4 _0802DE28: .4byte 0x06002000 _0802DE2C: .4byte 0x80000400 _0802DE30: .4byte gMain _0802DE34: .4byte 0x000005A2 _0802DE38: .4byte 0x083A562C _0802DE3C: .4byte 0x06015800 _0802DE40: .4byte 0x80000C00 _0802DE44: .4byte 0x083A6E4C _0802DE48: .4byte 0x050003C0 _0802DE4C: .4byte 0x80000010 _0802DE50: .4byte 0x000006DB thumb_func_start sub_2DE54 sub_2DE54: @ 0x0802DE54 ldr r4, _0802DED4 @ =0xFFFFFE98 adds r0, r3, r4 lsls r0, r0, #0x10 asrs r4, r0, #0x10 cmp r4, #0x40 bgt _0802DEF0 cmp r4, #1 bne _0802DE6A ldr r0, _0802DED8 @ =0x02032EE0 bl m4aMPlayStop _0802DE6A: ldr r5, _0802DEDC @ =gMain ldrh r0, [r5, #0x38] movs r0, #0x9f strh r0, [r5, #0x38] adds r0, r4, #0 cmp r4, #0 bge _0802DE7A adds r0, r4, #3 _0802DE7A: asrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r5, #0x3c] strh r1, [r5, #0x3c] cmp r4, #0x20 bne _0802DEB0 ldr r0, _0802DEE0 @ =0x020314E0 ldr r1, [r0] movs r3, #0xa7 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0x8c strh r0, [r2] ldr r2, _0802DEE4 @ =0x086A3700 movs r0, #0xb3 lsls r0, r0, #3 adds r1, r1, r0 ldrh r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC _0802DEB0: cmp r4, #0x40 beq _0802DEB6 b _0802E052 _0802DEB6: ldr r2, _0802DEE0 @ =0x020314E0 ldr r1, [r2] ldr r3, _0802DEE8 @ =0x00000604 adds r2, r1, r3 movs r0, #0 strh r0, [r2] ldr r4, _0802DEEC @ =0x00000603 adds r1, r1, r4 strb r0, [r1] ldr r0, [r5, #0x44] adds r0, #0x94 ldr r1, [r0] movs r0, #1 strh r0, [r1] b _0802E052 .align 2, 0 _0802DED4: .4byte 0xFFFFFE98 _0802DED8: .4byte 0x02032EE0 _0802DEDC: .4byte gMain _0802DEE0: .4byte 0x020314E0 _0802DEE4: .4byte 0x086A3700 _0802DEE8: .4byte 0x00000604 _0802DEEC: .4byte 0x00000603 _0802DEF0: movs r1, #0x88 lsls r1, r1, #5 adds r0, r2, r1 movs r4, #0 strb r4, [r0] ldr r2, _0802DF20 @ =0x086AE0D0 ldr r3, _0802DF24 @ =0x020314E0 ldr r1, [r3] ldr r0, _0802DF28 @ =0x00000603 adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r0, [r0, r2] ldr r2, _0802DF2C @ =0x00000604 adds r1, r1, r2 ldrh r2, [r1] cmp r0, r2 ble _0802DF30 adds r0, r2, #1 strh r0, [r1] b _0802DF80 .align 2, 0 _0802DF20: .4byte 0x086AE0D0 _0802DF24: .4byte 0x020314E0 _0802DF28: .4byte 0x00000603 _0802DF2C: .4byte 0x00000604 _0802DF30: strh r4, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r3, _0802E068 @ =0x020314E0 ldr r0, [r3] ldr r2, _0802E06C @ =0x00000603 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xa ble _0802DF80 ldr r3, _0802E070 @ =gMain ldr r0, [r3, #0x44] adds r0, #0x94 ldr r0, [r0] strh r4, [r0] movs r0, #0xa strb r0, [r1] ldr r0, _0802E068 @ =0x020314E0 ldr r1, [r0] strh r4, [r1, #0x18] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, _0802E074 @ =0x040000D4 ldr r2, _0802E068 @ =0x020314E0 ldr r0, [r2] ldr r3, _0802E078 @ =0x0000111A adds r0, r0, r3 str r0, [r1] ldr r0, _0802E07C @ =0x05000200 str r0, [r1, #4] ldr r0, _0802E080 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _0802DF80: ldr r4, _0802E068 @ =0x020314E0 ldr r2, [r4] ldr r1, _0802E06C @ =0x00000603 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldr r4, _0802E070 @ =gMain ldr r0, [r4, #0x44] adds r0, #0x94 ldr r7, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 strh r0, [r7, #2] adds r2, #0x5a ldrh r1, [r2] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0802DFC0 movs r0, #0xc8 strh r0, [r7, #4] _0802DFC0: movs r6, #0 lsls r0, r3, #0x10 ldr r3, _0802E084 @ =0x03005000 mov sb, r3 ldr r4, _0802E088 @ =0x086B4E62 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r5, r0, #3 ldr r0, _0802E08C @ =0xFFFFFE00 mov sl, r0 _0802DFD8: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r5 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r5 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r5 add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] adds r1, r0, #0 add r1, ip ldr r0, _0802E090 @ =0x000001FF mov ip, r0 mov r0, ip ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802DFD8 _0802E052: movs r3, #0x88 lsls r3, r3, #2 add sp, r3 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 _0802E068: .4byte 0x020314E0 _0802E06C: .4byte 0x00000603 _0802E070: .4byte gMain _0802E074: .4byte 0x040000D4 _0802E078: .4byte 0x0000111A _0802E07C: .4byte 0x05000200 _0802E080: .4byte 0x800000C0 _0802E084: .4byte 0x03005000 _0802E088: .4byte 0x086B4E62 _0802E08C: .4byte 0xFFFFFE00 _0802E090: .4byte 0x000001FF thumb_func_start sub_2E094 sub_2E094: @ 0x0802E094 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r7, #0 ldr r0, _0802E0FC @ =0x020314E0 ldr r6, [r0] ldrh r3, [r6, #0x18] adds r2, r3, #0 mov sb, r0 cmp r2, #0 bne _0802E180 ldr r2, _0802E100 @ =gMain ldr r0, [r2, #0x44] ldr r1, [r0, #0x40] movs r0, #1 strh r0, [r1] ldr r0, _0802E104 @ =0x0000060C adds r1, r6, r0 subs r0, #0x94 strh r0, [r1] ldr r3, _0802E108 @ =0x0000060E adds r1, r6, r3 ldr r0, _0802E10C @ =0x0000FDA8 strh r0, [r1] adds r1, r6, #0 adds r1, #0xe4 movs r0, #0x15 strb r0, [r1] ldrb r0, [r2, #4] cmp r0, #0 bne _0802E130 ldr r1, _0802E110 @ =0x040000D4 ldr r0, _0802E114 @ =0x081BCAA4 str r0, [r1] ldr r2, _0802E118 @ =0x06015800 str r2, [r1, #4] ldr r0, _0802E11C @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E120 @ =0x081BE2C4 str r0, [r1] ldr r0, _0802E124 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802E128 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E12C @ =0x08483D8C b _0802E150 .align 2, 0 _0802E0FC: .4byte 0x020314E0 _0802E100: .4byte gMain _0802E104: .4byte 0x0000060C _0802E108: .4byte 0x0000060E _0802E10C: .4byte 0x0000FDA8 _0802E110: .4byte 0x040000D4 _0802E114: .4byte 0x081BCAA4 _0802E118: .4byte 0x06015800 _0802E11C: .4byte 0x80000C00 _0802E120: .4byte 0x081BE2C4 _0802E124: .4byte 0x050003C0 _0802E128: .4byte 0x80000010 _0802E12C: .4byte 0x08483D8C _0802E130: ldr r1, _0802E15C @ =0x040000D4 ldr r0, _0802E160 @ =0x081BE4C4 str r0, [r1] ldr r2, _0802E164 @ =0x06015800 str r2, [r1, #4] ldr r0, _0802E168 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E16C @ =0x081BFCE4 str r0, [r1] ldr r0, _0802E170 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802E174 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E178 @ =0x08488A0C _0802E150: str r0, [r1] str r2, [r1, #4] ldr r0, _0802E17C @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] b _0802E610 .align 2, 0 _0802E15C: .4byte 0x040000D4 _0802E160: .4byte 0x081BE4C4 _0802E164: .4byte 0x06015800 _0802E168: .4byte 0x80000C00 _0802E16C: .4byte 0x081BFCE4 _0802E170: .4byte 0x050003C0 _0802E174: .4byte 0x80000010 _0802E178: .4byte 0x08488A0C _0802E17C: .4byte 0x80000240 _0802E180: cmp r2, #0x3b bhi _0802E234 ldrh r0, [r6, #0x18] lsls r0, r0, #0xe movs r1, #0x3c bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 adds r1, r0, #0 mov r6, sb ldr r5, [r6] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r1 lsls r0, r0, #2 ldr r6, _0802E218 @ =0x00004E20 adds r1, r6, #0 bl __divsi3 ldr r7, _0802E21C @ =0x000001E7 adds r0, r0, r7 ldr r1, _0802E220 @ =0x0000060C adds r5, r5, r1 strh r0, [r5] adds r0, r4, #0 bl sub_C24 mov r2, sb ldr r4, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 adds r1, r6, #0 bl __divsi3 ldr r3, _0802E224 @ =0xFFFFFD8B adds r0, r0, r3 ldr r5, _0802E228 @ =0x0000060E adds r1, r4, r5 strh r0, [r1] movs r6, #0xc2 lsls r6, r6, #3 adds r1, r4, r6 ldr r0, _0802E22C @ =0x0000FFEF strh r0, [r1] ldr r7, _0802E230 @ =0x00000612 adds r1, r4, r7 subs r0, #0xd strh r0, [r1] ldrh r0, [r4, #0x18] movs r1, #3 ands r1, r0 lsrs r7, r1, #1 movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0802E210 b _0802E4E0 _0802E210: movs r0, #0x97 bl m4aSongNumStart b _0802E4E0 .align 2, 0 _0802E218: .4byte 0x00004E20 _0802E21C: .4byte 0x000001E7 _0802E220: .4byte 0x0000060C _0802E224: .4byte 0xFFFFFD8B _0802E228: .4byte 0x0000060E _0802E22C: .4byte 0x0000FFEF _0802E230: .4byte 0x00000612 _0802E234: cmp r2, #0x59 bhi _0802E2D0 adds r0, r3, #0 subs r0, #0x3c lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb bgt _0802E25C movs r1, #0xc bl __modsi3 lsls r0, r0, #0x10 asrs r1, r0, #0x10 lsrs r0, r0, #0x1f adds r1, r1, r0 asrs r1, r1, #1 adds r1, #2 lsls r1, r1, #0x10 lsrs r7, r1, #0x10 b _0802E278 _0802E25C: subs r0, #0xc lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x12 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 _0802E278: ldr r4, _0802E2BC @ =0x020314E0 ldr r1, [r4] ldr r0, _0802E2C0 @ =0x00000612 adds r3, r1, r0 ldrh r0, [r3] adds r0, #2 movs r5, #0 movs r2, #0 mov r8, r2 strh r0, [r3] ldr r6, _0802E2C4 @ =0x0000060C adds r2, r1, r6 adds r6, #4 adds r0, r1, r6 ldrh r0, [r0] ldrh r6, [r2] adds r0, r0, r6 strh r0, [r2] ldr r0, _0802E2C8 @ =0x0000060E adds r2, r1, r0 ldrh r0, [r3] ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] ldr r6, _0802E2CC @ =0x0000060A adds r1, r1, r6 strb r5, [r1] ldr r0, [r4] movs r1, #0xc1 lsls r1, r1, #3 adds r0, r0, r1 mov r2, r8 strh r2, [r0] b _0802E4E0 .align 2, 0 _0802E2BC: .4byte 0x020314E0 _0802E2C0: .4byte 0x00000612 _0802E2C4: .4byte 0x0000060C _0802E2C8: .4byte 0x0000060E _0802E2CC: .4byte 0x0000060A _0802E2D0: cmp r2, #0xbd bls _0802E2D6 b _0802E41C _0802E2D6: ldr r2, _0802E300 @ =0x086AE394 ldr r5, _0802E304 @ =0x0000060A adds r3, r6, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #4 adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0xc1 lsls r2, r2, #3 adds r1, r6, r2 ldrh r2, [r1] cmp r0, r2 ble _0802E308 adds r0, r2, #1 strh r0, [r1] b _0802E37A .align 2, 0 _0802E300: .4byte 0x086AE394 _0802E304: .4byte 0x0000060A _0802E308: strh r7, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] mov r3, sb ldr r4, [r3] ldr r6, _0802E3C4 @ =0x0000060A adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0802E366 ldr r3, _0802E3C8 @ =0x08055A68 adds r0, r4, #0 adds r0, #0x32 movs r2, #0 ldrsb r2, [r0, r2] ldr r0, _0802E3CC @ =gMain ldrb r1, [r0, #4] lsls r0, r1, #3 subs r0, r0, r1 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x35 strb r1, [r0] mov r7, sb ldr r1, [r7] ldr r2, _0802E3D0 @ =0x08137928 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _0802E3D4 @ =0x000006D9 adds r1, r1, r2 strb r0, [r1] movs r0, #0 movs r1, #0 bl sub_1C7F4 _0802E366: mov r3, sb ldr r1, [r3] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xb bne _0802E37A movs r0, #0xbd strh r0, [r1, #0x18] _0802E37A: ldr r2, _0802E3D8 @ =0x086AE394 ldr r0, _0802E3DC @ =0x020314E0 ldr r3, [r0] ldr r5, _0802E3C4 @ =0x0000060A adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 adds r0, r2, #2 adds r0, r1, r0 ldrh r7, [r0] adds r2, #4 adds r1, r1, r2 movs r6, #0 ldrsh r0, [r1, r6] cmp r0, #5 bne _0802E3B4 movs r1, #0xc1 lsls r1, r1, #3 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #1 bne _0802E3B4 movs r0, #0x98 bl m4aSongNumStart _0802E3B4: cmp r7, #0x10 bne _0802E3E8 ldr r0, _0802E3DC @ =0x020314E0 ldr r0, [r0] ldr r2, _0802E3E0 @ =0x0000060C adds r0, r0, r2 ldr r1, _0802E3E4 @ =0x0000FFB0 b _0802E3F2 .align 2, 0 _0802E3C4: .4byte 0x0000060A _0802E3C8: .4byte 0x08055A68 _0802E3CC: .4byte gMain _0802E3D0: .4byte 0x08137928 _0802E3D4: .4byte 0x000006D9 _0802E3D8: .4byte 0x086AE394 _0802E3DC: .4byte 0x020314E0 _0802E3E0: .4byte 0x0000060C _0802E3E4: .4byte 0x0000FFB0 _0802E3E8: ldr r0, _0802E40C @ =0x020314E0 ldr r0, [r0] ldr r3, _0802E410 @ =0x0000060C adds r0, r0, r3 movs r1, #0 _0802E3F2: strh r1, [r0] ldr r0, _0802E40C @ =0x020314E0 ldr r1, [r0] movs r5, #0xc2 lsls r5, r5, #3 adds r2, r1, r5 ldr r0, _0802E414 @ =0x0000FFE8 strh r0, [r2] ldr r6, _0802E418 @ =0x00000612 adds r1, r1, r6 movs r0, #0xe strh r0, [r1] b _0802E4E0 .align 2, 0 _0802E40C: .4byte 0x020314E0 _0802E410: .4byte 0x0000060C _0802E414: .4byte 0x0000FFE8 _0802E418: .4byte 0x00000612 _0802E41C: ldr r0, _0802E454 @ =0x000001AD cmp r2, r0 bhi _0802E496 adds r0, r3, #0 subs r0, #0xbe lsls r0, r0, #0x10 asrs r3, r0, #0x10 cmp r3, #0x17 bgt _0802E45C lsls r0, r3, #3 subs r0, r0, r3 lsls r0, r0, #1 rsbs r0, r0, #0 ldr r7, _0802E458 @ =0x0000060C adds r1, r6, r7 strh r0, [r1] adds r0, r3, #0 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _0802E44E adds r0, #3 _0802E44E: asrs r0, r0, #2 adds r0, #2 b _0802E48C .align 2, 0 _0802E454: .4byte 0x000001AD _0802E458: .4byte 0x0000060C _0802E45C: cmp r3, #0x1d bgt _0802E46E movs r7, #0xc cmp r3, #0x18 bne _0802E4E0 movs r0, #0x11 bl m4aSongNumStart b _0802E4E0 _0802E46E: cmp r3, #0x29 bgt _0802E492 adds r0, r3, #0 subs r0, #0x1e lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xc bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #6 bl __divsi3 adds r0, #0xd _0802E48C: lsls r0, r0, #0x10 lsrs r7, r0, #0x10 b _0802E4E0 _0802E492: movs r7, #0xf b _0802E4E0 _0802E496: ldr r0, _0802E4F8 @ =0x000001E9 cmp r2, r0 bhi _0802E4E0 ldrh r0, [r6, #0x18] movs r1, #3 ands r0, r1 lsrs r7, r0, #1 ldr r0, _0802E4FC @ =0x00000612 adds r2, r6, r0 ldrh r0, [r2] subs r0, #1 strh r0, [r2] ldr r3, _0802E500 @ =0x0000060C adds r1, r6, r3 movs r5, #0xc2 lsls r5, r5, #3 adds r0, r6, r5 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] subs r5, #2 adds r1, r6, r5 ldrh r0, [r2] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldrh r0, [r6, #0x18] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0802E4E0 movs r0, #0x97 bl m4aSongNumStart _0802E4E0: ldr r0, _0802E504 @ =gMain ldrb r1, [r0, #4] cmp r1, #0 bne _0802E510 ldr r2, _0802E508 @ =0x040000D4 lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802E50C @ =0x08483D8C b _0802E51E .align 2, 0 _0802E4F8: .4byte 0x000001E9 _0802E4FC: .4byte 0x00000612 _0802E500: .4byte 0x0000060C _0802E504: .4byte gMain _0802E508: .4byte 0x040000D4 _0802E50C: .4byte 0x08483D8C _0802E510: ldr r2, _0802E640 @ =0x040000D4 lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802E644 @ =0x08488A0C _0802E51E: adds r0, r0, r1 str r0, [r2] ldr r0, _0802E648 @ =0x06015800 str r0, [r2, #4] ldr r0, _0802E64C @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802E650 @ =0x086AE394 ldr r5, _0802E654 @ =0x020314E0 ldr r4, [r5] ldr r3, _0802E658 @ =0x0000060A adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r7, [r0] ldr r6, _0802E65C @ =gMain ldr r0, [r6, #0x44] ldr r6, [r0, #0x40] ldr r1, _0802E660 @ =0x0000060C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x60 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _0802E664 @ =0x0000060E adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 movs r2, #0x96 lsls r2, r2, #1 adds r0, r0, r2 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 mov sb, r5 ldr r3, _0802E668 @ =0x03005000 mov r8, r3 ldr r5, _0802E66C @ =0x086B3FE6 mov ip, r5 lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 str r0, [sp] ldr r7, _0802E670 @ =0xFFFFFE00 mov sl, r7 _0802E59C: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r5, [sp] adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r5 add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802E674 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _0802E59C _0802E610: mov r3, sb ldr r4, [r3] ldrh r1, [r4, #0x18] ldr r0, _0802E678 @ =0x000001E9 cmp r1, r0 bne _0802E62E ldr r5, _0802E65C @ =gMain ldr r0, [r5, #0x44] ldr r1, [r0, #0x40] movs r2, #0 movs r0, #0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe4 strb r2, [r0] _0802E62E: 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 _0802E640: .4byte 0x040000D4 _0802E644: .4byte 0x08488A0C _0802E648: .4byte 0x06015800 _0802E64C: .4byte 0x80000240 _0802E650: .4byte 0x086AE394 _0802E654: .4byte 0x020314E0 _0802E658: .4byte 0x0000060A _0802E65C: .4byte gMain _0802E660: .4byte 0x0000060C _0802E664: .4byte 0x0000060E _0802E668: .4byte 0x03005000 _0802E66C: .4byte 0x086B3FE6 _0802E670: .4byte 0xFFFFFE00 _0802E674: .4byte 0x000001FF _0802E678: .4byte 0x000001E9 thumb_func_start sub_2E67C sub_2E67C: @ 0x0802E67C ldr r0, _0802E6A0 @ =0x020314E0 ldr r1, [r0] ldr r0, _0802E6A4 @ =0x00000306 adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #1 bne _0802E6AA movs r0, #0xc3 lsls r0, r0, #2 adds r2, r1, r0 ldrh r0, [r2] adds r1, r0, #0 cmp r1, #0 beq _0802E6A8 subs r0, #1 strh r0, [r2] b _0802E6AA .align 2, 0 _0802E6A0: .4byte 0x020314E0 _0802E6A4: .4byte 0x00000306 _0802E6A8: strb r1, [r3] _0802E6AA: bx lr thumb_func_start sub_2E6AC sub_2E6AC: @ 0x0802E6AC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov sl, r0 movs r1, #0 str r1, [sp] ldr r1, _0802E6E0 @ =0x020314E0 ldr r0, [r1] ldr r2, _0802E6E4 @ =0x00000306 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0802E6D6 bl _0802EFFC _0802E6D6: lsls r0, r0, #2 ldr r1, _0802E6E8 @ =_0802E6EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E6E0: .4byte 0x020314E0 _0802E6E4: .4byte 0x00000306 _0802E6E8: .4byte _0802E6EC _0802E6EC: @ jump table .4byte _0802E718 @ case 0 .4byte _0802E75C @ case 1 .4byte _0802E7CC @ case 2 .4byte _0802E7D4 @ case 3 .4byte _0802E8DC @ case 4 .4byte _0802E99C @ case 5 .4byte _0802EB2C @ case 6 .4byte _0802EBE4 @ case 7 .4byte _0802EC40 @ case 8 .4byte _0802EEF8 @ case 9 .4byte _0802EFDC @ case 10 _0802E718: ldr r3, _0802E750 @ =0x020314E0 ldr r4, [r3] ldr r5, _0802E754 @ =0x0000030E adds r0, r4, r5 movs r5, #0 strh r5, [r0] movs r7, #0xa4 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 strh r5, [r0] ldr r2, _0802E758 @ =0x00000322 adds r4, r4, r2 strh r5, [r4] bl _0802EFFC .align 2, 0 _0802E750: .4byte 0x020314E0 _0802E754: .4byte 0x0000030E _0802E758: .4byte 0x00000322 _0802E75C: ldr r5, _0802E7B8 @ =0x086AE45A ldr r3, _0802E7BC @ =0x020314E0 ldr r4, [r3] movs r7, #0xa4 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0x28 bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] mov sl, r0 movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 movs r1, #0 strh r1, [r0] ldr r3, _0802E7C0 @ =0x00000322 adds r0, r4, r3 strh r1, [r0] ldr r5, _0802E7C4 @ =0x00000307 adds r4, r4, r5 strb r2, [r4] ldr r7, _0802E7BC @ =0x020314E0 ldr r3, [r7] ldr r4, _0802E7C8 @ =0x0000030A adds r0, r3, r4 strh r1, [r0] movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 bgt _0802E7AC bl _0802EFFC _0802E7AC: subs r5, #1 adds r0, r3, r5 strb r2, [r0] mov sl, r1 bl _0802EFFC .align 2, 0 _0802E7B8: .4byte 0x086AE45A _0802E7BC: .4byte 0x020314E0 _0802E7C0: .4byte 0x00000322 _0802E7C4: .4byte 0x00000307 _0802E7C8: .4byte 0x0000030A _0802E7CC: movs r7, #4 mov sl, r7 bl _0802EFFC _0802E7D4: ldr r0, _0802E83C @ =0x020314E0 ldr r1, [r0] movs r4, #0xc3 lsls r4, r4, #2 adds r0, r1, r4 ldrh r2, [r0] cmp r2, #2 bhi _0802E84C cmp r2, #0 bne _0802E81A ldr r3, _0802E840 @ =0x000005F7 adds r0, r1, r3 movs r1, #1 strb r1, [r0] ldr r5, _0802E83C @ =0x020314E0 ldr r0, [r5] strb r1, [r0, #0x1f] ldr r0, [r5] ldr r7, _0802E844 @ =0x0000132C adds r0, r0, r7 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] movs r0, #0xe2 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r5] ldr r0, _0802E848 @ =0x000186A0 str r0, [r1, #0x3c] _0802E81A: ldr r0, _0802E83C @ =0x020314E0 ldr r1, [r0] ldr r2, _0802E844 @ =0x0000132C adds r3, r1, r2 ldr r2, [r3] movs r0, #0x9c strh r0, [r2, #0x10] ldr r2, [r3] adds r1, r1, r4 ldrh r0, [r1] lsls r0, r0, #1 adds r0, #0x79 strh r0, [r2, #0x12] movs r3, #4 mov sl, r3 b _0802E886 .align 2, 0 _0802E83C: .4byte 0x020314E0 _0802E840: .4byte 0x000005F7 _0802E844: .4byte 0x0000132C _0802E848: .4byte 0x000186A0 _0802E84C: cmp r2, #0x16 bhi _0802E870 ldr r4, _0802E86C @ =0x0000132C adds r1, r1, r4 ldr r2, [r1] movs r0, #0x9d strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0x86 strh r0, [r2, #0x12] ldr r1, [r1] movs r0, #1 strb r0, [r1] movs r5, #5 mov sl, r5 b _0802E886 .align 2, 0 _0802E86C: .4byte 0x0000132C _0802E870: ldr r7, _0802E8D0 @ =0x00000306 adds r1, r1, r7 movs r2, #0 movs r0, #4 strb r0, [r1] ldr r1, _0802E8D4 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r4 strh r2, [r0] movs r2, #2 mov sl, r2 _0802E886: ldr r4, _0802E8D4 @ =0x020314E0 ldr r3, [r4] ldr r5, _0802E8D8 @ =0x0000132C adds r2, r3, r5 ldr r1, [r2] movs r7, #0x10 ldrsh r0, [r1, r7] lsls r0, r0, #1 movs r4, #0 strh r0, [r1, #0x28] ldr r1, [r2] movs r5, #0x12 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r2] movs r7, #0x10 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] movs r5, #0xc3 lsls r5, r5, #2 adds r1, r3, r5 ldrh r0, [r1] adds r0, #1 strh r0, [r1] movs r7, #0xc4 lsls r7, r7, #2 adds r3, r3, r7 strh r4, [r3] b _0802EFFC .align 2, 0 _0802E8D0: .4byte 0x00000306 _0802E8D4: .4byte 0x020314E0 _0802E8D8: .4byte 0x0000132C _0802E8DC: ldr r2, _0802E908 @ =0x086AE3DC ldr r5, _0802E90C @ =0x020314E0 ldr r3, [r5] ldr r6, _0802E910 @ =0x00000307 adds r4, r3, r6 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #4 adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] ldr r2, _0802E914 @ =0x0000030A adds r3, r3, r2 ldrh r1, [r3] cmp r0, r1 ble _0802E918 adds r0, r1, #1 strh r0, [r3] b _0802E95C .align 2, 0 _0802E908: .4byte 0x086AE3DC _0802E90C: .4byte 0x020314E0 _0802E910: .4byte 0x00000307 _0802E914: .4byte 0x0000030A _0802E918: movs r2, #0 strh r2, [r3] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r5] ldr r3, _0802E98C @ =0x00000307 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x15 bne _0802E948 movs r0, #0x14 strb r0, [r1] ldr r0, [r5] ldr r4, _0802E990 @ =0x00000306 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r5] movs r7, #0xc3 lsls r7, r7, #2 adds r0, r0, r7 strh r2, [r0] _0802E948: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0802E95C movs r0, #0xe3 bl m4aSongNumStart _0802E95C: ldr r2, _0802E994 @ =0x086AE3DC ldr r0, _0802E998 @ =0x020314E0 ldr r3, [r0] ldr r1, _0802E98C @ =0x00000307 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r1, [r1] str r1, [sp] adds r2, #2 adds r0, r0, r2 ldrh r0, [r0] mov sl, r0 movs r2, #0xc4 lsls r2, r2, #2 adds r3, r3, r2 ldrh r0, [r3] adds r1, r0, #1 strh r1, [r3] b _0802EB06 .align 2, 0 _0802E98C: .4byte 0x00000307 _0802E990: .4byte 0x00000306 _0802E994: .4byte 0x086AE3DC _0802E998: .4byte 0x020314E0 _0802E99C: ldr r3, _0802EABC @ =0x020314E0 ldr r2, [r3] movs r4, #0xc3 lsls r4, r4, #2 adds r0, r2, r4 ldrh r0, [r0] cmp r0, #0 bne _0802E9BE movs r5, #0xc8 lsls r5, r5, #2 adds r1, r2, r5 ldr r0, _0802EAC0 @ =0x0000FE98 strh r0, [r1] ldr r7, _0802EAC4 @ =0x00000322 adds r1, r2, r7 adds r0, #0xa0 strh r0, [r1] _0802E9BE: ldr r0, _0802EABC @ =0x020314E0 ldr r7, [r0] movs r1, #0xc3 lsls r1, r1, #2 adds r1, r1, r7 mov sb, r1 ldrh r0, [r1] movs r1, #0x1a bl __umodsi3 ldr r2, _0802EAC8 @ =0x08137CBC ldr r1, _0802EACC @ =0x0000FFFE ands r0, r1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 adds r2, #1 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r2, _0802EAD0 @ =0x0000030E adds r1, r7, r2 strh r0, [r1] movs r3, #0xc7 lsls r3, r3, #2 adds r2, r7, r3 ldr r4, _0802EAD4 @ =0x0000FFF4 mov r8, r4 mov r5, r8 strh r5, [r2] ldr r0, _0802EAD8 @ =0x0000031E adds r3, r7, r0 ldr r0, _0802EADC @ =0x0000FFF6 strh r0, [r3] movs r4, #0xc8 lsls r4, r4, #2 adds r1, r7, r4 ldrh r0, [r2] ldrh r5, [r1] adds r0, r0, r5 strh r0, [r1] ldr r0, _0802EAC4 @ =0x00000322 adds r5, r7, r0 ldrh r0, [r3] ldrh r2, [r5] adds r0, r0, r2 strh r0, [r5] ldr r3, _0802EAE0 @ =0x0000132C adds r4, r7, r3 ldr r6, [r4] movs r2, #0 ldrsh r0, [r1, r2] movs r1, #0xa bl __divsi3 adds r0, #0x9d strh r0, [r6, #0x10] ldr r6, [r4] movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __divsi3 adds r0, #0x86 strh r0, [r6, #0x12] ldr r1, [r4] movs r5, #0x10 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] movs r5, #0x12 ldrsh r0, [r1, r5] lsls r0, r0, #8 str r0, [r1, #0x38] mov r1, sb ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r0, [r4] movs r2, #0x12 ldrsh r0, [r0, r2] mov r3, r8 lsls r3, r3, #0x10 asrs r3, r3, #0x10 mov r8, r3 cmp r0, r8 bge _0802EAF6 movs r4, #0xc2 lsls r4, r4, #2 adds r1, r7, r4 ldrh r0, [r1] cmp r0, #0x63 bls _0802EAE8 movs r5, #0 strh r5, [r1] ldr r0, _0802EAE4 @ =0x00000306 adds r1, r7, r0 movs r0, #6 strb r0, [r1] ldr r1, _0802EABC @ =0x020314E0 ldr r0, [r1] movs r2, #0xc3 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0x41 strh r1, [r0] bl m4aMPlayAllStop b _0802EAF6 .align 2, 0 _0802EABC: .4byte 0x020314E0 _0802EAC0: .4byte 0x0000FE98 _0802EAC4: .4byte 0x00000322 _0802EAC8: .4byte 0x08137CBC _0802EACC: .4byte 0x0000FFFE _0802EAD0: .4byte 0x0000030E _0802EAD4: .4byte 0x0000FFF4 _0802EAD8: .4byte 0x0000031E _0802EADC: .4byte 0x0000FFF6 _0802EAE0: .4byte 0x0000132C _0802EAE4: .4byte 0x00000306 _0802EAE8: movs r4, #0 mov r3, sb strh r4, [r3] ldr r5, _0802EB24 @ =0x00000306 adds r1, r7, r5 movs r0, #7 strb r0, [r1] _0802EAF6: ldr r0, _0802EB28 @ =0x020314E0 ldr r1, [r0] movs r7, #0xc4 lsls r7, r7, #2 adds r1, r1, r7 ldrh r0, [r1] adds r2, r0, #1 strh r2, [r1] _0802EB06: lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x23 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 beq _0802EB1A b _0802EFFC _0802EB1A: movs r0, #0xe3 bl m4aSongNumStart b _0802EFFC .align 2, 0 _0802EB24: .4byte 0x00000306 _0802EB28: .4byte 0x020314E0 _0802EB2C: ldr r1, _0802EBC4 @ =0x020314E0 ldr r0, [r1] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, _0802EBC8 @ =0x08137CBC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 ldr r3, _0802EBC4 @ =0x020314E0 ldr r0, [r3] movs r5, #0xc3 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0x41 bne _0802EB66 movs r0, #0x9f bl m4aSongNumStart ldr r0, _0802EBCC @ =gMain ldrh r1, [r0, #0x38] movs r1, #0x9e strh r1, [r0, #0x38] _0802EB66: ldr r7, _0802EBC4 @ =0x020314E0 ldr r4, [r7] adds r3, r4, r5 ldrh r0, [r3] cmp r0, #0 bne _0802EB74 b _0802EFFC _0802EB74: subs r0, #1 strh r0, [r3] ldr r2, _0802EBCC @ =gMain ldrh r0, [r3] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3] cmp r0, #0 beq _0802EB8E b _0802EFFC _0802EB8E: movs r0, #0xa1 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #7 strb r0, [r1] ldr r0, [r7] ldr r1, _0802EBD0 @ =0x00000282 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r7] ldr r2, _0802EBD4 @ =0x0000072E adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0802EBD8 @ =0x0000073C adds r0, r0, r3 strb r1, [r0] ldr r0, [r7] ldr r4, _0802EBDC @ =0x0000072F adds r1, r0, r4 ldrb r1, [r1] ldr r5, _0802EBE0 @ =0x0000073D adds r0, r0, r5 strb r1, [r0] bl sub_1C73C b _0802EFFC .align 2, 0 _0802EBC4: .4byte 0x020314E0 _0802EBC8: .4byte 0x08137CBC _0802EBCC: .4byte gMain _0802EBD0: .4byte 0x00000282 _0802EBD4: .4byte 0x0000072E _0802EBD8: .4byte 0x0000073C _0802EBDC: .4byte 0x0000072F _0802EBE0: .4byte 0x0000073D _0802EBE4: ldr r7, _0802EC28 @ =0x020314E0 ldr r1, [r7] movs r0, #0xc8 lsls r0, r0, #2 adds r2, r1, r0 movs r3, #0 ldr r0, _0802EC2C @ =0x0000F8A8 strh r0, [r2] ldr r4, _0802EC30 @ =0x00000322 adds r2, r1, r4 ldr r0, _0802EC34 @ =0x0000FCE0 strh r0, [r2] movs r5, #0xc7 lsls r5, r5, #2 adds r2, r1, r5 movs r0, #0x52 strh r0, [r2] ldr r7, _0802EC38 @ =0x0000031E adds r0, r1, r7 strh r3, [r0] movs r2, #0xc3 lsls r2, r2, #2 adds r0, r1, r2 strh r3, [r0] ldr r3, _0802EC3C @ =0x00000306 adds r1, r1, r3 movs r0, #8 strb r0, [r1] movs r4, #0xd mov sl, r4 movs r5, #9 str r5, [sp] b _0802EFFC .align 2, 0 _0802EC28: .4byte 0x020314E0 _0802EC2C: .4byte 0x0000F8A8 _0802EC30: .4byte 0x00000322 _0802EC34: .4byte 0x0000FCE0 _0802EC38: .4byte 0x0000031E _0802EC3C: .4byte 0x00000306 _0802EC40: ldr r6, _0802ECCC @ =0x020314E0 ldr r0, [r6] movs r5, #0xc3 lsls r5, r5, #2 adds r0, r0, r5 ldrh r4, [r0] adds r0, r4, #0 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 adds r0, #0xd lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 lsls r4, r4, #0x1a lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C24 adds r1, r0, #0 ldr r4, [r6] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _0802ECD0 @ =0x00004E20 bl __divsi3 ldr r7, _0802ECD4 @ =0x0000030E adds r1, r4, r7 movs r7, #0 strh r0, [r1] adds r4, r4, r5 ldrh r0, [r4] cmp r0, #0 bne _0802EC9A movs r0, #0xe4 bl m4aSongNumStart _0802EC9A: ldr r2, [r6] adds r1, r2, r5 ldrh r0, [r1] cmp r0, #0x27 bhi _0802ECE0 movs r0, #0xc8 lsls r0, r0, #2 adds r1, r2, r0 movs r3, #0xc7 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] ldr r5, _0802ECD8 @ =0x00000322 adds r1, r2, r5 ldr r7, _0802ECDC @ =0x0000031E adds r0, r2, r7 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] b _0802ED14 .align 2, 0 _0802ECCC: .4byte 0x020314E0 _0802ECD0: .4byte 0x00004E20 _0802ECD4: .4byte 0x0000030E _0802ECD8: .4byte 0x00000322 _0802ECDC: .4byte 0x0000031E _0802ECE0: cmp r0, #0x45 bls _0802ED14 strh r7, [r1] ldr r3, _0802EDF4 @ =0x00000306 adds r1, r2, r3 movs r0, #9 strb r0, [r1] ldr r1, [r6] movs r4, #0xc8 lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0x96 lsls r0, r0, #3 strh r0, [r2] ldr r5, _0802EDF8 @ =0x00000322 adds r1, r1, r5 ldr r0, _0802EDFC @ =0x0000FC18 strh r0, [r1] movs r0, #0xe3 bl m4aSongNumStart ldr r0, [r6] movs r1, #0xc4 lsls r1, r1, #2 adds r0, r0, r1 strh r7, [r0] _0802ED14: ldr r0, _0802EE00 @ =0x020314E0 ldr r2, [r0] movs r6, #0xc3 lsls r6, r6, #2 adds r1, r2, r6 ldrh r1, [r1] cmp r1, #0xd bne _0802ED90 ldr r5, _0802EE04 @ =0x0000132C adds r0, r2, r5 ldr r1, [r0] movs r0, #0 strb r0, [r1] ldr r2, _0802EE00 @ =0x020314E0 ldr r4, [r2] movs r3, #0xc5 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #5 strh r0, [r1] ldr r7, _0802EE08 @ =0x00000316 adds r1, r4, r7 ldr r0, _0802EE0C @ =0x0000FFE7 strh r0, [r1] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x9d lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r3, #0xc6 lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] adds r7, #0xc adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x86 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r2, _0802EE10 @ =0x0000031A adds r0, r4, r2 strh r1, [r0] adds r4, r4, r5 ldr r1, [r4] movs r0, #1 strb r0, [r1, #1] _0802ED90: ldr r3, _0802EE00 @ =0x020314E0 ldr r7, [r3] ldrb r0, [r7, #0x1f] cmp r0, #0 bne _0802ED9C b _0802EED8 _0802ED9C: adds r0, r7, r6 ldrh r0, [r0] cmp r0, #0xc bhi _0802EE14 ldr r5, _0802EE04 @ =0x0000132C adds r4, r7, r5 ldr r5, [r4] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r7, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x9d strh r0, [r5, #0x10] ldr r5, [r4] ldr r3, _0802EDF8 @ =0x00000322 adds r0, r7, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r0, #0x86 strh r0, [r5, #0x12] ldr r1, [r4] movs r2, #0x10 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r5, #0x10 ldrsh r0, [r1, r5] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] b _0802EED0 .align 2, 0 _0802EDF4: .4byte 0x00000306 _0802EDF8: .4byte 0x00000322 _0802EDFC: .4byte 0x0000FC18 _0802EE00: .4byte 0x020314E0 _0802EE04: .4byte 0x0000132C _0802EE08: .4byte 0x00000316 _0802EE0C: .4byte 0x0000FFE7 _0802EE10: .4byte 0x0000031A _0802EE14: ldr r0, _0802EEE4 @ =0x00000316 adds r1, r7, r0 ldrh r0, [r1] adds r0, #2 movs r2, #0 mov r8, r2 strh r0, [r1] movs r3, #0xc6 lsls r3, r3, #2 adds r2, r7, r3 movs r4, #0xc5 lsls r4, r4, #2 adds r0, r7, r4 ldrh r0, [r0] ldrh r5, [r2] adds r0, r0, r5 strh r0, [r2] ldr r0, _0802EEE8 @ =0x0000031A adds r4, r7, r0 ldrh r0, [r1] ldrh r1, [r4] adds r0, r0, r1 strh r0, [r4] ldr r3, _0802EEEC @ =0x0000132C mov sb, r3 adds r5, r7, r3 ldr r6, [r5] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x10] ldr r6, [r5] movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x12] ldr r5, [r5] movs r3, #0x12 ldrsh r0, [r5, r3] cmp r0, #0x5a ble _0802EEAA movs r0, #0x5b strh r0, [r5, #0x12] ldr r4, _0802EEF0 @ =0x000005F7 adds r0, r7, r4 mov r5, r8 strb r5, [r0] ldr r7, _0802EEF4 @ =0x020314E0 ldr r0, [r7] strb r5, [r0, #0x1f] ldr r1, [r7] ldr r0, _0802EEEC @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0x30] ldr r2, [r1] adds r0, #0x80 strh r0, [r2, #0x32] ldr r1, [r1] movs r0, #3 strb r0, [r1, #1] ldr r0, [r7] adds r0, #0x24 strb r5, [r0] movs r0, #0xe5 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0802EEAA: ldr r2, _0802EEF4 @ =0x020314E0 ldr r1, [r2] add r1, sb ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r4, #0x12 ldrsh r0, [r2, r4] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] _0802EED0: movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x38] _0802EED8: movs r0, #9 str r0, [sp] ldr r2, _0802EEF4 @ =0x020314E0 ldr r1, [r2] b _0802EFBC .align 2, 0 _0802EEE4: .4byte 0x00000316 _0802EEE8: .4byte 0x0000031A _0802EEEC: .4byte 0x0000132C _0802EEF0: .4byte 0x000005F7 _0802EEF4: .4byte 0x020314E0 _0802EEF8: ldr r0, _0802EF64 @ =0x020314E0 ldr r4, [r0] movs r7, #0xc3 lsls r7, r7, #2 adds r5, r4, r7 ldrh r0, [r5] movs r1, #0x1a bl __umodsi3 ldr r2, _0802EF68 @ =0x08137CBC ldr r1, _0802EF6C @ =0x0000FFFE ands r0, r1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 adds r2, #1 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r0, r1] ldr r2, _0802EF70 @ =0x0000030E adds r0, r4, r2 strh r1, [r0] movs r3, #0xc7 lsls r3, r3, #2 adds r2, r4, r3 ldr r0, _0802EF74 @ =0x0000FFF4 strh r0, [r2] adds r7, #0x12 adds r3, r4, r7 movs r0, #0xa strh r0, [r3] ldrh r0, [r5] cmp r0, #0x63 bhi _0802EF7C movs r0, #0xc8 lsls r0, r0, #2 adds r1, r4, r0 ldrh r0, [r2] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldr r5, _0802EF78 @ =0x00000322 adds r1, r4, r5 ldrh r0, [r3] ldrh r7, [r1] adds r0, r0, r7 strh r0, [r1] b _0802EF90 .align 2, 0 _0802EF64: .4byte 0x020314E0 _0802EF68: .4byte 0x08137CBC _0802EF6C: .4byte 0x0000FFFE _0802EF70: .4byte 0x0000030E _0802EF74: .4byte 0x0000FFF4 _0802EF78: .4byte 0x00000322 _0802EF7C: movs r0, #0 strh r0, [r5] ldr r0, _0802EFCC @ =0x00000306 adds r1, r4, r0 movs r0, #0xa strb r0, [r1] ldr r0, _0802EFD0 @ =0x02032F20 ldr r1, _0802EFD4 @ =0x086A11A4 bl MPlayStart _0802EF90: ldr r4, _0802EFD8 @ =0x020314E0 ldr r1, [r4] movs r2, #0xc4 lsls r2, r2, #2 adds r1, r1, r2 ldrh r0, [r1] adds r2, r0, #1 strh r2, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x23 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _0802EFBA ldr r0, _0802EFD0 @ =0x02032F20 ldr r1, _0802EFD4 @ =0x086A11A4 bl MPlayStart _0802EFBA: ldr r1, [r4] _0802EFBC: movs r3, #0xc3 lsls r3, r3, #2 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0802EFFC .align 2, 0 _0802EFCC: .4byte 0x00000306 _0802EFD0: .4byte 0x02032F20 _0802EFD4: .4byte 0x086A11A4 _0802EFD8: .4byte 0x020314E0 _0802EFDC: ldr r4, _0802F10C @ =0x020314E0 ldr r0, [r4] ldr r5, _0802F110 @ =0x0000030E adds r1, r0, r5 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r7, _0802F114 @ =0x00000306 adds r0, r0, r7 strb r2, [r0] ldr r0, [r4] movs r1, #0xc3 lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] mov sl, r3 _0802EFFC: ldr r2, _0802F118 @ =0x0200DED8 ldrh r0, [r2] cmp r0, #0 beq _0802F0FA ldr r2, _0802F11C @ =0x040000D4 mov r3, sl lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802F120 @ =0x084BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _0802F124 @ =0x060122A0 str r0, [r2, #4] ldr r0, _0802F128 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802F10C @ =0x020314E0 ldr r4, [r0] movs r5, #0xc8 lsls r5, r5, #2 adds r0, r4, r5 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x92 subs r0, r0, r1 ldr r1, _0802F118 @ =0x0200DED8 strh r0, [r1, #2] ldr r2, _0802F12C @ =0x00000322 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r5, r0, #0 adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r0, #0x6e subs r5, r5, r0 ldr r7, _0802F110 @ =0x0000030E adds r4, r4, r7 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r5, r5, r0 ldr r2, _0802F118 @ =0x0200DED8 strh r5, [r2, #4] movs r2, #0 ldr r3, [sp] lsls r1, r3, #0x10 ldr r4, _0802F130 @ =0x086B3EF6 mov sb, r4 ldr r6, _0802F134 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r5, _0802F138 @ =0xFFFFFE00 mov r8, r5 _0802F08C: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 ldr r7, _0802F118 @ =0x0200DED8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, sl ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] mov ip, r0 mov r5, ip lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _0802F13C @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 mov r5, ip ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldr r7, _0802F118 @ =0x0200DED8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802F08C _0802F0FA: 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 _0802F10C: .4byte 0x020314E0 _0802F110: .4byte 0x0000030E _0802F114: .4byte 0x00000306 _0802F118: .4byte 0x0200DED8 _0802F11C: .4byte 0x040000D4 _0802F120: .4byte 0x084BB16C _0802F124: .4byte 0x060122A0 _0802F128: .4byte 0x80000240 _0802F12C: .4byte 0x00000322 _0802F130: .4byte 0x086B3EF6 _0802F134: .4byte 0x03005000 _0802F138: .4byte 0xFFFFFE00 _0802F13C: .4byte 0x000001FF thumb_func_start sub_2F140 sub_2F140: @ 0x0802F140 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0802F240 @ =0x020314E0 ldr r5, [r0] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r5, r1 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r4, r0, #4 ldr r6, _0802F244 @ =0x0200E9A0 movs r2, #0xbd lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0802F170 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _0802F170: ldr r2, _0802F248 @ =0x086AE462 lsls r0, r4, #0x10 asrs r0, r0, #0xe adds r1, r0, r2 ldrh r3, [r1] adds r2, #2 adds r0, r0, r2 ldrh r4, [r0] adds r0, r5, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xa4 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r5, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0xa6 subs r0, r0, r1 strh r0, [r6, #4] ldr r2, _0802F24C @ =0x040000D4 lsls r1, r4, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0802F250 @ =0x083FFD8C adds r0, r0, r1 str r0, [r2] ldr r0, _0802F254 @ =0x06012720 str r0, [r2, #4] ldr r0, _0802F258 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r7, _0802F25C @ =0x086B4A72 mov sb, r7 ldr r0, _0802F260 @ =0x03005000 mov sl, r0 lsls r3, r3, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #2 mov ip, r0 ldr r2, _0802F264 @ =0xFFFFFE00 mov r8, r2 _0802F1CE: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 add r2, sl lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, sl ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802F268 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sl ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0802F1CE 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 _0802F240: .4byte 0x020314E0 _0802F244: .4byte 0x0200E9A0 _0802F248: .4byte 0x086AE462 _0802F24C: .4byte 0x040000D4 _0802F250: .4byte 0x083FFD8C _0802F254: .4byte 0x06012720 _0802F258: .4byte 0x80000180 _0802F25C: .4byte 0x086B4A72 _0802F260: .4byte 0x03005000 _0802F264: .4byte 0xFFFFFE00 _0802F268: .4byte 0x000001FF thumb_func_start sub_2F26C sub_2F26C: @ 0x0802F26C push {r4, r5, r6, lr} ldr r1, _0802F290 @ =0x020314E0 ldr r0, [r1] movs r2, #0xde lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #4 bls _0802F286 b _0802F4FA _0802F286: lsls r0, r0, #2 ldr r1, _0802F294 @ =_0802F298 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F290: .4byte 0x020314E0 _0802F294: .4byte _0802F298 _0802F298: @ jump table .4byte _0802F2AC @ case 0 .4byte _0802F2F0 @ case 1 .4byte _0802F384 @ case 2 .4byte _0802F408 @ case 3 .4byte _0802F4DC @ case 4 _0802F2AC: ldr r4, [r5] movs r3, #0xa4 lsls r3, r3, #2 adds r0, r4, r3 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 adds r0, #2 ldr r2, _0802F2E8 @ =0x00000379 adds r4, r4, r2 movs r3, #0 strb r0, [r4] ldr r1, [r5] adds r2, r1, r2 ldrb r0, [r2] adds r0, #1 ldr r2, _0802F2EC @ =0x0000037A adds r1, r1, r2 strb r0, [r1] ldr r0, [r5] movs r1, #0xdf lsls r1, r1, #2 adds r0, r0, r1 strb r3, [r0] b _0802F4FA .align 2, 0 _0802F2E8: .4byte 0x00000379 _0802F2EC: .4byte 0x0000037A _0802F2F0: ldr r4, [r5] movs r2, #0xa4 lsls r2, r2, #2 adds r0, r4, r2 ldr r0, [r0] movs r1, #0x21 bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc bgt _0802F320 ldr r3, _0802F318 @ =0x00000379 adds r0, r4, r3 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _0802F31C @ =0x0000037A adds r0, r0, r2 b _0802F360 .align 2, 0 _0802F318: .4byte 0x00000379 _0802F31C: .4byte 0x0000037A _0802F320: cmp r0, #0x13 bgt _0802F330 ldr r3, _0802F32C @ =0x00000379 adds r1, r4, r3 b _0802F354 .align 2, 0 _0802F32C: .4byte 0x00000379 _0802F330: cmp r0, #0x19 bgt _0802F350 ldr r2, _0802F348 @ =0x00000379 adds r1, r4, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] ldr r3, _0802F34C @ =0x0000037A adds r0, r0, r3 movs r1, #2 b _0802F360 .align 2, 0 _0802F348: .4byte 0x00000379 _0802F34C: .4byte 0x0000037A _0802F350: ldr r0, _0802F37C @ =0x00000379 adds r1, r4, r0 _0802F354: movs r0, #9 strb r0, [r1] ldr r0, [r5] ldr r1, _0802F380 @ =0x0000037A adds r0, r0, r1 movs r1, #1 _0802F360: strb r1, [r0] ldr r1, [r5] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0802F374 b _0802F4FA _0802F374: movs r2, #0xdf lsls r2, r2, #2 adds r1, r1, r2 b _0802F4D0 .align 2, 0 _0802F37C: .4byte 0x00000379 _0802F380: .4byte 0x0000037A _0802F384: ldr r0, [r5] movs r3, #0xdf lsls r3, r3, #2 adds r0, r0, r3 movs r2, #0 strb r2, [r0] ldr r0, [r5] ldr r1, _0802F3E8 @ =0x0000037D adds r0, r0, r1 strb r2, [r0] ldr r1, [r5] adds r3, #2 adds r0, r1, r3 movs r3, #0 strh r2, [r0] movs r0, #0xde lsls r0, r0, #2 adds r1, r1, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] ldr r1, _0802F3EC @ =0x0000037B adds r0, r0, r1 strb r3, [r0] ldr r0, _0802F3F0 @ =gMain movs r2, #0xb3 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strh r1, [r0] ldr r0, [r5] adds r0, #0xe4 movs r1, #0x16 strb r1, [r0] ldr r1, _0802F3F4 @ =0x040000D4 ldr r0, _0802F3F8 @ =0x08526DCC str r0, [r1] ldr r0, _0802F3FC @ =0x06015800 str r0, [r1, #4] ldr r0, _0802F400 @ =0x80000600 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xec bl m4aSongNumStart ldr r1, [r5] ldr r0, _0802F404 @ =0x00001388 str r0, [r1, #0x3c] b _0802F4FA .align 2, 0 _0802F3E8: .4byte 0x0000037D _0802F3EC: .4byte 0x0000037B _0802F3F0: .4byte gMain _0802F3F4: .4byte 0x040000D4 _0802F3F8: .4byte 0x08526DCC _0802F3FC: .4byte 0x06015800 _0802F400: .4byte 0x80000600 _0802F404: .4byte 0x00001388 _0802F408: ldr r3, _0802F434 @ =0x086AE496 ldr r2, [r5] ldr r0, _0802F438 @ =0x0000037D adds r4, r2, r0 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0802F43C @ =0x0000037E adds r2, r2, r1 ldrh r1, [r2] adds r6, r3, #0 cmp r0, r1 ble _0802F440 adds r0, r1, #1 strh r0, [r2] b _0802F46C .align 2, 0 _0802F434: .4byte 0x086AE496 _0802F438: .4byte 0x0000037D _0802F43C: .4byte 0x0000037E _0802F440: ldrb r0, [r4] adds r0, #1 movs r2, #0 strb r0, [r4] ldr r1, [r5] ldr r3, _0802F4B8 @ =0x0000037E adds r0, r1, r3 strh r2, [r0] ldr r0, _0802F4BC @ =0x0000037D adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x10 ble _0802F46C movs r0, #0x10 strb r0, [r1] ldr r0, [r5] movs r1, #0xde lsls r1, r1, #2 adds r0, r0, r1 movs r1, #4 strb r1, [r0] _0802F46C: ldr r2, [r5] ldr r3, _0802F4BC @ =0x0000037D adds r0, r2, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r6 ldrh r0, [r0] ldr r1, _0802F4C0 @ =0x0000037A adds r2, r2, r1 strb r0, [r2] ldr r2, [r5] adds r0, r2, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r6, #4 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _0802F4C4 @ =0x00000379 adds r2, r2, r1 strb r0, [r2] ldr r2, [r5] adds r3, r2, r3 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #5 bgt _0802F4CC adds r1, #1 ldr r3, _0802F4C8 @ =0x0000037B adds r0, r2, r3 strb r1, [r0] b _0802F4FA .align 2, 0 _0802F4B8: .4byte 0x0000037E _0802F4BC: .4byte 0x0000037D _0802F4C0: .4byte 0x0000037A _0802F4C4: .4byte 0x00000379 _0802F4C8: .4byte 0x0000037B _0802F4CC: ldr r0, _0802F4D8 @ =0x0000037B adds r1, r2, r0 _0802F4D0: movs r0, #0 strb r0, [r1] b _0802F4FA .align 2, 0 _0802F4D8: .4byte 0x0000037B _0802F4DC: ldr r0, [r5] adds r0, #0xe4 movs r1, #0 strb r1, [r0] ldr r0, _0802F500 @ =gMain movs r2, #0xb3 lsls r2, r2, #5 adds r0, r0, r2 movs r2, #0 strh r1, [r0] ldr r0, [r5] movs r3, #0xde lsls r3, r3, #2 adds r0, r0, r3 strb r2, [r0] _0802F4FA: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0802F500: .4byte gMain thumb_func_start sub_2F504 sub_2F504: @ 0x0802F504 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0802F700 @ =0x0200C668 ldrh r0, [r6] movs r1, #0xb8 adds r1, r1, r6 mov sl, r1 cmp r0, #0 beq _0802F5EC ldr r3, _0802F704 @ =0x020314E0 ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc6 subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r3] movs r4, #0xe0 lsls r4, r4, #2 adds r2, r1, r4 movs r7, #0x8e lsls r7, r7, #1 adds r0, r7, #0 ldrh r2, [r2] adds r0, r0, r2 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] ldr r3, [r3] ldr r1, _0802F708 @ =0x00000379 adds r0, r3, r1 ldr r2, _0802F70C @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802F710 @ =0x08512C4C adds r0, r0, r1 str r0, [r2] ldr r0, _0802F714 @ =0x06012A20 str r0, [r2, #4] ldr r0, _0802F718 @ =0x800001C0 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802F71C @ =0x0000037A adds r3, r3, r2 movs r2, #0 ldr r4, _0802F720 @ =0x086B3CA4 mov sb, r4 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 mov ip, r0 ldr r7, _0802F724 @ =0xFFFFFE00 mov r8, r7 _0802F580: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 ldr r1, _0802F728 @ =0x03005000 adds r2, r0, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, ip adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r7, _0802F728 @ =0x03005000 adds r2, r2, r7 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802F72C @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _0802F728 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0802F580 _0802F5EC: mov r6, sl ldrh r0, [r6] cmp r0, #0 beq _0802F69A ldr r2, _0802F704 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc6 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r3, #0x8e lsls r3, r3, #1 adds r0, r3, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r2] ldr r4, _0802F730 @ =0x0000037B adds r0, r0, r4 movs r2, #0 ldr r7, _0802F734 @ =0x086B3B7E mov sb, r7 ldr r1, _0802F728 @ =0x03005000 mov sl, r1 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0x2a adds r3, r1, #0 muls r3, r0, r3 mov ip, r3 ldr r4, _0802F724 @ =0xFFFFFE00 mov r8, r4 _0802F632: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r7, sl adds r2, r0, r7 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, ip adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sl ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802F72C @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sl ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #6 ble _0802F632 _0802F69A: ldr r6, _0802F738 @ =0x0200E608 ldrh r0, [r6] cmp r0, #0 beq _0802F780 ldr r2, _0802F704 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xce subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r2] movs r3, #0xdf lsls r3, r3, #2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802F748 adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r4, #0x82 lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r2] movs r7, #0xa4 lsls r7, r7, #2 adds r0, r0, r7 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 ldr r2, _0802F70C @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #7 ldr r1, _0802F73C @ =0x084ED6CC adds r0, r0, r1 str r0, [r2] ldr r0, _0802F740 @ =0x06014FA0 str r0, [r2, #4] ldr r0, _0802F744 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] b _0802F74C .align 2, 0 _0802F700: .4byte 0x0200C668 _0802F704: .4byte 0x020314E0 _0802F708: .4byte 0x00000379 _0802F70C: .4byte 0x040000D4 _0802F710: .4byte 0x08512C4C _0802F714: .4byte 0x06012A20 _0802F718: .4byte 0x800001C0 _0802F71C: .4byte 0x0000037A _0802F720: .4byte 0x086B3CA4 _0802F724: .4byte 0xFFFFFE00 _0802F728: .4byte 0x03005000 _0802F72C: .4byte 0x000001FF _0802F730: .4byte 0x0000037B _0802F734: .4byte 0x086B3B7E _0802F738: .4byte 0x0200E608 _0802F73C: .4byte 0x084ED6CC _0802F740: .4byte 0x06014FA0 _0802F744: .4byte 0x80000100 _0802F748: movs r0, #0xc8 strh r0, [r6, #4] _0802F74C: adds r5, r6, #0 adds r5, #8 ldr r4, _0802F790 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r7, _0802F794 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802F798 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _0802F780: 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 _0802F790: .4byte 0x03005000 _0802F794: .4byte 0x000001FF _0802F798: .4byte 0xFFFFFE00 thumb_func_start sub_2F79C sub_2F79C: @ 0x0802F79C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r1, #0 ldr r0, _0802F7D0 @ =0x020314E0 mov r8, r0 _0802F7A8: mov r2, r8 ldr r0, [r2] lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldr r3, _0802F7D4 @ =0x0000036A adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r2, #0 cmp r0, #5 bls _0802F7C4 b _0802FB26 _0802F7C4: lsls r0, r0, #2 ldr r1, _0802F7D8 @ =_0802F7DC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F7D0: .4byte 0x020314E0 _0802F7D4: .4byte 0x0000036A _0802F7D8: .4byte _0802F7DC _0802F7DC: @ jump table .4byte _0802F7F4 @ case 0 .4byte _0802F87E @ case 1 .4byte _0802F944 @ case 2 .4byte _0802F9E4 @ case 3 .4byte _0802FA28 @ case 4 .4byte _0802FAA2 @ case 5 _0802F7F4: ldr r1, _0802F828 @ =0x086AE4FC mov r4, r8 ldr r2, [r4] asrs r4, r6, #0x10 movs r5, #0xdb lsls r5, r5, #2 adds r0, r2, r5 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r5, r4, #1 ldr r1, _0802F82C @ =0x0000036E adds r2, r2, r1 adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0802F830 adds r0, r1, #1 strh r0, [r2] b _0802F858 .align 2, 0 _0802F828: .4byte 0x086AE4FC _0802F82C: .4byte 0x0000036E _0802F830: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] mov r3, r8 ldr r1, [r3] ldr r3, _0802F870 @ =0x0000036E adds r0, r1, r3 adds r0, r0, r5 movs r3, #0 strh r2, [r0] movs r5, #0xdb lsls r5, r5, #2 adds r1, r1, r5 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 ble _0802F858 strb r3, [r1] _0802F858: mov r1, r8 ldr r0, [r1] asrs r1, r6, #0xf ldr r2, _0802F874 @ =0x00000372 adds r0, r0, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0x97 bhi _0802F878 adds r0, #1 strh r0, [r1] b _0802FB26 .align 2, 0 _0802F870: .4byte 0x0000036E _0802F874: .4byte 0x00000372 _0802F878: movs r0, #0 strh r0, [r1] b _0802FB26 _0802F87E: ldr r2, _0802F8B0 @ =0x086AE4FC ldr r7, _0802F8B4 @ =0x020314E0 ldr r1, [r7] asrs r4, r6, #0x10 movs r3, #0xdb lsls r3, r3, #2 adds r0, r1, r3 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r2, #2 adds r0, r0, r2 movs r5, #0 ldrsh r0, [r0, r5] lsls r5, r4, #1 ldr r2, _0802F8B8 @ =0x0000036E adds r1, r1, r2 adds r1, r1, r5 ldrh r2, [r1] cmp r0, r2 ble _0802F8BC adds r0, r2, #1 strh r0, [r1] b _0802F8EC .align 2, 0 _0802F8B0: .4byte 0x086AE4FC _0802F8B4: .4byte 0x020314E0 _0802F8B8: .4byte 0x0000036E _0802F8BC: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] ldr r1, [r7] ldr r3, _0802F938 @ =0x0000036E adds r0, r1, r3 adds r0, r0, r5 strh r2, [r0] movs r5, #0xdb lsls r5, r5, #2 adds r1, r1, r5 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bne _0802F8EC movs r0, #0xe6 bl m4aSongNumStart ldr r1, [r7] movs r0, #0xfa lsls r0, r0, #3 str r0, [r1, #0x3c] _0802F8EC: ldr r0, _0802F93C @ =0x020314E0 ldr r3, [r0] asrs r2, r6, #0x10 movs r4, #0xdb lsls r4, r4, #2 adds r1, r3, r4 adds r5, r1, r2 movs r1, #0 ldrsb r1, [r5, r1] mov r8, r0 cmp r1, #6 beq _0802F906 b _0802FB16 _0802F906: ldr r1, _0802F940 @ =0x00000376 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #0 beq _0802F926 cmp r0, #1 bne _0802F926 movs r0, #7 strb r0, [r5] mov r3, r8 ldr r0, [r3] subs r4, #2 adds r0, r0, r4 adds r0, r0, r2 movs r1, #2 strb r1, [r0] _0802F926: mov r5, r8 ldr r0, [r5] asrs r1, r6, #0xf ldr r2, _0802F938 @ =0x0000036E adds r0, r0, r2 adds r0, r0, r1 movs r1, #0 strh r1, [r0] b _0802FB16 .align 2, 0 _0802F938: .4byte 0x0000036E _0802F93C: .4byte 0x020314E0 _0802F940: .4byte 0x00000376 _0802F944: ldr r1, _0802F978 @ =0x086AE4FC mov r5, r8 ldr r2, [r5] asrs r5, r6, #0x10 movs r7, #0xdb lsls r7, r7, #2 adds r0, r2, r7 adds r3, r0, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r4, r5, #1 ldr r1, _0802F97C @ =0x0000036E adds r2, r2, r1 adds r2, r2, r4 ldrh r1, [r2] cmp r0, r1 ble _0802F980 adds r0, r1, #1 strh r0, [r2] b _0802F9CA .align 2, 0 _0802F978: .4byte 0x086AE4FC _0802F97C: .4byte 0x0000036E _0802F980: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] mov r3, r8 ldr r1, [r3] ldr r3, _0802F9D8 @ =0x0000036E adds r0, r1, r3 adds r0, r0, r4 movs r4, #0 strh r2, [r0] movs r0, #0xdb lsls r0, r0, #2 adds r1, r1, r0 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bne _0802F9AC movs r0, #0xe7 bl m4aSongNumStart _0802F9AC: mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 ble _0802F9CA strb r4, [r1] mov r2, r8 ldr r0, [r2] ldr r3, _0802F9DC @ =0x0000036A adds r0, r0, r3 adds r0, r0, r5 strb r4, [r0] _0802F9CA: mov r4, r8 ldr r0, [r4] asrs r1, r6, #0xf ldr r5, _0802F9E0 @ =0x00000372 adds r0, r0, r5 b _0802FB20 .align 2, 0 _0802F9D8: .4byte 0x0000036E _0802F9DC: .4byte 0x0000036A _0802F9E0: .4byte 0x00000372 _0802F9E4: mov r0, r8 ldr r1, [r0] asrs r2, r6, #0x10 movs r3, #0xdb lsls r3, r3, #2 adds r1, r1, r3 adds r1, r1, r2 movs r4, #0 movs r0, #9 strb r0, [r1] mov r5, r8 ldr r1, [r5] lsls r3, r2, #1 ldr r5, _0802FA1C @ =0x0000036E adds r0, r1, r5 adds r0, r0, r3 strh r4, [r0] ldr r0, _0802FA20 @ =0x0000036A adds r1, r1, r0 adds r1, r1, r2 movs r0, #4 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0802FA24 @ =0x00000372 adds r0, r0, r2 adds r0, r0, r3 b _0802FB22 .align 2, 0 _0802FA1C: .4byte 0x0000036E _0802FA20: .4byte 0x0000036A _0802FA24: .4byte 0x00000372 _0802FA28: ldr r1, _0802FA90 @ =0x086AE4FC mov r3, r8 ldr r2, [r3] asrs r5, r6, #0x10 movs r4, #0xdb lsls r4, r4, #2 adds r0, r2, r4 adds r3, r0, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r4, r5, #1 ldr r1, _0802FA94 @ =0x0000036E adds r2, r2, r1 adds r2, r2, r4 ldrh r1, [r2] cmp r0, r1 bgt _0802FACE ldrb r0, [r3] adds r0, #1 movs r1, #0 strb r0, [r3] mov r3, r8 ldr r2, [r3] ldr r3, _0802FA94 @ =0x0000036E adds r0, r2, r3 adds r0, r0, r4 movs r3, #0 strh r1, [r0] movs r4, #0xdb lsls r4, r4, #2 adds r0, r2, r4 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x11 ble _0802FB16 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #6 bne _0802FA9C strb r3, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0802FA98 @ =0x0000036A adds r0, r0, r2 adds r0, r0, r5 b _0802FB14 .align 2, 0 _0802FA90: .4byte 0x086AE4FC _0802FA94: .4byte 0x0000036E _0802FA98: .4byte 0x0000036A _0802FA9C: movs r0, #9 strb r0, [r1] b _0802FB16 _0802FAA2: ldr r1, _0802FAD4 @ =0x086AE4FC mov r5, r8 ldr r2, [r5] asrs r4, r6, #0x10 movs r7, #0xdb lsls r7, r7, #2 adds r0, r2, r7 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r5, r4, #1 ldr r1, _0802FAD8 @ =0x0000036E adds r2, r2, r1 adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0802FADC _0802FACE: adds r0, r1, #1 strh r0, [r2] b _0802FB16 .align 2, 0 _0802FAD4: .4byte 0x086AE4FC _0802FAD8: .4byte 0x0000036E _0802FADC: ldrb r0, [r3] adds r0, #1 movs r1, #0 strb r0, [r3] mov r3, r8 ldr r2, [r3] ldr r3, _0802FC24 @ =0x0000036E adds r0, r2, r3 adds r0, r0, r5 movs r3, #0 strh r1, [r0] movs r5, #0xdb lsls r5, r5, #2 adds r0, r2, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x11 ble _0802FB16 ldr r1, _0802FC28 @ =0x0000036A adds r0, r2, r1 adds r0, r0, r4 strb r3, [r0] mov r2, r8 ldr r0, [r2] adds r0, r0, r7 adds r0, r0, r4 _0802FB14: strb r3, [r0] _0802FB16: mov r3, r8 ldr r0, [r3] asrs r1, r6, #0xf ldr r4, _0802FC2C @ =0x00000372 adds r0, r0, r4 _0802FB20: adds r0, r0, r1 _0802FB22: movs r1, #0x14 strh r1, [r0] _0802FB26: movs r5, #0x80 lsls r5, r5, #9 adds r0, r6, r5 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _0802FB36 b _0802F7A8 _0802FB36: mov r0, r8 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _0802FB56 ldr r2, _0802FC30 @ =0x00000376 adds r1, r1, r2 ldrh r0, [r1] cmp r0, #0 beq _0802FB56 subs r0, #1 strh r0, [r1] _0802FB56: mov r3, r8 ldr r2, [r3] ldr r4, _0802FC34 @ =0x00001328 adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0 beq _0802FB78 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802FB78 ldr r5, _0802FC38 @ =0x00001330 adds r1, r2, r5 ldr r3, _0802FC3C @ =0x00001334 adds r0, r2, r3 str r0, [r1] _0802FB78: mov r4, r8 ldr r0, [r4] movs r6, #0xda lsls r6, r6, #2 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0 beq _0802FBCE cmp r0, #0x11 bne _0802FB9E movs r0, #0xe8 bl m4aSongNumStart ldr r1, [r4] movs r0, #0xa str r0, [r1, #0x3c] movs r0, #0xd bl sub_11B0 _0802FB9E: ldr r5, _0802FC40 @ =0x08137CD6 mov r0, r8 ldr r4, [r0] adds r4, r4, r6 ldrh r0, [r4] movs r1, #3 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r5 movs r1, #0 ldrsh r2, [r0, r1] ldr r3, _0802FC44 @ =0x0400004C lsls r0, r2, #0xc lsls r1, r2, #8 orrs r0, r1 lsls r1, r2, #4 orrs r0, r1 orrs r0, r2 strh r0, [r3] ldrh r0, [r4] subs r0, #1 strh r0, [r4] _0802FBCE: mov r3, r8 ldr r1, [r3] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #2 ble _0802FC48 cmp r0, #6 beq _0802FCB8 movs r1, #0 movs r3, #0 _0802FBE2: mov r2, r8 ldr r0, [r2] lsls r1, r1, #0x10 asrs r2, r1, #0x10 ldr r4, _0802FC28 @ =0x0000036A adds r0, r0, r4 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0802FC14 strb r3, [r1] mov r5, r8 ldr r0, [r5] movs r1, #0xdb lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r2 strb r3, [r0] ldr r0, [r5] lsls r1, r2, #1 adds r4, #4 adds r0, r0, r4 adds r0, r0, r1 strh r3, [r0] _0802FC14: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0802FBE2 b _0802FCB8 .align 2, 0 _0802FC24: .4byte 0x0000036E _0802FC28: .4byte 0x0000036A _0802FC2C: .4byte 0x00000372 _0802FC30: .4byte 0x00000376 _0802FC34: .4byte 0x00001328 _0802FC38: .4byte 0x00001330 _0802FC3C: .4byte 0x00001334 _0802FC40: .4byte 0x08137CD6 _0802FC44: .4byte 0x0400004C _0802FC48: ldr r5, _0802FC7C @ =0x0000072E adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0802FC8C ldr r2, _0802FC80 @ =0x00000281 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0802FCB8 ldr r4, _0802FC84 @ =0x0000036A adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bgt _0802FCB8 movs r1, #3 strb r1, [r2] ldr r0, [r3] ldr r5, _0802FC88 @ =0x0000036B b _0802FCB4 .align 2, 0 _0802FC7C: .4byte 0x0000072E _0802FC80: .4byte 0x00000281 _0802FC84: .4byte 0x0000036A _0802FC88: .4byte 0x0000036B _0802FC8C: ldr r0, _0802FCC4 @ =0x0000036A adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 ble _0802FCB8 movs r1, #0 strb r1, [r2] mov r2, r8 ldr r0, [r2] movs r3, #0xdb lsls r3, r3, #2 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] ldr r4, _0802FCC8 @ =0x0000036B adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] ldr r5, _0802FCCC @ =0x0000036D _0802FCB4: adds r0, r0, r5 strb r1, [r0] _0802FCB8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802FCC4: .4byte 0x0000036A _0802FCC8: .4byte 0x0000036B _0802FCCC: .4byte 0x0000036D thumb_func_start sub_2FCD0 sub_2FCD0: @ 0x0802FCD0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0802FDCC @ =0x0200DF90 ldrh r0, [r6] cmp r0, #0 bne _0802FCE4 b _080300B2 _0802FCE4: ldr r3, _0802FDD0 @ =0x020314E0 ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x44 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r3] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x90 subs r0, r0, r1 strh r0, [r6, #4] ldr r4, _0802FDD4 @ =0x086AE4FC ldr r0, [r3] movs r1, #0xdb lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 ldr r2, _0802FDD8 @ =0x040000D4 movs r5, #0 ldrsh r1, [r0, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0802FDDC @ =0x0847A40C adds r0, r0, r1 str r0, [r2] ldr r0, _0802FDE0 @ =0x06012DA0 str r0, [r2, #4] ldr r0, _0802FDE4 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 mov ip, r3 ldr r1, _0802FDE8 @ =0x03005000 mov sb, r1 ldr r2, _0802FDEC @ =0xFFFFFDD8 adds r2, r2, r6 mov sl, r2 mov r7, sb ldr r3, _0802FDF0 @ =0xFFFFFE00 mov r8, r3 _0802FD42: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802FDF4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0802FD42 mov r6, sl mov r3, ip ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x44 subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r3] ldr r5, _0802FDF8 @ =0x00000372 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xd bhi _0802FE08 adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x90 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r3] adds r0, r0, r5 ldrh r0, [r0] ldr r2, _0802FDD8 @ =0x040000D4 lsrs r0, r0, #1 lsls r0, r0, #9 ldr r1, _0802FDFC @ =0x0847D10C adds r0, r0, r1 str r0, [r2] ldr r0, _0802FE00 @ =0x06014720 str r0, [r2, #4] ldr r0, _0802FE04 @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] b _0802FE0C .align 2, 0 _0802FDCC: .4byte 0x0200DF90 _0802FDD0: .4byte 0x020314E0 _0802FDD4: .4byte 0x086AE4FC _0802FDD8: .4byte 0x040000D4 _0802FDDC: .4byte 0x0847A40C _0802FDE0: .4byte 0x06012DA0 _0802FDE4: .4byte 0x80000140 _0802FDE8: .4byte 0x03005000 _0802FDEC: .4byte 0xFFFFFDD8 _0802FDF0: .4byte 0xFFFFFE00 _0802FDF4: .4byte 0x000001FF _0802FDF8: .4byte 0x00000372 _0802FDFC: .4byte 0x0847D10C _0802FE00: .4byte 0x06014720 _0802FE04: .4byte 0x800000C0 _0802FE08: movs r0, #0xc8 strh r0, [r6, #4] _0802FE0C: adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802FF1C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r4, _0802FF20 @ =0xFFFFFE00 adds r0, r4, #0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r6, _0802FF24 @ =0x0200E048 mov r5, ip ldr r0, [r5] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x24 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r5] adds r0, #0x5a ldrh r1, [r0] movs r0, #0xa3 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r5] ldr r1, _0802FF28 @ =0x0000036D adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r2, _0802FF2C @ =0x086AE4FC adds r0, r0, r2 ldr r2, _0802FF30 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r5, _0802FF34 @ =0x084C1E6C adds r0, r0, r5 str r0, [r2] ldr r0, _0802FF38 @ =0x060130A0 str r0, [r2, #4] ldr r0, _0802FF3C @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 mov r7, sb mov r8, r4 _0802FE90: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802FF1C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0802FE90 ldr r6, _0802FF40 @ =0x0200DE20 mov r3, ip ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x24 subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r3] movs r5, #0xdd lsls r5, r5, #2 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xd bhi _0802FF50 adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0xa3 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r3] adds r0, r0, r5 ldrh r0, [r0] ldr r2, _0802FF30 @ =0x040000D4 lsrs r0, r0, #1 lsls r0, r0, #9 ldr r1, _0802FF44 @ =0x084C4B6C adds r0, r0, r1 str r0, [r2] ldr r0, _0802FF48 @ =0x06014920 str r0, [r2, #4] ldr r0, _0802FF4C @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] b _0802FF54 .align 2, 0 _0802FF1C: .4byte 0x000001FF _0802FF20: .4byte 0xFFFFFE00 _0802FF24: .4byte 0x0200E048 _0802FF28: .4byte 0x0000036D _0802FF2C: .4byte 0x086AE4FC _0802FF30: .4byte 0x040000D4 _0802FF34: .4byte 0x084C1E6C _0802FF38: .4byte 0x060130A0 _0802FF3C: .4byte 0x80000140 _0802FF40: .4byte 0x0200DE20 _0802FF44: .4byte 0x084C4B6C _0802FF48: .4byte 0x06014920 _0802FF4C: .4byte 0x800000C0 _0802FF50: movs r0, #0xc8 strh r0, [r6, #4] _0802FF54: adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802FFBC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802FFC0 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r6, _0802FFC4 @ =0x0200EA58 mov r5, ip ldr r0, [r5] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x3d subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r5] adds r0, #0x5a ldrh r1, [r0] movs r0, #0xba subs r0, r0, r1 strh r0, [r6, #4] ldr r1, [r5] ldr r2, _0802FFC8 @ =0x00000367 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802FFD0 ldr r3, _0802FFCC @ =0x00000366 adds r1, r1, r3 movs r0, #3 b _08030032 .align 2, 0 _0802FFBC: .4byte 0x000001FF _0802FFC0: .4byte 0xFFFFFE00 _0802FFC4: .4byte 0x0200EA58 _0802FFC8: .4byte 0x00000367 _0802FFCC: .4byte 0x00000366 _0802FFD0: ldr r5, _0802FFF4 @ =0x0000036A adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803000C ldr r2, _0802FFF8 @ =0x0000036B adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08030000 ldr r3, _0802FFFC @ =0x00000366 adds r1, r1, r3 movs r0, #3 b _08030032 .align 2, 0 _0802FFF4: .4byte 0x0000036A _0802FFF8: .4byte 0x0000036B _0802FFFC: .4byte 0x00000366 _08030000: ldr r5, _08030008 @ =0x00000366 adds r1, r1, r5 movs r0, #2 b _08030032 .align 2, 0 _08030008: .4byte 0x00000366 _0803000C: ldr r2, _08030024 @ =0x0000036B adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803002C ldr r3, _08030028 @ =0x00000366 adds r1, r1, r3 movs r0, #1 b _08030032 .align 2, 0 _08030024: .4byte 0x0000036B _08030028: .4byte 0x00000366 _0803002C: ldr r5, _08030064 @ =0x00000366 adds r1, r1, r5 movs r0, #0 _08030032: strb r0, [r1] mov r0, ip ldr r3, [r0] ldr r2, _08030064 @ =0x00000366 adds r1, r3, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08030068 lsls r4, r0, #1 adds r4, r4, r0 movs r5, #0xa4 lsls r5, r5, #2 adds r0, r3, r5 ldr r0, [r0] movs r1, #0x1e bl __umodsi3 movs r1, #0xa bl __udivsi3 adds r4, r4, r0 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 b _0803006A .align 2, 0 _08030064: .4byte 0x00000366 _08030068: movs r0, #9 _0803006A: ldr r1, _080300C0 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #9 ldr r2, _080300C4 @ =0x084FEA0C adds r0, r0, r2 str r0, [r1] ldr r0, _080300C8 @ =0x060146A0 str r0, [r1, #4] ldr r0, _080300CC @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _080300D0 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080300D4 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _080300B2: 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 _080300C0: .4byte 0x040000D4 _080300C4: .4byte 0x084FEA0C _080300C8: .4byte 0x060146A0 _080300CC: .4byte 0x80000040 _080300D0: .4byte 0x000001FF _080300D4: .4byte 0xFFFFFE00 thumb_func_start sub_300D8 sub_300D8: @ 0x080300D8 push {r4, r5, lr} ldr r0, _08030170 @ =0x020314E0 ldr r5, [r0] movs r0, #0xbc lsls r0, r0, #1 adds r1, r5, r0 movs r0, #0xe6 lsls r0, r0, #2 strh r0, [r1] movs r2, #0xa4 lsls r2, r2, #2 adds r4, r5, r2 ldr r0, [r4] movs r1, #0x3c bl __umodsi3 movs r1, #0x1e bl __udivsi3 movs r1, #0x85 subs r1, r1, r0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xbd lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] movs r0, #0xbe lsls r0, r0, #1 adds r1, r5, r0 ldr r0, _08030174 @ =0x000004EC strh r0, [r1] ldr r0, [r4] adds r0, #0xa movs r1, #0x3c bl __umodsi3 movs r1, #0x1e bl __udivsi3 movs r1, #0x83 subs r1, r1, r0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xbf lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] movs r0, #0xc0 lsls r0, r0, #1 adds r1, r5, r0 movs r0, #0x87 lsls r0, r0, #3 strh r0, [r1] ldr r0, [r4] adds r0, #0x14 movs r1, #0x3c bl __umodsi3 movs r1, #0x1e bl __udivsi3 movs r1, #0xa1 subs r1, r1, r0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xc1 lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08030170: .4byte 0x020314E0 _08030174: .4byte 0x000004EC thumb_func_start sub_30178 sub_30178: @ 0x08030178 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080301DC @ =0x0200E100 mov sl, r0 ldr r1, _080301E0 @ =0x020314E0 ldr r3, [r1] ldr r2, _080301E4 @ =0x00000624 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0803019A b _080302D4 _0803019A: cmp r0, #2 beq _080301A0 b _080302C6 _080301A0: movs r0, #0xfa lsls r0, r0, #1 str r0, [r3, #0x3c] movs r0, #0xb6 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r3, _080301E0 @ =0x020314E0 ldr r1, [r3] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0803029C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #5 bne _0803029C ldr r6, _080301E8 @ =0x00000625 adds r1, r1, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0803029C cmp r0, #0 bne _080301EC movs r0, #1 b _080301F6 .align 2, 0 _080301DC: .4byte 0x0200E100 _080301E0: .4byte 0x020314E0 _080301E4: .4byte 0x00000624 _080301E8: .4byte 0x00000625 _080301EC: cmp r0, #1 bne _080301F4 movs r0, #3 b _080301F6 _080301F4: movs r0, #6 _080301F6: strb r0, [r1] ldr r7, _08030318 @ =0x020314E0 ldr r5, [r7] ldr r1, _0803031C @ =0x00000625 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0803029C ldr r2, _08030320 @ =0x000006C6 adds r0, r5, r2 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 bne _0803029C ldr r2, _08030324 @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r5, #0 adds r0, #0xea movs r4, #0 movs r3, #0x32 strh r3, [r0] adds r1, r5, #0 adds r1, #0xec movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] subs r1, #4 movs r0, #0xec strh r0, [r1] adds r0, r5, #0 adds r0, #0xe6 strh r6, [r0] adds r1, #6 movs r0, #4 strh r0, [r1] adds r1, #4 movs r0, #7 strb r0, [r1] ldr r0, [r7] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r4, [r0] ldr r4, [r7] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _08030328 @ =0x0000F63C strh r0, [r1] adds r0, r4, #0 adds r0, #0xf0 strh r3, [r0] adds r0, #8 strh r6, [r0] ldr r1, _0803032C @ =0x040000D4 ldr r0, _08030330 @ =0x086ACEF8 ldr r0, [r0, #0x1c] str r0, [r1] ldr r0, _08030334 @ =0x06015800 str r0, [r1, #4] ldr r0, _08030338 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0803033C @ =0x086ACF18 ldr r0, [r0, #0x1c] str r0, [r1] ldr r0, _08030340 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08030344 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _0803029C: ldr r2, _08030318 @ =0x020314E0 ldr r0, [r2] movs r3, #0xbb lsls r3, r3, #1 adds r1, r0, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r3, [r2] movs r6, #0xc2 lsls r6, r6, #2 adds r1, r3, r6 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x64 bne _080302C6 ldr r0, _08030348 @ =0x0000C350 str r0, [r3, #0x3c] _080302C6: ldr r0, _08030318 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803034C @ =0x00000624 adds r1, r1, r2 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _080302D4: mov r3, sl ldrh r0, [r3] cmp r0, #0 bne _080302DE b _08030456 _080302DE: movs r0, #0 ldr r6, _0803032C @ =0x040000D4 mov sb, r6 _080302E4: ldr r1, _08030318 @ =0x020314E0 ldr r4, [r1] lsls r0, r0, #0x10 asrs r2, r0, #0x10 movs r3, #0xb8 lsls r3, r3, #1 adds r1, r4, r3 adds r3, r1, r2 ldrb r6, [r3] movs r1, #0 ldrsb r1, [r3, r1] adds r5, r0, #0 cmp r1, #0 ble _08030350 adds r0, r1, #0 cmp r0, #0 bge _08030308 adds r0, #3 _08030308: asrs r0, r0, #2 adds r0, #2 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 subs r0, r6, #1 strb r0, [r3] b _08030370 .align 2, 0 _08030318: .4byte 0x020314E0 _0803031C: .4byte 0x00000625 _08030320: .4byte 0x000006C6 _08030324: .4byte gMain _08030328: .4byte 0x0000F63C _0803032C: .4byte 0x040000D4 _08030330: .4byte 0x086ACEF8 _08030334: .4byte 0x06015800 _08030338: .4byte 0x80001200 _0803033C: .4byte 0x086ACF18 _08030340: .4byte 0x050003C0 _08030344: .4byte 0x80000010 _08030348: .4byte 0x0000C350 _0803034C: .4byte 0x00000624 _08030350: movs r6, #0xa4 lsls r6, r6, #2 adds r0, r4, r6 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #1 ldr r0, [r0] adds r0, r0, r1 movs r1, #0x1e bl __umodsi3 movs r1, #0xf bl __udivsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _08030370: lsls r0, r1, #0x10 asrs r0, r0, #7 ldr r1, _08030464 @ =0x0845690C adds r0, r0, r1 mov r2, sb str r0, [r2] asrs r5, r5, #0x10 lsls r0, r5, #9 ldr r3, _08030468 @ =0x060133A0 adds r0, r0, r3 str r0, [r2, #4] ldr r0, _0803046C @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r6, _08030470 @ =0x020314E0 ldr r4, [r6] lsls r0, r5, #2 adds r7, r4, r0 movs r0, #0xbc lsls r0, r0, #1 adds r6, r7, r0 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 mov r2, sl strh r0, [r2, #2] movs r3, #0xbd lsls r3, r3, #1 adds r3, r3, r7 mov r8, r3 movs r1, #0 ldrsh r0, [r3, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 subs r0, #0xa mov r2, sl strh r0, [r2, #4] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #8 lsls r0, r0, #1 movs r6, #0xc2 lsls r6, r6, #1 adds r1, r7, r6 strh r0, [r1] mov r1, r8 movs r2, #0 ldrsh r0, [r1, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #3 lsls r0, r0, #1 movs r3, #0xc3 lsls r3, r3, #1 adds r1, r7, r3 strh r0, [r1] lsls r3, r5, #3 adds r3, #8 add r3, sl ldrh r4, [r3] lsls r4, r4, #3 ldr r6, _08030474 @ =0x03005000 adds r4, r4, r6 movs r0, #2 ldrsh r2, [r3, r0] mov r1, sl movs r6, #2 ldrsh r0, [r1, r6] adds r2, r2, r0 ldr r1, _08030478 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r0, [r4, #2] ldr r6, _0803047C @ =0xFFFFFE00 adds r1, r6, #0 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 ldr r0, _08030474 @ =0x03005000 adds r1, r1, r0 mov r2, sl ldrb r0, [r2, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 bgt _08030456 b _080302E4 _08030456: 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 _08030464: .4byte 0x0845690C _08030468: .4byte 0x060133A0 _0803046C: .4byte 0x80000100 _08030470: .4byte 0x020314E0 _08030474: .4byte 0x03005000 _08030478: .4byte 0x000001FF _0803047C: .4byte 0xFFFFFE00 thumb_func_start sub_30480 sub_30480: @ 0x08030480 ldr r2, _080304C4 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf6 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #1 adds r0, r0, r1 strb r3, [r0] ldr r0, [r2] subs r1, #1 adds r0, r0, r1 strb r3, [r0] ldr r2, [r2] adds r1, #3 adds r0, r2, r1 strh r3, [r0] movs r0, #0xfa lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0x82 lsls r0, r0, #4 strh r0, [r1] movs r0, #0xfb lsls r0, r0, #1 adds r1, r2, r0 adds r0, #0xc6 strh r0, [r1] bx lr .align 2, 0 _080304C4: .4byte 0x020314E0 thumb_func_start sub_304C8 sub_304C8: @ 0x080304C8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov r8, r0 mov ip, r0 movs r6, #0 ldr r7, _08030504 @ =0x0200D918 movs r1, #0 str r1, [sp] ldr r1, _08030508 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf6 lsls r2, r2, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #5 bhi _08030552 lsls r0, r0, #2 ldr r1, _0803050C @ =_08030510 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030504: .4byte 0x0200D918 _08030508: .4byte 0x020314E0 _0803050C: .4byte _08030510 _08030510: @ jump table .4byte _08030552 @ case 0 .4byte _08030552 @ case 1 .4byte _08030528 @ case 2 .4byte _08030532 @ case 3 .4byte _0803053E @ case 4 .4byte _08030548 @ case 5 _08030528: movs r3, #4 mov r8, r3 mov ip, r3 movs r6, #3 b _08030552 _08030532: movs r6, #8 mov r8, r6 movs r0, #4 mov ip, r0 movs r6, #3 b _08030552 _0803053E: movs r1, #0xc mov r8, r1 mov ip, r1 movs r6, #5 b _08030552 _08030548: movs r2, #0x21 mov r8, r2 movs r3, #0 mov ip, r3 movs r6, #0 _08030552: mov r1, sb ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r0, r2 ldr r5, _080305D8 @ =0x000001ED adds r2, r0, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r0, #0 ldrsb r0, [r2, r0] cmp r1, r0 beq _0803059E ldr r1, _080305DC @ =0x086AD2EE lsls r0, r0, #3 adds r1, #6 adds r0, r0, r1 ldr r2, _080305E0 @ =0x040000D4 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #9 ldr r1, _080305E4 @ =0x084FD18C adds r0, r0, r1 str r0, [r2] ldr r0, _080305E8 @ =0x06011CE0 str r0, [r2, #4] ldr r0, _080305EC @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] mov r0, sb ldr r1, [r0] adds r0, r1, r5 ldrb r0, [r0] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r1, r2 strb r0, [r1] _0803059E: mov r3, sb ldr r2, [r3] movs r0, #0xf6 lsls r0, r0, #1 mov sl, r0 adds r0, r2, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _080305B6 b _08030700 _080305B6: ldr r0, _080305DC @ =0x086AD2EE adds r3, r2, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #3 adds r0, #2 adds r1, r1, r0 movs r0, #0xf8 lsls r0, r0, #1 adds r4, r2, r0 ldrh r2, [r4] ldrh r0, [r1] cmp r0, r2 bls _080305F0 adds r0, r2, #1 strh r0, [r4] b _080306E6 .align 2, 0 _080305D8: .4byte 0x000001ED _080305DC: .4byte 0x086AD2EE _080305E0: .4byte 0x040000D4 _080305E4: .4byte 0x084FD18C _080305E8: .4byte 0x06011CE0 _080305EC: .4byte 0x80000100 _080305F0: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] mov r3, sb ldr r1, [r3] movs r3, #0xf8 lsls r3, r3, #1 adds r0, r1, r3 strh r2, [r0] adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, r8 blt _0803061A mov r0, ip strb r0, [r1] mov r1, sb ldr r0, [r1] add r0, sl strb r6, [r0] _0803061A: mov r2, sb ldr r0, [r2] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bne _0803062E bl sub_32484 _0803062E: mov r3, sb ldr r0, [r3] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x13 bne _0803065E bl sub_325E0 ldr r0, _08030780 @ =gMain ldrb r0, [r0, #2] cmp r0, #3 beq _0803065E mov r6, sb ldr r0, [r6] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #1 bl sub_52BB0 _0803065E: ldr r5, _08030784 @ =0x020314E0 ldr r0, [r5] ldr r4, _08030788 @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _08030674 bl sub_28BFC _08030674: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _08030686 cmp r0, #0x1b bne _08030696 _08030686: movs r3, #0xf8 lsls r3, r3, #1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _08030696 bl m4aMPlayAllStop _08030696: ldr r0, _08030784 @ =0x020314E0 ldr r1, [r0] ldr r6, _08030788 @ =0x000001ED adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _080306BA movs r2, #0xf8 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _080306BA movs r0, #0x16 bl m4aSongNumStart _080306BA: ldr r5, _08030784 @ =0x020314E0 ldr r0, [r5] ldr r4, _08030788 @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1d bne _080306D2 movs r0, #5 bl sub_19B64 _080306D2: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1c bne _080306E6 movs r0, #0x92 bl m4aSongNumStart _080306E6: ldr r2, _0803078C @ =0x086AD2EE ldr r1, _08030784 @ =0x020314E0 ldr r0, [r1] ldr r3, _08030788 @ =0x000001ED adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] str r0, [sp] mov sb, r1 _08030700: mov r6, sb ldr r4, [r6] movs r1, #0xfa lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] movs r3, #0xf6 lsls r3, r3, #1 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080307AC ldr r6, _08030788 @ =0x000001ED adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 bne _08030790 movs r0, #0xf8 lsls r0, r0, #1 adds r1, r4, r0 ldrh r0, [r1] cmp r0, #0xd0 bls _08030790 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #1 subs r0, r0, r1 cmp r0, #0 bge _08030756 adds r0, #0xf _08030756: asrs r0, r0, #4 ldr r1, _08030780 @ =gMain adds r0, #1 lsls r0, r0, #1 ldr r1, [r1, #0x4c] ands r1, r0 cmp r1, #0 beq _080307AC movs r1, #0xfb lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 b _080307AE .align 2, 0 _08030780: .4byte gMain _08030784: .4byte 0x020314E0 _08030788: .4byte 0x000001ED _0803078C: .4byte 0x086AD2EE _08030790: mov r3, sb ldr r4, [r3] movs r6, #0xfb lsls r6, r6, #1 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 b _080307AE _080307AC: movs r0, #0xc8 _080307AE: strh r0, [r7, #4] movs r2, #0 ldr r3, _08030870 @ =0x03005000 mov sl, r3 ldr r6, [sp] lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 ldr r0, _08030874 @ =0xFFFFFE00 mov ip, r0 _080307C8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 ldr r1, _08030870 @ =0x03005000 adds r2, r2, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r6, _08030878 @ =0x086B4D4E adds r0, r0, r6 add r0, r8 ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r0, _08030870 @ =0x03005000 adds r2, r2, r0 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _0803087C @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _08030870 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _080307C8 ldr r7, _08030880 @ =0x0200D860 ldrh r0, [r7] cmp r0, #0 beq _080308C2 mov r3, sb ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc0 subs r0, r0, r1 strh r0, [r7, #2] ldr r1, [r3] ldr r6, _08030884 @ =0x00000346 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0803088C ldr r2, _08030888 @ =0xFFFFD860 adds r0, r7, r2 ldrb r0, [r0, #0xf] cmp r0, #0 beq _0803088C adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x38 subs r0, r0, r1 b _0803088E .align 2, 0 _08030870: .4byte 0x03005000 _08030874: .4byte 0xFFFFFE00 _08030878: .4byte 0x086B4D4E _0803087C: .4byte 0x000001FF _08030880: .4byte 0x0200D860 _08030884: .4byte 0x00000346 _08030888: .4byte 0xFFFFD860 _0803088C: movs r0, #0xc8 _0803088E: strh r0, [r7, #4] adds r5, r7, #0 adds r5, #8 ldrh r2, [r7, #8] lsls r2, r2, #3 add r2, sl movs r3, #2 ldrsh r1, [r5, r3] movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r3, _080308D4 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080308D8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _080308C2: 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 _080308D4: .4byte 0x000001FF _080308D8: .4byte 0xFFFFFE00 thumb_func_start sub_308DC sub_308DC: @ 0x080308DC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08030994 @ =0x020314E0 ldr r3, [r0] movs r2, #0xca lsls r2, r2, #2 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r7, r0, #0 cmp r1, #0 bne _080308FE b _08030A2A _080308FE: movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #7 bne _08030908 b _08030A18 _08030908: cmp r0, #2 bgt _080309A8 ldr r5, _08030998 @ =0x000006BD adds r4, r3, r5 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 ble _0803091A b _08030A18 _0803091A: lsls r0, r0, #1 adds r2, #0x14 adds r1, r3, r2 adds r1, r1, r0 movs r2, #0 movs r5, #0 ldr r0, _0803099C @ =0x0000FF9C strh r0, [r1] movs r1, #0 ldrsb r1, [r4, r1] ldr r4, _080309A0 @ =0x00000332 adds r0, r3, r4 adds r0, r0, r1 strb r2, [r0] ldr r1, [r7] ldr r0, _08030998 @ =0x000006BD adds r3, r1, r0 movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #1 adds r4, #4 adds r0, r1, r4 adds r0, r0, r2 strh r5, [r0] movs r0, #0 ldrsb r0, [r3, r0] movs r2, #0xcb lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r0 movs r3, #1 strb r3, [r1] ldr r1, [r7] ldr r0, _08030998 @ =0x000006BD adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r1, r1, r4 adds r1, r1, r0 strh r5, [r1] ldrb r0, [r2] adds r0, #1 strb r0, [r2] ldr r2, [r7] subs r4, #0xc adds r1, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r5, _08030998 @ =0x000006BD adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08030A18 ldr r1, _080309A4 @ =0x000006C2 adds r0, r2, r1 strh r3, [r0] b _08030A18 .align 2, 0 _08030994: .4byte 0x020314E0 _08030998: .4byte 0x000006BD _0803099C: .4byte 0x0000FF9C _080309A0: .4byte 0x00000332 _080309A4: .4byte 0x000006C2 _080309A8: ldr r2, _08030A54 @ =0x000006BD adds r4, r3, r2 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bgt _08030A18 lsls r0, r0, #1 movs r5, #0xcf lsls r5, r5, #2 adds r1, r3, r5 adds r1, r1, r0 movs r2, #0 movs r5, #0 ldr r0, _08030A58 @ =0x0000FF9C strh r0, [r1] movs r1, #0 ldrsb r1, [r4, r1] ldr r4, _08030A5C @ =0x00000332 adds r0, r3, r4 adds r0, r0, r1 strb r2, [r0] ldr r1, [r7] ldr r0, _08030A54 @ =0x000006BD adds r4, r1, r0 movs r2, #0 ldrsb r2, [r4, r2] lsls r2, r2, #1 ldr r3, _08030A60 @ =0x00000336 adds r0, r1, r3 adds r0, r0, r2 strh r5, [r0] movs r0, #0 ldrsb r0, [r4, r0] movs r2, #0xcb lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r0 movs r0, #1 strb r0, [r1] ldr r1, [r7] ldr r4, _08030A54 @ =0x000006BD adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r3, r1, r3 adds r3, r3, r0 strh r5, [r3] ldr r5, _08030A64 @ =0x0000032A adds r1, r1, r5 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldrb r0, [r2] adds r0, #1 strb r0, [r2] _08030A18: ldr r0, [r7] movs r1, #0xca lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r1, [r7] ldr r0, _08030A68 @ =0x00000BB8 str r0, [r1, #0x3c] _08030A2A: movs r1, #0 ldr r2, _08030A6C @ =0x020314E0 mov sb, r2 _08030A30: mov r3, sb ldr r5, [r3] lsls r1, r1, #0x10 asrs r6, r1, #0x10 movs r4, #0xcb lsls r4, r4, #2 adds r0, r5, r4 adds r2, r0, r6 movs r4, #0 ldrsb r4, [r2, r4] mov sl, r1 cmp r4, #1 beq _08030AAC cmp r4, #1 bgt _08030A70 cmp r4, #0 beq _08030A7E b _08030C98 .align 2, 0 _08030A54: .4byte 0x000006BD _08030A58: .4byte 0x0000FF9C _08030A5C: .4byte 0x00000332 _08030A60: .4byte 0x00000336 _08030A64: .4byte 0x0000032A _08030A68: .4byte 0x00000BB8 _08030A6C: .4byte 0x020314E0 _08030A70: cmp r4, #2 bne _08030A76 b _08030B7C _08030A76: cmp r4, #3 bne _08030A7C b _08030BCE _08030A7C: b _08030C98 _08030A7E: lsls r2, r6, #1 movs r1, #0xcf lsls r1, r1, #2 adds r0, r5, r1 adds r0, r0, r2 ldr r1, _08030AA4 @ =0x0000FF9C strh r1, [r0] ldr r3, _08030AA8 @ =0x00000332 adds r0, r5, r3 adds r0, r0, r6 movs r5, #0 strb r5, [r0] mov r1, sb ldr r0, [r1] adds r3, #4 adds r0, r0, r3 adds r0, r0, r2 strh r4, [r0] b _08030C98 .align 2, 0 _08030AA4: .4byte 0x0000FF9C _08030AA8: .4byte 0x00000332 _08030AAC: lsls r7, r6, #1 ldr r0, _08030B28 @ =0x00000336 mov r8, r0 adds r0, r5, r0 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0x20 bhi _08030B58 cmp r0, #0 bne _08030AC6 movs r0, #0xe9 bl m4aSongNumStart _08030AC6: mov r1, sb ldr r0, [r1] add r0, r8 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0x1a bne _08030ADA movs r0, #0xea bl m4aSongNumStart _08030ADA: mov r3, sb ldr r2, [r3] mov r5, r8 adds r1, r2, r5 adds r1, r1, r7 ldrh r0, [r1] adds r0, #1 movs r3, #0 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bhi _08030B34 ldr r1, _08030B2C @ =0x0000032F adds r0, r2, r1 adds r0, r0, r6 strb r3, [r0] mov r2, sb ldr r3, [r2] movs r4, #0xcf lsls r4, r4, #2 adds r2, r3, r4 adds r2, r2, r7 adds r1, r3, r5 adds r1, r1, r7 ldrh r0, [r1] lsls r0, r0, #2 subs r0, #0x50 strh r0, [r2] ldrh r0, [r1] cmp r0, #0x14 beq _08030B1C b _08030C98 _08030B1C: ldr r5, _08030B30 @ =0x00000326 adds r1, r3, r5 movs r0, #0x17 strh r0, [r1] b _08030C98 .align 2, 0 _08030B28: .4byte 0x00000336 _08030B2C: .4byte 0x0000032F _08030B30: .4byte 0x00000326 _08030B34: cmp r0, #0x18 bhi _08030B48 ldr r1, _08030B44 @ =0x0000032F adds r0, r2, r1 adds r0, r0, r6 strb r4, [r0] b _08030C98 .align 2, 0 _08030B44: .4byte 0x0000032F _08030B48: ldr r3, _08030B54 @ =0x0000032F adds r0, r2, r3 adds r0, r0, r6 movs r1, #2 strb r1, [r0] b _08030C98 .align 2, 0 _08030B54: .4byte 0x0000032F _08030B58: movs r1, #0 movs r0, #2 strb r0, [r2] mov r4, sb ldr r0, [r4] ldr r5, _08030B78 @ =0x00000336 adds r0, r0, r5 adds r0, r0, r7 strh r1, [r0] cmp r6, #2 beq _08030B70 b _08030C98 _08030B70: movs r0, #7 bl sub_19B64 b _08030C98 .align 2, 0 _08030B78: .4byte 0x00000336 _08030B7C: ldr r2, _08030BB8 @ =0x0000032F adds r3, r5, r2 adds r3, r3, r6 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r5, r1 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #4 lsls r0, r0, #1 adds r0, #1 movs r4, #0 strb r0, [r3] mov r5, sb ldr r3, [r5] adds r2, r3, r2 adds r2, r2, r6 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #1 bne _08030BC0 lsls r0, r6, #1 movs r2, #0xcf lsls r2, r2, #2 adds r1, r3, r2 adds r1, r1, r0 ldr r0, _08030BBC @ =0x0000FFFE strh r0, [r1] b _08030C98 .align 2, 0 _08030BB8: .4byte 0x0000032F _08030BBC: .4byte 0x0000FFFE _08030BC0: lsls r1, r6, #1 movs r5, #0xcf lsls r5, r5, #2 adds r0, r3, r5 adds r0, r0, r1 strh r4, [r0] b _08030C98 _08030BCE: lsls r1, r6, #1 ldr r3, _08030C04 @ =0x00000336 adds r0, r5, r3 adds r0, r0, r1 movs r1, #0 ldrsh r4, [r0, r1] cmp r4, #0x1f bgt _08030C10 ldr r2, _08030C08 @ =0x0000032F adds r0, r5, r2 adds r3, r0, r6 adds r0, r4, #0 cmp r4, #0 bge _08030BEC adds r0, #0xf _08030BEC: asrs r2, r0, #4 adds r0, r2, #4 strb r0, [r3] mov r3, sb ldr r0, [r3] ldr r5, _08030C0C @ =0x00000332 adds r0, r0, r5 adds r1, r0, r6 adds r0, r2, #1 strb r0, [r1] b _08030C84 .align 2, 0 _08030C04: .4byte 0x00000336 _08030C08: .4byte 0x0000032F _08030C0C: .4byte 0x00000332 _08030C10: cmp r4, #0x25 bgt _08030C58 cmp r4, #0x20 bne _08030C28 ldr r0, _08030C4C @ =gMain ldrb r0, [r0, #0xf] ands r4, r0 cmp r4, #0 bne _08030C28 movs r0, #0xeb bl m4aSongNumStart _08030C28: mov r0, sb ldr r1, [r0] mov r3, sl asrs r2, r3, #0x10 ldr r4, _08030C50 @ =0x0000032F adds r1, r1, r4 adds r1, r1, r2 movs r0, #6 strb r0, [r1] mov r5, sb ldr r0, [r5] ldr r1, _08030C54 @ =0x00000332 adds r0, r0, r1 adds r0, r0, r2 movs r1, #3 strb r1, [r0] b _08030C84 .align 2, 0 _08030C4C: .4byte gMain _08030C50: .4byte 0x0000032F _08030C54: .4byte 0x00000332 _08030C58: cmp r4, #0x2d bgt _08030C6C ldr r2, _08030C68 @ =0x00000332 adds r0, r5, r2 adds r0, r0, r6 movs r1, #4 strb r1, [r0] b _08030C84 .align 2, 0 _08030C68: .4byte 0x00000332 _08030C6C: cmp r4, #0x35 bgt _08030C80 ldr r3, _08030C7C @ =0x00000332 adds r0, r5, r3 adds r0, r0, r6 movs r1, #5 strb r1, [r0] b _08030C84 .align 2, 0 _08030C7C: .4byte 0x00000332 _08030C80: movs r0, #0 strb r0, [r2] _08030C84: mov r4, sb ldr r0, [r4] mov r5, sl asrs r1, r5, #0xf ldr r2, _08030D00 @ =0x00000336 adds r0, r0, r2 adds r0, r0, r1 ldrh r1, [r0] adds r1, #1 strh r1, [r0] _08030C98: movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _08030CA8 b _08030A30 _08030CA8: ldr r1, _08030D04 @ =0x020314E0 ldr r5, [r1] ldr r4, _08030D08 @ =0x00000326 adds r3, r5, r4 ldrh r0, [r3] adds r7, r1, #0 cmp r0, #0 beq _08030CDC ldr r4, _08030D0C @ =0x086AE54A movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xc9 lsls r2, r2, #2 adds r0, r5, r2 strb r1, [r0] ldr r1, [r7] ldr r3, _08030D08 @ =0x00000326 adds r1, r1, r3 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _08030CDC: ldr r2, [r7] ldr r4, _08030D10 @ =0x000006C2 adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0 beq _08030DA4 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08030DA4 adds r2, #0xe4 ldrb r0, [r2] cmp r0, #0 beq _08030D14 movs r0, #1 strh r0, [r1] b _08030D18 .align 2, 0 _08030D00: .4byte 0x00000336 _08030D04: .4byte 0x020314E0 _08030D08: .4byte 0x00000326 _08030D0C: .4byte 0x086AE54A _08030D10: .4byte 0x000006C2 _08030D14: movs r0, #4 strb r0, [r2] _08030D18: ldr r4, [r7] ldr r5, _08030E04 @ =0x000006C2 adds r0, r4, r5 ldrh r5, [r0] cmp r5, #0 bne _08030DA4 ldr r2, _08030E08 @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r1, r4, #0 adds r1, #0xea movs r3, #0 movs r0, #0x46 strh r0, [r1] adds r1, #2 movs r0, #0xa0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r5, [r0] subs r0, #2 strh r5, [r0] adds r0, #8 strh r5, [r0] adds r1, #6 movs r0, #4 strb r0, [r1] ldr r0, [r7] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r3, [r0] ldr r3, [r7] adds r1, r3, #0 adds r1, #0xf4 movs r0, #0x78 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf6 strh r5, [r0] subs r1, #4 movs r0, #0x32 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf8 strh r5, [r0] ldr r1, _08030E0C @ =0x040000D4 ldr r0, _08030E10 @ =0x086ACEF8 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _08030E14 @ =0x06015800 str r0, [r1, #4] ldr r0, _08030E18 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08030E1C @ =0x086ACF18 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _08030E20 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08030E24 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _08030DA4: ldr r5, [r7] ldr r0, _08030E28 @ =0x000006BE adds r3, r5, r0 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08030E3E movs r1, #0xd8 lsls r1, r1, #3 adds r0, r5, r1 ldrh r1, [r0] adds r2, r1, #1 strh r2, [r0] lsls r1, r1, #0x10 asrs r4, r1, #0x10 cmp r4, #0x3c bgt _08030E30 adds r0, r4, #0 movs r1, #0x1e bl __modsi3 lsls r0, r0, #0x10 asrs r6, r0, #0x10 cmp r6, #0 bne _08030E3E adds r0, r4, #0 movs r1, #0x1e bl __divsi3 lsls r0, r0, #0x10 asrs r1, r0, #0x10 movs r2, #0xcb lsls r2, r2, #2 adds r0, r5, r2 adds r2, r0, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _08030E3E movs r0, #3 strb r0, [r2] ldr r0, [r7] lsls r1, r1, #1 ldr r3, _08030E2C @ =0x00000336 adds r0, r0, r3 adds r0, r0, r1 strh r6, [r0] b _08030E3E .align 2, 0 _08030E04: .4byte 0x000006C2 _08030E08: .4byte gMain _08030E0C: .4byte 0x040000D4 _08030E10: .4byte 0x086ACEF8 _08030E14: .4byte 0x06015800 _08030E18: .4byte 0x80001200 _08030E1C: .4byte 0x086ACF18 _08030E20: .4byte 0x050003C0 _08030E24: .4byte 0x80000010 _08030E28: .4byte 0x000006BE _08030E2C: .4byte 0x00000336 _08030E30: movs r1, #0 strb r1, [r3] ldr r0, [r7] movs r4, #0xd8 lsls r4, r4, #3 adds r0, r0, r4 strh r1, [r0] _08030E3E: ldr r2, [r7] ldr r4, _08030EA8 @ =0x0000032A adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0 beq _08030E98 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #0 bne _08030E98 ldr r5, _08030EAC @ =0x000006BD adds r2, r2, r5 ldrb r0, [r2] subs r1, r0, #1 lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08030E98 strb r1, [r2] ldr r0, [r7] adds r1, r0, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r2, #0xcb lsls r2, r2, #2 adds r0, r0, r2 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r2, [r7] adds r0, r2, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #1 ldr r5, _08030EB0 @ =0x00000336 adds r0, r2, r5 adds r0, r0, r1 strh r3, [r0] adds r2, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r2] _08030E98: 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 _08030EA8: .4byte 0x0000032A _08030EAC: .4byte 0x000006BD _08030EB0: .4byte 0x00000336 thumb_func_start sub_30EB4 sub_30EB4: @ 0x08030EB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0803100C @ =0x0200E1B8 ldrh r0, [r6] cmp r0, #0 bne _08030EC8 b _0803110C _08030EC8: ldr r3, _08031010 @ =0x020314E0 ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xa subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r3] adds r0, #0x5a ldrh r1, [r0] movs r2, #0x95 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r3] movs r7, #0xc9 lsls r7, r7, #2 adds r0, r0, r7 ldr r2, _08031014 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08031018 @ =0x0844F20C adds r0, r0, r1 str r0, [r2] ldr r0, _0803101C @ =0x060139A0 str r0, [r2, #4] ldr r0, _08031020 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] movs r5, #0 mov sl, r3 ldr r0, _08031024 @ =0x03005000 mov sb, r0 mov r7, sb ldr r1, _08031028 @ =0xFFFFFE00 mov ip, r1 _08030F18: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r0, _0803102C @ =0x000001FF mov r8, r0 mov r2, r8 ands r1, r2 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08030F18 ldr r6, _08031030 @ =0x0200E498 mov r3, sl ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xa subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r3] adds r0, #0x5a ldrh r1, [r0] movs r7, #0x95 lsls r7, r7, #1 adds r0, r7, #0 subs r0, r0, r1 strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r7, r8 ands r1, r7 ldrh r3, [r2, #2] ldr r0, _08031028 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] movs r3, #0 ldr r0, _08031014 @ =0x040000D4 mov sl, r0 _08030FB4: lsls r3, r3, #0x10 asrs r2, r3, #0x10 movs r0, #0xb8 muls r0, r2, r0 ldr r1, _08031034 @ =0x0200E270 adds r6, r0, r1 lsls r5, r2, #1 ldr r7, _08031038 @ =0x086AE544 adds r0, r5, r7 ldrh r1, [r0] subs r1, r1, r2 ldr r0, _08031010 @ =0x020314E0 ldr r4, [r0] adds r0, r4, #0 adds r0, #0x58 ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #2] movs r1, #0xcb lsls r1, r1, #2 adds r0, r4, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r3 cmp r0, #0 ble _0803103C movs r2, #0xcf lsls r2, r2, #2 adds r0, r4, r2 adds r0, r0, r5 movs r3, #0x92 lsls r3, r3, #1 adds r1, r3, #0 ldrh r0, [r0] adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #4] b _08031040 .align 2, 0 _0803100C: .4byte 0x0200E1B8 _08031010: .4byte 0x020314E0 _08031014: .4byte 0x040000D4 _08031018: .4byte 0x0844F20C _0803101C: .4byte 0x060139A0 _08031020: .4byte 0x80000140 _08031024: .4byte 0x03005000 _08031028: .4byte 0xFFFFFE00 _0803102C: .4byte 0x000001FF _08031030: .4byte 0x0200E498 _08031034: .4byte 0x0200E270 _08031038: .4byte 0x086AE544 _0803103C: movs r0, #0xc8 strh r0, [r6, #4] _08031040: ldr r7, _0803111C @ =0x020314E0 ldr r3, [r7] mov r0, sb asrs r2, r0, #0x10 ldr r1, _08031120 @ =0x0000032F adds r0, r3, r1 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r7, _08031124 @ =0x084FDF8C adds r0, r0, r7 mov r1, sl str r0, [r1] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r7, _08031128 @ =0x06013C20 adds r0, r0, r7 str r0, [r1, #4] ldr r0, _0803112C @ =0x800000B0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08031130 @ =0x00000332 adds r3, r3, r0 adds r3, r3, r2 movs r5, #0 lsls r0, r2, #3 adds r0, r0, r2 lsls r0, r0, #3 mov r8, r0 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 _0803108E: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 ldr r1, _08031134 @ =0x03005000 adds r2, r2, r1 ldr r1, _08031138 @ =0x086B3E1E add r1, ip add r1, r8 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r7, _08031134 @ =0x03005000 adds r2, r2, r7 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0803113C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _08031140 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _08031134 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0803108E movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _0803110C b _08030FB4 _0803110C: 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 _0803111C: .4byte 0x020314E0 _08031120: .4byte 0x0000032F _08031124: .4byte 0x084FDF8C _08031128: .4byte 0x06013C20 _0803112C: .4byte 0x800000B0 _08031130: .4byte 0x00000332 _08031134: .4byte 0x03005000 _08031138: .4byte 0x086B3E1E _0803113C: .4byte 0x000001FF _08031140: .4byte 0xFFFFFE00 thumb_func_start sub_31144 sub_31144: @ 0x08031144 push {r4, r5, r6, r7, lr} ldr r1, _08031190 @ =0x020314E0 ldr r5, [r1] movs r2, #0xd2 lsls r2, r2, #1 adds r0, r5, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r7, r1, #0 cmp r2, #0 beq _0803115C b _080312D0 _0803115C: ldr r3, _08031194 @ =0x000001A5 adds r0, r5, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080311DC movs r4, #0xda lsls r4, r4, #1 adds r0, r5, r4 ldrh r1, [r0] cmp r1, #0x5f bhi _080311CC cmp r1, #7 bhi _0803119C ldr r1, _08031198 @ =0x08137CF6 ldrh r0, [r0] lsrs r0, r0, #1 lsls r0, r0, #1 adds r1, #8 adds r0, r0, r1 ldrh r1, [r0] movs r2, #0xd6 lsls r2, r2, #1 adds r0, r5, r2 b _080311B4 .align 2, 0 _08031190: .4byte 0x020314E0 _08031194: .4byte 0x000001A5 _08031198: .4byte 0x08137CF6 _0803119C: ldr r2, _080311C8 @ =0x08137CE2 ldrh r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 lsls r0, r0, #1 adds r2, #0xa adds r0, r0, r2 ldrh r1, [r0] movs r3, #0xd6 lsls r3, r3, #1 adds r0, r5, r3 _080311B4: strb r1, [r0] ldr r1, [r7] movs r4, #0xda lsls r4, r4, #1 adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _080311CE .align 2, 0 _080311C8: .4byte 0x08137CE2 _080311CC: strh r2, [r0] _080311CE: ldr r0, [r7] ldr r2, _080311D8 @ =0x000001AD adds r1, r0, r2 movs r0, #2 b _0803123E .align 2, 0 _080311D8: .4byte 0x000001AD _080311DC: movs r3, #0xda lsls r3, r3, #1 adds r0, r5, r3 ldrh r1, [r0] cmp r1, #0x77 bhi _08031234 cmp r1, #7 bhi _08031204 ldr r1, _08031200 @ =0x08137CF6 ldrh r0, [r0] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] movs r4, #0xd6 lsls r4, r4, #1 adds r0, r5, r4 b _0803121E .align 2, 0 _08031200: .4byte 0x08137CF6 _08031204: ldr r4, _08031230 @ =0x08137CE2 ldrh r0, [r0] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x13 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xd6 lsls r2, r2, #1 adds r0, r5, r2 _0803121E: strb r1, [r0] ldr r1, [r7] movs r3, #0xda lsls r3, r3, #1 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _08031236 .align 2, 0 _08031230: .4byte 0x08137CE2 _08031234: strh r2, [r0] _08031236: ldr r0, [r7] ldr r4, _08031288 @ =0x000001AD adds r1, r0, r4 movs r0, #0 _0803123E: strb r0, [r1] ldr r1, [r7] ldr r2, _0803128C @ =0x0000072E adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08031298 ldr r3, _08031290 @ =0x00000281 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08031260 b _08031396 _08031260: ldr r4, _08031294 @ =0x000001A5 adds r0, r1, r4 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 beq _0803126E b _08031396 _0803126E: movs r2, #0xd2 lsls r2, r2, #1 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r2, [r7] adds r4, #0xf adds r0, r2, r4 strh r3, [r0] ldr r3, _08031294 @ =0x000001A5 adds r0, r2, r3 strb r1, [r0] b _08031396 .align 2, 0 _08031288: .4byte 0x000001AD _0803128C: .4byte 0x0000072E _08031290: .4byte 0x00000281 _08031294: .4byte 0x000001A5 _08031298: movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #6 bne _080312A2 b _08031396 _080312A2: ldr r4, _080312CC @ =0x000001A5 adds r0, r1, r4 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #1 bne _08031396 movs r2, #0xd2 lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 strb r3, [r0] ldr r3, [r7] adds r4, #0xf adds r0, r3, r4 movs r1, #0 strh r2, [r0] ldr r2, _080312CC @ =0x000001A5 adds r0, r3, r2 strb r1, [r0] b _08031396 .align 2, 0 _080312CC: .4byte 0x000001A5 _080312D0: ldr r4, _0803131C @ =0x08137D06 movs r6, #0xda lsls r6, r6, #1 adds r0, r5, r6 ldrh r0, [r0] movs r1, #3 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf ldr r3, _08031320 @ =0x000001A5 adds r1, r5, r3 movs r2, #0 ldrsb r2, [r1, r2] lsls r1, r2, #3 subs r1, r1, r2 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r4 ldrh r2, [r0] movs r0, #0xd6 lsls r0, r0, #1 adds r1, r5, r0 movs r3, #0 strb r2, [r1] ldr r1, [r7] adds r0, r1, r0 ldrb r0, [r0] subs r0, #4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08031328 ldr r4, _08031324 @ =0x000001AD adds r1, r1, r4 movs r0, #1 strb r0, [r1] b _0803136A .align 2, 0 _0803131C: .4byte 0x08137D06 _08031320: .4byte 0x000001A5 _08031324: .4byte 0x000001AD _08031328: ldr r2, _08031344 @ =0x000001A5 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0803134C adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0xe bls _08031364 ldr r0, _08031348 @ =0x000001AD adds r1, r1, r0 b _08031358 .align 2, 0 _08031344: .4byte 0x000001A5 _08031348: .4byte 0x000001AD _0803134C: adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0xe bhi _08031364 ldr r2, _08031360 @ =0x000001AD adds r1, r1, r2 _08031358: movs r0, #2 strb r0, [r1] b _0803136A .align 2, 0 _08031360: .4byte 0x000001AD _08031364: ldr r4, _0803139C @ =0x000001AD adds r0, r1, r4 strb r3, [r0] _0803136A: ldr r2, [r7] movs r0, #0xda lsls r0, r0, #1 adds r1, r2, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x2a bne _08031396 movs r3, #0xd2 lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0 strb r0, [r1] ldr r0, [r7] movs r4, #0xda lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08031396: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803139C: .4byte 0x000001AD thumb_func_start sub_313A0 sub_313A0: @ 0x080313A0 push {r4, r5, r6, r7, lr} ldr r6, _08031464 @ =0x0200E550 ldrh r0, [r6] cmp r0, #0 beq _0803145C ldr r0, _08031468 @ =0x020314E0 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x10 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r3, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x73 subs r0, r0, r1 strh r0, [r6, #4] ldr r1, _0803146C @ =0x000001AD adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] adds r0, r3, #0 adds r0, #0x6f movs r2, #0 ldrsb r2, [r0, r2] lsls r0, r2, #1 adds r0, r0, r2 ldr r2, _08031470 @ =0x040000D4 adds r1, r1, r0 lsls r1, r1, #5 ldr r0, _08031474 @ =0x081BC984 adds r1, r1, r0 str r1, [r2] ldr r0, _08031478 @ =0x05000300 str r0, [r2, #4] ldr r0, _0803147C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0xd6 lsls r1, r1, #1 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08031480 @ =0x0848108C adds r0, r0, r1 str r0, [r2] ldr r0, _08031484 @ =0x06014B20 str r0, [r2, #4] ldr r0, _08031488 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _0803148C @ =0x03005000 ldr r2, _08031490 @ =0xFFFFFE00 mov ip, r2 _08031418: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r0, #2 ldrsh r1, [r3, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08031494 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _08031418 _0803145C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031464: .4byte 0x0200E550 _08031468: .4byte 0x020314E0 _0803146C: .4byte 0x000001AD _08031470: .4byte 0x040000D4 _08031474: .4byte 0x081BC984 _08031478: .4byte 0x05000300 _0803147C: .4byte 0x80000010 _08031480: .4byte 0x0848108C _08031484: .4byte 0x06014B20 _08031488: .4byte 0x80000240 _0803148C: .4byte 0x03005000 _08031490: .4byte 0xFFFFFE00 _08031494: .4byte 0x000001FF thumb_func_start sub_31498 sub_31498: @ 0x08031498 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _080314C4 @ =0x020314E0 ldr r0, [r1] ldr r2, _080314C8 @ =0x00000346 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #6 bls _080314B8 b _080319AC _080314B8: lsls r0, r0, #2 ldr r1, _080314CC @ =_080314D0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080314C4: .4byte 0x020314E0 _080314C8: .4byte 0x00000346 _080314CC: .4byte _080314D0 _080314D0: @ jump table .4byte _080314EC @ case 0 .4byte _08031610 @ case 1 .4byte _080319AC @ case 2 .4byte _080316F4 @ case 3 .4byte _080317E0 @ case 4 .4byte _080318A8 @ case 5 .4byte _08031988 @ case 6 _080314EC: ldr r4, [r5] movs r3, #0xd1 lsls r3, r3, #2 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08031500 b _080319AC _08031500: movs r0, #0x13 ldrsb r0, [r4, r0] cmp r0, #2 bgt _080315A4 ldr r7, _08031528 @ =0x00000345 adds r1, r4, r7 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08031530 adds r0, r2, #1 strb r0, [r1] ldr r1, [r5] ldr r0, _0803152C @ =0x00004E20 str r0, [r1, #0x3c] movs r0, #0xde bl m4aSongNumStart b _080315C2 .align 2, 0 _08031528: .4byte 0x00000345 _0803152C: .4byte 0x00004E20 _08031530: ldr r2, _08031594 @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 movs r3, #0 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r3, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0xe6 lsls r0, r0, #2 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r0, #4 strb r2, [r0] ldr r0, [r5] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0xfb strb r2, [r0] ldr r0, [r5] ldr r2, _08031598 @ =0x00000346 adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] movs r4, #0xd2 lsls r4, r4, #2 adds r0, r0, r4 strh r3, [r0] ldr r0, _0803159C @ =0x02032EE0 bl m4aMPlayStop ldr r1, [r5] ldr r0, _080315A0 @ =0x00030D40 str r0, [r1, #0x3c] movs r0, #0xdf bl m4aSongNumStart b _080315C2 .align 2, 0 _08031594: .4byte gMain _08031598: .4byte 0x00000346 _0803159C: .4byte 0x02032EE0 _080315A0: .4byte 0x00030D40 _080315A4: ldr r7, _080315F4 @ =0x00000345 adds r1, r4, r7 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _080315C2 adds r0, r2, #1 strb r0, [r1] ldr r1, [r5] ldr r0, _080315F8 @ =0x00004E20 str r0, [r1, #0x3c] movs r0, #0xde bl m4aSongNumStart _080315C2: ldr r0, _080315FC @ =0x020314E0 ldr r3, [r0] ldr r1, _080315F4 @ =0x00000345 adds r0, r3, r1 ldr r2, _08031600 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031604 @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _08031608 @ =0x0600D900 str r0, [r2, #4] ldr r0, _0803160C @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xd1 lsls r2, r2, #2 adds r3, r3, r2 movs r0, #0 strb r0, [r3] b _080319AC .align 2, 0 _080315F4: .4byte 0x00000345 _080315F8: .4byte 0x00004E20 _080315FC: .4byte 0x020314E0 _08031600: .4byte 0x040000D4 _08031604: .4byte 0x08490A4C _08031608: .4byte 0x0600D900 _0803160C: .4byte 0x80000220 _08031610: ldr r0, [r5] movs r3, #0xd2 lsls r3, r3, #2 adds r2, r0, r3 ldrh r1, [r2] ldr r0, _08031654 @ =0x0000010D cmp r1, r0 bhi _08031668 adds r0, r1, #0 movs r1, #0x3c bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x1e bl __udivsi3 adds r0, #4 ldr r2, _08031658 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 adds r1, r1, r0 lsls r1, r1, #6 ldr r0, _0803165C @ =0x08490A4C adds r1, r1, r0 str r1, [r2] ldr r0, _08031660 @ =0x0600D900 str r0, [r2, #4] ldr r0, _08031664 @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] b _0803168C .align 2, 0 _08031654: .4byte 0x0000010D _08031658: .4byte 0x040000D4 _0803165C: .4byte 0x08490A4C _08031660: .4byte 0x0600D900 _08031664: .4byte 0x80000220 _08031668: ldr r1, _080316D8 @ =0x040000D4 movs r2, #0 ldr r0, _080316DC @ =0x08490A4C str r0, [r1] ldr r0, _080316E0 @ =0x0600D900 str r0, [r1, #4] ldr r0, _080316E4 @ =0x80000220 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5] ldr r4, _080316E8 @ =0x00000346 adds r0, r0, r4 movs r1, #2 strb r1, [r0] ldr r0, [r5] ldr r7, _080316EC @ =0x00000345 adds r0, r0, r7 strb r2, [r0] _0803168C: ldr r0, [r5] movs r4, #0xd2 lsls r4, r4, #2 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x3c bne _080316CC movs r0, #0x16 bl m4aSongNumStart ldr r0, [r5] movs r1, #0xe5 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r5] movs r3, #0xf6 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #5 strb r1, [r0] ldr r0, [r5] ldr r7, _080316F0 @ =0x000001ED adds r1, r0, r7 movs r0, #0xc strb r0, [r1] ldr r0, [r5] movs r1, #0xf8 lsls r1, r1, #1 adds r0, r0, r1 strh r2, [r0] _080316CC: ldr r1, [r5] adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _080319AC .align 2, 0 _080316D8: .4byte 0x040000D4 _080316DC: .4byte 0x08490A4C _080316E0: .4byte 0x0600D900 _080316E4: .4byte 0x80000220 _080316E8: .4byte 0x00000346 _080316EC: .4byte 0x00000345 _080316F0: .4byte 0x000001ED _080316F4: ldr r6, _0803171C @ =0x086AE5A0 ldr r2, [r5] ldr r4, _08031720 @ =0x00000345 adds r3, r2, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, r6, #2 adds r0, r0, r1 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xd2 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _08031724 adds r0, r1, #1 strh r0, [r2] b _08031784 .align 2, 0 _0803171C: .4byte 0x086AE5A0 _08031720: .4byte 0x00000345 _08031724: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r5] ldr r2, _080317A0 @ =0x00000345 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08031746 ldr r3, _080317A4 @ =0x00000346 adds r1, r1, r3 movs r0, #4 strb r0, [r1] _08031746: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0803175A movs r0, #0xe0 bl m4aSongNumStart _0803175A: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r6 ldr r2, _080317A8 @ =0x040000D4 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _080317AC @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _080317B0 @ =0x0600D900 str r0, [r2, #4] ldr r0, _080317B4 @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] _08031784: ldr r1, [r5] ldr r7, _080317A0 @ =0x00000345 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bgt _080317B8 movs r0, #0x80 lsls r0, r0, #2 adds r1, r1, r0 subs r0, #0xe8 str r0, [r1] b _080319AC .align 2, 0 _080317A0: .4byte 0x00000345 _080317A4: .4byte 0x00000346 _080317A8: .4byte 0x040000D4 _080317AC: .4byte 0x08490A4C _080317B0: .4byte 0x0600D900 _080317B4: .4byte 0x80000220 _080317B8: movs r2, #0x80 lsls r2, r2, #2 adds r3, r1, r2 ldr r2, [r3] adds r0, r2, #6 str r0, [r3] ldr r4, _080317DC @ =0x00000346 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _080317D4 b _080319AC _080317D4: adds r0, r2, #0 adds r0, #0x1a str r0, [r3] b _080319AC .align 2, 0 _080317DC: .4byte 0x00000346 _080317E0: ldr r5, _08031894 @ =0x020314E0 ldr r4, [r5] ldr r7, _08031898 @ =0x00000343 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08031882 movs r1, #0xd1 lsls r1, r1, #2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08031882 ldr r2, _0803189C @ =gMain ldrb r1, [r2, #0xf] movs r0, #1 movs r3, #0 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r3, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0xa0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r0, #4 strb r2, [r0] ldr r0, [r5] adds r0, #0xfa movs r4, #1 strb r4, [r0] ldr r0, [r5] adds r0, #0xfb strb r2, [r0] ldr r0, [r5] ldr r2, _080318A0 @ =0x00000346 adds r0, r0, r2 movs r1, #5 strb r1, [r0] ldr r0, [r5] adds r7, #5 adds r1, r0, r7 strh r3, [r1] ldr r1, _080318A4 @ =0x00000345 adds r0, r0, r1 movs r1, #0xa strb r1, [r0] movs r0, #0xe0 bl m4aSongNumStart ldr r0, [r5] movs r2, #0xf6 lsls r2, r2, #1 adds r0, r0, r2 strb r4, [r0] ldr r2, [r5] movs r3, #0xfa lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0x82 lsls r0, r0, #4 strh r0, [r1] movs r4, #0xfb lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xf0 lsls r0, r0, #2 strh r0, [r1] _08031882: ldr r0, _08031894 @ =0x020314E0 ldr r0, [r0] movs r7, #0xd1 lsls r7, r7, #2 adds r0, r0, r7 movs r1, #0 strb r1, [r0] b _080319AC .align 2, 0 _08031894: .4byte 0x020314E0 _08031898: .4byte 0x00000343 _0803189C: .4byte gMain _080318A0: .4byte 0x00000346 _080318A4: .4byte 0x00000345 _080318A8: ldr r6, _080318D0 @ =0x086AE5A0 ldr r2, [r5] ldr r4, _080318D4 @ =0x00000345 adds r3, r2, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, r6, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] movs r7, #0xd2 lsls r7, r7, #2 adds r2, r2, r7 ldrh r1, [r2] cmp r0, r1 ble _080318D8 adds r0, r1, #1 strh r0, [r2] b _08031924 .align 2, 0 _080318D0: .4byte 0x086AE5A0 _080318D4: .4byte 0x00000345 _080318D8: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r5] ldr r2, _08031968 @ =0x00000345 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _080318FA ldr r3, _0803196C @ =0x00000346 adds r1, r1, r3 movs r0, #6 strb r0, [r1] _080318FA: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r6 ldr r2, _08031970 @ =0x040000D4 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031974 @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _08031978 @ =0x0600D900 str r0, [r2, #4] ldr r0, _0803197C @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] _08031924: ldr r0, _08031980 @ =0x020314E0 ldr r1, [r0] ldr r7, _08031968 @ =0x00000345 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _08031948 movs r2, #0xd2 lsls r2, r2, #2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xa bne _08031948 movs r0, #0xe1 bl m4aSongNumStart _08031948: ldr r0, _08031980 @ =0x020314E0 ldr r0, [r0] movs r3, #0xfb lsls r3, r3, #1 adds r1, r0, r3 ldrh r3, [r1] movs r4, #0 ldrsh r0, [r1, r4] movs r2, #0xaf lsls r2, r2, #2 cmp r0, r2 ble _08031984 subs r0, r3, #5 strh r0, [r1] b _080319AC .align 2, 0 _08031968: .4byte 0x00000345 _0803196C: .4byte 0x00000346 _08031970: .4byte 0x040000D4 _08031974: .4byte 0x08490A4C _08031978: .4byte 0x0600D900 _0803197C: .4byte 0x80000220 _08031980: .4byte 0x020314E0 _08031984: strh r2, [r1] b _080319AC _08031988: ldr r0, [r5] ldr r7, _080319F8 @ =0x00000345 adds r0, r0, r7 movs r2, #0 strb r2, [r0] ldr r0, [r5] movs r3, #0xd2 lsls r3, r3, #2 adds r1, r0, r3 movs r3, #0 strh r2, [r1] ldr r4, _080319FC @ =0x00000346 adds r0, r0, r4 strb r3, [r0] ldr r0, [r5] subs r7, #2 adds r0, r0, r7 strb r3, [r0] _080319AC: movs r1, #0 ldr r0, _08031A00 @ =0x040000D4 mov sb, r0 ldr r2, _08031A04 @ =0x086AE554 mov sl, r2 _080319B6: lsls r1, r1, #0x10 asrs r4, r1, #0x10 movs r0, #0xb8 muls r0, r4, r0 ldr r3, _08031A08 @ =0x0200D580 adds r6, r0, r3 ldrh r0, [r6] mov r8, r1 cmp r0, #0 bne _080319CC b _08031AEA _080319CC: ldr r5, _08031A0C @ =0x020314E0 ldr r1, [r5] ldr r7, _08031A10 @ =0x00000355 adds r0, r1, r7 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 ldr r2, _08031A14 @ =0x086AE58A adds r0, r0, r2 movs r7, #0 ldrsh r2, [r0, r7] lsls r0, r4, #1 ldr r7, _08031A18 @ =0x0000035E adds r1, r1, r7 adds r1, r1, r0 ldrh r0, [r1] cmp r2, r0 ble _08031A1C adds r0, #1 strh r0, [r1] b _08031A3C .align 2, 0 _080319F8: .4byte 0x00000345 _080319FC: .4byte 0x00000346 _08031A00: .4byte 0x040000D4 _08031A04: .4byte 0x086AE554 _08031A08: .4byte 0x0200D580 _08031A0C: .4byte 0x020314E0 _08031A10: .4byte 0x00000355 _08031A14: .4byte 0x086AE58A _08031A18: .4byte 0x0000035E _08031A1C: movs r2, #0 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r5] ldr r1, _08031B08 @ =0x00000355 adds r0, r0, r1 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bne _08031A3C strh r2, [r6] movs r0, #5 strb r0, [r1] _08031A3C: ldr r2, _08031B0C @ =0x020314E0 ldr r4, [r2] mov r7, r8 asrs r3, r7, #0x10 ldr r1, _08031B08 @ =0x00000355 adds r0, r4, r1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r2, _08031B10 @ =0x086AE588 adds r0, r0, r2 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 ldr r1, _08031B14 @ =0x0845A08C adds r0, r0, r1 mov r1, sb str r0, [r1] lsls r0, r3, #8 ldr r2, _08031B18 @ =0x060140A0 adds r0, r0, r2 str r0, [r1, #4] ldr r0, _08031B1C @ =0x80000080 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _08031B20 @ =0x00000359 adds r2, r4, r7 adds r2, r2, r3 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 add r0, sl adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 add r0, sl adds r4, #0x5a ldrh r0, [r0, #2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08031B24 @ =0x03005000 ldr r1, _08031B28 @ =0xFFFFFE00 mov ip, r1 _08031AA6: lsls r3, r0, #0x10 asrs r3, r3, #0x10 lsls r5, r3, #3 adds r5, #8 adds r5, r6, r5 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r4, #2 ldrsh r1, [r5, r4] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r4, _08031B2C @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r0, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08031AA6 _08031AEA: movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _08031AFA b _080319B6 _08031AFA: 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 _08031B08: .4byte 0x00000355 _08031B0C: .4byte 0x020314E0 _08031B10: .4byte 0x086AE588 _08031B14: .4byte 0x0845A08C _08031B18: .4byte 0x060140A0 _08031B1C: .4byte 0x80000080 _08031B20: .4byte 0x00000359 _08031B24: .4byte 0x03005000 _08031B28: .4byte 0xFFFFFE00 _08031B2C: .4byte 0x000001FF thumb_func_start sub_31B30 sub_31B30: @ 0x08031B30 push {r4, r5, r6, r7, lr} ldr r1, _08031B64 @ =gMain ldrb r0, [r1, #4] ldr r2, _08031B68 @ =0x00004010 adds r6, r1, r2 cmp r0, #0 bne _08031B42 ldr r0, _08031B6C @ =0x00003D30 adds r6, r1, r0 _08031B42: ldrh r0, [r6] cmp r0, #0 beq _08031BD6 ldr r0, _08031B70 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x4c movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #7 bgt _08031B74 adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r2, #8 rsbs r2, r2, #0 b _08031B7E .align 2, 0 _08031B64: .4byte gMain _08031B68: .4byte 0x00004010 _08031B6C: .4byte 0x00003D30 _08031B70: .4byte 0x020314E0 _08031B74: adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r2, #0x80 lsls r2, r2, #1 _08031B7E: adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #2] movs r0, #0 strh r0, [r6, #4] ldr r7, _08031BDC @ =0x03005000 ldr r1, _08031BE0 @ =0xFFFFFE00 mov ip, r1 _08031B8E: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08031BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r2, [r3] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 lsls r1, r5, #5 adds r0, r0, r1 strb r0, [r2] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #4 ble _08031B8E _08031BD6: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031BDC: .4byte 0x03005000 _08031BE0: .4byte 0xFFFFFE00 _08031BE4: .4byte 0x000001FF thumb_func_start sub_31BE8 sub_31BE8: @ 0x08031BE8 push {r4, r5, r6, r7, lr} lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldr r1, _08031C40 @ =0x020314E0 ldr r0, [r1] adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 ldr r5, _08031C44 @ =0x02031520 cmp r0, #1 bne _08031C1C ldr r2, _08031C48 @ =0x040000D4 lsls r0, r3, #0x10 asrs r0, r0, #0xe adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, _08031C4C @ =0x05000200 str r0, [r2, #4] ldr r0, _08031C50 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _08031C1C: ldr r0, _08031C54 @ =gMain ldrb r1, [r0, #4] adds r6, r0, #0 cmp r1, #1 bne _08031C60 ldr r2, _08031C48 @ =0x040000D4 lsls r3, r3, #0x10 asrs r0, r3, #0xe adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] adds r0, #0x40 str r0, [r2] ldr r0, _08031C58 @ =0x05000240 str r0, [r2, #4] ldr r0, _08031C5C @ =0x80000060 b _08031C78 .align 2, 0 _08031C40: .4byte 0x020314E0 _08031C44: .4byte 0x02031520 _08031C48: .4byte 0x040000D4 _08031C4C: .4byte 0x05000200 _08031C50: .4byte 0x80000010 _08031C54: .4byte gMain _08031C58: .4byte 0x05000240 _08031C5C: .4byte 0x80000060 _08031C60: ldr r2, _08031CB8 @ =0x040000D4 lsls r3, r3, #0x10 asrs r0, r3, #0xe adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] adds r0, #0x40 str r0, [r2] ldr r0, _08031CBC @ =0x05000240 str r0, [r2, #4] ldr r0, _08031CC0 @ =0x80000070 _08031C78: str r0, [r2, #8] ldr r0, [r2, #8] ldr r4, _08031CB8 @ =0x040000D4 asrs r3, r3, #0x10 lsls r0, r3, #2 adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] movs r1, #0xa0 lsls r1, r1, #1 adds r0, r0, r1 str r0, [r4] ldr r0, _08031CC4 @ =0x05000340 str r0, [r4, #4] ldr r5, _08031CC8 @ =0x80000010 str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, [r7] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xa9 bgt _08031CD0 ldrb r1, [r6, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 lsls r1, r3, #6 ldr r2, _08031CCC @ =0x08137B3C adds r1, r1, r2 b _08031CDE .align 2, 0 _08031CB8: .4byte 0x040000D4 _08031CBC: .4byte 0x05000240 _08031CC0: .4byte 0x80000070 _08031CC4: .4byte 0x05000340 _08031CC8: .4byte 0x80000010 _08031CCC: .4byte 0x08137B3C _08031CD0: ldrb r1, [r6, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031CF0 @ =0x08137B5C adds r0, r0, r1 lsls r1, r3, #6 _08031CDE: adds r0, r0, r1 str r0, [r4] ldr r0, _08031CF4 @ =0x05000360 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031CF0: .4byte 0x08137B5C _08031CF4: .4byte 0x05000360 thumb_func_start sub_31CF8 sub_31CF8: @ 0x08031CF8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 cmp r0, #0 bne _08031D90 ldr r0, _08031D80 @ =gMain ldrb r0, [r0, #2] cmp r0, #3 beq _08031D20 ldr r0, _08031D84 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #4 bl sub_52BB0 _08031D20: ldr r2, _08031D88 @ =0x086A3700 ldr r1, _08031D84 @ =0x020314E0 ldr r4, [r1] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 ldrh r3, [r0] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #3 adds r2, r0, r2 movs r0, #0x14 ldrsb r0, [r2, r0] mov r8, r1 cmp r0, #0 bne _08031D42 b _08031F5E _08031D42: ldrb r0, [r2, #0x15] cmp r0, #0xcc bls _08031D4A b _08031F5E _08031D4A: ldr r0, _08031D8C @ =0x00000281 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf bgt _08031D58 b _08031F00 _08031D58: movs r2, #0 mov r4, r8 movs r3, #0x9c lsls r3, r3, #2 _08031D60: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r2, r1, r0 adds r0, #1 adds r1, r1, r0 ldrb r1, [r1] strb r1, [r2] lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _08031D60 b _08031F4C .align 2, 0 _08031D80: .4byte gMain _08031D84: .4byte 0x020314E0 _08031D88: .4byte 0x086A3700 _08031D8C: .4byte 0x00000281 _08031D90: ldr r2, _08031E10 @ =0x020314E0 ldr r1, [r2] ldr r6, _08031E14 @ =0x00000281 adds r1, r1, r6 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r0, [r2] movs r3, #0xa0 lsls r3, r3, #2 adds r1, r0, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r6 lsls r3, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r4, _08031E18 @ =gMain mov r8, r2 cmp r1, r0 bge _08031DE6 mov r5, r8 movs r7, #0x9c lsls r7, r7, #2 _08031DC4: ldr r0, [r5] asrs r1, r3, #0x10 adds r0, r0, r7 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, [r5] adds r0, r0, r6 lsls r3, r1, #0x10 asrs r1, r3, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _08031DC4 _08031DE6: mov r1, r8 ldr r0, [r1] movs r5, #0xb3 lsls r5, r5, #3 adds r3, r0, r5 ldrh r0, [r3] cmp r0, #0xd bne _08031E32 ldr r0, [r4, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08031E20 adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0, #0xe] cmp r0, #3 bhi _08031E1C movs r0, #0xe b _08031EB2 .align 2, 0 _08031E10: .4byte 0x020314E0 _08031E14: .4byte 0x00000281 _08031E18: .4byte gMain _08031E1C: movs r0, #0x10 b _08031EB2 _08031E20: adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0, #0x10] cmp r0, #3 bhi _08031E2E movs r0, #0x10 b _08031EB2 _08031E2E: movs r0, #0xe b _08031EB2 _08031E32: cmp r0, #0x58 bne _08031E44 ldrb r0, [r4, #4] cmp r0, #0 bne _08031E40 movs r0, #0x59 b _08031EB2 _08031E40: movs r0, #0x5a b _08031EB2 _08031E44: cmp r0, #0xaf bne _08031E7C ldr r0, [r4, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08031E66 movs r2, #0x92 lsls r2, r2, #1 adds r0, r4, r2 ldrb r0, [r0] cmp r0, #3 bhi _08031E62 movs r0, #0xb0 b _08031EB2 _08031E62: movs r0, #0xb1 b _08031EB2 _08031E66: ldr r1, _08031E74 @ =0x00000125 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #3 bhi _08031E78 movs r0, #0xb1 b _08031EB2 .align 2, 0 _08031E74: .4byte 0x00000125 _08031E78: movs r0, #0xb0 b _08031EB2 _08031E7C: cmp r0, #0x29 bne _08031EA4 movs r0, #0x2b strh r0, [r3] ldr r4, _08031EA0 @ =gMain ldrb r0, [r4, #2] cmp r0, #3 beq _08031E94 movs r0, #0x2b movs r1, #4 bl sub_52BB0 _08031E94: mov r2, r8 ldr r0, [r2] adds r0, r0, r5 movs r1, #0x2a strh r1, [r0] b _08031EB4 .align 2, 0 _08031EA0: .4byte gMain _08031EA4: ldr r2, _08031F1C @ =0x086A3700 ldrh r1, [r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #0x15] _08031EB2: strh r0, [r3] _08031EB4: ldrb r0, [r4, #2] cmp r0, #3 beq _08031ECE ldr r0, _08031F20 @ =0x020314E0 ldr r0, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #4 bl sub_52BB0 _08031ECE: ldr r2, _08031F1C @ =0x086A3700 ldr r1, _08031F20 @ =0x020314E0 ldr r4, [r1] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 ldrh r3, [r0] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #3 adds r2, r0, r2 movs r0, #0x14 ldrsb r0, [r2, r0] mov r8, r1 cmp r0, #0 beq _08031F5E ldrb r0, [r2, #0x15] cmp r0, #0xcc bhi _08031F5E ldr r0, _08031F24 @ =0x00000281 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf bgt _08031F28 _08031F00: adds r1, r0, #0 movs r2, #0x9c lsls r2, r2, #2 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] mov r3, r8 ldr r1, [r3] ldr r0, _08031F24 @ =0x00000281 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08031F5E .align 2, 0 _08031F1C: .4byte 0x086A3700 _08031F20: .4byte 0x020314E0 _08031F24: .4byte 0x00000281 _08031F28: movs r2, #0 mov r4, r8 movs r3, #0x9c lsls r3, r3, #2 _08031F30: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r2, r1, r0 adds r0, #1 adds r1, r1, r0 ldrb r1, [r1] strb r1, [r2] lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _08031F30 _08031F4C: mov r1, r8 ldr r0, [r1] movs r2, #0xb3 lsls r2, r2, #3 adds r1, r0, r2 ldrh r1, [r1] ldr r3, _08031F68 @ =0x0000027F adds r0, r0, r3 strb r1, [r0] _08031F5E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031F68: .4byte 0x0000027F thumb_func_start sub_31F6C sub_31F6C: @ 0x08031F6C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, _08031FE0 @ =0x020314E0 ldr r0, [r4] movs r1, #0x97 lsls r1, r1, #1 adds r3, r0, r1 movs r1, #0 strh r1, [r3] ldr r3, _08031FE4 @ =0x0000073D adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08031F96 movs r1, #1 _08031F96: movs r2, #0 lsls r1, r1, #4 str r1, [sp] ldr r5, _08031FE8 @ =0x0200B134 mov r8, r5 mov sl, r4 _08031FA2: lsls r2, r2, #0x10 asrs r1, r2, #0xf ldr r0, [sp] adds r1, r1, r0 mov r3, sl ldr r0, [r3] adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 ldr r5, _08031FEC @ =0x08055A84 adds r1, r1, r5 ldrh r6, [r1] movs r3, #0 ldrsh r0, [r1, r3] mov sb, r2 cmp r0, #0x8d beq _08032018 cmp r0, #0x8d bgt _08031FFA cmp r0, #0x84 beq _08032018 cmp r0, #0x84 bgt _08031FF0 cmp r0, #0x3b beq _08032018 cmp r0, #0x72 beq _08032018 b _080320A8 .align 2, 0 _08031FE0: .4byte 0x020314E0 _08031FE4: .4byte 0x0000073D _08031FE8: .4byte 0x0200B134 _08031FEC: .4byte 0x08055A84 _08031FF0: cmp r0, #0x86 beq _08032018 cmp r0, #0x8b beq _08032018 b _080320A8 _08031FFA: cmp r0, #0xa0 beq _08032018 cmp r0, #0xa0 bgt _0803200C cmp r0, #0x90 beq _08032018 cmp r0, #0x97 beq _08032018 b _080320A8 _0803200C: cmp r0, #0xaf beq _0803205E cmp r0, #0xcd bne _08032016 b _08032138 _08032016: b _080320A8 _08032018: ldr r0, _08032038 @ =gMain ldrb r0, [r0, #8] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803203C lsls r0, r6, #0x10 asrs r0, r0, #0x10 add r0, r8 ldrb r0, [r0] movs r5, #4 cmp r0, #1 bhi _0803204C movs r5, #2 b _0803204C .align 2, 0 _08032038: .4byte gMain _0803203C: lsls r0, r6, #0x10 asrs r0, r0, #0x10 add r0, r8 ldrb r0, [r0] movs r5, #2 cmp r0, #1 bhi _0803204C movs r5, #1 _0803204C: mov r1, sl ldr r0, [r1] movs r3, #0xbe lsls r3, r3, #3 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0 bne _0803213A b _08032138 _0803205E: ldr r4, _080320A0 @ =0x086AE5E0 ldr r3, _080320A4 @ =0x0200B134 adds r0, r3, #0 adds r0, #0xaf ldrb r1, [r0] lsls r1, r1, #1 adds r1, r1, r4 adds r0, #1 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r2, [r0] ldrh r5, [r1] movs r0, #0 ldrsh r1, [r1, r0] lsls r2, r2, #0x10 asrs r0, r2, #0x10 cmp r1, r0 bge _08032086 lsrs r5, r2, #0x10 _08032086: adds r0, r3, #0 adds r0, #0xb1 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r2, [r0] lsls r0, r5, #0x10 lsls r1, r2, #0x10 cmp r0, r1 bge _0803213A lsrs r5, r1, #0x10 b _0803213A .align 2, 0 _080320A0: .4byte 0x086AE5E0 _080320A4: .4byte 0x0200B134 _080320A8: ldr r0, _0803218C @ =0x086AE5E0 lsls r1, r6, #0x10 asrs r1, r1, #0x10 add r1, r8 ldrb r1, [r1] lsls r1, r1, #1 adds r1, r1, r0 ldrh r5, [r1] movs r3, #0 ldr r1, _08032190 @ =0x086A3700 mov ip, r1 mov r7, ip adds r4, r0, #0 _080320C2: lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r7 ldrb r6, [r0, #0x15] adds r0, r6, #0 cmp r0, #0xcc bgt _080320FA add r0, r8 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r2, [r0] lsls r0, r5, #0x10 lsls r1, r2, #0x10 cmp r0, r1 bge _080320EA lsrs r5, r1, #0x10 _080320EA: lsls r0, r3, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080320C2 _080320FA: mov r0, sb asrs r1, r0, #0xf ldr r3, [sp] adds r1, r1, r3 mov r0, sl ldr r2, [r0] adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 ldr r3, _08032194 @ =0x08055A84 adds r1, r1, r3 ldrh r6, [r1] movs r0, #0xbe lsls r0, r0, #3 adds r2, r2, r0 ldrh r0, [r2] cmp r0, #0 bne _0803213A lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #3 add r1, ip ldrb r0, [r1, #0x15] cmp r0, #0xcc bls _0803213A _08032138: movs r5, #0 _0803213A: mov r1, sl ldr r4, [r1] ldr r3, _08032198 @ =0x0000059C adds r0, r4, r3 ldrh r1, [r0] lsls r0, r6, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _0803214E movs r5, #0 _0803214E: movs r1, #0x97 lsls r1, r1, #1 adds r0, r4, r1 lsls r2, r5, #0x10 asrs r2, r2, #0x10 ldrh r3, [r0] adds r2, r2, r3 strh r2, [r0] mov r5, sb asrs r1, r5, #0x10 lsls r3, r1, #1 movs r5, #0x98 lsls r5, r5, #1 adds r0, r4, r5 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 bgt _0803217C b _08031FA2 _0803217C: 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 _0803218C: .4byte 0x086AE5E0 _08032190: .4byte 0x086A3700 _08032194: .4byte 0x08055A84 _08032198: .4byte 0x0000059C thumb_func_start sub_3219C sub_3219C: @ 0x0803219C push {r4, r5, r6, r7, lr} sub sp, #0xc ldr r4, _080321C8 @ =gMain movs r0, #7 ldrsb r0, [r4, r0] cmp r0, #0 beq _08032208 movs r0, #0 strb r0, [r4, #7] bl sub_C00 ldr r1, [r4, #0x4c] ldr r2, [r4, #0x50] adds r1, r1, r2 adds r3, r0, r1 movs r1, #3 ands r3, r1 movs r5, #0 adds r2, r4, #0 adds r2, #0x74 adds r0, r3, #0 b _080321DE .align 2, 0 _080321C8: .4byte gMain _080321CC: lsls r0, r5, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _080321EA adds r0, r0, r3 _080321DE: ands r0, r1 adds r0, #0xc9 adds r0, r0, r2 ldrb r0, [r0] cmp r0, #3 bhi _080321CC _080321EA: ldr r0, _08032204 @ =0x020314E0 ldr r2, [r0] lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r0, r0, r3 movs r1, #3 ands r0, r1 adds r0, #0xc9 movs r1, #0xb3 lsls r1, r1, #3 adds r2, r2, r1 b _08032452 .align 2, 0 _08032204: .4byte 0x020314E0 _08032208: bl sub_C00 ldr r1, [r4, #0x4c] ldr r2, [r4, #0x50] adds r1, r1, r2 adds r3, r0, r1 movs r0, #8 ldrsb r0, [r4, r0] cmp r0, #0 beq _08032222 adds r0, r3, #0 movs r1, #0x32 b _08032226 _08032222: adds r0, r3, #0 movs r1, #0x64 _08032226: bl __umodsi3 adds r3, r0, #0 ldr r0, _08032338 @ =0x02031520 movs r2, #8 ldrsh r0, [r0, r2] cmp r0, #0x63 bgt _08032238 movs r3, #1 _08032238: ldr r7, _0803233C @ =0x020314E0 cmp r3, #0 bne _0803224C ldr r0, [r7] movs r3, #0xbe lsls r3, r3, #3 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #4 bhi _0803225E _0803224C: ldr r1, [r7] ldr r4, _08032340 @ =0x0000012B adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803225E b _080323C0 _0803225E: movs r4, #0 ldr r0, [r7] movs r1, #0xb3 lsls r1, r1, #3 adds r3, r0, r1 strh r4, [r3] ldr r1, _08032344 @ =0x0200B134 adds r0, r1, #0 adds r0, #0xcc ldrb r2, [r0] adds r5, r1, #0 cmp r2, #0 beq _08032286 movs r4, #1 mov r0, sp movs r1, #0xcc strh r1, [r0] cmp r2, #3 bhi _08032286 strh r1, [r3] _08032286: adds r0, r5, #0 adds r0, #0xc9 ldrb r2, [r0] cmp r2, #0 beq _080322B4 adds r0, r4, #0 lsls r1, r0, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r1, r1, r3 lsrs r4, r1, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0xf add r0, sp movs r1, #0xc9 strh r1, [r0] cmp r2, #3 bhi _080322B4 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _080322B4: adds r0, r5, #0 adds r0, #0xcb ldrb r2, [r0] cmp r2, #0 beq _080322E2 adds r0, r4, #0 lsls r1, r0, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r1, r1, r3 lsrs r4, r1, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0xf add r0, sp movs r1, #0xcb strh r1, [r0] cmp r2, #3 bhi _080322E2 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _080322E2: adds r0, r5, #0 adds r0, #0xca ldrb r2, [r0] cmp r2, #0 beq _08032310 adds r0, r4, #0 lsls r1, r0, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r1, r1, r3 lsrs r4, r1, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0xf add r0, sp movs r1, #0xca strh r1, [r0] cmp r2, #3 bhi _08032310 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _08032310: ldr r2, _08032348 @ =gMain ldrb r0, [r2, #4] cmp r0, #0 bne _0803234C adds r1, r4, #0 lsls r0, r1, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r4, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0xf mov r3, sp adds r0, r3, r1 movs r1, #0xc4 strh r1, [r0] movs r3, #0x9c lsls r3, r3, #1 b _08032366 .align 2, 0 _08032338: .4byte 0x02031520 _0803233C: .4byte 0x020314E0 _08032340: .4byte 0x0000012B _08032344: .4byte 0x0200B134 _08032348: .4byte gMain _0803234C: adds r1, r4, #0 lsls r0, r1, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r4, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0xf mov r3, sp adds r0, r3, r1 movs r1, #0xc3 strh r1, [r0] ldr r3, _080323B4 @ =0x00000137 _08032366: adds r0, r2, r3 ldrb r0, [r0] cmp r0, #3 bhi _08032378 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _08032378: ldr r5, _080323B8 @ =0x020314E0 ldr r0, [r5] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0 bne _08032454 bl sub_C00 ldr r2, _080323BC @ =gMain ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] adds r1, r1, r2 adds r3, r0, r1 lsls r1, r4, #0x10 asrs r1, r1, #0x10 adds r0, r3, #0 bl __umodsi3 adds r3, r0, #0 ldr r1, [r5] lsls r0, r3, #1 add r0, sp ldrh r0, [r0] movs r4, #0xb3 lsls r4, r4, #3 adds r1, r1, r4 strh r0, [r1] b _08032454 .align 2, 0 _080323B4: .4byte 0x00000137 _080323B8: .4byte 0x020314E0 _080323BC: .4byte gMain _080323C0: ldr r2, _08032470 @ =0x0000073D adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r6, #0 cmp r0, #3 bne _080323D2 movs r6, #1 _080323D2: bl sub_C00 ldr r2, _08032474 @ =gMain ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] adds r1, r1, r2 adds r3, r0, r1 ldr r4, [r7] movs r1, #0x97 lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r1, [r0, r2] adds r0, r3, #0 bl __umodsi3 adds r3, r0, #0 movs r5, #0 movs r1, #0x98 lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] lsls r6, r6, #0x10 cmp r0, r3 bhi _0803242A adds r4, r7, #0 adds r2, r1, #0 _0803240A: lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #7 bgt _0803242A ldr r0, [r4] lsls r1, r1, #1 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, r3 bls _0803240A _0803242A: ldr r0, _08032478 @ =0x020314E0 ldr r2, [r0] ldr r3, _0803247C @ =0x08055A84 lsls r1, r5, #0x10 asrs r1, r1, #0xf asrs r0, r6, #0x10 lsls r0, r0, #4 adds r1, r1, r0 adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 adds r1, r1, r3 ldrh r0, [r1] movs r3, #0xb3 lsls r3, r3, #3 adds r2, r2, r3 _08032452: strh r0, [r2] _08032454: ldr r0, _08032478 @ =0x020314E0 ldr r0, [r0] movs r4, #0xb3 lsls r4, r4, #3 adds r1, r0, r4 ldrh r1, [r1] ldr r2, _08032480 @ =0x0000059C adds r0, r0, r2 strh r1, [r0] add sp, #0xc pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08032470: .4byte 0x0000073D _08032474: .4byte gMain _08032478: .4byte 0x020314E0 _0803247C: .4byte 0x08055A84 _08032480: .4byte 0x0000059C thumb_func_start sub_32484 sub_32484: @ 0x08032484 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080324D4 @ =0x020314E0 ldr r1, [r0] movs r3, #0x97 lsls r3, r3, #1 adds r2, r1, r3 movs r1, #0 strh r1, [r2] movs r2, #0 ldr r4, _080324D8 @ =gMain mov sb, r4 mov ip, sb ldr r5, _080324DC @ =0x086AE5E0 mov sl, r5 _080324A8: lsls r2, r2, #0x10 asrs r1, r2, #0xf mov r0, ip ldrb r3, [r0, #4] movs r0, #0x34 muls r0, r3, r0 adds r1, r1, r0 ldr r4, _080324E0 @ =0x086A4A38 adds r1, r1, r4 ldrh r5, [r1] movs r4, #0 ldrsh r0, [r1, r4] mov r8, r2 cmp r0, #0x57 bne _080324F4 cmp r3, #0 bne _080324E4 mov r0, ip adds r0, #0xcd ldrb r0, [r0] b _080324E8 .align 2, 0 _080324D4: .4byte 0x020314E0 _080324D8: .4byte gMain _080324DC: .4byte 0x086AE5E0 _080324E0: .4byte 0x086A4A38 _080324E4: ldr r1, _080324F0 @ =0x0200B18E ldrb r0, [r1] _080324E8: lsls r0, r0, #1 add r0, sl ldrh r3, [r0] b _0803257C .align 2, 0 _080324F0: .4byte 0x0200B18E _080324F4: mov r1, sb adds r1, #0x74 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #1 add r0, sl ldrh r3, [r0] movs r2, #0 ldr r7, _080325CC @ =0x086A3700 ldr r6, _080325D0 @ =0x086AE5E0 adds r4, r1, #0 _0803250A: lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r7 ldrb r5, [r0, #0x15] adds r0, r5, #0 cmp r0, #0xcc bgt _08032542 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r6 ldrh r0, [r0] lsls r1, r3, #0x10 lsls r0, r0, #0x10 cmp r1, r0 bge _08032532 lsrs r3, r0, #0x10 _08032532: lsls r0, r2, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0803250A _08032542: mov r4, r8 asrs r1, r4, #0xf mov r5, ip ldrb r2, [r5, #4] movs r0, #0x34 muls r0, r2, r0 adds r1, r1, r0 ldr r0, _080325D4 @ =0x086A4A38 adds r1, r1, r0 ldrh r5, [r1] ldr r1, _080325D8 @ =0x020314E0 ldr r0, [r1] movs r4, #0xbe lsls r4, r4, #3 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803257C lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #3 ldr r0, _080325CC @ =0x086A3700 adds r1, r1, r0 ldrb r0, [r1, #0x15] cmp r0, #0xcc bls _0803257C movs r3, #0 _0803257C: ldr r1, _080325D8 @ =0x020314E0 ldr r4, [r1] ldr r1, _080325DC @ =0x0000059E adds r0, r4, r1 ldrh r1, [r0] lsls r0, r5, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _08032590 movs r3, #0 _08032590: movs r5, #0x97 lsls r5, r5, #1 adds r0, r4, r5 lsls r2, r3, #0x10 asrs r2, r2, #0x10 ldrh r1, [r0] adds r2, r2, r1 strh r2, [r0] mov r3, r8 asrs r1, r3, #0x10 lsls r3, r1, #1 adds r5, #2 adds r0, r4, r5 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x18 bgt _080325BC b _080324A8 _080325BC: 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 _080325CC: .4byte 0x086A3700 _080325D0: .4byte 0x086AE5E0 _080325D4: .4byte 0x086A4A38 _080325D8: .4byte 0x020314E0 _080325DC: .4byte 0x0000059E thumb_func_start sub_325E0 sub_325E0: @ 0x080325E0 push {r4, r5, r6, lr} bl sub_C00 ldr r3, _08032600 @ =gMain ldr r1, [r3, #0x4c] ldr r2, [r3, #0x50] adds r1, r1, r2 adds r2, r0, r1 movs r0, #8 ldrsb r0, [r3, r0] cmp r0, #0 beq _08032604 adds r0, r2, #0 movs r1, #0x64 b _08032608 .align 2, 0 _08032600: .4byte gMain _08032604: adds r0, r2, #0 movs r1, #0x32 _08032608: bl __umodsi3 adds r2, r0, #0 ldr r0, _08032650 @ =0x020314E0 ldr r3, [r0] ldr r4, _08032654 @ =0x0000059E adds r1, r3, r4 ldrh r1, [r1] adds r5, r0, #0 cmp r1, #0x9a bne _08032620 movs r2, #1 _08032620: cmp r2, #0 bne _08032630 movs r1, #0xbe lsls r1, r1, #3 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #4 bhi _08032640 _08032630: movs r2, #0x96 lsls r2, r2, #1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08032658 _08032640: ldr r0, [r5] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0x9a strh r1, [r0] b _080326CC .align 2, 0 _08032650: .4byte 0x020314E0 _08032654: .4byte 0x0000059E _08032658: bl sub_C00 ldr r2, _080326E4 @ =gMain ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] adds r1, r1, r2 adds r2, r0, r1 ldr r4, [r5] movs r1, #0x97 lsls r1, r1, #1 adds r0, r4, r1 movs r3, #0 ldrsh r1, [r0, r3] adds r0, r2, #0 bl __umodsi3 adds r2, r0, #0 movs r6, #0 movs r1, #0x98 lsls r1, r1, #1 adds r0, r4, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, r2 bhi _080326AC adds r3, r1, #0 _0803268C: lsls r0, r6, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r6, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0x18 bgt _080326AC ldr r0, [r5] lsls r1, r1, #1 adds r0, r0, r3 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, r2 bls _0803268C _080326AC: ldr r5, _080326E8 @ =0x020314E0 ldr r3, [r5] ldr r4, _080326EC @ =0x086A4A38 lsls r0, r6, #0x10 asrs r0, r0, #0xf ldr r1, _080326E4 @ =gMain ldrb r2, [r1, #4] movs r1, #0x34 muls r1, r2, r1 adds r0, r0, r1 adds r0, r0, r4 ldrh r0, [r0] movs r2, #0xb3 lsls r2, r2, #3 adds r3, r3, r2 strh r0, [r3] _080326CC: ldr r0, [r5] movs r3, #0xb3 lsls r3, r3, #3 adds r1, r0, r3 ldrh r1, [r1] ldr r4, _080326F0 @ =0x0000059E adds r0, r0, r4 strh r1, [r0] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080326E4: .4byte gMain _080326E8: .4byte 0x020314E0 _080326EC: .4byte 0x086A4A38 _080326F0: .4byte 0x0000059E thumb_func_start sub_326F4 sub_326F4: @ 0x080326F4 push {r4, lr} ldr r4, _08032760 @ =0x020314E0 ldr r0, [r4] ldr r1, _08032764 @ =0x0000073D adds r0, r0, r1 movs r2, #0 movs r1, #2 strb r1, [r0] ldr r0, [r4] ldr r3, _08032768 @ =0x000001E5 adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] movs r2, #0xf3 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #1 strb r0, [r1] bl sub_1F2A4 bl sub_21B0C bl sub_1F59C bl sub_300D8 bl sub_30178 ldr r2, [r4] movs r3, #0xec lsls r3, r3, #1 adds r0, r2, r3 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] adds r3, #2 adds r0, r2, r3 strh r1, [r0] bl sub_30480 bl sub_304C8 bl sub_31144 bl sub_313A0 bl sub_2E6AC bl sub_31B30 pop {r4} pop {r0} bx r0 .align 2, 0 _08032760: .4byte 0x020314E0 _08032764: .4byte 0x0000073D _08032768: .4byte 0x000001E5 thumb_func_start sub_3276C sub_3276C: @ 0x0803276C push {lr} bl sub_19B90 bl sub_327C0 ldr r0, _080327B0 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _08032782 bl sub_328C8 _08032782: bl sub_32DF8 ldr r0, _080327B4 @ =0x020314E0 ldr r0, [r0] movs r2, #0xa7 lsls r2, r2, #2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _080327AC subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080327AC ldr r0, _080327B8 @ =0x02032EE0 ldr r1, _080327BC @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _080327AC: pop {r0} bx r0 .align 2, 0 _080327B0: .4byte gMain _080327B4: .4byte 0x020314E0 _080327B8: .4byte 0x02032EE0 _080327BC: .4byte 0x0000FFFF thumb_func_start sub_327C0 sub_327C0: @ 0x080327C0 push {r4, lr} bl sub_4F814 bl sub_1A0F4 bl sub_2CA9C ldr r4, _0803280C @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x59 bgt _080327E4 bl sub_304C8 bl sub_31498 _080327E4: ldr r2, [r4] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08032814 movs r1, #0xd1 lsls r1, r1, #2 adds r0, r2, r1 ldr r0, [r0] ldr r1, _08032810 @ =0x00FFFF00 ands r0, r1 movs r1, #0xc0 lsls r1, r1, #2 cmp r0, r1 bne _08032814 movs r0, #0xe5 lsls r0, r0, #3 adds r1, r2, r0 movs r0, #1 b _0803281C .align 2, 0 _0803280C: .4byte 0x020314E0 _08032810: .4byte 0x00FFFF00 _08032814: movs r0, #0xe5 lsls r0, r0, #3 adds r1, r2, r0 movs r0, #0 _0803281C: strb r0, [r1] ldr r4, _080328C4 @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x95 bgt _08032834 bl sub_2E6AC bl sub_313A0 _08032834: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xc3 bgt _08032848 bl sub_30178 bl sub_2F140 _08032848: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xc9 bgt _08032858 bl sub_2FCD0 _08032858: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xdb bgt _08032868 bl sub_1F59C _08032868: bl sub_308DC ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x76 ble _08032880 bl sub_2F504 bl sub_30EB4 _08032880: bl sub_2CE80 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xa8 ble _08032894 bl sub_2D104 _08032894: bl sub_203CC bl sub_21B0C bl sub_1D128 bl sub_31B30 ldr r0, [r4] movs r1, #0xca lsls r1, r1, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080328BA bl sub_225F0 _080328BA: bl sub_472E4 pop {r4} pop {r0} bx r0 .align 2, 0 _080328C4: .4byte 0x020314E0 thumb_func_start sub_328C8 sub_328C8: @ 0x080328C8 push {lr} bl sub_300D8 bl sub_32968 bl sub_1F2A4 ldr r0, _0803290C @ =0x020314E0 ldr r0, [r0] movs r2, #0xc0 lsls r2, r2, #3 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _080328EA subs r0, #1 strh r0, [r1] _080328EA: bl sub_2F26C bl sub_2E67C bl sub_31144 ldr r0, _08032910 @ =gMain ldrb r1, [r0, #0xf] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _08032906 bl sub_2F79C _08032906: pop {r0} bx r0 .align 2, 0 _0803290C: .4byte 0x020314E0 _08032910: .4byte gMain thumb_func_start sub_32914 sub_32914: @ 0x08032914 push {lr} ldr r0, _08032938 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _0803295E ldr r0, _0803293C @ =0x020314E0 ldr r0, [r0] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _0803294C cmp r0, #3 bgt _08032940 cmp r0, #1 beq _08032946 b _08032956 .align 2, 0 _08032938: .4byte gMain _0803293C: .4byte 0x020314E0 _08032940: cmp r0, #4 beq _08032952 b _08032956 _08032946: bl sub_32B74 b _08032956 _0803294C: bl sub_329B0 b _08032956 _08032952: bl sub_1C560 _08032956: ldr r0, _08032964 @ =0x020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] _0803295E: pop {r0} bx r0 .align 2, 0 _08032964: .4byte 0x020314E0 thumb_func_start sub_32968 sub_32968: @ 0x08032968 push {lr} ldr r2, _08032990 @ =0x020314E0 ldr r1, [r2] ldrh r0, [r1, #0x26] cmp r0, #0 beq _08032978 subs r0, #1 strh r0, [r1, #0x26] _08032978: ldr r0, [r2] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _080329A0 cmp r0, #3 bgt _08032994 cmp r0, #1 beq _0803299A b _080329AA .align 2, 0 _08032990: .4byte 0x020314E0 _08032994: cmp r0, #4 beq _080329A6 b _080329AA _0803299A: bl sub_32BE4 b _080329AA _080329A0: bl sub_329F4 b _080329AA _080329A6: bl sub_1C5AC _080329AA: pop {r0} bx r0 thumb_func_start sub_329B0 sub_329B0: @ 0x080329B0 push {r4, lr} ldr r0, _080329E4 @ =0x020314E0 ldr r2, [r0] movs r3, #0 movs r0, #0xb4 strh r0, [r2, #0x28] movs r4, #0xdd lsls r4, r4, #1 adds r1, r2, r4 strh r0, [r1] ldr r0, _080329E8 @ =0x0007A120 str r0, [r2, #0x3c] ldr r0, _080329EC @ =gMain ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r3, [r0, #0x3c] ldr r0, _080329F0 @ =0x000005F7 adds r2, r2, r0 movs r0, #1 strb r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080329E4: .4byte 0x020314E0 _080329E8: .4byte 0x0007A120 _080329EC: .4byte gMain _080329F0: .4byte 0x000005F7 thumb_func_start sub_329F4 sub_329F4: @ 0x080329F4 push {r4, r5, r6, r7, lr} ldr r6, _08032ABC @ =0x020314E0 ldr r2, [r6] ldrh r0, [r2, #0x28] adds r7, r0, #0 cmp r7, #0x18 bls _08032AD0 ldr r1, _08032AC0 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r6] strb r2, [r0, #0x1f] ldr r4, [r6] ldrh r0, [r4, #0x28] subs r0, #1 strh r0, [r4, #0x28] adds r1, r4, r1 ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r2, [r1] movs r0, #0x3a strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xb2 strh r0, [r2, #0x12] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x38] ldrh r0, [r4, #0x28] cmp r0, #0x31 bhi _08032A62 adds r0, #1 strh r0, [r4, #0x28] _08032A62: ldr r0, [r6] ldr r4, _08032AC4 @ =0x000001A5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_1B140 ldr r0, [r6] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08032B5C movs r0, #0 adds r4, r6, #0 movs r6, #0 movs r5, #0xdb lsls r5, r5, #2 _08032A8A: ldr r1, [r4] lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r1, r1, r5 adds r1, r1, r2 movs r0, #0xa strb r0, [r1] ldr r1, [r4] lsls r3, r2, #1 ldr r7, _08032AC8 @ =0x0000036E adds r0, r1, r7 adds r0, r0, r3 strh r6, [r0] ldr r0, _08032ACC @ =0x0000036A adds r1, r1, r0 adds r1, r1, r2 movs r0, #4 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _08032A8A b _08032B5C .align 2, 0 _08032ABC: .4byte 0x020314E0 _08032AC0: .4byte 0x0000132C _08032AC4: .4byte 0x000001A5 _08032AC8: .4byte 0x0000036E _08032ACC: .4byte 0x0000036A _08032AD0: cmp r7, #0 beq _08032ADA subs r0, #1 strh r0, [r2, #0x28] b _08032B5C _08032ADA: ldr r4, _08032B64 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] strb r7, [r0] ldr r0, [r6] strb r7, [r0, #0x1f] ldr r3, [r6] movs r2, #0 mov ip, r2 movs r5, #0x3c strh r5, [r3, #0x26] adds r1, r3, r4 ldr r2, [r1] movs r0, #0x60 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xc0 strh r0, [r2, #0x32] ldr r0, [r1] strh r5, [r0, #0x10] ldr r2, [r1] movs r0, #0xb4 strh r0, [r2, #0x12] ldr r0, [r1] strh r7, [r0, #6] ldr r7, _08032B68 @ =0x000005F7 adds r3, r3, r7 mov r0, ip strb r0, [r3] ldr r2, [r6] adds r4, r2, r4 ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #1 strh r0, [r1, #0x2a] adds r2, #0x25 mov r0, ip strb r0, [r2] movs r0, #0xc3 bl m4aSongNumStart ldr r1, [r6] ldr r2, _08032B6C @ =0x0000072E adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08032B5C ldr r3, _08032B70 @ =0x00000281 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08032B5C movs r0, #6 bl sub_19B64 _08032B5C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08032B64: .4byte 0x0000132C _08032B68: .4byte 0x000005F7 _08032B6C: .4byte 0x0000072E _08032B70: .4byte 0x00000281 thumb_func_start sub_32B74 sub_32B74: @ 0x08032B74 push {r4, r5, lr} ldr r4, _08032BD0 @ =0x020314E0 ldr r0, [r4] ldr r1, _08032BD4 @ =0x0000072F adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _08032B8E movs r0, #4 bl sub_19B64 _08032B8E: ldr r1, [r4] movs r3, #0 movs r2, #0 movs r0, #0x64 strh r0, [r1, #0x28] movs r5, #0xbd lsls r5, r5, #2 adds r1, r1, r5 movs r0, #2 strb r0, [r1] ldr r1, [r4] ldr r5, _08032BD8 @ =0x000005FC adds r0, r1, r5 strh r2, [r0] ldr r0, _08032BDC @ =0x000005FE adds r2, r1, r0 movs r0, #0x1e strh r0, [r2] subs r5, #1 adds r1, r1, r5 strb r3, [r1] ldr r1, [r4] ldr r0, _08032BE0 @ =0x0000C350 str r0, [r1, #0x3c] movs r0, #0xd5 bl m4aSongNumStart movs r0, #8 bl sub_11B0 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08032BD0: .4byte 0x020314E0 _08032BD4: .4byte 0x0000072F _08032BD8: .4byte 0x000005FC _08032BDC: .4byte 0x000005FE _08032BE0: .4byte 0x0000C350 thumb_func_start sub_32BE4 sub_32BE4: @ 0x08032BE4 push {r4, r5, r6, r7, lr} ldr r6, _08032C44 @ =0x020314E0 ldr r0, [r6] ldrh r7, [r0, #0x28] mov ip, r6 cmp r7, #0 bne _08032BF4 b _08032D54 _08032BF4: ldr r1, _08032C48 @ =0x000005F7 adds r0, r0, r1 movs r1, #0 movs r5, #1 strb r5, [r0] ldr r0, [r6] strb r5, [r0, #0x1f] ldr r3, [r6] ldrh r0, [r3, #0x28] subs r0, #1 strh r0, [r3, #0x28] ldr r2, _08032C4C @ =0x0000132C adds r4, r3, r2 ldr r0, [r4] strh r1, [r0, #0x30] ldr r0, [r4] strh r1, [r0, #0x32] ldr r0, [r4] strh r1, [r0, #6] ldrh r0, [r3, #0x28] cmp r0, #0x61 bls _08032C54 ldr r2, _08032C50 @ =0x000005FA adds r0, r3, r2 strb r5, [r0] ldr r0, [r6] movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r0, [r6] ldr r1, _08032C4C @ =0x0000132C adds r0, r0, r1 ldr r2, [r0] movs r1, #0xb5 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xc3 b _08032D1A .align 2, 0 _08032C44: .4byte 0x020314E0 _08032C48: .4byte 0x000005F7 _08032C4C: .4byte 0x0000132C _08032C50: .4byte 0x000005FA _08032C54: cmp r0, #0x5e bls _08032C72 movs r0, #0xbd lsls r0, r0, #2 adds r1, r3, r0 movs r0, #3 strb r0, [r1] ldr r0, [r6] adds r0, r0, r2 ldr r2, [r0] movs r1, #0xb8 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xbb b _08032D1A _08032C72: cmp r0, #0x5b bls _08032C88 ldr r0, [r4] strb r5, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #4 strb r1, [r0] b _08032D1C _08032C88: cmp r0, #0x53 bls _08032C98 movs r2, #0xbd lsls r2, r2, #2 adds r1, r3, r2 movs r0, #5 strb r0, [r1] b _08032D1C _08032C98: cmp r0, #0x22 bls _08032CA8 movs r0, #0xbd lsls r0, r0, #2 adds r1, r3, r0 movs r0, #6 strb r0, [r1] b _08032D1C _08032CA8: cmp r0, #0x1a bls _08032CB8 movs r2, #0xbd lsls r2, r2, #2 adds r1, r3, r2 movs r0, #7 strb r0, [r1] b _08032D1C _08032CB8: cmp r0, #0x12 bls _08032CC8 movs r0, #0xbd lsls r0, r0, #2 adds r1, r3, r0 movs r0, #8 strb r0, [r1] b _08032D1C _08032CC8: cmp r0, #0xa bls _08032CD8 movs r2, #0xbd lsls r2, r2, #2 adds r1, r3, r2 movs r0, #9 strb r0, [r1] b _08032D1C _08032CD8: cmp r0, #4 bls _08032CFE ldr r1, [r4] movs r0, #0 strb r0, [r1] ldr r0, [r6] movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] ldr r0, [r6] adds r0, r0, r2 ldr r2, [r0] movs r1, #0xb5 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xc3 b _08032D1A _08032CFE: ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0xb strb r1, [r0] ldr r0, [r6] ldr r2, _08032D50 @ =0x0000132C adds r0, r0, r2 ldr r2, [r0] movs r1, #0xb0 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xca _08032D1A: strh r0, [r1, #0x12] _08032D1C: mov r3, ip ldr r1, [r3] ldr r0, _08032D50 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r3, #0x12 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] b _08032DDA .align 2, 0 _08032D50: .4byte 0x0000132C _08032D54: movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 strb r7, [r0] ldr r0, [r6] strb r7, [r0, #0x1f] ldr r1, [r6] movs r5, #0 movs r0, #0x3c strh r0, [r1, #0x26] ldr r4, _08032DE0 @ =0x0000132C adds r1, r1, r4 ldr r0, [r1] strh r7, [r0, #6] ldr r2, [r1] ldr r0, _08032DE4 @ =0x0000FF9A strh r0, [r2, #0x30] ldr r1, [r1] movs r0, #0xc8 strh r0, [r1, #0x32] movs r0, #7 bl sub_11B0 ldr r2, [r6] adds r4, r2, r4 ldr r0, [r4] strh r7, [r0, #6] ldr r1, [r4] movs r0, #0xab strh r0, [r1, #0x10] ldr r1, [r4] movs r0, #0xd4 strh r0, [r1, #0x12] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] adds r2, #0x25 strb r5, [r2] ldr r0, [r6] ldr r1, _08032DE8 @ =0x000005F7 adds r0, r0, r1 strb r5, [r0] movs r0, #0xd6 bl m4aSongNumStart ldr r0, [r6] ldr r2, _08032DEC @ =0x000005FE adds r1, r0, r2 strh r7, [r1] ldr r3, _08032DF0 @ =0x000005FB adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r6] ldr r1, _08032DF4 @ =0x000005FA adds r0, r0, r1 strb r5, [r0] _08032DDA: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08032DE0: .4byte 0x0000132C _08032DE4: .4byte 0x0000FF9A _08032DE8: .4byte 0x000005F7 _08032DEC: .4byte 0x000005FE _08032DF0: .4byte 0x000005FB _08032DF4: .4byte 0x000005FA thumb_func_start sub_32DF8 sub_32DF8: @ 0x08032DF8 push {r4, r5, lr} ldr r0, _08032F28 @ =0x020314E0 ldr r2, [r0] ldrb r1, [r2, #4] adds r5, r0, #0 cmp r1, #0 beq _08032E90 movs r1, #0xe2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0 bne _08032E3A movs r3, #0xf1 lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 beq _08032E3A subs r3, #0x22 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _08032E3A ldr r3, _08032F2C @ =0x0000061C adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08032E3A strb r0, [r1] _08032E3A: ldr r0, [r5] movs r2, #0xe2 lsls r2, r2, #3 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] adds r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _08032F30 @ =0x00000712 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #6 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] adds r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #7 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08032E90: ldr r1, [r5] ldrb r0, [r1, #5] cmp r0, #0 beq _08032F22 movs r2, #0xe2 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _08032ECE movs r3, #0xf1 lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 beq _08032ECE subs r3, #0x22 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _08032ECE ldr r3, _08032F2C @ =0x0000061C adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08032ECE movs r0, #1 strb r0, [r2] _08032ECE: ldr r0, [r5] ldr r2, _08032F34 @ =0x00000713 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] subs r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _08032F38 @ =0x00000711 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] subs r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] subs r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #8 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08032F22: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08032F28: .4byte 0x020314E0 _08032F2C: .4byte 0x0000061C _08032F30: .4byte 0x00000712 _08032F34: .4byte 0x00000713 _08032F38: .4byte 0x00000711 thumb_func_start sub_32F3C sub_32F3C: @ 0x08032F3C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r3, _080330F0 @ =0x020314E0 ldr r0, [r3] movs r5, #0 movs r6, #0 strh r6, [r0, #0x18] strb r5, [r0, #0x17] ldr r0, [r3] strb r5, [r0, #0x13] ldr r0, [r3] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #1 mov r8, r2 mov r4, r8 strb r4, [r0] ldr r2, [r3] adds r4, r2, #0 adds r4, #0x6c movs r7, #0xe1 lsls r7, r7, #5 adds r0, r7, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r7, _080330F4 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r6, [r4] ldr r0, _080330F8 @ =0x00000383 adds r2, r2, r0 strb r5, [r2] ldr r0, [r3] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r2, _080330FC @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] mov r4, r8 strb r4, [r0] ldr r0, [r3] adds r7, #0xef adds r0, r0, r7 strb r5, [r0] ldr r0, [r3] ldr r1, _08033100 @ =0x00000386 adds r0, r0, r1 strb r5, [r0] ldr r0, [r3] ldr r2, _08033104 @ =0x00000387 adds r0, r0, r2 strb r5, [r0] ldr r0, [r3] ldr r4, _08033108 @ =0x00000392 adds r1, r0, r4 strh r6, [r1] adds r7, #0xf adds r1, r0, r7 strh r6, [r1] ldr r1, _0803310C @ =0x00000396 adds r0, r0, r1 strb r5, [r0] movs r1, #0 adds r6, r3, #0 adds r5, r6, #0 movs r4, #0 _08032FCC: ldr r0, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r3, _08033110 @ =0x00000397 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r7, _08033114 @ =0x0000039A adds r0, r0, r7 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r1, _08033118 @ =0x0000039D adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r7, #9 adds r0, r0, r7 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r1, #9 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r7, #9 adds r0, r0, r7 adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] lsls r3, r2, #1 adds r7, #4 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] adds r7, #6 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] adds r7, #6 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] lsls r0, r2, #2 adds r1, r1, r0 movs r3, #0xf1 lsls r3, r3, #2 adds r0, r1, r3 strh r4, [r0] adds r7, #0xa adds r0, r1, r7 strh r4, [r0] adds r3, #0xc adds r0, r1, r3 strh r4, [r0] adds r7, #0xc adds r1, r1, r7 strh r4, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _08032FCC ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r6] adds r3, #0xe adds r0, r0, r3 strb r2, [r0] ldr r0, [r6] ldr r4, _0803311C @ =0x000003DF adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r7, #0xe adds r0, r0, r7 strb r2, [r0] ldr r1, [r6] adds r3, #4 adds r0, r1, r3 movs r3, #0 strh r2, [r0] adds r4, #5 adds r0, r1, r4 strh r2, [r0] adds r7, #6 adds r0, r1, r7 strh r2, [r0] adds r4, #4 adds r0, r1, r4 strh r2, [r0] adds r7, #4 adds r0, r1, r7 strh r2, [r0] adds r4, #4 adds r0, r1, r4 strh r2, [r0] adds r7, #4 adds r0, r1, r7 strh r2, [r0] adds r4, #4 adds r0, r1, r4 strh r2, [r0] adds r7, #4 adds r0, r1, r7 strh r2, [r0] strb r3, [r1, #0x1a] bl sub_336E0 bl sub_340EC movs r0, #0x25 bl m4aSongNumStart ldr r1, _08033120 @ =0x040000D4 ldr r0, _08033124 @ =0x081B36A4 str r0, [r1] ldr r0, _08033128 @ =0x05000320 str r0, [r1, #4] ldr r0, _0803312C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080330F0: .4byte 0x020314E0 _080330F4: .4byte 0x00000296 _080330F8: .4byte 0x00000383 _080330FC: .4byte 0x0000132C _08033100: .4byte 0x00000386 _08033104: .4byte 0x00000387 _08033108: .4byte 0x00000392 _0803310C: .4byte 0x00000396 _08033110: .4byte 0x00000397 _08033114: .4byte 0x0000039A _08033118: .4byte 0x0000039D _0803311C: .4byte 0x000003DF _08033120: .4byte 0x040000D4 _08033124: .4byte 0x081B36A4 _08033128: .4byte 0x05000320 _0803312C: .4byte 0x80000010 thumb_func_start sub_33130 sub_33130: @ 0x08033130 push {r4, r5, r6, r7, lr} ldr r0, _0803314C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _08033142 b _080333C4 _08033142: lsls r0, r0, #2 ldr r1, _08033150 @ =_08033154 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803314C: .4byte 0x020314E0 _08033150: .4byte _08033154 _08033154: @ jump table .4byte _08033170 @ case 0 .4byte _08033208 @ case 1 .4byte _08033254 @ case 2 .4byte _080332A8 @ case 3 .4byte _080332E0 @ case 4 .4byte _08033344 @ case 5 .4byte _080333B4 @ case 6 _08033170: ldr r5, _080331C4 @ =0x020314E0 ldr r0, [r5] ldr r1, _080331C8 @ =0x000005F7 adds r0, r0, r1 movs r6, #0 movs r3, #1 strb r3, [r0] ldr r4, [r5] ldrh r0, [r4, #0x18] cmp r0, #0x77 bhi _080331DC movs r1, #0x18 bl __udivsi3 ldr r2, _080331CC @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #5 ldr r0, _080331D0 @ =0x082EE0E0 adds r1, r1, r0 str r1, [r2] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r0, _080331D4 @ =0x80000050 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r0, [r4, #0x18] movs r1, #5 bl __udivsi3 ldr r2, _080331D8 @ =0x0000FFE8 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] b _080333C4 .align 2, 0 _080331C4: .4byte 0x020314E0 _080331C8: .4byte 0x000005F7 _080331CC: .4byte 0x040000D4 _080331D0: .4byte 0x082EE0E0 _080331D4: .4byte 0x80000050 _080331D8: .4byte 0x0000FFE8 _080331DC: adds r0, r4, #0 adds r0, #0xe6 strh r6, [r0] ldr r1, _08033204 @ =gMain movs r7, #0x80 lsls r7, r7, #4 adds r0, r1, r7 movs r2, #1 strh r3, [r0] adds r7, #0xb8 adds r0, r1, r7 strh r3, [r0] movs r0, #0x97 lsls r0, r0, #4 adds r1, r1, r0 strh r3, [r1] strb r2, [r4, #0x13] ldr r0, [r5] strh r6, [r0, #0x18] b _080333C4 .align 2, 0 _08033204: .4byte gMain _08033208: ldr r2, _0803323C @ =0x020314E0 ldr r0, [r2] ldr r1, _08033240 @ =0x00000386 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08033228 ldr r1, _08033244 @ =gMain ldrh r0, [r1, #0x38] ldr r0, _08033248 @ =0x00001C10 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _0803324C @ =0x0000030D strh r0, [r1, #0x3a] _08033228: ldr r0, [r2] ldr r2, _08033250 @ =0x00000387 adds r0, r0, r2 movs r1, #1 strb r1, [r0] bl sub_336E0 bl sub_340EC b _080333C4 .align 2, 0 _0803323C: .4byte 0x020314E0 _08033240: .4byte 0x00000386 _08033244: .4byte gMain _08033248: .4byte 0x00001C10 _0803324C: .4byte 0x0000030D _08033250: .4byte 0x00000387 _08033254: ldr r3, _08033290 @ =0x020314E0 ldr r1, [r3] movs r0, #3 strb r0, [r1, #0x13] ldr r2, _08033294 @ =gMain movs r5, #0xc5 lsls r5, r5, #4 adds r0, r2, r5 movs r4, #0 movs r1, #1 strh r1, [r0] ldr r7, _08033298 @ =0x00000D08 adds r0, r2, r7 strh r1, [r0] ldr r0, _0803329C @ =0x00000B98 adds r2, r2, r0 strh r1, [r2] ldr r0, [r3] ldr r1, _080332A0 @ =0x00000387 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] ldr r2, _080332A4 @ =0x00000385 adds r0, r0, r2 strb r4, [r0] movs r0, #0x26 bl m4aSongNumStart b _080333C4 .align 2, 0 _08033290: .4byte 0x020314E0 _08033294: .4byte gMain _08033298: .4byte 0x00000D08 _0803329C: .4byte 0x00000B98 _080332A0: .4byte 0x00000387 _080332A4: .4byte 0x00000385 _080332A8: ldr r0, _080332D0 @ =0x020314E0 ldr r0, [r0] ldr r5, _080332D4 @ =0x00000386 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080332CA ldr r1, _080332D8 @ =gMain ldrh r0, [r1, #0x38] ldr r0, _080332DC @ =0x00001C10 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1, #0x3a] _080332CA: bl sub_34450 b _080333C4 .align 2, 0 _080332D0: .4byte 0x020314E0 _080332D4: .4byte 0x00000386 _080332D8: .4byte gMain _080332DC: .4byte 0x00001C10 _080332E0: ldr r3, _080332F0 @ =0x020314E0 ldr r2, [r3] ldrh r0, [r2, #0x18] cmp r0, #0x77 bhi _080332F4 adds r0, #1 strh r0, [r2, #0x18] b _080333C4 .align 2, 0 _080332F0: .4byte 0x020314E0 _080332F4: movs r1, #0 movs r0, #5 strb r0, [r2, #0x13] ldr r3, [r3] strh r1, [r3, #0x18] ldr r0, _08033330 @ =gMain movs r7, #0xe9 lsls r7, r7, #3 adds r1, r0, r7 movs r2, #1 strh r2, [r1] movs r1, #0xd2 lsls r1, r1, #3 adds r0, r0, r1 strh r2, [r0] ldr r1, _08033334 @ =0x040000D4 ldr r0, _08033338 @ =0x08138834 str r0, [r1] ldr r0, _0803333C @ =0x06015800 str r0, [r1, #4] ldr r0, _08033340 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0xe5 lsls r2, r2, #2 adds r3, r3, r2 movs r0, #0x88 strh r0, [r3] b _080333C4 .align 2, 0 _08033330: .4byte gMain _08033334: .4byte 0x040000D4 _08033338: .4byte 0x08138834 _0803333C: .4byte 0x06015800 _08033340: .4byte 0x80001000 _08033344: bl sub_351A8 ldr r4, _0803338C @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _08033356 movs r0, #0xb5 strh r0, [r1, #0x18] _08033356: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803336C movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08033390 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08033394 @ =0x01C9C380 str r0, [r1, #0x3c] _0803336C: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _08033398 cmp r0, #0x14 bne _08033382 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08033382: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _080333C4 .align 2, 0 _0803338C: .4byte 0x020314E0 _08033390: .4byte 0x00061A80 _08033394: .4byte 0x01C9C380 _08033398: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r5, _080333B0 @ =0x00000283 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _080333C4 .align 2, 0 _080333B0: .4byte 0x00000283 _080333B4: bl sub_351A8 ldr r0, _0803341C @ =0x020314E0 ldr r0, [r0] ldr r7, _08033420 @ =0x00000386 adds r0, r0, r7 movs r1, #1 strb r1, [r0] _080333C4: ldr r0, _0803341C @ =0x020314E0 ldr r1, [r0] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080333FC ldr r5, _08033424 @ =0x00000296 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #1 bhi _080333FC ldr r4, _08033428 @ =gMain ldrb r0, [r4, #0xf] cmp r0, #0 bne _080333FC bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _080333FC: ldr r0, _0803341C @ =0x020314E0 ldr r0, [r0] ldr r7, _08033420 @ =0x00000386 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08033412 bl sub_350F0 _08033412: bl sub_472E4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803341C: .4byte 0x020314E0 _08033420: .4byte 0x00000386 _08033424: .4byte 0x00000296 _08033428: .4byte gMain thumb_func_start sub_3342C sub_3342C: @ 0x0803342C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x40 ldr r5, _080336B0 @ =0x020314E0 ldr r3, [r5] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _080336B4 @ =0x00000397 adds r2, r2, r3 mov ip, r2 adds r2, r2, r0 str r2, [sp, #4] ldrb r4, [r2] str r4, [sp, #8] ldr r4, _080336B8 @ =0x0000039A adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0xc] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x10] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x14] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x18] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x1c] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x20] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x24] lsls r2, r0, #1 mov r8, r2 adds r4, #4 adds r2, r3, r4 add r2, r8 ldrh r2, [r2] str r2, [sp, #0x28] adds r4, #6 adds r2, r3, r4 add r2, r8 ldrh r2, [r2] str r2, [sp, #0x2c] adds r4, #6 adds r2, r3, r4 add r2, r8 ldrh r2, [r2] str r2, [sp, #0x30] lsls r6, r0, #2 adds r3, r3, r6 movs r2, #0xf1 lsls r2, r2, #2 adds r2, r3, r2 str r2, [sp, #0x3c] ldr r4, _080336BC @ =0xFFFF0000 mov sb, r4 ldr r4, _080336C0 @ =0x000003C6 adds r2, r3, r4 ldrh r2, [r2] lsls r2, r2, #0x10 ldr r4, _080336C4 @ =0x0000FFFF mov sl, r4 ldr r4, [sp, #0x3c] ldrh r4, [r4] orrs r4, r2 str r4, [sp] movs r4, #0xf4 lsls r4, r4, #2 adds r2, r3, r4 ldrh r2, [r2] mov r4, sb ands r7, r4 orrs r7, r2 ldr r2, _080336C8 @ =0x000003D2 adds r3, r3, r2 ldrh r2, [r3] lsls r2, r2, #0x10 mov r3, sl ands r7, r3 orrs r7, r2 lsls r1, r1, #0x10 asrs r1, r1, #0x10 mov r4, ip adds r2, r4, r1 ldrb r2, [r2] ldr r3, [sp, #4] strb r2, [r3] ldr r2, [r5] ldr r4, _080336B8 @ =0x0000039A adds r2, r2, r4 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] ldr r3, _080336CC @ =0x0000039D adds r2, r2, r3 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] adds r4, #6 adds r2, r2, r4 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] ldr r3, _080336D0 @ =0x000003A3 adds r2, r2, r3 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] adds r4, #6 adds r2, r2, r4 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] ldr r3, _080336D4 @ =0x000003A9 adds r2, r2, r3 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] adds r4, #6 adds r2, r2, r4 adds r0, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r0] ldr r4, [r5] movs r2, #0xec lsls r2, r2, #2 adds r0, r4, r2 mov r3, r8 adds r2, r0, r3 lsls r3, r1, #1 mov sb, r3 add r0, sb ldrh r0, [r0] strh r0, [r2] ldr r2, _080336D8 @ =0x000003B6 adds r0, r4, r2 mov r3, r8 adds r2, r0, r3 add r0, sb ldrh r0, [r0] strh r0, [r2] movs r2, #0xef lsls r2, r2, #2 adds r0, r4, r2 add r8, r0 add r0, sb ldrh r0, [r0] mov r3, r8 strh r0, [r3] adds r6, r4, r6 lsls r0, r1, #2 mov r8, r0 adds r2, r4, r0 movs r3, #0xf1 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] mov sl, r0 adds r0, r6, r3 mov r3, sl strh r3, [r0] ldr r3, _080336C0 @ =0x000003C6 adds r0, r2, r3 ldrh r0, [r0] mov sl, r0 adds r0, r6, r3 mov r3, sl strh r3, [r0] movs r3, #0xf4 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] mov sl, r0 adds r0, r6, r3 mov r3, sl strh r3, [r0] ldr r0, _080336C8 @ =0x000003D2 adds r2, r2, r0 ldrh r0, [r2] ldr r2, _080336C8 @ =0x000003D2 adds r6, r6, r2 strh r0, [r6] ldr r3, _080336B4 @ =0x00000397 adds r4, r4, r3 adds r4, r4, r1 mov r0, sp ldrb r0, [r0, #8] strb r0, [r4] ldr r0, [r5] subs r2, #0x38 adds r0, r0, r2 adds r0, r0, r1 mov r3, sp ldrb r3, [r3, #0xc] strb r3, [r0] ldr r0, [r5] ldr r4, _080336CC @ =0x0000039D adds r0, r0, r4 adds r0, r0, r1 mov r2, sp ldrb r2, [r2, #0x10] strb r2, [r0] ldr r0, [r5] movs r3, #0xe8 lsls r3, r3, #2 adds r0, r0, r3 adds r0, r0, r1 mov r4, sp ldrb r4, [r4, #0x14] strb r4, [r0] ldr r0, [r5] ldr r2, _080336D0 @ =0x000003A3 adds r0, r0, r2 adds r0, r0, r1 mov r3, sp ldrb r3, [r3, #0x18] strb r3, [r0] ldr r0, [r5] ldr r4, _080336DC @ =0x000003A6 adds r0, r0, r4 adds r0, r0, r1 mov r2, sp ldrb r2, [r2, #0x1c] strb r2, [r0] ldr r0, [r5] ldr r3, _080336D4 @ =0x000003A9 adds r0, r0, r3 adds r0, r0, r1 add r4, sp, #0x20 ldrb r4, [r4] strb r4, [r0] ldr r0, [r5] movs r2, #0xeb lsls r2, r2, #2 adds r0, r0, r2 adds r0, r0, r1 add r3, sp, #0x24 ldrb r3, [r3] strb r3, [r0] ldr r0, [r5] movs r4, #0xec lsls r4, r4, #2 adds r1, r0, r4 add r1, sb mov r2, sp ldrh r2, [r2, #0x28] strh r2, [r1] ldr r3, _080336D8 @ =0x000003B6 adds r1, r0, r3 add r1, sb mov r4, sp ldrh r4, [r4, #0x2c] strh r4, [r1] movs r1, #0xef lsls r1, r1, #2 adds r1, r0, r1 str r1, [sp, #0x34] add r1, sb mov r2, sp ldrh r2, [r2, #0x30] strh r2, [r1] add r0, r8 adds r3, #0xe adds r1, r0, r3 mov r4, sp ldrh r4, [r4] strh r4, [r1] ldr r2, [sp] asrs r1, r2, #0x10 adds r3, #2 adds r2, r0, r3 strh r1, [r2] movs r4, #0xf4 lsls r4, r4, #2 adds r1, r0, r4 strh r7, [r1] asrs r1, r7, #0x10 ldr r2, _080336C8 @ =0x000003D2 adds r0, r0, r2 strh r1, [r0] add sp, #0x40 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 _080336B0: .4byte 0x020314E0 _080336B4: .4byte 0x00000397 _080336B8: .4byte 0x0000039A _080336BC: .4byte 0xFFFF0000 _080336C0: .4byte 0x000003C6 _080336C4: .4byte 0x0000FFFF _080336C8: .4byte 0x000003D2 _080336CC: .4byte 0x0000039D _080336D0: .4byte 0x000003A3 _080336D4: .4byte 0x000003A9 _080336D8: .4byte 0x000003B6 _080336DC: .4byte 0x000003A6 thumb_func_start sub_336E0 sub_336E0: @ 0x080336E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 movs r4, #1 movs r0, #0 str r0, [sp] movs r7, #0 ldr r0, _0803377C @ =0x020314E0 ldr r3, [r0] ldr r2, _08033780 @ =0x00000385 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #0x12 ble _08033750 movs r2, #0 ldr r5, _08033784 @ =0x000003A6 adds r1, r3, r5 _0803370C: lsls r0, r2, #0x10 asrs r2, r0, #0x10 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803371E movs r4, #0 _0803371E: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0803370C cmp r4, #0 beq _08033750 ldr r6, _0803377C @ =0x020314E0 ldr r1, [r6] movs r2, #0 movs r0, #2 strb r0, [r1, #0x13] ldr r0, _08033788 @ =gMain movs r3, #0x80 lsls r3, r3, #4 adds r1, r0, r3 strh r2, [r1] ldr r4, _0803378C @ =0x000008B8 adds r1, r0, r4 strh r2, [r1] movs r5, #0x97 lsls r5, r5, #4 adds r0, r0, r5 strh r2, [r0] _08033750: movs r2, #0 _08033752: ldr r6, _0803377C @ =0x020314E0 ldr r0, [r6] lsls r2, r2, #0x10 asrs r1, r2, #0x10 movs r3, #0xe8 lsls r3, r3, #2 adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 str r2, [sp, #4] cmp r0, #9 bls _08033772 bl _08033FD8 _08033772: lsls r0, r0, #2 ldr r1, _08033790 @ =_08033794 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803377C: .4byte 0x020314E0 _08033780: .4byte 0x00000385 _08033784: .4byte 0x000003A6 _08033788: .4byte gMain _0803378C: .4byte 0x000008B8 _08033790: .4byte _08033794 _08033794: @ jump table .4byte _080337BC @ case 0 .4byte _0803394C @ case 1 .4byte _08033A20 @ case 2 .4byte _08033B4C @ case 3 .4byte _08033C7C @ case 4 .4byte _08033D28 @ case 5 .4byte _08033DF4 @ case 6 .4byte _08033E70 @ case 7 .4byte _08033EF0 @ case 8 .4byte _08033F90 @ case 9 _080337BC: ldr r4, _080338E0 @ =0x020314E0 ldr r1, [r4] ldr r5, _080338E4 @ =0x00000385 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 ble _080337D0 b _08033910 _080337D0: ldr r6, _080338E8 @ =0x00000396 adds r1, r1, r6 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 ble _080337E0 b _08033910 _080337E0: adds r0, r2, #1 movs r2, #0 mov sl, r2 strb r0, [r1] ldr r1, [r4] ldr r3, [sp, #4] asrs r6, r3, #0x10 movs r4, #0xe8 lsls r4, r4, #2 adds r1, r1, r4 adds r1, r1, r6 movs r0, #1 strb r0, [r1] ldr r5, _080338E0 @ =0x020314E0 ldr r0, [r5] ldr r1, _080338EC @ =0x000003A3 adds r0, r0, r1 adds r0, r0, r6 mov r2, sl strb r2, [r0] ldr r0, [r5] lsls r3, r6, #1 mov r8, r3 adds r4, #0x10 adds r0, r0, r4 add r0, r8 movs r7, #0 mov r5, sl strh r5, [r0] bl sub_C00 ldr r1, _080338E0 @ =0x020314E0 ldr r4, [r1] lsls r5, r6, #2 adds r4, r4, r5 movs r1, #0xaf lsls r1, r1, #3 bl __umodsi3 ldr r2, _080338F0 @ =0xFFFFFD44 adds r0, r0, r2 movs r3, #0xf1 lsls r3, r3, #2 adds r4, r4, r3 strh r0, [r4] bl sub_C00 ldr r1, _080338E0 @ =0x020314E0 ldr r4, [r1] adds r4, r4, r5 movs r1, #9 bl __umodsi3 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #4 ldr r2, _080338F4 @ =0x000003C6 mov sb, r2 add r4, sb strh r1, [r4] bl sub_C00 ldr r3, _080338E0 @ =0x020314E0 ldr r4, [r3] movs r1, #0xef lsls r1, r1, #2 adds r5, r4, r1 add r5, r8 adds r1, #0x2c bl __umodsi3 adds r0, #0xc8 strh r0, [r5] ldr r2, _080338F8 @ =0x000003A6 adds r4, r4, r2 adds r4, r4, r6 strb r7, [r4] ldr r3, _080338E0 @ =0x020314E0 ldr r0, [r3] ldr r4, _080338FC @ =0x000003A9 adds r0, r0, r4 adds r0, r0, r6 strb r7, [r0] movs r5, #4 str r5, [sp] movs r7, #4 ldr r0, [r3] ldr r6, _08033900 @ =0x000003B6 adds r0, r0, r6 add r0, r8 mov r1, sl strh r1, [r0] ldr r0, _08033904 @ =0x02032F20 ldr r1, _08033908 @ =0x086A1588 bl MPlayStart movs r5, #2 mov r8, sb _080338A4: ldr r0, _080338E0 @ =0x020314E0 ldr r2, [r0] lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsls r1, r4, #2 adds r1, r2, r1 add r1, r8 subs r3, r4, #1 lsls r0, r3, #2 adds r2, r2, r0 add r2, r8 movs r6, #0 ldrsh r1, [r1, r6] movs r6, #0 ldrsh r0, [r2, r6] cmp r1, r0 ble _080338D2 lsls r1, r3, #0x10 asrs r1, r1, #0x10 adds r0, r4, #0 bl sub_3342C movs r5, #3 _080338D2: lsls r0, r5, #0x10 ldr r1, _0803390C @ =0xFFFF0000 adds r0, r0, r1 lsrs r5, r0, #0x10 cmp r0, #0 bgt _080338A4 b _08033FD8 .align 2, 0 _080338E0: .4byte 0x020314E0 _080338E4: .4byte 0x00000385 _080338E8: .4byte 0x00000396 _080338EC: .4byte 0x000003A3 _080338F0: .4byte 0xFFFFFD44 _080338F4: .4byte 0x000003C6 _080338F8: .4byte 0x000003A6 _080338FC: .4byte 0x000003A9 _08033900: .4byte 0x000003B6 _08033904: .4byte 0x02032F20 _08033908: .4byte 0x086A1588 _0803390C: .4byte 0xFFFF0000 _08033910: ldr r0, _08033940 @ =0x020314E0 ldr r2, [r0] ldr r3, [sp, #4] asrs r4, r3, #0x10 lsls r1, r4, #2 adds r1, r2, r1 movs r5, #0xf1 lsls r5, r5, #2 adds r3, r1, r5 movs r5, #0 movs r0, #0 strh r0, [r3] ldr r6, _08033944 @ =0x000003C6 adds r1, r1, r6 movs r0, #0x78 strh r0, [r1] ldr r0, _08033948 @ =0x000003A6 adds r2, r2, r0 adds r2, r2, r4 strb r5, [r2] bl sub_C00 b _08033FD8 .align 2, 0 _08033940: .4byte 0x020314E0 _08033944: .4byte 0x000003C6 _08033948: .4byte 0x000003A6 _0803394C: ldr r1, _08033980 @ =0x020314E0 ldr r2, [r1] ldr r3, [sp, #4] asrs r4, r3, #0x10 lsls r1, r4, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r2, r5 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0x13 bhi _08033988 adds r0, #1 strh r0, [r1] ldr r6, _08033984 @ =0x000003A6 adds r2, r2, r6 adds r2, r2, r4 ldrh r0, [r1] movs r1, #3 ands r0, r1 lsrs r0, r0, #1 strb r0, [r2] movs r0, #4 str r0, [sp] movs r7, #4 b _08033FD8 .align 2, 0 _08033980: .4byte 0x020314E0 _08033984: .4byte 0x000003A6 _08033988: ldr r0, _080339B0 @ =gMain ldr r0, [r0, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 beq _080339BC movs r3, #0xe8 lsls r3, r3, #2 adds r1, r2, r3 adds r1, r1, r4 movs r2, #0 movs r0, #2 strb r0, [r1] ldr r5, _080339B4 @ =0x020314E0 ldr r0, [r5] ldr r6, _080339B8 @ =0x000003A3 adds r0, r0, r6 adds r0, r0, r4 strb r2, [r0] b _080339D6 .align 2, 0 _080339B0: .4byte gMain _080339B4: .4byte 0x020314E0 _080339B8: .4byte 0x000003A3 _080339BC: movs r1, #0xe8 lsls r1, r1, #2 adds r0, r2, r1 adds r0, r0, r4 movs r1, #3 strb r1, [r0] ldr r2, _08033A0C @ =0x020314E0 ldr r0, [r2] ldr r3, _08033A10 @ =0x000003A3 adds r0, r0, r3 adds r0, r0, r4 movs r1, #7 strb r1, [r0] _080339D6: ldr r4, _08033A0C @ =0x020314E0 ldr r2, [r4] ldr r5, [sp, #4] asrs r3, r5, #0x10 lsls r1, r3, #1 movs r6, #0xec lsls r6, r6, #2 adds r0, r2, r6 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r0, _08033A14 @ =0x000003A6 adds r2, r2, r0 adds r2, r2, r3 movs r1, #1 strb r1, [r2] ldr r0, [r4] ldr r2, _08033A18 @ =0x000003A9 adds r0, r0, r2 adds r0, r0, r3 strb r1, [r0] ldr r2, _08033A1C @ =0x086AE5EC ldr r0, [r4] ldr r4, _08033A10 @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r3 b _08033FC2 .align 2, 0 _08033A0C: .4byte 0x020314E0 _08033A10: .4byte 0x000003A3 _08033A14: .4byte 0x000003A6 _08033A18: .4byte 0x000003A9 _08033A1C: .4byte 0x086AE5EC _08033A20: ldr r6, _08033AA4 @ =0x020314E0 ldr r5, [r6] ldr r0, [sp, #4] asrs r4, r0, #0x10 lsls r7, r4, #1 ldr r2, _08033AA8 @ =0x000003B6 adds r1, r5, r2 adds r1, r1, r7 ldrh r0, [r1] adds r0, #1 movs r3, #0 mov sb, r3 movs r6, #0 mov r8, r6 strh r0, [r1] lsls r0, r4, #2 adds r0, r5, r0 movs r1, #0xf1 lsls r1, r1, #2 adds r2, r0, r1 ldrh r3, [r2] movs r6, #0 ldrsh r1, [r2, r6] ldr r0, _08033AAC @ =0xFFFFFCE0 cmp r1, r0 ble _08033AB8 subs r0, r3, #3 strh r0, [r2] ldr r2, _08033AB0 @ =0x086AE5EC ldr r1, _08033AB4 @ =0x000003A3 adds r0, r5, r1 adds r6, r0, r4 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r3, #0 ldrsh r1, [r0, r3] movs r3, #0xec lsls r3, r3, #2 adds r0, r5, r3 adds r5, r0, r7 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 bgt _08033AE2 mov r0, r8 strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033AA4 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033AB4 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 ble _08033B20 mov r4, sb strb r4, [r1] b _08033B20 .align 2, 0 _08033AA4: .4byte 0x020314E0 _08033AA8: .4byte 0x000003B6 _08033AAC: .4byte 0xFFFFFCE0 _08033AB0: .4byte 0x086AE5EC _08033AB4: .4byte 0x000003A3 _08033AB8: ldr r2, _08033AE8 @ =0x086AE5EC ldr r6, _08033AEC @ =0x000003A3 adds r0, r5, r6 adds r6, r0, r4 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r3, #0 ldrsh r1, [r0, r3] movs r3, #0xec lsls r3, r3, #2 adds r0, r5, r3 adds r5, r0, r7 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 ble _08033AF0 _08033AE2: adds r0, #1 strh r0, [r5] b _08033B20 .align 2, 0 _08033AE8: .4byte 0x086AE5EC _08033AEC: .4byte 0x000003A3 _08033AF0: mov r0, r8 strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033B44 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033B48 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 ble _08033B20 movs r0, #7 strb r0, [r1] ldr r5, _08033B44 @ =0x020314E0 ldr r0, [r5] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r4 movs r1, #3 strb r1, [r0] _08033B20: ldr r0, _08033B44 @ =0x020314E0 ldr r0, [r0] ldr r2, [sp, #4] asrs r1, r2, #0x10 ldr r4, _08033B48 @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033B44: .4byte 0x020314E0 _08033B48: .4byte 0x000003A3 _08033B4C: ldr r5, _08033BD4 @ =0x020314E0 ldr r4, [r5] ldr r6, [sp, #4] asrs r7, r6, #0x10 lsls r0, r7, #1 mov r8, r0 ldr r2, _08033BD8 @ =0x000003B6 adds r1, r4, r2 add r1, r8 ldrh r0, [r1] adds r0, #1 movs r3, #0 mov sl, r3 movs r5, #0 mov sb, r5 strh r0, [r1] lsls r0, r7, #2 adds r5, r4, r0 movs r6, #0xf1 lsls r6, r6, #2 adds r2, r5, r6 ldrh r3, [r2] movs r0, #0 ldrsh r1, [r2, r0] ldr r0, _08033BDC @ =0x0000031F cmp r1, r0 bgt _08033BE8 adds r0, r3, #3 strh r0, [r2] ldr r2, _08033BE0 @ =0x086AE5EC ldr r3, _08033BE4 @ =0x000003A3 adds r0, r4, r3 adds r6, r0, r7 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r5, #0 ldrsh r1, [r0, r5] adds r3, #0xd adds r0, r4, r3 mov r4, r8 adds r5, r0, r4 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 bgt _08033C12 mov r0, sb strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033BD4 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033BE4 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r7 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xa ble _08033C50 movs r0, #7 strb r0, [r1] b _08033C50 .align 2, 0 _08033BD4: .4byte 0x020314E0 _08033BD8: .4byte 0x000003B6 _08033BDC: .4byte 0x0000031F _08033BE0: .4byte 0x086AE5EC _08033BE4: .4byte 0x000003A3 _08033BE8: ldr r2, _08033C18 @ =0x086AE5EC ldr r3, _08033C1C @ =0x000003A3 adds r0, r4, r3 adds r6, r0, r7 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r5, #0 ldrsh r1, [r0, r5] adds r3, #0xd adds r0, r4, r3 mov r4, r8 adds r5, r0, r4 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 ble _08033C20 _08033C12: adds r0, #1 strh r0, [r5] b _08033C50 .align 2, 0 _08033C18: .4byte 0x086AE5EC _08033C1C: .4byte 0x000003A3 _08033C20: mov r0, sb strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033C74 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033C78 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r7 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd ble _08033C50 mov r4, sl strb r4, [r1] ldr r5, _08033C74 @ =0x020314E0 ldr r0, [r5] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r7 movs r1, #2 strb r1, [r0] _08033C50: ldr r0, _08033C74 @ =0x020314E0 ldr r0, [r0] ldr r2, [sp, #4] asrs r1, r2, #0x10 ldr r4, _08033C78 @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033C74: .4byte 0x020314E0 _08033C78: .4byte 0x000003A3 _08033C7C: ldr r3, _08033D0C @ =0x086AE5EC ldr r6, _08033D10 @ =0x020314E0 ldr r2, [r6] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r0, _08033D14 @ =0x000003A3 adds r2, r2, r0 adds r2, r2, r4 movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r3, #4 adds r0, r0, r3 ldrh r7, [r0] movs r3, #0 movs r0, #0xe strb r0, [r2] ldr r5, [r6] lsls r1, r4, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r5, r2 adds r0, r0, r1 movs r2, #0 strh r3, [r0] movs r3, #0xe8 lsls r3, r3, #2 adds r0, r5, r3 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r6] movs r5, #0xeb lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r1, _08033D18 @ =0x000003A9 adds r0, r0, r1 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r2, _08033D1C @ =0x00000396 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08033CEE subs r0, r2, #1 strb r0, [r1] _08033CEE: ldr r1, [r6] ldr r0, _08033D20 @ =0x000186A0 str r0, [r1, #0x3c] ldr r3, _08033D24 @ =0x00000385 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xf2 bl m4aSongNumStart movs r0, #7 bl sub_11B0 b _08033FD8 .align 2, 0 _08033D0C: .4byte 0x086AE5EC _08033D10: .4byte 0x020314E0 _08033D14: .4byte 0x000003A3 _08033D18: .4byte 0x000003A9 _08033D1C: .4byte 0x00000396 _08033D20: .4byte 0x000186A0 _08033D24: .4byte 0x00000385 _08033D28: ldr r3, _08033D60 @ =0x086AE5EC ldr r4, _08033D64 @ =0x020314E0 ldr r2, [r4] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r6, _08033D68 @ =0x000003A3 adds r0, r2, r6 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r4, #1 movs r6, #0xec lsls r6, r6, #2 adds r2, r2, r6 adds r2, r2, r0 ldrh r0, [r2] cmp r1, r0 ble _08033D6C adds r0, #1 strh r0, [r2] b _08033DA8 .align 2, 0 _08033D60: .4byte 0x086AE5EC _08033D64: .4byte 0x020314E0 _08033D68: .4byte 0x000003A3 _08033D6C: movs r6, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r1, _08033DEC @ =0x020314E0 ldr r0, [r1] ldr r2, _08033DF0 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf ble _08033DA8 movs r0, #0xf strb r0, [r1] ldr r5, _08033DEC @ =0x020314E0 ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r4 movs r1, #9 strb r1, [r0] ldr r0, [r5] adds r2, #3 adds r0, r0, r2 adds r0, r0, r4 strb r6, [r0] _08033DA8: ldr r6, _08033DEC @ =0x020314E0 ldr r1, [r6] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r5, _08033DF0 @ =0x000003A3 adds r0, r1, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _08033DCE movs r0, #0xeb lsls r0, r0, #2 adds r1, r1, r0 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08033DCE: ldr r0, [r6] adds r0, r0, r5 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033DEC: .4byte 0x020314E0 _08033DF0: .4byte 0x000003A3 _08033DF4: ldr r5, _08033E14 @ =0x020314E0 ldr r4, [r5] ldr r1, [sp, #4] asrs r3, r1, #0x10 lsls r1, r3, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r4, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #5 bhi _08033E18 adds r0, #1 strh r0, [r1] movs r3, #3 b _08033E8E .align 2, 0 _08033E14: .4byte 0x020314E0 _08033E18: movs r2, #0 movs r0, #0 strh r0, [r1] ldr r6, _08033E64 @ =0x000003A3 adds r0, r4, r6 adds r0, r0, r3 movs r1, #0x12 strb r1, [r0] ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r5] ldr r4, _08033E68 @ =0x000003A9 adds r0, r0, r4 adds r0, r0, r3 strb r2, [r0] ldr r0, [r5] ldr r5, _08033E6C @ =0x00000396 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08033E54 subs r0, r2, #1 strb r0, [r1] _08033E54: movs r6, #3 str r6, [sp] movs r7, #3 movs r0, #0xf3 bl m4aSongNumStart b _08033FD8 .align 2, 0 _08033E64: .4byte 0x000003A3 _08033E68: .4byte 0x000003A9 _08033E6C: .4byte 0x00000396 _08033E70: ldr r5, _08033E94 @ =0x020314E0 ldr r4, [r5] ldr r0, [sp, #4] asrs r3, r0, #0x10 lsls r1, r3, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r4, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #5 bhi _08033E98 adds r0, #1 strh r0, [r1] movs r3, #9 _08033E8E: str r3, [sp] movs r7, #3 b _08033FD8 .align 2, 0 _08033E94: .4byte 0x020314E0 _08033E98: movs r2, #0 movs r0, #0 strh r0, [r1] ldr r6, _08033EE4 @ =0x000003A3 adds r0, r4, r6 adds r0, r0, r3 movs r1, #0x12 strb r1, [r0] ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r5] ldr r4, _08033EE8 @ =0x000003A9 adds r0, r0, r4 adds r0, r0, r3 strb r2, [r0] ldr r0, [r5] ldr r5, _08033EEC @ =0x00000396 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08033ED4 subs r0, r2, #1 strb r0, [r1] _08033ED4: movs r0, #0xf3 bl m4aSongNumStart movs r6, #9 str r6, [sp] movs r7, #3 b _08033FD8 .align 2, 0 _08033EE4: .4byte 0x000003A3 _08033EE8: .4byte 0x000003A9 _08033EEC: .4byte 0x00000396 _08033EF0: ldr r3, _08033F28 @ =0x086AE5EC ldr r0, _08033F2C @ =0x020314E0 ldr r2, [r0] ldr r1, [sp, #4] asrs r4, r1, #0x10 ldr r5, _08033F30 @ =0x000003A3 adds r0, r2, r5 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r4, #1 movs r6, #0xec lsls r6, r6, #2 adds r2, r2, r6 adds r2, r2, r0 ldrh r0, [r2] cmp r1, r0 ble _08033F34 adds r0, #1 strh r0, [r2] b _08033F64 .align 2, 0 _08033F28: .4byte 0x086AE5EC _08033F2C: .4byte 0x020314E0 _08033F30: .4byte 0x000003A3 _08033F34: movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r1, _08033F88 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033F8C @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x19 ble _08033F64 movs r0, #0x19 strb r0, [r1] ldr r5, _08033F88 @ =0x020314E0 ldr r0, [r5] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r4 movs r1, #9 strb r1, [r0] _08033F64: ldr r0, _08033F88 @ =0x020314E0 ldr r0, [r0] ldr r2, [sp, #4] asrs r1, r2, #0x10 ldr r4, _08033F8C @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033F88: .4byte 0x020314E0 _08033F8C: .4byte 0x000003A3 _08033F90: ldr r3, _0803401C @ =0x020314E0 ldr r0, [r3] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r6, _08034020 @ =0x000003A6 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r0, [r3] ldr r2, _08034024 @ =0x000003A9 adds r0, r0, r2 adds r0, r0, r4 strb r1, [r0] ldr r0, [r3] movs r5, #0xe8 lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r4 strb r1, [r0] ldr r2, _08034028 @ =0x086AE5EC ldr r0, [r3] subs r6, #3 adds r0, r0, r6 adds r0, r0, r4 _08033FC2: movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r1, [r1] str r1, [sp] adds r2, #4 adds r0, r0, r2 _08033FD6: ldrh r7, [r0] _08033FD8: ldr r2, _0803401C @ =0x020314E0 ldr r3, [r2] ldr r0, [sp, #4] asrs r6, r0, #0x10 lsls r1, r6, #1 ldr r4, _0803402C @ =0x000003B6 adds r0, r3, r4 adds r5, r0, r1 adds r4, #6 adds r0, r3, r4 adds r0, r0, r1 ldrh r1, [r5] ldrh r0, [r0] cmp r1, r0 bls _0803404C ldr r1, _08034030 @ =0x00000385 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bgt _0803404C movs r0, #0 strh r0, [r5] movs r2, #0xe8 lsls r2, r2, #2 adds r0, r3, r2 adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bne _08034034 movs r0, #6 b _08034036 .align 2, 0 _0803401C: .4byte 0x020314E0 _08034020: .4byte 0x000003A6 _08034024: .4byte 0x000003A9 _08034028: .4byte 0x086AE5EC _0803402C: .4byte 0x000003B6 _08034030: .4byte 0x00000385 _08034034: movs r0, #7 _08034036: strb r0, [r1] ldr r3, _080340D8 @ =0x020314E0 ldr r0, [r3] ldr r4, [sp, #4] asrs r1, r4, #0xf movs r5, #0xec lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _0803404C: ldr r6, _080340D8 @ =0x020314E0 ldr r0, [r6] ldr r1, [sp, #4] asrs r5, r1, #0x10 ldr r2, _080340DC @ =0x00000397 adds r1, r0, r2 adds r1, r1, r5 adds r2, #3 adds r0, r0, r2 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [r6] adds r0, r0, r2 adds r0, r0, r5 strb r7, [r0] ldr r0, [r6] ldr r3, _080340E0 @ =0x0000039D adds r0, r0, r3 adds r0, r0, r5 mov r4, sp ldrb r4, [r4] strb r4, [r0] ldr r4, [r6] lsls r0, r5, #2 adds r4, r4, r0 movs r6, #0xf1 lsls r6, r6, #2 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xd0 movs r2, #0xf4 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] ldr r3, _080340E4 @ =0x000003C6 adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x42 ldr r1, _080340E8 @ =0x000003D2 adds r4, r4, r1 strh r0, [r4] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 bgt _080340C8 bl _08033752 _080340C8: add sp, #8 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 _080340D8: .4byte 0x020314E0 _080340DC: .4byte 0x00000397 _080340E0: .4byte 0x0000039D _080340E4: .4byte 0x000003C6 _080340E8: .4byte 0x000003D2 thumb_func_start sub_340EC sub_340EC: @ 0x080340EC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 movs r4, #0 _080340FA: ldr r0, _08034198 @ =0x020314E0 ldr r5, [r0] lsls r4, r4, #0x10 asrs r3, r4, #0x10 ldr r1, _0803419C @ =0x00000397 adds r0, r5, r1 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #0x10 ldr r2, _080341A0 @ =0x040000D4 lsrs r7, r1, #0x10 mov r8, r7 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _080341A4 @ =0x08510E4C adds r0, r0, r1 str r0, [r2] lsls r7, r3, #2 adds r0, r7, r3 lsls r0, r0, #7 ldr r1, _080341A8 @ =0x06010920 adds r0, r0, r1 str r0, [r2, #4] ldr r0, _080341AC @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _080341B0 @ =0x0000039D adds r0, r5, r2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 movs r0, #0xb8 adds r1, r3, #0 muls r1, r0, r1 ldr r0, _080341B4 @ =0x0200B8C0 adds r6, r1, r0 ldr r1, _080341B8 @ =0x000003A6 adds r0, r5, r1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r4 cmp r0, #0 beq _080341C0 adds r4, r5, r7 adds r2, #0x27 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r0, #0x6c adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldr r7, _080341BC @ =0x000003C6 adds r4, r4, r7 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r0, #0x1c adds r1, r5, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 b _080341C6 .align 2, 0 _08034198: .4byte 0x020314E0 _0803419C: .4byte 0x00000397 _080341A0: .4byte 0x040000D4 _080341A4: .4byte 0x08510E4C _080341A8: .4byte 0x06010920 _080341AC: .4byte 0x80000140 _080341B0: .4byte 0x0000039D _080341B4: .4byte 0x0200B8C0 _080341B8: .4byte 0x000003A6 _080341BC: .4byte 0x000003C6 _080341C0: movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xb4 _080341C6: strh r0, [r6, #4] mov r2, r8 lsls r0, r2, #0x10 asrs r5, r0, #0x10 cmp r5, #6 beq _080341D4 b _08034368 _080341D4: ldr r3, _0803420C @ =0x020314E0 ldr r0, [r3] mov r7, sl asrs r1, r7, #0x10 movs r2, #0xeb lsls r2, r2, #2 adds r0, r0, r2 adds r1, r0, r1 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bgt _08034210 adds r4, r0, #0 lsls r0, r4, #7 movs r1, #6 bl __divsi3 movs r3, #0x80 lsls r3, r3, #1 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 subs r4, r5, r4 lsls r4, r4, #7 adds r0, r4, #0 movs r1, #6 b _08034238 .align 2, 0 _0803420C: .4byte 0x020314E0 _08034210: movs r4, #0 ldrsb r4, [r1, r4] movs r1, #0x18 subs r1, r1, r4 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 subs r0, r0, r1 lsls r0, r0, #4 movs r1, #0x12 bl __divsi3 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 subs r4, #6 lsls r0, r4, #3 subs r0, r0, r4 lsls r0, r0, #6 movs r1, #0x12 _08034238: bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r0, r7, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0x10 mov r5, sl asrs r4, r5, #0x10 adds r5, r4, #2 lsls r2, r5, #0x10 asrs r2, r2, #0x10 bl sub_7C0 ldrh r0, [r6, #2] subs r0, #0x10 strh r0, [r6, #2] ldrh r0, [r6, #4] subs r0, #0x10 strh r0, [r6, #4] movs r2, #0 mov r7, sb lsls r0, r7, #0x10 ldr r7, _08034350 @ =0x03005000 asrs r1, r0, #0x10 mov ip, r4 mov sb, r5 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 _0803427A: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r7 lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #1 ldr r1, _08034354 @ =0x086BA0A0 adds r0, r0, r1 mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 str r3, [sp, #0xc] ldrh r2, [r3, #2] lsls r0, r2, #0x17 lsrs r0, r0, #0x17 str r0, [sp, #8] movs r1, #2 ldrsh r0, [r6, r1] ldr r3, [sp, #8] adds r0, r3, r0 ldr r1, _08034358 @ =0x000001FF ands r0, r1 ldr r3, _0803435C @ =0xFFFFFE00 ands r2, r3 orrs r2, r0 ldr r0, [sp, #0xc] strh r2, [r0, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 str r3, [sp, #0xc] ldrh r0, [r3, #4] mov r3, sp strh r0, [r3, #0x10] adds r2, r0, #0 lsls r1, r2, #0x16 lsrs r1, r1, #0x16 strh r1, [r3] mov r3, ip lsls r0, r3, #2 add r0, ip lsls r0, r0, #2 str r0, [sp, #8] mov r0, sp ldrh r2, [r0] ldr r0, [sp, #8] adds r1, r2, r0 ldr r3, _08034360 @ =0x000003FF ands r1, r3 mov r0, sp ldrh r2, [r0, #0x10] ldr r0, _08034364 @ =0xFFFFFC00 ands r2, r0 orrs r2, r1 ldr r1, [sp, #0xc] strh r2, [r1, #4] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r7 ldrb r1, [r0, #1] movs r2, #3 orrs r1, r2 strb r1, [r0, #1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #7 mov r1, sb ands r1, r0 lsls r1, r1, #1 ldrb r0, [r3, #3] movs r5, #0xf rsbs r5, r5, #0 adds r2, r5, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0803427A b _08034416 .align 2, 0 _08034350: .4byte 0x03005000 _08034354: .4byte 0x086BA0A0 _08034358: .4byte 0x000001FF _0803435C: .4byte 0xFFFFFE00 _08034360: .4byte 0x000003FF _08034364: .4byte 0xFFFFFC00 _08034368: movs r2, #0 mov r7, sb lsls r0, r7, #0x10 ldr r1, _08034438 @ =0x086BA0A0 mov sb, r1 ldr r3, _0803443C @ =0x03005000 mov ip, r3 asrs r1, r0, #0x10 mov r5, sl asrs r5, r5, #0x10 str r5, [sp, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 _08034386: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r7, ip adds r2, r0, r7 lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #1 add r0, sb mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r3, [r5] lsls r3, r3, #3 add r3, ip ldrh r2, [r3, #2] lsls r0, r2, #0x17 lsrs r0, r0, #0x17 movs r7, #2 ldrsh r1, [r6, r7] adds r0, r0, r1 ldr r7, _08034440 @ =0x000001FF adds r1, r7, #0 ands r0, r1 ldr r7, _08034444 @ =0xFFFFFE00 adds r1, r7, #0 ands r2, r1 orrs r2, r0 strh r2, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 add r3, ip ldrh r2, [r3, #4] lsls r1, r2, #0x16 lsrs r1, r1, #0x16 ldr r5, [sp, #4] lsls r0, r5, #2 adds r0, r0, r5 lsls r0, r0, #2 adds r1, r1, r0 ldr r7, _08034448 @ =0x000003FF adds r0, r7, #0 ands r1, r0 ldr r5, _0803444C @ =0xFFFFFC00 adds r0, r5, #0 ands r2, r0 orrs r2, r1 strh r2, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08034386 _08034416: movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _08034426 b _080340FA _08034426: add sp, #0x14 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 _08034438: .4byte 0x086BA0A0 _0803443C: .4byte 0x03005000 _08034440: .4byte 0x000001FF _08034444: .4byte 0xFFFFFE00 _08034448: .4byte 0x000003FF _0803444C: .4byte 0xFFFFFC00 thumb_func_start sub_34450 sub_34450: @ 0x08034450 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov sb, r0 ldr r1, _08034488 @ =0x0200BDC8 str r1, [sp] ldr r1, _0803448C @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r1 cmp r0, #8 bls _0803447E bl _08034D7E _0803447E: lsls r0, r0, #2 ldr r1, _08034490 @ =_08034494 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034488: .4byte 0x0200BDC8 _0803448C: .4byte 0x020314E0 _08034490: .4byte _08034494 _08034494: @ jump table .4byte _080344B8 @ case 0 .4byte _08034510 @ case 1 .4byte _080345F0 @ case 2 .4byte _080346D8 @ case 3 .4byte _080348CA @ case 4 .4byte _08034910 @ case 5 .4byte _08034998 @ case 6 .4byte _08034A7C @ case 7 .4byte _08034CD0 @ case 8 _080344B8: ldr r3, _08034500 @ =0x020314E0 ldr r1, [r3] movs r4, #0xfa lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0xdc lsls r0, r0, #2 strh r0, [r2] ldr r5, _08034504 @ =0x000003EA adds r2, r1, r5 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r2] movs r6, #0xf7 lsls r6, r6, #2 adds r1, r1, r6 movs r4, #1 strb r4, [r1] ldr r1, [r3] ldr r7, _08034508 @ =0x000003E6 adds r2, r1, r7 movs r0, #0xb8 strh r0, [r2] ldr r0, _0803450C @ =0x000003E2 adds r2, r1, r0 movs r0, #0x15 strh r0, [r2] movs r2, #0 mov sb, r2 movs r3, #0xa5 lsls r3, r3, #2 adds r1, r1, r3 strb r4, [r1] bl _08034D7E .align 2, 0 _08034500: .4byte 0x020314E0 _08034504: .4byte 0x000003EA _08034508: .4byte 0x000003E6 _0803450C: .4byte 0x000003E2 _08034510: ldr r0, _0803453C @ =0x086AE68E mov r5, sl ldr r4, [r5] ldr r6, _08034540 @ =0x000003E2 adds r3, r4, r6 movs r7, #0 ldrsh r1, [r3, r7] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r2, #0 ldrsh r0, [r1, r2] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r4, r5 ldrh r2, [r1] cmp r0, r2 ble _08034544 adds r0, r2, #1 strh r0, [r1] b _080345DC .align 2, 0 _0803453C: .4byte 0x086AE68E _08034540: .4byte 0x000003E2 _08034544: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1c ble _08034582 movs r0, #0x15 strh r0, [r3] movs r6, #0xf8 lsls r6, r6, #2 adds r1, r4, r6 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08034570 adds r0, r2, #1 strb r0, [r1] b _08034582 _08034570: movs r0, #0 strb r0, [r1] mov r7, sl ldr r0, [r7] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] _08034582: ldr r4, _080345E4 @ =0x020314E0 ldr r1, [r4] ldr r5, _080345E8 @ =0x000003E2 adds r0, r1, r5 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x17 bne _080345B2 ldr r3, _080345EC @ =0x00000129 adds r1, r1, r3 movs r0, #0 strb r0, [r1] ldr r0, [r4] movs r6, #0x94 lsls r6, r6, #1 adds r0, r0, r6 movs r1, #1 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080345B2: ldr r1, [r4] adds r0, r1, r5 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0x1b bne _080345DC ldr r2, _080345EC @ =0x00000129 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r3, #0x94 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080345DC: movs r4, #0 mov sb, r4 b _08034D7E .align 2, 0 _080345E4: .4byte 0x020314E0 _080345E8: .4byte 0x000003E2 _080345EC: .4byte 0x00000129 _080345F0: mov r5, sl ldr r4, [r5] movs r6, #0xf9 lsls r6, r6, #2 adds r3, r4, r6 ldrh r0, [r3] cmp r0, #0xff bhi _08034670 ldr r2, _08034660 @ =0x08137D40 adds r1, r0, #0 movs r0, #0x3f ands r0, r1 lsrs r0, r0, #4 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 adds r1, #1 movs r5, #0 strh r1, [r3] lsls r1, r1, #0x10 movs r0, #0x80 lsls r0, r0, #0x11 cmp r1, r0 bne _08034670 movs r7, #0xf7 lsls r7, r7, #2 adds r1, r4, r7 movs r0, #3 strb r0, [r1] mov r0, sl ldr r1, [r0] adds r0, r1, r6 strh r5, [r0] movs r2, #0xf8 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 ble _08034646 movs r0, #0 strb r0, [r1] _08034646: mov r3, sl ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08034668 ldr r4, _08034664 @ =0x000003E2 adds r0, r1, r4 strh r5, [r0] b _08034670 .align 2, 0 _08034660: .4byte 0x08137D40 _08034664: .4byte 0x000003E2 _08034668: ldr r5, _0803468C @ =0x000003E2 adds r1, r1, r5 movs r0, #7 strh r0, [r1] _08034670: mov r6, sl ldr r3, [r6] ldr r7, _08034690 @ =0x000003E6 adds r1, r3, r7 ldrh r0, [r1] movs r4, #0 ldrsh r2, [r1, r4] cmp r2, #0 ble _080346BC cmp r2, #0x40 ble _08034694 subs r0, #1 b _08034696 .align 2, 0 _0803468C: .4byte 0x000003E2 _08034690: .4byte 0x000003E6 _08034694: subs r0, #2 _08034696: strh r0, [r1] ldr r0, _080346B4 @ =0x020314E0 ldr r0, [r0] ldr r5, _080346B8 @ =0x000003E6 adds r0, r0, r5 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0x9a beq _080346AA b _08034D7E _080346AA: movs r0, #0xf5 bl m4aSongNumStart b _08034D7E .align 2, 0 _080346B4: .4byte 0x020314E0 _080346B8: .4byte 0x000003E6 _080346BC: ldr r7, _080346D4 @ =0x00000387 adds r0, r3, r7 movs r1, #2 strb r1, [r0] mov r2, sl ldr r0, [r2] movs r3, #0xa5 lsls r3, r3, #2 adds r0, r0, r3 strb r1, [r0] b _08034D7E .align 2, 0 _080346D4: .4byte 0x00000387 _080346D8: ldr r0, _08034704 @ =0x086AE68E mov r4, sl ldr r3, [r4] ldr r4, _08034708 @ =0x000003E2 adds r6, r3, r4 movs r5, #0 ldrsh r1, [r6, r5] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r7, #0 ldrsh r0, [r1, r7] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r3, r5 ldrh r2, [r1] cmp r0, r2 ble _0803470C adds r0, r2, #1 strh r0, [r1] b _080347F0 .align 2, 0 _08034704: .4byte 0x086AE68E _08034708: .4byte 0x000003E2 _0803470C: movs r7, #0 strh r7, [r1] movs r2, #0xf8 lsls r2, r2, #2 adds r1, r3, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08034758 ldrh r0, [r6] adds r0, #1 strh r0, [r6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _08034796 strh r7, [r6] ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r0, sl ldr r1, [r0] adds r0, r1, r2 ldrb r0, [r0] movs r2, #1 ands r2, r0 cmp r2, #0 bne _08034796 movs r3, #0xf7 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #2 strb r0, [r1] mov r4, sl ldr r0, [r4] adds r0, r0, r5 strh r2, [r0] b _08034796 _08034758: ldrh r0, [r6] subs r0, #1 strh r0, [r6] lsls r0, r0, #0x10 cmp r0, #0 bge _08034796 ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r6, sl ldr r1, [r6] adds r0, r1, r2 ldrb r0, [r0] movs r2, #1 ands r2, r0 cmp r2, #0 bne _08034790 movs r7, #0xf7 lsls r7, r7, #2 adds r1, r1, r7 movs r0, #2 strb r0, [r1] ldr r0, [r6] adds r1, r0, r5 strh r2, [r1] adds r0, r0, r4 strh r2, [r0] b _08034796 _08034790: adds r1, r1, r4 movs r0, #7 strh r0, [r1] _08034796: ldr r4, _08034840 @ =0x020314E0 ldr r1, [r4] ldr r5, _08034844 @ =0x000003E2 adds r0, r1, r5 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #2 bne _080347C6 ldr r3, _08034848 @ =0x00000129 adds r1, r1, r3 movs r0, #0 strb r0, [r1] ldr r0, [r4] movs r6, #0x94 lsls r6, r6, #1 adds r0, r0, r6 movs r1, #1 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080347C6: ldr r1, [r4] adds r0, r1, r5 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #6 bne _080347F0 ldr r2, _08034848 @ =0x00000129 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r3, #0x94 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080347F0: ldr r1, _0803484C @ =0x086AE68E ldr r7, _08034840 @ =0x020314E0 ldr r4, [r7] ldr r5, _08034844 @ =0x000003E2 mov r8, r5 adds r3, r4, r5 movs r6, #0 ldrsh r0, [r3, r6] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] mov sb, r0 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 bne _08034812 b _08034D7E _08034812: cmp r0, #4 bne _08034818 b _08034D7E _08034818: movs r6, #0xf8 lsls r6, r6, #2 adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08034880 adds r5, #8 adds r2, r4, r5 ldrh r5, [r2] movs r0, #0 ldrsh r1, [r2, r0] ldr r0, _08034850 @ =0x00000247 cmp r1, r0 bgt _08034854 adds r0, r5, #1 strh r0, [r2] b _08034D7E .align 2, 0 _08034840: .4byte 0x020314E0 _08034844: .4byte 0x000003E2 _08034848: .4byte 0x00000129 _0803484C: .4byte 0x086AE68E _08034850: .4byte 0x00000247 _08034854: ldrh r3, [r3] movs r0, #3 ands r3, r0 cmp r3, #0 beq _08034860 b _08034D7E _08034860: movs r1, #0xf7 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #2 strb r2, [r0] ldr r0, [r7] movs r4, #0xf9 lsls r4, r4, #2 adds r1, r0, r4 strh r3, [r1] mov r5, r8 adds r1, r0, r5 strh r3, [r1] adds r0, r0, r6 strb r2, [r0] b _08034D7E _08034880: ldr r0, _08034898 @ =0x000003EA adds r2, r4, r0 ldrh r5, [r2] movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x96 lsls r0, r0, #1 cmp r1, r0 ble _0803489C subs r0, r5, #1 strh r0, [r2] b _08034D7E .align 2, 0 _08034898: .4byte 0x000003EA _0803489C: ldrh r2, [r3] movs r0, #3 ands r2, r0 cmp r2, #0 beq _080348A8 b _08034D7E _080348A8: movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #2 strb r0, [r1] ldr r1, [r7] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] mov r5, r8 adds r0, r1, r5 strh r2, [r0] adds r1, r1, r6 movs r0, #4 strb r0, [r1] b _08034D7E _080348CA: ldr r4, _08034904 @ =0x020314E0 ldr r1, [r4] movs r6, #0xf9 lsls r6, r6, #2 adds r0, r1, r6 movs r5, #0 movs r2, #0 strh r2, [r0] ldr r7, _08034908 @ =0x000003E2 adds r0, r1, r7 strh r2, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #5 strb r0, [r1] movs r1, #7 mov sb, r1 movs r0, #0xf6 bl m4aSongNumStart ldr r0, [r4] ldr r2, _0803490C @ =0x00000387 adds r0, r0, r2 strb r5, [r0] movs r0, #7 bl sub_11B0 b _08034D7E .align 2, 0 _08034904: .4byte 0x020314E0 _08034908: .4byte 0x000003E2 _0803490C: .4byte 0x00000387 _08034910: mov r4, sl ldr r3, [r4] movs r5, #0xf9 lsls r5, r5, #2 adds r4, r3, r5 ldrh r0, [r4] cmp r0, #0x1b bhi _0803492A movs r6, #7 mov sb, r6 adds r0, #1 strh r0, [r4] b _08034D7E _0803492A: ldr r7, _08034960 @ =0x00000385 adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bgt _08034968 movs r2, #0 movs r1, #0 movs r0, #0x80 strh r0, [r4] ldr r4, _08034964 @ =0x000003E2 adds r0, r3, r4 strh r1, [r0] movs r5, #0xf7 lsls r5, r5, #2 adds r1, r3, r5 movs r0, #2 strb r0, [r1] mov r6, sl ldr r0, [r6] adds r7, #2 adds r0, r0, r7 strb r2, [r0] movs r0, #7 mov sb, r0 b _08034976 .align 2, 0 _08034960: .4byte 0x00000385 _08034964: .4byte 0x000003E2 _08034968: movs r2, #0xf7 lsls r2, r2, #2 adds r1, r3, r2 movs r0, #8 strb r0, [r1] movs r3, #7 mov sb, r3 _08034976: ldr r2, _0803498C @ =0x020314E0 ldr r1, [r2] ldr r4, _08034990 @ =0x00000385 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r2] ldr r0, _08034994 @ =0x000493E0 str r0, [r1, #0x3c] b _08034D7E .align 2, 0 _0803498C: .4byte 0x020314E0 _08034990: .4byte 0x00000385 _08034994: .4byte 0x000493E0 _08034998: ldr r5, _08034A64 @ =0x020314E0 mov r8, r5 ldr r1, [r5] ldr r6, _08034A68 @ =0x000003E2 adds r2, r1, r6 movs r3, #0 movs r0, #9 strh r0, [r2] movs r7, #0xf9 lsls r7, r7, #2 adds r0, r1, r7 strh r3, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #7 strb r0, [r1] ldr r0, [r5] ldr r1, _08034A6C @ =0x000005A6 adds r0, r0, r1 strh r3, [r0] movs r2, #8 mov sb, r2 movs r0, #0xf7 bl m4aSongNumStart ldr r4, [r5] movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r0, #0x20 movs r6, #0xa2 lsls r6, r6, #2 adds r5, r4, r6 strh r0, [r5] adds r7, #6 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x24 ldr r2, _08034A70 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] ldrh r1, [r5] lsls r1, r1, #8 ldr r3, _08034A74 @ =0x0000132C adds r2, r4, r3 ldr r3, [r2] ldr r2, [r3, #0x34] subs r1, r1, r2 lsls r1, r1, #0x10 lsls r0, r0, #8 ldr r2, [r3, #0x38] subs r0, r0, r2 lsls r0, r0, #0x10 lsrs r7, r1, #0x10 orrs r7, r0 ldr r6, _08034A78 @ =0x000005AC adds r4, r4, r6 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r5, r0, #0 muls r5, r0, r5 adds r0, r5, #0 asrs r5, r7, #0x10 adds r1, r5, #0 muls r1, r5, r1 adds r0, r0, r1 str r0, [r4] lsls r0, r0, #2 bl Sqrt mov r2, r8 ldr r1, [r2] adds r1, r1, r6 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] rsbs r0, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r5, #0 bl ArcTan2 mov r3, r8 ldr r1, [r3] movs r4, #0xb6 lsls r4, r4, #3 adds r1, r1, r4 strh r0, [r1] movs r0, #0xd bl sub_11B0 b _08034D7E .align 2, 0 _08034A64: .4byte 0x020314E0 _08034A68: .4byte 0x000003E2 _08034A6C: .4byte 0x000005A6 _08034A70: .4byte 0x0000028A _08034A74: .4byte 0x0000132C _08034A78: .4byte 0x000005AC _08034A7C: ldr r0, _08034AA8 @ =0x086AE68E mov r5, sl ldr r2, [r5] ldr r5, _08034AAC @ =0x000003E2 adds r4, r2, r5 movs r6, #0 ldrsh r1, [r4, r6] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r7, #0 ldrsh r0, [r1, r7] movs r1, #0xf9 lsls r1, r1, #2 mov r8, r1 adds r1, r2, r1 ldrh r3, [r1] cmp r0, r3 ble _08034AB0 adds r0, r3, #1 strh r0, [r1] b _08034B2C .align 2, 0 _08034AA8: .4byte 0x086AE68E _08034AAC: .4byte 0x000003E2 _08034AB0: movs r6, #0 movs r7, #0 strh r7, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf bne _08034AFA ldr r3, _08034B58 @ =0x0000132C adds r2, r2, r3 ldr r3, [r2] ldr r0, _08034B5C @ =gMain ldr r0, [r0, #0x4c] movs r1, #1 ands r0, r1 lsls r1, r0, #2 adds r1, r1, r0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 ldr r4, _08034B60 @ =0x0000FF6A adds r0, r0, r4 strh r0, [r3, #0x30] ldr r1, [r2] movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1, #0x32] ldr r0, [r2] strb r6, [r0] movs r0, #0xf8 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _08034AFA: mov r0, sl ldr r1, [r0] adds r0, r1, r5 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x10 bne _08034B0A strb r6, [r1, #0x1f] _08034B0A: mov r3, sl ldr r2, [r3] adds r3, r2, r5 movs r4, #0 ldrsh r0, [r3, r4] cmp r0, #0x10 ble _08034B2C mov r5, r8 adds r1, r2, r5 movs r0, #0x80 strh r0, [r1] strh r7, [r3] movs r6, #0xf7 lsls r6, r6, #2 adds r1, r2, r6 movs r0, #2 strb r0, [r1] _08034B2C: mov r7, sl ldr r1, [r7] adds r0, r1, #0 adds r0, #0x31 ldrb r0, [r0] cmp r0, #0 beq _08034B6C ldr r2, _08034B64 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x10 bne _08034B8C movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #4 bls _08034B8C ldr r5, _08034B68 @ =0x00000387 adds r1, r1, r5 b _08034B88 .align 2, 0 _08034B58: .4byte 0x0000132C _08034B5C: .4byte gMain _08034B60: .4byte 0x0000FF6A _08034B64: .4byte 0x000003E2 _08034B68: .4byte 0x00000387 _08034B6C: ldr r6, _08034CA8 @ =0x000003E2 adds r0, r1, r6 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0x10 bne _08034B8C movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 beq _08034B8C ldr r3, _08034CAC @ =0x00000387 adds r1, r1, r3 _08034B88: movs r0, #2 strb r0, [r1] _08034B8C: ldr r4, _08034CB0 @ =0x020314E0 ldr r7, [r4] ldr r5, _08034CB4 @ =0x000005A6 adds r0, r7, r5 ldrh r0, [r0] cmp r0, #0x1d bhi _08034C60 movs r4, #0x1d subs r4, r4, r0 movs r6, #0xb6 lsls r6, r6, #3 adds r5, r7, r6 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x1e bl __divsi3 ldr r1, _08034CB8 @ =0xFFFFE000 adds r2, r1, #0 adds r0, r0, r2 ldrh r1, [r5] subs r1, r1, r0 strh r1, [r5] ldr r6, _08034CBC @ =0x0000132C adds r0, r7, r6 ldr r0, [r0] ldrh r3, [r0, #0xa] adds r2, r2, r3 strh r2, [r0, #0xa] ldr r1, _08034CC0 @ =0x000005AC adds r0, r7, r1 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x1e bl __divsi3 mov sl, r0 ldrh r0, [r5] bl sub_C74 ldr r2, _08034CB0 @ =0x020314E0 ldr r5, [r2] adds r1, r5, r6 ldr r1, [r1] mov r8, r1 movs r3, #0xa2 lsls r3, r3, #2 adds r1, r5, r3 movs r7, #0 ldrsh r4, [r1, r7] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sl muls r1, r0, r1 adds r0, r1, #0 ldr r2, _08034CC4 @ =0x00004E20 mov sb, r2 mov r1, sb bl __divsi3 adds r4, r4, r0 mov r3, r8 str r4, [r3, #0x34] movs r4, #0xb6 lsls r4, r4, #3 adds r5, r5, r4 ldrh r0, [r5] bl sub_C24 ldr r5, _08034CB0 @ =0x020314E0 ldr r1, [r5] adds r6, r1, r6 ldr r5, [r6] ldr r7, _08034CC8 @ =0x0000028A adds r1, r1, r7 movs r2, #0 ldrsh r4, [r1, r2] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r3, sl muls r3, r0, r3 adds r0, r3, #0 mov r1, sb bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] ldr r4, [r6] movs r5, #0x30 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r6] movs r6, #0x32 ldrsh r0, [r4, r6] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] _08034C60: ldr r7, _08034CB0 @ =0x020314E0 ldr r1, [r7] ldr r2, _08034CB4 @ =0x000005A6 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x28 bne _08034C86 ldr r2, _08034CBC @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r3, #0 movs r0, #1 strb r0, [r1] ldr r0, [r7] adds r0, r0, r2 ldr r1, [r0] strh r3, [r1, #0x30] ldr r0, [r0] strh r3, [r0, #0x32] _08034C86: ldr r3, _08034CB0 @ =0x020314E0 ldr r1, [r3] ldr r4, _08034CB4 @ =0x000005A6 adds r2, r1, r4 ldrh r0, [r2] adds r0, #1 strh r0, [r2] ldr r2, _08034CCC @ =0x086AE68E ldr r5, _08034CA8 @ =0x000003E2 adds r1, r1, r5 movs r6, #0 ldrsh r0, [r1, r6] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 b _08034D7E .align 2, 0 _08034CA8: .4byte 0x000003E2 _08034CAC: .4byte 0x00000387 _08034CB0: .4byte 0x020314E0 _08034CB4: .4byte 0x000005A6 _08034CB8: .4byte 0xFFFFE000 _08034CBC: .4byte 0x0000132C _08034CC0: .4byte 0x000005AC _08034CC4: .4byte 0x00004E20 _08034CC8: .4byte 0x0000028A _08034CCC: .4byte 0x086AE68E _08034CD0: mov r7, sl ldr r0, [r7] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, _08034D24 @ =gMain movs r0, #0x80 strb r0, [r4, #0xf] ldr r1, [r7] ldr r2, _08034D28 @ =0x000003E6 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08034D06 movs r6, #0xe2 lsls r6, r6, #2 adds r1, r1, r6 movs r0, #2 strb r0, [r1] ldr r0, [r7] ldr r7, _08034D2C @ =0x00000392 adds r0, r0, r7 strh r5, [r0] _08034D06: movs r0, #0xf mov sb, r0 mov r1, sl ldr r3, [r1] adds r1, r3, r2 ldrh r0, [r1] movs r6, #0 ldrsh r2, [r1, r6] cmp r2, #0xb7 bgt _08034D60 cmp r2, #0x3f bgt _08034D30 adds r0, #1 b _08034D32 .align 2, 0 _08034D24: .4byte gMain _08034D28: .4byte 0x000003E6 _08034D2C: .4byte 0x00000392 _08034D30: adds r0, #2 _08034D32: strh r0, [r1] ldr r0, _08034D50 @ =0x020314E0 ldr r0, [r0] ldr r7, _08034D54 @ =0x000003E6 adds r0, r0, r7 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x1e bne _08034D7E ldr r0, _08034D58 @ =0x02032F20 ldr r1, _08034D5C @ =0x086A17D8 bl MPlayStart b _08034D7E .align 2, 0 _08034D50: .4byte 0x020314E0 _08034D54: .4byte 0x000003E6 _08034D58: .4byte 0x02032F20 _08034D5C: .4byte 0x086A17D8 _08034D60: movs r2, #0xc5 lsls r2, r2, #4 adds r0, r4, r2 strh r5, [r0] ldr r6, _08034E38 @ =0x00000D08 adds r0, r4, r6 strh r5, [r0] ldr r7, _08034E3C @ =0x00000B98 adds r0, r4, r7 strh r5, [r0] movs r0, #4 strb r0, [r3, #0x13] mov r1, sl ldr r0, [r1] strh r5, [r0, #0x18] _08034D7E: ldr r2, _08034E40 @ =0x040000D4 mov r3, sb lsls r0, r3, #0x10 asrs r5, r0, #0x10 lsls r0, r5, #0xb ldr r1, _08034E44 @ =0x084EDACC adds r0, r0, r1 str r0, [r2] ldr r0, _08034E48 @ =0x060110A0 str r0, [r2, #4] ldr r0, _08034E4C @ =0x80000400 str r0, [r2, #8] ldr r0, [r2, #8] ldr r4, _08034E50 @ =0x020314E0 ldr r6, [r4] mov r8, r6 movs r7, #0xfa lsls r7, r7, #2 add r7, r8 movs r1, #0 ldrsh r0, [r7, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x10 movs r1, #0xfc lsls r1, r1, #2 add r1, r8 strh r0, [r1] ldr r6, _08034E54 @ =0x000003EA add r6, r8 movs r2, #0 ldrsh r0, [r6, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x10 ldr r1, _08034E58 @ =0x000003F2 add r1, r8 strh r0, [r1] ldr r3, [sp] ldrh r0, [r3] mov sl, r4 cmp r0, #0 beq _08034EB4 mov r0, r8 adds r0, #0x58 ldrh r4, [r0] rsbs r4, r4, #0 movs r1, #0 ldrsh r0, [r7, r1] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r2, [sp] strh r4, [r2, #2] mov r0, r8 adds r0, #0x5a ldrh r4, [r0] rsbs r4, r4, #0 movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r6, [sp] strh r4, [r6, #4] adds r6, #8 cmp r5, #7 bne _08034E6C movs r0, #0xf9 lsls r0, r0, #2 add r0, r8 ldrh r0, [r0] cmp r0, #5 bhi _08034E60 ldr r3, _08034E5C @ =0x03005000 ldr r7, [sp] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r3 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x40 b _08034E7E .align 2, 0 _08034E38: .4byte 0x00000D08 _08034E3C: .4byte 0x00000B98 _08034E40: .4byte 0x040000D4 _08034E44: .4byte 0x084EDACC _08034E48: .4byte 0x060110A0 _08034E4C: .4byte 0x80000400 _08034E50: .4byte 0x020314E0 _08034E54: .4byte 0x000003EA _08034E58: .4byte 0x000003F2 _08034E5C: .4byte 0x03005000 _08034E60: ldr r3, _08034E68 @ =0x03005000 ldr r0, [sp] ldrh r2, [r0, #8] b _08034E72 .align 2, 0 _08034E68: .4byte 0x03005000 _08034E6C: ldr r3, _08034F28 @ =0x03005000 ldr r1, [sp] ldrh r2, [r1, #8] _08034E72: lsls r2, r2, #3 adds r2, r2, r3 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x30 _08034E7E: orrs r0, r1 strb r0, [r2, #5] adds r4, r3, #0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r6, r3] ldr r5, [sp] movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r3, _08034F2C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08034F30 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r5, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _08034EB4: ldr r4, _08034F34 @ =0x0200BC58 str r4, [sp] ldrh r0, [r4] adds r4, #0xb8 mov r8, r4 cmp r0, #0 bne _08034EC4 b _08034FC4 _08034EC4: mov r5, sl ldr r1, [r5] ldr r6, _08034F38 @ =0x00000386 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08034F40 adds r0, r1, #0 adds r0, #0x58 ldrh r4, [r0] rsbs r4, r4, #0 movs r7, #0xfa lsls r7, r7, #2 adds r0, r1, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r2, [sp] strh r4, [r2, #2] ldr r5, [r5] adds r0, r5, #0 adds r0, #0x5a ldrh r4, [r0] rsbs r4, r4, #0 ldr r3, _08034F3C @ =0x000003EA adds r0, r5, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r4, r4, r0 subs r7, #2 adds r5, r5, r7 movs r1, #0 ldrsh r0, [r5, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 subs r0, #0x5c adds r4, r4, r0 ldr r2, [sp] strh r4, [r2, #4] b _08034F4A .align 2, 0 _08034F28: .4byte 0x03005000 _08034F2C: .4byte 0x000001FF _08034F30: .4byte 0xFFFFFE00 _08034F34: .4byte 0x0200BC58 _08034F38: .4byte 0x00000386 _08034F3C: .4byte 0x000003EA _08034F40: movs r0, #0xf0 ldr r3, [sp] strh r0, [r3, #2] movs r0, #0xa0 strh r0, [r3, #4] _08034F4A: ldr r3, _08035060 @ =gMain ldr r1, [r3, #0x4c] movs r0, #3 ands r1, r0 ldr r2, _08035064 @ =0x040000D4 lsrs r1, r1, #1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #0xa ldr r1, _08035068 @ =0x08494E4C adds r0, r0, r1 str r0, [r2] ldr r0, _0803506C @ =0x06011AA0 str r0, [r2, #4] ldr r0, _08035070 @ =0x80000600 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 movs r4, #0xc5 lsls r4, r4, #4 adds r4, r4, r3 mov r8, r4 ldr r5, _08035074 @ =0x03005000 ldr r6, _08035078 @ =0xFFFFFE00 mov sb, r6 _08034F7C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r7, [sp] adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0803507C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08034F7C _08034FC4: mov r3, r8 str r3, [sp] ldrh r0, [r3] cmp r0, #0 bne _08034FD0 b _080350D4 _08034FD0: mov r5, sl ldr r4, [r5] movs r6, #0xfa lsls r6, r6, #2 adds r0, r4, r6 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r0, #0x10 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 ldr r1, [sp] strh r0, [r1, #2] ldr r4, [r5] ldr r2, _08035080 @ =0x000003E2 adds r0, r4, r2 ldrh r0, [r0] subs r0, #0xa lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bhi _08035098 ldr r3, _08035084 @ =0x000003EA adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r0, #0x14 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 ldr r6, [sp] strh r0, [r6, #4] mov r7, sl ldr r0, [r7] ldr r1, _08035088 @ =0x000005A6 adds r0, r0, r1 ldrh r0, [r0] movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0 mov sb, r2 cmp r0, #0xa ble _08035046 movs r3, #2 mov sb, r3 cmp r0, #0x11 bgt _08035046 movs r4, #1 mov sb, r4 _08035046: ldr r2, _08035064 @ =0x040000D4 mov r5, sb lsls r0, r5, #0x10 asrs r0, r0, #7 ldr r1, _0803508C @ =0x084FF30C adds r0, r0, r1 str r0, [r2] ldr r0, _08035090 @ =0x060118A0 str r0, [r2, #4] ldr r0, _08035094 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] b _0803509E .align 2, 0 _08035060: .4byte gMain _08035064: .4byte 0x040000D4 _08035068: .4byte 0x08494E4C _0803506C: .4byte 0x06011AA0 _08035070: .4byte 0x80000600 _08035074: .4byte 0x03005000 _08035078: .4byte 0xFFFFFE00 _0803507C: .4byte 0x000001FF _08035080: .4byte 0x000003E2 _08035084: .4byte 0x000003EA _08035088: .4byte 0x000005A6 _0803508C: .4byte 0x084FF30C _08035090: .4byte 0x060118A0 _08035094: .4byte 0x80000100 _08035098: movs r0, #0xb4 ldr r6, [sp] strh r0, [r6, #4] _0803509E: ldr r6, [sp] adds r6, #8 ldr r4, _080350E4 @ =0x03005000 ldr r7, [sp] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r5, _080350E8 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080350EC @ =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 r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _080350D4: 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 _080350E4: .4byte 0x03005000 _080350E8: .4byte 0x000001FF _080350EC: .4byte 0xFFFFFE00 thumb_func_start sub_350F0 sub_350F0: @ 0x080350F0 push {r4, r5, lr} ldr r5, _08035118 @ =0x020314E0 ldr r0, [r5] movs r1, #0x88 lsls r1, r1, #5 adds r0, r0, r1 movs r2, #0 movs r1, #1 strb r1, [r0] ldr r3, [r5] movs r4, #0x17 ldrsb r4, [r3, r4] cmp r4, #1 beq _08035138 cmp r4, #1 bgt _0803511C cmp r4, #0 beq _08035122 b _080351A0 .align 2, 0 _08035118: .4byte 0x020314E0 _0803511C: cmp r4, #2 beq _08035164 b _080351A0 _08035122: movs r0, #0x41 strh r0, [r3, #0x18] strb r1, [r3, #0x17] ldr r1, _08035134 @ =gMain ldrh r0, [r1, #0x38] movs r0, #0x9f strh r0, [r1, #0x38] b _080351A0 .align 2, 0 _08035134: .4byte gMain _08035138: ldrh r0, [r3, #0x18] cmp r0, #0 beq _080351A0 subs r0, #1 strh r0, [r3, #0x18] ldr r2, _08035160 @ =gMain ldrh r0, [r3, #0x18] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3, #0x18] cmp r0, #0 bne _080351A0 ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] b _080351A0 .align 2, 0 _08035160: .4byte gMain _08035164: ldrh r0, [r3, #0x18] cmp r0, #0x1d bhi _08035170 adds r0, #1 strh r0, [r3, #0x18] b _080351A0 _08035170: movs r0, #0 strh r2, [r3, #0x18] strb r0, [r3, #0x17] ldr r1, _08035194 @ =gMain movs r3, #0xe9 lsls r3, r3, #3 adds r0, r1, r3 strh r2, [r0] subs r3, #0xb8 adds r0, r1, r3 strh r2, [r0] ldrb r0, [r1, #5] ldrb r1, [r1, #4] cmp r0, r1 beq _08035198 bl sub_357B8 b _080351A0 .align 2, 0 _08035194: .4byte gMain _08035198: bl sub_438 ldr r0, [r5] strb r4, [r0, #0x1d] _080351A0: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_351A8 sub_351A8: @ 0x080351A8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 movs r4, #8 movs r0, #0 mov r8, r0 ldr r7, _080351F8 @ =0x0200B808 ldr r0, _080351FC @ =0x020314E0 ldr r1, [r0] movs r3, #0xe5 lsls r3, r3, #2 adds r2, r1, r3 ldrh r3, [r2] movs r5, #0 ldrsh r1, [r2, r5] mov sb, r0 cmp r1, #0 ble _080351E0 subs r0, r3, #6 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bge _080351E0 mov r6, r8 strh r6, [r2] _080351E0: ldr r1, _08035200 @ =gMain ldrb r0, [r1, #4] subs r0, #2 cmp r0, #4 bls _080351EC b _08035314 _080351EC: lsls r0, r0, #2 ldr r1, _08035204 @ =_08035208 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080351F8: .4byte 0x0200B808 _080351FC: .4byte 0x020314E0 _08035200: .4byte gMain _08035204: .4byte _08035208 _08035208: @ jump table .4byte _0803521C @ case 0 .4byte _08035250 @ case 1 .4byte _08035280 @ case 2 .4byte _080352B4 @ case 3 .4byte _080352E8 @ case 4 _0803521C: mov r0, sb ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _08035244 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _08035244 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08035244: ldr r1, _0803524C @ =0x01C9C380 mov r8, r1 b _08035314 .align 2, 0 _0803524C: .4byte 0x01C9C380 _08035250: mov r2, sb ldr r1, [r2] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _08035278 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _08035278 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08035278: ldr r3, _0803527C @ =0x01C9C380 b _08035312 .align 2, 0 _0803527C: .4byte 0x01C9C380 _08035280: mov r5, sb ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _080352A8 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _080352A8 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _080352A8: ldr r6, _080352B0 @ =0x02FAF080 mov r8, r6 b _08035314 .align 2, 0 _080352B0: .4byte 0x02FAF080 _080352B4: mov r0, sb ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _080352DC ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _080352DC movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _080352DC: ldr r1, _080352E4 @ =0x02FAF080 mov r8, r1 b _08035314 .align 2, 0 _080352E4: .4byte 0x02FAF080 _080352E8: mov r2, sb ldr r1, [r2] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _08035310 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _08035310 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08035310: ldr r3, _080354A0 @ =0x05F5E0FF _08035312: mov r8, r3 _08035314: ldr r2, _080354A4 @ =0x040000D4 ldr r0, _080354A8 @ =0x02031520 lsls r1, r4, #0x10 asrs r1, r1, #0xb ldr r0, [r0, #0x2c] adds r0, r0, r1 str r0, [r2] ldr r0, _080354AC @ =0x05000300 str r0, [r2, #4] ldr r0, _080354B0 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r0, [r7] cmp r0, #0 beq _080353F8 movs r0, #0x78 strh r0, [r7, #2] mov r5, sb ldr r0, [r5] movs r6, #0xe5 lsls r6, r6, #2 adds r0, r0, r6 ldrh r0, [r0] adds r0, #0x32 strh r0, [r7, #4] movs r0, #0 ldr r1, _080354B4 @ =0x0200B750 mov sl, r1 ldr r6, _080354B8 @ =0x03005000 ldr r2, _080354BC @ =0xFFFFFE00 mov ip, r2 _08035352: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080354C0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _08035352 mov r7, sl movs r0, #0x78 strh r0, [r7, #2] mov r3, sb ldr r0, [r3] movs r5, #0xe5 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] adds r0, #0x32 strh r0, [r7, #4] movs r0, #0 ldr r6, _080354B8 @ =0x03005000 ldr r1, _080354BC @ =0xFFFFFE00 mov ip, r1 _080353B4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080354C0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x11 ble _080353B4 _080353F8: mov r5, sp ldr r4, _080354C4 @ =0x00989680 mov r0, r8 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 ldr r4, _080354C8 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 ldr r4, _080354CC @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #4] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 ldr r4, _080354D0 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #6] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0xa] mov r4, sp mov r0, r8 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0xc] mov r4, sp mov r0, r8 movs r1, #0xa bl __modsi3 strh r0, [r4, #0xe] ldr r3, _080354D4 @ =gMain ldrb r0, [r3, #4] subs r0, #2 cmp r0, #4 bls _08035494 b _08035678 _08035494: lsls r0, r0, #2 ldr r1, _080354D8 @ =_080354DC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080354A0: .4byte 0x05F5E0FF _080354A4: .4byte 0x040000D4 _080354A8: .4byte 0x02031520 _080354AC: .4byte 0x05000300 _080354B0: .4byte 0x80000010 _080354B4: .4byte 0x0200B750 _080354B8: .4byte 0x03005000 _080354BC: .4byte 0xFFFFFE00 _080354C0: .4byte 0x000001FF _080354C4: .4byte 0x00989680 _080354C8: .4byte 0x000F4240 _080354CC: .4byte 0x000186A0 _080354D0: .4byte 0x00002710 _080354D4: .4byte gMain _080354D8: .4byte _080354DC _080354DC: @ jump table .4byte _080354F0 @ case 0 .4byte _0803553C @ case 1 .4byte _08035588 @ case 2 .4byte _080355D4 @ case 3 .4byte _08035620 @ case 4 _080354F0: movs r0, #0 ldr r5, _0803552C @ =0x08138834 ldr r3, _08035530 @ =0x040000D4 adds r4, r5, #0 _080354F8: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035534 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _08035538 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _080354F8 b _08035658 .align 2, 0 _0803552C: .4byte 0x08138834 _08035530: .4byte 0x040000D4 _08035534: .4byte 0x06017180 _08035538: .4byte 0x80000020 _0803553C: movs r0, #0 ldr r5, _08035578 @ =0x0813A854 ldr r3, _0803557C @ =0x040000D4 adds r4, r5, #0 _08035544: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035580 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _08035584 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _08035544 b _08035658 .align 2, 0 _08035578: .4byte 0x0813A854 _0803557C: .4byte 0x040000D4 _08035580: .4byte 0x06017180 _08035584: .4byte 0x80000020 _08035588: movs r0, #0 ldr r5, _080355C4 @ =0x0813C874 ldr r3, _080355C8 @ =0x040000D4 adds r4, r5, #0 _08035590: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _080355CC @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _080355D0 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _08035590 b _08035658 .align 2, 0 _080355C4: .4byte 0x0813C874 _080355C8: .4byte 0x040000D4 _080355CC: .4byte 0x06017180 _080355D0: .4byte 0x80000020 _080355D4: movs r0, #0 ldr r5, _08035610 @ =0x0813E894 ldr r3, _08035614 @ =0x040000D4 adds r4, r5, #0 _080355DC: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035618 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _0803561C @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _080355DC b _08035658 .align 2, 0 _08035610: .4byte 0x0813E894 _08035614: .4byte 0x040000D4 _08035618: .4byte 0x06017180 _0803561C: .4byte 0x80000020 _08035620: movs r0, #0 ldr r5, _08035688 @ =0x081408B4 ldr r3, _0803568C @ =0x040000D4 adds r4, r5, #0 _08035628: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035690 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _08035694 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _08035628 _08035658: mov r1, sb ldr r0, [r1] ldr r3, _08035698 @ =0x000005F6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, _0803568C @ =0x040000D4 adds r0, #0x71 lsls r0, r0, #6 adds r0, r0, r5 str r0, [r1] ldr r0, _0803569C @ =0x06017380 str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] _08035678: add sp, #0x10 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 _08035688: .4byte 0x081408B4 _0803568C: .4byte 0x040000D4 _08035690: .4byte 0x06017180 _08035694: .4byte 0x80000020 _08035698: .4byte 0x000005F6 _0803569C: .4byte 0x06017380 thumb_func_start sub_356A0 sub_356A0: @ 0x080356A0 push {r4, r5, r6, r7, lr} ldr r6, _080356C4 @ =0x0200BDC8 ldr r1, _080356C8 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r1, #0 cmp r0, #8 bhi _08035740 lsls r0, r0, #2 ldr r1, _080356CC @ =_080356D0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080356C4: .4byte 0x0200BDC8 _080356C8: .4byte 0x020314E0 _080356CC: .4byte _080356D0 _080356D0: @ jump table .4byte _08035702 @ case 0 .4byte _08035702 @ case 1 .4byte _080356F4 @ case 2 .4byte _08035740 @ case 3 .4byte _08035740 @ case 4 .4byte _08035740 @ case 5 .4byte _08035740 @ case 6 .4byte _08035740 @ case 7 .4byte _08035702 @ case 8 _080356F4: ldr r0, [r2] ldr r1, _080357A4 @ =0x000003E6 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 ble _08035740 _08035702: ldrh r0, [r6] cmp r0, #0 beq _08035740 movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldr r4, _080357A8 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] adds r1, #0xf0 ldr r3, _080357AC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080357B0 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _08035740: ldr r6, _080357B4 @ =0x0200BC58 ldrh r0, [r6] cmp r0, #0 beq _0803579C movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] movs r0, #0 ldr r7, _080357A8 @ =0x03005000 ldr r1, _080357B0 @ =0xFFFFFE00 mov ip, r1 _08035758: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080357AC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08035758 _0803579C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080357A4: .4byte 0x000003E6 _080357A8: .4byte 0x03005000 _080357AC: .4byte 0x000001FF _080357B0: .4byte 0xFFFFFE00 _080357B4: .4byte 0x0200BC58 thumb_func_start sub_357B8 sub_357B8: @ 0x080357B8 push {r4, r5, lr} bl m4aMPlayAllStop bl sub_D10 ldr r2, _08035844 @ =gMain ldrb r1, [r2, #5] ldrb r0, [r2, #4] movs r3, #0 strb r0, [r2, #5] strb r1, [r2, #4] strb r3, [r2, #6] strb r3, [r2, #0xf] ldr r4, _08035848 @ =0x020314E0 ldr r0, [r4] ldr r5, _0803584C @ =0x00000296 adds r1, r0, r5 movs r5, #0 strh r3, [r1] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] subs r1, #0x11 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #4 bls _080357F6 movs r0, #1 strb r0, [r2, #8] _080357F6: strb r5, [r2, #3] ldr r1, [r4] movs r0, #3 strb r0, [r1, #0x15] ldr r1, [r4] movs r0, #1 strb r0, [r1, #0x13] ldr r0, [r4] strb r5, [r0, #0x16] ldr r0, [r4] ldr r2, _08035850 @ =0x000005FA adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] adds r0, #0xe6 strh r3, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r1, _08035854 @ =0x000006C4 adds r0, r0, r1 strb r5, [r0] ldr r1, [r4] ldr r2, _08035858 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803583E ldr r5, _0803585C @ =0x000006EE adds r1, r1, r5 movs r0, #0x78 strh r0, [r1] _0803583E: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08035844: .4byte gMain _08035848: .4byte 0x020314E0 _0803584C: .4byte 0x00000296 _08035850: .4byte 0x000005FA _08035854: .4byte 0x000006C4 _08035858: .4byte 0x00000714 _0803585C: .4byte 0x000006EE thumb_func_start sub_35860 sub_35860: @ 0x08035860 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r3, _08035A5C @ =0x020314E0 ldr r0, [r3] movs r4, #0 movs r6, #0 strh r6, [r0, #0x18] strb r4, [r0, #0x17] ldr r0, [r3] strb r4, [r0, #0x13] ldr r0, [r3] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #1 mov r8, r2 mov r7, r8 strb r7, [r0] ldr r2, [r3] adds r5, r2, #0 adds r5, #0x6c movs r1, #0xe1 lsls r1, r1, #5 adds r0, r1, #0 ldrh r7, [r5] adds r0, r0, r7 ldr r7, _08035A60 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r6, [r5] ldr r0, _08035A64 @ =0x00000383 adds r2, r2, r0 strb r4, [r2] ldr r0, [r3] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r5, #3 strb r5, [r0] ldr r0, [r3] ldr r2, _08035A68 @ =0x00000392 adds r1, r0, r2 strh r6, [r1] ldr r7, _08035A6C @ =0x0000132C adds r0, r0, r7 ldr r0, [r0] mov r1, r8 strb r1, [r0] ldr r0, [r3] subs r2, #0xc adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] ldr r7, _08035A70 @ =0x000003F7 adds r0, r0, r7 strb r1, [r0] ldr r0, [r3] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 strb r4, [r0] ldr r1, [r3] subs r7, #0xf adds r2, r1, r7 ldr r0, _08035A74 @ =0x000002EE strh r0, [r2] adds r0, #0xfc adds r2, r1, r0 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r2] ldr r2, _08035A78 @ =0x000003DF adds r1, r1, r2 strb r5, [r1] ldr r0, [r3] subs r7, #0x63 adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] ldr r1, _08035A7C @ =0x00000387 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] subs r2, #0x4b adds r1, r0, r2 strh r6, [r1] adds r7, #0x59 adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] movs r1, #0xf8 lsls r1, r1, #2 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #0x4e adds r1, r0, r2 strh r6, [r1] adds r7, #6 adds r1, r0, r7 strh r6, [r1] movs r1, #0xfd lsls r1, r1, #2 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #0x13 adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] adds r7, #0x12 adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] adds r1, #4 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #5 adds r1, r0, r2 strh r6, [r1] adds r7, #6 adds r1, r0, r7 strh r6, [r1] ldr r1, _08035A80 @ =0x00000404 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #0xb adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] adds r7, #0xa adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] adds r2, #3 adds r1, r0, r2 strh r6, [r1] adds r7, #4 adds r1, r0, r7 strh r6, [r1] adds r2, #4 adds r1, r0, r2 strh r6, [r1] adds r7, #4 adds r1, r0, r7 strh r6, [r1] adds r2, #4 adds r1, r0, r2 strh r6, [r1] adds r7, #4 adds r0, r0, r7 strh r6, [r0] movs r2, #0 adds r6, r3, #0 adds r5, r6, #0 ldr r4, _08035A84 @ =0x0000041C movs r3, #0 _080359A0: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080359A0 movs r2, #0 ldr r5, _08035A5C @ =0x020314E0 movs r4, #0x84 lsls r4, r4, #3 movs r3, #0 _080359C2: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _080359C2 movs r2, #0 ldr r5, _08035A5C @ =0x020314E0 ldr r4, _08035A88 @ =0x0000042A movs r3, #0 _080359E2: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #6 ble _080359E2 ldr r1, [r6] movs r0, #0 strb r0, [r1, #0x1a] ldr r4, [r6] ldr r1, _08035A8C @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x3a ldr r7, _08035A90 @ =0x00000402 adds r4, r4, r7 strh r0, [r4] bl sub_38218 ldr r0, [r6] ldr r1, _08035A7C @ =0x00000387 adds r0, r0, r1 movs r1, #1 strb r1, [r0] bl sub_35D54 bl sub_36CB4 movs r0, #0x24 bl m4aSongNumStart bl sub_372B4 bl sub_3751C bl sub_37850 ldr r1, _08035A94 @ =0x040000D4 ldr r0, _08035A98 @ =0x081B36A4 str r0, [r1] ldr r0, _08035A9C @ =0x05000320 str r0, [r1, #4] ldr r0, _08035AA0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08035A5C: .4byte 0x020314E0 _08035A60: .4byte 0x00000296 _08035A64: .4byte 0x00000383 _08035A68: .4byte 0x00000392 _08035A6C: .4byte 0x0000132C _08035A70: .4byte 0x000003F7 _08035A74: .4byte 0x000002EE _08035A78: .4byte 0x000003DF _08035A7C: .4byte 0x00000387 _08035A80: .4byte 0x00000404 _08035A84: .4byte 0x0000041C _08035A88: .4byte 0x0000042A _08035A8C: .4byte 0x000003EA _08035A90: .4byte 0x00000402 _08035A94: .4byte 0x040000D4 _08035A98: .4byte 0x081B36A4 _08035A9C: .4byte 0x05000320 _08035AA0: .4byte 0x80000010 thumb_func_start sub_35AA4 sub_35AA4: @ 0x08035AA4 push {r4, r5, r6, lr} bl sub_38218 ldr r0, _08035AC4 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bls _08035ABA b _08035CB4 _08035ABA: lsls r0, r0, #2 ldr r1, _08035AC8 @ =_08035ACC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035AC4: .4byte 0x020314E0 _08035AC8: .4byte _08035ACC _08035ACC: @ jump table .4byte _08035AE0 @ case 0 .4byte _08035B5C @ case 1 .4byte _08035BCC @ case 2 .4byte _08035C34 @ case 3 .4byte _08035CA4 @ case 4 _08035AE0: ldr r1, _08035B10 @ =0x020314E0 ldr r0, [r1] ldr r2, _08035B14 @ =0x000005F7 adds r0, r0, r2 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r4, [r1] ldrh r0, [r4, #0x18] cmp r0, #0x77 bhi _08035B1C movs r1, #5 bl __udivsi3 ldr r1, _08035B18 @ =0x0000FFE8 adds r0, r0, r1 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] b _08035B28 .align 2, 0 _08035B10: .4byte 0x020314E0 _08035B14: .4byte 0x000005F7 _08035B18: .4byte 0x0000FFE8 _08035B1C: adds r0, r4, #0 adds r0, #0xe6 strh r3, [r0] strb r2, [r4, #0x13] ldr r0, [r1] strh r3, [r0, #0x18] _08035B28: ldr r0, _08035B4C @ =0x020314E0 ldr r0, [r0] ldr r2, _08035B50 @ =0x00000386 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035B3C b _08035CB4 _08035B3C: ldr r1, _08035B54 @ =gMain ldrh r0, [r1, #0x38] ldr r0, _08035B58 @ =0x00001C10 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] movs r0, #0x10 strh r0, [r1, #0x3a] b _08035CB4 .align 2, 0 _08035B4C: .4byte 0x020314E0 _08035B50: .4byte 0x00000386 _08035B54: .4byte gMain _08035B58: .4byte 0x00001C10 _08035B5C: ldr r0, _08035B9C @ =0x020314E0 ldr r2, [r0] ldr r4, _08035BA0 @ =0x00000386 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035B70 b _08035CB4 _08035B70: ldr r1, _08035BA4 @ =0x0000040E adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0 bne _08035BB0 adds r4, #0x74 adds r2, r2, r4 ldrh r1, [r2] movs r0, #0x10 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldrh r3, [r2] ldr r2, _08035BA8 @ =gMain ldrh r1, [r2, #0x38] ldr r1, _08035BAC @ =0x00001C10 strh r1, [r2, #0x38] lsls r3, r3, #8 orrs r0, r3 ldrh r1, [r2, #0x3a] strh r0, [r2, #0x3a] b _08035CB4 .align 2, 0 _08035B9C: .4byte 0x020314E0 _08035BA0: .4byte 0x00000386 _08035BA4: .4byte 0x0000040E _08035BA8: .4byte gMain _08035BAC: .4byte 0x00001C10 _08035BB0: ldr r1, _08035BC0 @ =gMain ldrh r0, [r1, #0x38] ldr r0, _08035BC4 @ =0x00001C42 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _08035BC8 @ =0x00000907 strh r0, [r1, #0x3a] b _08035CB4 .align 2, 0 _08035BC0: .4byte gMain _08035BC4: .4byte 0x00001C42 _08035BC8: .4byte 0x00000907 _08035BCC: ldr r2, _08035BDC @ =0x020314E0 ldr r3, [r2] ldrh r0, [r3, #0x18] cmp r0, #9 bhi _08035BE0 adds r0, #1 strh r0, [r3, #0x18] b _08035CB4 .align 2, 0 _08035BDC: .4byte 0x020314E0 _08035BE0: movs r1, #0 movs r0, #3 strb r0, [r3, #0x13] ldr r2, [r2] strh r1, [r2, #0x18] ldr r3, _08035C20 @ =gMain movs r1, #0xe9 lsls r1, r1, #3 adds r0, r3, r1 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _08035C24 @ =0x040000D4 ldr r0, _08035C28 @ =0x0813A854 str r0, [r1] ldr r0, _08035C2C @ =0x06015800 str r0, [r1, #4] ldr r0, _08035C30 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r2, r2, r0 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _08035CB4 .align 2, 0 _08035C20: .4byte gMain _08035C24: .4byte 0x040000D4 _08035C28: .4byte 0x0813A854 _08035C2C: .4byte 0x06015800 _08035C30: .4byte 0x80001000 _08035C34: bl sub_351A8 ldr r4, _08035C7C @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _08035C46 movs r0, #0xb5 strh r0, [r1, #0x18] _08035C46: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _08035C5C movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08035C80 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08035C84 @ =0x01C9C380 str r0, [r1, #0x3c] _08035C5C: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _08035C88 cmp r0, #0x14 bne _08035C72 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08035C72: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _08035CB4 .align 2, 0 _08035C7C: .4byte 0x020314E0 _08035C80: .4byte 0x00061A80 _08035C84: .4byte 0x01C9C380 _08035C88: movs r0, #0 strh r0, [r1, #0x18] movs r0, #4 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _08035CA0 @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08035CB4 .align 2, 0 _08035CA0: .4byte 0x00000283 _08035CA4: bl sub_351A8 ldr r0, _08035D3C @ =0x020314E0 ldr r0, [r0] ldr r4, _08035D40 @ =0x00000386 adds r0, r0, r4 movs r1, #1 strb r1, [r0] _08035CB4: bl sub_35D54 bl sub_36CB4 bl sub_372B4 bl sub_3751C ldr r6, _08035D3C @ =0x020314E0 ldr r1, [r6] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035D16 ldr r4, _08035D44 @ =0x00000296 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #1 bhi _08035D16 ldr r5, _08035D48 @ =gMain ldrb r4, [r5, #0xf] cmp r4, #0 bne _08035D16 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldr r0, [r6] ldr r1, _08035D4C @ =0x00000404 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] movs r2, #0x81 lsls r2, r2, #3 adds r1, r0, r2 movs r2, #0 strh r4, [r1] ldr r4, _08035D50 @ =0x00000406 adds r0, r0, r4 strb r2, [r0] ldrb r1, [r5, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r5, #0xf] _08035D16: ldr r0, _08035D3C @ =0x020314E0 ldr r0, [r0] ldr r1, _08035D40 @ =0x00000386 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035D2C bl sub_350F0 _08035D2C: bl sub_472E4 bl sub_37850 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08035D3C: .4byte 0x020314E0 _08035D40: .4byte 0x00000386 _08035D44: .4byte 0x00000296 _08035D48: .4byte gMain _08035D4C: .4byte 0x00000404 _08035D50: .4byte 0x00000406 thumb_func_start sub_35D54 sub_35D54: @ 0x08035D54 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r1, _08035D84 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r1 cmp r0, #0xf bls _08035D78 bl _08036C9E _08035D78: lsls r0, r0, #2 ldr r1, _08035D88 @ =_08035D8C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035D84: .4byte 0x020314E0 _08035D88: .4byte _08035D8C _08035D8C: @ jump table .4byte _08035DCC @ case 0 .4byte _08035E34 @ case 1 .4byte _08035EDC @ case 2 .4byte _08036008 @ case 3 .4byte _080360B8 @ case 4 .4byte _08036218 @ case 5 .4byte _0803631C @ case 6 .4byte _08036544 @ case 7 .4byte _0803662C @ case 8 .4byte _0803671C @ case 9 .4byte _08036808 @ case 10 .4byte _0803689C @ case 11 .4byte _08036908 @ case 12 .4byte _080369E4 @ case 13 .4byte _08036BA2 @ case 14 .4byte _08036C60 @ case 15 _08035DCC: mov r3, r8 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r2, #0 movs r1, #1 strb r1, [r0] ldr r1, [r3] ldr r5, _08035E24 @ =0x000003E2 adds r0, r1, r5 movs r4, #3 strh r4, [r0] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] adds r5, #6 adds r2, r1, r5 ldr r0, _08035E28 @ =0x000002EE strh r0, [r2] adds r0, #0xfc adds r1, r1, r0 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] bl sub_C00 mov r1, r8 ldr r3, [r1] ldr r2, _08035E2C @ =0x086AE9E4 ldr r1, _08035E30 @ =gMain ldr r1, [r1, #0x4c] muls r0, r1, r0 ands r0, r4 adds r2, #0x50 adds r0, r0, r2 ldrb r0, [r0] movs r2, #0xfd lsls r2, r2, #2 adds r3, r3, r2 strb r0, [r3] bl _08036C9E .align 2, 0 _08035E24: .4byte 0x000003E2 _08035E28: .4byte 0x000002EE _08035E2C: .4byte 0x086AE9E4 _08035E30: .4byte gMain _08035E34: ldr r2, _08035E60 @ =0x086AE718 mov r4, r8 ldr r3, [r4] ldr r5, _08035E64 @ =0x000003E2 adds r4, r3, r5 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _08035E68 adds r0, r1, #1 strh r0, [r3] b _08035E7E .align 2, 0 _08035E60: .4byte 0x086AE718 _08035E64: .4byte 0x000003E2 _08035E68: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bne _08035E7E movs r0, #3 strh r0, [r4] _08035E7E: mov r2, r8 ldr r3, [r2] movs r4, #0xfa lsls r4, r4, #2 adds r1, r3, r4 ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0 ble _08035E98 subs r0, r2, #6 strh r0, [r1] b _08035EB8 _08035E98: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r3, r0 movs r3, #0 movs r0, #2 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r4, _08035ED4 @ =0x000003E2 adds r2, r0, r4 movs r1, #0x3b strh r1, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r0, r5 strh r3, [r0] _08035EB8: mov r1, r8 ldr r0, [r1] ldr r2, _08035ED8 @ =0x00000392 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #2 bhi _08035ECA bl _08036C9E _08035ECA: subs r0, #1 strh r0, [r1] bl _08036C9E .align 2, 0 _08035ED4: .4byte 0x000003E2 _08035ED8: .4byte 0x00000392 _08035EDC: ldr r2, _08035F08 @ =0x086AE718 mov r4, r8 ldr r3, [r4] ldr r5, _08035F0C @ =0x000003E2 adds r4, r3, r5 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r3, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08035F10 adds r0, r1, #1 strh r0, [r2] b _08035FAE .align 2, 0 _08035F08: .4byte 0x086AE718 _08035F0C: .4byte 0x000003E2 _08035F10: movs r0, #0 strh r0, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x42 bne _08035F92 movs r0, #0x41 strh r0, [r4] ldr r4, _08035F3C @ =0x0000040E adds r0, r3, r4 ldrh r0, [r0] cmp r0, #7 bhi _08035F40 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r3, r5 movs r0, #3 strb r0, [r1] b _08035F92 .align 2, 0 _08035F3C: .4byte 0x0000040E _08035F40: ldr r0, _08035F54 @ =0x000003F5 adds r1, r3, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08035F58 movs r0, #0x14 strh r0, [r2] b _08035F5E .align 2, 0 _08035F54: .4byte 0x000003F5 _08035F58: strh r0, [r2] movs r0, #1 strb r0, [r1] _08035F5E: ldr r4, _08035FE8 @ =0x020314E0 ldr r0, [r4] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #5 strb r1, [r0] bl sub_C00 ldr r1, _08035FEC @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 ldr r2, [r4] ldr r3, _08035FF0 @ =0x086AE9E4 ands r0, r1 movs r4, #0xfd lsls r4, r4, #2 adds r2, r2, r4 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r2] _08035F92: ldr r0, _08035FE8 @ =0x020314E0 ldr r0, [r0] ldr r5, _08035FF4 @ =0x000003E2 adds r0, r0, r5 ldrh r0, [r0] subs r0, #0x3c lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bhi _08035FAE ldr r0, _08035FF8 @ =0x02032F20 ldr r1, _08035FFC @ =0x086A1ABC bl MPlayStart _08035FAE: ldr r0, _08035FE8 @ =0x020314E0 ldr r1, [r0] ldr r2, _08035FF4 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x40 beq _08035FC2 bl _08036C9E _08035FC2: movs r4, #0xf9 lsls r4, r4, #2 adds r2, r1, r4 ldrh r0, [r2] lsrs r0, r0, #1 ldr r5, _08036000 @ =0x000003FA adds r1, r1, r5 strh r0, [r1] ldrh r0, [r2] cmp r0, #4 beq _08035FDC bl _08036C9E _08035FDC: ldr r0, _08035FF8 @ =0x02032F20 ldr r1, _08036004 @ =0x086A1B9C bl MPlayStart bl _08036C9E .align 2, 0 _08035FE8: .4byte 0x020314E0 _08035FEC: .4byte gMain _08035FF0: .4byte 0x086AE9E4 _08035FF4: .4byte 0x000003E2 _08035FF8: .4byte 0x02032F20 _08035FFC: .4byte 0x086A1ABC _08036000: .4byte 0x000003FA _08036004: .4byte 0x086A1B9C _08036008: mov r0, r8 ldr r1, [r0] ldr r3, _080360A0 @ =0x086AE9E4 movs r4, #0xfd lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #3 adds r0, r0, r3 ldrh r0, [r0, #4] movs r5, #0xfb lsls r5, r5, #2 adds r4, r1, r5 movs r5, #0 strh r0, [r4] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #3 adds r0, r0, r3 ldrh r0, [r0, #6] ldr r2, _080360A4 @ =0x000003EE adds r3, r1, r2 strh r0, [r3] movs r0, #0 ldrsh r2, [r4, r0] movs r4, #0xfa lsls r4, r4, #2 adds r0, r1, r4 movs r4, #0 ldrsh r0, [r0, r4] subs r6, r2, r0 movs r0, #0 ldrsh r2, [r3, r0] ldr r3, _080360A8 @ =0x000003EA adds r1, r1, r3 movs r4, #0 ldrsh r0, [r1, r4] subs r7, r2, r0 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 mov r2, r8 ldr r1, [r2] ldr r2, _080360AC @ =0x086AE9C4 lsrs r0, r0, #0x1d lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] ldr r0, _080360B0 @ =0x000003DE adds r1, r1, r0 strb r2, [r1] mov r3, r8 ldr r1, [r3] adds r0, r1, r0 movs r2, #0 ldrsb r2, [r0, r2] ldr r4, _080360B4 @ =0x000003E2 adds r0, r1, r4 strh r2, [r0] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 strh r5, [r0] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #4 strb r0, [r1] bl _08036C9E .align 2, 0 _080360A0: .4byte 0x086AE9E4 _080360A4: .4byte 0x000003EE _080360A8: .4byte 0x000003EA _080360AC: .4byte 0x086AE9C4 _080360B0: .4byte 0x000003DE _080360B4: .4byte 0x000003E2 _080360B8: ldr r4, _08036180 @ =0x020314E0 mov sb, r4 ldr r1, [r4] movs r5, #0xfb lsls r5, r5, #2 adds r0, r1, r5 movs r3, #0 ldrsh r2, [r0, r3] subs r5, #4 adds r0, r1, r5 movs r4, #0 ldrsh r0, [r0, r4] subs r6, r2, r0 ldr r2, _08036184 @ =0x000003EE adds r0, r1, r2 movs r3, #0 ldrsh r2, [r0, r3] ldr r4, _08036188 @ =0x000003EA adds r1, r1, r4 movs r3, #0 ldrsh r0, [r1, r3] subs r7, r2, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 mov r8, r1 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 ldr r6, _0803618C @ =0x00004E20 adds r0, r1, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp] adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp, #4] mov r0, sb ldr r1, [r0] adds r5, r1, r5 ldrh r0, [r5] ldr r2, [sp] adds r0, r2, r0 strh r0, [r5] adds r4, r1, r4 ldrh r0, [r4] ldr r3, [sp, #4] adds r0, r3, r0 strh r0, [r4] ldr r0, _08036190 @ =0x000009C3 cmp r8, r0 bgt _080361B8 movs r4, #0xf7 lsls r4, r4, #2 adds r1, r1, r4 movs r0, #8 strb r0, [r1] mov r5, sb ldr r0, [r5] ldr r1, _08036194 @ =0x000003DE adds r2, r0, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #3 bne _0803619C movs r1, #0x42 strb r1, [r2] ldr r0, [r5] ldr r2, _08036198 @ =0x000003E2 adds r0, r0, r2 b _080361A8 .align 2, 0 _08036180: .4byte 0x020314E0 _08036184: .4byte 0x000003EE _08036188: .4byte 0x000003EA _0803618C: .4byte 0x00004E20 _08036190: .4byte 0x000009C3 _08036194: .4byte 0x000003DE _08036198: .4byte 0x000003E2 _0803619C: movs r1, #0x45 strb r1, [r2] mov r3, sb ldr r0, [r3] ldr r4, _08036208 @ =0x000003E2 adds r0, r0, r4 _080361A8: strh r1, [r0] ldr r0, _0803620C @ =0x020314E0 ldr r0, [r0] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080361B8: ldr r2, _08036210 @ =0x086AE718 ldr r0, _0803620C @ =0x020314E0 ldr r4, [r0] ldr r0, _08036208 @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _080361E2 bl _08036BD0 _080361E2: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r2, _08036214 @ =0x000003DE adds r0, r4, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #6 cmp r1, r0 beq _08036202 bl _08036C9E _08036202: strh r2, [r3] bl _08036C9E .align 2, 0 _08036208: .4byte 0x000003E2 _0803620C: .4byte 0x020314E0 _08036210: .4byte 0x086AE718 _08036214: .4byte 0x000003DE _08036218: mov r3, r8 ldr r4, [r3] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r4, r5 ldrh r0, [r0] cmp r0, #0x11 bhi _0803627C cmp r0, #0 bne _08036234 ldr r0, _0803625C @ =0x02032F20 ldr r1, _08036260 @ =0x086A1BC8 bl MPlayStart _08036234: mov r4, r8 ldr r2, [r4] adds r1, r2, r5 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r5, _08036264 @ =0x000003DE adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x42 bne _0803626C ldr r0, _08036268 @ =0x000003E2 adds r1, r2, r0 movs r0, #0x25 strh r0, [r1] bl _08036C9E .align 2, 0 _0803625C: .4byte 0x02032F20 _08036260: .4byte 0x086A1BC8 _08036264: .4byte 0x000003DE _08036268: .4byte 0x000003E2 _0803626C: ldr r3, _08036278 @ =0x000003E2 adds r1, r2, r3 movs r0, #0x30 strh r0, [r1] bl _08036C9E .align 2, 0 _08036278: .4byte 0x000003E2 _0803627C: ldr r2, _08036304 @ =0x086AE9E4 movs r5, #0xfd lsls r5, r5, #2 adds r1, r4, r5 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0, #4] subs r5, #8 adds r3, r4, r5 strh r0, [r3] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0, #6] ldr r1, _08036308 @ =0x000003EE adds r2, r4, r1 strh r0, [r2] movs r5, #0 ldrsh r1, [r3, r5] movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] subs r6, r1, r0 movs r0, #0 ldrsh r1, [r2, r0] ldr r2, _0803630C @ =0x000003EA adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] subs r7, r1, r0 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 mov r4, r8 ldr r1, [r4] ldr r2, _08036310 @ =0x086AE9D4 lsrs r0, r0, #0x1d lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] ldr r0, _08036314 @ =0x000003DE adds r1, r1, r0 strb r2, [r1] ldr r1, [r4] adds r0, r1, r0 movs r2, #0 ldrsb r2, [r0, r2] ldr r5, _08036318 @ =0x000003E2 adds r0, r1, r5 strh r2, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #6 strb r0, [r1] bl _08036C9E .align 2, 0 _08036304: .4byte 0x086AE9E4 _08036308: .4byte 0x000003EE _0803630C: .4byte 0x000003EA _08036310: .4byte 0x086AE9D4 _08036314: .4byte 0x000003DE _08036318: .4byte 0x000003E2 _0803631C: ldr r5, _080363E0 @ =0x020314E0 ldr r1, [r5] movs r2, #0xfb lsls r2, r2, #2 adds r0, r1, r2 movs r3, #0 ldrsh r2, [r0, r3] movs r4, #0xfa lsls r4, r4, #2 mov sb, r4 adds r0, r1, r4 movs r3, #0 ldrsh r0, [r0, r3] subs r6, r2, r0 adds r4, #6 adds r0, r1, r4 movs r3, #0 ldrsh r2, [r0, r3] subs r4, #4 adds r1, r1, r4 movs r3, #0 ldrsh r0, [r1, r3] subs r7, r2, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 mov r8, r1 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xfa lsls r1, r1, #3 bl __divsi3 str r0, [sp] adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 ldr r1, _080363E4 @ =0x00004E20 bl __divsi3 str r0, [sp, #4] ldr r2, [r5] mov r0, sb adds r1, r2, r0 ldrh r0, [r1] ldr r3, [sp] adds r0, r3, r0 strh r0, [r1] adds r4, r2, r4 ldrh r0, [r4] ldr r1, [sp, #4] adds r0, r1, r0 strh r0, [r4] ldr r0, _080363E8 @ =0x000009C3 cmp r8, r0 ble _080363B8 b _080364A6 _080363B8: ldr r3, _080363EC @ =0x00000385 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _08036430 ldr r4, _080363F0 @ =0x000003DE adds r1, r2, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x42 bne _080363F4 movs r0, #0x4b strb r0, [r1] ldr r1, [r5] add r1, sb ldrh r0, [r1] adds r0, #0xf0 b _08036400 .align 2, 0 _080363E0: .4byte 0x020314E0 _080363E4: .4byte 0x00004E20 _080363E8: .4byte 0x000009C3 _080363EC: .4byte 0x00000385 _080363F0: .4byte 0x000003DE _080363F4: movs r0, #0x5f strb r0, [r1] ldr r1, [r5] add r1, sb ldrh r0, [r1] subs r0, #0xf0 _08036400: strh r0, [r1] ldr r2, _08036424 @ =0x020314E0 ldr r0, [r2] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r2, _08036428 @ =0x000003DE adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldr r3, _0803642C @ =0x000003E2 adds r0, r0, r3 b _080364A4 .align 2, 0 _08036424: .4byte 0x020314E0 _08036428: .4byte 0x000003DE _0803642C: .4byte 0x000003E2 _08036430: ldr r4, _0803645C @ =0x000003FA adds r0, r2, r4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xf bgt _08036460 movs r3, #0xf7 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #2 strb r0, [r1] ldr r1, [r5] subs r4, #0x18 adds r2, r1, r4 movs r0, #0x3e strh r0, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #0 strh r0, [r1] b _080364A6 .align 2, 0 _0803645C: .4byte 0x000003FA _08036460: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #7 strb r0, [r1] ldr r0, [r5] ldr r1, _08036484 @ =0x000003DE adds r2, r0, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x26 bne _0803648C movs r1, #0x2a strb r1, [r2] ldr r0, [r5] ldr r2, _08036488 @ =0x000003E2 adds r0, r0, r2 b _08036496 .align 2, 0 _08036484: .4byte 0x000003DE _08036488: .4byte 0x000003E2 _0803648C: movs r1, #0x35 strb r1, [r2] ldr r0, [r5] ldr r3, _0803652C @ =0x000003E2 adds r0, r0, r3 _08036496: strh r1, [r0] ldr r0, _08036530 @ =0x020314E0 ldr r0, [r0] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 _080364A4: strh r1, [r0] _080364A6: ldr r2, _08036534 @ =0x086AE718 ldr r7, _08036530 @ =0x020314E0 ldr r4, [r7] ldr r6, _0803652C @ =0x000003E2 adds r3, r4, r6 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _080364CE b _08036BD0 _080364CE: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r5, _08036538 @ =0x000003DE adds r0, r4, r5 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #4 cmp r1, r0 bne _080364EC strh r2, [r3] _080364EC: ldr r0, [r7] adds r1, r0, r6 movs r2, #0 ldrsh r1, [r1, r2] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 cmp r1, r0 bne _0803650A ldr r0, _0803653C @ =0x02032F20 ldr r1, _08036540 @ =0x086A1C00 bl MPlayStart _0803650A: ldr r0, [r7] adds r1, r0, r6 movs r3, #0 ldrsh r1, [r1, r3] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #3 cmp r1, r0 beq _08036522 b _08036C9E _08036522: ldr r0, _0803653C @ =0x02032F20 ldr r1, _08036540 @ =0x086A1C00 bl MPlayStart b _08036C9E .align 2, 0 _0803652C: .4byte 0x000003E2 _08036530: .4byte 0x020314E0 _08036534: .4byte 0x086AE718 _08036538: .4byte 0x000003DE _0803653C: .4byte 0x02032F20 _08036540: .4byte 0x086A1C00 _08036544: ldr r2, _080365A0 @ =0x086AE718 mov r5, r8 ldr r4, [r5] ldr r0, _080365A4 @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r4, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bhi _08036652 movs r0, #0 strh r0, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r3, _080365A8 @ =0x000003DE adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #6 cmp r1, r0 beq _0803658A b _08036C9E _0803658A: ldr r5, _080365AC @ =0x0000040E adds r0, r4, r5 ldrh r0, [r0] cmp r0, #7 bhi _080365B0 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #3 strb r0, [r1] b _080365DC .align 2, 0 _080365A0: .4byte 0x086AE718 _080365A4: .4byte 0x000003E2 _080365A8: .4byte 0x000003DE _080365AC: .4byte 0x0000040E _080365B0: ldr r3, _080365C4 @ =0x000003F5 adds r1, r4, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _080365C8 movs r0, #0x14 strh r0, [r2] b _080365CE .align 2, 0 _080365C4: .4byte 0x000003F5 _080365C8: strh r0, [r2] movs r0, #1 strb r0, [r1] _080365CE: mov r4, r8 ldr r0, [r4] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #5 strb r1, [r0] _080365DC: bl sub_C00 ldr r1, _08036618 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 ldr r4, _0803661C @ =0x020314E0 ldr r2, [r4] ldr r3, _08036620 @ =0x086AE9E4 ands r0, r1 movs r1, #0xfd lsls r1, r1, #2 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r2] ldr r1, [r4] ldr r2, _08036624 @ =0x000003DE adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #5 ldr r3, _08036628 @ =0x000003E2 b _0803688A .align 2, 0 _08036618: .4byte gMain _0803661C: .4byte 0x020314E0 _08036620: .4byte 0x086AE9E4 _08036624: .4byte 0x000003DE _08036628: .4byte 0x000003E2 _0803662C: ldr r2, _08036658 @ =0x086AE718 mov r5, r8 ldr r4, [r5] ldr r0, _0803665C @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r4, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08036660 _08036652: adds r0, r1, #1 strh r0, [r2] b _08036C9E .align 2, 0 _08036658: .4byte 0x086AE718 _0803665C: .4byte 0x000003E2 _08036660: movs r0, #0 strh r0, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r3, _08036698 @ =0x000003DE adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 cmp r1, r0 beq _08036680 b _08036C9E _08036680: ldr r5, _0803669C @ =0x0000040E adds r0, r4, r5 ldrh r0, [r0] cmp r0, #7 bhi _080366A0 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #3 strb r0, [r1] b _080366CC .align 2, 0 _08036698: .4byte 0x000003DE _0803669C: .4byte 0x0000040E _080366A0: ldr r3, _080366B4 @ =0x000003F5 adds r1, r4, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _080366B8 movs r0, #0x14 strh r0, [r2] b _080366BE .align 2, 0 _080366B4: .4byte 0x000003F5 _080366B8: strh r0, [r2] movs r0, #1 strb r0, [r1] _080366BE: mov r4, r8 ldr r0, [r4] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #5 strb r1, [r0] _080366CC: bl sub_C00 ldr r1, _08036708 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 ldr r4, _0803670C @ =0x020314E0 ldr r2, [r4] ldr r3, _08036710 @ =0x086AE9E4 ands r0, r1 movs r1, #0xfd lsls r1, r1, #2 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r2] ldr r1, [r4] ldr r2, _08036714 @ =0x000003DE adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 ldr r3, _08036718 @ =0x000003E2 b _0803688A .align 2, 0 _08036708: .4byte gMain _0803670C: .4byte 0x020314E0 _08036710: .4byte 0x086AE9E4 _08036714: .4byte 0x000003DE _08036718: .4byte 0x000003E2 _0803671C: mov r4, r8 ldr r0, [r4] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0xa strb r1, [r0] ldr r0, _08036750 @ =gMain ldr r3, [r0, #0x4c] movs r4, #1 ands r3, r4 cmp r3, #0 beq _08036774 mov r0, r8 ldr r2, [r0] movs r1, #0xfa lsls r1, r1, #2 adds r0, r2, r1 movs r3, #0 ldrsh r1, [r0, r3] ldr r0, _08036754 @ =0xFFFFFD80 cmp r1, r0 bge _08036758 adds r5, #0x1a b _080367A6 .align 2, 0 _08036750: .4byte gMain _08036754: .4byte 0xFFFFFD80 _08036758: ldr r3, _0803676C @ =0x000003F6 adds r1, r2, r3 movs r0, #0 strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r5, _08036770 @ =0x000003DE adds r0, r0, r5 movs r1, #0x1b b _080367B4 .align 2, 0 _0803676C: .4byte 0x000003F6 _08036770: .4byte 0x000003DE _08036774: mov r0, r8 ldr r2, [r0] movs r1, #0xfa lsls r1, r1, #2 adds r0, r2, r1 movs r5, #0 ldrsh r1, [r0, r5] movs r0, #0xa0 lsls r0, r0, #2 cmp r1, r0 ble _080367A4 ldr r1, _0803679C @ =0x000003F6 adds r0, r2, r1 strb r3, [r0] mov r2, r8 ldr r0, [r2] ldr r3, _080367A0 @ =0x000003DE adds r0, r0, r3 movs r1, #0x1b b _080367B4 .align 2, 0 _0803679C: .4byte 0x000003F6 _080367A0: .4byte 0x000003DE _080367A4: ldr r5, _080367F0 @ =0x000003F6 _080367A6: adds r0, r2, r5 strb r4, [r0] mov r1, r8 ldr r0, [r1] ldr r2, _080367F4 @ =0x000003DE adds r0, r0, r2 movs r1, #0x20 _080367B4: strb r1, [r0] mov r3, r8 ldr r0, [r3] ldr r4, _080367F8 @ =0x000003FA adds r1, r0, r4 movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0xf bgt _080367CA movs r0, #0 strh r0, [r1] _080367CA: mov r0, r8 ldr r1, [r0] ldr r2, _080367F4 @ =0x000003DE adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] ldr r3, _080367FC @ =0x000003E2 adds r0, r1, r3 movs r3, #0 strh r2, [r0] movs r4, #0xf9 lsls r4, r4, #2 adds r1, r1, r4 strh r3, [r1] ldr r0, _08036800 @ =0x02032F20 ldr r1, _08036804 @ =0x086A1C64 bl MPlayStart b _08036C9E .align 2, 0 _080367F0: .4byte 0x000003F6 _080367F4: .4byte 0x000003DE _080367F8: .4byte 0x000003FA _080367FC: .4byte 0x000003E2 _08036800: .4byte 0x02032F20 _08036804: .4byte 0x086A1C64 _08036808: ldr r2, _08036890 @ =0x086AE718 mov r0, r8 ldr r5, [r0] ldr r3, _08036894 @ =0x000003E2 adds r4, r5, r3 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r5, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08036830 b _08036BD0 _08036830: movs r0, #0 strh r0, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] movs r0, #0 ldrsh r1, [r4, r0] ldr r4, _08036898 @ =0x000003DE adds r0, r5, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 cmp r1, r0 bne _08036858 movs r2, #0xff lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0x17 strh r0, [r1] _08036858: mov r5, r8 ldr r2, [r5] adds r0, r2, r3 movs r5, #0 ldrsh r1, [r0, r5] adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 cmp r1, r0 beq _08036872 b _08036C9E _08036872: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0xd strb r0, [r1] mov r2, r8 ldr r1, [r2] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 _0803688A: adds r1, r1, r3 strh r0, [r1] b _08036C9E .align 2, 0 _08036890: .4byte 0x086AE718 _08036894: .4byte 0x000003E2 _08036898: .4byte 0x000003DE _0803689C: mov r3, r8 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r3, #0 movs r1, #0xc strb r1, [r0] mov r5, r8 ldr r1, [r5] ldr r2, _080368F0 @ =0x000003DE adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 adds r4, #6 adds r2, r1, r4 strh r0, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r1, r5 strh r3, [r0] ldr r2, _080368F4 @ =0x000003FA adds r0, r1, r2 strh r3, [r0] ldr r0, _080368F8 @ =0x0007A120 str r0, [r1, #0x3c] ldr r3, _080368FC @ =0x00000385 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08036900 @ =0x02032F20 ldr r1, _08036904 @ =0x086A1C88 bl MPlayStart movs r0, #7 bl sub_11B0 b _08036C9E .align 2, 0 _080368F0: .4byte 0x000003DE _080368F4: .4byte 0x000003FA _080368F8: .4byte 0x0007A120 _080368FC: .4byte 0x00000385 _08036900: .4byte 0x02032F20 _08036904: .4byte 0x086A1C88 _08036908: ldr r2, _08036970 @ =0x086AE718 mov r5, r8 ldr r4, [r5] ldr r0, _08036974 @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08036930 b _08036BD0 _08036930: movs r6, #0 movs r5, #0 strh r5, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r0, #0 ldrsh r1, [r3, r0] ldr r2, _08036978 @ =0x000003DE adds r0, r4, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #4 cmp r1, r0 beq _08036950 b _08036C9E _08036950: adds r0, r2, #3 strh r0, [r3] ldr r3, _0803697C @ =0x00000385 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036980 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r4, r5 movs r0, #0xd strb r0, [r1] b _08036C9E .align 2, 0 _08036970: .4byte 0x086AE718 _08036974: .4byte 0x000003E2 _08036978: .4byte 0x000003DE _0803697C: .4byte 0x00000385 _08036980: movs r0, #0xa5 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #3 strb r0, [r1] ldr r1, _080369D8 @ =gMain movs r0, #0x80 strb r0, [r1, #0xf] mov r1, r8 ldr r0, [r1] movs r2, #0xe2 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #2 strb r1, [r0] mov r3, r8 ldr r0, [r3] ldr r4, _080369DC @ =0x00000392 adds r1, r0, r4 strh r5, [r1] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0xd strb r1, [r0] ldr r0, [r3] adds r2, #0x7c adds r0, r0, r2 strb r6, [r0] ldr r0, [r3] movs r3, #0x81 lsls r3, r3, #3 adds r1, r0, r3 strh r5, [r1] adds r4, #0x74 adds r0, r0, r4 strb r6, [r0] mov r5, r8 ldr r0, [r5] ldr r1, _080369E0 @ =0x00000387 adds r0, r0, r1 strb r6, [r0] b _08036C9E .align 2, 0 _080369D8: .4byte gMain _080369DC: .4byte 0x00000392 _080369E0: .4byte 0x00000387 _080369E4: mov r2, r8 ldr r1, [r2] ldr r3, _08036A0C @ =0x000003DE adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 ldr r4, _08036A10 @ =0x000003E2 adds r2, r1, r4 strh r0, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r3, r1, r5 ldrh r0, [r3] cmp r0, #7 bhi _08036A14 adds r0, #1 strh r0, [r3] b _08036C9E .align 2, 0 _08036A0C: .4byte 0x000003DE _08036A10: .4byte 0x000003E2 _08036A14: ldr r3, _08036A40 @ =0x00000385 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _08036A98 ldr r4, _08036A44 @ =0x000003F6 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08036A48 movs r0, #0x48 strh r0, [r2] movs r5, #0xfa lsls r5, r5, #2 adds r1, r1, r5 ldrh r0, [r1] subs r0, #0xf0 b _08036A56 .align 2, 0 _08036A40: .4byte 0x00000385 _08036A44: .4byte 0x000003F6 _08036A48: movs r0, #0x49 strh r0, [r2] movs r0, #0xfa lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #0xf0 _08036A56: strh r0, [r1] mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #5 strb r1, [r0] mov r3, r8 ldr r0, [r3] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0x14 strh r1, [r0] bl sub_C00 mov r5, r8 ldr r2, [r5] ldr r1, _08036A94 @ =gMain ldr r1, [r1, #0x4c] muls r0, r1, r0 movs r1, #3 ands r0, r1 adds r0, #3 movs r1, #0xfd lsls r1, r1, #2 adds r2, r2, r1 strb r0, [r2] b _08036C9E .align 2, 0 _08036A94: .4byte gMain _08036A98: ldr r3, _08036AC4 @ =0x000003FA adds r0, r1, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0xf bgt _08036B18 ldr r5, _08036AC8 @ =0x000003F6 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08036ACC movs r0, #0x48 strh r0, [r2] movs r0, #0xfa lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] subs r0, #0xf0 b _08036ADA .align 2, 0 _08036AC4: .4byte 0x000003FA _08036AC8: .4byte 0x000003F6 _08036ACC: movs r0, #0x49 strh r0, [r2] movs r2, #0xfa lsls r2, r2, #2 adds r1, r1, r2 ldrh r0, [r1] adds r0, #0xf0 _08036ADA: strh r0, [r1] mov r3, r8 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r3] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0x14 strh r1, [r0] bl sub_C00 mov r1, r8 ldr r2, [r1] ldr r1, _08036B14 @ =gMain ldr r1, [r1, #0x4c] muls r0, r1, r0 movs r1, #3 ands r0, r1 adds r0, #3 movs r3, #0xfd lsls r3, r3, #2 adds r2, r2, r3 strb r0, [r2] b _08036C9E .align 2, 0 _08036B14: .4byte gMain _08036B18: ldr r4, _08036B38 @ =0x000003F6 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08036B3C movs r0, #0x48 strh r0, [r2] movs r5, #0xfa lsls r5, r5, #2 adds r1, r1, r5 ldrh r0, [r1] subs r0, #0xf0 b _08036B4A .align 2, 0 _08036B38: .4byte 0x000003F6 _08036B3C: movs r0, #0x49 strh r0, [r2] movs r0, #0xfa lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #0xf0 _08036B4A: strh r0, [r1] mov r2, r8 ldr r1, [r2] movs r3, #0xf9 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0 strh r0, [r2] ldr r4, _08036B70 @ =0x0000040E adds r0, r1, r4 ldrh r0, [r0] cmp r0, #7 bhi _08036B74 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #3 strb r0, [r1] b _08036C9E .align 2, 0 _08036B70: .4byte 0x0000040E _08036B74: ldr r0, _08036B88 @ =0x000003F5 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08036B8C movs r0, #0x14 strh r0, [r2] b _08036B92 .align 2, 0 _08036B88: .4byte 0x000003F5 _08036B8C: strh r0, [r2] movs r0, #1 strb r0, [r1] _08036B92: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #5 strb r1, [r0] b _08036C9E _08036BA2: mov r3, r8 ldr r4, [r3] ldr r5, _08036BD8 @ =0x000003FA adds r0, r4, r5 movs r5, #0 strh r5, [r0] ldr r2, _08036BDC @ =0x086AE718 ldr r6, _08036BE0 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08036BE4 _08036BD0: adds r0, r2, #1 strh r0, [r1] b _08036C9E .align 2, 0 _08036BD8: .4byte 0x000003FA _08036BDC: .4byte 0x086AE718 _08036BE0: .4byte 0x000003E2 _08036BE4: strh r5, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r5, _08036C50 @ =0x000003DE adds r0, r4, r5 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #0 adds r0, #0x13 cmp r1, r0 bne _08036C0E subs r0, #1 strh r0, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #0xf strb r0, [r1] _08036C0E: mov r1, r8 ldr r0, [r1] adds r1, r0, r6 movs r2, #0 ldrsh r1, [r1, r2] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #6 cmp r1, r0 bne _08036C2E ldr r0, _08036C54 @ =0x02032F20 ldr r1, _08036C58 @ =0x086A1CCC bl MPlayStart _08036C2E: mov r3, r8 ldr r0, [r3] adds r1, r0, r6 movs r4, #0 ldrsh r1, [r1, r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #8 cmp r1, r0 bne _08036C9E ldr r0, _08036C54 @ =0x02032F20 ldr r1, _08036C5C @ =0x086A1D64 bl MPlayStart b _08036C9E .align 2, 0 _08036C50: .4byte 0x000003DE _08036C54: .4byte 0x02032F20 _08036C58: .4byte 0x086A1CCC _08036C5C: .4byte 0x086A1D64 _08036C60: mov r5, r8 ldr r2, [r5] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r2, r3 ldrh r1, [r0] cmp r1, #0x63 bhi _08036C88 cmp r1, #0 bne _08036C7C movs r0, #2 strb r0, [r2, #0x13] ldr r0, [r5] strh r1, [r0, #0x18] _08036C7C: mov r0, r8 ldr r1, [r0] adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08036C88: mov r1, r8 ldr r0, [r1] ldr r2, _08036CAC @ =0x000003DE adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #0xf ldr r3, _08036CB0 @ =0x000003E2 adds r0, r0, r3 strh r1, [r0] _08036C9E: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08036CAC: .4byte 0x000003DE _08036CB0: .4byte 0x000003E2 thumb_func_start sub_36CB4 sub_36CB4: @ 0x08036CB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r0, _08036DBC @ =0x02031590 ldrb r1, [r0, #0x17] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08036DC0 @ =0x0200B3B8 adds r5, r1, r0 ldrh r0, [r5] cmp r0, #0 bne _08036CD4 b _080372A2 _08036CD4: ldr r0, _08036DC4 @ =0x020314E0 mov sb, r0 ldr r0, [r0] ldr r1, _08036DC8 @ =0x000003DF adds r3, r0, r1 movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldr r6, _08036DCC @ =0x086AE718 ldr r4, _08036DD0 @ =0x000003E2 adds r0, r0, r4 movs r7, #0 ldrsh r1, [r0, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r6, #4 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r3] ldr r3, _08036DD4 @ =0x040000D4 lsrs r0, r2, #0x10 str r0, [sp] asrs r2, r2, #0x10 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #7 ldr r1, _08036DD8 @ =0x0844F98C adds r0, r0, r1 str r0, [r3] ldr r0, _08036DDC @ =0x06010920 str r0, [r3, #4] ldr r0, _08036DE0 @ =0x80000140 str r0, [r3, #8] ldr r0, [r3, #8] mov r1, sb ldr r7, [r1] adds r4, r7, r4 movs r2, #0 ldrsh r1, [r4, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r6 ldrh r0, [r0] mov sl, r0 movs r3, #0xfa lsls r3, r3, #2 adds r6, r7, r3 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 adds r0, #0x68 adds r1, r7, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r2, _08036DE4 @ =0x000003EA adds r2, r2, r7 mov r8, r2 movs r3, #0 ldrsh r0, [r2, r3] movs r1, #0xa bl __divsi3 adds r0, #0x1c adds r1, r7, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #4] ldrh r4, [r4] adds r0, r4, #0 subs r0, #0x1c lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bhi _08036DF4 movs r4, #0 ldrsh r0, [r6, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x90 movs r2, #0xfc lsls r2, r2, #2 adds r1, r7, r2 strh r0, [r1] mov r3, r8 movs r4, #0 ldrsh r0, [r3, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x54 ldr r2, _08036DE8 @ =0x000003F2 adds r1, r7, r2 strh r0, [r1] ldr r3, _08036DEC @ =0x00000385 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036E9A ldr r4, _08036DF0 @ =0x00000387 adds r1, r7, r4 movs r0, #2 b _08036E98 .align 2, 0 _08036DBC: .4byte 0x02031590 _08036DC0: .4byte 0x0200B3B8 _08036DC4: .4byte 0x020314E0 _08036DC8: .4byte 0x000003DF _08036DCC: .4byte 0x086AE718 _08036DD0: .4byte 0x000003E2 _08036DD4: .4byte 0x040000D4 _08036DD8: .4byte 0x0844F98C _08036DDC: .4byte 0x06010920 _08036DE0: .4byte 0x80000140 _08036DE4: .4byte 0x000003EA _08036DE8: .4byte 0x000003F2 _08036DEC: .4byte 0x00000385 _08036DF0: .4byte 0x00000387 _08036DF4: adds r0, r4, #0 subs r0, #0x21 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bhi _08036E54 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xf0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r7, r2 strh r0, [r1] mov r3, r8 movs r4, #0 ldrsh r0, [r3, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x54 ldr r2, _08036E48 @ =0x000003F2 adds r1, r7, r2 strh r0, [r1] ldr r3, _08036E4C @ =0x00000385 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036E9A ldr r4, _08036E50 @ =0x00000387 adds r1, r7, r4 movs r0, #2 b _08036E98 .align 2, 0 _08036E48: .4byte 0x000003F2 _08036E4C: .4byte 0x00000385 _08036E50: .4byte 0x00000387 _08036E54: movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xd0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r7, r2 strh r0, [r1] mov r3, r8 movs r4, #0 ldrsh r0, [r3, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x38 ldr r2, _08036EDC @ =0x000003F2 adds r1, r7, r2 strh r0, [r1] ldr r3, _08036EE0 @ =0x00000385 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036E9A ldr r4, _08036EE4 @ =0x00000387 adds r1, r7, r4 movs r0, #1 _08036E98: strb r0, [r1] _08036E9A: ldr r7, _08036EE8 @ =0x020314E0 ldr r4, [r7] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x78 movs r3, #0x80 lsls r3, r3, #3 adds r1, r4, r3 strh r0, [r1] ldr r7, _08036EEC @ =0x000003EA adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x3a ldr r2, _08036EF0 @ =0x00000402 adds r1, r4, r2 strh r0, [r1] ldr r3, _08036EF4 @ =0x0000040E adds r0, r4, r3 ldrh r0, [r0] cmp r0, #7 bls _08036EF8 adds r7, #0xd b _08036F16 .align 2, 0 _08036EDC: .4byte 0x000003F2 _08036EE0: .4byte 0x00000385 _08036EE4: .4byte 0x00000387 _08036EE8: .4byte 0x020314E0 _08036EEC: .4byte 0x000003EA _08036EF0: .4byte 0x00000402 _08036EF4: .4byte 0x0000040E _08036EF8: ldr r1, _08036F0C @ =0x000003FA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xf ble _08036F14 ldr r3, _08036F10 @ =0x000003F7 adds r1, r4, r3 movs r0, #0 b _08036F1A .align 2, 0 _08036F0C: .4byte 0x000003FA _08036F10: .4byte 0x000003F7 _08036F14: ldr r7, _08036FD8 @ =0x000003F7 _08036F16: adds r1, r4, r7 movs r0, #1 _08036F1A: strb r0, [r1] movs r7, #0 ldr r0, _08036FDC @ =0x03005000 mov r8, r0 mov r1, sl lsls r1, r1, #0x10 str r1, [sp, #4] mov ip, r8 asrs r1, r1, #0x10 mov sb, r1 movs r2, #0xf mov sl, r2 _08036F32: lsls r2, r7, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r3, ip adds r4, r0, r3 mov r0, sb lsls r1, r0, #1 add r1, sb lsls r1, r1, #2 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 ldr r2, _08036FE0 @ =0x086B9DAC adds r0, r0, r2 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r4] adds r1, #2 adds r4, #2 ldrh r0, [r1] strh r0, [r4] ldrh r0, [r1, #2] strh r0, [r4, #2] ldr r3, _08036FE4 @ =0x020314E0 ldr r0, [r3] ldr r4, _08036FD8 @ =0x000003F7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08037008 ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r5, r4] adds r1, r1, r0 ldr r4, _08036FE8 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08036FEC @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r3, _08036FE4 @ =0x020314E0 ldr r1, [r3] ldr r4, _08036FF0 @ =0x000003DF adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _08036FF4 movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #9 bhi _08036FF4 ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0xa0 b _08037002 .align 2, 0 _08036FD8: .4byte 0x000003F7 _08036FDC: .4byte 0x03005000 _08036FE0: .4byte 0x086B9DAC _08036FE4: .4byte 0x020314E0 _08036FE8: .4byte 0x000001FF _08036FEC: .4byte 0xFFFFFE00 _08036FF0: .4byte 0x000003DF _08036FF4: ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0x20 _08037002: orrs r0, r1 strb r0, [r2, #5] b _08037024 _08037008: ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r1, [r2, #2] ldr r0, _08037120 @ =0xFFFFFE00 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 add r0, r8 movs r1, #0xb4 strb r1, [r0] _08037024: lsls r0, r7, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08037036 b _08036F32 _08037036: ldr r5, _08037124 @ =0x0200CA00 ldr r7, _08037128 @ =0x020314E0 ldr r4, [r7] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x68 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #2] ldr r4, [r7] ldr r3, _0803712C @ =0x000003EA adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r0, #0x3c adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #4] movs r7, #0 ldr r0, _08037130 @ =0x03005000 mov ip, r0 ldr r1, [sp, #4] asrs r1, r1, #0x10 mov sb, r1 movs r2, #0xf mov sl, r2 _08037080: lsls r3, r7, #0x10 asrs r2, r3, #0x10 lsls r0, r2, #3 adds r0, #8 adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r7, ip adds r4, r0, r7 mov r0, sb lsls r1, r0, #1 add r1, sb lsls r1, r1, #2 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 ldr r2, _08037134 @ =0x086B9AB8 adds r0, r0, r2 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r4] adds r1, #2 adds r4, #2 ldrh r0, [r1] strh r0, [r4] ldrh r0, [r1, #2] strh r0, [r4, #2] ldr r4, _08037128 @ =0x020314E0 ldr r0, [r4] ldr r7, _08037138 @ =0x000003F7 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r3, #0 cmp r0, #0 beq _08037154 ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r7, _0803713C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _08037120 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r3, [sp] cmp r3, #0x14 bne _08037140 ldr r7, _08037128 @ =0x020314E0 ldr r0, [r7] movs r1, #0xf9 lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #9 bhi _08037140 ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0xb0 b _0803714E .align 2, 0 _08037120: .4byte 0xFFFFFE00 _08037124: .4byte 0x0200CA00 _08037128: .4byte 0x020314E0 _0803712C: .4byte 0x000003EA _08037130: .4byte 0x03005000 _08037134: .4byte 0x086B9AB8 _08037138: .4byte 0x000003F7 _0803713C: .4byte 0x000001FF _08037140: ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0x40 _0803714E: orrs r0, r1 strb r0, [r2, #5] b _08037170 _08037154: ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r1, [r2, #2] ldr r0, _08037208 @ =0xFFFFFE00 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 add r0, r8 movs r1, #0xb4 strb r1, [r0] _08037170: movs r2, #0x80 lsls r2, r2, #9 adds r0, r4, r2 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08037180 b _08037080 _08037180: ldr r5, _0803720C @ =0x0200BA30 ldr r3, _08037210 @ =0x020314E0 ldr r2, [r3] movs r4, #0xfe lsls r4, r4, #2 adds r0, r2, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r3, r0, r1 movs r6, #0xff lsls r6, r6, #2 adds r2, r2, r6 movs r7, #0 ldrsh r0, [r2, r7] cmp r0, #0 bge _080371A4 adds r0, #7 _080371A4: asrs r0, r0, #3 subs r0, #2 ldr r1, _08037214 @ =0x040000D4 subs r0, r3, r0 lsls r0, r0, #8 ldr r2, _08037218 @ =0x0845588C adds r0, r0, r2 str r0, [r1] ldr r0, _0803721C @ =0x06010BA0 str r0, [r1, #4] ldr r0, _08037220 @ =0x80000080 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _08037210 @ =0x020314E0 ldr r4, [r3] adds r1, r4, r6 ldrh r2, [r1] movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0 ble _08037228 subs r0, r2, #1 strh r0, [r1] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x68 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r3, _08037224 @ =0x000003EA adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 adds r0, #0x1a b _0803722E .align 2, 0 _08037208: .4byte 0xFFFFFE00 _0803720C: .4byte 0x0200BA30 _08037210: .4byte 0x020314E0 _08037214: .4byte 0x040000D4 _08037218: .4byte 0x0845588C _0803721C: .4byte 0x06010BA0 _08037220: .4byte 0x80000080 _08037224: .4byte 0x000003EA _08037228: movs r0, #0 strh r0, [r5, #2] movs r0, #0xb4 _0803722E: strh r0, [r5, #4] adds r6, r5, #0 adds r6, #8 ldrh r2, [r5, #8] lsls r2, r2, #3 add r2, r8 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r5, r3] adds r1, r1, r0 ldr r4, _08037284 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08037288 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] ldr r7, _0803728C @ =0x020314E0 ldr r0, [r7] ldr r1, _08037290 @ =0x000003F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08037294 ldrh r0, [r5, #8] lsls r0, r0, #3 add r0, r8 ldrb r2, [r0, #3] movs r1, #0x11 rsbs r1, r1, #0 ands r1, r2 b _080372A0 .align 2, 0 _08037284: .4byte 0x000001FF _08037288: .4byte 0xFFFFFE00 _0803728C: .4byte 0x020314E0 _08037290: .4byte 0x000003F6 _08037294: ldrh r0, [r5, #8] lsls r0, r0, #3 add r0, r8 ldrb r1, [r0, #3] movs r2, #0x10 orrs r1, r2 _080372A0: strb r1, [r0, #3] _080372A2: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_372B4 sub_372B4: @ 0x080372B4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08037478 @ =0x0200C4F8 mov sl, r0 ldrh r0, [r0] cmp r0, #0 bne _080372CA b _08037500 _080372CA: ldr r1, _0803747C @ =0x020314E0 mov sb, r1 ldr r1, [r1] ldr r2, _08037480 @ =0x00000404 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080372E0 b _080374C0 _080372E0: ldr r3, _08037484 @ =0x0000040A mov r8, r3 adds r0, r1, r3 ldrh r5, [r0] cmp r5, #0 bne _08037318 bl sub_C00 mov r1, sb ldr r4, [r1] ldr r1, _08037488 @ =0xFFFFEBC8 add r1, sl ldr r1, [r1, #0x4c] muls r0, r1, r0 movs r1, #5 bl __umodsi3 ldr r2, _0803748C @ =0x00000405 adds r4, r4, r2 strb r0, [r4] mov r3, sb ldr r0, [r3] adds r2, #0x11 adds r1, r0, r2 strh r5, [r1] ldr r3, _08037490 @ =0x0000041A adds r0, r0, r3 strh r5, [r0] _08037318: mov r1, sb ldr r0, [r1] mov r2, r8 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x27 bhi _0803732A adds r0, #1 strh r0, [r1] _0803732A: mov r3, sb ldr r0, [r3] add r0, r8 ldrh r0, [r0] cmp r0, #0x14 bne _0803733C ldr r0, _08037494 @ =0x02032F60 bl m4aMPlayStop _0803733C: mov r1, sb ldr r0, [r1] add r0, r8 ldrh r0, [r0] cmp r0, #0x16 bne _0803734E ldr r0, _08037498 @ =0x00000105 bl m4aSongNumStart _0803734E: mov r2, sb ldr r4, [r2] mov r3, r8 adds r0, r4, r3 ldrh r0, [r0] cmp r0, #0x14 bhi _0803735E b _080374B4 _0803735E: ldr r0, _0803749C @ =0x00000414 adds r1, r4, r0 movs r0, #4 strh r0, [r1] ldr r1, _080374A0 @ =0x00000416 adds r5, r4, r1 ldrh r0, [r5] adds r0, #3 strh r0, [r5] ldr r3, _080374A4 @ =0x086AEA3C ldr r0, _0803748C @ =0x00000405 adds r2, r4, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r3 ldrh r0, [r0] mov r8, r0 adds r1, #2 adds r0, r4, r1 mov r1, r8 strh r1, [r0] ldr r0, _08037490 @ =0x0000041A adds r4, r4, r0 ldrh r0, [r5] ldrh r1, [r4] adds r0, r0, r1 strh r0, [r4] movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #2 adds r1, r1, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrh r2, [r1, #2] movs r3, #2 ldrsh r1, [r1, r3] cmp r0, r1 ble _080373BC strh r2, [r4] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #6 bl __divsi3 rsbs r0, r0, #0 strh r0, [r5] _080373BC: mov r2, sb ldr r2, [r2] mov r8, r2 ldr r0, _080374A8 @ =0x0000132C add r0, r8 ldr r5, [r0] movs r3, #0x10 ldrsh r4, [r5, r3] subs r4, #8 movs r0, #0x83 lsls r0, r0, #3 add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r6, r4, r0 movs r2, #0x12 ldrsh r4, [r5, r2] subs r4, #8 ldr r0, _08037490 @ =0x0000041A add r0, r8 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r7, r4, r0 adds r0, r6, #0 muls r0, r6, r0 adds r1, r7, #0 muls r1, r7, r1 adds r0, r0, r1 cmp r0, #0x78 bgt _08037438 ldr r1, _08037480 @ =0x00000404 add r1, r8 movs r0, #0 strb r0, [r1] mov r6, sb ldr r0, [r6] ldr r1, _080374AC @ =0x00000406 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r2, [r6] movs r3, #0x81 lsls r3, r3, #3 adds r1, r2, r3 movs r0, #0 strh r0, [r1] ldr r0, _080374B0 @ =0x00002710 str r0, [r2, #0x3c] movs r0, #0x83 lsls r0, r0, #1 bl m4aSongNumStart _08037438: mov r6, sb ldr r5, [r6] adds r0, r5, #0 adds r0, #0x58 ldrh r4, [r0] rsbs r4, r4, #0 movs r1, #0x83 lsls r1, r1, #3 adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, r4, r0 mov r3, sl strh r4, [r3, #2] adds r0, r5, #0 adds r0, #0x5a ldrh r4, [r0] rsbs r4, r4, #0 ldr r6, _08037490 @ =0x0000041A adds r5, r5, r6 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 adds r4, r4, r0 mov r2, sl strh r4, [r2, #4] b _080374C8 .align 2, 0 _08037478: .4byte 0x0200C4F8 _0803747C: .4byte 0x020314E0 _08037480: .4byte 0x00000404 _08037484: .4byte 0x0000040A _08037488: .4byte 0xFFFFEBC8 _0803748C: .4byte 0x00000405 _08037490: .4byte 0x0000041A _08037494: .4byte 0x02032F60 _08037498: .4byte 0x00000105 _0803749C: .4byte 0x00000414 _080374A0: .4byte 0x00000416 _080374A4: .4byte 0x086AEA3C _080374A8: .4byte 0x0000132C _080374AC: .4byte 0x00000406 _080374B0: .4byte 0x00002710 _080374B4: movs r0, #0 mov r3, sl strh r0, [r3, #2] movs r0, #0xb4 strh r0, [r3, #4] b _080374C8 _080374C0: mov r6, sl strh r0, [r6, #2] movs r0, #0xb4 strh r0, [r6, #4] _080374C8: mov r5, sl adds r5, #8 ldr r4, _08037510 @ =0x03005000 mov r0, sl ldrh r2, [r0, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r6, #2 ldrsh r0, [r0, r6] adds r1, r1, r0 ldr r3, _08037514 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08037518 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] mov r6, sl 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] _08037500: 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 _08037510: .4byte 0x03005000 _08037514: .4byte 0x000001FF _08037518: .4byte 0xFFFFFE00 thumb_func_start sub_3751C sub_3751C: @ 0x0803751C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r1, _08037550 @ =0x020314E0 ldr r3, [r1] ldr r0, _08037554 @ =0x00000406 adds r4, r3, r0 movs r0, #0 ldrsb r0, [r4, r0] mov sb, r1 cmp r0, #0 beq _08037564 movs r1, #0x81 lsls r1, r1, #3 adds r2, r3, r1 ldrh r1, [r2] ldr r0, _08037558 @ =0x00000257 cmp r1, r0 bhi _0803755C adds r0, r1, #1 strh r0, [r2] b _08037564 .align 2, 0 _08037550: .4byte 0x020314E0 _08037554: .4byte 0x00000406 _08037558: .4byte 0x00000257 _0803755C: movs r1, #0 movs r0, #0 strh r0, [r2] strb r1, [r4] _08037564: mov r2, sb ldr r1, [r2] ldr r3, _08037588 @ =0x00000406 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08037590 ldr r0, _0803758C @ =0x0000040E adds r1, r1, r0 ldrh r0, [r1] cmp r0, #9 bhi _080375AE adds r0, #1 strh r0, [r1] b _080375AE .align 2, 0 _08037588: .4byte 0x00000406 _0803758C: .4byte 0x0000040E _08037590: ldr r2, _080375A4 @ =0x0000040E adds r3, r1, r2 ldrh r0, [r3] adds r2, r0, #0 cmp r2, #0 beq _080375A8 subs r0, #1 strh r0, [r3] b _080375AE .align 2, 0 _080375A4: .4byte 0x0000040E _080375A8: ldr r3, _08037804 @ =0x000003F5 adds r0, r1, r3 strb r2, [r0] _080375AE: ldr r3, _08037808 @ =gMain mov r0, sb ldr r2, [r0] ldr r0, _0803780C @ =0x0000040E adds r1, r2, r0 ldrh r0, [r1] lsls r0, r0, #4 strh r0, [r3, #0x2e] ldrh r1, [r1] lsls r0, r1, #0x16 lsrs r0, r0, #0x10 mov r8, r0 lsls r1, r1, #1 movs r0, #0x14 subs r0, r0, r1 lsls r0, r0, #0x15 lsrs r4, r0, #0x10 movs r1, #0x81 lsls r1, r1, #3 adds r2, r2, r1 ldrh r0, [r2] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #9 bl __udivsi3 ldr r2, _08037810 @ =0x086AEA60 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r2 ldrh r1, [r1] str r1, [sp] ldr r1, _08037814 @ =0x086AEA50 lsls r0, r0, #2 adds r0, r0, r1 ldr r5, [r0] movs r2, #0 mov r3, r8 lsls r0, r3, #0x10 asrs r1, r0, #0x10 cmp r2, r1 bge _0803763A ldr r0, _08037818 @ =0x03006400 ldr r3, _0803781C @ =0xFFFFF800 adds r7, r0, r3 movs r6, #0x80 lsls r6, r6, #3 lsls r0, r4, #0x10 asrs r4, r0, #0x10 adds r3, r1, #0 _0803761A: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 lsls r2, r2, #1 adds r2, r2, r7 adds r0, r4, r1 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 blt _0803761A _0803763A: mov r0, r8 lsls r1, r0, #0x10 asrs r0, r1, #0x10 ldr r2, _08037820 @ =0x0000027F cmp r0, r2 bgt _08037662 ldr r5, _08037824 @ =0x03005C00 movs r4, #0x80 lsls r4, r4, #3 ldr r3, _08037828 @ =0x000003FF _0803764E: asrs r0, r1, #0x10 adds r1, r0, r4 lsls r1, r1, #1 adds r1, r1, r5 strh r3, [r1] adds r0, #1 lsls r1, r0, #0x10 asrs r0, r1, #0x10 cmp r0, r2 ble _0803764E _08037662: mov r1, sb ldr r0, [r1] movs r4, #0x81 lsls r4, r4, #3 adds r0, r0, r4 ldrh r0, [r0] movs r1, #0x96 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 lsls r1, r0, #0x10 ldr r2, _0803782C @ =0xFFF60000 adds r0, r1, r2 lsrs r0, r0, #0x10 cmp r0, #0x45 bhi _08037726 movs r3, #0 mov sb, r1 ldr r0, [sp] lsls r1, r0, #0x10 ldr r2, _08037824 @ =0x03005C00 mov r8, r2 ldr r0, _08037830 @ =0x08327994 mov ip, r0 asrs r6, r1, #0xe adds r7, r4, #0 _0803769A: movs r2, #0 lsls r3, r3, #0x10 asrs r1, r3, #0x10 adds r0, r1, #6 lsls r5, r0, #5 adds r1, #0x15 lsls r4, r1, #5 _080376A8: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r7 adds r2, r5, r2 lsls r2, r2, #1 add r2, r8 adds r0, r1, r6 adds r0, r4, r0 lsls r0, r0, #1 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _080376A8 movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0803769A mov r2, sb asrs r0, r2, #0x10 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _080376F0 movs r1, #5 _080376F0: movs r2, #0 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r2, r0 bge _08037726 ldr r7, _08037824 @ =0x03005C00 ldr r6, _08037834 @ =0x000004C3 ldr r5, _08037830 @ =0x08327994 movs r4, #0xbb lsls r4, r4, #2 adds r3, r0, #0 _08037706: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 lsls r2, r2, #1 adds r2, r2, r7 adds r0, r1, r4 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 blt _08037706 _08037726: mov r3, sl lsls r1, r3, #0x10 ldr r2, _08037838 @ =0xFFB00000 adds r0, r1, r2 lsrs r0, r0, #0x10 mov sb, r1 cmp r0, #0x45 bhi _080377E2 movs r3, #0 ldr r0, [sp] lsls r1, r0, #0x10 ldr r2, _08037824 @ =0x03005C00 mov ip, r2 ldr r0, _08037830 @ =0x08327994 mov r8, r0 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r6, r0, #0 adds r6, #0xc ldr r7, _0803783C @ =0x00000411 _08037752: movs r2, #0 lsls r3, r3, #0x10 asrs r1, r3, #0x10 adds r0, r1, #0 adds r0, #0xe lsls r5, r0, #5 adds r1, #0x15 lsls r4, r1, #5 _08037762: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r7 adds r2, r5, r2 lsls r2, r2, #1 add r2, ip adds r0, r1, r6 adds r0, r4, r0 lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #5 ble _08037762 movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08037752 mov r2, sb asrs r0, r2, #0x10 subs r0, #0x46 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _080377AC movs r1, #5 _080377AC: movs r2, #0 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r2, r0 bge _080377E2 ldr r7, _08037824 @ =0x03005C00 ldr r6, _08037840 @ =0x000005F7 ldr r5, _08037830 @ =0x08327994 movs r4, #0xbb lsls r4, r4, #2 adds r3, r0, #0 _080377C2: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 lsls r2, r2, #1 adds r2, r2, r7 adds r0, r1, r4 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 blt _080377C2 _080377E2: ldr r1, _08037844 @ =0x040000D4 ldr r3, _08037818 @ =0x03006400 str r3, [r1] ldr r0, _08037848 @ =0x06001000 str r0, [r1, #4] ldr r0, _0803784C @ =0x80000280 str r0, [r1, #8] ldr r0, [r1, #8] 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 _08037804: .4byte 0x000003F5 _08037808: .4byte gMain _0803780C: .4byte 0x0000040E _08037810: .4byte 0x086AEA60 _08037814: .4byte 0x086AEA50 _08037818: .4byte 0x03006400 _0803781C: .4byte 0xFFFFF800 _08037820: .4byte 0x0000027F _08037824: .4byte 0x03005C00 _08037828: .4byte 0x000003FF _0803782C: .4byte 0xFFF60000 _08037830: .4byte 0x08327994 _08037834: .4byte 0x000004C3 _08037838: .4byte 0xFFB00000 _0803783C: .4byte 0x00000411 _08037840: .4byte 0x000005F7 _08037844: .4byte 0x040000D4 _08037848: .4byte 0x06001000 _0803784C: .4byte 0x80000280 thumb_func_start sub_37850 sub_37850: @ 0x08037850 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, _08037C18 @ =0x020314E0 ldr r3, [r4] movs r1, #0x80 lsls r1, r1, #3 adds r0, r3, r1 movs r2, #0 ldrsh r1, [r0, r2] lsls r1, r1, #0x11 lsrs r1, r1, #0x10 ldr r2, _08037C1C @ =0xFFFF0000 ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldr r5, _08037C20 @ =0x00000402 adds r3, r3, r5 movs r2, #0 ldrsh r1, [r3, r2] lsls r1, r1, #0x11 ldr r2, _08037C24 @ =0x0000FFFF ands r0, r2 orrs r0, r1 str r0, [sp] mov r0, sp bl sub_17C1C ldr r0, _08037C28 @ =0x02031590 ldrb r1, [r0, #0x10] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08037C2C @ =0x0200B3B8 adds r6, r1, r0 ldr r1, [r4] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r0, [r1] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r2, #0 ldr r5, _08037C30 @ =0x03005000 ldr r3, _08037C34 @ =0xFFFFFE00 mov sb, r3 _080378BC: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r0, _08037C38 @ =0x000001FF mov r8, r0 mov r2, r8 ands r1, r2 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _080378BC ldr r0, _08037C28 @ =0x02031590 ldrb r1, [r0, #0x11] movs r0, #0xb8 muls r0, r1, r0 ldr r3, _08037C2C @ =0x0200B3B8 mov sb, r3 adds r6, r0, r3 ldr r5, _08037C18 @ =0x020314E0 ldr r1, [r5] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r0, [r1] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldr r4, _08037C30 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08037C34 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] movs r6, #0xa1 lsls r6, r6, #3 add r6, sb ldr r0, [r5] ldr r1, _08037C3C @ =0x0000040C adds r0, r0, r1 ldrh r4, [r0] adds r0, r4, #0 movs r1, #0xa bl __umodsi3 movs r1, #5 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 movs r7, #0x14 cmp r4, #0x1e bhi _08037988 movs r7, #5 cmp r4, #0xa bls _08037988 movs r7, #0xa _08037988: ldr r4, _08037C18 @ =0x020314E0 ldr r0, [r4] ldr r2, _08037C3C @ =0x0000040C adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0x28 bne _080379A4 movs r0, #0x82 lsls r0, r0, #1 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _080379A4: lsls r0, r5, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _080379B2 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 _080379B2: lsls r1, r5, #0x10 asrs r1, r1, #0x10 movs r0, #5 subs r0, r0, r1 muls r0, r7, r0 movs r1, #0xa bl __divsi3 adds r0, #0x78 ldr r2, [r4] adds r1, r2, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] adds r2, #0x5a ldrh r0, [r2] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r2, #0 ldr r5, _08037C30 @ =0x03005000 ldr r3, _08037C34 @ =0xFFFFFE00 mov r8, r3 _080379E2: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08037C38 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _080379E2 ldr r3, _08037C18 @ =0x020314E0 ldr r0, [r3] ldr r5, _08037C3C @ =0x0000040C adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _08037A38 subs r0, #1 strh r0, [r1] _08037A38: movs r0, #0 mov r8, r0 _08037A3C: mov r1, r8 lsls r3, r1, #0x10 asrs r3, r3, #0x10 adds r0, r3, #0 adds r0, #0xa ldr r2, _08037C28 @ =0x02031590 adds r0, r0, r2 ldrb r1, [r0] movs r0, #0xb8 muls r0, r1, r0 ldr r5, _08037C2C @ =0x0200B3B8 adds r6, r0, r5 ldr r0, _08037C18 @ =0x020314E0 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r1, #0 mov sb, r1 movs r5, #0x84 lsls r5, r5, #3 adds r2, r2, r5 adds r4, r2, r3 ldrb r5, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _08037AA6 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 ldr r1, _08037C40 @ =0x086AEA68 adds r0, r0, r1 ldrh r0, [r0] mov sb, r0 subs r0, r5, #1 strb r0, [r4] _08037AA6: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037C30 @ =0x03005000 mov ip, r5 ldr r1, _08037C34 @ =0xFFFFFE00 mov sl, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0xd2 mov sb, r0 _08037AC0: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r2, [r7] lsls r2, r2, #3 add r2, ip movs r3, #2 ldrsh r1, [r7, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08037C38 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip add r5, sb ldr r3, _08037C44 @ =0x000003FF adds r0, r3, #0 ands r5, r0 ldrh r0, [r2, #4] ldr r3, _08037C48 @ =0xFFFFFC00 adds r1, r3, #0 ands r0, r1 orrs r0, r5 strh r0, [r2, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037AC0 mov r5, r8 lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r2, r0, #0x10 mov r8, r2 asrs r0, r0, #0x10 cmp r0, #5 ble _08037A3C movs r3, #6 mov r8, r3 _08037B38: mov r5, r8 lsls r4, r5, #0x10 asrs r3, r4, #0x10 adds r0, r3, #0 adds r0, #0xc ldr r1, _08037C28 @ =0x02031590 adds r0, r0, r1 ldrb r1, [r0] movs r0, #0xb8 muls r0, r1, r0 ldr r2, _08037C2C @ =0x0200B3B8 adds r6, r0, r2 ldr r5, _08037C18 @ =0x020314E0 ldr r2, [r5] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r0, #0 mov sb, r0 movs r1, #0x84 lsls r1, r1, #3 adds r2, r2, r1 adds r5, r2, r3 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] mov sl, r4 cmp r0, #0 beq _08037BA4 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 ldr r2, _08037C40 @ =0x086AEA68 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037BA4: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037C30 @ =0x03005000 mov ip, r5 ldr r1, _08037C34 @ =0xFFFFFE00 mov sb, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0xd2 mov r8, r0 _08037BBE: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r2, [r7] lsls r2, r2, #3 add r2, ip movs r3, #2 ldrsh r1, [r7, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08037C38 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip add r5, r8 ldr r3, _08037C44 @ =0x000003FF adds r0, r3, #0 ands r5, r0 ldrh r0, [r2, #4] ldr r3, _08037C48 @ =0xFFFFFC00 adds r1, r3, #0 ands r0, r1 orrs r0, r5 strh r0, [r2, #4] adds r4, #1 b _08037C4C .align 2, 0 _08037C18: .4byte 0x020314E0 _08037C1C: .4byte 0xFFFF0000 _08037C20: .4byte 0x00000402 _08037C24: .4byte 0x0000FFFF _08037C28: .4byte 0x02031590 _08037C2C: .4byte 0x0200B3B8 _08037C30: .4byte 0x03005000 _08037C34: .4byte 0xFFFFFE00 _08037C38: .4byte 0x000001FF _08037C3C: .4byte 0x0000040C _08037C40: .4byte 0x086AEA68 _08037C44: .4byte 0x000003FF _08037C48: .4byte 0xFFFFFC00 _08037C4C: lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037BBE movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r5, r0, #0x10 mov r8, r5 asrs r0, r0, #0x10 cmp r0, #9 bgt _08037C68 b _08037B38 _08037C68: ldr r6, _08037F58 @ =0x0200C5B0 ldr r1, _08037F5C @ =0x020314E0 ldr r0, [r1] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r2, _08037F5C @ =0x020314E0 ldr r0, [r2] adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r3, #0 mov sb, r3 ldr r0, [r2] ldr r1, _08037F60 @ =0x0000041C adds r5, r0, r1 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08037CBA ldr r4, _08037F64 @ =0x086AEA68 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037CBA: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037F68 @ =0x03005000 mov r8, r5 ldr r1, _08037F6C @ =0xFFFFFE00 mov ip, r1 asrs r0, r0, #0xd adds r0, #0xf6 mov sb, r0 ldr r3, _08037F70 @ =0xFFFFFC00 mov sl, r3 _08037CD2: lsls r4, r2, #0x10 asrs r5, r4, #0x10 lsls r0, r5, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, r8 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08037F74 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r3, [r7, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r7] lsls r3, r3, #3 add r3, r8 lsls r1, r5, #2 lsrs r4, r4, #0x1f adds r4, r5, r4 asrs r4, r4, #1 lsls r4, r4, #1 subs r1, r1, r4 add r1, sb ldr r2, _08037F78 @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #4] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _08037CD2 movs r3, #0 mov r8, r3 _08037D3E: mov r5, r8 lsls r4, r5, #0x10 asrs r3, r4, #0x10 movs r0, #0xb8 muls r0, r3, r0 ldr r1, _08037F7C @ =0x0200C668 adds r6, r0, r1 ldr r5, _08037F5C @ =0x020314E0 ldr r2, [r5] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r0, #0 mov sb, r0 adds r2, r2, r3 ldr r1, _08037F80 @ =0x0000041D adds r5, r2, r1 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] mov sl, r4 cmp r0, #0 beq _08037D9E movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 ldr r2, _08037F64 @ =0x086AEA68 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037D9E: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037F68 @ =0x03005000 mov ip, r5 ldr r1, _08037F6C @ =0xFFFFFE00 mov sb, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r3, #0x87 lsls r3, r3, #1 adds r3, r3, r0 mov r8, r3 _08037DBC: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r2, [r7] lsls r2, r2, #3 add r2, ip movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08037F74 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip add r5, r8 ldr r3, _08037F78 @ =0x000003FF adds r0, r3, #0 ands r5, r0 ldrh r0, [r2, #4] ldr r3, _08037F70 @ =0xFFFFFC00 adds r1, r3, #0 ands r0, r1 orrs r0, r5 strh r0, [r2, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037DBC movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r5, r0, #0x10 mov r8, r5 asrs r0, r0, #0x10 cmp r0, #1 ble _08037D3E ldr r6, _08037F84 @ =0x0200C7D8 ldr r1, _08037F5C @ =0x020314E0 ldr r0, [r1] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r2, _08037F5C @ =0x020314E0 ldr r0, [r2] adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r3, #0 mov sb, r3 ldr r0, [r2] ldr r1, _08037F88 @ =0x0000041F adds r5, r0, r1 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08037E7E ldr r4, _08037F64 @ =0x086AEA68 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037E7E: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037F68 @ =0x03005000 mov r8, r5 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x99 lsls r1, r1, #1 adds r1, r1, r0 mov ip, r1 _08037E98: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r7, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r0, _08037F74 @ =0x000001FF mov sl, r0 mov r2, sl ands r1, r2 ldrh r2, [r3, #2] ldr r0, _08037F6C @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r3, [r7, #4] adds r0, r0, r3 strb r0, [r1] ldrh r1, [r7] lsls r1, r1, #3 add r1, r8 add r5, ip ldr r2, _08037F78 @ =0x000003FF adds r0, r2, #0 ands r5, r0 ldrh r2, [r1, #4] ldr r0, _08037F70 @ =0xFFFFFC00 ands r0, r2 orrs r0, r5 strh r0, [r1, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037E98 ldr r6, _08037F8C @ =0x0200CAB8 ldr r3, _08037F5C @ =0x020314E0 ldr r0, [r3] ldr r4, _08037F90 @ =0x0000132C adds r0, r0, r4 ldr r0, [r0] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r3] adds r0, r0, r4 ldr r0, [r0] ldrh r0, [r0, #0x26] adds r0, #0xe strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 ldr r5, _08037F68 @ =0x03005000 adds r2, r2, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r5, sl ands r1, r5 ldrh r3, [r2, #2] ldr r0, _08037F6C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldr r1, _08037F5C @ =0x020314E0 ldr r0, [r1] adds r0, r0, r4 ldr r0, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08037F94 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r2, _08037F68 @ =0x03005000 adds r0, r0, r2 movs r1, #0xc8 strb r1, [r0] b _08037FA4 .align 2, 0 _08037F58: .4byte 0x0200C5B0 _08037F5C: .4byte 0x020314E0 _08037F60: .4byte 0x0000041C _08037F64: .4byte 0x086AEA68 _08037F68: .4byte 0x03005000 _08037F6C: .4byte 0xFFFFFE00 _08037F70: .4byte 0xFFFFFC00 _08037F74: .4byte 0x000001FF _08037F78: .4byte 0x000003FF _08037F7C: .4byte 0x0200C668 _08037F80: .4byte 0x0000041D _08037F84: .4byte 0x0200C7D8 _08037F88: .4byte 0x0000041F _08037F8C: .4byte 0x0200CAB8 _08037F90: .4byte 0x0000132C _08037F94: ldrh r1, [r6, #8] lsls r1, r1, #3 ldr r3, _08037FC0 @ =0x03005000 adds r1, r1, r3 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] _08037FA4: ldr r6, _08037FC4 @ =0x0200C890 ldr r5, _08037FC8 @ =0x020314E0 ldr r0, [r5] movs r2, #0x82 lsls r2, r2, #3 adds r1, r0, r2 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0xb bgt _08037FCC adds r0, r2, #1 b _08037FCE .align 2, 0 _08037FC0: .4byte 0x03005000 _08037FC4: .4byte 0x0200C890 _08037FC8: .4byte 0x020314E0 _08037FCC: movs r0, #0 _08037FCE: strh r0, [r1] movs r5, #0 mov r8, r5 ldr r0, _08038048 @ =0x020314E0 mov sl, r0 ldr r5, _0803804C @ =0x03005000 ldr r1, _08038050 @ =0xFFFFFE00 mov ip, r1 _08037FDE: mov r2, sl ldr r0, [r2] mov r3, r8 lsls r1, r3, #0x10 asrs r2, r1, #0x10 ldr r1, _08038054 @ =0x0000042A adds r0, r0, r1 adds r3, r0, r2 ldrb r4, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0803805C adds r1, r0, #0 cmp r1, #0 bge _08038000 adds r1, #3 _08038000: asrs r1, r1, #2 movs r0, #2 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 subs r0, r4, #1 strb r0, [r3] mov r0, sl ldr r3, [r0] lsls r2, r2, #2 adds r2, r3, r2 adds r0, r2, #0 adds r0, #0xd0 adds r1, r3, #0 adds r1, #0x4c ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 adds r0, #4 strh r0, [r6, #2] adds r2, #0xd2 adds r1, r3, #0 adds r1, #0x4e ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 ldr r2, _08038058 @ =0x000005FC adds r1, r3, r2 ldrh r1, [r1] subs r0, r0, r1 adds r3, #0xe6 ldrh r1, [r3] subs r0, r0, r1 adds r0, #4 b _08038062 .align 2, 0 _08038048: .4byte 0x020314E0 _0803804C: .4byte 0x03005000 _08038050: .4byte 0xFFFFFE00 _08038054: .4byte 0x0000042A _08038058: .4byte 0x000005FC _0803805C: movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xb4 _08038062: strh r0, [r6, #4] mov r3, r8 lsls r4, r3, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080380E8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r3, [r7, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 mov r0, sb lsls r1, r0, #0x10 asrs r1, r1, #0x10 movs r2, #0xb7 lsls r2, r2, #1 adds r1, r1, r2 ldr r2, _080380EC @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #4] ldr r0, _080380F0 @ =0xFFFFFC00 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r3, r4, #0x10 mov r8, r3 asrs r4, r4, #0x10 cmp r4, #3 ble _08037FDE ldr r6, _080380F4 @ =0x0200C948 ldr r5, _080380F8 @ =0x020314E0 ldr r0, [r5] ldr r2, _080380FC @ =0x00000412 adds r1, r0, r2 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x17 bgt _08038100 adds r0, r2, #1 b _08038102 .align 2, 0 _080380E8: .4byte 0x000001FF _080380EC: .4byte 0x000003FF _080380F0: .4byte 0xFFFFFC00 _080380F4: .4byte 0x0200C948 _080380F8: .4byte 0x020314E0 _080380FC: .4byte 0x00000412 _08038100: movs r0, #0 _08038102: strh r0, [r1] movs r5, #0 mov r8, r5 _08038108: ldr r1, _08038168 @ =0x020314E0 ldr r0, [r1] mov r2, r8 lsls r1, r2, #0x10 asrs r4, r1, #0x10 adds r0, r0, r4 ldr r3, _0803816C @ =0x0000042E adds r5, r0, r3 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] mov sl, r1 cmp r0, #0 beq _08038178 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #2 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sb, r1 subs r0, r7, #1 strb r0, [r5] ldr r5, _08038168 @ =0x020314E0 ldr r3, [r5] lsls r2, r4, #2 adds r2, r3, r2 ldr r1, _08038170 @ =0x00000434 adds r0, r2, r1 adds r1, r3, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 subs r0, #4 strh r0, [r6, #2] ldr r5, _08038174 @ =0x00000436 adds r2, r2, r5 adds r3, #0x5a ldrh r0, [r2] ldrh r1, [r3] subs r0, r0, r1 adds r0, #2 b _0803817E .align 2, 0 _08038168: .4byte 0x020314E0 _0803816C: .4byte 0x0000042E _08038170: .4byte 0x00000434 _08038174: .4byte 0x00000436 _08038178: movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xb4 _0803817E: strh r0, [r6, #4] mov r0, sl asrs r4, r0, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 ldr r1, _08038204 @ =0x03005000 adds r3, r3, r1 movs r5, #2 ldrsh r2, [r7, r5] movs r1, #2 ldrsh r0, [r6, r1] adds r2, r2, r0 ldr r5, _08038208 @ =0x000001FF adds r0, r5, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r5, _0803820C @ =0xFFFFFE00 adds r1, r5, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 ldr r0, _08038204 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r7] lsls r3, r3, #3 ldr r5, _08038204 @ =0x03005000 adds r3, r3, r5 mov r0, sb lsls r1, r0, #0x10 asrs r1, r1, #0x10 movs r2, #0xb7 lsls r2, r2, #1 adds r1, r1, r2 ldr r5, _08038210 @ =0x000003FF adds r0, r5, #0 ands r1, r0 ldrh r0, [r3, #4] ldr r5, _08038214 @ =0xFFFFFC00 adds r2, r5, #0 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 mov r8, r0 asrs r4, r4, #0x10 cmp r4, #2 ble _08038108 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 _08038204: .4byte 0x03005000 _08038208: .4byte 0x000001FF _0803820C: .4byte 0xFFFFFE00 _08038210: .4byte 0x000003FF _08038214: .4byte 0xFFFFFC00 thumb_func_start sub_38218 sub_38218: @ 0x08038218 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x74 movs r5, #0 ldr r0, _080382D8 @ =0x086AEA70 mov sl, r0 ldr r1, _080382DC @ =0x020314E0 mov r8, r1 add r6, sp, #0x64 ldr r4, _080382E0 @ =0x0202D880 ldr r3, _080382E4 @ =0x086BB420 _08038234: lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r2, r0, r4 adds r0, r0, r3 ldr r0, [r0] str r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x20 ble _08038234 mov r2, sl ldr r0, [r2, #0x60] ldr r1, [r2, #0x64] str r0, [sp, #0x60] str r1, [sp, #0x64] mov r3, r8 ldr r0, [r3] ldr r1, _080382E8 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] ldrh r0, [r0, #0x12] strb r0, [r6] movs r5, #0 mov r7, sl mov r4, r8 ldr r0, [r4] mov ip, r1 add r0, ip str r0, [sp, #0x70] mov sb, sl _08038276: lsls r0, r5, #0x10 asrs r3, r0, #0x10 lsls r2, r3, #3 adds r4, r2, r7 ldrb r1, [r4, #4] ldr r6, [sp, #0x70] ldr r0, [r6] movs r6, #0x12 ldrsh r0, [r0, r6] cmp r1, r0 bge _080382EC movs r0, #0xb cmp r0, r3 blt _080382BA mov r6, sb adds r4, r3, #0 _08038296: lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r0, r2, #1 lsls r0, r0, #3 mov r1, sp adds r3, r1, r0 lsls r0, r2, #3 adds r0, r0, r6 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r3] str r1, [r3, #4] subs r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, r4 bge _08038296 _080382BA: lsls r0, r5, #0x10 asrs r0, r0, #0xd mov r3, sp adds r2, r3, r0 ldr r0, [r7, #0x60] ldr r1, [r7, #0x64] str r0, [r2] str r1, [r2, #4] mov r4, r8 ldr r0, [r4] add r0, ip ldr r0, [r0] ldrh r0, [r0, #0x12] strb r0, [r2, #4] b _08038304 .align 2, 0 _080382D8: .4byte 0x086AEA70 _080382DC: .4byte 0x020314E0 _080382E0: .4byte 0x0202D880 _080382E4: .4byte 0x086BB420 _080382E8: .4byte 0x0000132C _080382EC: mov r6, sp adds r0, r6, r2 ldr r1, [r4] ldr r2, [r4, #4] str r1, [r0] str r2, [r0, #4] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb ble _08038276 _08038304: mov r2, sl ldr r0, [r2, #0x68] ldr r1, [r2, #0x6c] str r0, [sp, #0x68] str r1, [sp, #0x6c] movs r5, #0 ldr r7, _08038374 @ =0x020314E0 ldr r0, [r7] ldr r6, _08038378 @ =0x00000402 adds r3, r0, r6 _08038318: lsls r0, r5, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #3 add r0, sp ldrb r1, [r0, #4] movs r4, #0 ldrsh r0, [r3, r4] cmp r1, r0 bge _0803837C movs r0, #0xc cmp r0, r2 blt _08038356 adds r4, r2, #0 _08038332: lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r0, r2, #1 lsls r0, r0, #3 mov r1, sp adds r3, r1, r0 lsls r0, r2, #3 add r0, sp ldr r1, [r0, #4] ldr r0, [r0] str r0, [r3] str r1, [r3, #4] subs r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, r4 bge _08038332 _08038356: lsls r0, r5, #0x10 asrs r0, r0, #0xd mov r3, sp adds r2, r3, r0 mov r4, sl ldr r0, [r4, #0x68] ldr r1, [r4, #0x6c] str r0, [r2] str r1, [r2, #4] ldr r0, [r7] adds r0, r0, r6 ldrh r0, [r0] strb r0, [r2, #4] b _08038388 .align 2, 0 _08038374: .4byte 0x020314E0 _08038378: .4byte 0x00000402 _0803837C: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc ble _08038318 _08038388: movs r5, #0 ldr r6, _080383D8 @ =0x02031590 ldr r4, _080383DC @ =0x0202D880 _0803838E: lsls r2, r5, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 mov r1, sp adds r3, r1, r0 ldrb r0, [r3, #5] adds r0, #0xa adds r0, r0, r6 adds r1, r5, #0 adds r1, #0xa strb r1, [r0] adds r0, r2, #0 adds r0, #0xa lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r3] str r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r5, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #0xd ble _0803838E ldr r0, _080383DC @ =0x0202D880 movs r1, #0x21 ldr r2, _080383E0 @ =0x0200B3B8 bl sub_358 add sp, #0x74 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 _080383D8: .4byte 0x02031590 _080383DC: .4byte 0x0202D880 _080383E0: .4byte 0x0200B3B8 thumb_func_start sub_383E4 sub_383E4: @ 0x080383E4 push {r4, r5, r6, r7, lr} ldr r4, _08038438 @ =0x020314E0 ldr r0, [r4] movs r1, #0 movs r3, #0 strh r3, [r0, #0x18] strb r1, [r0, #0x17] ldr r0, [r4] strb r1, [r0, #0x13] ldr r0, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r0, r2 strb r1, [r0] ldr r5, [r4] adds r2, r5, #0 adds r2, #0x6c ldr r6, _0803843C @ =0x00002A30 adds r0, r6, #0 ldrh r7, [r2] adds r0, r0, r7 ldr r6, _08038440 @ =0x00000296 adds r1, r5, r6 strh r0, [r1] strh r3, [r2] ldr r7, _08038444 @ =0x00000283 adds r0, r5, r7 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r6, r4, #0 cmp r0, #3 bne _08038448 movs r0, #0xe1 lsls r0, r0, #2 adds r1, r5, r0 movs r0, #0x12 b _08038450 .align 2, 0 _08038438: .4byte 0x020314E0 _0803843C: .4byte 0x00002A30 _08038440: .4byte 0x00000296 _08038444: .4byte 0x00000283 _08038448: movs r2, #0xe1 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0xf _08038450: strb r0, [r1] ldr r0, [r6] movs r3, #0xe4 lsls r3, r3, #2 adds r1, r0, r3 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r4, _08038634 @ =0x00000389 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r5, _08038638 @ =0x00000383 adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] ldr r7, _0803863C @ =0x00000382 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r4, #3 strb r4, [r0] ldr r0, [r6] adds r5, #0xf adds r1, r0, r5 strh r3, [r1] ldr r7, _08038640 @ =0x0000132C adds r0, r0, r7 ldr r1, [r0] movs r0, #1 strb r0, [r1] ldr r0, [r6] ldr r1, _08038644 @ =0x00000386 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r5, #2 adds r1, r0, r5 strh r3, [r1] ldr r7, _08038648 @ =0x0000038E adds r1, r0, r7 strh r3, [r1] ldr r1, _0803864C @ =0x00000385 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] subs r5, #0xd adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] ldr r7, _08038650 @ =0x000006C4 adds r0, r0, r7 strb r4, [r0] ldr r0, [r6] adds r1, #0x5a adds r0, r0, r1 movs r1, #0xe strb r1, [r0] ldr r0, [r6] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r5, #0x61 adds r1, r0, r5 strh r3, [r1] ldr r7, _08038654 @ =0x000003EA adds r1, r0, r7 strh r3, [r1] ldr r1, _08038658 @ =0x000003DE adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r4, #4 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] subs r5, #6 adds r1, r0, r5 strh r3, [r1] subs r7, #6 adds r1, r0, r7 strh r3, [r1] movs r1, #0x88 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r4, #0x65 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r5, #0x64 adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] adds r7, #0x63 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] adds r1, #8 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r4, #4 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r5, #4 adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] adds r7, #7 adds r1, r0, r7 strh r3, [r1] ldr r2, _0803865C @ =0x00000452 adds r1, r0, r2 strh r3, [r1] adds r4, #0xb adds r1, r0, r4 strh r3, [r1] adds r5, #0xc adds r1, r0, r5 strh r3, [r1] adds r7, #2 adds r0, r0, r7 strh r3, [r0] movs r1, #0 adds r5, r6, #0 movs r4, #0 _0803855C: ldr r0, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r1, _08038660 @ =0x00000441 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r3, _08038664 @ =0x00000443 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] lsls r3, r2, #1 movs r7, #0x8b lsls r7, r7, #3 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] lsls r0, r2, #2 adds r1, r1, r0 ldr r3, _08038668 @ =0x0000045C adds r0, r1, r3 strh r4, [r0] adds r7, #6 adds r0, r1, r7 strh r4, [r0] adds r3, #8 adds r0, r1, r3 strh r4, [r0] adds r7, #8 adds r1, r1, r7 strh r4, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0803855C movs r1, #0 ldr r7, _0803866C @ =0x020314E0 ldr r5, _08038670 @ =0x0000046C movs r3, #0 ldr r4, _08038674 @ =0x0000046E _080385B4: ldr r2, [r7] lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r2, r2, r1 adds r1, r2, r5 strh r3, [r1] adds r2, r2, r4 strh r3, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080385B4 ldr r1, [r6] movs r0, #1 strb r0, [r1, #0x1a] bl sub_38A20 bl sub_395D8 bl sub_39A40 bl sub_3AE14 movs r0, #0x29 bl m4aSongNumStart ldr r2, _08038678 @ =0x040000D4 ldr r0, [r6] ldr r1, _0803867C @ =0x000005F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _08038680 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08038684 @ =0x05000220 str r0, [r2, #4] ldr r1, _08038688 @ =0x80000010 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, _0803868C @ =0x086AEAE0 ldr r0, [r0] str r0, [r2] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r0, _08038690 @ =0x80000080 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08038694 @ =0x081B36A4 str r0, [r2] ldr r0, _08038698 @ =0x05000320 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08038634: .4byte 0x00000389 _08038638: .4byte 0x00000383 _0803863C: .4byte 0x00000382 _08038640: .4byte 0x0000132C _08038644: .4byte 0x00000386 _08038648: .4byte 0x0000038E _0803864C: .4byte 0x00000385 _08038650: .4byte 0x000006C4 _08038654: .4byte 0x000003EA _08038658: .4byte 0x000003DE _0803865C: .4byte 0x00000452 _08038660: .4byte 0x00000441 _08038664: .4byte 0x00000443 _08038668: .4byte 0x0000045C _0803866C: .4byte 0x020314E0 _08038670: .4byte 0x0000046C _08038674: .4byte 0x0000046E _08038678: .4byte 0x040000D4 _0803867C: .4byte 0x000005F6 _08038680: .4byte 0x08137E14 _08038684: .4byte 0x05000220 _08038688: .4byte 0x80000010 _0803868C: .4byte 0x086AEAE0 _08038690: .4byte 0x80000080 _08038694: .4byte 0x081B36A4 _08038698: .4byte 0x05000320 thumb_func_start sub_3869C sub_3869C: @ 0x0803869C push {r4, r5, r6, lr} ldr r0, _080386B8 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _080386AE b _0803899C _080386AE: lsls r0, r0, #2 ldr r1, _080386BC @ =_080386C0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080386B8: .4byte 0x020314E0 _080386BC: .4byte _080386C0 _080386C0: @ jump table .4byte _080386DC @ case 0 .4byte _0803899C @ case 1 .4byte _080387D2 @ case 2 .4byte _08038848 @ case 3 .4byte _080388C8 @ case 4 .4byte _08038924 @ case 5 .4byte _08038984 @ case 6 _080386DC: ldr r6, _08038704 @ =0x020314E0 ldr r0, [r6] ldr r1, _08038708 @ =0x000005F7 adds r0, r0, r1 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r5, [r6] ldrh r1, [r5, #0x18] ldr r0, _0803870C @ =0x000001F3 cmp r1, r0 bhi _08038714 adds r1, r5, #0 adds r1, #0xe6 ldr r0, _08038710 @ =0x0000FFC0 strh r0, [r1] ldrh r0, [r5, #0x18] adds r0, #1 strh r0, [r5, #0x18] b _0803899C .align 2, 0 _08038704: .4byte 0x020314E0 _08038708: .4byte 0x000005F7 _0803870C: .4byte 0x000001F3 _08038710: .4byte 0x0000FFC0 _08038714: ldr r0, _080387A4 @ =0x00000333 cmp r1, r0 bhi _080387C4 ldrh r0, [r5, #0x18] ldr r4, _080387A8 @ =0xFFFFFE0C adds r0, r0, r4 movs r1, #5 bl __divsi3 subs r0, #0x40 adds r1, r5, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r5, #0x18] adds r0, r0, r4 movs r1, #0x18 bl __divsi3 ldr r2, _080387AC @ =0x00000382 adds r1, r5, r2 strb r0, [r1] ldr r0, [r6] adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 ble _0803874E movs r0, #5 strb r0, [r1] _0803874E: ldr r4, [r6] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] ldr r1, _080387B0 @ =0x040000D4 ldr r3, _080387B4 @ =0x086AEAE0 adds r2, r4, r2 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _080387B8 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] adds r0, #0x80 str r0, [r1] ldr r0, _080387BC @ =0x05000080 str r0, [r1, #4] ldr r0, _080387C0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] adds r0, r4, #0 adds r0, #0xe6 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 bge _0803879E b _0803899C _0803879E: movs r0, #0 strb r0, [r4, #0x1a] b _0803899C .align 2, 0 _080387A4: .4byte 0x00000333 _080387A8: .4byte 0xFFFFFE0C _080387AC: .4byte 0x00000382 _080387B0: .4byte 0x040000D4 _080387B4: .4byte 0x086AEAE0 _080387B8: .4byte 0x80000030 _080387BC: .4byte 0x05000080 _080387C0: .4byte 0x80000040 _080387C4: adds r0, r5, #0 adds r0, #0xe6 strh r3, [r0] strb r2, [r5, #0x13] ldr r0, [r6] strh r3, [r0, #0x18] b _0803899C _080387D2: ldr r2, _080387E4 @ =0x020314E0 ldr r3, [r2] ldrh r0, [r3, #0x18] cmp r0, #0x77 bhi _080387E8 adds r0, #1 strh r0, [r3, #0x18] b _0803899C .align 2, 0 _080387E4: .4byte 0x020314E0 _080387E8: movs r1, #0 movs r0, #3 strb r0, [r3, #0x13] ldr r2, [r2] strh r1, [r2, #0x18] ldr r3, _08038830 @ =gMain movs r4, #0xe9 lsls r4, r4, #3 adds r0, r3, r4 movs r4, #1 movs r1, #1 strh r1, [r0] movs r5, #0xd2 lsls r5, r5, #3 adds r0, r3, r5 strh r1, [r0] ldr r1, _08038834 @ =0x040000D4 ldr r0, _08038838 @ =0x0813C874 str r0, [r1] ldr r0, _0803883C @ =0x06015800 str r0, [r1, #4] ldr r0, _08038840 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x88 strh r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] ldr r1, _08038844 @ =0x000005FA adds r2, r2, r1 strb r4, [r2] b _0803899C .align 2, 0 _08038830: .4byte gMain _08038834: .4byte 0x040000D4 _08038838: .4byte 0x0813C874 _0803883C: .4byte 0x06015800 _08038840: .4byte 0x80001000 _08038844: .4byte 0x000005FA _08038848: bl sub_351A8 ldr r4, _08038890 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803885A movs r0, #0xb5 strh r0, [r1, #0x18] _0803885A: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _08038870 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08038894 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08038898 @ =0x02FAF080 str r0, [r1, #0x3c] _08038870: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803889C cmp r0, #0x14 bne _08038886 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08038886: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _080388B0 .align 2, 0 _08038890: .4byte 0x020314E0 _08038894: .4byte 0x00061A80 _08038898: .4byte 0x02FAF080 _0803889C: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _080388BC @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _080388B0: ldr r0, _080388C0 @ =0x020314E0 ldr r0, [r0] ldr r4, _080388C4 @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _0803899A .align 2, 0 _080388BC: .4byte 0x00000283 _080388C0: .4byte 0x020314E0 _080388C4: .4byte 0x000005FA _080388C8: ldr r2, _0803890C @ =0x020314E0 ldr r1, [r2] movs r0, #5 strb r0, [r1, #0x13] ldr r2, [r2] movs r0, #0x8c strh r0, [r2, #0x18] ldr r3, _08038910 @ =gMain movs r5, #0xe9 lsls r5, r5, #3 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _08038914 @ =0x040000D4 ldr r0, _08038918 @ =0x0813C874 str r0, [r1] ldr r0, _0803891C @ =0x06015800 str r0, [r1, #4] ldr r0, _08038920 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0xe5 lsls r5, r5, #2 adds r2, r2, r5 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _0803899C .align 2, 0 _0803890C: .4byte 0x020314E0 _08038910: .4byte gMain _08038914: .4byte 0x040000D4 _08038918: .4byte 0x0813C874 _0803891C: .4byte 0x06015800 _08038920: .4byte 0x80001000 _08038924: bl sub_351A8 ldr r2, _0803895C @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _08038936 movs r0, #0xb5 strh r0, [r1, #0x18] _08038936: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803894C movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r2] ldr r0, _08038960 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08038964 @ =0x02FAF080 str r0, [r1, #0x3c] _0803894C: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _08038968 adds r0, #1 strh r0, [r1, #0x18] b _0803899C .align 2, 0 _0803895C: .4byte 0x020314E0 _08038960: .4byte 0x00061A80 _08038964: .4byte 0x02FAF080 _08038968: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r2] ldr r0, _08038980 @ =0x00000283 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803899C .align 2, 0 _08038980: .4byte 0x00000283 _08038984: bl sub_351A8 ldr r2, _08038A0C @ =0x020314E0 ldr r0, [r2] ldr r1, _08038A10 @ =0x00000386 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r2, _08038A14 @ =0x000005FA adds r0, r0, r2 _0803899A: strb r1, [r0] _0803899C: bl sub_39A40 bl sub_38A20 bl sub_395D8 bl sub_3AE14 ldr r0, _08038A0C @ =0x020314E0 ldr r1, [r0] movs r4, #0xa5 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080389E4 ldr r5, _08038A18 @ =0x00000296 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #1 bhi _080389E4 ldr r4, _08038A1C @ =gMain ldrb r0, [r4, #0xf] cmp r0, #0 bne _080389E4 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _080389E4: ldr r0, _08038A0C @ =0x020314E0 ldr r1, [r0] ldr r2, _08038A10 @ =0x00000386 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08038A02 ldr r4, _08038A14 @ =0x000005FA adds r1, r1, r4 movs r0, #1 strb r0, [r1] bl sub_350F0 _08038A02: bl sub_472E4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08038A0C: .4byte 0x020314E0 _08038A10: .4byte 0x00000386 _08038A14: .4byte 0x000005FA _08038A18: .4byte 0x00000296 _08038A1C: .4byte gMain thumb_func_start sub_38A20 sub_38A20: @ 0x08038A20 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08038AE8 @ =0x020314E0 ldr r1, [r0] ldr r2, _08038AEC @ =0x00000452 adds r5, r1, r2 ldrh r4, [r5] mov r8, r0 cmp r4, #0 beq _08038AC6 subs r0, r4, #1 strh r0, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _08038AB0 ldr r0, _08038AF0 @ =0x00000389 adds r1, r1, r0 movs r0, #1 strb r0, [r1] mov r1, r8 ldr r0, [r1] adds r0, r0, r2 ldrh r0, [r0] cmp r0, #4 bne _08038AB0 ldr r0, _08038AF4 @ =0x02032F20 ldr r1, _08038AF8 @ =0x086A1E74 bl MPlayStart movs r0, #7 bl sub_11B0 mov r2, r8 ldr r1, [r2] ldr r0, _08038AFC @ =0x0007A120 str r0, [r1, #0x3c] ldr r2, _08038B00 @ =0x00000385 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r6, r8 ldr r3, [r6] adds r2, r3, r2 movs r1, #0xe1 lsls r1, r1, #2 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _08038AB0 ldr r2, _08038B04 @ =0x00000387 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08038AB0 adds r1, r3, r4 movs r0, #7 strb r0, [r1] _08038AB0: ldr r1, _08038AE8 @ =0x020314E0 ldr r5, [r1] ldr r3, _08038AEC @ =0x00000452 adds r0, r5, r3 ldrh r4, [r0] mov r8, r1 cmp r4, #0 bne _08038AC6 ldr r6, _08038AF0 @ =0x00000389 adds r0, r5, r6 strb r4, [r0] _08038AC6: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xd bls _08038ADE bl _08039562 _08038ADE: lsls r0, r0, #2 ldr r1, _08038B08 @ =_08038B0C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038AE8: .4byte 0x020314E0 _08038AEC: .4byte 0x00000452 _08038AF0: .4byte 0x00000389 _08038AF4: .4byte 0x02032F20 _08038AF8: .4byte 0x086A1E74 _08038AFC: .4byte 0x0007A120 _08038B00: .4byte 0x00000385 _08038B04: .4byte 0x00000387 _08038B08: .4byte _08038B0C _08038B0C: @ jump table .4byte _08038B44 @ case 0 .4byte _08038B88 @ case 1 .4byte _08038CE0 @ case 2 .4byte _08038D80 @ case 3 .4byte _08038E0C @ case 4 .4byte _08038EF2 @ case 5 .4byte _08038FE4 @ case 6 .4byte _080390D8 @ case 7 .4byte _08039562 @ case 8 .4byte _080391F0 @ case 9 .4byte _0803927C @ case 10 .4byte _08039350 @ case 11 .4byte _08039480 @ case 12 .4byte _08039562 @ case 13 _08038B44: ldr r2, _08038B80 @ =0x020314E0 ldr r0, [r2] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r0, r3 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r4, _08038B84 @ =0x000003E2 adds r2, r0, r4 movs r1, #0xc strh r1, [r2] movs r6, #0xf9 lsls r6, r6, #2 adds r1, r0, r6 strh r3, [r1] movs r2, #0xfa lsls r2, r2, #2 adds r1, r0, r2 strh r3, [r1] adds r4, #8 adds r1, r0, r4 strh r3, [r1] adds r6, #0x6c adds r0, r0, r6 strh r3, [r0] bl _08039562 .align 2, 0 _08038B80: .4byte 0x020314E0 _08038B84: .4byte 0x000003E2 _08038B88: ldr r5, _08038C00 @ =0x086AEDA4 ldr r7, _08038C04 @ =0x020314E0 ldr r6, [r7] movs r0, #0x8a lsls r0, r0, #3 adds r4, r6, r0 ldrh r0, [r4] movs r1, #0x8c lsls r1, r1, #1 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xe bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r5 ldr r5, _08038C08 @ =0x040000D4 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #5 ldr r2, _08038C0C @ =0x081B0DE4 adds r0, r0, r2 str r0, [r5] ldr r3, _08038C10 @ =0x050003E0 mov ip, r3 str r3, [r5, #4] ldr r0, _08038C14 @ =0x80000010 mov sl, r0 str r0, [r5, #8] ldr r0, [r5, #8] adds r3, r6, #0 ldrh r0, [r4] adds r0, #1 movs r1, #0 mov sb, r1 strh r0, [r4] ldr r2, _08038C18 @ =0x086AEAF8 ldr r4, _08038C1C @ =0x000003E2 mov r8, r4 adds r4, r3, r4 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _08038C20 adds r0, r1, #1 strh r0, [r3] b _08038CA4 .align 2, 0 _08038C00: .4byte 0x086AEDA4 _08038C04: .4byte 0x020314E0 _08038C08: .4byte 0x040000D4 _08038C0C: .4byte 0x081B0DE4 _08038C10: .4byte 0x050003E0 _08038C14: .4byte 0x80000010 _08038C18: .4byte 0x086AEAF8 _08038C1C: .4byte 0x000003E2 _08038C20: mov r2, sb strh r2, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _08038C6E strh r2, [r4] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #4 strb r0, [r1] ldr r0, [r7] ldr r4, _08038CC0 @ =0x000003DD adds r0, r0, r4 movs r1, #6 strb r1, [r0] ldr r0, [r7] ldr r6, _08038CC4 @ =0x000003E1 adds r0, r0, r6 movs r1, #0 strb r1, [r0] ldr r0, [r7] movs r1, #0xe4 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x3c strh r1, [r0] ldr r0, _08038CC8 @ =0x081B0DE4 adds r0, #0xa0 str r0, [r5] mov r2, ip str r2, [r5, #4] mov r3, sl str r3, [r5, #8] ldr r0, [r5, #8] _08038C6E: ldr r1, [r7] mov r4, r8 adds r0, r1, r4 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0x20 bne _08038C86 movs r0, #0xa5 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #1 strb r0, [r1] _08038C86: ldr r0, [r7] add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x21 bne _08038CA4 ldr r0, _08038CCC @ =0x02032F20 ldr r1, _08038CD0 @ =0x086A1F10 bl MPlayStart ldr r0, [r7] ldr r2, _08038CD4 @ =0x00000387 adds r0, r0, r2 movs r1, #1 strb r1, [r0] _08038CA4: ldr r0, _08038CD8 @ =0x020314E0 ldr r0, [r0] ldr r3, _08038CDC @ =0x00000392 adds r1, r0, r3 ldrh r0, [r1] cmp r0, #2 bhi _08038CB6 bl _08039562 _08038CB6: subs r0, #1 strh r0, [r1] bl _08039562 .align 2, 0 _08038CC0: .4byte 0x000003DD _08038CC4: .4byte 0x000003E1 _08038CC8: .4byte 0x081B0DE4 _08038CCC: .4byte 0x02032F20 _08038CD0: .4byte 0x086A1F10 _08038CD4: .4byte 0x00000387 _08038CD8: .4byte 0x020314E0 _08038CDC: .4byte 0x00000392 _08038CE0: ldr r2, _08038D60 @ =0x086AEAF8 ldr r5, _08038D64 @ =0x020314E0 ldr r4, [r5] ldr r6, _08038D68 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038D08 b _080394A6 _08038D08: movs r2, #0 strh r2, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc bne _08038D3A strh r2, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #4 strb r0, [r1] ldr r0, [r5] ldr r4, _08038D6C @ =0x000003DD adds r0, r0, r4 movs r1, #6 strb r1, [r0] ldr r0, [r5] ldr r1, _08038D70 @ =0x000003E1 adds r0, r0, r1 movs r1, #2 strb r1, [r0] _08038D3A: ldr r1, [r5] adds r0, r1, r6 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xb beq _08038D4A bl _08039562 _08038D4A: ldr r3, _08038D74 @ =0x00000387 adds r1, r1, r3 movs r0, #1 strb r0, [r1] ldr r0, _08038D78 @ =0x02032F20 ldr r1, _08038D7C @ =0x086A1F10 bl MPlayStart bl _08039562 .align 2, 0 _08038D60: .4byte 0x086AEAF8 _08038D64: .4byte 0x020314E0 _08038D68: .4byte 0x000003E2 _08038D6C: .4byte 0x000003DD _08038D70: .4byte 0x000003E1 _08038D74: .4byte 0x00000387 _08038D78: .4byte 0x02032F20 _08038D7C: .4byte 0x086A1F10 _08038D80: ldr r2, _08038DF0 @ =0x086AEAF8 ldr r5, _08038DF4 @ =0x020314E0 ldr r4, [r5] ldr r6, _08038DF8 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038DA8 b _080394A6 _08038DA8: movs r2, #0 movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 bne _08038DD0 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #0xb strb r0, [r1] ldr r0, [r5] ldr r4, _08038DFC @ =0x000003E1 adds r0, r0, r4 strb r2, [r0] _08038DD0: ldr r1, [r5] adds r0, r1, r6 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #5 beq _08038DDE b _08039562 _08038DDE: ldr r3, _08038E00 @ =0x00000387 adds r0, r1, r3 strb r2, [r0] ldr r0, _08038E04 @ =0x02032F20 ldr r1, _08038E08 @ =0x086A1FC4 bl MPlayStart b _08039562 .align 2, 0 _08038DF0: .4byte 0x086AEAF8 _08038DF4: .4byte 0x020314E0 _08038DF8: .4byte 0x000003E2 _08038DFC: .4byte 0x000003E1 _08038E00: .4byte 0x00000387 _08038E04: .4byte 0x02032F20 _08038E08: .4byte 0x086A1FC4 _08038E0C: ldr r2, _08038E68 @ =0x086AEAF8 ldr r4, _08038E6C @ =0x020314E0 mov r8, r4 ldr r3, [r4] ldr r6, _08038E70 @ =0x000003E2 adds r4, r3, r6 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r3, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038E36 b _080394A6 _08038E36: movs r6, #0 mov sb, r6 movs r7, #0 strh r7, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r6, r0, #0x10 cmp r6, #4 beq _08038E4E b _08039562 _08038E4E: ldr r0, _08038E74 @ =0x000003E1 mov ip, r0 adds r1, r3, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08038E78 strh r7, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08039562 .align 2, 0 _08038E68: .4byte 0x086AEAF8 _08038E6C: .4byte 0x020314E0 _08038E70: .4byte 0x000003E2 _08038E74: .4byte 0x000003E1 _08038E78: ldr r1, _08038EB8 @ =0x000003DD mov sl, r1 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #3 bne _08038ECE ldr r2, _08038EBC @ =0x00000385 adds r0, r3, r2 subs r2, #1 adds r1, r3, r2 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 blt _08038EC0 strh r7, [r4] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r3, r4 strb r6, [r0] mov r6, r8 ldr r0, [r6] add r0, ip mov r1, sb strb r1, [r0] ldr r0, [r6] add r0, sl movs r1, #6 strb r1, [r0] b _08039562 .align 2, 0 _08038EB8: .4byte 0x000003DD _08038EBC: .4byte 0x00000385 _08038EC0: strh r6, [r4] ldrb r1, [r5] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r3, r2 strb r1, [r0] b _08039562 _08038ECE: movs r0, #0x22 strh r0, [r4] ldrb r1, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r3, r4 strb r1, [r0] mov r6, r8 ldr r0, [r6] movs r1, #0x88 lsls r1, r1, #3 adds r0, r0, r1 mov r2, sb strb r2, [r0] ldr r0, [r6] add r0, ip strb r2, [r0] b _08039562 _08038EF2: ldr r2, _08038F44 @ =0x086AEAF8 mov r3, r8 ldr r4, [r3] ldr r6, _08038F48 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038F1A b _080394A6 _08038F1A: movs r2, #0 strh r2, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x43 bne _08038F74 ldr r6, _08038F4C @ =0x000003E1 adds r1, r4, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08038F50 movs r0, #0x2d strh r0, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08038F74 .align 2, 0 _08038F44: .4byte 0x086AEAF8 _08038F48: .4byte 0x000003E2 _08038F4C: .4byte 0x000003E1 _08038F50: strh r2, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #4 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _08038FC8 @ =0x000003E1 adds r0, r0, r2 movs r1, #1 strb r1, [r0] mov r3, r8 ldr r0, [r3] ldr r4, _08038FCC @ =0x000003DD adds r0, r0, r4 movs r1, #3 strb r1, [r0] _08038F74: ldr r5, _08038FD0 @ =0x020314E0 ldr r3, [r5] ldr r4, _08038FD4 @ =0x000003E2 adds r0, r3, r4 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0x34 bne _08038FA8 ldr r0, _08038FC8 @ =0x000003E1 adds r2, r3, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 movs r6, #0x8b lsls r6, r6, #3 adds r1, r3, r6 adds r1, r1, r0 movs r0, #0 strh r0, [r1] movs r1, #0 ldrsb r1, [r2, r1] ldr r2, _08038FD8 @ =0x00000441 adds r0, r3, r2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] _08038FA8: ldr r0, [r5] adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x32 beq _08038FBE cmp r0, #0x38 beq _08038FBE cmp r0, #0x3e beq _08038FBE b _08039562 _08038FBE: ldr r0, _08038FDC @ =0x02032F20 ldr r1, _08038FE0 @ =0x086A1FE4 bl MPlayStart b _08039562 .align 2, 0 _08038FC8: .4byte 0x000003E1 _08038FCC: .4byte 0x000003DD _08038FD0: .4byte 0x020314E0 _08038FD4: .4byte 0x000003E2 _08038FD8: .4byte 0x00000441 _08038FDC: .4byte 0x02032F20 _08038FE0: .4byte 0x086A1FE4 _08038FE4: ldr r2, _08039010 @ =0x086AEAF8 mov r4, r8 ldr r3, [r4] ldr r6, _08039014 @ =0x000003E2 adds r4, r3, r6 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r3, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08039018 adds r0, r2, #1 strh r0, [r1] b _08039098 .align 2, 0 _08039010: .4byte 0x086AEAF8 _08039014: .4byte 0x000003E2 _08039018: movs r0, #0 strh r0, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x28 bne _08039040 ldr r6, _080390B4 @ =0x000003E1 adds r1, r3, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08039040 movs r0, #0x22 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08039040: ldr r4, _080390B8 @ =0x020314E0 ldr r1, [r4] ldr r5, _080390BC @ =0x000003E2 adds r3, r1, r5 movs r2, #0 ldrsh r0, [r3, r2] cmp r0, #0x2d bne _08039066 movs r2, #0 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #5 strb r0, [r1] ldr r0, [r4] ldr r6, _080390B4 @ =0x000003E1 adds r0, r0, r6 strb r2, [r0] _08039066: ldr r2, [r4] movs r1, #0x88 lsls r1, r1, #3 adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _08039098 adds r0, r2, r5 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x2a bne _08039098 ldr r0, _080390C0 @ =gMain ldr r6, _080390C4 @ =0x00001438 adds r0, r0, r6 movs r1, #1 strh r1, [r0] ldr r1, _080390C8 @ =0x00000456 adds r0, r2, r1 strh r3, [r0] ldr r0, _080390CC @ =0x02032F20 ldr r1, _080390D0 @ =0x086A2038 bl MPlayStart _08039098: ldr r0, _080390B8 @ =0x020314E0 ldr r1, [r0] ldr r2, _080390D4 @ =0x00000452 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #6 bhi _080390A8 b _08039562 _080390A8: movs r3, #0x88 lsls r3, r3, #3 adds r1, r1, r3 movs r0, #1 strb r0, [r1] b _08039562 .align 2, 0 _080390B4: .4byte 0x000003E1 _080390B8: .4byte 0x020314E0 _080390BC: .4byte 0x000003E2 _080390C0: .4byte gMain _080390C4: .4byte 0x00001438 _080390C8: .4byte 0x00000456 _080390CC: .4byte 0x02032F20 _080390D0: .4byte 0x086A2038 _080390D4: .4byte 0x00000452 _080390D8: mov r4, r8 ldr r0, [r4] movs r6, #0xa5 lsls r6, r6, #2 adds r0, r0, r6 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, [r4] ldr r1, _08039158 @ =0x00000283 adds r0, r4, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bne _08039174 movs r2, #0xf7 lsls r2, r2, #2 adds r1, r4, r2 movs r0, #0xa strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803915C @ =0x000003E2 adds r0, r0, r4 movs r4, #0 strh r5, [r0] ldr r3, _08039160 @ =gMain ldr r6, _08039164 @ =0x00000A28 adds r0, r3, r6 movs r1, #1 strh r1, [r0] movs r2, #0x97 lsls r2, r2, #4 adds r0, r3, r2 strh r1, [r0] mov r6, r8 ldr r1, [r6] movs r0, #0xb3 lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0xc5 strh r0, [r2] ldr r2, _08039168 @ =0x0000038E adds r0, r1, r2 strh r5, [r0] movs r6, #0xb5 lsls r6, r6, #3 adds r1, r1, r6 strb r4, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0803916C @ =0x000005A6 adds r1, r0, r2 strh r5, [r1] ldr r4, _08039170 @ =0x000005A4 adds r0, r0, r4 movs r1, #2 strb r1, [r0] adds r2, r3, #0 b _080391A4 .align 2, 0 _08039158: .4byte 0x00000283 _0803915C: .4byte 0x000003E2 _08039160: .4byte gMain _08039164: .4byte 0x00000A28 _08039168: .4byte 0x0000038E _0803916C: .4byte 0x000005A6 _08039170: .4byte 0x000005A4 _08039174: movs r6, #0xf7 lsls r6, r6, #2 adds r1, r4, r6 movs r0, #9 strb r0, [r1] mov r0, r8 ldr r1, [r0] ldr r3, _080391D4 @ =0x000003E2 adds r2, r1, r3 movs r0, #0x4f strh r0, [r2] ldr r2, _080391D8 @ =gMain movs r0, #0x80 strb r0, [r2, #0xf] movs r4, #0xe2 lsls r4, r4, #2 adds r1, r1, r4 movs r0, #2 strb r0, [r1] mov r6, r8 ldr r0, [r6] ldr r1, _080391DC @ =0x00000392 adds r0, r0, r1 strh r5, [r0] _080391A4: ldr r3, _080391E0 @ =0x00000E78 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 beq _080391C4 mov r4, r8 ldr r0, [r4] ldr r6, _080391E4 @ =0x00000445 adds r0, r0, r6 movs r1, #7 strb r1, [r0] ldr r0, [r4] ldr r1, _080391E8 @ =0x0000044E adds r0, r0, r1 movs r1, #1 strh r1, [r0] _080391C4: ldr r0, _080391EC @ =0x020314E0 ldr r0, [r0] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0 strh r1, [r0] b _08039562 .align 2, 0 _080391D4: .4byte 0x000003E2 _080391D8: .4byte gMain _080391DC: .4byte 0x00000392 _080391E0: .4byte 0x00000E78 _080391E4: .4byte 0x00000445 _080391E8: .4byte 0x0000044E _080391EC: .4byte 0x020314E0 _080391F0: ldr r2, _08039264 @ =0x086AEAF8 ldr r5, _08039268 @ =0x020314E0 ldr r4, [r5] ldr r6, _0803926C @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08039218 b _080394A6 _08039218: movs r2, #0 strh r2, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x6c bne _08039242 movs r0, #0x6b strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #0xd strb r0, [r1] ldr r1, [r5] movs r0, #2 strb r0, [r1, #0x13] ldr r0, [r5] strh r2, [r0, #0x18] _08039242: ldr r1, [r5] adds r0, r1, r6 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x61 beq _08039250 b _08039562 _08039250: ldr r6, _08039270 @ =0x00000387 adds r1, r1, r6 movs r0, #0 strb r0, [r1] ldr r0, _08039274 @ =0x02032F20 ldr r1, _08039278 @ =0x086A20F8 bl MPlayStart b _08039562 .align 2, 0 _08039264: .4byte 0x086AEAF8 _08039268: .4byte 0x020314E0 _0803926C: .4byte 0x000003E2 _08039270: .4byte 0x00000387 _08039274: .4byte 0x02032F20 _08039278: .4byte 0x086A20F8 _0803927C: ldr r2, _080392A8 @ =0x086AEAF8 mov r0, r8 ldr r3, [r0] ldr r1, _080392AC @ =0x000003E2 adds r4, r3, r1 movs r6, #0 ldrsh r1, [r4, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _080392B0 adds r0, r1, #1 strh r0, [r3] b _080392C4 .align 2, 0 _080392A8: .4byte 0x086AEAF8 _080392AC: .4byte 0x000003E2 _080392B0: movs r1, #0 strh r1, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bne _080392C4 strh r1, [r4] _080392C4: mov r2, r8 ldr r6, [r2] ldr r3, _0803933C @ =0x0000038E adds r4, r6, r3 ldrh r5, [r4] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _08039340 @ =0xFFFFFE0C cmp r0, r1 ble _08039304 subs r0, r1, r0 movs r1, #0x1e bl __divsi3 adds r0, r5, r0 strh r0, [r4] movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 adds r2, r6, #0 adds r2, #0xe6 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 rsbs r1, r1, #0 cmp r0, r1 bge _08039304 ldr r0, _08039344 @ =0x0000FFCE strh r0, [r2] _08039304: ldr r3, _08039348 @ =0x020314E0 ldr r1, [r3] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _08039320 ldr r4, _0803934C @ =0x000003E2 adds r1, r1, r4 movs r0, #0x72 strh r0, [r1] _08039320: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x16 beq _08039330 b _08039562 _08039330: ldr r6, _0803934C @ =0x000003E2 adds r1, r1, r6 movs r0, #0x73 strh r0, [r1] b _08039562 .align 2, 0 _0803933C: .4byte 0x0000038E _08039340: .4byte 0xFFFFFE0C _08039344: .4byte 0x0000FFCE _08039348: .4byte 0x020314E0 _0803934C: .4byte 0x000003E2 _08039350: ldr r5, _08039428 @ =0x020314E0 ldr r2, [r5] movs r6, #0xf9 lsls r6, r6, #2 adds r1, r2, r6 ldrh r3, [r1] ldr r0, _0803942C @ =0x0000012B cmp r3, r0 bhi _08039440 adds r0, r3, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xda bne _080393AE ldr r0, _08039430 @ =0x00000456 adds r1, r2, r0 movs r0, #0 strh r0, [r1] bl sub_C00 ldr r4, [r5] movs r1, #0x64 bl __umodsi3 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r2, #0xfa lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 movs r3, #0xfa lsls r3, r3, #2 adds r4, r4, r3 strh r0, [r4] bl sub_C00 ldr r4, [r5] movs r1, #0x64 bl __umodsi3 lsls r0, r0, #2 adds r0, #0xc8 ldr r1, _08039434 @ =0x000003EA adds r4, r4, r1 strh r0, [r4] _080393AE: ldr r0, [r5] adds r0, r0, r6 ldrh r1, [r0] movs r0, #0x82 lsls r0, r0, #1 cmp r1, r0 beq _080393BE b _08039562 _080393BE: movs r1, #0 mov r8, r5 mov ip, r8 ldr r7, _08039438 @ =0x00000441 movs r6, #0x8b lsls r6, r6, #3 movs r5, #0 _080393CC: mov r3, ip ldr r2, [r3] lsls r0, r1, #0x10 asrs r4, r0, #0x10 adds r0, r2, r7 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #3 bne _080393FE lsls r1, r4, #1 adds r0, r2, r6 adds r0, r0, r1 strh r5, [r0] movs r0, #4 strb r0, [r3] mov r0, r8 ldr r2, [r0] ldr r1, _0803943C @ =0x000005AC adds r2, r2, r1 ldr r0, [r2] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 str r0, [r2] _080393FE: mov r2, ip ldr r1, [r2] adds r0, r1, r7 adds r2, r0, r4 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _0803941A lsls r0, r4, #1 adds r1, r1, r6 adds r1, r1, r0 strh r5, [r1] movs r0, #5 strb r0, [r2] _0803941A: adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080393CC b _08039562 .align 2, 0 _08039428: .4byte 0x020314E0 _0803942C: .4byte 0x0000012B _08039430: .4byte 0x00000456 _08039434: .4byte 0x000003EA _08039438: .4byte 0x00000441 _0803943C: .4byte 0x000005AC _08039440: movs r0, #0 strh r0, [r1] ldr r3, _08039470 @ =0x000003E2 adds r1, r2, r3 movs r0, #0x43 strh r0, [r1] movs r4, #0xf7 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0xc strb r0, [r1] ldr r0, [r5] ldr r6, _08039474 @ =0x00000387 adds r0, r0, r6 movs r1, #2 strb r1, [r0] ldr r0, _08039478 @ =0x02032F20 ldr r1, _0803947C @ =0x086A1F10 bl MPlayStart movs r0, #8 bl sub_11B0 b _08039562 .align 2, 0 _08039470: .4byte 0x000003E2 _08039474: .4byte 0x00000387 _08039478: .4byte 0x02032F20 _0803947C: .4byte 0x086A1F10 _08039480: ldr r2, _080394AC @ =0x086AEAF8 mov r7, r8 ldr r4, [r7] ldr r6, _080394B0 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _080394B4 _080394A6: adds r0, r2, #1 strh r0, [r1] b _08039562 .align 2, 0 _080394AC: .4byte 0x086AEAF8 _080394B0: .4byte 0x000003E2 _080394B4: movs r5, #0 strh r5, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x4f bne _0803951C ldr r0, _080394F0 @ =0x000003E1 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _080394F4 movs r0, #0x4e strh r0, [r3] movs r2, #0xf7 lsls r2, r2, #2 adds r1, r4, r2 movs r0, #0xb strb r0, [r1] ldr r1, [r7] ldr r3, _080394F0 @ =0x000003E1 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803951C .align 2, 0 _080394F0: .4byte 0x000003E1 _080394F4: movs r0, #0 strb r0, [r1] mov r4, r8 ldr r1, [r4] adds r2, r1, r6 movs r0, #8 strh r0, [r2] movs r6, #0xf7 lsls r6, r6, #2 adds r1, r1, r6 movs r0, #2 strb r0, [r1] ldr r0, [r4] movs r2, #0xfa lsls r2, r2, #2 adds r1, r0, r2 strh r5, [r1] ldr r3, _080395B0 @ =0x000003EA adds r0, r0, r3 strh r5, [r0] _0803951C: ldr r3, _080395B4 @ =0x020314E0 ldr r1, [r3] ldr r2, _080395B8 @ =0x000003E2 adds r0, r1, r2 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x46 bne _08039534 ldr r6, _080395BC @ =0x00000387 adds r1, r1, r6 movs r0, #3 strb r0, [r1] _08039534: ldr r1, [r3] adds r0, r1, r2 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x49 bne _08039548 ldr r6, _080395BC @ =0x00000387 adds r1, r1, r6 movs r0, #0 strb r0, [r1] _08039548: ldr r0, [r3] adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x48 bne _08039562 ldr r0, _080395C0 @ =0x02032F20 ldr r1, _080395C4 @ =0x086A1FC4 bl MPlayStart movs r0, #8 bl sub_11B0 _08039562: ldr r5, _080395B4 @ =0x020314E0 ldr r0, [r5] movs r4, #0xe4 lsls r4, r4, #2 adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0 beq _080395A2 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _0803958C ldr r0, _080395C8 @ =0x086A3700 ldr r2, _080395CC @ =0x00001278 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC _0803958C: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _080395A2 ldr r0, _080395D0 @ =0x02032EE0 ldr r1, _080395D4 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _080395A2: 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 _080395B0: .4byte 0x000003EA _080395B4: .4byte 0x020314E0 _080395B8: .4byte 0x000003E2 _080395BC: .4byte 0x00000387 _080395C0: .4byte 0x02032F20 _080395C4: .4byte 0x086A1FC4 _080395C8: .4byte 0x086A3700 _080395CC: .4byte 0x00001278 _080395D0: .4byte 0x02032EE0 _080395D4: .4byte 0x0000FFFF thumb_func_start sub_395D8 sub_395D8: @ 0x080395D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r7, _08039648 @ =0x0200C2D0 ldrh r0, [r7] cmp r0, #0 bne _080395EE b _080398D0 _080395EE: ldr r1, _0803964C @ =0x020314E0 ldr r0, [r1] ldr r2, _08039650 @ =0x000003DF adds r3, r0, r2 movs r5, #0 ldrsb r5, [r3, r5] ldr r4, _08039654 @ =0x086AEAF8 adds r2, #3 adds r0, r0, r2 movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r4, #4 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r3] ldr r1, _0803964C @ =0x020314E0 ldr r0, [r1] adds r0, r0, r2 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] mov r8, r0 cmp r5, #0xe bgt _08039668 ldr r2, _08039658 @ =0x040000D4 lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #2 subs r0, r0, r5 lsls r0, r0, #7 ldr r1, _0803965C @ =0x0849664C adds r0, r0, r1 str r0, [r2] ldr r0, _08039660 @ =0x06010FA0 str r0, [r2, #4] ldr r0, _08039664 @ =0x800002C0 b _08039684 .align 2, 0 _08039648: .4byte 0x0200C2D0 _0803964C: .4byte 0x020314E0 _08039650: .4byte 0x000003DF _08039654: .4byte 0x086AEAF8 _08039658: .4byte 0x040000D4 _0803965C: .4byte 0x0849664C _08039660: .4byte 0x06010FA0 _08039664: .4byte 0x800002C0 _08039668: ldr r2, _08039720 @ =0x040000D4 adds r1, r5, #0 subs r1, #0xf lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, _08039724 @ =0x0849B8CC adds r0, r0, r1 str r0, [r2] ldr r0, _08039728 @ =0x06010FA0 str r0, [r2, #4] ldr r0, _0803972C @ =0x80000260 _08039684: str r0, [r2, #8] ldr r0, [r2, #8] ldr r3, _08039730 @ =0x020314E0 ldr r4, [r3] movs r6, #0xfa lsls r6, r6, #2 adds r5, r4, r6 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 adds r0, #0x48 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r2, _08039734 @ =0x000003EA adds r6, r4, r2 movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r0, #0x42 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 adds r0, #0x78 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r0, #0x32 ldr r2, _08039738 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] ldr r3, _0803973C @ =0x00000387 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08039740 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xc0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x86 b _08039796 .align 2, 0 _08039720: .4byte 0x040000D4 _08039724: .4byte 0x0849B8CC _08039728: .4byte 0x06010FA0 _0803972C: .4byte 0x80000260 _08039730: .4byte 0x020314E0 _08039734: .4byte 0x000003EA _08039738: .4byte 0x0000028A _0803973C: .4byte 0x00000387 _08039740: cmp r0, #3 bne _0803976E movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xc0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x96 b _08039796 _0803976E: movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xb4 movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x74 _08039796: ldr r6, _080397FC @ =0x000003F2 adds r1, r4, r6 strh r0, [r1] ldr r1, _08039800 @ =0x020314E0 ldr r0, [r1] ldr r2, _08039804 @ =0x00000389 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _08039810 movs r2, #0 ldr r4, _08039808 @ =0x03005000 ldr r3, _0803980C @ =0xFFFFFE00 mov r8, r3 movs r6, #0xb0 _080397B8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 orrs r0, r6 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _080397B8 b _080398D0 .align 2, 0 _080397FC: .4byte 0x000003F2 _08039800: .4byte 0x020314E0 _08039804: .4byte 0x00000389 _08039808: .4byte 0x03005000 _0803980C: .4byte 0xFFFFFE00 _08039810: cmp r0, #1 bne _0803981C movs r3, #0xe mov r4, r8 lsls r0, r4, #0x10 b _0803983C _0803981C: cmp r0, #3 bne _08039828 movs r3, #0xb mov r6, r8 lsls r0, r6, #0x10 b _0803983C _08039828: mov r1, r8 lsls r0, r1, #0x10 asrs r1, r0, #0x10 movs r3, #4 cmp r1, #0x14 beq _0803983C movs r3, #0xf cmp r1, #0x15 bne _0803983C movs r3, #3 _0803983C: movs r2, #0 lsls r3, r3, #4 mov r8, r3 ldr r3, _080399BC @ =0x086B92FC mov sl, r3 ldr r6, _080399C0 @ =0x03005000 asrs r1, r0, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r4, _080399C4 @ =0xFFFFFE00 mov sb, r4 _08039856: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r4, #2 ldrsh r1, [r7, r4] ldr r0, [sp] adds r1, r0, r1 ldr r4, _080399C8 @ =0x000001FF ands r1, r4 mov r0, sb ldrh r4, [r2, #2] ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r4, r8 orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _08039856 _080398D0: ldr r7, _080399CC @ =0x0200C668 ldrh r0, [r7] cmp r0, #0 bne _080398DA b _08039A08 _080398DA: ldr r6, _080399D0 @ =0x020314E0 ldr r4, [r6] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x6c subs r0, r0, r1 strh r0, [r7, #2] ldr r4, [r6] ldr r3, _080399D4 @ =0x000003EA adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x52 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0803991E movs r0, #0xc8 strh r0, [r7, #4] _0803991E: ldr r4, _080399D8 @ =0x086AEDCC ldr r1, _080399D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080399DC @ =0x00000456 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0x54 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r4 ldr r2, _080399E0 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _080399E4 @ =0x083C13AC adds r0, r0, r1 str r0, [r2] ldr r0, _080399E8 @ =0x06012420 str r0, [r2, #4] ldr r0, _080399EC @ =0x80000060 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 ldr r6, _080399C0 @ =0x03005000 ldr r4, _080399C4 @ =0xFFFFFE00 mov r8, r4 _08039964: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080399C8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08039964 ldr r3, _080399D0 @ =0x020314E0 ldr r0, [r3] ldr r6, _080399DC @ =0x00000456 adds r4, r0, r6 ldrh r0, [r4] cmp r0, #0x52 bhi _080399F0 adds r0, #1 strh r0, [r4] b _08039A2C .align 2, 0 _080399BC: .4byte 0x086B92FC _080399C0: .4byte 0x03005000 _080399C4: .4byte 0xFFFFFE00 _080399C8: .4byte 0x000001FF _080399CC: .4byte 0x0200C668 _080399D0: .4byte 0x020314E0 _080399D4: .4byte 0x000003EA _080399D8: .4byte 0x086AEDCC _080399DC: .4byte 0x00000456 _080399E0: .4byte 0x040000D4 _080399E4: .4byte 0x083C13AC _080399E8: .4byte 0x06012420 _080399EC: .4byte 0x80000060 _080399F0: movs r1, #0 strh r1, [r4] ldr r0, _08039A00 @ =gMain ldr r2, _08039A04 @ =0x000015A8 adds r0, r0, r2 strh r1, [r0] b _08039A2C .align 2, 0 _08039A00: .4byte gMain _08039A04: .4byte 0x000015A8 _08039A08: ldr r3, _08039A3C @ =0x020314E0 ldr r1, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xb bne _08039A2C movs r6, #0xf9 lsls r6, r6, #2 adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0xda bne _08039A2C movs r0, #1 strh r0, [r7] _08039A2C: add sp, #8 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 _08039A3C: .4byte 0x020314E0 thumb_func_start sub_39A40 sub_39A40: @ 0x08039A40 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x40 movs r0, #0 str r0, [sp, #4] ldr r1, _08039A84 @ =0x0200BAE8 str r1, [sp] ldrh r0, [r1] movs r2, #0x8a lsls r2, r2, #3 adds r1, r1, r2 mov ip, r1 cmp r0, #0 bne _08039A64 b _08039BF8 _08039A64: ldr r0, _08039A88 @ =0x020314E0 ldr r1, [r0] ldr r3, _08039A8C @ =0x000006C4 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #3 bne _08039A90 movs r0, #0xf0 ldr r4, [sp] strh r0, [r4, #2] movs r0, #0xb4 strh r0, [r4, #4] b _08039A9A .align 2, 0 _08039A84: .4byte 0x0200BAE8 _08039A88: .4byte 0x020314E0 _08039A8C: .4byte 0x000006C4 _08039A90: movs r0, #0x60 ldr r5, [sp] strh r0, [r5, #2] movs r0, #0x37 strh r0, [r5, #4] _08039A9A: ldr r6, _08039C24 @ =0x020314E0 ldr r1, [r6] ldr r7, [sp] ldrh r2, [r7, #2] ldr r3, _08039C28 @ =0x000006E4 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r7, #4] ldr r4, _08039C2C @ =0x000006E6 adds r1, r1, r4 strh r0, [r1] movs r5, #4 ldrsh r0, [r7, r5] cmp r0, #0xc7 ble _08039ABC movs r0, #0xc8 strh r0, [r7, #4] _08039ABC: movs r2, #0 ldr r6, _08039C30 @ =0x0200BA30 mov sl, r6 movs r7, #0xa1 lsls r7, r7, #3 add r7, sl mov ip, r7 ldr r5, _08039C34 @ =0x03005000 movs r0, #3 mov r8, r0 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 _08039AD6: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r2, [sp] adds r6, r2, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xd0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r7, _08039C24 @ =0x020314E0 ldr r0, [r7] ldr r1, _08039C38 @ =0x000006DB adds r0, r0, r1 ldrb r1, [r0] mov r2, r8 ands r1, r2 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r6, r7] ldr r2, [sp] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08039C3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08039C40 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _08039AD6 mov r4, sl str r4, [sp] ldr r5, _08039C24 @ =0x020314E0 ldr r0, [r5] ldr r6, _08039C28 @ =0x000006E4 adds r0, r0, r6 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #2] ldr r0, [r5] ldr r7, _08039C2C @ =0x000006E6 adds r0, r0, r7 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08039B7C movs r0, #0xc8 strh r0, [r4, #4] _08039B7C: movs r2, #0 ldr r5, _08039C34 @ =0x03005000 movs r0, #3 mov r8, r0 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 ldr r3, _08039C40 @ =0xFFFFFE00 mov sl, r3 _08039B8E: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r7, [sp] adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r1, _08039C24 @ =0x020314E0 ldr r0, [r1] ldr r2, _08039C38 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] mov r7, r8 ands r1, r7 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r6, r0] ldr r2, [sp] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08039C3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _08039B8E _08039BF8: mov r4, ip str r4, [sp] ldrh r0, [r4] cmp r0, #0 bne _08039C04 b _0803A14E _08039C04: ldr r1, _08039C24 @ =0x020314E0 ldr r0, [r1] ldr r5, _08039C44 @ =0x00000445 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bls _08039C18 b _08039EBA _08039C18: lsls r0, r0, #2 ldr r1, _08039C48 @ =_08039C4C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039C24: .4byte 0x020314E0 _08039C28: .4byte 0x000006E4 _08039C2C: .4byte 0x000006E6 _08039C30: .4byte 0x0200BA30 _08039C34: .4byte 0x03005000 _08039C38: .4byte 0x000006DB _08039C3C: .4byte 0x000001FF _08039C40: .4byte 0xFFFFFE00 _08039C44: .4byte 0x00000445 _08039C48: .4byte _08039C4C _08039C4C: @ jump table .4byte _08039C6C @ case 0 .4byte _08039CFC @ case 1 .4byte _08039D30 @ case 2 .4byte _08039D90 @ case 3 .4byte _08039DC0 @ case 4 .4byte _08039E20 @ case 5 .4byte _08039E50 @ case 6 .4byte _08039EB0 @ case 7 _08039C6C: ldr r6, _08039CD0 @ =0x020314E0 ldr r0, [r6] ldr r7, _08039CD4 @ =0x00000449 adds r0, r0, r7 movs r2, #0 strb r2, [r0] ldr r0, [r6] ldr r1, _08039CD8 @ =0x00000446 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r0, [r6] ldr r3, _08039CDC @ =0x00000447 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r6] ldr r4, _08039CE0 @ =0x0000044A adds r0, r0, r4 strb r2, [r0] ldr r1, [r6] ldr r5, _08039CE4 @ =0x0000044E adds r0, r1, r5 strh r2, [r0] movs r6, #0x89 lsls r6, r6, #3 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _08039CAE b _08039EBA _08039CAE: ldr r2, _08039CE8 @ =0x040000D4 ldr r7, _08039CEC @ =0x000005F6 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #8 lsls r0, r0, #5 ldr r1, _08039CF0 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08039CF4 @ =0x05000220 str r0, [r2, #4] ldr r0, _08039CF8 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] b _08039EBA .align 2, 0 _08039CD0: .4byte 0x020314E0 _08039CD4: .4byte 0x00000449 _08039CD8: .4byte 0x00000446 _08039CDC: .4byte 0x00000447 _08039CE0: .4byte 0x0000044A _08039CE4: .4byte 0x0000044E _08039CE8: .4byte 0x040000D4 _08039CEC: .4byte 0x000005F6 _08039CF0: .4byte 0x08137E14 _08039CF4: .4byte 0x05000220 _08039CF8: .4byte 0x80000010 _08039CFC: ldr r1, _08039D20 @ =0x020314E0 ldr r0, [r1] ldr r2, _08039D24 @ =0x0000044A adds r0, r0, r2 movs r1, #4 strb r1, [r0] ldr r3, _08039D20 @ =0x020314E0 ldr r1, [r3] ldr r4, _08039D28 @ =0x0000044E adds r2, r1, r4 movs r0, #0x5a strh r0, [r2] ldr r5, _08039D2C @ =0x00000445 adds r1, r1, r5 movs r0, #2 strb r0, [r1] b _08039EBA .align 2, 0 _08039D20: .4byte 0x020314E0 _08039D24: .4byte 0x0000044A _08039D28: .4byte 0x0000044E _08039D2C: .4byte 0x00000445 _08039D30: ldr r0, _08039D78 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #4] cmp r0, #0 beq _08039D54 ldr r6, _08039D7C @ =0x0000044E adds r1, r1, r6 ldrh r0, [r1] subs r0, #0x5a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08039D4E movs r0, #0 strh r0, [r1] _08039D4E: ldr r0, _08039D80 @ =0x00000111 bl m4aSongNumStart _08039D54: ldr r2, _08039D78 @ =0x020314E0 ldr r0, [r2] ldr r7, _08039D84 @ =0x00000449 adds r0, r0, r7 movs r1, #5 strb r1, [r0] ldr r0, [r2] ldr r1, _08039D88 @ =0x00000446 adds r0, r0, r1 movs r1, #9 strb r1, [r0] ldr r0, [r2] ldr r3, _08039D8C @ =0x00000447 adds r0, r0, r3 movs r1, #3 strb r1, [r0] b _08039EBA .align 2, 0 _08039D78: .4byte 0x020314E0 _08039D7C: .4byte 0x0000044E _08039D80: .4byte 0x00000111 _08039D84: .4byte 0x00000449 _08039D88: .4byte 0x00000446 _08039D8C: .4byte 0x00000447 _08039D90: ldr r4, _08039DB0 @ =0x020314E0 ldr r0, [r4] ldr r5, _08039DB4 @ =0x0000044A adds r0, r0, r5 movs r3, #4 strb r3, [r0] ldr r0, [r4] ldr r6, _08039DB8 @ =0x0000044E adds r2, r0, r6 movs r1, #0x5a strh r1, [r2] ldr r7, _08039DBC @ =0x00000445 adds r0, r0, r7 strb r3, [r0] b _08039EBA .align 2, 0 _08039DB0: .4byte 0x020314E0 _08039DB4: .4byte 0x0000044A _08039DB8: .4byte 0x0000044E _08039DBC: .4byte 0x00000445 _08039DC0: ldr r0, _08039E08 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #4] cmp r0, #0 beq _08039DE4 ldr r0, _08039E0C @ =0x0000044E adds r1, r1, r0 ldrh r0, [r1] subs r0, #0x5a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08039DDE movs r0, #0 strh r0, [r1] _08039DDE: ldr r0, _08039E10 @ =0x00000111 bl m4aSongNumStart _08039DE4: ldr r2, _08039E08 @ =0x020314E0 ldr r0, [r2] ldr r1, _08039E14 @ =0x00000449 adds r0, r0, r1 movs r1, #9 strb r1, [r0] ldr r0, [r2] ldr r3, _08039E18 @ =0x00000446 adds r0, r0, r3 movs r1, #0xd strb r1, [r0] ldr r0, [r2] ldr r4, _08039E1C @ =0x00000447 adds r0, r0, r4 movs r1, #5 strb r1, [r0] b _08039EBA .align 2, 0 _08039E08: .4byte 0x020314E0 _08039E0C: .4byte 0x0000044E _08039E10: .4byte 0x00000111 _08039E14: .4byte 0x00000449 _08039E18: .4byte 0x00000446 _08039E1C: .4byte 0x00000447 _08039E20: ldr r5, _08039E40 @ =0x020314E0 ldr r0, [r5] ldr r6, _08039E44 @ =0x0000044A adds r0, r0, r6 movs r1, #0 strb r1, [r0] ldr r1, [r5] ldr r7, _08039E48 @ =0x0000044E adds r2, r1, r7 movs r0, #0x5a strh r0, [r2] ldr r0, _08039E4C @ =0x00000445 adds r1, r1, r0 movs r0, #6 strb r0, [r1] b _08039EBA .align 2, 0 _08039E40: .4byte 0x020314E0 _08039E44: .4byte 0x0000044A _08039E48: .4byte 0x0000044E _08039E4C: .4byte 0x00000445 _08039E50: ldr r0, _08039E98 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #4] cmp r0, #0 beq _08039E74 ldr r2, _08039E9C @ =0x0000044E adds r1, r1, r2 ldrh r0, [r1] subs r0, #0x5a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08039E6E movs r0, #0 strh r0, [r1] _08039E6E: ldr r0, _08039EA0 @ =0x00000111 bl m4aSongNumStart _08039E74: ldr r2, _08039E98 @ =0x020314E0 ldr r0, [r2] ldr r3, _08039EA4 @ =0x00000449 adds r0, r0, r3 movs r1, #0xd strb r1, [r0] ldr r0, [r2] ldr r4, _08039EA8 @ =0x00000446 adds r0, r0, r4 movs r1, #0x13 strb r1, [r0] ldr r0, [r2] ldr r5, _08039EAC @ =0x00000447 adds r0, r0, r5 movs r1, #7 strb r1, [r0] b _08039EBA .align 2, 0 _08039E98: .4byte 0x020314E0 _08039E9C: .4byte 0x0000044E _08039EA0: .4byte 0x00000111 _08039EA4: .4byte 0x00000449 _08039EA8: .4byte 0x00000446 _08039EAC: .4byte 0x00000447 _08039EB0: ldr r0, _08039EE0 @ =gMain ldr r6, _08039EE4 @ =0x00000E78 adds r0, r0, r6 movs r1, #0 strh r1, [r0] _08039EBA: ldr r7, _08039EE8 @ =0x020314E0 ldr r4, [r7] ldr r0, _08039EEC @ =0x0000044E adds r1, r4, r0 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _08039EF4 subs r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _08039ED8 b _08039FF4 _08039ED8: ldr r0, _08039EF0 @ =0x00000111 bl m4aSongNumStart b _08039FF4 .align 2, 0 _08039EE0: .4byte gMain _08039EE4: .4byte 0x00000E78 _08039EE8: .4byte 0x020314E0 _08039EEC: .4byte 0x0000044E _08039EF0: .4byte 0x00000111 _08039EF4: ldr r2, _08039F20 @ =0x086AEE5E movs r5, #0x89 lsls r5, r5, #3 adds r3, r4, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r6, #0 ldrsh r0, [r0, r6] ldr r7, _08039F24 @ =0x00000454 adds r1, r4, r7 ldrh r2, [r1] cmp r0, r2 ble _08039F28 adds r0, r2, #1 strh r0, [r1] b _08039FF4 .align 2, 0 _08039F20: .4byte 0x086AEE5E _08039F24: .4byte 0x00000454 _08039F28: movs r0, #0 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, _08039F74 @ =0x020314E0 ldr r2, [r0] movs r1, #0x89 lsls r1, r1, #3 adds r3, r2, r1 ldr r4, _08039F78 @ =0x00000446 adds r0, r2, r4 movs r1, #0 ldrsb r1, [r3, r1] ldrb r4, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _08039FA4 ldr r5, _08039F7C @ =0x0000044A adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08039F84 ldr r6, _08039F80 @ =0x00000449 adds r0, r2, r6 ldrb r0, [r0] strb r0, [r3] ldr r7, _08039F74 @ =0x020314E0 ldr r1, [r7] adds r1, r1, r5 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _08039F98 .align 2, 0 _08039F74: .4byte 0x020314E0 _08039F78: .4byte 0x00000446 _08039F7C: .4byte 0x0000044A _08039F80: .4byte 0x00000449 _08039F84: subs r0, r4, #1 strb r0, [r3] ldr r1, _0803A028 @ =0x020314E0 ldr r0, [r1] ldr r2, _0803A02C @ =0x00000447 adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0803A030 @ =0x00000445 adds r0, r0, r3 strb r1, [r0] _08039F98: ldr r4, _0803A028 @ =0x020314E0 ldr r0, [r4] ldr r5, _0803A034 @ =0x0000044E adds r0, r0, r5 movs r1, #0x5a strh r1, [r0] _08039FA4: ldr r5, _0803A028 @ =0x020314E0 ldr r0, [r5] movs r4, #0x89 lsls r4, r4, #3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08039FC0 movs r0, #0x88 lsls r0, r0, #1 bl m4aSongNumStart _08039FC0: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _08039FF4 ldr r2, _0803A038 @ =0x040000D4 ldr r6, _0803A03C @ =0x000005F6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0803A040 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0803A044 @ =0x05000220 str r0, [r2, #4] ldr r0, _0803A048 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0x89 lsls r0, r0, #1 bl m4aSongNumStart _08039FF4: ldr r0, _0803A028 @ =0x020314E0 ldr r3, [r0] movs r7, #0x89 lsls r7, r7, #3 adds r1, r3, r7 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #0x11 bgt _0803A054 ldr r0, _0803A04C @ =0x00000383 adds r1, r3, r0 movs r2, #0 movs r0, #1 strb r0, [r1] ldr r1, _0803A028 @ =0x020314E0 ldr r0, [r1] ldr r3, _0803A050 @ =0x0000132C adds r0, r0, r3 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] b _0803A05C .align 2, 0 _0803A028: .4byte 0x020314E0 _0803A02C: .4byte 0x00000447 _0803A030: .4byte 0x00000445 _0803A034: .4byte 0x0000044E _0803A038: .4byte 0x040000D4 _0803A03C: .4byte 0x000005F6 _0803A040: .4byte 0x08137E14 _0803A044: .4byte 0x05000220 _0803A048: .4byte 0x80000010 _0803A04C: .4byte 0x00000383 _0803A050: .4byte 0x0000132C _0803A054: ldr r4, _0803A194 @ =0x00000383 adds r1, r3, r4 movs r0, #0 strb r0, [r1] _0803A05C: ldr r5, _0803A198 @ =0x020314E0 ldr r0, [r5] ldr r6, _0803A19C @ =0x0000132C adds r0, r0, r6 ldr r1, [r0] ldrh r1, [r1, #0x24] ldr r7, [sp] strh r1, [r7, #2] ldr r0, [r0] ldrh r0, [r0, #0x26] strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0803A07E movs r0, #0xc8 strh r0, [r7, #4] _0803A07E: ldr r4, _0803A1A0 @ =0x086AEE5E ldr r1, _0803A198 @ =0x020314E0 ldr r0, [r1] movs r3, #0x89 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r4, #4 adds r0, r0, r1 ldr r2, _0803A1A4 @ =0x040000D4 ldrh r5, [r0] str r5, [sp, #4] movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, _0803A1A8 @ =0x083C1A6C adds r0, r0, r1 str r0, [r2] ldr r0, _0803A1AC @ =0x060124E0 str r0, [r2, #4] ldr r0, _0803A1B0 @ =0x800001E0 str r0, [r2, #8] ldr r0, [r2, #8] ldr r7, _0803A198 @ =0x020314E0 ldr r0, [r7] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 movs r2, #0 ldr r1, _0803A1B4 @ =0x086B91AC mov sb, r1 ldr r5, _0803A1B8 @ =0x03005000 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r4, _0803A1BC @ =0xFFFFFE00 mov r8, r4 _0803A0E2: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp] adds r6, r7, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, sl ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803A1C0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0803A0E2 _0803A14E: movs r2, #0 thumb_func_start sub_3A150 sub_3A150: @ 0x0803A150 lsls r2, r2, #0x10 asrs r3, r2, #0x10 movs r0, #0xb8 adds r1, r3, #0 muls r1, r0, r1 ldr r0, _0803A1C4 @ =0x0200C388 adds r1, r1, r0 str r1, [sp] ldr r5, _0803A1C8 @ =0xFFFFED38 adds r0, r0, r5 ldrb r1, [r0, #0xf] movs r0, #0x80 ands r0, r1 str r2, [sp, #0x3c] cmp r0, #0 beq _0803A174 bl _0803A9A6 _0803A174: ldr r0, _0803A198 @ =0x020314E0 ldr r0, [r0] ldr r6, _0803A1CC @ =0x00000441 adds r0, r0, r6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _0803A18A b _0803A8A2 _0803A18A: lsls r0, r0, #2 ldr r1, _0803A1D0 @ =_0803A1D4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A194: .4byte 0x00000383 _0803A198: .4byte 0x020314E0 _0803A19C: .4byte 0x0000132C _0803A1A0: .4byte 0x086AEE5E _0803A1A4: .4byte 0x040000D4 _0803A1A8: .4byte 0x083C1A6C _0803A1AC: .4byte 0x060124E0 _0803A1B0: .4byte 0x800001E0 _0803A1B4: .4byte 0x086B91AC _0803A1B8: .4byte 0x03005000 _0803A1BC: .4byte 0xFFFFFE00 _0803A1C0: .4byte 0x000001FF _0803A1C4: .4byte 0x0200C388 _0803A1C8: .4byte 0xFFFFED38 _0803A1CC: .4byte 0x00000441 _0803A1D0: .4byte _0803A1D4 _0803A1D4: @ jump table .4byte _0803A1EC @ case 0 .4byte _0803A218 @ case 1 .4byte _0803A2E4 @ case 2 .4byte _0803A4F0 @ case 3 .4byte _0803A6B8 @ case 4 .4byte _0803A860 @ case 5 _0803A1EC: movs r7, #0 str r7, [sp, #4] ldr r0, _0803A20C @ =0x020314E0 ldr r1, [r0] ldr r2, [sp, #0x3c] asrs r0, r2, #0xe adds r1, r1, r0 ldr r3, _0803A210 @ =0x0000045C adds r0, r1, r3 strh r7, [r0] ldr r5, _0803A214 @ =0x0000045E adds r1, r1, r5 mov r6, sp ldrh r6, [r6, #4] strh r6, [r1] b _0803A8A2 .align 2, 0 _0803A20C: .4byte 0x020314E0 _0803A210: .4byte 0x0000045C _0803A214: .4byte 0x0000045E _0803A218: ldr r7, _0803A248 @ =0x020314E0 mov r8, r7 mov r0, r8 ldr r6, [r0] ldr r1, [sp, #0x3c] asrs r7, r1, #0x10 lsls r1, r7, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r6, r2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #9 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] cmp r4, #0x61 bhi _0803A24C adds r0, r4, #1 strh r0, [r5] b _0803A2AA .align 2, 0 _0803A248: .4byte 0x020314E0 _0803A24C: movs r0, #0 strh r0, [r5] ldr r3, _0803A2C4 @ =0x00000441 adds r0, r6, r3 adds r0, r0, r7 movs r1, #2 strb r1, [r0] bl sub_C00 mov r4, r8 ldr r5, [r4] ldr r6, _0803A2C8 @ =0x00000443 adds r5, r5, r6 adds r5, r5, r7 lsls r4, r7, #3 subs r4, r4, r7 ldr r1, _0803A2CC @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 adds r4, r4, r0 strb r4, [r5] mov r5, r8 ldr r1, [r5] lsls r3, r7, #2 adds r3, r1, r3 ldr r4, _0803A2D0 @ =0x086AEDE8 adds r1, r1, r6 adds r1, r1, r7 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r2, [r0] adds r6, #0x21 adds r0, r3, r6 strh r2, [r0] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r0, [r0, #2] ldr r7, _0803A2D4 @ =0x00000466 adds r3, r3, r7 strh r0, [r3] _0803A2AA: ldr r0, _0803A2D8 @ =0x020314E0 ldr r1, [r0] ldr r2, [sp, #0x3c] asrs r0, r2, #0xe adds r1, r1, r0 ldr r3, _0803A2DC @ =0x0000045C adds r0, r1, r3 movs r2, #0 strh r2, [r0] ldr r4, _0803A2E0 @ =0x0000045E adds r1, r1, r4 strh r2, [r1] b _0803A8A2 .align 2, 0 _0803A2C4: .4byte 0x00000441 _0803A2C8: .4byte 0x00000443 _0803A2CC: .4byte gMain _0803A2D0: .4byte 0x086AEDE8 _0803A2D4: .4byte 0x00000466 _0803A2D8: .4byte 0x020314E0 _0803A2DC: .4byte 0x0000045C _0803A2E0: .4byte 0x0000045E _0803A2E4: ldr r5, _0803A4AC @ =0x020314E0 mov sl, r5 ldr r7, [r5] ldr r6, [sp, #0x3c] asrs r6, r6, #0x10 mov sb, r6 lsls r6, r6, #1 str r6, [sp, #0x20] movs r1, #0x8b lsls r1, r1, #3 adds r0, r7, r1 adds r0, r0, r6 ldrh r0, [r0] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x13 adds r0, #6 str r0, [sp, #4] ldr r2, _0803A4B0 @ =0x00000441 adds r0, r7, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0803A31C b _0803A48A _0803A31C: ldr r3, _0803A4B4 @ =0x00000442 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0803A32C b _0803A48A _0803A32C: ldr r4, _0803A4B8 @ =0x0000132C adds r0, r7, r4 ldr r6, [r0] movs r5, #0x10 ldrsh r4, [r6, r5] subs r4, #0x78 mov r0, sb lsls r0, r0, #2 str r0, [sp, #0x24] adds r5, r7, r0 ldr r1, _0803A4BC @ =0x0000045C adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r0, r4, r0 str r0, [sp, #0x10] movs r3, #0x12 ldrsh r4, [r6, r3] subs r4, #0x90 ldr r6, _0803A4C0 @ =0x0000045E adds r5, r5, r6 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r0, r4, r0 str r0, [sp, #0x14] ldr r2, [sp, #0x10] adds r1, r2, #0 muls r1, r2, r1 adds r3, r0, #0 adds r0, r3, #0 muls r0, r3, r0 adds r1, r1, r0 mov r8, r1 ldr r4, _0803A4C4 @ =0x00000383 adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803A48A movs r5, #0xe2 lsls r5, r5, #2 adds r0, r7, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803A48A ldr r1, _0803A4C8 @ =0x00000385 adds r0, r7, r1 movs r2, #0xe1 lsls r2, r2, #2 adds r1, r7, r2 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 bge _0803A48A ldr r3, _0803A4CC @ =0x00000452 adds r0, r7, r3 ldrh r5, [r0] cmp r5, #0 bne _0803A48A ldr r0, _0803A4D0 @ =0x0000018F cmp r8, r0 bgt _0803A48A subs r0, #0x7c bl m4aSongNumStart movs r0, #0xc bl sub_11B0 mov r4, sl ldr r0, [r4] movs r2, #1 strb r2, [r0, #0x1f] ldr r1, [r4] movs r7, #0x8b lsls r7, r7, #3 adds r0, r1, r7 ldr r3, [sp, #0x20] adds r0, r0, r3 strh r5, [r0] ldr r4, _0803A4B0 @ =0x00000441 adds r1, r1, r4 add r1, sb movs r0, #3 strb r0, [r1] mov r5, sl ldr r0, [r5] ldr r7, _0803A4D4 @ =0x000005FA adds r0, r0, r7 strb r2, [r0] ldr r5, [r5] ldr r0, [sp, #0x24] adds r4, r5, r0 ldr r1, _0803A4BC @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x78 str r0, [sp, #8] adds r4, r4, r6 movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x90 str r0, [sp, #0xc] ldr r4, [sp, #8] lsls r1, r4, #8 ldr r6, _0803A4B8 @ =0x0000132C adds r0, r5, r6 ldr r2, [r0] ldr r0, [r2, #0x34] subs r0, r1, r0 str r0, [sp, #0x10] ldr r7, [sp, #0xc] lsls r1, r7, #8 ldr r0, [r2, #0x38] subs r0, r1, r0 str r0, [sp, #0x14] ldr r4, _0803A4D8 @ =0x000005AC adds r5, r5, r4 ldr r1, [sp, #0x10] adds r0, r1, #0 muls r0, r1, r0 ldr r2, [sp, #0x14] adds r1, r2, #0 muls r1, r2, r1 adds r0, r0, r1 str r0, [r5] lsls r0, r0, #2 bl Sqrt mov r3, sl ldr r1, [r3] adds r1, r1, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] ldr r4, [sp, #0x10] rsbs r0, r4, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r5, [sp, #0x14] lsls r1, r5, #0x10 asrs r1, r1, #0x10 bl ArcTan2 mov r6, sl ldr r1, [r6] movs r7, #0xb6 lsls r7, r7, #3 adds r1, r1, r7 strh r0, [r1] _0803A48A: ldr r0, _0803A4AC @ =0x020314E0 ldr r3, [r0] ldr r0, [sp, #0x3c] asrs r4, r0, #0x10 lsls r1, r4, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r3, r2 adds r1, r0, r1 ldrh r2, [r1] ldr r0, _0803A4C4 @ =0x00000383 cmp r2, r0 bhi _0803A4DC adds r0, r2, #1 strh r0, [r1] b _0803A8A2 .align 2, 0 _0803A4AC: .4byte 0x020314E0 _0803A4B0: .4byte 0x00000441 _0803A4B4: .4byte 0x00000442 _0803A4B8: .4byte 0x0000132C _0803A4BC: .4byte 0x0000045C _0803A4C0: .4byte 0x0000045E _0803A4C4: .4byte 0x00000383 _0803A4C8: .4byte 0x00000385 _0803A4CC: .4byte 0x00000452 _0803A4D0: .4byte 0x0000018F _0803A4D4: .4byte 0x000005FA _0803A4D8: .4byte 0x000005AC _0803A4DC: movs r0, #0 strh r0, [r1] ldr r5, _0803A4EC @ =0x00000441 adds r0, r3, r5 adds r0, r0, r4 movs r1, #5 b _0803A8A0 .align 2, 0 _0803A4EC: .4byte 0x00000441 _0803A4F0: ldr r6, _0803A668 @ =0x020314E0 ldr r4, [r6] ldr r7, [sp, #0x3c] asrs r7, r7, #0x10 str r7, [sp, #0x28] lsls r0, r7, #1 str r0, [sp, #0x2c] movs r1, #0x8b lsls r1, r1, #3 adds r0, r4, r1 ldr r2, [sp, #0x2c] adds r6, r0, r2 ldrh r5, [r6] adds r0, r5, #0 movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x13 adds r0, #6 str r0, [sp, #4] ldrh r0, [r4, #4] cmp r0, #0 beq _0803A526 adds r0, r5, #0 adds r0, #8 strh r0, [r6] _0803A526: ldr r3, _0803A668 @ =0x020314E0 ldr r7, [r3] movs r4, #0x8b lsls r4, r4, #3 adds r0, r7, r4 ldr r5, [sp, #0x2c] adds r0, r0, r5 ldrh r1, [r0] movs r0, #0x1d subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bgt _0803A546 movs r4, #0xa _0803A546: movs r6, #0xb6 lsls r6, r6, #3 adds r5, r7, r6 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x1e bl __divsi3 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #6 subs r0, r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 ldrh r1, [r5] subs r1, r1, r0 strh r1, [r5] ldr r6, _0803A66C @ =0x0000132C adds r0, r7, r6 ldr r1, [r0] ldr r2, _0803A670 @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] ldr r1, _0803A674 @ =0x000005AC adds r0, r7, r1 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x1e bl __divsi3 mov sl, r0 ldr r2, [sp, #0x28] lsls r4, r2, #2 adds r4, r7, r4 ldr r3, _0803A678 @ =0x0000045C adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x78 str r0, [sp, #8] ldr r0, _0803A67C @ =0x0000045E adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x90 str r0, [sp, #0xc] ldrh r0, [r5] bl sub_C74 ldr r2, _0803A668 @ =0x020314E0 ldr r5, [r2] adds r1, r5, r6 ldr r1, [r1] mov r8, r1 ldr r3, [sp, #8] lsls r4, r3, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r7, sl muls r7, r0, r7 adds r0, r7, #0 ldr r1, _0803A680 @ =0x00004E20 mov sb, r1 bl __divsi3 adds r4, r4, r0 mov r2, r8 str r4, [r2, #0x34] movs r3, #0xb6 lsls r3, r3, #3 adds r5, r5, r3 ldrh r0, [r5] bl sub_C24 ldr r4, _0803A668 @ =0x020314E0 ldr r7, [r4] adds r6, r7, r6 ldr r5, [r6] ldr r1, [sp, #0xc] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sl muls r2, r0, r2 adds r0, r2, #0 mov r1, sb bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] ldr r4, [r6] movs r3, #0x30 ldrsh r0, [r4, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r6] movs r5, #0x32 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] movs r6, #0x8b lsls r6, r6, #3 adds r0, r7, r6 ldr r2, [sp, #0x2c] adds r1, r0, r2 ldrh r2, [r1] ldr r0, _0803A684 @ =0x000001DF cmp r2, r0 bhi _0803A688 adds r0, r2, #1 strh r0, [r1] ldrh r0, [r1] movs r1, #9 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0803A65E b _0803A8A2 _0803A65E: movs r0, #0xc bl sub_11B0 b _0803A8A2 .align 2, 0 _0803A668: .4byte 0x020314E0 _0803A66C: .4byte 0x0000132C _0803A670: .4byte 0xFFFFE000 _0803A674: .4byte 0x000005AC _0803A678: .4byte 0x0000045C _0803A67C: .4byte 0x0000045E _0803A680: .4byte 0x00004E20 _0803A684: .4byte 0x000001DF _0803A688: movs r3, #0 strh r3, [r1] ldr r4, _0803A6AC @ =0x00000441 adds r0, r7, r4 ldr r5, [sp, #0x28] adds r0, r0, r5 movs r1, #4 strb r1, [r0] ldr r6, _0803A6B0 @ =0x020314E0 ldr r2, [r6] ldr r7, _0803A6B4 @ =0x000005AC adds r2, r2, r7 ldr r0, [r2] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 str r0, [r2] b _0803A8A2 .align 2, 0 _0803A6AC: .4byte 0x00000441 _0803A6B0: .4byte 0x020314E0 _0803A6B4: .4byte 0x000005AC _0803A6B8: ldr r0, _0803A7EC @ =0x020314E0 ldr r5, [r0] ldr r1, [sp, #0x3c] asrs r1, r1, #0x10 str r1, [sp, #0x30] lsls r2, r1, #1 str r2, [sp, #0x34] movs r3, #0x8b lsls r3, r3, #3 adds r0, r5, r3 adds r0, r0, r2 ldrh r2, [r0] lsrs r1, r2, #3 movs r0, #5 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] movs r4, #0x2f subs r4, r4, r2 movs r7, #0xb6 lsls r7, r7, #3 adds r6, r5, r7 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xc movs r1, #0x2f bl __divsi3 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #6 subs r0, r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 ldrh r1, [r6] subs r1, r1, r0 strh r1, [r6] ldr r0, _0803A7F0 @ =0x0000132C mov sb, r0 adds r0, r5, r0 ldr r1, [r0] ldr r2, _0803A7F4 @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] ldr r1, _0803A7F8 @ =0x000005AC adds r0, r5, r1 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x2f bl __divsi3 mov sl, r0 ldr r2, [sp, #0x30] lsls r0, r2, #2 adds r5, r5, r0 ldr r3, _0803A7FC @ =0x0000045C adds r0, r5, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x78 str r0, [sp, #8] ldr r0, _0803A800 @ =0x0000045E adds r5, r5, r0 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x90 str r0, [sp, #0xc] ldrh r0, [r6] bl sub_C74 ldr r2, _0803A7EC @ =0x020314E0 ldr r5, [r2] mov r3, sb adds r1, r5, r3 ldr r6, [r1] ldr r1, [sp, #8] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sl muls r2, r0, r2 adds r0, r2, #0 ldr r3, _0803A804 @ =0x00004E20 mov r8, r3 mov r1, r8 bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] adds r5, r5, r7 ldrh r0, [r5] bl sub_C24 ldr r4, _0803A7EC @ =0x020314E0 ldr r7, [r4] mov r5, sb adds r6, r7, r5 ldr r5, [r6] ldr r1, [sp, #0xc] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sl muls r2, r0, r2 adds r0, r2, #0 mov r1, r8 bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] ldr r4, [r6] movs r3, #0x30 ldrsh r0, [r4, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r6] movs r5, #0x32 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] movs r0, #0x8b lsls r0, r0, #3 adds r0, r7, r0 str r0, [sp, #0x38] ldr r2, [sp, #0x34] adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x2e bhi _0803A808 adds r0, #1 strh r0, [r1] b _0803A8A2 .align 2, 0 _0803A7EC: .4byte 0x020314E0 _0803A7F0: .4byte 0x0000132C _0803A7F4: .4byte 0xFFFFE000 _0803A7F8: .4byte 0x000005AC _0803A7FC: .4byte 0x0000045C _0803A800: .4byte 0x0000045E _0803A804: .4byte 0x00004E20 _0803A808: movs r3, #0 strh r3, [r1] ldr r3, [r6] ldr r0, _0803A84C @ =gMain ldr r2, [r0, #0x4c] movs r0, #1 ands r2, r0 lsls r1, r2, #2 adds r1, r1, r2 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 ldr r4, _0803A850 @ =0x0000FF6A adds r0, r0, r4 strh r0, [r3, #0x30] ldr r1, [r6] movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1, #0x32] movs r5, #0 strb r5, [r7, #0x1f] ldr r6, _0803A854 @ =0x020314E0 ldr r0, [r6] ldr r7, _0803A858 @ =0x00000441 adds r0, r0, r7 ldr r1, [sp, #0x30] adds r0, r0, r1 strb r5, [r0] ldr r0, [r6] ldr r2, _0803A85C @ =0x000005FA adds r0, r0, r2 strb r5, [r0] b _0803A8A2 .align 2, 0 _0803A84C: .4byte gMain _0803A850: .4byte 0x0000FF6A _0803A854: .4byte 0x020314E0 _0803A858: .4byte 0x00000441 _0803A85C: .4byte 0x000005FA _0803A860: ldr r0, _0803A890 @ =0x020314E0 ldr r6, [r0] ldr r3, [sp, #0x3c] asrs r7, r3, #0x10 lsls r1, r7, #1 movs r4, #0x8b lsls r4, r4, #3 adds r0, r6, r4 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #6 bl __udivsi3 movs r1, #5 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 str r1, [sp, #4] cmp r4, #0x23 bhi _0803A894 adds r0, r4, #1 strh r0, [r5] b _0803A8A2 .align 2, 0 _0803A890: .4byte 0x020314E0 _0803A894: movs r1, #0 movs r0, #0 strh r0, [r5] ldr r5, _0803AA20 @ =0x00000441 adds r0, r6, r5 adds r0, r0, r7 _0803A8A0: strb r1, [r0] _0803A8A2: ldr r6, _0803AA24 @ =0x020314E0 mov sl, r6 ldr r1, [r6] ldr r0, [sp, #0x3c] asrs r7, r0, #0x10 ldr r2, _0803AA20 @ =0x00000441 adds r0, r1, r2 adds r0, r0, r7 ldrb r0, [r0] subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0803A9A6 lsls r3, r7, #2 mov sb, r3 add r1, sb ldr r4, _0803AA28 @ =0x00000464 adds r0, r1, r4 movs r5, #0 ldrsh r2, [r0, r5] ldr r5, _0803AA2C @ =0x0000045C adds r0, r1, r5 movs r6, #0 ldrsh r0, [r0, r6] subs r0, r2, r0 str r0, [sp, #0x10] ldr r2, _0803AA30 @ =0x00000466 adds r0, r1, r2 movs r3, #0 ldrsh r2, [r0, r3] ldr r6, _0803AA34 @ =0x0000045E adds r1, r1, r6 movs r4, #0 ldrsh r0, [r1, r4] subs r0, r2, r0 str r0, [sp, #0x14] ldr r0, [sp, #0x10] adds r1, r0, #0 muls r1, r0, r1 ldr r2, [sp, #0x14] adds r0, r2, #0 muls r0, r2, r0 adds r1, r1, r0 mov r8, r1 ldr r3, [sp, #0x10] lsls r0, r3, #0x10 asrs r0, r0, #0x10 rsbs r1, r2, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, _0803AA38 @ =0x00001388 bl __divsi3 str r0, [sp, #0x18] adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0xe rsbs r0, r0, #0 ldr r1, _0803AA3C @ =0x00004E20 bl __divsi3 str r0, [sp, #0x1c] mov r4, sl ldr r1, [r4] add r1, sb adds r5, r1, r5 ldrh r0, [r5] ldr r2, [sp, #0x18] adds r0, r2, r0 strh r0, [r5] adds r1, r1, r6 ldrh r0, [r1] ldr r3, [sp, #0x1c] adds r0, r3, r0 strh r0, [r1] ldr r0, _0803AA40 @ =0x000009C3 cmp r8, r0 bgt _0803A9A6 bl sub_C00 ldr r5, [r4] subs r6, #0x1b adds r5, r5, r6 adds r5, r5, r7 lsls r4, r7, #3 subs r4, r4, r7 ldr r1, _0803AA44 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 adds r4, r4, r0 strb r4, [r5] mov r4, sl ldr r1, [r4] mov r5, sb adds r3, r1, r5 ldr r4, _0803AA48 @ =0x086AEDE8 adds r1, r1, r6 adds r1, r1, r7 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r2, [r0] adds r6, #0x21 adds r0, r3, r6 strh r2, [r0] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r0, [r0, #2] ldr r7, _0803AA30 @ =0x00000466 adds r3, r3, r7 strh r0, [r3] _0803A9A6: ldr r2, _0803AA4C @ =0x040000D4 ldr r1, [sp, #4] lsls r0, r1, #0x10 asrs r0, r0, #7 ldr r1, _0803AA50 @ =0x084FF90C adds r0, r0, r1 str r0, [r2] ldr r3, [sp, #0x3c] asrs r4, r3, #0x10 lsls r0, r4, #9 ldr r5, _0803AA54 @ =0x06011520 adds r0, r0, r5 str r0, [r2, #4] ldr r0, _0803AA58 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r6, [sp] ldrh r0, [r6] cmp r0, #0 beq _0803AA9E ldr r0, _0803AA24 @ =0x020314E0 ldr r5, [r0] ldr r7, _0803AA20 @ =0x00000441 adds r0, r5, r7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803AA5C lsls r4, r4, #2 adds r4, r5, r4 ldr r1, _0803AA2C @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x68 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _0803AA34 @ =0x0000045E adds r4, r4, r3 movs r6, #0 ldrsh r0, [r4, r6] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x5a ldrh r1, [r1] subs r1, #0x80 subs r0, r0, r1 ldr r7, [sp] strh r0, [r7, #4] b _0803AA66 .align 2, 0 _0803AA20: .4byte 0x00000441 _0803AA24: .4byte 0x020314E0 _0803AA28: .4byte 0x00000464 _0803AA2C: .4byte 0x0000045C _0803AA30: .4byte 0x00000466 _0803AA34: .4byte 0x0000045E _0803AA38: .4byte 0x00001388 _0803AA3C: .4byte 0x00004E20 _0803AA40: .4byte 0x000009C3 _0803AA44: .4byte gMain _0803AA48: .4byte 0x086AEDE8 _0803AA4C: .4byte 0x040000D4 _0803AA50: .4byte 0x084FF90C _0803AA54: .4byte 0x06011520 _0803AA58: .4byte 0x80000100 _0803AA5C: movs r0, #0xf0 ldr r1, [sp] strh r0, [r1, #2] movs r0, #0xb4 strh r0, [r1, #4] _0803AA66: ldr r6, [sp] adds r6, #8 ldr r4, _0803AB38 @ =0x03005000 ldr r2, [sp] ldrh r3, [r2, #8] lsls r3, r3, #3 adds r3, r3, r4 movs r5, #2 ldrsh r1, [r6, r5] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0803AB3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0803AB40 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldr r3, [sp] ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _0803AA9E: ldr r4, [sp, #0x3c] movs r5, #0x80 lsls r5, r5, #9 adds r0, r4, r5 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _0803AAB2 bl sub_3A150 _0803AAB2: ldr r6, _0803AB44 @ =0x0200C4F8 str r6, [sp] ldrh r0, [r6] cmp r0, #0 bne _0803AABE b _0803AD44 _0803AABE: ldr r0, _0803AB48 @ =0x020314E0 ldr r1, [r0] ldr r7, _0803AB4C @ =0x00000456 adds r3, r1, r7 ldrh r1, [r3] cmp r1, #0x23 bhi _0803AB7C adds r0, r1, #0 lsls r0, r0, #9 movs r1, #0x23 bl __divsi3 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #2 cmp r0, r1 ble _0803AAE8 adds r6, r1, #0 _0803AAE8: lsls r5, r6, #0x10 asrs r5, r5, #0x10 adds r0, r5, #0 adds r1, r5, #0 movs r2, #1 bl sub_7C0 rsbs r4, r5, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 adds r1, r5, #0 movs r2, #2 bl sub_7C0 adds r0, r5, #0 adds r1, r4, #0 movs r2, #3 bl sub_7C0 adds r0, r4, #0 adds r1, r4, #0 movs r2, #4 bl sub_7C0 ldr r1, _0803AB48 @ =0x020314E0 ldr r0, [r1] adds r1, r0, r7 ldrh r0, [r1] cmp r0, #0x1e bls _0803AB50 subs r0, #0x1e movs r1, #0xb muls r0, r1, r0 movs r1, #5 bl __divsi3 movs r1, #0xc b _0803AB5C .align 2, 0 _0803AB38: .4byte 0x03005000 _0803AB3C: .4byte 0x000001FF _0803AB40: .4byte 0xFFFFFE00 _0803AB44: .4byte 0x0200C4F8 _0803AB48: .4byte 0x020314E0 _0803AB4C: .4byte 0x00000456 _0803AB50: ldrh r0, [r1] lsls r0, r0, #2 movs r1, #0x1e bl __divsi3 movs r1, #0x10 _0803AB5C: subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 ldr r2, _0803AB74 @ =0x020314E0 ldr r1, [r2] ldr r3, _0803AB78 @ =0x00000456 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0803AB86 .align 2, 0 _0803AB74: .4byte 0x020314E0 _0803AB78: .4byte 0x00000456 _0803AB7C: movs r6, #0x80 lsls r6, r6, #1 movs r4, #0 ldr r5, [sp] strh r4, [r5] _0803AB86: ldr r7, _0803AD54 @ =0x020314E0 ldr r1, [r7] lsls r0, r6, #0x10 asrs r5, r0, #0x10 adds r0, r5, #0 cmp r5, #0 bge _0803AB96 adds r0, r5, #7 _0803AB96: asrs r3, r0, #3 movs r0, #0x20 subs r2, r0, r3 ldr r6, _0803AD58 @ =0x0000046C adds r0, r1, r6 strh r2, [r0] adds r3, #0x20 movs r7, #0x8e lsls r7, r7, #3 adds r0, r1, r7 strh r3, [r0] ldr r6, _0803AD5C @ =0x00000474 adds r0, r1, r6 strh r2, [r0] movs r7, #0x8f lsls r7, r7, #3 adds r0, r1, r7 strh r3, [r0] ldr r6, _0803AD60 @ =0x0000046E adds r0, r1, r6 strh r2, [r0] ldr r7, _0803AD64 @ =0x00000472 adds r0, r1, r7 strh r2, [r0] ldr r2, _0803AD68 @ =0x00000476 adds r0, r1, r2 strh r3, [r0] ldr r5, _0803AD6C @ =0x0000047A adds r0, r1, r5 strh r3, [r0] ldr r2, _0803AD70 @ =gMain ldrb r1, [r2, #0xf] movs r0, #0xc0 ands r0, r1 mov sb, r2 cmp r0, #0 bne _0803ABF6 ldrh r0, [r2, #0x38] ldr r0, _0803AD74 @ =0x00001E10 strh r0, [r2, #0x38] movs r0, #0x10 lsls r1, r4, #0x10 asrs r1, r1, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 ldrh r1, [r2, #0x3a] strh r0, [r2, #0x3a] _0803ABF6: ldr r6, [sp] ldrh r0, [r6] cmp r0, #0 beq _0803ACAE ldr r7, _0803AD54 @ =0x020314E0 ldr r1, [r7] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x17 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x1e subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 ldr r7, _0803AD78 @ =0x03005000 ldr r0, _0803AD7C @ =0xFFFFFE00 mov sl, r0 movs r1, #0xf rsbs r1, r1, #0 mov r8, r1 _0803AC26: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #3 adds r0, #8 ldr r2, [sp] adds r6, r2, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 movs r4, #2 ldrsh r1, [r6, r4] movs r4, #2 ldrsh r0, [r2, r4] adds r1, r1, r0 ldr r0, _0803AD54 @ =0x020314E0 ldr r4, [r0] lsls r0, r5, #2 adds r4, r4, r0 ldr r2, _0803AD58 @ =0x0000046C adds r0, r4, r2 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _0803AD80 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldr r3, [sp] ldrb r1, [r3, #4] ldrb r0, [r6, #4] adds r1, r1, r0 ldr r3, _0803AD60 @ =0x0000046E adds r4, r4, r3 ldrb r0, [r4] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 adds r5, #1 movs r0, #7 adds r1, r5, #0 ands r1, r0 lsls r1, r1, #1 ldrb r2, [r3, #3] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #3] lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803AC26 _0803ACAE: ldr r4, _0803AD54 @ =0x020314E0 ldr r3, [r4] ldr r5, _0803AD84 @ =0x00000456 adds r4, r3, r5 ldrh r0, [r4] cmp r0, #0x1d bhi _0803AD30 ldr r6, _0803AD88 @ =0x0000132C adds r0, r3, r6 ldr r1, [r0] movs r7, #0x10 ldrsh r0, [r1, r7] subs r0, #0x77 str r0, [sp, #0x10] movs r2, #0x12 ldrsh r0, [r1, r2] subs r0, #0x7f str r0, [sp, #0x14] ldr r5, [sp, #0x10] adds r1, r5, #0 muls r1, r5, r1 adds r6, r0, #0 adds r0, r6, #0 muls r0, r6, r0 adds r1, r1, r0 mov r8, r1 movs r7, #0xe2 lsls r7, r7, #2 adds r0, r3, r7 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 bne _0803AD30 ldr r0, _0803AD8C @ =0x086AEE20 ldrh r1, [r4] lsls r1, r1, #1 adds r1, r1, r0 movs r4, #0 ldrsh r0, [r1, r4] cmp r8, r0 bge _0803AD30 ldr r5, _0803AD90 @ =0x00000445 adds r0, r3, r5 strb r2, [r0] ldr r6, _0803AD54 @ =0x020314E0 ldr r0, [r6] adds r7, #0xc0 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] ldr r1, _0803AD94 @ =0x00000454 adds r0, r0, r1 strh r2, [r0] ldr r5, _0803AD70 @ =gMain ldr r2, _0803AD98 @ =0x00000E78 adds r4, r5, r2 ldrh r0, [r4] cmp r0, #0 bne _0803AD2A movs r0, #8 bl sub_11B0 _0803AD2A: movs r0, #1 strh r0, [r4] mov sb, r5 _0803AD30: mov r3, sb ldrb r1, [r3, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 beq _0803AD44 ldr r1, _0803AD9C @ =0x00001438 add r1, sb movs r0, #0 strh r0, [r1] _0803AD44: add sp, #0x40 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 _0803AD54: .4byte 0x020314E0 _0803AD58: .4byte 0x0000046C _0803AD5C: .4byte 0x00000474 _0803AD60: .4byte 0x0000046E _0803AD64: .4byte 0x00000472 _0803AD68: .4byte 0x00000476 _0803AD6C: .4byte 0x0000047A _0803AD70: .4byte gMain _0803AD74: .4byte 0x00001E10 _0803AD78: .4byte 0x03005000 _0803AD7C: .4byte 0xFFFFFE00 _0803AD80: .4byte 0x000001FF _0803AD84: .4byte 0x00000456 _0803AD88: .4byte 0x0000132C _0803AD8C: .4byte 0x086AEE20 _0803AD90: .4byte 0x00000445 _0803AD94: .4byte 0x00000454 _0803AD98: .4byte 0x00000E78 _0803AD9C: .4byte 0x00001438 thumb_func_start sub_3ADA0 sub_3ADA0: @ 0x0803ADA0 push {r4, r5, r6, r7, lr} ldr r6, _0803AE04 @ =0x0200C4F8 ldrh r0, [r6] cmp r0, #0 beq _0803ADFE movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] movs r0, #0 ldr r7, _0803AE08 @ =0x03005000 ldr r1, _0803AE0C @ =0xFFFFFE00 mov ip, r1 _0803ADBA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0803AE10 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803ADBA _0803ADFE: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803AE04: .4byte 0x0200C4F8 _0803AE08: .4byte 0x03005000 _0803AE0C: .4byte 0xFFFFFE00 _0803AE10: .4byte 0x000001FF thumb_func_start sub_3AE14 sub_3AE14: @ 0x0803AE14 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0803AE80 @ =0x020314E0 ldr r5, [r0] movs r1, #0x13 ldrsb r1, [r5, r1] cmp r1, #0 bne _0803AEA8 ldrh r1, [r5, #0x18] ldr r0, _0803AE84 @ =0x00000257 cmp r1, r0 bhi _0803AEA8 ldr r4, _0803AE88 @ =0x086AEF04 adds r0, r1, #0 movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r4 ldr r1, _0803AE8C @ =0x040000D4 movs r3, #0 ldrsh r2, [r0, r3] lsls r2, r2, #5 ldr r0, _0803AE90 @ =0x083529D8 adds r0, r2, r0 str r0, [r1] ldr r0, _0803AE94 @ =0x05000340 str r0, [r1, #4] ldr r3, _0803AE98 @ =0x80000010 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, _0803AE9C @ =0x0833FF58 adds r2, r2, r0 str r2, [r1] ldr r0, _0803AEA0 @ =0x050002A0 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] movs r6, #2 ldr r0, _0803AEA4 @ =0x0000044C adds r1, r5, r0 movs r0, #0 strh r0, [r1] b _0803AED2 .align 2, 0 _0803AE80: .4byte 0x020314E0 _0803AE84: .4byte 0x00000257 _0803AE88: .4byte 0x086AEF04 _0803AE8C: .4byte 0x040000D4 _0803AE90: .4byte 0x083529D8 _0803AE94: .4byte 0x05000340 _0803AE98: .4byte 0x80000010 _0803AE9C: .4byte 0x0833FF58 _0803AEA0: .4byte 0x050002A0 _0803AEA4: .4byte 0x0000044C _0803AEA8: ldr r6, _0803B0C4 @ =0x086AEEE6 ldr r1, _0803B0C8 @ =0x020314E0 ldr r5, [r1] ldr r2, _0803B0CC @ =0x0000044C adds r5, r5, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x60 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r6 ldrh r6, [r0] adds r4, #1 strh r4, [r5] _0803AED2: ldr r4, _0803B0D0 @ =0x086AEED6 ldr r3, _0803B0C8 @ =0x020314E0 ldr r0, [r3] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 movs r2, #0 ldr r3, _0803B0D4 @ =0x03006C00 mov r8, r3 ldr r1, _0803B0D8 @ =0x086AEEDE mov sl, r1 lsls r6, r6, #0x10 mov sb, r6 ldr r7, _0803B0DC @ =0xFFFFF000 add r7, r8 ldr r6, _0803B0E0 @ =0x08333004 movs r3, #0 ldrsh r0, [r0, r3] lsls r3, r0, #2 ldr r5, _0803B0E4 @ =0x000003FF movs r4, #0x80 lsls r4, r4, #4 _0803AF10: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r4 lsls r2, r2, #1 adds r2, r2, r7 lsls r0, r1, #1 adds r0, r0, r6 ldrh r0, [r0] adds r0, r0, r3 strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r5 ble _0803AF10 ldr r4, _0803B0E8 @ =0x040000D4 mov r0, r8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0803B0EC @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r1, _0803B0F0 @ =gMain ldr r0, [r1, #0x4c] movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 add r0, sl ldr r2, _0803B0C8 @ =0x020314E0 ldr r1, [r2] ldr r3, _0803B0F4 @ =0x00000382 adds r1, r1, r3 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #2 ldr r1, _0803B0F8 @ =0x086AEAE0 adds r2, r2, r1 movs r3, #0 ldrsh r1, [r0, r3] lsls r1, r1, #5 ldr r0, [r2] adds r0, r0, r1 str r0, [r4] ldr r0, _0803B0FC @ =0x05000060 str r0, [r4, #4] ldr r0, _0803B100 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] movs r3, #0 ldr r7, _0803B104 @ =0x03005000 mov r0, sb asrs r0, r0, #0xd mov r8, r0 ldr r1, _0803B108 @ =0x086AEEFE mov sb, r1 ldr r2, _0803B10C @ =0xFFFFFC00 mov sl, r2 _0803AF90: lsls r3, r3, #0x10 asrs r1, r3, #0x10 movs r0, #0xb8 muls r0, r1, r0 ldr r1, _0803B110 @ =0x0200BBA0 adds r6, r0, r1 ldr r2, _0803B0C8 @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x80 subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 mov ip, r3 _0803AFBA: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0803B114 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0803B118 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r5, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 lsls r0, r4, #1 add r0, sb ldrh r1, [r0] add r1, r8 ldr r3, _0803B0E4 @ =0x000003FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #4] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _0803AFBA movs r0, #0x80 lsls r0, r0, #9 add r0, ip lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0803AF90 ldr r6, _0803B11C @ =0x0200BE80 ldrh r0, [r6] cmp r0, #0 beq _0803B0B4 ldr r1, _0803B0C8 @ =0x020314E0 ldr r0, [r1] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r2, _0803B0C8 @ =0x020314E0 ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x80 subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 ldr r7, _0803B104 @ =0x03005000 ldr r3, _0803B118 @ =0xFFFFFE00 mov r8, r3 _0803B056: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0803B114 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #7 ble _0803B056 ldr r3, _0803B0C8 @ =0x020314E0 ldr r0, [r3] ldrh r1, [r0, #0x18] movs r0, #0xf0 lsls r0, r0, #1 cmp r1, r0 bne _0803B0B4 ldr r0, _0803B0F0 @ =gMain movs r2, #0xdc lsls r2, r2, #4 adds r1, r0, r2 movs r0, #0 strh r0, [r1] _0803B0B4: 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 _0803B0C4: .4byte 0x086AEEE6 _0803B0C8: .4byte 0x020314E0 _0803B0CC: .4byte 0x0000044C _0803B0D0: .4byte 0x086AEED6 _0803B0D4: .4byte 0x03006C00 _0803B0D8: .4byte 0x086AEEDE _0803B0DC: .4byte 0xFFFFF000 _0803B0E0: .4byte 0x08333004 _0803B0E4: .4byte 0x000003FF _0803B0E8: .4byte 0x040000D4 _0803B0EC: .4byte 0x80000400 _0803B0F0: .4byte gMain _0803B0F4: .4byte 0x00000382 _0803B0F8: .4byte 0x086AEAE0 _0803B0FC: .4byte 0x05000060 _0803B100: .4byte 0x80000010 _0803B104: .4byte 0x03005000 _0803B108: .4byte 0x086AEEFE _0803B10C: .4byte 0xFFFFFC00 _0803B110: .4byte 0x0200BBA0 _0803B114: .4byte 0x000001FF _0803B118: .4byte 0xFFFFFE00 _0803B11C: .4byte 0x0200BE80 thumb_func_start sub_3B120 sub_3B120: @ 0x0803B120 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _0803B158 @ =0x020314E0 ldr r1, [r4] movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] strb r2, [r1, #0x17] ldr r0, [r4] strb r2, [r0, #0x13] ldr r5, [r4] ldr r1, _0803B15C @ =0x00000283 adds r0, r5, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 mov ip, r4 cmp r0, #3 bne _0803B160 movs r2, #0xe1 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0x12 b _0803B168 .align 2, 0 _0803B158: .4byte 0x020314E0 _0803B15C: .4byte 0x00000283 _0803B160: movs r3, #0xe1 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #0xf _0803B168: strb r0, [r1] mov r4, ip ldr r0, [r4] movs r5, #0xa5 lsls r5, r5, #2 adds r0, r0, r5 movs r3, #0 strb r3, [r0] ldr r1, [r4] adds r5, r1, #0 adds r5, #0x6c ldr r6, _0803B42C @ =0x00002A30 adds r0, r6, #0 ldrh r2, [r5] adds r0, r0, r2 ldr r4, _0803B430 @ =0x00000296 adds r2, r1, r4 movs r4, #0 strh r0, [r2] strh r3, [r5] movs r5, #0xe2 lsls r5, r5, #2 adds r1, r1, r5 movs r2, #3 strb r2, [r1] mov r6, ip ldr r0, [r6] adds r5, #0xa adds r1, r0, r5 strh r3, [r1] ldr r6, _0803B434 @ =0x0000132C adds r0, r0, r6 ldr r0, [r0] movs r1, #1 strb r1, [r0] mov r5, ip ldr r0, [r5] ldr r6, _0803B438 @ =0x00000386 adds r0, r0, r6 strb r4, [r0] ldr r0, [r5] ldr r5, _0803B43C @ =0x00000387 adds r0, r0, r5 strb r1, [r0] mov r6, ip ldr r0, [r6] ldr r1, _0803B440 @ =0x000006C4 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] ldr r2, _0803B444 @ =0x00000382 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] subs r5, #4 adds r0, r0, r5 strb r4, [r0] ldr r0, [r6] ldr r6, _0803B448 @ =0x00000385 adds r0, r0, r6 strb r4, [r0] mov r1, ip ldr r0, [r1] adds r2, #7 adds r0, r0, r2 strb r4, [r0] ldr r1, [r1] adds r5, #0xb adds r0, r1, r5 strh r3, [r0] adds r6, #0xb adds r0, r1, r6 strh r3, [r0] adds r2, #0xb adds r0, r1, r2 strh r3, [r0] adds r5, #0x4e adds r0, r1, r5 strb r4, [r0] mov r6, ip ldr r0, [r6] ldr r1, _0803B44C @ =0x000003DD adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] adds r2, #0x4a adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] adds r5, #3 adds r0, r0, r5 strb r4, [r0] ldr r0, [r6] movs r6, #0xf8 lsls r6, r6, #2 adds r0, r0, r6 strb r4, [r0] mov r1, ip ldr r0, [r1] adds r2, #4 adds r1, r0, r2 strh r3, [r1] adds r5, #2 adds r0, r0, r5 strb r4, [r0] mov r6, ip ldr r1, [r6] adds r2, #2 adds r0, r1, r2 strh r3, [r0] adds r5, #5 adds r0, r1, r5 strh r3, [r0] movs r6, #0xfa lsls r6, r6, #2 adds r0, r1, r6 strh r3, [r0] adds r2, #6 adds r0, r1, r2 strh r3, [r0] adds r5, #6 adds r0, r1, r5 strh r3, [r0] adds r6, #6 adds r0, r1, r6 strh r3, [r0] adds r2, #6 adds r0, r1, r2 strh r3, [r0] adds r5, #6 adds r0, r1, r5 strh r3, [r0] adds r6, #0x64 adds r0, r1, r6 strh r3, [r0] adds r2, #0x66 adds r0, r1, r2 strh r3, [r0] adds r5, #0x8a adds r1, r1, r5 strb r4, [r1] mov r6, ip ldr r0, [r6] ldr r1, _0803B450 @ =0x0000047D adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] adds r2, #0x28 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] adds r5, #3 adds r0, r0, r5 strb r4, [r0] ldr r0, [r6] movs r6, #0x90 lsls r6, r6, #3 adds r1, r0, r6 strh r3, [r1] adds r2, #4 adds r1, r0, r2 strh r3, [r1] adds r5, #5 adds r1, r0, r5 strh r3, [r1] adds r6, #6 adds r1, r0, r6 strh r3, [r1] adds r2, #6 adds r1, r0, r2 strh r3, [r1] adds r5, #6 adds r1, r0, r5 strh r3, [r1] adds r6, #0x3e adds r1, r0, r6 strh r3, [r1] adds r2, #0x3e adds r1, r0, r2 strh r3, [r1] adds r5, #0x3e adds r0, r0, r5 strb r4, [r0] mov r6, ip ldr r0, [r6] adds r2, #4 adds r1, r0, r2 strh r3, [r1] ldr r3, _0803B454 @ =0x000004C9 adds r0, r0, r3 strb r4, [r0] movs r1, #0 mov r5, ip movs r6, #0 movs r7, #0 _0803B2EE: ldr r3, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r4, r2, #2 adds r1, r3, r4 ldr r0, _0803B458 @ =0x0000046C strh r7, [r0, r1] adds r0, #2 adds r1, r1, r0 strh r7, [r1] ldr r1, _0803B45C @ =0x0000048C adds r3, r3, r1 adds r3, r3, r2 strb r6, [r3] ldr r0, [r5] movs r3, #0x92 lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #8 adds r0, r0, r1 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r3, #8 adds r0, r0, r3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #8 adds r0, r0, r1 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r3, #8 adds r0, r0, r3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #8 adds r0, r0, r1 adds r0, r0, r2 strb r6, [r0] ldr r1, [r5] lsls r3, r2, #1 mov r8, r3 ldr r3, _0803B460 @ =0x000004AC adds r0, r1, r3 add r0, r8 strh r7, [r0] adds r1, r1, r4 ldr r4, _0803B464 @ =0x000004B4 adds r0, r1, r4 strh r7, [r0] ldr r0, _0803B468 @ =0x000004B6 adds r1, r1, r0 strh r7, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _0803B2EE movs r1, #0 ldr r5, _0803B46C @ =0x020314E0 movs r4, #0 _0803B376: ldr r0, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r1, _0803B470 @ =0x000004CC adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r3, _0803B474 @ =0x000004CF adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r6, _0803B478 @ =0x000004D2 adds r0, r0, r6 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r1, #9 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] lsls r3, r2, #1 adds r6, #6 adds r0, r1, r6 adds r0, r0, r3 strh r4, [r0] adds r6, #6 adds r0, r1, r6 adds r0, r0, r3 strh r4, [r0] adds r6, #6 adds r0, r1, r6 adds r0, r0, r3 strh r4, [r0] lsls r0, r2, #2 adds r1, r1, r0 ldr r3, _0803B47C @ =0x000004EC adds r0, r1, r3 strh r4, [r0] adds r6, #0xa adds r0, r1, r6 strh r4, [r0] adds r3, #0xc adds r0, r1, r3 strh r4, [r0] adds r6, #0xc adds r1, r1, r6 strh r4, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _0803B376 mov r0, ip ldr r1, [r0] movs r0, #1 strb r0, [r1, #0x1a] bl sub_3CBC4 bl sub_3B7C4 bl sub_3C6E0 ldr r4, _0803B480 @ =0x040000D4 ldr r0, _0803B484 @ =0x0849F1CC str r0, [r4] ldr r0, _0803B488 @ =0x06015800 str r0, [r4, #4] ldr r0, _0803B48C @ =0x80001000 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_3E644 movs r0, #0x28 bl m4aSongNumStart ldr r0, _0803B490 @ =0x081B36A4 str r0, [r4] ldr r0, _0803B494 @ =0x05000320 str r0, [r4, #4] ldr r0, _0803B498 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803B42C: .4byte 0x00002A30 _0803B430: .4byte 0x00000296 _0803B434: .4byte 0x0000132C _0803B438: .4byte 0x00000386 _0803B43C: .4byte 0x00000387 _0803B440: .4byte 0x000006C4 _0803B444: .4byte 0x00000382 _0803B448: .4byte 0x00000385 _0803B44C: .4byte 0x000003DD _0803B450: .4byte 0x0000047D _0803B454: .4byte 0x000004C9 _0803B458: .4byte 0x0000046C _0803B45C: .4byte 0x0000048C _0803B460: .4byte 0x000004AC _0803B464: .4byte 0x000004B4 _0803B468: .4byte 0x000004B6 _0803B46C: .4byte 0x020314E0 _0803B470: .4byte 0x000004CC _0803B474: .4byte 0x000004CF _0803B478: .4byte 0x000004D2 _0803B47C: .4byte 0x000004EC _0803B480: .4byte 0x040000D4 _0803B484: .4byte 0x0849F1CC _0803B488: .4byte 0x06015800 _0803B48C: .4byte 0x80001000 _0803B490: .4byte 0x081B36A4 _0803B494: .4byte 0x05000320 _0803B498: .4byte 0x80000010 thumb_func_start sub_3B49C sub_3B49C: @ 0x0803B49C push {r4, r5, r6, lr} ldr r0, _0803B4B8 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _0803B4AE b _0803B740 _0803B4AE: lsls r0, r0, #2 ldr r1, _0803B4BC @ =_0803B4C0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B4B8: .4byte 0x020314E0 _0803B4BC: .4byte _0803B4C0 _0803B4C0: @ jump table .4byte _0803B4DC @ case 0 .4byte _0803B740 @ case 1 .4byte _0803B576 @ case 2 .4byte _0803B5EC @ case 3 .4byte _0803B66C @ case 4 .4byte _0803B6C8 @ case 5 .4byte _0803B728 @ case 6 _0803B4DC: ldr r5, _0803B504 @ =0x020314E0 ldr r0, [r5] ldr r1, _0803B508 @ =0x000005F7 adds r0, r0, r1 movs r2, #0 movs r6, #1 strb r6, [r0] ldr r4, [r5] ldrh r1, [r4, #0x18] ldr r0, _0803B50C @ =0x000001F3 cmp r1, r0 bhi _0803B514 adds r1, r4, #0 adds r1, #0xe6 ldr r0, _0803B510 @ =0x0000FFC0 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] b _0803B740 .align 2, 0 _0803B504: .4byte 0x020314E0 _0803B508: .4byte 0x000005F7 _0803B50C: .4byte 0x000001F3 _0803B510: .4byte 0x0000FFC0 _0803B514: ldr r0, _0803B55C @ =0x00000333 cmp r1, r0 bhi _0803B568 ldrh r0, [r4, #0x18] ldr r2, _0803B560 @ =0xFFFFFE0C adds r0, r0, r2 movs r1, #5 bl __divsi3 subs r0, #0x40 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] movs r0, #0 ldrsh r1, [r1, r0] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 blt _0803B544 movs r0, #0 strb r0, [r4, #0x1a] _0803B544: ldr r2, [r5] ldrh r1, [r2, #0x18] ldr r0, _0803B564 @ =0x0000028A cmp r1, r0 beq _0803B550 b _0803B740 _0803B550: movs r1, #0xa5 lsls r1, r1, #2 adds r0, r2, r1 strb r6, [r0] b _0803B740 .align 2, 0 _0803B55C: .4byte 0x00000333 _0803B560: .4byte 0xFFFFFE0C _0803B564: .4byte 0x0000028A _0803B568: adds r0, r4, #0 adds r0, #0xe6 strh r2, [r0] strb r6, [r4, #0x13] ldr r0, [r5] strh r2, [r0, #0x18] b _0803B740 _0803B576: ldr r2, _0803B588 @ =0x020314E0 ldr r3, [r2] ldrh r0, [r3, #0x18] cmp r0, #0x77 bhi _0803B58C adds r0, #1 strh r0, [r3, #0x18] b _0803B740 .align 2, 0 _0803B588: .4byte 0x020314E0 _0803B58C: movs r1, #0 movs r0, #3 strb r0, [r3, #0x13] ldr r2, [r2] strh r1, [r2, #0x18] ldr r3, _0803B5D4 @ =gMain movs r4, #0xe9 lsls r4, r4, #3 adds r0, r3, r4 movs r4, #1 movs r1, #1 strh r1, [r0] movs r5, #0xd2 lsls r5, r5, #3 adds r0, r3, r5 strh r1, [r0] ldr r1, _0803B5D8 @ =0x040000D4 ldr r0, _0803B5DC @ =0x0813E894 str r0, [r1] ldr r0, _0803B5E0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803B5E4 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x88 strh r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] ldr r1, _0803B5E8 @ =0x000005FA adds r2, r2, r1 strb r4, [r2] b _0803B740 .align 2, 0 _0803B5D4: .4byte gMain _0803B5D8: .4byte 0x040000D4 _0803B5DC: .4byte 0x0813E894 _0803B5E0: .4byte 0x06015800 _0803B5E4: .4byte 0x80001000 _0803B5E8: .4byte 0x000005FA _0803B5EC: bl sub_351A8 ldr r4, _0803B634 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803B5FE movs r0, #0xb5 strh r0, [r1, #0x18] _0803B5FE: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803B614 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _0803B638 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803B63C @ =0x02FAF080 str r0, [r1, #0x3c] _0803B614: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803B640 cmp r0, #0x14 bne _0803B62A bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _0803B62A: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _0803B654 .align 2, 0 _0803B634: .4byte 0x020314E0 _0803B638: .4byte 0x00061A80 _0803B63C: .4byte 0x02FAF080 _0803B640: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _0803B660 @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803B654: ldr r0, _0803B664 @ =0x020314E0 ldr r0, [r0] ldr r4, _0803B668 @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _0803B73E .align 2, 0 _0803B660: .4byte 0x00000283 _0803B664: .4byte 0x020314E0 _0803B668: .4byte 0x000005FA _0803B66C: ldr r2, _0803B6B0 @ =0x020314E0 ldr r1, [r2] movs r0, #5 strb r0, [r1, #0x13] ldr r2, [r2] movs r0, #0x8c strh r0, [r2, #0x18] ldr r3, _0803B6B4 @ =gMain movs r5, #0xe9 lsls r5, r5, #3 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _0803B6B8 @ =0x040000D4 ldr r0, _0803B6BC @ =0x0813E894 str r0, [r1] ldr r0, _0803B6C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803B6C4 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0xe5 lsls r5, r5, #2 adds r2, r2, r5 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _0803B740 .align 2, 0 _0803B6B0: .4byte 0x020314E0 _0803B6B4: .4byte gMain _0803B6B8: .4byte 0x040000D4 _0803B6BC: .4byte 0x0813E894 _0803B6C0: .4byte 0x06015800 _0803B6C4: .4byte 0x80001000 _0803B6C8: bl sub_351A8 ldr r2, _0803B700 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803B6DA movs r0, #0xb5 strh r0, [r1, #0x18] _0803B6DA: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803B6F0 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r2] ldr r0, _0803B704 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803B708 @ =0x02FAF080 str r0, [r1, #0x3c] _0803B6F0: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803B70C adds r0, #1 strh r0, [r1, #0x18] b _0803B740 .align 2, 0 _0803B700: .4byte 0x020314E0 _0803B704: .4byte 0x00061A80 _0803B708: .4byte 0x02FAF080 _0803B70C: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r2] ldr r0, _0803B724 @ =0x00000283 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803B740 .align 2, 0 _0803B724: .4byte 0x00000283 _0803B728: bl sub_351A8 ldr r2, _0803B7B0 @ =0x020314E0 ldr r0, [r2] ldr r1, _0803B7B4 @ =0x00000386 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r2, _0803B7B8 @ =0x000005FA adds r0, r0, r2 _0803B73E: strb r1, [r0] _0803B740: bl sub_3CBC4 bl sub_3B7C4 bl sub_3C6E0 bl sub_3E644 ldr r0, _0803B7B0 @ =0x020314E0 ldr r1, [r0] movs r4, #0xa5 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803B788 ldr r5, _0803B7BC @ =0x00000296 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #1 bhi _0803B788 ldr r4, _0803B7C0 @ =gMain ldrb r0, [r4, #0xf] cmp r0, #0 bne _0803B788 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _0803B788: ldr r0, _0803B7B0 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803B7B4 @ =0x00000386 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803B7A6 ldr r4, _0803B7B8 @ =0x000005FA adds r1, r1, r4 movs r0, #1 strb r0, [r1] bl sub_350F0 _0803B7A6: bl sub_472E4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0803B7B0: .4byte 0x020314E0 _0803B7B4: .4byte 0x00000386 _0803B7B8: .4byte 0x000005FA _0803B7BC: .4byte 0x00000296 _0803B7C0: .4byte gMain thumb_func_start sub_3B7C4 sub_3B7C4: @ 0x0803B7C4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0803B874 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803B878 @ =0x00000452 adds r4, r1, r2 ldrh r3, [r4] mov r8, r0 cmp r3, #0 beq _0803B850 subs r0, r3, #1 strh r0, [r4] ldr r3, _0803B87C @ =0x00000389 adds r1, r1, r3 movs r0, #1 strb r0, [r1] mov r4, r8 ldr r0, [r4] adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0x23 bne _0803B838 ldr r0, _0803B880 @ =0x02032F20 ldr r1, _0803B884 @ =0x086A22D8 bl MPlayStart ldr r1, [r4] ldr r0, _0803B888 @ =0x0007A120 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 ldr r1, [r4] ldr r2, _0803B88C @ =0x00000385 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r3, [r4] adds r2, r3, r2 movs r1, #0xe1 lsls r1, r1, #2 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _0803B838 movs r2, #0xf7 lsls r2, r2, #2 adds r1, r3, r2 movs r0, #6 strb r0, [r1] _0803B838: ldr r0, _0803B874 @ =0x020314E0 ldr r3, [r0] ldr r4, _0803B878 @ =0x00000452 adds r1, r3, r4 ldrh r1, [r1] mov r8, r0 cmp r1, #0x1e bhi _0803B850 ldr r0, _0803B87C @ =0x00000389 adds r1, r3, r0 movs r0, #0 strb r0, [r1] _0803B850: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0803B868 bl _0803C476 _0803B868: lsls r0, r0, #2 ldr r1, _0803B890 @ =_0803B894 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B874: .4byte 0x020314E0 _0803B878: .4byte 0x00000452 _0803B87C: .4byte 0x00000389 _0803B880: .4byte 0x02032F20 _0803B884: .4byte 0x086A22D8 _0803B888: .4byte 0x0007A120 _0803B88C: .4byte 0x00000385 _0803B890: .4byte _0803B894 _0803B894: @ jump table .4byte _0803B8C0 @ case 0 .4byte _0803B91C @ case 1 .4byte _0803BB2C @ case 2 .4byte _0803BC74 @ case 3 .4byte _0803BEF8 @ case 4 .4byte _0803BFD4 @ case 5 .4byte _0803C098 @ case 6 .4byte _0803C1BC @ case 7 .4byte _0803C26C @ case 8 .4byte _0803C3C0 @ case 9 .4byte _0803C476 @ case 10 _0803B8C0: ldr r3, _0803B904 @ =0x020314E0 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r4, #0 movs r1, #1 strb r1, [r0] ldr r1, [r3] ldr r0, _0803B908 @ =0x000003E2 adds r2, r1, r0 movs r5, #0 movs r0, #0x16 strh r0, [r2] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 strh r4, [r0] ldr r0, _0803B90C @ =0x000003E1 adds r1, r1, r0 strb r5, [r1] ldr r1, [r3] adds r2, #4 adds r0, r1, r2 strh r4, [r0] ldr r3, _0803B910 @ =0x000003EA adds r2, r1, r3 ldr r0, _0803B914 @ =0x0000FB50 strh r0, [r2] ldr r0, _0803B918 @ =0x000004C6 adds r1, r1, r0 strh r4, [r1] bl _0803C476 .align 2, 0 _0803B904: .4byte 0x020314E0 _0803B908: .4byte 0x000003E2 _0803B90C: .4byte 0x000003E1 _0803B910: .4byte 0x000003EA _0803B914: .4byte 0x0000FB50 _0803B918: .4byte 0x000004C6 _0803B91C: ldr r0, _0803B944 @ =0x086AF140 mov r1, r8 ldr r5, [r1] ldr r2, _0803B948 @ =0x000003E2 adds r4, r5, r2 movs r3, #0 ldrsh r1, [r4, r3] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r0, #0xf9 lsls r0, r0, #2 adds r2, r5, r0 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803B94C adds r0, r3, #1 strh r0, [r2] b _0803B99E .align 2, 0 _0803B944: .4byte 0x086AF140 _0803B948: .4byte 0x000003E2 _0803B94C: movs r3, #0 strh r3, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x24 bne _0803B99E ldr r2, _0803B978 @ =0x000003E1 adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x11 bgt _0803B97C movs r0, #0x22 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803B99E .align 2, 0 _0803B978: .4byte 0x000003E1 _0803B97C: strh r3, [r4] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #2 strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r1, _0803BAF8 @ =0x000003DD adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r0, [r4] ldr r2, _0803BAFC @ =0x000003E1 adds r0, r0, r2 movs r1, #9 strb r1, [r0] _0803B99E: ldr r0, _0803BB00 @ =0x020314E0 ldr r4, [r0] ldr r3, _0803BB04 @ =0x000003E2 adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x16 beq _0803B9B0 b _0803BABA _0803B9B0: adds r3, #2 adds r2, r4, r3 ldrh r1, [r2] ldr r0, _0803BB08 @ =0x000001F3 cmp r1, r0 bhi _0803BA54 cmp r1, #0x32 beq _0803B9C6 subs r0, #0xe5 cmp r1, r0 bne _0803B9E8 _0803B9C6: ldr r0, _0803BB0C @ =0x000004CA adds r1, r4, r0 movs r0, #0x1f strh r0, [r1] ldrh r0, [r2] movs r1, #0x6e bl __udivsi3 ldr r2, _0803BB10 @ =0x000004C9 adds r1, r4, r2 strb r0, [r1] ldr r0, _0803BB14 @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803B9E8: ldr r0, _0803BB00 @ =0x020314E0 ldr r4, [r0] movs r3, #0xf9 lsls r3, r3, #2 adds r2, r4, r3 ldrh r1, [r2] cmp r1, #0xa0 beq _0803BA00 movs r0, #0xbe lsls r0, r0, #1 cmp r1, r0 bne _0803BA22 _0803BA00: ldr r0, _0803BB0C @ =0x000004CA adds r1, r4, r0 movs r0, #0x1f strh r0, [r1] ldrh r0, [r2] movs r1, #0x6e bl __udivsi3 ldr r2, _0803BB10 @ =0x000004C9 adds r1, r4, r2 strb r0, [r1] ldr r0, _0803BB14 @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803BA22: ldr r0, _0803BB00 @ =0x020314E0 ldr r2, [r0] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r2, r3 ldrh r1, [r0] movs r0, #0xf5 lsls r0, r0, #1 cmp r1, r0 bne _0803BA54 ldr r4, _0803BB0C @ =0x000004CA adds r1, r2, r4 movs r0, #0x1f strh r0, [r1] ldr r0, _0803BB10 @ =0x000004C9 adds r1, r2, r0 movs r0, #4 strb r0, [r1] movs r0, #0x8d lsls r0, r0, #1 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803BA54: ldr r2, _0803BB00 @ =0x020314E0 ldr r3, [r2] movs r1, #0xf9 lsls r1, r1, #2 adds r0, r3, r1 ldrh r1, [r0] ldr r0, _0803BB18 @ =0x00000275 mov r8, r2 cmp r1, r0 bls _0803BA8E ldr r4, _0803BB1C @ =0x000003EA adds r2, r3, r4 movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0 bge _0803BA9E adds r4, #0xdc adds r0, r3, r4 ldrh r1, [r0] adds r1, #4 strh r1, [r0] ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 ble _0803BA8E movs r0, #0 strh r0, [r2] _0803BA8E: mov r1, r8 ldr r0, [r1] ldr r2, _0803BB1C @ =0x000003EA adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 blt _0803BABA _0803BA9E: ldr r0, _0803BB00 @ =0x020314E0 ldr r0, [r0] movs r4, #0x99 lsls r4, r4, #3 adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r0, _0803BB20 @ =0x02032F20 ldr r1, _0803BB24 @ =0x086A2454 bl MPlayStart movs r0, #0xd bl sub_11B0 _0803BABA: ldr r0, _0803BB00 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803BB04 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 bne _0803BAE0 movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0 bne _0803BAE0 movs r0, #0xe4 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0x29 strh r0, [r1] _0803BAE0: ldr r0, _0803BB00 @ =0x020314E0 ldr r0, [r0] ldr r2, _0803BB28 @ =0x00000392 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x78 bhi _0803BAF2 bl _0803C476 _0803BAF2: subs r0, #1 bl _0803C474 .align 2, 0 _0803BAF8: .4byte 0x000003DD _0803BAFC: .4byte 0x000003E1 _0803BB00: .4byte 0x020314E0 _0803BB04: .4byte 0x000003E2 _0803BB08: .4byte 0x000001F3 _0803BB0C: .4byte 0x000004CA _0803BB10: .4byte 0x000004C9 _0803BB14: .4byte 0x00000119 _0803BB18: .4byte 0x00000275 _0803BB1C: .4byte 0x000003EA _0803BB20: .4byte 0x02032F20 _0803BB24: .4byte 0x086A2454 _0803BB28: .4byte 0x00000392 _0803BB2C: mov r3, r8 ldr r4, [r3] ldr r1, _0803BB50 @ =0x00000452 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0x1e bls _0803BB58 ldr r2, _0803BB54 @ =0x000003E2 adds r1, r4, r2 movs r2, #0 movs r0, #0x15 strh r0, [r1] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r4, r3 strh r2, [r0] bl _0803C476 .align 2, 0 _0803BB50: .4byte 0x00000452 _0803BB54: .4byte 0x000003E2 _0803BB58: ldr r0, _0803BB7C @ =0x086AF140 ldr r1, _0803BB80 @ =0x000003E2 adds r3, r4, r1 movs r2, #0 ldrsh r1, [r3, r2] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r0, #0xf9 lsls r0, r0, #2 adds r2, r4, r0 ldrh r5, [r2] ldrh r0, [r1] cmp r0, r5 bls _0803BB84 adds r0, r5, #1 strh r0, [r2] b _0803BC50 .align 2, 0 _0803BB7C: .4byte 0x086AF140 _0803BB80: .4byte 0x000003E2 _0803BB84: movs r6, #0 movs r5, #0 strh r5, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bne _0803BC50 ldr r2, _0803BBF4 @ =0x000003E1 adds r1, r4, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb bgt _0803BC00 strh r5, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r2, r8 ldr r1, [r2] ldr r3, _0803BBF4 @ =0x000003E1 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _0803BC50 ldr r4, _0803BBF8 @ =0x000003DD adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0803BC50 movs r3, #0 ldr r5, _0803BBFC @ =0x0000048C movs r4, #9 _0803BBD2: ldr r0, [r2] lsls r1, r3, #0x10 asrs r1, r1, #0x10 adds r0, r0, r5 adds r3, r0, r1 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #8 bgt _0803BBE6 strb r4, [r3] _0803BBE6: adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0803BBD2 b _0803BC50 .align 2, 0 _0803BBF4: .4byte 0x000003E1 _0803BBF8: .4byte 0x000003DD _0803BBFC: .4byte 0x0000048C _0803BC00: ldr r1, _0803BC20 @ =0x000003DD adds r0, r4, r1 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #4 bne _0803BC24 movs r0, #0x24 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r4, r3 strb r1, [r0] mov r4, r8 ldr r0, [r4] b _0803BC4C .align 2, 0 _0803BC20: .4byte 0x000003DD _0803BC24: cmp r1, #3 bne _0803BC3A movs r0, #0x4c strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r4, r3 strb r1, [r0] mov r4, r8 ldr r0, [r4] b _0803BC4C _0803BC3A: movs r0, #0x3a strh r0, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #5 strb r0, [r1] mov r1, r8 ldr r0, [r1] _0803BC4C: adds r0, r0, r2 strb r6, [r0] _0803BC50: ldr r0, _0803BC6C @ =0x020314E0 ldr r0, [r0] ldr r2, _0803BC70 @ =0x000003E2 adds r1, r0, r2 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x15 beq _0803BC64 bl _0803C476 _0803BC64: movs r0, #0 bl _0803C474 .align 2, 0 _0803BC6C: .4byte 0x020314E0 _0803BC70: .4byte 0x000003E2 _0803BC74: ldr r1, _0803BCA0 @ =0x086AF140 mov r4, r8 ldr r2, [r4] ldr r0, _0803BCA4 @ =0x000003E2 adds r3, r2, r0 movs r4, #0 ldrsh r0, [r3, r4] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _0803BCA8 adds r0, r1, #1 strh r0, [r2] bl _0803C476 .align 2, 0 _0803BCA0: .4byte 0x086AF140 _0803BCA4: .4byte 0x000003E2 _0803BCA8: movs r0, #0 strh r0, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x5d beq _0803BCC2 cmp r0, #0x60 beq _0803BCC2 cmp r0, #0x63 bne _0803BD1E _0803BCC2: mov r2, r8 ldr r1, [r2] ldr r3, _0803BCF4 @ =0x000003E2 adds r2, r1, r3 movs r0, #0 strh r0, [r2] movs r4, #0xf7 lsls r4, r4, #2 adds r1, r1, r4 movs r0, #2 strb r0, [r1] mov r0, r8 ldr r2, [r0] ldr r1, _0803BCF8 @ =0x0000047C adds r0, r2, r1 ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0803BCFC subs r3, #5 adds r1, r2, r3 movs r0, #4 b _0803BD02 .align 2, 0 _0803BCF4: .4byte 0x000003E2 _0803BCF8: .4byte 0x0000047C _0803BCFC: ldr r3, _0803BDF8 @ =0x000003DD adds r1, r2, r3 movs r0, #5 _0803BD02: strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r1, _0803BDFC @ =0x000003E1 adds r0, r0, r1 movs r1, #8 strb r1, [r0] mov r2, r8 ldr r1, [r2] ldr r3, _0803BE00 @ =0x0000047C adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803BD1E: ldr r5, _0803BE04 @ =0x020314E0 ldr r0, [r5] ldr r4, _0803BE08 @ =0x000003E2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x5a beq _0803BD30 b _0803C476 _0803BD30: ldr r0, _0803BE0C @ =0x02032F20 ldr r1, _0803BE10 @ =0x086A24F0 bl MPlayStart ldr r0, [r5] ldr r2, _0803BE14 @ =0x0000047E adds r0, r0, r2 movs r1, #8 strb r1, [r0] ldr r4, [r5] ldr r3, _0803BE18 @ =0x00000482 adds r1, r4, r3 movs r0, #0 mov sb, r0 movs r0, #0x23 strh r0, [r1] ldr r1, _0803BE1C @ =gMain mov sl, r1 ldr r1, _0803BE20 @ =0x000012C8 add r1, sl movs r0, #1 strh r0, [r1] adds r2, #0xa mov r8, r2 adds r2, r4, r2 movs r0, #0x96 lsls r0, r0, #3 strh r0, [r2] adds r3, #8 adds r1, r4, r3 adds r0, #0x28 strh r0, [r1] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _0803BE24 @ =0x0000132C adds r4, r4, r2 ldr r2, [r4] movs r3, #0x10 ldrsh r1, [r2, r3] subs r6, r0, r1 movs r1, #0x7c movs r4, #0x12 ldrsh r0, [r2, r4] subs r7, r1, r0 rsbs r0, r6, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r7, #0x10 asrs r1, r1, #0x10 bl ArcTan2 ldr r1, [r5] ldr r6, _0803BE28 @ =0x00000484 adds r2, r1, r6 strh r0, [r2] movs r0, #0xe2 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0803BDE0 bl sub_C00 ldr r4, [r5] mov r2, sl ldr r1, [r2, #0x4c] muls r0, r1, r0 movs r1, #0x64 bl __umodsi3 adds r1, r0, #0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #0xc movs r1, #0x64 bl __udivsi3 movs r3, #0x98 lsls r3, r3, #8 adds r0, r0, r3 adds r4, r4, r6 strh r0, [r4] _0803BDE0: ldr r1, [r5] adds r3, r1, r6 ldrh r2, [r3] ldr r0, _0803BE2C @ =0x00003FFF cmp r2, r0 bhi _0803BE34 movs r0, #0xe8 lsls r0, r0, #8 strh r0, [r3] ldr r4, _0803BE30 @ =0x0000047D adds r1, r1, r4 b _0803BEB6 .align 2, 0 _0803BDF8: .4byte 0x000003DD _0803BDFC: .4byte 0x000003E1 _0803BE00: .4byte 0x0000047C _0803BE04: .4byte 0x020314E0 _0803BE08: .4byte 0x000003E2 _0803BE0C: .4byte 0x02032F20 _0803BE10: .4byte 0x086A24F0 _0803BE14: .4byte 0x0000047E _0803BE18: .4byte 0x00000482 _0803BE1C: .4byte gMain _0803BE20: .4byte 0x000012C8 _0803BE24: .4byte 0x0000132C _0803BE28: .4byte 0x00000484 _0803BE2C: .4byte 0x00003FFF _0803BE30: .4byte 0x0000047D _0803BE34: ldr r0, _0803BE50 @ =0x000097FF cmp r2, r0 bhi _0803BE5C adds r0, #1 strh r0, [r3] ldr r2, _0803BE54 @ =0x0000047D adds r0, r1, r2 movs r3, #1 strb r3, [r0] ldr r0, [r5] add r0, r8 ldr r1, _0803BE58 @ =0x00000424 b _0803BEC0 .align 2, 0 _0803BE50: .4byte 0x000097FF _0803BE54: .4byte 0x0000047D _0803BE58: .4byte 0x00000424 _0803BE5C: ldr r0, _0803BE74 @ =0x0000AFFF cmp r2, r0 bhi _0803BE80 ldr r4, _0803BE78 @ =0x0000047D adds r0, r1, r4 movs r1, #1 strb r1, [r0] ldr r0, [r5] add r0, r8 ldr r1, _0803BE7C @ =0x00000424 b _0803BEC0 .align 2, 0 _0803BE74: .4byte 0x0000AFFF _0803BE78: .4byte 0x0000047D _0803BE7C: .4byte 0x00000424 _0803BE80: ldr r0, _0803BE90 @ =0x0000CFFF cmp r2, r0 bhi _0803BE98 ldr r2, _0803BE94 @ =0x0000047D adds r0, r1, r2 mov r3, sb strb r3, [r0] b _0803BEC2 .align 2, 0 _0803BE90: .4byte 0x0000CFFF _0803BE94: .4byte 0x0000047D _0803BE98: ldr r0, _0803BEA4 @ =0x0000E7FF cmp r2, r0 bhi _0803BEAC ldr r4, _0803BEA8 @ =0x0000047D adds r1, r1, r4 b _0803BEB6 .align 2, 0 _0803BEA4: .4byte 0x0000E7FF _0803BEA8: .4byte 0x0000047D _0803BEAC: movs r0, #0xe8 lsls r0, r0, #8 strh r0, [r3] ldr r0, _0803BEE8 @ =0x0000047D adds r1, r1, r0 _0803BEB6: movs r0, #2 strb r0, [r1] ldr r0, [r5] add r0, r8 ldr r1, _0803BEEC @ =0x0000053C _0803BEC0: strh r1, [r0] _0803BEC2: ldr r0, _0803BEF0 @ =0x020314E0 ldr r2, [r0] ldr r1, _0803BEF4 @ =0x000003E2 adds r3, r2, r1 ldr r4, _0803BEE8 @ =0x0000047D adds r0, r2, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 ldrh r1, [r3] adds r0, r0, r1 strh r0, [r3] movs r3, #0xe2 lsls r3, r3, #2 adds r2, r2, r3 movs r0, #0 ldrsb r0, [r2, r0] b _0803C476 .align 2, 0 _0803BEE8: .4byte 0x0000047D _0803BEEC: .4byte 0x0000053C _0803BEF0: .4byte 0x020314E0 _0803BEF4: .4byte 0x000003E2 _0803BEF8: ldr r0, _0803BF48 @ =0x086AF140 mov r4, r8 ldr r5, [r4] ldr r1, _0803BF4C @ =0x000003E2 adds r4, r5, r1 movs r2, #0 ldrsh r1, [r4, r2] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r3, #0xf9 lsls r3, r3, #2 adds r2, r5, r3 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803BF1C b _0803C28E _0803BF1C: movs r3, #0 strh r3, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x38 bne _0803BF76 ldr r0, _0803BF50 @ =0x000003E1 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0803BF54 movs r0, #0x36 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803BF76 .align 2, 0 _0803BF48: .4byte 0x086AF140 _0803BF4C: .4byte 0x000003E2 _0803BF50: .4byte 0x000003E1 _0803BF54: strh r3, [r4] movs r2, #0xf7 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #2 strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803BFB0 @ =0x000003DD adds r0, r0, r4 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r1, _0803BFB4 @ =0x000003E1 adds r0, r0, r1 movs r1, #6 strb r1, [r0] _0803BF76: ldr r0, _0803BFB8 @ =0x020314E0 ldr r2, [r0] ldr r3, _0803BFBC @ =0x000003E2 adds r0, r2, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x32 beq _0803BF88 b _0803C476 _0803BF88: movs r1, #0xf9 lsls r1, r1, #2 adds r0, r2, r1 ldrh r3, [r0] cmp r3, #0 beq _0803BF96 b _0803C476 _0803BF96: ldr r0, _0803BFC0 @ =gMain ldr r4, _0803BFC4 @ =0x00001888 adds r0, r0, r4 movs r1, #1 strh r1, [r0] ldr r1, _0803BFC8 @ =0x00000456 adds r0, r2, r1 strh r3, [r0] ldr r0, _0803BFCC @ =0x02032F20 ldr r1, _0803BFD0 @ =0x086A2548 bl MPlayStart b _0803C476 .align 2, 0 _0803BFB0: .4byte 0x000003DD _0803BFB4: .4byte 0x000003E1 _0803BFB8: .4byte 0x020314E0 _0803BFBC: .4byte 0x000003E2 _0803BFC0: .4byte gMain _0803BFC4: .4byte 0x00001888 _0803BFC8: .4byte 0x00000456 _0803BFCC: .4byte 0x02032F20 _0803BFD0: .4byte 0x086A2548 _0803BFD4: ldr r1, _0803BFFC @ =0x086AF140 ldr r5, _0803C000 @ =0x020314E0 ldr r4, [r5] ldr r6, _0803C004 @ =0x000003E2 adds r2, r4, r6 movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r7, #0xf9 lsls r7, r7, #2 adds r1, r4, r7 ldrh r3, [r1] ldrh r0, [r0] cmp r0, r3 bls _0803C008 adds r0, r3, #1 b _0803C474 .align 2, 0 _0803BFFC: .4byte 0x086AF140 _0803C000: .4byte 0x020314E0 _0803C004: .4byte 0x000003E2 _0803C008: movs r3, #0 strh r3, [r1] ldrh r0, [r2] adds r0, #1 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x4a bne _0803C03A strh r3, [r2] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #2 strb r0, [r1] ldr r0, [r5] ldr r1, _0803C084 @ =0x000003DD adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r2, _0803C088 @ =0x000003E1 adds r0, r0, r2 movs r1, #8 strb r1, [r0] _0803C03A: ldr r1, [r5] adds r0, r1, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x47 beq _0803C048 b _0803C476 _0803C048: adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0 beq _0803C052 b _0803C476 _0803C052: ldr r4, _0803C08C @ =0x00000129 adds r1, r1, r4 movs r0, #0 strb r0, [r1] ldr r0, [r5] movs r1, #0x94 lsls r1, r1, #1 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r5] movs r2, #0x99 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0x3c strb r1, [r0] movs r0, #0xd bl sub_11B0 ldr r0, _0803C090 @ =0x02032F20 ldr r1, _0803C094 @ =0x086A2454 bl MPlayStart b _0803C476 .align 2, 0 _0803C084: .4byte 0x000003DD _0803C088: .4byte 0x000003E1 _0803C08C: .4byte 0x00000129 _0803C090: .4byte 0x02032F20 _0803C094: .4byte 0x086A2454 _0803C098: mov r3, r8 ldr r0, [r3] movs r4, #0xa5 lsls r4, r4, #2 adds r0, r0, r4 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, [r3] ldr r1, _0803C118 @ =0x00000283 adds r0, r4, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bne _0803C134 movs r2, #0xf7 lsls r2, r2, #2 adds r1, r4, r2 movs r0, #9 strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803C11C @ =0x000003E2 adds r0, r0, r4 movs r4, #0 strh r5, [r0] ldr r3, _0803C120 @ =gMain ldr r1, _0803C124 @ =0x00000A28 adds r0, r3, r1 movs r1, #1 strh r1, [r0] movs r2, #0x97 lsls r2, r2, #4 adds r0, r3, r2 strh r1, [r0] mov r0, r8 ldr r1, [r0] movs r0, #0xb3 lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0xc6 strh r0, [r2] ldr r2, _0803C128 @ =0x0000038E adds r0, r1, r2 strh r5, [r0] movs r0, #0xb5 lsls r0, r0, #3 adds r1, r1, r0 strb r4, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0803C12C @ =0x000005A6 adds r1, r0, r2 strh r5, [r1] ldr r4, _0803C130 @ =0x000005A4 adds r0, r0, r4 movs r1, #2 strb r1, [r0] b _0803C172 .align 2, 0 _0803C118: .4byte 0x00000283 _0803C11C: .4byte 0x000003E2 _0803C120: .4byte gMain _0803C124: .4byte 0x00000A28 _0803C128: .4byte 0x0000038E _0803C12C: .4byte 0x000005A6 _0803C130: .4byte 0x000005A4 _0803C134: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #7 strb r0, [r1] mov r2, r8 ldr r1, [r2] ldr r3, _0803C19C @ =0x000003E2 adds r2, r1, r3 movs r3, #0 movs r0, #0x20 strh r0, [r2] ldr r4, _0803C1A0 @ =0x00000387 adds r1, r1, r4 strb r3, [r1] ldr r2, _0803C1A4 @ =gMain movs r0, #0x80 strb r0, [r2, #0xf] mov r1, r8 ldr r0, [r1] movs r3, #0xe2 lsls r3, r3, #2 adds r0, r0, r3 movs r1, #2 strb r1, [r0] mov r4, r8 ldr r0, [r4] ldr r1, _0803C1A8 @ =0x00000392 adds r0, r0, r1 strh r5, [r0] adds r3, r2, #0 _0803C172: ldr r2, _0803C1AC @ =0x020314E0 ldr r0, [r2] ldr r4, _0803C1B0 @ =0x000003E1 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r2, [r2] adds r4, #3 adds r0, r2, r4 strh r1, [r0] ldr r1, _0803C1B4 @ =0x00001438 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #0 bne _0803C192 b _0803C476 _0803C192: ldr r3, _0803C1B8 @ =0x00000486 adds r1, r2, r3 movs r0, #1 b _0803C474 .align 2, 0 _0803C19C: .4byte 0x000003E2 _0803C1A0: .4byte 0x00000387 _0803C1A4: .4byte gMain _0803C1A8: .4byte 0x00000392 _0803C1AC: .4byte 0x020314E0 _0803C1B0: .4byte 0x000003E1 _0803C1B4: .4byte 0x00001438 _0803C1B8: .4byte 0x00000486 _0803C1BC: ldr r0, _0803C1E4 @ =0x086AF140 mov r4, r8 ldr r5, [r4] ldr r1, _0803C1E8 @ =0x000003E2 adds r4, r5, r1 movs r2, #0 ldrsh r1, [r4, r2] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r3, #0xf9 lsls r3, r3, #2 adds r2, r5, r3 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803C1EC adds r0, r3, #1 strh r0, [r2] b _0803C236 .align 2, 0 _0803C1E4: .4byte 0x086AF140 _0803C1E8: .4byte 0x000003E2 _0803C1EC: movs r0, #0 strh r0, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x24 bne _0803C236 ldr r0, _0803C218 @ =0x000003E1 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x11 bgt _0803C21C movs r0, #0x22 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803C236 .align 2, 0 _0803C218: .4byte 0x000003E1 _0803C21C: movs r0, #2 strh r0, [r4] movs r2, #0xf7 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #8 strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803C260 @ =0x000003E1 adds r0, r0, r4 movs r1, #0 strb r1, [r0] _0803C236: ldr r0, _0803C264 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803C268 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 beq _0803C248 b _0803C476 _0803C248: movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0 beq _0803C256 b _0803C476 _0803C256: movs r0, #0xe4 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0x29 b _0803C474 .align 2, 0 _0803C260: .4byte 0x000003E1 _0803C264: .4byte 0x020314E0 _0803C268: .4byte 0x000003E2 _0803C26C: ldr r0, _0803C294 @ =0x086AF140 mov r1, r8 ldr r5, [r1] ldr r2, _0803C298 @ =0x000003E2 adds r4, r5, r2 movs r3, #0 ldrsh r1, [r4, r3] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r0, #0xf9 lsls r0, r0, #2 adds r2, r5, r0 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803C29C _0803C28E: adds r0, r3, #1 strh r0, [r2] b _0803C476 .align 2, 0 _0803C294: .4byte 0x086AF140 _0803C298: .4byte 0x000003E2 _0803C29C: movs r3, #0 strh r3, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x14 bne _0803C2E8 ldr r2, _0803C2C8 @ =0x000003E1 adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bgt _0803C2CC movs r0, #3 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803C2E8 .align 2, 0 _0803C2C8: .4byte 0x000003E1 _0803C2CC: movs r0, #3 strh r0, [r4] movs r4, #0xf7 lsls r4, r4, #2 adds r1, r5, r4 movs r0, #0xa strb r0, [r1] mov r0, r8 ldr r1, [r0] movs r0, #2 strb r0, [r1, #0x13] mov r1, r8 ldr r0, [r1] strh r3, [r0, #0x18] _0803C2E8: mov r2, r8 ldr r1, [r2] ldr r3, _0803C3A8 @ =0x000003E2 adds r0, r1, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #3 beq _0803C2FC cmp r0, #0xc bne _0803C306 _0803C2FC: ldr r0, _0803C3AC @ =0x000003EA adds r1, r1, r0 ldrh r0, [r1] subs r0, #0xa strh r0, [r1] _0803C306: mov r1, r8 ldr r0, [r1] ldr r2, _0803C3A8 @ =0x000003E2 adds r0, r0, r2 ldrh r1, [r0] subs r0, r1, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bls _0803C326 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xd beq _0803C326 cmp r0, #0xe bne _0803C334 _0803C326: mov r3, r8 ldr r1, [r3] ldr r4, _0803C3AC @ =0x000003EA adds r1, r1, r4 ldrh r0, [r1] subs r0, #0x14 strh r0, [r1] _0803C334: ldr r0, _0803C3B0 @ =0x020314E0 ldr r2, [r0] ldr r1, _0803C3A8 @ =0x000003E2 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #5 bne _0803C36C movs r4, #0xf9 lsls r4, r4, #2 adds r0, r2, r4 ldrh r0, [r0] cmp r0, #0 bne _0803C36C ldr r0, _0803C3B4 @ =0x000004CA adds r1, r2, r0 movs r0, #0x1f strh r0, [r1] ldr r3, _0803C3B8 @ =0x000004C9 adds r1, r2, r3 movs r0, #6 strb r0, [r1] ldr r0, _0803C3BC @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803C36C: ldr r0, _0803C3B0 @ =0x020314E0 ldr r2, [r0] ldr r4, _0803C3A8 @ =0x000003E2 adds r0, r2, r4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xe beq _0803C37E b _0803C476 _0803C37E: movs r3, #0xf9 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _0803C476 adds r4, #0xe8 adds r1, r2, r4 movs r0, #0x1f strh r0, [r1] ldr r0, _0803C3B8 @ =0x000004C9 adds r1, r2, r0 movs r0, #5 strb r0, [r1] ldr r0, _0803C3BC @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 b _0803C476 .align 2, 0 _0803C3A8: .4byte 0x000003E2 _0803C3AC: .4byte 0x000003EA _0803C3B0: .4byte 0x020314E0 _0803C3B4: .4byte 0x000004CA _0803C3B8: .4byte 0x000004C9 _0803C3BC: .4byte 0x00000119 _0803C3C0: ldr r1, _0803C3E8 @ =0x086AF140 mov r3, r8 ldr r2, [r3] ldr r4, _0803C3EC @ =0x000003E2 adds r3, r2, r4 movs r4, #0 ldrsh r0, [r3, r4] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _0803C3F0 adds r0, r1, #1 strh r0, [r2] b _0803C404 .align 2, 0 _0803C3E8: .4byte 0x086AF140 _0803C3EC: .4byte 0x000003E2 _0803C3F0: movs r1, #0 strh r1, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bne _0803C404 strh r1, [r3] _0803C404: mov r2, r8 ldr r6, [r2] ldr r3, _0803C4BC @ =0x0000038E adds r4, r6, r3 ldrh r5, [r4] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _0803C4C0 @ =0xFFFFFE0C cmp r0, r1 ble _0803C444 subs r0, r1, r0 movs r1, #0x1e bl __divsi3 adds r0, r5, r0 strh r0, [r4] movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 adds r2, r6, #0 adds r2, #0xe6 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x26 rsbs r1, r1, #0 cmp r0, r1 bge _0803C444 ldr r0, _0803C4C4 @ =0x0000FFDA strh r0, [r2] _0803C444: ldr r3, _0803C4C8 @ =0x020314E0 ldr r1, [r3] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0803C460 ldr r4, _0803C4CC @ =0x000003E2 adds r1, r1, r4 movs r0, #0x4a strh r0, [r1] _0803C460: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x16 bne _0803C476 ldr r0, _0803C4CC @ =0x000003E2 adds r1, r1, r0 movs r0, #0x4b _0803C474: strh r0, [r1] _0803C476: ldr r0, _0803C4C8 @ =0x020314E0 ldr r1, [r0] movs r2, #0x99 lsls r2, r2, #3 adds r3, r1, r2 ldrb r4, [r3] movs r1, #0 ldrsb r1, [r3, r1] mov r8, r0 cmp r1, #0 bgt _0803C48E b _0803C5BC _0803C48E: subs r0, r4, #1 strb r0, [r3] mov r3, r8 ldr r5, [r3] adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x13 bgt _0803C4D4 ldr r4, _0803C4D0 @ =0x086AEF28 movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r4, #0 ldrsh r0, [r0, r4] lsls r0, r0, #1 movs r2, #0xab lsls r2, r2, #2 adds r1, r5, r2 b _0803C4F2 .align 2, 0 _0803C4BC: .4byte 0x0000038E _0803C4C0: .4byte 0xFFFFFE0C _0803C4C4: .4byte 0x0000FFDA _0803C4C8: .4byte 0x020314E0 _0803C4CC: .4byte 0x000003E2 _0803C4D0: .4byte 0x086AEF28 _0803C4D4: ldr r4, _0803C600 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #2 movs r4, #0xab lsls r4, r4, #2 adds r1, r5, r4 _0803C4F2: strh r0, [r1] mov r0, r8 ldr r2, [r0] movs r5, #0x99 lsls r5, r5, #3 adds r0, r2, r5 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0803C50E movs r3, #0xab lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] _0803C50E: mov r0, r8 ldr r4, [r0] adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _0803C548 movs r3, #0 ldr r0, _0803C604 @ =gMain movs r2, #0 movs r1, #0xdc lsls r1, r1, #4 adds r0, r0, r1 movs r1, #1 strh r1, [r0] ldr r1, _0803C608 @ =0x000004CF adds r0, r4, r1 strb r2, [r0] mov r4, r8 ldr r0, [r4] adds r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] movs r2, #0x9b lsls r2, r2, #3 adds r0, r0, r2 strh r3, [r0] _0803C548: mov r3, r8 ldr r4, [r3] adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0803C582 movs r3, #1 ldr r0, _0803C604 @ =gMain ldr r1, _0803C60C @ =0x00000E78 adds r0, r0, r1 movs r1, #0 movs r2, #0 strh r3, [r0] movs r3, #0x9a lsls r3, r3, #3 adds r0, r4, r3 strb r1, [r0] mov r4, r8 ldr r0, [r4] ldr r1, _0803C610 @ =0x000004D3 adds r0, r0, r1 movs r1, #0xd strb r1, [r0] ldr r0, [r4] adds r3, #0xa adds r0, r0, r3 strh r2, [r0] _0803C582: mov r0, r8 ldr r4, [r0] adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x35 bne _0803C5BC ldr r1, _0803C604 @ =gMain movs r2, #0xf3 lsls r2, r2, #4 adds r1, r1, r2 movs r2, #0 movs r3, #0 movs r0, #1 strh r0, [r1] ldr r1, _0803C614 @ =0x000004D1 adds r0, r4, r1 strb r2, [r0] mov r2, r8 ldr r0, [r2] ldr r4, _0803C618 @ =0x000004D4 adds r0, r0, r4 movs r1, #0x16 strb r1, [r0] ldr r0, [r2] ldr r1, _0803C61C @ =0x000004DC adds r0, r0, r1 strh r3, [r0] _0803C5BC: mov r2, r8 ldr r5, [r2] ldr r3, _0803C620 @ =0x000004CA adds r1, r5, r3 ldrh r0, [r1] cmp r0, #0 beq _0803C662 subs r0, #1 strh r0, [r1] ldr r4, _0803C624 @ =0x000004C9 adds r6, r5, r4 ldrb r0, [r6] cmp r0, #5 bhi _0803C62C ldr r4, _0803C628 @ =0x086AEF40 ldrh r0, [r1] movs r1, #0x1f bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x1e subs r1, r1, r0 ldrb r2, [r6] lsls r0, r2, #5 subs r0, r0, r2 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xab lsls r2, r2, #2 adds r0, r5, r2 b _0803C64A .align 2, 0 _0803C600: .4byte 0x086AEF28 _0803C604: .4byte gMain _0803C608: .4byte 0x000004CF _0803C60C: .4byte 0x00000E78 _0803C610: .4byte 0x000004D3 _0803C614: .4byte 0x000004D1 _0803C618: .4byte 0x000004D4 _0803C61C: .4byte 0x000004DC _0803C620: .4byte 0x000004CA _0803C624: .4byte 0x000004C9 _0803C628: .4byte 0x086AEF40 _0803C62C: ldr r4, _0803C6C4 @ =0x086AF0B4 ldrh r0, [r1] movs r1, #0x46 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x45 subs r1, r1, r0 lsls r1, r1, #1 adds r1, r1, r4 ldrh r1, [r1] movs r3, #0xab lsls r3, r3, #2 adds r0, r5, r3 _0803C64A: strh r1, [r0] mov r4, r8 ldr r2, [r4] ldr r1, _0803C6C8 @ =0x000004CA adds r0, r2, r1 ldrh r1, [r0] cmp r1, #0 bne _0803C662 movs r3, #0xab lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] _0803C662: mov r4, r8 ldr r0, [r4] movs r5, #0xe4 lsls r5, r5, #2 adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _0803C6B6 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _0803C69E ldr r0, _0803C6CC @ =0x086A3700 ldr r1, _0803C6D0 @ =0x00001290 adds r0, r0, r1 ldrh r0, [r0] movs r1, #0 bl sub_528DC ldr r1, [r4] ldr r3, _0803C6C8 @ =0x000004CA adds r2, r1, r3 movs r0, #0x46 strh r0, [r2] ldr r4, _0803C6D4 @ =0x000004C9 adds r1, r1, r4 movs r0, #6 strb r0, [r1] _0803C69E: mov r1, r8 ldr r0, [r1] adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0 bne _0803C6B6 ldr r0, _0803C6D8 @ =0x02032EE0 ldr r1, _0803C6DC @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _0803C6B6: 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 _0803C6C4: .4byte 0x086AF0B4 _0803C6C8: .4byte 0x000004CA _0803C6CC: .4byte 0x086A3700 _0803C6D0: .4byte 0x00001290 _0803C6D4: .4byte 0x000004C9 _0803C6D8: .4byte 0x02032EE0 _0803C6DC: .4byte 0x0000FFFF thumb_func_start sub_3C6E0 sub_3C6E0: @ 0x0803C6E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r7, _0803C820 @ =0x0200C890 ldrh r0, [r7] ldr r1, _0803C824 @ =0x020314E0 mov sl, r1 cmp r0, #0 bne _0803C6FA b _0803CA2E _0803C6FA: ldr r1, _0803C828 @ =0x086AF140 mov r2, sl ldr r4, [r2] ldr r3, _0803C82C @ =0x000003E2 adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] mov r8, r0 movs r6, #0xfa lsls r6, r6, #2 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x64 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 strh r0, [r7, #2] mov r2, sl ldr r4, [r2] ldr r5, _0803C830 @ =0x000003EA adds r0, r4, r5 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r0, #0x54 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r7, #4] mov r0, sl ldr r4, [r0] adds r6, r4, r6 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 adds r0, #0x76 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] adds r5, r4, r5 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __divsi3 adds r0, #0x3c ldr r2, _0803C834 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xb8 movs r6, #0xfc lsls r6, r6, #2 adds r1, r4, r6 strh r0, [r1] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x9c ldr r2, _0803C838 @ =0x000003F2 adds r4, r4, r2 strh r0, [r4] movs r3, #4 ldrsh r1, [r7, r3] movs r0, #0x3c rsbs r0, r0, #0 cmp r1, r0 bge _0803C7B2 ldr r0, _0803C83C @ =0x0000FFC4 strh r0, [r7, #4] _0803C7B2: movs r4, #4 ldrsh r0, [r7, r4] cmp r0, #0xb4 ble _0803C7BE movs r0, #0xb4 strh r0, [r7, #4] _0803C7BE: mov r6, sl ldr r0, [r6] ldr r1, _0803C840 @ =0x00000389 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _0803C84C movs r2, #0 ldr r4, _0803C844 @ =0x03005000 ldr r3, _0803C848 @ =0xFFFFFE00 mov r8, r3 movs r6, #0xb0 _0803C7DA: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 orrs r0, r6 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C7DA b _0803CA2E .align 2, 0 _0803C820: .4byte 0x0200C890 _0803C824: .4byte 0x020314E0 _0803C828: .4byte 0x086AF140 _0803C82C: .4byte 0x000003E2 _0803C830: .4byte 0x000003EA _0803C834: .4byte 0x0000028A _0803C838: .4byte 0x000003F2 _0803C83C: .4byte 0x0000FFC4 _0803C840: .4byte 0x00000389 _0803C844: .4byte 0x03005000 _0803C848: .4byte 0xFFFFFE00 _0803C84C: cmp r0, #1 bne _0803C8FC movs r2, #0 mov r4, r8 lsls r0, r4, #0x10 ldr r6, _0803C8EC @ =0x03005000 asrs r1, r0, #0x10 movs r0, #0x72 adds r3, r1, #0 muls r3, r0, r3 mov r8, r3 ldr r4, _0803C8F0 @ =0xFFFFFE00 mov ip, r4 movs r0, #0xe0 mov sb, r0 _0803C86A: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0803C8F4 @ =0x086B65EA adds r0, r0, r1 mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r4, #2 ldrsh r1, [r7, r4] ldr r0, [sp] adds r1, r0, r1 ldr r4, _0803C8F8 @ =0x000001FF ands r1, r4 mov r0, ip ldrh r4, [r2, #2] ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r4, sb orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C86A b _0803CA2E .align 2, 0 _0803C8EC: .4byte 0x03005000 _0803C8F0: .4byte 0xFFFFFE00 _0803C8F4: .4byte 0x086B65EA _0803C8F8: .4byte 0x000001FF _0803C8FC: cmp r0, #3 bne _0803C9AC movs r2, #0 mov r6, r8 lsls r0, r6, #0x10 ldr r6, _0803C99C @ =0x03005000 asrs r1, r0, #0x10 movs r0, #0x72 adds r3, r1, #0 muls r3, r0, r3 mov r8, r3 ldr r4, _0803C9A0 @ =0xFFFFFE00 mov ip, r4 movs r0, #0xb0 mov sb, r0 _0803C91A: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0803C9A4 @ =0x086B65EA adds r0, r0, r1 mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r4, #2 ldrsh r1, [r7, r4] ldr r0, [sp] adds r1, r0, r1 ldr r4, _0803C9A8 @ =0x000001FF ands r1, r4 mov r0, ip ldrh r4, [r2, #2] ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r4, sb orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C91A b _0803CA2E .align 2, 0 _0803C99C: .4byte 0x03005000 _0803C9A0: .4byte 0xFFFFFE00 _0803C9A4: .4byte 0x086B65EA _0803C9A8: .4byte 0x000001FF _0803C9AC: movs r2, #0 mov r6, r8 lsls r0, r6, #0x10 ldr r1, _0803CB6C @ =0x03005000 mov sb, r1 asrs r1, r0, #0x10 movs r0, #0x72 adds r3, r1, #0 muls r3, r0, r3 mov r8, r3 ldr r4, _0803CB70 @ =0xFFFFFE00 mov ip, r4 _0803C9C4: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r6, sb adds r2, r0, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0803CB74 @ =0x086B65EA adds r0, r0, r1 mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _0803CB78 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C9C4 _0803CA2E: ldr r7, _0803CB7C @ =0x0200C440 ldrh r0, [r7] cmp r0, #0 bne _0803CA38 b _0803CB98 _0803CA38: mov r3, sl ldr r0, [r3] ldr r4, _0803CB80 @ =0x0000047E adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0803CA5E subs r0, r2, #1 strb r0, [r1] ldr r0, [r3] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803CA5E strh r0, [r7] _0803CA5E: mov r6, sl ldr r4, [r6] ldr r1, _0803CB84 @ =0x0000047D adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r1, r0, #1 ldr r2, _0803CB80 @ =0x0000047E adds r0, r4, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _0803CA80 adds r0, #3 _0803CA80: asrs r0, r0, #2 subs r0, r1, r0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r0, #0x64 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r1, _0803CB88 @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x54 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] movs r2, #0 ldr r3, _0803CB8C @ =0x086B6512 mov sb, r3 mov r4, r8 lsls r1, r4, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 ldr r6, _0803CB70 @ =0xFFFFFE00 mov ip, r6 _0803CAD8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 ldr r1, _0803CB6C @ =0x03005000 adds r2, r0, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r6, _0803CB6C @ =0x03005000 adds r2, r2, r6 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _0803CB78 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _0803CB6C @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _0803CAD8 mov r3, sl ldr r0, [r3] ldr r4, _0803CB90 @ =0x000005A4 adds r0, r0, r4 ldrb r0, [r0] cmp r0, #2 bne _0803CBAE ldr r0, _0803CB94 @ =gMain movs r6, #0x9c lsls r6, r6, #5 adds r0, r0, r6 movs r2, #0 movs r1, #0 strh r1, [r0] ldr r0, [r3] ldr r1, _0803CB80 @ =0x0000047E adds r0, r0, r1 strb r2, [r0] b _0803CBAE .align 2, 0 _0803CB6C: .4byte 0x03005000 _0803CB70: .4byte 0xFFFFFE00 _0803CB74: .4byte 0x086B65EA _0803CB78: .4byte 0x000001FF _0803CB7C: .4byte 0x0200C440 _0803CB80: .4byte 0x0000047E _0803CB84: .4byte 0x0000047D _0803CB88: .4byte 0x000003EA _0803CB8C: .4byte 0x086B6512 _0803CB90: .4byte 0x000005A4 _0803CB94: .4byte gMain _0803CB98: mov r2, sl ldr r0, [r2] ldr r3, _0803CBC0 @ =0x0000047E adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _0803CBAE movs r0, #1 strh r0, [r7] _0803CBAE: add sp, #8 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 _0803CBC0: .4byte 0x0000047E thumb_func_start sub_3CBC4 sub_3CBC4: @ 0x0803CBC4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x1c movs r0, #0 mov sl, r0 ldr r1, _0803CBFC @ =0x0200BAE8 str r1, [sp, #4] ldrh r0, [r1] cmp r0, #0 bne _0803CBE0 b _0803CD68 _0803CBE0: ldr r2, _0803CC00 @ =0x020314E0 ldr r0, [r2] ldr r3, _0803CC04 @ =0x000006C4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0803CC08 movs r0, #0xf0 strh r0, [r1, #2] movs r0, #0xb4 strh r0, [r1, #4] b _0803CC12 .align 2, 0 _0803CBFC: .4byte 0x0200BAE8 _0803CC00: .4byte 0x020314E0 _0803CC04: .4byte 0x000006C4 _0803CC08: movs r0, #0x60 ldr r4, [sp, #4] strh r0, [r4, #2] movs r0, #0x37 strh r0, [r4, #4] _0803CC12: ldr r5, _0803CD94 @ =0x020314E0 ldr r1, [r5] ldr r6, [sp, #4] ldrh r2, [r6, #2] ldr r7, _0803CD98 @ =0x000006E4 adds r0, r1, r7 strh r2, [r0] ldrh r0, [r6, #4] ldr r2, _0803CD9C @ =0x000006E6 adds r1, r1, r2 strh r0, [r1] movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc7 ble _0803CC34 movs r0, #0xc8 strh r0, [r6, #4] _0803CC34: movs r2, #0 ldr r4, _0803CDA0 @ =0x0200BA30 mov ip, r4 ldr r5, _0803CDA4 @ =0x03005000 movs r6, #3 mov r8, r6 movs r7, #0xd rsbs r7, r7, #0 mov sb, r7 _0803CC46: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r1, [sp, #4] adds r6, r1, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xd0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r2, _0803CD94 @ =0x020314E0 ldr r0, [r2] ldr r7, _0803CDA8 @ =0x000006DB adds r0, r0, r7 ldrb r1, [r0] mov r0, r8 ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r6, r2] ldr r7, [sp, #4] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0803CDAC @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0803CDB0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0803CC46 mov r3, ip str r3, [sp, #4] ldr r4, _0803CD94 @ =0x020314E0 ldr r0, [r4] ldr r5, _0803CD98 @ =0x000006E4 adds r0, r0, r5 ldrh r0, [r0] subs r0, #8 strh r0, [r3, #2] ldr r0, [r4] ldr r6, _0803CD9C @ =0x000006E6 adds r0, r0, r6 ldrh r0, [r0] subs r0, #8 strh r0, [r3, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0803CCEC movs r0, #0xc8 strh r0, [r3, #4] _0803CCEC: movs r2, #0 ldr r5, _0803CDA4 @ =0x03005000 movs r7, #3 mov r8, r7 movs r0, #0xd rsbs r0, r0, #0 mov sb, r0 ldr r1, _0803CDB0 @ =0xFFFFFE00 mov ip, r1 _0803CCFE: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r2, [sp, #4] adds r6, r2, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r7, _0803CD94 @ =0x020314E0 ldr r0, [r7] ldr r1, _0803CDA8 @ =0x000006DB adds r0, r0, r1 ldrb r1, [r0] mov r2, r8 ands r1, r2 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r6, r7] ldr r2, [sp, #4] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0803CDAC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp, #4] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0803CCFE _0803CD68: ldr r4, _0803CDB4 @ =0x0200C4F8 str r4, [sp, #4] ldrh r0, [r4] cmp r0, #0 bne _0803CD74 b _0803CFD4 _0803CD74: ldr r5, _0803CD94 @ =0x020314E0 ldr r7, [r5] ldr r6, _0803CDB8 @ =0x00000486 adds r4, r7, r6 ldrh r5, [r4] subs r0, r5, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r1, r0, #0x10 ldr r0, _0803CDBC @ =0x00000257 cmp r1, r0 ble _0803CDC0 movs r7, #0 mov sl, r7 b _0803CEC2 .align 2, 0 _0803CD94: .4byte 0x020314E0 _0803CD98: .4byte 0x000006E4 _0803CD9C: .4byte 0x000006E6 _0803CDA0: .4byte 0x0200BA30 _0803CDA4: .4byte 0x03005000 _0803CDA8: .4byte 0x000006DB _0803CDAC: .4byte 0x000001FF _0803CDB0: .4byte 0xFFFFFE00 _0803CDB4: .4byte 0x0200C4F8 _0803CDB8: .4byte 0x00000486 _0803CDBC: .4byte 0x00000257 _0803CDC0: cmp r1, #5 bgt _0803CDC6 b _0803CEBE _0803CDC6: movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xf bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #5 bl __divsi3 adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 ldr r1, _0803CE04 @ =0x0000047F adds r0, r7, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803CE58 cmp r0, #7 bne _0803CE0C ldr r2, _0803CE08 @ =0x0000132C adds r0, r7, r2 ldr r1, [r0] ldr r0, [r1, #0x34] movs r3, #0x80 lsls r3, r3, #1 adds r0, r0, r3 b _0803CE3A .align 2, 0 _0803CE04: .4byte 0x0000047F _0803CE08: .4byte 0x0000132C _0803CE0C: cmp r0, #4 bne _0803CE28 ldr r4, _0803CE20 @ =0x0000132C adds r0, r7, r4 ldr r1, [r0] ldr r0, [r1, #0x34] ldr r5, _0803CE24 @ =0xFFFFFE00 adds r0, r0, r5 b _0803CE3A .align 2, 0 _0803CE20: .4byte 0x0000132C _0803CE24: .4byte 0xFFFFFE00 _0803CE28: cmp r0, #1 bne _0803CE3C ldr r6, _0803CE4C @ =0x0000132C adds r0, r7, r6 ldr r1, [r0] ldr r0, [r1, #0x34] movs r7, #0x80 lsls r7, r7, #1 adds r0, r0, r7 _0803CE3A: str r0, [r1, #0x34] _0803CE3C: ldr r0, _0803CE50 @ =0x020314E0 ldr r1, [r0] ldr r0, _0803CE54 @ =0x0000047F adds r1, r1, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0803CE82 .align 2, 0 _0803CE4C: .4byte 0x0000132C _0803CE50: .4byte 0x020314E0 _0803CE54: .4byte 0x0000047F _0803CE58: ldrh r0, [r7, #4] cmp r0, #0 beq _0803CE82 adds r0, r5, #0 subs r0, #0x1f strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _0803CE70 movs r0, #5 strh r0, [r4] _0803CE70: ldr r2, _0803CEA4 @ =0x020314E0 ldr r0, [r2] adds r0, r0, r1 movs r1, #7 strb r1, [r0] movs r0, #0x8f lsls r0, r0, #1 bl m4aSongNumStart _0803CE82: ldr r0, _0803CEA4 @ =0x020314E0 ldr r2, [r0] movs r3, #0x90 lsls r3, r3, #3 adds r1, r2, r3 ldrh r7, [r1] cmp r7, #0 beq _0803CEB2 subs r0, r7, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x32 bls _0803CEA8 movs r4, #4 mov sl, r4 b _0803CEC2 .align 2, 0 _0803CEA4: .4byte 0x020314E0 _0803CEA8: cmp r0, #0x28 bls _0803CEC2 movs r5, #5 mov sl, r5 b _0803CEC2 _0803CEB2: ldrh r0, [r2, #4] cmp r0, #0 beq _0803CEC2 movs r0, #0x3c strh r0, [r1] b _0803CEC2 _0803CEBE: movs r6, #4 mov sl, r6 _0803CEC2: ldr r7, _0803CEF0 @ =0x020314E0 ldr r1, [r7] ldr r2, _0803CEF4 @ =0x00000486 adds r0, r1, r2 movs r4, #0 ldrsh r3, [r0, r4] cmp r3, #0 bne _0803CF04 ldr r0, _0803CEF8 @ =gMain ldr r5, _0803CEFC @ =0x00001438 adds r0, r0, r5 movs r2, #0 strh r3, [r0] ldr r0, [r7] movs r6, #0x90 lsls r6, r6, #3 adds r1, r0, r6 strh r3, [r1] ldr r7, _0803CF00 @ =0x00000383 adds r0, r0, r7 strb r2, [r0] b _0803CF22 .align 2, 0 _0803CEF0: .4byte 0x020314E0 _0803CEF4: .4byte 0x00000486 _0803CEF8: .4byte gMain _0803CEFC: .4byte 0x00001438 _0803CF00: .4byte 0x00000383 _0803CF04: ldr r0, _0803D10C @ =0x00000383 adds r1, r1, r0 movs r2, #0 movs r0, #1 strb r0, [r1] ldr r1, _0803D110 @ =0x020314E0 ldr r0, [r1] ldr r3, _0803D114 @ =0x0000132C adds r0, r0, r3 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] _0803CF22: ldr r4, _0803D110 @ =0x020314E0 ldr r2, [r4] ldr r5, _0803D114 @ =0x0000132C adds r3, r2, r5 ldr r0, [r3] adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0, #0x10] ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 ldr r6, [sp, #4] strh r0, [r6, #2] ldr r0, [r3] adds r2, #0x5a ldrh r0, [r0, #0x12] ldrh r1, [r2] subs r0, r0, r1 subs r0, #8 strh r0, [r6, #4] movs r2, #0 mov r7, sl lsls r1, r7, #0x10 ldr r0, _0803D118 @ =0x086B63AA mov sb, r0 ldr r5, _0803D11C @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r1, _0803D120 @ =0xFFFFFE00 mov r8, r1 _0803CF64: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r2, [sp, #4] adds r6, r2, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, ip adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 str r1, [sp, #0x18] ldr r7, [sp, #4] movs r1, #2 ldrsh r0, [r7, r1] ldr r7, [sp, #0x18] adds r1, r7, r0 ldr r7, _0803D124 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0803CF64 _0803CFD4: ldr r5, _0803D128 @ =0x0200C388 str r5, [sp, #4] ldrh r0, [r5] cmp r0, #0 bne _0803CFE0 b _0803D2C6 _0803CFE0: ldr r6, _0803D110 @ =0x020314E0 ldr r5, [r6] movs r7, #0x91 lsls r7, r7, #3 adds r6, r5, r7 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _0803D114 @ =0x0000132C adds r2, r2, r5 mov sb, r2 ldr r4, [r2] movs r3, #0x10 ldrsh r1, [r4, r3] subs r1, r0, r1 str r1, [sp, #8] ldr r0, _0803D12C @ =0x0000048A adds r7, r5, r0 movs r1, #0 ldrsh r0, [r7, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x12 ldrsh r1, [r4, r2] subs r1, r0, r1 str r1, [sp, #0xc] ldr r3, [sp, #8] adds r1, r3, #0 muls r1, r3, r1 ldr r4, [sp, #0xc] adds r0, r4, #0 muls r0, r4, r0 adds r3, r1, r0 ldr r4, _0803D130 @ =0x00000482 adds r1, r5, r4 ldrh r0, [r1] cmp r0, #0 bne _0803D03C b _0803D1E2 _0803D03C: subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _0803D04A b _0803D150 _0803D04A: ldrh r1, [r1] movs r0, #7 ands r1, r0 lsrs r1, r1, #2 ldr r6, _0803D134 @ =0x0000047D adds r0, r5, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 cmp r3, #0xf0 bgt _0803D0B6 movs r7, #0xe2 lsls r7, r7, #2 adds r0, r5, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D0B6 ldr r1, _0803D138 @ =0x00000486 adds r0, r5, r1 movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0803D13C @ =0x00000257 cmp r1, r0 bgt _0803D0B6 ldr r0, _0803D140 @ =0x02032F20 ldr r1, _0803D144 @ =0x086A26A0 bl MPlayStart ldr r3, _0803D110 @ =0x020314E0 ldr r1, [r3] adds r2, r1, r4 movs r0, #0xa strh r0, [r2] ldr r4, [sp, #4] movs r5, #0xb8 lsls r5, r5, #1 adds r2, r4, r5 movs r0, #1 strh r0, [r2] adds r6, #9 adds r1, r1, r6 movs r0, #0x99 lsls r0, r0, #2 strh r0, [r1] movs r0, #9 bl sub_11B0 _0803D0B6: ldr r5, _0803D110 @ =0x020314E0 ldr r0, [r5] ldr r7, _0803D148 @ =0x00000484 mov r8, r7 add r0, r8 ldrh r0, [r0] bl sub_C74 ldr r4, [r5] movs r1, #0x91 lsls r1, r1, #3 adds r6, r4, r1 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xfa lsls r1, r1, #1 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 strh r1, [r6] add r4, r8 ldrh r0, [r4] bl sub_C24 adds r1, r0, #0 ldr r4, [r5] ldr r2, _0803D12C @ =0x0000048A adds r4, r4, r2 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 rsbs r0, r0, #0 ldr r1, _0803D14C @ =0x00004E20 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] b _0803D1CC .align 2, 0 _0803D10C: .4byte 0x00000383 _0803D110: .4byte 0x020314E0 _0803D114: .4byte 0x0000132C _0803D118: .4byte 0x086B63AA _0803D11C: .4byte 0x03005000 _0803D120: .4byte 0xFFFFFE00 _0803D124: .4byte 0x000001FF _0803D128: .4byte 0x0200C388 _0803D12C: .4byte 0x0000048A _0803D130: .4byte 0x00000482 _0803D134: .4byte 0x0000047D _0803D138: .4byte 0x00000486 _0803D13C: .4byte 0x00000257 _0803D140: .4byte 0x02032F20 _0803D144: .4byte 0x086A26A0 _0803D148: .4byte 0x00000484 _0803D14C: .4byte 0x00004E20 _0803D150: ldr r4, _0803D1A0 @ =0x0000047D adds r4, r4, r5 mov r8, r4 ldrb r4, [r4] lsls r4, r4, #0x18 asrs r4, r4, #0x18 lsls r4, r4, #1 ldrh r5, [r1] adds r0, r5, #0 movs r1, #5 str r3, [sp, #0x14] bl __udivsi3 subs r0, #7 subs r4, r4, r0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 mov sl, r4 ldr r3, [sp, #0x14] cmp r5, #9 bne _0803D1CC cmp r3, #0xf0 bgt _0803D1A4 mov r5, sb ldr r0, [r5] movs r2, #0x10 ldrsh r1, [r0, r2] adds r1, #4 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 strh r0, [r6] ldr r0, [r5] movs r3, #0x12 ldrsh r1, [r0, r3] adds r1, #0xe lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 b _0803D1C2 .align 2, 0 _0803D1A0: .4byte 0x0000047D _0803D1A4: mov r4, r8 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _0803D1BE cmp r0, #1 bne _0803D1B8 ldrh r0, [r6] subs r0, #0x78 b _0803D1BC _0803D1B8: ldrh r0, [r6] adds r0, #0x78 _0803D1BC: strh r0, [r6] _0803D1BE: ldrh r0, [r7] adds r0, #0xf0 _0803D1C2: strh r0, [r7] movs r0, #0x90 lsls r0, r0, #1 bl m4aSongNumStart _0803D1CC: ldr r1, _0803D308 @ =0x020314E0 ldr r0, [r1] ldr r5, _0803D30C @ =0x00000482 adds r0, r0, r5 ldrh r7, [r0] cmp r7, #0 bne _0803D1E2 ldr r0, _0803D310 @ =gMain ldr r6, _0803D314 @ =0x000012C8 adds r0, r0, r6 strh r7, [r0] _0803D1E2: ldr r7, _0803D308 @ =0x020314E0 ldr r4, [r7] movs r1, #0x91 lsls r1, r1, #3 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 subs r0, #0xc ldr r3, [sp, #4] strh r0, [r3, #2] ldr r5, _0803D318 @ =0x0000048A adds r0, r4, r5 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 subs r0, #0x16 ldr r7, [sp, #4] strh r0, [r7, #4] movs r2, #0 mov r0, sl lsls r1, r0, #0x10 ldr r3, _0803D31C @ =0x086B63F2 mov sb, r3 ldr r5, _0803D320 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r4, _0803D324 @ =0xFFFFFE00 mov r8, r4 _0803D238: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp, #4] adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, sl adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803D328 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0803D238 ldr r5, _0803D308 @ =0x020314E0 ldr r0, [r5] ldr r6, _0803D32C @ =0x000005A4 adds r0, r0, r6 ldrb r0, [r0] cmp r0, #2 bne _0803D2C6 ldr r0, _0803D310 @ =gMain ldr r7, _0803D314 @ =0x000012C8 adds r0, r0, r7 movs r1, #0 strh r1, [r0] ldr r0, [r5] ldr r2, _0803D30C @ =0x00000482 adds r0, r0, r2 strh r1, [r0] _0803D2C6: movs r3, #0 str r3, [sp] _0803D2CA: ldr r4, [sp] lsls r2, r4, #0x10 asrs r3, r2, #0x10 movs r0, #0xb8 adds r1, r3, #0 muls r1, r0, r1 ldr r0, _0803D330 @ =0x0200BE80 adds r1, r1, r0 str r1, [sp, #4] ldrh r0, [r1] str r2, [sp, #0x10] cmp r0, #0 bne _0803D2E8 bl _0803DABA _0803D2E8: ldr r5, _0803D308 @ =0x020314E0 ldr r0, [r5] ldr r6, _0803D334 @ =0x000004CF adds r0, r0, r6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _0803D2FE b _0803D982 _0803D2FE: lsls r0, r0, #2 ldr r1, _0803D338 @ =_0803D33C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803D308: .4byte 0x020314E0 _0803D30C: .4byte 0x00000482 _0803D310: .4byte gMain _0803D314: .4byte 0x000012C8 _0803D318: .4byte 0x0000048A _0803D31C: .4byte 0x086B63F2 _0803D320: .4byte 0x03005000 _0803D324: .4byte 0xFFFFFE00 _0803D328: .4byte 0x000001FF _0803D32C: .4byte 0x000005A4 _0803D330: .4byte 0x0200BE80 _0803D334: .4byte 0x000004CF _0803D338: .4byte _0803D33C _0803D33C: @ jump table .4byte _0803D354 @ case 0 .4byte _0803D4E4 @ case 1 .4byte _0803D600 @ case 2 .4byte _0803D710 @ case 3 .4byte _0803D824 @ case 4 .4byte _0803D954 @ case 5 _0803D354: ldr r6, _0803D4B4 @ =0x020314E0 ldr r1, [r6] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 ldr r0, _0803D4B8 @ =0x000004D2 adds r1, r1, r0 adds r1, r1, r5 ldr r2, _0803D4BC @ =0x086AF3AC lsls r0, r5, #1 adds r0, r0, r2 ldrh r0, [r0] strb r0, [r1] bl sub_C00 ldr r4, [r6] lsls r1, r5, #2 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 adds r1, r0, #0 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #4 adds r0, r0, r1 movs r1, #0x64 bl __udivsi3 adds r0, #0x1e lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r2, _0803D4C0 @ =0x000004EC adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r2, [r6] ldr r3, _0803D4C4 @ =0x000004CC adds r2, r2, r3 adds r2, r2, r5 movs r1, #0xf ands r1, r0 strb r1, [r2] ldr r4, [r6] adds r4, r4, r3 adds r6, r4, r5 adds r5, #1 adds r0, r5, #0 movs r1, #3 bl __modsi3 adds r4, r4, r0 movs r1, #0 ldrsb r1, [r6, r1] movs r0, #0 ldrsb r0, [r4, r0] cmp r1, r0 bne _0803D3E0 adds r2, r1, #0 adds r1, r2, #1 adds r0, r1, #0 cmp r1, #0 bge _0803D3D8 adds r0, r2, #0 adds r0, #0x10 _0803D3D8: asrs r0, r0, #4 lsls r0, r0, #4 subs r0, r1, r0 strb r0, [r6] _0803D3E0: ldr r5, _0803D4B4 @ =0x020314E0 ldr r4, [r5] ldr r3, [sp, #0x10] asrs r0, r3, #0x10 ldr r6, _0803D4C4 @ =0x000004CC adds r4, r4, r6 adds r7, r4, r0 adds r0, #2 movs r1, #3 bl __modsi3 adds r4, r4, r0 movs r1, #0 ldrsb r1, [r7, r1] movs r0, #0 ldrsb r0, [r4, r0] cmp r1, r0 bne _0803D41A adds r2, r1, #0 adds r1, r2, #1 adds r0, r1, #0 cmp r1, #0 bge _0803D412 adds r0, r2, #0 adds r0, #0x10 _0803D412: asrs r0, r0, #4 lsls r0, r0, #4 subs r0, r1, r0 strb r0, [r7] _0803D41A: ldr r7, _0803D4B4 @ =0x020314E0 ldr r3, [r7] ldr r0, [sp, #0x10] asrs r0, r0, #0x10 mov sb, r0 lsls r5, r0, #2 adds r6, r3, r5 ldr r4, _0803D4C8 @ =0x086AF34C ldr r1, _0803D4C4 @ =0x000004CC adds r2, r3, r1 add r2, sb movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 movs r7, #0 ldrsh r0, [r0, r7] lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r7, _0803D4C0 @ =0x000004EC adds r0, r6, r7 movs r7, #0 mov sl, r7 movs r7, #0 mov r8, r7 strh r1, [r0] movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r4, #2 adds r0, r0, r4 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r4, _0803D4CC @ =0x000004EE adds r6, r6, r4 strh r0, [r6] mov r6, sb lsls r2, r6, #1 ldr r7, _0803D4D0 @ =0x000004E4 adds r0, r3, r7 adds r0, r0, r2 ldr r1, _0803D4D4 @ =0x0000FB50 strh r1, [r0] ldr r1, _0803D4D8 @ =0x000004DE adds r0, r3, r1 adds r0, r0, r2 mov r2, r8 strh r2, [r0] subs r4, #0x1f adds r3, r3, r4 add r3, sb movs r0, #1 strb r0, [r3] ldr r6, _0803D4B4 @ =0x020314E0 ldr r1, [r6] adds r5, r1, r5 adds r7, #0x14 adds r0, r5, r7 strh r2, [r0] ldr r0, _0803D4DC @ =0x000004FA adds r5, r5, r0 strh r2, [r5] ldr r2, _0803D4E0 @ =0x000004D5 adds r1, r1, r2 add r1, sb mov r3, sl strb r3, [r1] b _0803D982 .align 2, 0 _0803D4B4: .4byte 0x020314E0 _0803D4B8: .4byte 0x000004D2 _0803D4BC: .4byte 0x086AF3AC _0803D4C0: .4byte 0x000004EC _0803D4C4: .4byte 0x000004CC _0803D4C8: .4byte 0x086AF34C _0803D4CC: .4byte 0x000004EE _0803D4D0: .4byte 0x000004E4 _0803D4D4: .4byte 0x0000FB50 _0803D4D8: .4byte 0x000004DE _0803D4DC: .4byte 0x000004FA _0803D4E0: .4byte 0x000004D5 _0803D4E4: ldr r4, _0803D568 @ =0x020314E0 ldr r1, [r4] ldr r5, [sp, #0x10] asrs r3, r5, #0xf ldr r5, _0803D56C @ =0x000004E4 adds r0, r1, r5 adds r2, r0, r3 movs r6, #0 ldrsh r0, [r2, r6] cmp r0, #0 bge _0803D526 ldr r7, _0803D570 @ =0x000004DE adds r0, r1, r7 adds r0, r0, r3 ldrh r1, [r0] adds r1, #3 movs r4, #0 strh r1, [r0] ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 ble _0803D516 strh r4, [r2] _0803D516: ldr r1, _0803D568 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r5 adds r0, r0, r3 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 blt _0803D5D0 _0803D526: ldr r7, _0803D568 @ =0x020314E0 ldr r0, [r7] ldr r3, [sp, #0x10] asrs r5, r3, #0x10 lsls r4, r5, #1 movs r6, #0x9b lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803D54A ldr r0, _0803D574 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D54A: ldr r1, [r7] adds r0, r1, r6 adds r2, r0, r4 ldrh r0, [r2] cmp r0, #4 bhi _0803D580 ldr r6, _0803D578 @ =0x000004D2 adds r0, r1, r6 adds r0, r0, r5 ldr r1, _0803D57C @ =0x086AF3AC adds r1, r4, r1 ldrb r1, [r1] adds r1, #1 b _0803D5B8 .align 2, 0 _0803D568: .4byte 0x020314E0 _0803D56C: .4byte 0x000004E4 _0803D570: .4byte 0x000004DE _0803D574: .4byte 0x00000121 _0803D578: .4byte 0x000004D2 _0803D57C: .4byte 0x086AF3AC _0803D580: cmp r0, #9 bhi _0803D59C ldr r7, _0803D594 @ =0x000004D2 adds r0, r1, r7 adds r0, r0, r5 ldr r1, _0803D598 @ =0x086AF3AC adds r1, r4, r1 ldrb r1, [r1] adds r1, #2 b _0803D5B8 .align 2, 0 _0803D594: .4byte 0x000004D2 _0803D598: .4byte 0x086AF3AC _0803D59C: movs r0, #0 strh r0, [r2] ldr r0, _0803D5EC @ =0x000004D2 adds r1, r1, r0 adds r1, r1, r5 ldr r0, _0803D5F0 @ =0x086AF3AC adds r0, r4, r0 ldrh r0, [r0] strb r0, [r1] ldr r0, [r7] ldr r1, _0803D5F4 @ =0x000004CF adds r0, r0, r1 adds r0, r0, r5 movs r1, #2 _0803D5B8: strb r1, [r0] ldr r2, _0803D5F8 @ =0x020314E0 ldr r1, [r2] ldr r3, [sp, #0x10] asrs r0, r3, #0xf movs r4, #0x9b lsls r4, r4, #3 adds r1, r1, r4 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0803D5D0: ldr r5, _0803D5F8 @ =0x020314E0 ldr r1, [r5] ldr r6, [sp, #0x10] asrs r0, r6, #0xe adds r1, r1, r0 movs r7, #0x9f lsls r7, r7, #3 adds r0, r1, r7 movs r2, #0 strh r2, [r0] ldr r0, _0803D5FC @ =0x000004FA adds r1, r1, r0 strh r2, [r1] b _0803D982 .align 2, 0 _0803D5EC: .4byte 0x000004D2 _0803D5F0: .4byte 0x086AF3AC _0803D5F4: .4byte 0x000004CF _0803D5F8: .4byte 0x020314E0 _0803D5FC: .4byte 0x000004FA _0803D600: ldr r1, _0803D694 @ =0x020314E0 ldr r6, [r1] ldr r2, [sp, #0x10] asrs r5, r2, #0x10 lsls r4, r5, #2 adds r4, r6, r4 ldr r3, _0803D698 @ =0x000004EC adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #1 movs r2, #0x9f lsls r2, r2, #3 adds r1, r4, r2 movs r3, #0 mov sl, r3 movs r7, #0 mov sb, r7 strh r0, [r1] ldr r1, _0803D69C @ =0x000004EE adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #8 ldr r3, _0803D6A0 @ =0x000004FA adds r4, r4, r3 strh r0, [r4] ldr r4, _0803D6A4 @ =0x000004D5 mov r8, r4 adds r0, r6, r4 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D65A b _0803D982 _0803D65A: lsls r7, r5, #1 adds r4, #3 adds r0, r6, r4 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bne _0803D674 ldr r0, _0803D6A8 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D674: ldr r6, _0803D694 @ =0x020314E0 ldr r1, [r6] adds r0, r1, r4 adds r0, r0, r7 ldrh r2, [r0] cmp r2, #4 bhi _0803D6B4 ldr r2, _0803D6AC @ =0x000004D2 adds r0, r1, r2 adds r0, r0, r5 ldr r1, _0803D6B0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #3 strb r1, [r0] b _0803D92E .align 2, 0 _0803D694: .4byte 0x020314E0 _0803D698: .4byte 0x000004EC _0803D69C: .4byte 0x000004EE _0803D6A0: .4byte 0x000004FA _0803D6A4: .4byte 0x000004D5 _0803D6A8: .4byte 0x00000121 _0803D6AC: .4byte 0x000004D2 _0803D6B0: .4byte 0x086AF3AC _0803D6B4: cmp r2, #9 bhi _0803D6D4 ldr r3, _0803D6CC @ =0x000004D2 adds r0, r1, r3 adds r0, r0, r5 ldr r1, _0803D6D0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #4 strb r1, [r0] b _0803D92E .align 2, 0 _0803D6CC: .4byte 0x000004D2 _0803D6D0: .4byte 0x086AF3AC _0803D6D4: mov r4, sb strh r4, [r0] ldr r6, _0803D700 @ =0x000004D2 adds r1, r1, r6 adds r1, r1, r5 ldr r0, _0803D704 @ =0x086AF3AC adds r0, r7, r0 ldrb r0, [r0] adds r0, #5 strb r0, [r1] ldr r7, _0803D708 @ =0x020314E0 ldr r0, [r7] ldr r1, _0803D70C @ =0x000004CF adds r0, r0, r1 adds r0, r0, r5 movs r1, #3 strb r1, [r0] ldr r0, [r7] add r0, r8 adds r0, r0, r5 mov r2, sl b _0803D92C .align 2, 0 _0803D700: .4byte 0x000004D2 _0803D704: .4byte 0x086AF3AC _0803D708: .4byte 0x020314E0 _0803D70C: .4byte 0x000004CF _0803D710: ldr r5, _0803D7A8 @ =0x020314E0 ldr r6, [r5] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 lsls r4, r5, #2 adds r4, r6, r4 ldr r1, _0803D7AC @ =0x000004EC adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #1 movs r3, #0x9f lsls r3, r3, #3 adds r1, r4, r3 movs r7, #0 mov sl, r7 movs r2, #0 mov sb, r2 strh r0, [r1] subs r3, #0xa adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #8 ldr r1, _0803D7B0 @ =0x000004FA adds r4, r4, r1 strh r0, [r4] ldr r2, _0803D7B4 @ =0x000004D5 mov r8, r2 adds r0, r6, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D76A b _0803D982 _0803D76A: lsls r7, r5, #1 movs r4, #0x9b lsls r4, r4, #3 adds r0, r6, r4 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bne _0803D786 ldr r0, _0803D7B8 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D786: ldr r3, _0803D7A8 @ =0x020314E0 ldr r1, [r3] adds r0, r1, r4 adds r0, r0, r7 ldrh r2, [r0] cmp r2, #4 bhi _0803D7C4 ldr r4, _0803D7BC @ =0x000004D2 adds r0, r1, r4 adds r0, r0, r5 ldr r1, _0803D7C0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #6 strb r1, [r0] b _0803D92E .align 2, 0 _0803D7A8: .4byte 0x020314E0 _0803D7AC: .4byte 0x000004EC _0803D7B0: .4byte 0x000004FA _0803D7B4: .4byte 0x000004D5 _0803D7B8: .4byte 0x00000121 _0803D7BC: .4byte 0x000004D2 _0803D7C0: .4byte 0x086AF3AC _0803D7C4: cmp r2, #9 bhi _0803D7E4 ldr r6, _0803D7DC @ =0x000004D2 adds r0, r1, r6 adds r0, r0, r5 ldr r1, _0803D7E0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #7 strb r1, [r0] b _0803D92E .align 2, 0 _0803D7DC: .4byte 0x000004D2 _0803D7E0: .4byte 0x086AF3AC _0803D7E4: mov r2, sb strh r2, [r0] ldr r3, _0803D814 @ =0x000004D2 adds r1, r1, r3 adds r1, r1, r5 ldr r0, _0803D818 @ =0x086AF3AC adds r0, r7, r0 ldrb r0, [r0] adds r0, #8 strb r0, [r1] ldr r4, _0803D81C @ =0x020314E0 ldr r0, [r4] ldr r6, _0803D820 @ =0x000004CF adds r0, r0, r6 adds r0, r0, r5 movs r1, #4 strb r1, [r0] ldr r0, [r4] add r0, r8 _0803D80A: adds r0, r0, r5 mov r7, sl strb r7, [r0] b _0803D92E .align 2, 0 _0803D814: .4byte 0x000004D2 _0803D818: .4byte 0x086AF3AC _0803D81C: .4byte 0x020314E0 _0803D820: .4byte 0x000004CF _0803D824: ldr r5, _0803D8B4 @ =0x020314E0 ldr r6, [r5] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 lsls r4, r5, #2 adds r4, r6, r4 ldr r1, _0803D8B8 @ =0x000004EC adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r3, #0xa mov sl, r3 movs r1, #0xa bl __divsi3 lsls r0, r0, #1 movs r7, #0x9f lsls r7, r7, #3 adds r1, r4, r7 movs r2, #0 mov sb, r2 strh r0, [r1] ldr r3, _0803D8BC @ =0x000004EE adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #8 ldr r1, _0803D8C0 @ =0x000004FA adds r4, r4, r1 strh r0, [r4] ldr r2, _0803D8C4 @ =0x000004D5 mov r8, r2 adds r0, r6, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D87E b _0803D982 _0803D87E: lsls r7, r5, #1 movs r4, #0x9b lsls r4, r4, #3 adds r0, r6, r4 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bne _0803D89A ldr r0, _0803D8C8 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D89A: ldr r3, _0803D8B4 @ =0x020314E0 ldr r2, [r3] adds r0, r2, r4 adds r0, r0, r7 ldrh r1, [r0] cmp r1, #2 bhi _0803D8D0 ldr r4, _0803D8CC @ =0x000004D2 adds r0, r2, r4 adds r0, r0, r5 movs r1, #9 strb r1, [r0] b _0803D92E .align 2, 0 _0803D8B4: .4byte 0x020314E0 _0803D8B8: .4byte 0x000004EC _0803D8BC: .4byte 0x000004EE _0803D8C0: .4byte 0x000004FA _0803D8C4: .4byte 0x000004D5 _0803D8C8: .4byte 0x00000121 _0803D8CC: .4byte 0x000004D2 _0803D8D0: cmp r1, #7 bhi _0803D8E0 ldr r6, _0803D8DC @ =0x000004D2 adds r0, r2, r6 b _0803D80A .align 2, 0 _0803D8DC: .4byte 0x000004D2 _0803D8E0: cmp r1, #0xd bhi _0803D8F4 ldr r1, _0803D8F0 @ =0x000004D2 adds r0, r2, r1 adds r0, r0, r5 movs r1, #0xb strb r1, [r0] b _0803D92E .align 2, 0 _0803D8F0: .4byte 0x000004D2 _0803D8F4: cmp r1, #0x16 bhi _0803D908 ldr r3, _0803D904 @ =0x000004D2 adds r0, r2, r3 adds r0, r0, r5 movs r1, #0xc strb r1, [r0] b _0803D92E .align 2, 0 _0803D904: .4byte 0x000004D2 _0803D908: mov r4, sb strh r4, [r0] ldr r6, _0803D948 @ =0x000004D2 adds r0, r2, r6 adds r0, r0, r5 movs r1, #0xc strb r1, [r0] ldr r7, _0803D94C @ =0x020314E0 ldr r0, [r7] ldr r1, _0803D950 @ =0x000004CF adds r0, r0, r1 adds r0, r0, r5 movs r1, #5 strb r1, [r0] ldr r0, [r7] add r0, r8 adds r0, r0, r5 movs r2, #0 _0803D92C: strb r2, [r0] _0803D92E: ldr r2, _0803D94C @ =0x020314E0 ldr r1, [r2] ldr r3, [sp, #0x10] asrs r0, r3, #0xf movs r4, #0x9b lsls r4, r4, #3 adds r1, r1, r4 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0803D982 .align 2, 0 _0803D948: .4byte 0x000004D2 _0803D94C: .4byte 0x020314E0 _0803D950: .4byte 0x000004CF _0803D954: ldr r5, _0803DB14 @ =0x020314E0 ldr r1, [r5] ldr r6, [sp, #0x10] asrs r2, r6, #0x10 lsls r0, r2, #2 adds r1, r1, r0 movs r7, #0x9f lsls r7, r7, #3 adds r0, r1, r7 movs r3, #0 strh r3, [r0] ldr r0, _0803DB18 @ =0x000004FA adds r1, r1, r0 strh r3, [r1] ldr r1, _0803DB1C @ =gMain adds r2, #0xf movs r0, #0xb8 muls r0, r2, r0 adds r0, r0, r1 movs r1, #0xbe lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] _0803D982: ldr r2, _0803DB14 @ =0x020314E0 ldr r0, [r2] ldr r3, [sp, #0x10] asrs r4, r3, #0x10 ldr r5, _0803DB20 @ =0x000004D2 adds r0, r0, r5 adds r0, r0, r4 ldr r2, _0803DB24 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0803DB28 @ =0x084A11EC adds r0, r0, r1 str r0, [r2] lsls r3, r4, #1 adds r0, r3, r4 lsls r0, r0, #8 ldr r6, _0803DB2C @ =0x06010FA0 adds r0, r0, r6 str r0, [r2, #4] ldr r0, _0803DB30 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] ldr r7, _0803DB14 @ =0x020314E0 ldr r6, [r7] lsls r5, r4, #2 adds r5, r6, r5 ldr r1, _0803DB34 @ =0x000004EC adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa str r3, [sp, #0x14] bl __divsi3 adds r4, r4, r0 adds r0, r6, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 ldr r7, [sp, #4] strh r4, [r7, #2] ldr r1, _0803DB38 @ =0x000004E4 adds r0, r6, r1 ldr r3, [sp, #0x14] adds r0, r0, r3 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, r0, #0 ldr r3, _0803DB3C @ =0x000004EE adds r5, r5, r3 movs r7, #0 ldrsh r0, [r5, r7] movs r1, #0xa bl __divsi3 adds r4, r4, r0 adds r6, #0x5a ldrh r0, [r6] subs r4, r4, r0 ldr r0, [sp, #4] strh r4, [r0, #4] movs r2, #0 ldr r5, _0803DB40 @ =0x03005000 ldr r1, _0803DB44 @ =0xFFFFFE00 mov r8, r1 _0803DA10: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r2, [sp, #4] adds r6, r2, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 movs r4, #2 ldrsh r1, [r6, r4] ldr r7, [sp, #4] movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r7, _0803DB48 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0803DA10 ldr r3, _0803DB14 @ =0x020314E0 ldr r6, [r3] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DB4C @ =0x000004CF adds r0, r6, r5 adds r4, r0, r3 ldrb r0, [r4] subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bhi _0803DABA ldr r2, _0803DB50 @ =0x086AF34C ldr r7, _0803DB54 @ =0x000004CC adds r0, r6, r7 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #4 adds r0, r0, r2 movs r2, #0 ldrsh r1, [r0, r2] subs r5, #0x79 adds r0, r6, r5 ldrh r0, [r0] cmp r1, r0 bne _0803DABA movs r2, #0 movs r0, #4 strb r0, [r4] ldr r6, _0803DB14 @ =0x020314E0 ldr r0, [r6] adds r7, #9 adds r0, r0, r7 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r6] lsls r1, r3, #1 movs r3, #0x9b lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r1 strh r2, [r0] _0803DABA: ldr r4, [sp] lsls r0, r4, #0x10 movs r5, #0x80 lsls r5, r5, #9 adds r0, r0, r5 lsrs r6, r0, #0x10 str r6, [sp] asrs r0, r0, #0x10 cmp r0, #2 bgt _0803DAD2 bl _0803D2CA _0803DAD2: movs r7, #0 str r7, [sp] _0803DAD6: ldr r0, [sp] lsls r2, r0, #0x10 asrs r4, r2, #0x10 movs r0, #0xb8 adds r1, r4, #0 muls r1, r0, r1 ldr r0, _0803DB58 @ =0x0200C0A8 adds r1, r1, r0 str r1, [sp, #4] ldrh r3, [r1] str r2, [sp, #0x10] cmp r3, #0 bne _0803DAF2 b _0803E1B0 _0803DAF2: ldr r1, _0803DB14 @ =0x020314E0 ldr r0, [r1] ldr r2, _0803DB5C @ =0x0000048C adds r0, r0, r2 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0803DB08 b _0803DF08 _0803DB08: lsls r0, r0, #2 ldr r1, _0803DB60 @ =_0803DB64 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DB14: .4byte 0x020314E0 _0803DB18: .4byte 0x000004FA _0803DB1C: .4byte gMain _0803DB20: .4byte 0x000004D2 _0803DB24: .4byte 0x040000D4 _0803DB28: .4byte 0x084A11EC _0803DB2C: .4byte 0x06010FA0 _0803DB30: .4byte 0x80000180 _0803DB34: .4byte 0x000004EC _0803DB38: .4byte 0x000004E4 _0803DB3C: .4byte 0x000004EE _0803DB40: .4byte 0x03005000 _0803DB44: .4byte 0xFFFFFE00 _0803DB48: .4byte 0x000001FF _0803DB4C: .4byte 0x000004CF _0803DB50: .4byte 0x086AF34C _0803DB54: .4byte 0x000004CC _0803DB58: .4byte 0x0200C0A8 _0803DB5C: .4byte 0x0000048C _0803DB60: .4byte _0803DB64 _0803DB64: @ jump table .4byte _0803DB90 @ case 0 .4byte _0803DBD4 @ case 1 .4byte _0803DC2C @ case 2 .4byte _0803DC80 @ case 3 .4byte _0803DCD8 @ case 4 .4byte _0803DD2C @ case 5 .4byte _0803DD84 @ case 6 .4byte _0803DDD8 @ case 7 .4byte _0803DE34 @ case 8 .4byte _0803DEA8 @ case 9 .4byte _0803DEF0 @ case 10 _0803DB90: ldr r2, _0803DBC8 @ =0x020314E0 ldr r0, [r2] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DBCC @ =0x0000049C adds r0, r0, r5 adds r0, r0, r3 movs r4, #0 strb r4, [r0] ldr r0, [r2] movs r6, #0x92 lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r2] ldr r7, _0803DBD0 @ =0x00000494 adds r0, r0, r7 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r1, #0x94 lsls r1, r1, #3 adds r0, r0, r1 b _0803DEDE .align 2, 0 _0803DBC8: .4byte 0x020314E0 _0803DBCC: .4byte 0x0000049C _0803DBD0: .4byte 0x00000494 _0803DBD4: ldr r2, _0803DC1C @ =0x020314E0 ldr r1, [r2] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DC20 @ =0x0000049C adds r1, r1, r5 adds r1, r1, r3 movs r0, #8 strb r0, [r1] ldr r0, [r2] movs r6, #0x92 lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r3 movs r1, #0xc strb r1, [r0] ldr r0, [r2] ldr r7, _0803DC24 @ =0x00000494 adds r0, r0, r7 adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r2] movs r1, #0x94 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r2, _0803DC28 @ =0x0000048C adds r0, r0, r2 adds r0, r0, r3 movs r1, #2 strb r1, [r0] b _0803DF08 .align 2, 0 _0803DC1C: .4byte 0x020314E0 _0803DC20: .4byte 0x0000049C _0803DC24: .4byte 0x00000494 _0803DC28: .4byte 0x0000048C _0803DC2C: ldr r5, _0803DC70 @ =0x020314E0 ldr r0, [r5] ldr r3, [sp, #0x10] asrs r4, r3, #0x10 ldr r6, _0803DC74 @ =0x000004A4 adds r0, r0, r6 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DC46 b _0803DF08 _0803DC46: subs r0, r2, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 beq _0803DC5C b _0803DF08 _0803DC5C: ldr r0, _0803DC78 @ =0x00000123 bl m4aSongNumStart ldr r0, [r5] ldr r7, _0803DC7C @ =0x0000048C adds r0, r0, r7 adds r0, r0, r4 movs r1, #3 strb r1, [r0] b _0803DE98 .align 2, 0 _0803DC70: .4byte 0x020314E0 _0803DC74: .4byte 0x000004A4 _0803DC78: .4byte 0x00000123 _0803DC7C: .4byte 0x0000048C _0803DC80: ldr r2, _0803DCC8 @ =0x020314E0 ldr r1, [r2] ldr r0, [sp, #0x10] asrs r3, r0, #0x10 ldr r4, _0803DCCC @ =0x0000049C adds r1, r1, r4 adds r1, r1, r3 movs r0, #0xc strb r0, [r1] ldr r0, [r2] movs r5, #0x92 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 movs r1, #0x10 strb r1, [r0] ldr r0, [r2] ldr r6, _0803DCD0 @ =0x00000494 adds r0, r0, r6 adds r0, r0, r3 movs r1, #5 strb r1, [r0] ldr r0, [r2] movs r7, #0x94 lsls r7, r7, #3 adds r0, r0, r7 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r1, _0803DCD4 @ =0x0000048C adds r0, r0, r1 adds r0, r0, r3 movs r1, #4 strb r1, [r0] b _0803DF08 .align 2, 0 _0803DCC8: .4byte 0x020314E0 _0803DCCC: .4byte 0x0000049C _0803DCD0: .4byte 0x00000494 _0803DCD4: .4byte 0x0000048C _0803DCD8: ldr r5, _0803DD1C @ =0x020314E0 ldr r0, [r5] ldr r2, [sp, #0x10] asrs r4, r2, #0x10 ldr r3, _0803DD20 @ =0x000004A4 adds r0, r0, r3 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DCF2 b _0803DF08 _0803DCF2: subs r0, r2, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 beq _0803DD08 b _0803DF08 _0803DD08: ldr r0, _0803DD24 @ =0x00000123 bl m4aSongNumStart ldr r0, [r5] ldr r5, _0803DD28 @ =0x0000048C adds r0, r0, r5 adds r0, r0, r4 movs r1, #5 strb r1, [r0] b _0803DE98 .align 2, 0 _0803DD1C: .4byte 0x020314E0 _0803DD20: .4byte 0x000004A4 _0803DD24: .4byte 0x00000123 _0803DD28: .4byte 0x0000048C _0803DD2C: ldr r2, _0803DD74 @ =0x020314E0 ldr r1, [r2] ldr r6, [sp, #0x10] asrs r3, r6, #0x10 ldr r7, _0803DD78 @ =0x0000049C adds r1, r1, r7 adds r1, r1, r3 movs r0, #0x10 strb r0, [r1] ldr r0, [r2] movs r1, #0x92 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0x14 strb r1, [r0] ldr r0, [r2] ldr r4, _0803DD7C @ =0x00000494 adds r0, r0, r4 adds r0, r0, r3 movs r1, #7 strb r1, [r0] ldr r0, [r2] movs r5, #0x94 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r6, _0803DD80 @ =0x0000048C adds r0, r0, r6 adds r0, r0, r3 movs r1, #6 strb r1, [r0] b _0803DF08 .align 2, 0 _0803DD74: .4byte 0x020314E0 _0803DD78: .4byte 0x0000049C _0803DD7C: .4byte 0x00000494 _0803DD80: .4byte 0x0000048C _0803DD84: ldr r6, _0803DDC8 @ =0x020314E0 ldr r0, [r6] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 ldr r1, _0803DDCC @ =0x000004A4 adds r0, r0, r1 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DD9E b _0803DF08 _0803DD9E: subs r0, r2, #1 strb r0, [r1] ldr r0, [r6] ldr r2, _0803DDCC @ =0x000004A4 adds r0, r0, r2 adds r0, r0, r5 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #7 beq _0803DDB4 b _0803DF08 _0803DDB4: ldr r0, _0803DDD0 @ =0x00000123 bl m4aSongNumStart ldr r0, [r6] ldr r3, _0803DDD4 @ =0x0000048C adds r0, r0, r3 adds r0, r0, r5 strb r4, [r0] b _0803DE98 .align 2, 0 _0803DDC8: .4byte 0x020314E0 _0803DDCC: .4byte 0x000004A4 _0803DDD0: .4byte 0x00000123 _0803DDD4: .4byte 0x0000048C _0803DDD8: ldr r2, _0803DE28 @ =0x020314E0 ldr r1, [r2] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DE2C @ =0x0000049C adds r1, r1, r5 adds r1, r1, r3 movs r4, #0 movs r0, #0x14 strb r0, [r1] ldr r0, [r2] movs r6, #0x92 lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r3 movs r1, #0x18 strb r1, [r0] ldr r0, [r2] ldr r7, _0803DE30 @ =0x00000494 adds r0, r0, r7 adds r0, r0, r3 movs r1, #9 strb r1, [r0] ldr r0, [r2] movs r1, #0x94 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] subs r5, #0x10 adds r0, r0, r5 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r2] adds r6, #0x18 adds r0, r0, r6 b _0803DEDE .align 2, 0 _0803DE28: .4byte 0x020314E0 _0803DE2C: .4byte 0x0000049C _0803DE30: .4byte 0x00000494 _0803DE34: ldr r4, _0803DE7C @ =0x020314E0 ldr r0, [r4] ldr r7, [sp, #0x10] asrs r3, r7, #0x10 ldr r1, _0803DE80 @ =0x000004A4 adds r0, r0, r1 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0803DF08 subs r0, r2, #1 movs r5, #0 strb r0, [r1] ldr r1, [r4] ldr r2, _0803DE80 @ =0x000004A4 adds r0, r1, r2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0803DF08 movs r6, #0x95 lsls r6, r6, #3 adds r0, r1, r6 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DE84 adds r0, r2, #1 strb r0, [r1] b _0803DE92 .align 2, 0 _0803DE7C: .4byte 0x020314E0 _0803DE80: .4byte 0x000004A4 _0803DE84: strb r5, [r1] ldr r0, [r4] ldr r7, _0803DEA0 @ =0x0000048C adds r0, r0, r7 adds r0, r0, r3 movs r1, #9 strb r1, [r0] _0803DE92: ldr r0, _0803DEA4 @ =0x00000123 bl m4aSongNumStart _0803DE98: movs r0, #7 bl sub_11B0 b _0803DF08 .align 2, 0 _0803DEA0: .4byte 0x0000048C _0803DEA4: .4byte 0x00000123 _0803DEA8: ldr r2, _0803DEE4 @ =0x020314E0 ldr r1, [r2] ldr r0, [sp, #0x10] asrs r3, r0, #0x10 ldr r4, _0803DEE8 @ =0x0000049C adds r1, r1, r4 adds r1, r1, r3 movs r4, #0 movs r0, #0x18 strb r0, [r1] ldr r0, [r2] movs r5, #0x92 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 movs r1, #0x1b strb r1, [r0] ldr r0, [r2] ldr r6, _0803DEEC @ =0x00000494 adds r0, r0, r6 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] ldr r0, [r2] movs r7, #0x94 lsls r7, r7, #3 adds r0, r0, r7 _0803DEDE: adds r0, r0, r3 strb r4, [r0] b _0803DF08 .align 2, 0 _0803DEE4: .4byte 0x020314E0 _0803DEE8: .4byte 0x0000049C _0803DEEC: .4byte 0x00000494 _0803DEF0: ldr r2, _0803DF3C @ =gMain ldr r1, [sp, #0x10] asrs r0, r1, #0x10 adds r0, #0x12 movs r1, #0xb8 muls r0, r1, r0 adds r0, r0, r2 movs r2, #0xbe lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0 strh r1, [r0] _0803DF08: ldr r4, _0803DF40 @ =0x086AF2DC ldr r3, _0803DF44 @ =0x020314E0 ldr r2, [r3] ldr r6, [sp, #0x10] asrs r5, r6, #0x10 movs r7, #0x93 lsls r7, r7, #3 adds r0, r2, r7 adds r7, r0, r5 movs r1, #0 ldrsb r1, [r7, r1] lsls r1, r1, #2 adds r0, r4, #2 adds r1, r1, r0 lsls r0, r5, #1 ldr r6, _0803DF48 @ =0x000004AC adds r2, r2, r6 adds r2, r2, r0 ldrh r6, [r2] ldrh r0, [r1] cmp r0, r6 bls _0803DF4C adds r0, r6, #1 strh r0, [r2] b _0803DFC8 .align 2, 0 _0803DF3C: .4byte gMain _0803DF40: .4byte 0x086AF2DC _0803DF44: .4byte 0x020314E0 _0803DF48: .4byte 0x000004AC _0803DF4C: movs r0, #0 strh r0, [r2] ldrb r0, [r7] adds r0, #1 strb r0, [r7] ldr r7, _0803DFA8 @ =0x020314E0 ldr r2, [r7] movs r1, #0x93 lsls r1, r1, #3 adds r0, r2, r1 adds r3, r0, r5 movs r6, #0x92 lsls r6, r6, #3 adds r0, r2, r6 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r3, r1] ldrb r6, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _0803DFC8 movs r7, #0x94 lsls r7, r7, #3 adds r0, r2, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803DFB0 ldr r1, _0803DFAC @ =0x0000049C adds r0, r2, r1 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r3] ldr r2, _0803DFA8 @ =0x020314E0 ldr r1, [r2] adds r3, r7, #0 adds r1, r1, r3 adds r1, r1, r5 ldrb r0, [r1] subs r0, #1 b _0803DFC6 .align 2, 0 _0803DFA8: .4byte 0x020314E0 _0803DFAC: .4byte 0x0000049C _0803DFB0: subs r0, r6, #1 strb r0, [r3] ldr r6, _0803E0EC @ =0x020314E0 ldr r0, [r6] ldr r7, _0803E0F0 @ =0x0000048C adds r1, r0, r7 adds r1, r1, r5 ldr r2, _0803E0F4 @ =0x00000494 adds r0, r0, r2 adds r0, r0, r5 ldrb r0, [r0] _0803DFC6: strb r0, [r1] _0803DFC8: ldr r3, _0803E0EC @ =0x020314E0 ldr r2, [r3] ldr r6, [sp, #0x10] asrs r5, r6, #0x10 movs r7, #0x93 lsls r7, r7, #3 adds r0, r2, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 ldrh r0, [r0] mov sl, r0 ldr r0, _0803E0F8 @ =0x086AF2CC lsls r4, r5, #2 adds r3, r4, r0 ldrh r1, [r3] adds r1, #0x41 adds r0, r2, #0 adds r0, #0x58 ldrh r0, [r0] subs r1, r1, r0 ldr r0, [sp, #4] strh r1, [r0, #2] ldrh r1, [r3, #2] adds r1, #0x3c adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 ldr r6, [sp, #4] strh r1, [r6, #4] subs r7, #0xc adds r0, r2, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bgt _0803E03A adds r2, r2, r4 movs r1, #0 ldrsh r0, [r3, r1] adds r0, #0x3d lsls r0, r0, #1 ldr r4, _0803E0FC @ =0x000004B4 adds r1, r2, r4 strh r0, [r1] movs r6, #2 ldrsh r0, [r3, r6] adds r0, #0x60 lsls r0, r0, #1 adds r7, #0x2a adds r2, r2, r7 strh r0, [r2] _0803E03A: ldr r1, _0803E0EC @ =0x020314E0 ldr r0, [r1] ldr r2, _0803E100 @ =0x000004A4 adds r0, r0, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803E114 movs r2, #0 mov r3, sl lsls r1, r3, #0x10 ldr r4, _0803E104 @ =0x086B8AE0 mov sb, r4 ldr r5, _0803E108 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r6, _0803E10C @ =0xFFFFFE00 mov r8, r6 _0803E068: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp, #4] adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, sl adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803E110 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x20 orrs r0, r1 strb r0, [r2, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _0803E068 b _0803E1C4 .align 2, 0 _0803E0EC: .4byte 0x020314E0 _0803E0F0: .4byte 0x0000048C _0803E0F4: .4byte 0x00000494 _0803E0F8: .4byte 0x086AF2CC _0803E0FC: .4byte 0x000004B4 _0803E100: .4byte 0x000004A4 _0803E104: .4byte 0x086B8AE0 _0803E108: .4byte 0x03005000 _0803E10C: .4byte 0xFFFFFE00 _0803E110: .4byte 0x000001FF _0803E114: movs r2, #0 mov r5, sl lsls r1, r5, #0x10 ldr r6, _0803E1A0 @ =0x086B8AE0 mov sb, r6 ldr r5, _0803E1A4 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r7, _0803E1A8 @ =0xFFFFFE00 mov r8, r7 _0803E12E: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r1, [sp, #4] adds r6, r1, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, sl adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 ldr r7, [sp, #4] movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803E1AC @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _0803E12E b _0803E1C4 .align 2, 0 _0803E1A0: .4byte 0x086B8AE0 _0803E1A4: .4byte 0x03005000 _0803E1A8: .4byte 0xFFFFFE00 _0803E1AC: .4byte 0x000001FF _0803E1B0: ldr r5, _0803E2BC @ =0x020314E0 ldr r0, [r5] lsls r1, r4, #2 adds r0, r0, r1 ldr r6, _0803E2C0 @ =0x000004B4 adds r1, r0, r6 strh r3, [r1] ldr r7, _0803E2C4 @ =0x000004B6 adds r0, r0, r7 strh r3, [r0] _0803E1C4: ldr r1, [sp, #0x10] movs r2, #0x80 lsls r2, r2, #9 adds r0, r1, r2 lsrs r3, r0, #0x10 str r3, [sp] asrs r0, r0, #0x10 cmp r0, #3 bgt _0803E1D8 b _0803DAD6 _0803E1D8: ldr r4, _0803E2BC @ =0x020314E0 ldr r0, [r4] ldr r4, _0803E2C8 @ =0x000004C4 adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0 beq _0803E236 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x24 bne _0803E1FA movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E1FA: ldr r5, _0803E2BC @ =0x020314E0 ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x18 bne _0803E20E movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E20E: ldr r6, _0803E2BC @ =0x020314E0 ldr r0, [r6] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0xc bne _0803E222 movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E222: ldr r7, _0803E2BC @ =0x020314E0 ldr r0, [r7] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803E236 movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E236: ldr r0, _0803E2CC @ =0x0200C948 str r0, [sp, #4] ldrh r0, [r0] cmp r0, #0 bne _0803E242 b _0803E574 _0803E242: ldr r0, _0803E2BC @ =0x020314E0 ldr r1, [r0] ldr r6, _0803E2D0 @ =0x00000456 adds r7, r1, r6 ldrh r1, [r7] cmp r1, #0x23 bhi _0803E300 adds r0, r1, #0 lsls r0, r0, #9 movs r1, #0x23 bl __divsi3 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #2 cmp r0, r1 ble _0803E26C adds r7, r1, #0 _0803E26C: lsls r5, r7, #0x10 asrs r5, r5, #0x10 adds r0, r5, #0 adds r1, r5, #0 movs r2, #1 bl sub_7C0 rsbs r4, r5, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 adds r1, r5, #0 movs r2, #2 bl sub_7C0 adds r0, r5, #0 adds r1, r4, #0 movs r2, #3 bl sub_7C0 adds r0, r4, #0 adds r1, r4, #0 movs r2, #4 bl sub_7C0 ldr r1, _0803E2BC @ =0x020314E0 ldr r0, [r1] adds r1, r0, r6 ldrh r0, [r1] cmp r0, #0x1e bls _0803E2D4 subs r0, #0x1e movs r1, #0xb muls r0, r1, r0 movs r1, #5 bl __divsi3 movs r1, #0xc b _0803E2E0 .align 2, 0 _0803E2BC: .4byte 0x020314E0 _0803E2C0: .4byte 0x000004B4 _0803E2C4: .4byte 0x000004B6 _0803E2C8: .4byte 0x000004C4 _0803E2CC: .4byte 0x0200C948 _0803E2D0: .4byte 0x00000456 _0803E2D4: ldrh r0, [r1] lsls r0, r0, #2 movs r1, #0x1e bl __divsi3 movs r1, #0x10 _0803E2E0: subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 ldr r2, _0803E2F8 @ =0x020314E0 ldr r1, [r2] ldr r3, _0803E2FC @ =0x00000456 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0803E30A .align 2, 0 _0803E2F8: .4byte 0x020314E0 _0803E2FC: .4byte 0x00000456 _0803E300: movs r7, #0x80 lsls r7, r7, #1 movs r6, #0 ldr r4, [sp, #4] strh r6, [r4] _0803E30A: ldr r5, _0803E584 @ =0x020314E0 ldr r0, [r5] ldr r1, _0803E588 @ =0x00000456 adds r0, r0, r1 ldrh r0, [r0] ldr r2, _0803E58C @ =gMain mov r8, r2 lsls r7, r7, #0x10 mov sl, r7 cmp r0, #0x22 bne _0803E382 movs r3, #0 str r3, [sp] mov sb, r8 movs r4, #0 movs r7, #0 adds r3, r5, #0 _0803E32C: ldr r5, [sp] lsls r2, r5, #0x10 asrs r2, r2, #0x10 adds r1, r2, #0 adds r1, #0x12 movs r0, #0xb8 muls r0, r1, r0 add r0, sb movs r1, #0xbe lsls r1, r1, #2 adds r0, r0, r1 movs r1, #1 strh r1, [r0] ldr r0, [r3] ldr r5, _0803E590 @ =0x0000048C adds r0, r0, r5 adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] movs r1, #0x93 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] lsls r1, r2, #1 adds r5, #0x20 adds r0, r0, r5 adds r0, r0, r1 strh r7, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 str r0, [sp] asrs r2, r2, #0x10 cmp r2, #3 ble _0803E32C ldr r1, _0803E584 @ =0x020314E0 ldr r0, [r1] ldr r2, _0803E594 @ =0x000004C4 adds r0, r0, r2 movs r1, #0x25 strh r1, [r0] _0803E382: ldr r3, _0803E584 @ =0x020314E0 ldr r1, [r3] mov r4, sl asrs r5, r4, #0x10 adds r0, r5, #0 cmp r5, #0 bge _0803E392 adds r0, r5, #7 _0803E392: asrs r3, r0, #3 movs r0, #0x20 subs r2, r0, r3 ldr r7, _0803E598 @ =0x0000046C adds r0, r1, r7 strh r2, [r0] adds r3, #0x20 movs r4, #0x8e lsls r4, r4, #3 adds r0, r1, r4 strh r3, [r0] ldr r7, _0803E59C @ =0x00000474 adds r0, r1, r7 strh r2, [r0] movs r4, #0x8f lsls r4, r4, #3 adds r0, r1, r4 strh r3, [r0] ldr r7, _0803E5A0 @ =0x0000046E adds r0, r1, r7 strh r2, [r0] ldr r4, _0803E5A4 @ =0x00000472 adds r0, r1, r4 strh r2, [r0] ldr r7, _0803E5A8 @ =0x00000476 adds r0, r1, r7 strh r3, [r0] ldr r2, _0803E5AC @ =0x0000047A adds r0, r1, r2 strh r3, [r0] mov r3, r8 ldrb r1, [r3, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _0803E3F0 ldrh r0, [r3, #0x38] ldr r0, _0803E5B0 @ =0x00001E10 strh r0, [r3, #0x38] movs r0, #0x10 lsls r1, r6, #0x10 asrs r1, r1, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 ldrh r1, [r3, #0x3a] strh r0, [r3, #0x3a] _0803E3F0: ldr r4, [sp, #4] ldrh r0, [r4] cmp r0, #0 beq _0803E4AA ldr r5, _0803E584 @ =0x020314E0 ldr r1, [r5] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x17 subs r0, r0, r2 strh r0, [r4, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x32 subs r0, r0, r1 strh r0, [r4, #4] movs r2, #0 ldr r7, _0803E5B4 @ =0x03005000 ldr r6, _0803E5B8 @ =0xFFFFFE00 mov sb, r6 movs r0, #0xf rsbs r0, r0, #0 mov r8, r0 _0803E420: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #3 adds r0, #8 ldr r1, [sp, #4] adds r6, r1, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r6, r2] ldr r4, [sp, #4] movs r2, #2 ldrsh r0, [r4, r2] adds r1, r1, r0 ldr r0, _0803E584 @ =0x020314E0 ldr r4, [r0] lsls r0, r5, #2 adds r4, r4, r0 ldr r2, _0803E598 @ =0x0000046C adds r0, r4, r2 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _0803E5BC @ =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 r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldr r3, [sp, #4] ldrb r1, [r3, #4] ldrb r0, [r6, #4] adds r1, r1, r0 ldr r3, _0803E5A0 @ =0x0000046E adds r4, r4, r3 ldrb r0, [r4] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 adds r5, #1 movs r0, #7 adds r1, r5, #0 ands r1, r0 lsls r1, r1, #1 ldrb r2, [r3, #3] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #3] lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803E420 _0803E4AA: ldr r4, _0803E584 @ =0x020314E0 ldr r2, [r4] ldr r5, _0803E588 @ =0x00000456 adds r4, r2, r5 ldrh r0, [r4] cmp r0, #0x1d bhi _0803E560 ldr r7, _0803E5C0 @ =0x0000132C adds r0, r2, r7 ldr r1, [r0] movs r6, #0x10 ldrsh r0, [r1, r6] subs r0, #0x77 str r0, [sp, #8] movs r3, #0x12 ldrsh r0, [r1, r3] subs r0, #0x93 str r0, [sp, #0xc] ldr r5, [sp, #8] adds r1, r5, #0 muls r1, r5, r1 adds r6, r0, #0 adds r0, r6, #0 muls r0, r6, r0 adds r3, r1, r0 movs r1, #0xe2 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803E560 ldr r0, _0803E5C4 @ =0x086AEE20 ldrh r1, [r4] lsls r1, r1, #1 adds r1, r1, r0 movs r2, #0 ldrsh r0, [r1, r2] cmp r3, r0 bge _0803E560 rsbs r0, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r3, r6, #0 lsls r1, r3, #0x10 asrs r1, r1, #0x10 bl ArcTan2 ldr r4, _0803E584 @ =0x020314E0 ldr r1, [r4] movs r6, #0xb6 lsls r6, r6, #3 adds r1, r1, r6 strh r0, [r1] ldrh r0, [r1] bl sub_C74 adds r1, r0, #0 ldr r4, [r4] adds r0, r4, r7 ldr r5, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r1 lsls r0, r0, #4 rsbs r0, r0, #0 ldr r1, _0803E5C8 @ =0x00004E20 bl __divsi3 strh r0, [r5, #0x30] adds r4, r4, r6 ldrh r0, [r4] bl sub_C24 ldr r5, _0803E584 @ =0x020314E0 ldr r1, [r5] adds r1, r1, r7 ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 bl __divsi3 strh r0, [r4, #0x32] movs r0, #9 bl sub_11B0 _0803E560: ldr r2, _0803E58C @ =gMain ldrb r1, [r2, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 beq _0803E574 ldr r6, _0803E5CC @ =0x00001888 adds r1, r2, r6 movs r0, #0 strh r0, [r1] _0803E574: add sp, #0x1c 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 _0803E584: .4byte 0x020314E0 _0803E588: .4byte 0x00000456 _0803E58C: .4byte gMain _0803E590: .4byte 0x0000048C _0803E594: .4byte 0x000004C4 _0803E598: .4byte 0x0000046C _0803E59C: .4byte 0x00000474 _0803E5A0: .4byte 0x0000046E _0803E5A4: .4byte 0x00000472 _0803E5A8: .4byte 0x00000476 _0803E5AC: .4byte 0x0000047A _0803E5B0: .4byte 0x00001E10 _0803E5B4: .4byte 0x03005000 _0803E5B8: .4byte 0xFFFFFE00 _0803E5BC: .4byte 0x000001FF _0803E5C0: .4byte 0x0000132C _0803E5C4: .4byte 0x086AEE20 _0803E5C8: .4byte 0x00004E20 _0803E5CC: .4byte 0x00001888 thumb_func_start sub_3E5D0 sub_3E5D0: @ 0x0803E5D0 push {r4, r5, r6, r7, lr} ldr r6, _0803E634 @ =0x0200C948 ldrh r0, [r6] cmp r0, #0 beq _0803E62E movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] movs r0, #0 ldr r7, _0803E638 @ =0x03005000 ldr r1, _0803E63C @ =0xFFFFFE00 mov ip, r1 _0803E5EA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0803E640 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803E5EA _0803E62E: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803E634: .4byte 0x0200C948 _0803E638: .4byte 0x03005000 _0803E63C: .4byte 0xFFFFFE00 _0803E640: .4byte 0x000001FF thumb_func_start sub_3E644 sub_3E644: @ 0x0803E644 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0803E760 @ =0x086AF3B2 ldr r6, _0803E764 @ =gMain ldr r5, [r6, #0x4c] adds r0, r5, #0 movs r1, #0x90 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 ldr r2, _0803E768 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #5 ldr r4, _0803E76C @ =0x08352BD8 adds r0, r0, r4 str r0, [r2] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r3, _0803E770 @ =0x80000010 str r3, [r2, #8] ldr r0, [r2, #8] adds r1, #4 lsls r1, r1, #5 adds r1, r1, r4 str r1, [r2] ldr r0, _0803E774 @ =0x05000080 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] ldr r4, _0803E778 @ =0x086AF3BE adds r0, r5, #0 movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 movs r3, #0 ldr r7, _0803E77C @ =0x03005000 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #3 mov r8, r0 ldr r2, _0803E780 @ =0x086AF3C6 mov sb, r2 ldr r0, _0803E784 @ =0xFFFFFC00 mov sl, r0 _0803E6B8: lsls r3, r3, #0x10 asrs r1, r3, #0x10 movs r0, #0xb8 muls r0, r1, r0 ldr r1, _0803E788 @ =0x0200BBA0 adds r6, r0, r1 ldr r2, _0803E78C @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x80 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 mov ip, r3 _0803E6E2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 movs r3, #2 ldrsh r1, [r4, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0803E790 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0803E794 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 lsls r0, r5, #1 add r0, sb ldrh r1, [r0] add r1, r8 ldr r3, _0803E798 @ =0x000003FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #4] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #4] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _0803E6E2 movs r0, #0x80 lsls r0, r0, #9 add r0, ip lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0803E6B8 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 _0803E760: .4byte 0x086AF3B2 _0803E764: .4byte gMain _0803E768: .4byte 0x040000D4 _0803E76C: .4byte 0x08352BD8 _0803E770: .4byte 0x80000010 _0803E774: .4byte 0x05000080 _0803E778: .4byte 0x086AF3BE _0803E77C: .4byte 0x03005000 _0803E780: .4byte 0x086AF3C6 _0803E784: .4byte 0xFFFFFC00 _0803E788: .4byte 0x0200BBA0 _0803E78C: .4byte 0x020314E0 _0803E790: .4byte 0x000001FF _0803E794: .4byte 0xFFFFFE00 _0803E798: .4byte 0x000003FF thumb_func_start sub_3E79C sub_3E79C: @ 0x0803E79C push {r4, r5, r6, r7, lr} ldr r0, _0803E7FC @ =gMain ldr r0, [r0, #0x4c] movs r1, #0xa bl __umodsi3 movs r4, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r4, r0 bge _0803E7C8 adds r5, r0, #0 _0803E7B4: bl sub_C00 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r5 blt _0803E7B4 _0803E7C8: ldr r4, _0803E800 @ =0x020314E0 ldr r1, [r4] movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] strb r2, [r1, #0x17] ldr r0, [r4] strb r2, [r0, #0x13] ldr r5, [r4] ldr r2, _0803E804 @ =0x00000283 adds r0, r5, r2 ldrb r0, [r0] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r6, r4, #0 cmp r0, #9 bne _0803E808 movs r3, #0xe1 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #0x12 b _0803E810 .align 2, 0 _0803E7FC: .4byte gMain _0803E800: .4byte 0x020314E0 _0803E804: .4byte 0x00000283 _0803E808: movs r4, #0xe1 lsls r4, r4, #2 adds r1, r5, r4 movs r0, #0xf _0803E810: strb r0, [r1] ldr r0, [r6] movs r5, #0xa5 lsls r5, r5, #2 adds r0, r0, r5 movs r3, #0 strb r3, [r0] ldr r1, [r6] adds r4, r1, #0 adds r4, #0x6c ldr r7, _0803EAB4 @ =0x00002A30 adds r0, r7, #0 ldrh r2, [r4] adds r0, r0, r2 adds r5, #2 adds r2, r1, r5 movs r5, #0 strh r0, [r2] strh r3, [r4] movs r7, #0xe2 lsls r7, r7, #2 adds r1, r1, r7 movs r4, #3 strb r4, [r1] ldr r0, [r6] ldr r2, _0803EAB8 @ =0x00000392 adds r1, r0, r2 strh r3, [r1] ldr r7, _0803EABC @ =0x0000132C adds r0, r0, r7 ldr r0, [r0] movs r2, #1 strb r2, [r0] ldr r0, [r6] movs r1, #0xe6 adds r1, r1, r0 mov ip, r1 ldr r1, _0803EAC0 @ =0x0000FFA8 mov r7, ip strh r1, [r7] ldr r1, _0803EAC4 @ =0x00000387 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] ldr r2, _0803EAC8 @ =0x000006C4 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] ldr r4, _0803EACC @ =0x00000382 adds r0, r0, r4 strb r5, [r0] ldr r0, [r6] ldr r7, _0803EAD0 @ =0x00000383 adds r0, r0, r7 strb r5, [r0] ldr r0, [r6] subs r1, #2 adds r0, r0, r1 strb r5, [r0] ldr r0, [r6] ldr r2, _0803EAD4 @ =0x00000386 adds r0, r0, r2 strb r5, [r0] ldr r0, [r6] adds r4, #7 adds r0, r0, r4 strb r5, [r0] ldr r0, [r6] ldr r5, _0803EAD8 @ =0x0000038A adds r1, r0, r5 strh r3, [r1] adds r7, #9 adds r1, r0, r7 strh r3, [r1] adds r2, #8 adds r1, r0, r2 strh r3, [r1] adds r4, #7 adds r1, r0, r4 strh r3, [r1] adds r5, #0xa adds r0, r0, r5 strh r3, [r0] movs r4, #0 mov ip, r6 adds r7, #0x38 adds r5, #0x32 _0803E8BE: mov r0, ip ldr r2, [r0] lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r2, r2, r1 adds r1, r2, r7 strh r3, [r1] adds r2, r2, r5 strh r3, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0803E8BE ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r6] ldr r3, _0803EADC @ =0x000003DD adds r0, r0, r3 strb r2, [r0] ldr r0, [r6] ldr r4, _0803EAE0 @ =0x000003DE adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r5, _0803EAE4 @ =0x000003DF adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] movs r7, #0xf8 lsls r7, r7, #2 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] adds r3, #5 adds r1, r0, r3 movs r3, #0 strh r2, [r1] adds r4, #3 adds r0, r0, r4 strb r3, [r0] ldr r0, [r6] adds r5, #5 adds r1, r0, r5 strh r2, [r1] adds r7, #6 adds r1, r0, r7 strh r2, [r1] movs r3, #0xfa lsls r3, r3, #2 adds r1, r0, r3 strh r2, [r1] adds r4, #9 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #0x28 adds r1, r0, r5 strh r2, [r1] adds r7, #0x28 adds r1, r0, r7 strh r2, [r1] adds r3, #0x28 adds r1, r0, r3 strh r2, [r1] adds r4, #0x28 adds r1, r0, r4 strh r2, [r1] adds r5, #0x3e adds r0, r0, r5 strh r2, [r0] movs r4, #0 adds r7, r6, #0 movs r5, #0 _0803E974: ldr r0, [r7] lsls r2, r4, #0x10 asrs r2, r2, #0x10 ldr r1, _0803EAE8 @ =0x00000441 adds r0, r0, r1 adds r0, r0, r2 strb r5, [r0] ldr r0, [r7] ldr r3, _0803EAEC @ =0x00000443 adds r0, r0, r3 adds r0, r0, r2 strb r5, [r0] ldr r1, [r7] lsls r3, r2, #1 movs r4, #0x8b lsls r4, r4, #3 adds r0, r1, r4 adds r0, r0, r3 strh r5, [r0] lsls r0, r2, #2 adds r1, r1, r0 ldr r3, _0803EAF0 @ =0x0000045C adds r0, r1, r3 strh r5, [r0] adds r4, #6 adds r0, r1, r4 strh r5, [r0] adds r3, #8 adds r0, r1, r3 strh r5, [r0] adds r4, #8 adds r1, r1, r4 strh r5, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r4, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0803E974 ldr r0, [r6] movs r5, #0x99 lsls r5, r5, #3 adds r0, r0, r5 movs r2, #0 strb r2, [r0] ldr r0, [r6] ldr r7, _0803EAF4 @ =0x0000047F adds r0, r0, r7 strb r2, [r0] ldr r1, [r6] adds r3, #0x1c adds r0, r1, r3 movs r3, #0 strh r2, [r0] ldr r4, _0803EAF8 @ =0x00000486 adds r0, r1, r4 strh r2, [r0] adds r5, #0x3c adds r1, r1, r5 strb r3, [r1] ldr r0, [r6] adds r7, #0x86 adds r0, r0, r7 strb r3, [r0] ldr r0, [r6] ldr r1, _0803EAFC @ =0x00000506 adds r0, r0, r1 strb r3, [r0] ldr r0, [r6] adds r4, #0x81 adds r0, r0, r4 strb r3, [r0] ldr r0, [r6] adds r5, #4 adds r1, r0, r5 strh r2, [r1] adds r7, #5 adds r1, r0, r7 strh r2, [r1] ldr r3, _0803EB00 @ =0x0000050C adds r1, r0, r3 strh r2, [r1] adds r4, #7 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] movs r1, #1 strb r1, [r0, #0x1a] bl sub_423D8 ldr r4, _0803EB04 @ =0x040000D4 ldr r0, _0803EB08 @ =0x083C5A2C str r0, [r4] ldr r0, _0803EB0C @ =0x06015800 str r0, [r4, #4] ldr r0, _0803EB10 @ =0x80001400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0803EB14 @ =0x084AA18C str r0, [r4] ldr r0, _0803EB18 @ =0x06011620 str r0, [r4, #4] ldr r0, _0803EB1C @ =0x80000430 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_3EDF0 bl sub_3FAE0 ldr r0, _0803EB20 @ =0x081B36A4 str r0, [r4] ldr r0, _0803EB24 @ =0x05000320 str r0, [r4, #4] ldr r0, _0803EB28 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803EAB4: .4byte 0x00002A30 _0803EAB8: .4byte 0x00000392 _0803EABC: .4byte 0x0000132C _0803EAC0: .4byte 0x0000FFA8 _0803EAC4: .4byte 0x00000387 _0803EAC8: .4byte 0x000006C4 _0803EACC: .4byte 0x00000382 _0803EAD0: .4byte 0x00000383 _0803EAD4: .4byte 0x00000386 _0803EAD8: .4byte 0x0000038A _0803EADC: .4byte 0x000003DD _0803EAE0: .4byte 0x000003DE _0803EAE4: .4byte 0x000003DF _0803EAE8: .4byte 0x00000441 _0803EAEC: .4byte 0x00000443 _0803EAF0: .4byte 0x0000045C _0803EAF4: .4byte 0x0000047F _0803EAF8: .4byte 0x00000486 _0803EAFC: .4byte 0x00000506 _0803EB00: .4byte 0x0000050C _0803EB04: .4byte 0x040000D4 _0803EB08: .4byte 0x083C5A2C _0803EB0C: .4byte 0x06015800 _0803EB10: .4byte 0x80001400 _0803EB14: .4byte 0x084AA18C _0803EB18: .4byte 0x06011620 _0803EB1C: .4byte 0x80000430 _0803EB20: .4byte 0x081B36A4 _0803EB24: .4byte 0x05000320 _0803EB28: .4byte 0x80000010 thumb_func_start sub_3EB2C sub_3EB2C: @ 0x0803EB2C push {r4, r5, lr} ldr r0, _0803EB48 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _0803EB3E b _0803ED6C _0803EB3E: lsls r0, r0, #2 ldr r1, _0803EB4C @ =_0803EB50 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803EB48: .4byte 0x020314E0 _0803EB4C: .4byte _0803EB50 _0803EB50: @ jump table .4byte _0803EB6C @ case 0 .4byte _0803ED6C @ case 1 .4byte _0803EBA4 @ case 2 .4byte _0803EC0C @ case 3 .4byte _0803EC8C @ case 4 .4byte _0803ECE8 @ case 5 .4byte _0803ED54 @ case 6 _0803EB6C: ldr r3, _0803EB98 @ =0x020314E0 ldr r0, [r3] ldr r1, _0803EB9C @ =0x000005F7 adds r0, r0, r1 movs r4, #0 movs r1, #1 strb r1, [r0] ldr r1, [r3] ldr r2, _0803EBA0 @ =0x00000506 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 beq _0803EB8A b _0803ED6C _0803EB8A: adds r0, r1, #0 adds r0, #0xe6 strh r4, [r0] strb r2, [r1, #0x13] ldr r0, [r3] strh r4, [r0, #0x18] b _0803ED6C .align 2, 0 _0803EB98: .4byte 0x020314E0 _0803EB9C: .4byte 0x000005F7 _0803EBA0: .4byte 0x00000506 _0803EBA4: ldr r2, _0803EBF0 @ =0x020314E0 ldr r1, [r2] movs r3, #0 movs r0, #3 strb r0, [r1, #0x13] ldr r2, [r2] strh r3, [r2, #0x18] ldr r3, _0803EBF4 @ =gMain movs r4, #0xe9 lsls r4, r4, #3 adds r0, r3, r4 movs r4, #1 movs r1, #1 strh r1, [r0] movs r5, #0xd2 lsls r5, r5, #3 adds r0, r3, r5 strh r1, [r0] ldr r1, _0803EBF8 @ =0x040000D4 ldr r0, _0803EBFC @ =0x081408B4 str r0, [r1] ldr r0, _0803EC00 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803EC04 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x88 strh r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] ldr r1, _0803EC08 @ =0x000005FA adds r2, r2, r1 strb r4, [r2] b _0803ED6C .align 2, 0 _0803EBF0: .4byte 0x020314E0 _0803EBF4: .4byte gMain _0803EBF8: .4byte 0x040000D4 _0803EBFC: .4byte 0x081408B4 _0803EC00: .4byte 0x06015800 _0803EC04: .4byte 0x80001000 _0803EC08: .4byte 0x000005FA _0803EC0C: bl sub_351A8 ldr r4, _0803EC54 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803EC1E movs r0, #0xb5 strh r0, [r1, #0x18] _0803EC1E: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803EC34 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _0803EC58 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803EC5C @ =0x05F5E0FF str r0, [r1, #0x3c] _0803EC34: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803EC60 cmp r0, #0x14 bne _0803EC4A bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _0803EC4A: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _0803EC74 .align 2, 0 _0803EC54: .4byte 0x020314E0 _0803EC58: .4byte 0x00061A80 _0803EC5C: .4byte 0x05F5E0FF _0803EC60: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _0803EC80 @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803EC74: ldr r0, _0803EC84 @ =0x020314E0 ldr r0, [r0] ldr r4, _0803EC88 @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _0803ED6A .align 2, 0 _0803EC80: .4byte 0x00000283 _0803EC84: .4byte 0x020314E0 _0803EC88: .4byte 0x000005FA _0803EC8C: ldr r2, _0803ECD0 @ =0x020314E0 ldr r1, [r2] movs r0, #5 strb r0, [r1, #0x13] ldr r2, [r2] movs r0, #0x8c strh r0, [r2, #0x18] ldr r3, _0803ECD4 @ =gMain movs r5, #0xe9 lsls r5, r5, #3 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _0803ECD8 @ =0x040000D4 ldr r0, _0803ECDC @ =0x081408B4 str r0, [r1] ldr r0, _0803ECE0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803ECE4 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0xe5 lsls r5, r5, #2 adds r2, r2, r5 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _0803ED6C .align 2, 0 _0803ECD0: .4byte 0x020314E0 _0803ECD4: .4byte gMain _0803ECD8: .4byte 0x040000D4 _0803ECDC: .4byte 0x081408B4 _0803ECE0: .4byte 0x06015800 _0803ECE4: .4byte 0x80001000 _0803ECE8: bl sub_351A8 ldr r3, _0803ED20 @ =0x020314E0 ldr r1, [r3] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803ECFA movs r0, #0xb5 strh r0, [r1, #0x18] _0803ECFA: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803ED10 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r3] ldr r0, _0803ED24 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803ED28 @ =0x05F5E0FF str r0, [r1, #0x3c] _0803ED10: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803ED2C adds r0, #1 strh r0, [r1, #0x18] b _0803ED6C .align 2, 0 _0803ED20: .4byte 0x020314E0 _0803ED24: .4byte 0x00061A80 _0803ED28: .4byte 0x05F5E0FF _0803ED2C: movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r3] ldr r0, _0803ED4C @ =0x00000283 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r3] ldr r1, _0803ED50 @ =0x000001AF adds r0, r0, r1 strb r2, [r0] b _0803ED6C .align 2, 0 _0803ED4C: .4byte 0x00000283 _0803ED50: .4byte 0x000001AF _0803ED54: bl sub_351A8 ldr r2, _0803EDDC @ =0x020314E0 ldr r0, [r2] ldr r4, _0803EDE0 @ =0x00000386 adds r0, r0, r4 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r5, _0803EDE4 @ =0x000005FA adds r0, r0, r5 _0803ED6A: strb r1, [r0] _0803ED6C: bl sub_423D8 bl sub_40288 bl sub_3EDF0 bl sub_3FAE0 ldr r0, _0803EDDC @ =0x020314E0 ldr r1, [r0] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803EDB4 ldr r4, _0803EDE8 @ =0x00000296 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #1 bhi _0803EDB4 ldr r4, _0803EDEC @ =gMain ldrb r0, [r4, #0xf] cmp r0, #0 bne _0803EDB4 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _0803EDB4: ldr r0, _0803EDDC @ =0x020314E0 ldr r1, [r0] ldr r5, _0803EDE0 @ =0x00000386 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803EDD2 ldr r0, _0803EDE4 @ =0x000005FA adds r1, r1, r0 movs r0, #1 strb r0, [r1] bl sub_350F0 _0803EDD2: bl sub_472E4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0803EDDC: .4byte 0x020314E0 _0803EDE0: .4byte 0x00000386 _0803EDE4: .4byte 0x000005FA _0803EDE8: .4byte 0x00000296 _0803EDEC: .4byte gMain thumb_func_start sub_3EDF0 sub_3EDF0: @ 0x0803EDF0 push {r4, r5, r6, r7, lr} ldr r0, _0803EE9C @ =0x020314E0 ldr r1, [r0] ldr r2, _0803EEA0 @ =0x00000452 adds r5, r1, r2 ldrh r4, [r5] adds r6, r0, #0 cmp r4, #0 beq _0803EE80 subs r0, r4, #1 strh r0, [r5] ldr r3, _0803EEA4 @ =0x00000389 adds r1, r1, r3 movs r0, #1 strb r0, [r1] ldr r0, [r6] adds r0, r0, r2 ldrh r0, [r0] cmp r0, #5 bne _0803EE60 movs r0, #0x93 lsls r0, r0, #1 bl m4aSongNumStart ldr r1, [r6] ldr r0, _0803EEA8 @ =0x000F4240 str r0, [r1, #0x3c] ldr r4, _0803EEAC @ =0x00000385 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #7 bl sub_11B0 ldr r2, [r6] adds r4, r2, r4 movs r5, #0xe1 lsls r5, r5, #2 adds r0, r2, r5 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _0803EE60 movs r7, #0xf7 lsls r7, r7, #2 adds r1, r2, r7 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 beq _0803EE60 movs r0, #9 strb r0, [r1] _0803EE60: ldr r2, _0803EE9C @ =0x020314E0 ldr r5, [r2] ldr r0, _0803EEB0 @ =0x0000050C adds r1, r5, r0 movs r0, #0x14 strh r0, [r1] ldr r1, _0803EEA0 @ =0x00000452 adds r0, r5, r1 ldrh r0, [r0] adds r6, r2, #0 cmp r0, #0 bne _0803EE80 ldr r2, _0803EEA4 @ =0x00000389 adds r1, r5, r2 movs r0, #0 strb r0, [r1] _0803EE80: ldr r2, [r6] ldr r4, _0803EEB0 @ =0x0000050C adds r3, r2, r4 ldrh r0, [r3] cmp r0, #0 beq _0803EEB8 subs r0, #1 movs r1, #0 strh r0, [r3] ldr r5, _0803EEB4 @ =0x00000387 adds r0, r2, r5 strb r1, [r0] b _0803EEC0 .align 2, 0 _0803EE9C: .4byte 0x020314E0 _0803EEA0: .4byte 0x00000452 _0803EEA4: .4byte 0x00000389 _0803EEA8: .4byte 0x000F4240 _0803EEAC: .4byte 0x00000385 _0803EEB0: .4byte 0x0000050C _0803EEB4: .4byte 0x00000387 _0803EEB8: ldr r7, _0803EEE0 @ =0x00000387 adds r1, r2, r7 movs r0, #1 strb r0, [r1] _0803EEC0: ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bls _0803EED6 bl _0803FA78 _0803EED6: lsls r0, r0, #2 ldr r1, _0803EEE4 @ =_0803EEE8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803EEE0: .4byte 0x00000387 _0803EEE4: .4byte _0803EEE8 _0803EEE8: @ jump table .4byte _0803EF28 @ case 0 .4byte _0803EF84 @ case 1 .4byte _0803F00C @ case 2 .4byte _0803F0A4 @ case 3 .4byte _0803F154 @ case 4 .4byte _0803F210 @ case 5 .4byte _0803F334 @ case 6 .4byte _0803F460 @ case 7 .4byte _0803F550 @ case 8 .4byte _0803F68C @ case 9 .4byte _0803F788 @ case 10 .4byte _0803F814 @ case 11 .4byte _0803F8DC @ case 12 .4byte _0803F9D0 @ case 13 .4byte _0803FA2E @ case 14 .4byte _0803FA78 @ case 15 _0803EF28: ldr r3, _0803EF74 @ =0x020314E0 ldr r1, [r3] movs r4, #0xfa lsls r4, r4, #2 adds r2, r1, r4 movs r5, #0 movs r4, #0 ldr r0, _0803EF78 @ =0x00000474 strh r0, [r2] ldr r7, _0803EF7C @ =0x000003EA adds r2, r1, r7 movs r0, #0x96 lsls r0, r0, #4 strh r0, [r2] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #1 strb r0, [r1] ldr r1, [r3] subs r7, #8 adds r2, r1, r7 movs r0, #0xd strh r0, [r2] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 strh r4, [r0] subs r7, #1 adds r1, r1, r7 strb r5, [r1] ldr r0, [r3] ldr r1, _0803EF80 @ =0x0000051A adds r0, r0, r1 strh r4, [r0] bl _0803FA78 .align 2, 0 _0803EF74: .4byte 0x020314E0 _0803EF78: .4byte 0x00000474 _0803EF7C: .4byte 0x000003EA _0803EF80: .4byte 0x0000051A _0803EF84: ldr r2, [r6] ldr r7, _0803EFF4 @ =0x00000516 adds r0, r2, r7 ldrh r1, [r0] ldr r0, _0803EFF8 @ =0x00000212 cmp r1, r0 bls _0803EFD2 ldr r3, _0803EFFC @ =0x000003EA adds r2, r2, r3 ldrh r5, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803F000 @ =0xFFFFFB50 cmp r1, r0 ble _0803EFA8 adds r0, r5, #0 subs r0, #0x46 strh r0, [r2] _0803EFA8: ldr r2, [r6] adds r0, r2, r7 ldrh r1, [r0] movs r0, #0xa8 lsls r0, r0, #2 cmp r1, r0 bne _0803EFD2 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r2, r5 movs r2, #0 movs r0, #2 strb r0, [r1] ldr r0, [r6] movs r7, #0xfa lsls r7, r7, #2 adds r1, r0, r7 strh r2, [r1] adds r0, r0, r3 ldr r1, _0803F004 @ =0x0000FD80 strh r1, [r0] _0803EFD2: ldr r0, _0803F008 @ =0x020314E0 ldr r2, [r0] ldr r1, _0803EFF4 @ =0x00000516 adds r0, r2, r1 ldrh r1, [r0] ldr r0, _0803EFF8 @ =0x00000212 cmp r1, r0 beq _0803EFE6 bl _0803FA78 _0803EFE6: movs r3, #0xe4 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #0x19 strh r0, [r1] bl _0803FA78 .align 2, 0 _0803EFF4: .4byte 0x00000516 _0803EFF8: .4byte 0x00000212 _0803EFFC: .4byte 0x000003EA _0803F000: .4byte 0xFFFFFB50 _0803F004: .4byte 0x0000FD80 _0803F008: .4byte 0x020314E0 _0803F00C: ldr r2, _0803F038 @ =0x086AF3CC ldr r3, [r6] ldr r4, _0803F03C @ =0x000003E2 adds r5, r3, r4 movs r7, #0 ldrsh r1, [r5, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r3, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F040 adds r0, r2, #1 strh r0, [r1] b _0803F056 .align 2, 0 _0803F038: .4byte 0x086AF3CC _0803F03C: .4byte 0x000003E2 _0803F040: movs r0, #0 strh r0, [r1] ldrh r0, [r5] adds r0, #1 strh r0, [r5] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x3f bne _0803F056 movs r0, #0xd strh r0, [r5] _0803F056: ldr r0, _0803F09C @ =0x020314E0 ldr r0, [r0] ldr r3, _0803F0A0 @ =0x000003EA adds r1, r0, r3 ldrh r2, [r1] movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bge _0803F07E adds r0, r2, #0 adds r0, #0x12 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 ble _0803F07E movs r0, #0 strh r0, [r1] movs r0, #0x2a bl m4aSongNumStart _0803F07E: ldr r3, _0803F09C @ =0x020314E0 ldr r1, [r3] ldr r5, _0803F0A0 @ =0x000003EA adds r0, r1, r5 movs r7, #0 ldrsh r2, [r0, r7] cmp r2, #0 beq _0803F092 bl _0803FA78 _0803F092: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 b _0803F128 .align 2, 0 _0803F09C: .4byte 0x020314E0 _0803F0A0: .4byte 0x000003EA _0803F0A4: ldr r2, _0803F0D0 @ =0x086AF3CC ldr r3, [r6] ldr r5, _0803F0D4 @ =0x000003E2 adds r4, r3, r5 movs r7, #0 ldrsh r1, [r4, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _0803F0D8 adds r0, r1, #1 strh r0, [r3] b _0803F0EE .align 2, 0 _0803F0D0: .4byte 0x086AF3CC _0803F0D4: .4byte 0x000003E2 _0803F0D8: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x3f bne _0803F0EE movs r0, #0xd strh r0, [r4] _0803F0EE: ldr r0, [r6] ldr r2, _0803F144 @ =0x000003EA adds r1, r0, r2 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 bge _0803F10E adds r0, r2, #0 adds r0, #0x12 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 ble _0803F10E movs r0, #0 strh r0, [r1] _0803F10E: ldr r3, _0803F148 @ =0x020314E0 ldr r1, [r3] ldr r4, _0803F144 @ =0x000003EA adds r0, r1, r4 movs r5, #0 ldrsh r2, [r0, r5] cmp r2, #0 beq _0803F122 bl _0803FA78 _0803F122: movs r7, #0xf7 lsls r7, r7, #2 adds r1, r1, r7 _0803F128: movs r0, #5 strb r0, [r1] ldr r0, [r3] ldr r1, _0803F14C @ =0x000003E1 adds r0, r0, r1 strb r2, [r0] ldr r0, [r3] ldr r2, _0803F150 @ =0x000003DD adds r0, r0, r2 movs r1, #6 strb r1, [r0] bl _0803FA78 .align 2, 0 _0803F144: .4byte 0x000003EA _0803F148: .4byte 0x020314E0 _0803F14C: .4byte 0x000003E1 _0803F150: .4byte 0x000003DD _0803F154: ldr r2, _0803F180 @ =0x086AF3CC ldr r3, [r6] ldr r5, _0803F184 @ =0x000003E2 adds r4, r3, r5 movs r7, #0 ldrsh r1, [r4, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _0803F188 adds r0, r1, #1 strh r0, [r3] b _0803F19E .align 2, 0 _0803F180: .4byte 0x086AF3CC _0803F184: .4byte 0x000003E2 _0803F188: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _0803F19E movs r0, #0x21 strh r0, [r4] _0803F19E: ldr r1, [r6] ldr r2, _0803F200 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 bne _0803F1D0 ldr r4, _0803F204 @ =0x000003EA adds r1, r1, r4 ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] ldr r3, _0803F208 @ =0xFFFFFD00 cmp r0, r3 ble _0803F1D0 adds r0, r2, #0 subs r0, #0x18 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r3 bge _0803F1D0 movs r0, #0xfd lsls r0, r0, #8 strh r0, [r1] _0803F1D0: ldr r4, _0803F20C @ =0x020314E0 ldr r3, [r4] ldr r7, _0803F204 @ =0x000003EA adds r0, r3, r7 movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0803F208 @ =0xFFFFFD00 cmp r1, r0 beq _0803F1E6 bl _0803FA78 _0803F1E6: ldr r5, _0803F200 @ =0x000003E2 adds r0, r3, r5 movs r2, #0 movs r1, #0 strh r1, [r0] subs r7, #6 adds r0, r3, r7 strh r1, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r3, r0 movs r0, #7 b _0803F8BC .align 2, 0 _0803F200: .4byte 0x000003E2 _0803F204: .4byte 0x000003EA _0803F208: .4byte 0xFFFFFD00 _0803F20C: .4byte 0x020314E0 _0803F210: ldr r2, _0803F23C @ =0x086AF3CC ldr r5, [r6] ldr r4, _0803F240 @ =0x000003E2 adds r3, r5, r4 movs r7, #0 ldrsh r1, [r3, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r5, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F244 adds r0, r2, #1 strh r0, [r1] b _0803F2DC .align 2, 0 _0803F23C: .4byte 0x086AF3CC _0803F240: .4byte 0x000003E2 _0803F244: movs r4, #0 mov ip, r4 movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x3f bne _0803F2DC ldr r4, _0803F274 @ =0x000003E1 adds r1, r5, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0803F278 movs r0, #0xd strh r0, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803F2DC .align 2, 0 _0803F274: .4byte 0x000003E1 _0803F278: ldr r7, _0803F2A8 @ =0x000003DD adds r0, r5, r7 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #6 bne _0803F2C6 ldr r1, _0803F2AC @ =0x00000385 adds r0, r5, r1 movs r1, #0 ldrsb r1, [r0, r1] subs r7, #0x59 adds r0, r5, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 blt _0803F2B0 movs r0, #0xd strh r0, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r5, r0 b _0803F2D0 .align 2, 0 _0803F2A8: .4byte 0x000003DD _0803F2AC: .4byte 0x00000385 _0803F2B0: movs r0, #0x62 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r5, r3 strb r2, [r0] ldr r0, [r6] adds r0, r0, r4 mov r4, ip strb r4, [r0] b _0803F2DC _0803F2C6: movs r0, #0xd strh r0, [r3] movs r7, #0xf7 lsls r7, r7, #2 adds r1, r5, r7 _0803F2D0: movs r0, #4 strb r0, [r1] ldr r0, [r6] adds r0, r0, r4 mov r1, ip strb r1, [r0] _0803F2DC: ldr r4, _0803F324 @ =0x020314E0 ldr r1, [r4] ldr r2, _0803F328 @ =0x000003E1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _0803F2F0 b _0803FA78 _0803F2F0: ldr r3, _0803F32C @ =0x00000512 adds r1, r1, r3 ldrh r0, [r1] adds r0, #0x80 strh r0, [r1] ldrh r0, [r1] bl sub_C24 adds r1, r0, #0 ldr r4, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #5 subs r0, r0, r1 lsls r0, r0, #1 ldr r1, _0803F330 @ =0x00004E20 bl __divsi3 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r5, #0xfa lsls r5, r5, #2 adds r4, r4, r5 strh r1, [r4] b _0803FA78 .align 2, 0 _0803F324: .4byte 0x020314E0 _0803F328: .4byte 0x000003E1 _0803F32C: .4byte 0x00000512 _0803F330: .4byte 0x00004E20 _0803F334: ldr r0, [r6] ldr r7, _0803F438 @ =0x00000389 adds r0, r0, r7 movs r1, #2 strb r1, [r0] ldr r2, _0803F43C @ =0x086AF3CC ldr r4, [r6] ldr r5, _0803F440 @ =0x000003E2 adds r3, r4, r5 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F364 b _0803F7AE _0803F364: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x74 bne _0803F390 ldr r3, _0803F444 @ =0x000003E1 adds r1, r4, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe bgt _0803F390 adds r0, r2, #1 strb r0, [r1] ldr r0, [r6] adds r0, r0, r5 movs r1, #0x72 strh r1, [r0] _0803F390: ldr r3, [r6] ldr r5, _0803F440 @ =0x000003E2 adds r1, r3, r5 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0x83 bne _0803F3C8 movs r2, #0 movs r0, #0x1d strh r0, [r1] ldr r7, _0803F444 @ =0x000003E1 adds r0, r3, r7 strb r2, [r0] ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r0, [r6] ldr r3, _0803F448 @ =0x000003DD adds r0, r0, r3 movs r1, #4 strb r1, [r0] ldr r0, [r6] ldr r4, _0803F438 @ =0x00000389 adds r0, r0, r4 strb r2, [r0] _0803F3C8: ldr r4, [r6] adds r0, r4, r5 movs r5, #0 ldrsh r0, [r0, r5] cmp r0, #0x72 bne _0803F404 ldr r7, _0803F444 @ =0x000003E1 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803F404 ldr r2, _0803F44C @ =gMain movs r1, #0xf3 lsls r1, r1, #4 adds r0, r2, r1 movs r3, #1 movs r1, #1 strh r1, [r0] ldr r5, _0803F450 @ =0x00000FE8 adds r0, r2, r5 strh r1, [r0] movs r7, #0x85 lsls r7, r7, #5 adds r2, r2, r7 strh r1, [r2] ldr r1, _0803F454 @ =0x00000507 adds r0, r4, r1 strb r3, [r0] _0803F404: ldr r3, _0803F458 @ =0x020314E0 ldr r1, [r3] ldr r2, _0803F440 @ =0x000003E2 adds r0, r1, r2 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x78 bne _0803F41E movs r5, #0xe4 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #0x15 strh r0, [r1] _0803F41E: ldr r1, [r3] adds r0, r1, r2 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0x7c beq _0803F42C b _0803FA78 _0803F42C: ldr r0, _0803F45C @ =0x0000050A adds r1, r1, r0 movs r0, #0x10 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F438: .4byte 0x00000389 _0803F43C: .4byte 0x086AF3CC _0803F440: .4byte 0x000003E2 _0803F444: .4byte 0x000003E1 _0803F448: .4byte 0x000003DD _0803F44C: .4byte gMain _0803F450: .4byte 0x00000FE8 _0803F454: .4byte 0x00000507 _0803F458: .4byte 0x020314E0 _0803F45C: .4byte 0x0000050A _0803F460: ldr r2, [r6] movs r3, #0xf9 lsls r3, r3, #2 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #0x77 bhi _0803F470 b _0803F9EA _0803F470: movs r4, #0xf7 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #8 strb r0, [r1] ldr r1, _0803F4B0 @ =0x040000D4 ldr r0, _0803F4B4 @ =0x084A856C str r0, [r1] ldr r0, _0803F4B8 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803F4BC @ =0x80000E00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r6] ldr r5, _0803F4C0 @ =0x00000504 adds r0, r0, r5 ldrb r1, [r0] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0803F4D4 ldr r0, _0803F4C4 @ =gMain ldr r7, _0803F4C8 @ =0x000012C8 adds r1, r0, r7 strh r2, [r1] ldr r3, _0803F4CC @ =0x00001438 adds r1, r0, r3 strh r2, [r1] ldr r4, _0803F4D0 @ =0x000014F0 adds r0, r0, r4 b _0803F4EA .align 2, 0 _0803F4B0: .4byte 0x040000D4 _0803F4B4: .4byte 0x084A856C _0803F4B8: .4byte 0x06015800 _0803F4BC: .4byte 0x80000E00 _0803F4C0: .4byte 0x00000504 _0803F4C4: .4byte gMain _0803F4C8: .4byte 0x000012C8 _0803F4CC: .4byte 0x00001438 _0803F4D0: .4byte 0x000014F0 _0803F4D4: ldr r0, _0803F530 @ =gMain movs r5, #0x9c lsls r5, r5, #5 adds r1, r0, r5 strh r2, [r1] ldr r7, _0803F534 @ =0x00001888 adds r1, r0, r7 strh r2, [r1] movs r1, #0xca lsls r1, r1, #5 adds r0, r0, r1 _0803F4EA: strh r2, [r0] ldr r3, _0803F538 @ =0x020314E0 ldr r1, [r3] ldr r2, _0803F53C @ =0x00000504 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 movs r2, #0 strb r0, [r1] ldr r0, [r3] ldr r3, _0803F540 @ =0x00000524 adds r1, r0, r3 strh r2, [r1] ldr r4, _0803F544 @ =0x00000526 adds r1, r0, r4 strh r2, [r1] movs r5, #0xa5 lsls r5, r5, #3 adds r1, r0, r5 strh r2, [r1] ldr r7, _0803F548 @ =0x0000052A adds r1, r0, r7 strh r2, [r1] subs r3, #0x10 adds r1, r0, r3 strh r2, [r1] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r0, r4 strh r2, [r0] ldr r0, _0803F54C @ =0x00000127 bl m4aSongNumStart b _0803FA78 .align 2, 0 _0803F530: .4byte gMain _0803F534: .4byte 0x00001888 _0803F538: .4byte 0x020314E0 _0803F53C: .4byte 0x00000504 _0803F540: .4byte 0x00000524 _0803F544: .4byte 0x00000526 _0803F548: .4byte 0x0000052A _0803F54C: .4byte 0x00000127 _0803F550: ldr r7, _0803F578 @ =gMain ldr r0, _0803F57C @ =0x000012C8 adds r5, r7, r0 ldrh r4, [r5] cmp r4, #0 beq _0803F5CC ldr r0, [r6] ldr r1, _0803F580 @ =0x00000524 adds r2, r0, r1 ldrh r3, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803F584 @ =0x000012BF cmp r1, r0 bgt _0803F588 adds r0, r3, #0 adds r0, #0x8c strh r0, [r2] b _0803F58C .align 2, 0 _0803F578: .4byte gMain _0803F57C: .4byte 0x000012C8 _0803F580: .4byte 0x00000524 _0803F584: .4byte 0x000012BF _0803F588: movs r0, #0 strh r0, [r5] _0803F58C: ldr r2, [r6] ldr r5, _0803F5C0 @ =0x00000524 adds r0, r2, r5 movs r7, #0 ldrsh r1, [r0, r7] movs r0, #0x96 lsls r0, r0, #4 cmp r1, r0 ble _0803F62C movs r0, #0xa5 lsls r0, r0, #3 adds r2, r2, r0 ldrh r3, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803F5C4 @ =0x0000135F cmp r1, r0 bgt _0803F5B6 adds r0, r3, #0 adds r0, #0xc8 strh r0, [r2] _0803F5B6: ldr r1, [r6] ldr r5, _0803F5C8 @ =0x00000514 adds r1, r1, r5 b _0803F626 .align 2, 0 _0803F5C0: .4byte 0x00000524 _0803F5C4: .4byte 0x0000135F _0803F5C8: .4byte 0x00000514 _0803F5CC: ldr r0, [r6] ldr r1, _0803F5E8 @ =0x00000524 adds r2, r0, r1 ldrh r3, [r2] movs r5, #0 ldrsh r1, [r2, r5] ldr r0, _0803F5EC @ =0xFFFFED40 cmp r1, r0 ble _0803F5F0 adds r0, r3, #0 subs r0, #0x8c strh r0, [r2] b _0803F5F8 .align 2, 0 _0803F5E8: .4byte 0x00000524 _0803F5EC: .4byte 0xFFFFED40 _0803F5F0: movs r1, #0x9c lsls r1, r1, #5 adds r0, r7, r1 strh r4, [r0] _0803F5F8: ldr r2, [r6] ldr r3, _0803F674 @ =0x00000524 adds r0, r2, r3 movs r4, #0 ldrsh r1, [r0, r4] ldr r0, _0803F678 @ =0xFFFFF6A0 cmp r1, r0 bge _0803F62C movs r5, #0xa5 lsls r5, r5, #3 adds r2, r2, r5 ldrh r3, [r2] movs r7, #0 ldrsh r1, [r2, r7] ldr r0, _0803F67C @ =0xFFFFECA0 cmp r1, r0 ble _0803F620 adds r0, r3, #0 subs r0, #0xc8 strh r0, [r2] _0803F620: ldr r1, [r6] ldr r0, _0803F680 @ =0x00000514 adds r1, r1, r0 _0803F626: ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0803F62C: ldr r2, _0803F684 @ =0x020314E0 ldr r1, [r2] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x14 bne _0803F646 movs r4, #0x99 lsls r4, r4, #3 adds r1, r1, r4 movs r0, #0x3c strb r0, [r1] _0803F646: ldr r2, [r2] adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc7 bhi _0803F65A b _0803FA78 _0803F65A: movs r0, #0 strh r0, [r1] ldr r5, _0803F688 @ =0x000003E2 adds r1, r2, r5 movs r0, #0xd strh r0, [r1] movs r7, #0xf7 lsls r7, r7, #2 adds r1, r2, r7 movs r0, #3 strb r0, [r1] b _0803FA78 .align 2, 0 _0803F674: .4byte 0x00000524 _0803F678: .4byte 0xFFFFF6A0 _0803F67C: .4byte 0xFFFFECA0 _0803F680: .4byte 0x00000514 _0803F684: .4byte 0x020314E0 _0803F688: .4byte 0x000003E2 _0803F68C: ldr r0, [r6] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, [r6] ldr r2, _0803F704 @ =0x00000283 adds r0, r4, r2 ldrb r0, [r0] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #9 bne _0803F720 movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #0xe strb r0, [r1] ldr r0, [r6] ldr r4, _0803F708 @ =0x000003E2 adds r0, r0, r4 movs r4, #0 strh r5, [r0] ldr r3, _0803F70C @ =gMain ldr r7, _0803F710 @ =0x00000A28 adds r0, r3, r7 movs r1, #1 strh r1, [r0] movs r2, #0x97 lsls r2, r2, #4 adds r0, r3, r2 strh r1, [r0] ldr r1, [r6] movs r7, #0xb3 lsls r7, r7, #3 adds r2, r1, r7 movs r0, #0xc7 strh r0, [r2] ldr r2, _0803F714 @ =0x0000038E adds r0, r1, r2 strh r5, [r0] adds r7, #0x10 adds r1, r1, r7 strb r4, [r1] ldr r0, [r6] ldr r2, _0803F718 @ =0x000005A6 adds r1, r0, r2 strh r5, [r1] ldr r4, _0803F71C @ =0x000005A4 adds r0, r0, r4 movs r1, #2 strb r1, [r0] adds r2, r3, #0 b _0803F74C .align 2, 0 _0803F704: .4byte 0x00000283 _0803F708: .4byte 0x000003E2 _0803F70C: .4byte gMain _0803F710: .4byte 0x00000A28 _0803F714: .4byte 0x0000038E _0803F718: .4byte 0x000005A6 _0803F71C: .4byte 0x000005A4 _0803F720: movs r7, #0xf7 lsls r7, r7, #2 adds r1, r4, r7 movs r0, #0xa strb r0, [r1] ldr r1, [r6] ldr r0, _0803F770 @ =0x000003E2 adds r2, r1, r0 movs r0, #0x62 strh r0, [r2] ldr r2, _0803F774 @ =gMain movs r0, #0x80 strb r0, [r2, #0xf] movs r3, #0xe2 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #2 strb r0, [r1] ldr r0, [r6] ldr r4, _0803F778 @ =0x00000392 adds r0, r0, r4 strh r5, [r0] _0803F74C: ldr r0, _0803F77C @ =0x020314E0 ldr r4, [r0] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r4, r5 movs r0, #0 strh r0, [r1] ldr r7, _0803F780 @ =0x00001CD8 adds r0, r2, r7 ldrh r0, [r0] cmp r0, #0 bne _0803F766 b _0803FA78 _0803F766: ldr r0, _0803F784 @ =0x00000486 adds r1, r4, r0 movs r0, #1 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F770: .4byte 0x000003E2 _0803F774: .4byte gMain _0803F778: .4byte 0x00000392 _0803F77C: .4byte 0x020314E0 _0803F780: .4byte 0x00001CD8 _0803F784: .4byte 0x00000486 _0803F788: ldr r2, _0803F7B4 @ =0x086AF3CC ldr r5, _0803F7B8 @ =0x020314E0 ldr r4, [r5] ldr r6, _0803F7BC @ =0x000003E2 adds r3, r4, r6 movs r7, #0 ldrsh r1, [r3, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F7C0 _0803F7AE: adds r0, r2, #1 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F7B4: .4byte 0x086AF3CC _0803F7B8: .4byte 0x020314E0 _0803F7BC: .4byte 0x000003E2 _0803F7C0: movs r2, #0 movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x83 bne _0803F7F2 movs r0, #0xd strh r0, [r3] ldr r3, _0803F80C @ =0x000003E1 adds r0, r4, r3 strb r2, [r0] ldr r0, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0xb strb r1, [r0] ldr r0, [r5] ldr r7, _0803F810 @ =0x00000389 adds r0, r0, r7 strb r2, [r0] _0803F7F2: ldr r1, [r5] adds r0, r1, r6 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x78 beq _0803F800 b _0803FA78 _0803F800: movs r3, #0xe4 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #0x15 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F80C: .4byte 0x000003E1 _0803F810: .4byte 0x00000389 _0803F814: ldr r2, _0803F840 @ =0x086AF3CC ldr r3, [r6] ldr r5, _0803F844 @ =0x000003E2 adds r4, r3, r5 movs r7, #0 ldrsh r1, [r4, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _0803F848 adds r0, r1, #1 strh r0, [r3] b _0803F85E .align 2, 0 _0803F840: .4byte 0x086AF3CC _0803F844: .4byte 0x000003E2 _0803F848: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _0803F85E movs r0, #0x21 strh r0, [r4] _0803F85E: ldr r1, [r6] ldr r2, _0803F8C8 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 bne _0803F890 ldr r4, _0803F8CC @ =0x000003EA adds r1, r1, r4 ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] ldr r3, _0803F8D0 @ =0xFFFFFD00 cmp r0, r3 ble _0803F890 adds r0, r2, #0 subs r0, #0x18 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r3 bge _0803F890 movs r0, #0xfd lsls r0, r0, #8 strh r0, [r1] _0803F890: ldr r4, _0803F8D4 @ =0x020314E0 ldr r3, [r4] ldr r7, _0803F8CC @ =0x000003EA adds r0, r3, r7 movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0803F8D0 @ =0xFFFFFD00 cmp r1, r0 beq _0803F8A4 b _0803FA78 _0803F8A4: ldr r5, _0803F8C8 @ =0x000003E2 adds r0, r3, r5 movs r2, #0 movs r1, #0 strh r1, [r0] subs r7, #6 adds r0, r3, r7 strh r1, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r3, r0 movs r0, #0xc _0803F8BC: strb r0, [r1] ldr r0, [r4] ldr r1, _0803F8D8 @ =0x000003E1 adds r0, r0, r1 strb r2, [r0] b _0803FA78 .align 2, 0 _0803F8C8: .4byte 0x000003E2 _0803F8CC: .4byte 0x000003EA _0803F8D0: .4byte 0xFFFFFD00 _0803F8D4: .4byte 0x020314E0 _0803F8D8: .4byte 0x000003E1 _0803F8DC: ldr r1, _0803F980 @ =0x040000D4 ldr r0, _0803F984 @ =0x084AA18C str r0, [r1] ldr r0, _0803F988 @ =0x06011620 str r0, [r1, #4] ldr r0, _0803F98C @ =0x80000430 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _0803F990 @ =0x020314E0 ldr r0, [r3] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r4, #0 movs r1, #0xd strb r1, [r0] ldr r1, [r3] movs r5, #0xfa lsls r5, r5, #2 adds r2, r1, r5 ldr r0, _0803F994 @ =0x00000474 strh r0, [r2] ldr r7, _0803F998 @ =0x000003EA adds r2, r1, r7 ldr r0, _0803F99C @ =0x0000FB50 strh r0, [r2] ldr r0, _0803F9A0 @ =0x00000506 adds r1, r1, r0 movs r0, #2 strb r0, [r1] ldr r0, [r3] ldr r2, _0803F9A4 @ =0x00000516 adds r1, r0, r2 strh r4, [r1] ldr r5, _0803F9A8 @ =0x000005FA adds r0, r0, r5 movs r2, #1 strb r2, [r0] ldr r0, _0803F9AC @ =gMain movs r1, #0x80 strb r1, [r0, #0xf] ldr r7, _0803F9B0 @ =0x00000D08 adds r0, r0, r7 strh r2, [r0] ldr r1, [r3] movs r2, #0xf1 lsls r2, r2, #2 adds r0, r1, r2 strh r4, [r0] ldr r3, _0803F9B4 @ =0x000003C6 adds r2, r1, r3 ldr r0, _0803F9B8 @ =0x0000EC78 strh r0, [r2] movs r4, #0xf2 lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0xaf lsls r0, r0, #3 strh r0, [r2] ldr r5, _0803F9BC @ =0x000003CA adds r2, r1, r5 ldr r0, _0803F9C0 @ =0x0000F830 strh r0, [r2] movs r7, #0x83 lsls r7, r7, #3 adds r2, r1, r7 ldr r0, _0803F9C4 @ =0x0000FF38 strh r0, [r2] ldr r0, _0803F9C8 @ =0x0000041A adds r2, r1, r0 subs r0, #0xfa strh r0, [r2] adds r3, #0x4e adds r2, r1, r3 movs r0, #0x18 strh r0, [r2] adds r4, #0x4e adds r1, r1, r4 ldr r0, _0803F9CC @ =0x0000FFF0 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F980: .4byte 0x040000D4 _0803F984: .4byte 0x084AA18C _0803F988: .4byte 0x06011620 _0803F98C: .4byte 0x80000430 _0803F990: .4byte 0x020314E0 _0803F994: .4byte 0x00000474 _0803F998: .4byte 0x000003EA _0803F99C: .4byte 0x0000FB50 _0803F9A0: .4byte 0x00000506 _0803F9A4: .4byte 0x00000516 _0803F9A8: .4byte 0x000005FA _0803F9AC: .4byte gMain _0803F9B0: .4byte 0x00000D08 _0803F9B4: .4byte 0x000003C6 _0803F9B8: .4byte 0x0000EC78 _0803F9BC: .4byte 0x000003CA _0803F9C0: .4byte 0x0000F830 _0803F9C4: .4byte 0x0000FF38 _0803F9C8: .4byte 0x0000041A _0803F9CC: .4byte 0x0000FFF0 _0803F9D0: ldr r3, _0803F9F0 @ =0x020314E0 ldr r2, [r3] ldr r5, _0803F9F4 @ =0x00000516 adds r0, r2, r5 ldrh r0, [r0] cmp r0, #0xff bhi _0803FA18 movs r7, #0xf9 lsls r7, r7, #2 adds r1, r2, r7 ldrh r0, [r1] cmp r0, #0x4f bhi _0803F9F8 _0803F9EA: adds r0, #1 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F9F0: .4byte 0x020314E0 _0803F9F4: .4byte 0x00000516 _0803F9F8: ldr r0, _0803FA10 @ =0x000003EA adds r2, r2, r0 ldrh r3, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803FA14 @ =0x0000095F cmp r1, r0 bgt _0803FA78 adds r0, r3, #0 adds r0, #0x50 b _0803FA76 .align 2, 0 _0803FA10: .4byte 0x000003EA _0803FA14: .4byte 0x0000095F _0803FA18: movs r1, #0 movs r0, #2 strb r0, [r2, #0x13] ldr r0, [r3] strh r1, [r0, #0x18] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0xf strb r1, [r0] b _0803FA78 _0803FA2E: ldr r0, _0803FAC0 @ =0x020314E0 ldr r5, [r0] movs r7, #0xe3 lsls r7, r7, #2 adds r1, r5, r7 movs r0, #1 strh r0, [r1] ldr r0, _0803FAC4 @ =0x0000038E adds r4, r5, r0 ldrh r6, [r4] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _0803FAC8 @ =0xFFFFFE0C cmp r0, r1 ble _0803FA78 subs r0, r1, r0 movs r1, #0x1e bl __divsi3 adds r0, r6, r0 strh r0, [r4] movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 adds r2, r5, #0 adds r2, #0xe6 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x26 rsbs r1, r1, #0 cmp r0, r1 bge _0803FA78 ldr r0, _0803FACC @ =0x0000FFDA _0803FA76: strh r0, [r2] _0803FA78: ldr r5, _0803FAC0 @ =0x020314E0 ldr r0, [r5] movs r4, #0xe4 lsls r4, r4, #2 adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0 beq _0803FAB8 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _0803FAA2 ldr r0, _0803FAD0 @ =0x086A3700 ldr r7, _0803FAD4 @ =0x000012A8 adds r0, r0, r7 ldrh r0, [r0] movs r1, #0 bl sub_528DC _0803FAA2: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803FAB8 ldr r0, _0803FAD8 @ =0x02032EE0 ldr r1, _0803FADC @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _0803FAB8: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803FAC0: .4byte 0x020314E0 _0803FAC4: .4byte 0x0000038E _0803FAC8: .4byte 0xFFFFFE0C _0803FACC: .4byte 0x0000FFDA _0803FAD0: .4byte 0x086A3700 _0803FAD4: .4byte 0x000012A8 _0803FAD8: .4byte 0x02032EE0 _0803FADC: .4byte 0x0000FFFF thumb_func_start sub_3FAE0 sub_3FAE0: @ 0x0803FAE0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov sl, r0 movs r1, #0 str r1, [sp] ldr r7, _0803FB74 @ =0x0200D2A0 ldrh r0, [r7] movs r2, #0xb8 rsbs r2, r2, #0 adds r2, r2, r7 mov sb, r2 cmp r0, #0 beq _0803FBC4 ldr r4, _0803FB78 @ =0x020314E0 ldr r0, [r4] movs r3, #0xfa lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r7, #2] ldr r0, [r4] ldr r2, _0803FB7C @ =0x000003EA adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 strh r0, [r7, #4] movs r2, #0 ldr r4, _0803FB80 @ =0x03005000 ldr r0, _0803FB84 @ =0xFFFFFE00 mov r8, r0 _0803FB34: lsls r1, r2, #0x10 asrs r0, r1, #0xd adds r0, #8 adds r6, r7, r0 movs r0, #4 ldrsb r0, [r6, r0] ldrh r2, [r7, #4] adds r0, r0, r2 lsls r0, r0, #0x10 movs r3, #0xf0 lsls r3, r3, #0xe adds r0, r0, r3 lsrs r0, r0, #0x10 adds r5, r1, #0 cmp r0, #0xf0 bls _0803FB88 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] b _0803FBB6 .align 2, 0 _0803FB74: .4byte 0x0200D2A0 _0803FB78: .4byte 0x020314E0 _0803FB7C: .4byte 0x000003EA _0803FB80: .4byte 0x03005000 _0803FB84: .4byte 0xFFFFFE00 _0803FB88: ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0803FC40 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _0803FBB6: movs r3, #0x80 lsls r3, r3, #9 adds r0, r5, r3 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xd ble _0803FB34 _0803FBC4: mov r7, sb ldrh r4, [r7] mov sb, r4 cmp r4, #0 bne _0803FBD0 b _0803FCD4 _0803FBD0: ldr r4, _0803FC44 @ =0x020314E0 ldr r0, [r4] movs r1, #0xfa lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r7, #2] ldr r0, [r4] ldr r3, _0803FC48 @ =0x000003EA adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r7, #4] movs r2, #0 ldr r4, _0803FC4C @ =0x03005000 ldr r3, _0803FC50 @ =0xFFFFFE00 mov r8, r3 _0803FC00: lsls r1, r2, #0x10 asrs r0, r1, #0xd adds r0, #8 adds r6, r7, r0 movs r0, #4 ldrsb r0, [r6, r0] ldrh r2, [r7, #4] adds r0, r0, r2 lsls r0, r0, #0x10 movs r3, #0xf0 lsls r3, r3, #0xe adds r0, r0, r3 lsrs r0, r0, #0x10 adds r5, r1, #0 cmp r0, #0xf0 bls _0803FC54 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] b _0803FC82 .align 2, 0 _0803FC40: .4byte 0x000001FF _0803FC44: .4byte 0x020314E0 _0803FC48: .4byte 0x000003EA _0803FC4C: .4byte 0x03005000 _0803FC50: .4byte 0xFFFFFE00 _0803FC54: ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0803FCB8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _0803FC82: movs r3, #0x80 lsls r3, r3, #9 adds r0, r5, r3 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xd ble _0803FC00 ldr r4, _0803FCBC @ =0x020314E0 ldr r0, [r4] ldr r1, _0803FCC0 @ =0x00000516 adds r0, r0, r1 ldrh r1, [r0] ldr r0, _0803FCC4 @ =0x0000029F cmp r1, r0 beq _0803FCA2 b _0804024A _0803FCA2: movs r0, #0 strh r0, [r7] ldr r0, _0803FCC8 @ =gMain ldr r2, _0803FCCC @ =0x00002070 adds r1, r0, r2 movs r2, #1 strh r2, [r1] ldr r3, _0803FCD0 @ =0x00002350 adds r0, r0, r3 strh r2, [r0] b _0804024A .align 2, 0 _0803FCB8: .4byte 0x000001FF _0803FCBC: .4byte 0x020314E0 _0803FCC0: .4byte 0x00000516 _0803FCC4: .4byte 0x0000029F _0803FCC8: .4byte gMain _0803FCCC: .4byte 0x00002070 _0803FCD0: .4byte 0x00002350 _0803FCD4: subs r7, #0xb8 ldrh r0, [r7] cmp r0, #0 bne _0803FCDE b _0803FF98 _0803FCDE: ldr r5, _0803FD84 @ =0x020314E0 ldr r4, [r5] movs r0, #0xfa lsls r0, r0, #2 mov r8, r0 adds r0, r4, r0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x58 subs r0, r0, r1 strh r0, [r7, #2] ldr r4, [r5] ldr r6, _0803FD88 @ =0x000003EA adds r0, r4, r6 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x4e subs r0, r0, r1 strh r0, [r7, #4] ldr r4, [r5] add r8, r4 mov r3, r8 movs r1, #0 ldrsh r0, [r3, r1] movs r1, #0xa bl __divsi3 adds r0, #0x74 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] adds r6, r4, r6 movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r0, #0x3c ldr r2, _0803FD8C @ =0x0000028A adds r1, r4, r2 strh r0, [r1] ldr r3, _0803FD90 @ =0x0000051A adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x5b ble _0803FD98 mov r2, r8 movs r3, #0 ldrsh r0, [r2, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xac movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xb8 ldr r2, _0803FD94 @ =0x000003F2 adds r1, r4, r2 b _0803FDA8 .align 2, 0 _0803FD84: .4byte 0x020314E0 _0803FD88: .4byte 0x000003EA _0803FD8C: .4byte 0x0000028A _0803FD90: .4byte 0x0000051A _0803FD94: .4byte 0x000003F2 _0803FD98: movs r3, #0xfc lsls r3, r3, #2 adds r0, r4, r3 mov r1, sb strh r1, [r0] ldr r2, _0803FE1C @ =0x000003F2 adds r1, r4, r2 ldr r0, _0803FE20 @ =0x0000FF60 _0803FDA8: strh r0, [r1] movs r3, #4 ldrsh r1, [r7, r3] movs r0, #0x46 rsbs r0, r0, #0 cmp r1, r0 bge _0803FDBA ldr r0, _0803FE24 @ =0x0000FFBA strh r0, [r7, #4] _0803FDBA: movs r4, #4 ldrsh r0, [r7, r4] cmp r0, #0xb4 ble _0803FDC6 movs r0, #0xb4 strh r0, [r7, #4] _0803FDC6: ldr r2, _0803FE28 @ =0x086AF3CC ldr r0, _0803FE2C @ =0x020314E0 ldr r3, [r0] ldr r1, _0803FE30 @ =0x000003E2 adds r0, r3, r1 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r4, _0803FE34 @ =0x00000389 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r2 cmp r0, #9 ble _0803FE40 movs r0, #0xb str r0, [sp] ldr r3, _0803FE38 @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r3 ldrh r1, [r2, #2] ldr r0, _0803FE3C @ =0xFFFFFE00 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r7, #8] lsls r0, r0, #3 adds r0, r0, r3 movs r1, #0xb4 strb r1, [r0] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r3 movs r3, #0xb0 b _0803FF24 .align 2, 0 _0803FE1C: .4byte 0x000003F2 _0803FE20: .4byte 0x0000FF60 _0803FE24: .4byte 0x0000FFBA _0803FE28: .4byte 0x086AF3CC _0803FE2C: .4byte 0x020314E0 _0803FE30: .4byte 0x000003E2 _0803FE34: .4byte 0x00000389 _0803FE38: .4byte 0x03005000 _0803FE3C: .4byte 0xFFFFFE00 _0803FE40: cmp r0, #1 bne _0803FE4C movs r2, #2 mov sl, r2 movs r3, #0xe b _0803FE6C _0803FE4C: cmp r0, #3 bne _0803FE5A movs r4, #2 mov sl, r4 movs r0, #0xb str r0, [sp] b _0803FE6E _0803FE5A: ldr r2, _0803FF30 @ =0x000003DF adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r3, #0xf _0803FE6C: str r3, [sp] _0803FE6E: ldr r4, _0803FF34 @ =0x020314E0 ldr r0, [r4] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0803FE86 movs r3, #8 mov sl, r3 _0803FE86: cmp r0, #0x16 bne _0803FE8E movs r4, #9 mov sl, r4 _0803FE8E: ldrh r2, [r7, #8] lsls r2, r2, #3 ldr r6, _0803FF38 @ =0x03005000 adds r2, r2, r6 lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 ldr r0, _0803FF3C @ =0x086B612E adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r0, [r7, #8] lsls r0, r0, #3 adds r0, r0, r6 ldr r1, _0803FF34 @ =0x020314E0 ldr r5, [r1] movs r4, #0 ldrsb r4, [r0, r4] adds r4, #0x4e ldr r2, _0803FF40 @ =0x000003EA adds r0, r5, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r0, _0803FF44 @ =0x0000051A adds r5, r5, r0 strh r4, [r5] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r6 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r4, _0803FF48 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _0803FF4C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r3, _0803FF34 @ =0x020314E0 ldr r0, [r3] ldr r4, _0803FF50 @ =0x00000389 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _0803FF54 ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r6 ldr r0, [sp] lsls r3, r0, #4 _0803FF24: ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 orrs r0, r3 strb r0, [r1, #5] b _0803FF60 .align 2, 0 _0803FF30: .4byte 0x000003DF _0803FF34: .4byte 0x020314E0 _0803FF38: .4byte 0x03005000 _0803FF3C: .4byte 0x086B612E _0803FF40: .4byte 0x000003EA _0803FF44: .4byte 0x0000051A _0803FF48: .4byte 0x000001FF _0803FF4C: .4byte 0xFFFFFE00 _0803FF50: .4byte 0x00000389 _0803FF54: ldrh r0, [r7, #8] lsls r0, r0, #3 adds r0, r0, r6 ldrb r0, [r0, #5] lsrs r0, r0, #4 str r0, [sp] _0803FF60: ldr r1, _0803FFB8 @ =0x020314E0 ldr r2, [r1] ldr r3, _0803FFBC @ =0x000003E2 adds r0, r2, r3 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 mov r1, r8 adds r1, #4 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _0803FFC0 @ =0x000003DF adds r2, r2, r1 strb r0, [r2] ldr r2, _0803FFC4 @ =0x040000D4 mov r3, sl lsls r0, r3, #0x10 asrs r0, r0, #5 ldr r1, _0803FFC8 @ =0x084AA9EC adds r0, r0, r1 str r0, [r2] ldr r0, _0803FFCC @ =0x06011620 str r0, [r2, #4] ldr r0, _0803FFD0 @ =0x80000400 str r0, [r2, #8] ldr r0, [r2, #8] _0803FF98: ldr r7, _0803FFD4 @ =0x0200C2D0 ldrh r0, [r7] cmp r0, #0 bne _0803FFA2 b _080400C0 _0803FFA2: mov r4, sl lsls r0, r4, #0x10 asrs r5, r0, #0x10 cmp r5, #7 ble _0803FFD8 movs r0, #0 strh r0, [r7, #2] strh r0, [r7, #4] mov sl, r0 b _0804002E .align 2, 0 _0803FFB8: .4byte 0x020314E0 _0803FFBC: .4byte 0x000003E2 _0803FFC0: .4byte 0x000003DF _0803FFC4: .4byte 0x040000D4 _0803FFC8: .4byte 0x084AA9EC _0803FFCC: .4byte 0x06011620 _0803FFD0: .4byte 0x80000400 _0803FFD4: .4byte 0x0200C2D0 _0803FFD8: cmp r5, #5 ble _08040028 ldr r0, _08040020 @ =0x020314E0 ldr r4, [r0] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x58 subs r0, r0, r1 strh r0, [r7, #2] ldr r3, _08040024 @ =0x000003EA adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 adds r0, #0x60 strh r0, [r7, #4] subs r0, r5, #6 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 b _0804002E .align 2, 0 _08040020: .4byte 0x020314E0 _08040024: .4byte 0x000003EA _08040028: movs r0, #0 strh r0, [r7, #2] strh r0, [r7, #4] _0804002E: movs r2, #0 ldr r3, [sp] lsls r3, r3, #4 mov sb, r3 mov r4, sl lsls r1, r4, #0x10 ldr r0, _080400F0 @ =0x03005000 mov r8, r0 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r1, _080400F4 @ =0xFFFFFC00 mov sl, r1 _0804004C: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r0, r4, #0 adds r0, #8 adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r6, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080400F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080400FC @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r0, [r7, #4] ldrb r3, [r6, #4] adds r0, r0, r3 strb r0, [r1] ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 add r4, ip ldr r0, _08040100 @ =0x00000109 adds r4, r4, r0 ldr r1, _08040104 @ =0x000003FF adds r0, r1, #0 ands r4, r0 ldrh r1, [r2, #4] mov r0, sl ands r0, r1 orrs r0, r4 strh r0, [r2, #4] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r2, sb orrs r0, r2 strb r0, [r1, #5] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _0804004C _080400C0: ldr r7, _08040108 @ =0x0200D410 ldrh r0, [r7] cmp r0, #0 bne _080400CA b _0804024A _080400CA: ldr r4, _0804010C @ =0x020314E0 ldr r0, [r4] ldr r3, _08040110 @ =0x0000051A adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] subs r0, #0x46 movs r1, #3 bl __divsi3 adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08040114 movs r1, #0 b _0804011A .align 2, 0 _080400F0: .4byte 0x03005000 _080400F4: .4byte 0xFFFFFC00 _080400F8: .4byte 0x000001FF _080400FC: .4byte 0xFFFFFE00 _08040100: .4byte 0x00000109 _08040104: .4byte 0x000003FF _08040108: .4byte 0x0200D410 _0804010C: .4byte 0x020314E0 _08040110: .4byte 0x0000051A _08040114: cmp r0, #9 ble _0804011A movs r1, #9 _0804011A: ldr r3, _08040154 @ =0x020314E0 ldr r2, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r6, r1, #0x10 cmp r0, #0xe beq _08040180 ldr r0, _08040158 @ =0x0000050A adds r3, r2, r0 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 ble _08040160 ldr r1, _0804015C @ =gMain ldrh r0, [r1, #0x38] movs r0, #0x9e strh r0, [r1, #0x38] ldrh r0, [r3] ldrh r2, [r1, #0x3c] strh r0, [r1, #0x3c] ldrh r0, [r3] subs r0, #1 strh r0, [r3] b _08040180 .align 2, 0 _08040154: .4byte 0x020314E0 _08040158: .4byte 0x0000050A _0804015C: .4byte gMain _08040160: ldr r2, _0804025C @ =gMain ldrb r1, [r2, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _08040180 ldrh r0, [r2, #0x38] ldr r0, _08040260 @ =0x00001E10 strh r0, [r2, #0x38] movs r0, #0x10 asrs r1, r6, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 ldrh r1, [r2, #0x3a] strh r0, [r2, #0x3a] _08040180: ldr r5, _08040264 @ =0x020314E0 ldr r4, [r5] movs r2, #0xfa lsls r2, r2, #2 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x58 subs r0, r0, r1 movs r1, #0 mov r8, r1 strh r0, [r7, #2] ldr r2, _08040268 @ =0x000003EA adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x4e subs r0, r0, r1 asrs r1, r6, #0x10 adds r1, #0x24 adds r0, r0, r1 strh r0, [r7, #4] adds r6, r7, #0 adds r6, #8 ldr r4, _0804026C @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r3, _08040270 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08040274 @ =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 r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] ldr r0, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _08040226 ldr r1, _0804025C @ =gMain ldr r0, _08040278 @ =0x000021E0 adds r2, r1, r0 movs r0, #1 strh r0, [r2] ldr r2, _0804027C @ =0x00002070 adds r0, r1, r2 mov r3, r8 strh r3, [r0] ldr r4, _08040280 @ =0x00002350 adds r0, r1, r4 strh r3, [r0] ldr r0, _08040284 @ =0x00001210 adds r1, r1, r0 strh r3, [r1] _08040226: ldr r1, _08040264 @ =0x020314E0 ldr r0, [r1] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0804024A ldr r0, _0804025C @ =gMain ldr r3, _08040280 @ =0x00002350 adds r1, r0, r3 mov r4, r8 strh r4, [r1] ldr r1, _08040284 @ =0x00001210 adds r0, r0, r1 strh r4, [r0] _0804024A: 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 _0804025C: .4byte gMain _08040260: .4byte 0x00001E10 _08040264: .4byte 0x020314E0 _08040268: .4byte 0x000003EA _0804026C: .4byte 0x03005000 _08040270: .4byte 0x000001FF _08040274: .4byte 0xFFFFFE00 _08040278: .4byte 0x000021E0 _0804027C: .4byte 0x00002070 _08040280: .4byte 0x00002350 _08040284: .4byte 0x00001210 thumb_func_start sub_40288 sub_40288: @ 0x08040288 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x44 movs r0, #0 str r0, [sp, #8] movs r1, #0 str r1, [sp, #4] movs r7, #0 movs r2, #0 str r2, [sp] ldr r3, _080402CC @ =0x0200BAE8 str r3, [sp, #0x10] ldrh r0, [r3] cmp r0, #0 bne _080402AE b _08040444 _080402AE: ldr r0, _080402D0 @ =0x020314E0 ldr r1, [r0] ldr r4, _080402D4 @ =0x000006C4 adds r1, r1, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #3 bne _080402D8 movs r0, #0xf0 strh r0, [r3, #2] movs r0, #0xb4 strh r0, [r3, #4] b _080402E2 .align 2, 0 _080402CC: .4byte 0x0200BAE8 _080402D0: .4byte 0x020314E0 _080402D4: .4byte 0x000006C4 _080402D8: movs r0, #0x60 ldr r5, [sp, #0x10] strh r0, [r5, #2] movs r0, #0x37 strh r0, [r5, #4] _080402E2: ldr r0, _08040468 @ =0x020314E0 ldr r1, [r0] ldr r3, [sp, #0x10] ldrh r2, [r3, #2] ldr r4, _0804046C @ =0x000006E4 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #4] ldr r5, _08040470 @ =0x000006E6 adds r1, r1, r5 strh r0, [r1] movs r1, #4 ldrsh r0, [r3, r1] cmp r0, #0xc7 ble _08040304 movs r0, #0xc8 strh r0, [r3, #4] _08040304: movs r2, #0 ldr r3, _08040474 @ =0x0200BA30 mov ip, r3 ldr r5, _08040478 @ =0x03005000 movs r4, #3 mov sb, r4 movs r0, #0xd rsbs r0, r0, #0 mov sl, r0 ldr r1, _0804047C @ =0xFFFFFE00 mov r8, r1 _0804031A: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r2, [sp, #0x10] adds r6, r2, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xd0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r1, _08040468 @ =0x020314E0 ldr r0, [r1] ldr r2, _08040480 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] mov r0, sb ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r6, r2] str r1, [sp, #0x3c] ldr r1, [sp, #0x10] movs r2, #2 ldrsh r0, [r1, r2] ldr r2, [sp, #0x3c] adds r1, r2, r0 ldr r2, _08040484 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp, #0x10] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0804031A mov r4, ip str r4, [sp, #0x10] ldr r5, _08040468 @ =0x020314E0 ldr r0, [r5] ldr r1, _0804046C @ =0x000006E4 adds r0, r0, r1 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #2] ldr r0, [r5] ldr r2, _08040470 @ =0x000006E6 adds r0, r0, r2 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _080403C4 movs r0, #0xc8 strh r0, [r4, #4] _080403C4: movs r2, #0 ldr r5, _08040478 @ =0x03005000 movs r3, #3 mov sb, r3 movs r4, #0xd rsbs r4, r4, #0 mov sl, r4 ldr r0, _0804047C @ =0xFFFFFE00 mov r8, r0 _080403D6: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r2, _08040468 @ =0x020314E0 ldr r0, [r2] ldr r1, _08040480 @ =0x000006DB adds r0, r0, r1 ldrb r1, [r0] mov r2, sb ands r1, r2 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r1, #2 ldrsh r0, [r6, r1] mov ip, r0 ldr r2, [sp, #0x10] movs r1, #2 ldrsh r0, [r2, r1] mov r2, ip adds r1, r2, r0 ldr r2, _08040484 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp, #0x10] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _080403D6 _08040444: bl sub_41580 ldr r0, _08040468 @ =0x020314E0 ldr r0, [r0] ldr r4, _08040488 @ =0x00000507 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bls _0804045C b _08040802 _0804045C: lsls r0, r0, #2 ldr r1, _0804048C @ =_08040490 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08040468: .4byte 0x020314E0 _0804046C: .4byte 0x000006E4 _08040470: .4byte 0x000006E6 _08040474: .4byte 0x0200BA30 _08040478: .4byte 0x03005000 _0804047C: .4byte 0xFFFFFE00 _08040480: .4byte 0x000006DB _08040484: .4byte 0x000001FF _08040488: .4byte 0x00000507 _0804048C: .4byte _08040490 _08040490: @ jump table .4byte _080404A4 @ case 0 .4byte _080404C4 @ case 1 .4byte _080405E8 @ case 2 .4byte _080406C0 @ case 3 .4byte _080407EC @ case 4 _080404A4: ldr r0, _080404C0 @ =0x020314E0 ldr r0, [r0] movs r5, #0xa2 lsls r5, r5, #3 adds r0, r0, r5 movs r1, #0 strh r1, [r0] movs r7, #7 movs r0, #0xc str r0, [sp, #4] movs r1, #5 str r1, [sp, #8] b _08040802 .align 2, 0 _080404C0: .4byte 0x020314E0 _080404C4: ldr r5, _08040548 @ =0x020314E0 ldr r0, [r5] movs r4, #0xa2 lsls r4, r4, #3 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _080404DC movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStart _080404DC: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #8 bne _080404EE movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStop _080404EE: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x18 bne _08040500 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStart _08040500: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x24 bne _08040512 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStop _08040512: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x32 bne _08040524 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStart _08040524: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x38 bne _08040536 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStop _08040536: ldr r0, [r5] adds r0, r0, r4 ldrh r1, [r0] cmp r1, #0xd bhi _0804054C adds r0, r1, #0 lsrs r7, r0, #1 b _0804056E .align 2, 0 _08040548: .4byte 0x020314E0 _0804054C: cmp r1, #0x29 bls _0804055E cmp r1, #0x37 bhi _0804055A ldrh r0, [r0] subs r0, #0x2a b _08040566 _0804055A: cmp r1, #0x3c bhi _08040562 _0804055E: movs r7, #7 b _0804056E _08040562: ldrh r0, [r0] subs r0, #0x3d _08040566: lsrs r1, r0, #0x1f adds r0, r0, r1 lsls r0, r0, #0xf lsrs r7, r0, #0x10 _0804056E: ldr r0, _08040588 @ =0x020314E0 ldr r0, [r0] movs r2, #0xa2 lsls r2, r2, #3 adds r0, r0, r2 ldrh r1, [r0] cmp r1, #7 bhi _0804058C adds r0, r1, #0 lsrs r0, r0, #1 str r0, [sp, #4] b _080405B2 .align 2, 0 _08040588: .4byte 0x020314E0 _0804058C: cmp r1, #0x2f bhi _08040596 movs r3, #0xc str r3, [sp, #4] b _080405B2 _08040596: cmp r1, #0x3f bhi _080405AE ldrh r0, [r0] subs r0, #0x30 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] b _080405B2 _080405AE: movs r4, #0xc str r4, [sp, #4] _080405B2: movs r5, #5 str r5, [sp, #8] ldr r0, _080405E0 @ =0x020314E0 ldr r1, [r0] movs r0, #0xa2 lsls r0, r0, #3 adds r2, r1, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r2] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x4b beq _080405D0 b _08040802 _080405D0: movs r0, #0 strh r0, [r2] ldr r2, _080405E4 @ =0x00000507 adds r1, r1, r2 movs r0, #2 strb r0, [r1] b _08040802 .align 2, 0 _080405E0: .4byte 0x020314E0 _080405E4: .4byte 0x00000507 _080405E8: movs r7, #7 movs r3, #0xc str r3, [sp, #4] movs r4, #5 str r4, [sp, #8] ldr r5, _0804065C @ =0x020314E0 ldr r3, [r5] movs r0, #0xa2 lsls r0, r0, #3 adds r1, r3, r0 ldrh r0, [r1] cmp r0, #0x21 bhi _080406A4 adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1c beq _08040610 b _08040802 _08040610: movs r1, #0xe2 lsls r1, r1, #2 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08040670 bl sub_C00 ldr r4, [r5] movs r1, #0xa0 bl __umodsi3 movs r1, #0xc8 subs r1, r1, r0 ldr r2, _08040660 @ =0x0000051C adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r5, [r5] ldr r3, _08040664 @ =0x0000132C adds r1, r5, r3 ldr r1, [r1] ldr r2, _08040668 @ =0xFFFFFEA5 adds r4, r2, #0 ldrh r1, [r1, #0x12] adds r4, r4, r1 movs r1, #0x50 bl __umodsi3 subs r4, r4, r0 ldr r3, _0804066C @ =0x0000051E adds r5, r5, r3 strh r4, [r5] b _08040802 .align 2, 0 _0804065C: .4byte 0x020314E0 _08040660: .4byte 0x0000051C _08040664: .4byte 0x0000132C _08040668: .4byte 0xFFFFFEA5 _0804066C: .4byte 0x0000051E _08040670: ldr r4, _08040694 @ =0x0000132C adds r2, r3, r4 ldr r0, [r2] ldrh r0, [r0, #0x10] subs r0, #0xd ldr r5, _08040698 @ =0x0000051C adds r1, r3, r5 strh r0, [r1] ldr r1, [r2] ldr r2, _0804069C @ =0xFFFFFEA5 adds r0, r2, #0 ldrh r1, [r1, #0x12] adds r0, r0, r1 ldr r4, _080406A0 @ =0x0000051E adds r1, r3, r4 strh r0, [r1] b _08040802 .align 2, 0 _08040694: .4byte 0x0000132C _08040698: .4byte 0x0000051C _0804069C: .4byte 0xFFFFFEA5 _080406A0: .4byte 0x0000051E _080406A4: movs r0, #0 strh r0, [r1] ldr r5, _080406B8 @ =0x00000507 adds r1, r3, r5 movs r0, #3 strb r0, [r1] ldr r0, _080406BC @ =0x00000129 bl m4aSongNumStart b _08040802 .align 2, 0 _080406B8: .4byte 0x00000507 _080406BC: .4byte 0x00000129 _080406C0: movs r7, #7 movs r0, #0xc str r0, [sp, #4] ldr r4, _080406DC @ =0x020314E0 ldr r3, [r4] movs r1, #0xa2 lsls r1, r1, #3 adds r0, r3, r1 ldrh r1, [r0] cmp r1, #1 bhi _080406E0 adds r0, r1, #0 str r0, [sp, #8] b _080407D0 .align 2, 0 _080406DC: .4byte 0x020314E0 _080406E0: cmp r1, #9 bhi _080407C4 ldrh r0, [r0] subs r0, #2 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #2 lsls r0, r0, #0x10 movs r2, #0xa1 lsls r2, r2, #3 adds r1, r3, r2 mov r5, sp ldrh r5, [r5, #4] strh r5, [r1] lsrs r1, r0, #0x10 str r1, [sp, #8] asrs r0, r0, #0x10 cmp r0, #2 bne _080407D0 ldr r2, _080407A0 @ =0x0000132C adds r0, r3, r2 ldr r2, [r0] movs r5, #0x10 ldrsh r0, [r2, r5] subs r0, #0xd ldr r5, _080407A4 @ =0x0000051C adds r1, r3, r5 movs r5, #0 ldrsh r1, [r1, r5] subs r1, r0, r1 str r1, [sp, #0x1c] movs r1, #0x12 ldrsh r0, [r2, r1] ldr r2, _080407A8 @ =0xFFFFFEA5 adds r0, r0, r2 ldr r5, _080407AC @ =0x0000051E adds r1, r3, r5 movs r2, #0 ldrsh r1, [r1, r2] subs r1, r0, r1 str r1, [sp, #0x20] ldr r3, [sp, #0x1c] adds r1, r3, #0 muls r1, r3, r1 ldr r5, [sp, #0x20] adds r0, r5, #0 muls r0, r5, r0 adds r5, r1, r0 movs r0, #8 bl sub_11B0 ldr r2, [r4] ldr r1, _080407B0 @ =0x00000441 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080407D0 ldr r3, _080407B4 @ =0x00000442 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080407D0 movs r4, #0xe2 lsls r4, r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080407D0 cmp r5, #0xc7 bgt _080407D0 ldr r0, _080407B8 @ =gMain ldr r5, _080407BC @ =0x00001CD8 adds r0, r0, r5 movs r1, #1 strh r1, [r0] ldr r0, _080407C0 @ =0x00000486 adds r1, r2, r0 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] movs r0, #0x95 lsls r0, r0, #1 bl m4aSongNumStart movs r0, #9 bl sub_11B0 b _080407D0 .align 2, 0 _080407A0: .4byte 0x0000132C _080407A4: .4byte 0x0000051C _080407A8: .4byte 0xFFFFFEA5 _080407AC: .4byte 0x0000051E _080407B0: .4byte 0x00000441 _080407B4: .4byte 0x00000442 _080407B8: .4byte gMain _080407BC: .4byte 0x00001CD8 _080407C0: .4byte 0x00000486 _080407C4: movs r1, #5 str r1, [sp, #8] ldr r2, _080407E4 @ =0x00000507 adds r1, r3, r2 movs r0, #4 strb r0, [r1] _080407D0: ldr r0, _080407E8 @ =0x020314E0 ldr r1, [r0] movs r3, #0xa2 lsls r3, r3, #3 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _08040802 .align 2, 0 _080407E4: .4byte 0x00000507 _080407E8: .4byte 0x020314E0 _080407EC: ldr r0, _08040A88 @ =0x020314E0 ldr r1, [r0] movs r4, #0xa2 lsls r4, r4, #3 adds r2, r1, r4 movs r3, #0 movs r0, #0 strh r0, [r2] ldr r5, _08040A8C @ =0x00000507 adds r1, r1, r5 strb r3, [r1] _08040802: ldr r0, _08040A90 @ =0x0200BFF0 str r0, [sp, #0x10] ldrh r0, [r0] cmp r0, #0 beq _080408F0 ldr r1, _08040A88 @ =0x020314E0 ldr r4, [r1] movs r2, #0xfa lsls r2, r2, #2 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x58 subs r0, r0, r1 ldr r4, [sp, #0x10] strh r0, [r4, #2] ldr r5, _08040A88 @ =0x020314E0 ldr r4, [r5] ldr r1, _08040A94 @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 adds r0, #0x60 ldr r3, [sp, #0x10] strh r0, [r3, #4] movs r2, #0 lsls r1, r7, #0x10 ldr r4, _08040A98 @ =0x086B609E mov sl, r4 ldr r5, _08040A9C @ =0x03005000 mov ip, r5 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 mov r8, r0 ldr r7, _08040AA0 @ =0xFFFFFE00 mov sb, r7 _08040864: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r2, ip adds r5, r0, r2 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 ldr r5, [sp, #0x10] movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _08040AA4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldr r7, [sp, #0x10] ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08040864 ldr r3, _08040A88 @ =0x020314E0 ldr r0, [r3] ldr r4, _08040A8C @ =0x00000507 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080408F0 ldr r0, _08040AA8 @ =gMain movs r5, #0xf3 lsls r5, r5, #4 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080408F0: ldr r7, _08040AAC @ =0x0200C0A8 str r7, [sp, #0x10] adds r1, r7, #0 ldrh r0, [r1] cmp r0, #0 beq _080409DC ldr r2, _08040A88 @ =0x020314E0 ldr r4, [r2] movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x58 subs r0, r0, r1 strh r0, [r7, #2] ldr r0, _08040A88 @ =0x020314E0 ldr r4, [r0] ldr r1, _08040A94 @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 adds r0, #0x60 strh r0, [r7, #4] movs r2, #0 ldr r3, [sp, #4] lsls r1, r3, #0x10 ldr r4, _08040AB0 @ =0x086B5ECA mov sl, r4 ldr r5, _08040A9C @ =0x03005000 mov ip, r5 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 ldr r7, _08040AA0 @ =0xFFFFFE00 mov sb, r7 _08040952: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r2, ip adds r5, r0, r2 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 ldr r5, [sp, #0x10] movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _08040AA4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldr r7, [sp, #0x10] ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _08040952 ldr r3, _08040A88 @ =0x020314E0 ldr r0, [r3] ldr r4, _08040A8C @ =0x00000507 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080409DC ldr r0, _08040AA8 @ =gMain ldr r5, _08040AB4 @ =0x00000FE8 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080409DC: ldr r7, _08040AB8 @ =0x0200C160 str r7, [sp, #0x10] adds r1, r7, #0 ldrh r0, [r1] cmp r0, #0 bne _080409EA b _08040B26 _080409EA: ldr r2, _08040A88 @ =0x020314E0 ldr r1, [r2] ldr r3, _08040ABC @ =0x0000051C adds r0, r1, r3 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 adds r4, r7, #0 strh r0, [r4, #2] ldr r1, [r2] ldr r5, _08040AC0 @ =0x0000051E adds r0, r1, r5 adds r1, #0x5a ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r4, #4] movs r2, #0 ldr r7, _08040A9C @ =0x03005000 mov r8, r7 ldr r0, [sp, #8] lsls r1, r0, #0x10 ldr r3, _08040AC4 @ =0x086B5DCE mov sl, r3 mov ip, r8 asrs r1, r1, #0x10 movs r0, #0x2a adds r4, r1, #0 muls r4, r0, r4 mov sb, r4 ldr r4, _08040AA0 @ =0xFFFFFE00 _08040A2A: lsls r2, r2, #0x10 asrs r1, r2, #0x10 lsls r0, r1, #3 adds r0, #8 ldr r5, [sp, #0x10] adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r7, ip adds r5, r0, r7 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 add r0, sl mov r3, sb adds r1, r3, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r0, [r6] lsls r0, r0, #3 adds r5, r0, r7 movs r1, #0 ldrsb r1, [r5, r1] ldr r7, [sp, #0x10] movs r3, #4 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r0, _08040AC8 @ =0xFFFFFED4 str r2, [sp, #0x40] cmp r1, r0 bge _08040ACC ldrh r1, [r5, #2] adds r0, r4, #0 ands r0, r1 strh r0, [r5, #2] ldrh r0, [r6] lsls r0, r0, #3 add r0, r8 movs r1, #0xb4 strb r1, [r0] b _08040AF8 .align 2, 0 _08040A88: .4byte 0x020314E0 _08040A8C: .4byte 0x00000507 _08040A90: .4byte 0x0200BFF0 _08040A94: .4byte 0x000003EA _08040A98: .4byte 0x086B609E _08040A9C: .4byte 0x03005000 _08040AA0: .4byte 0xFFFFFE00 _08040AA4: .4byte 0x000001FF _08040AA8: .4byte gMain _08040AAC: .4byte 0x0200C0A8 _08040AB0: .4byte 0x086B5ECA _08040AB4: .4byte 0x00000FE8 _08040AB8: .4byte 0x0200C160 _08040ABC: .4byte 0x0000051C _08040AC0: .4byte 0x0000051E _08040AC4: .4byte 0x086B5DCE _08040AC8: .4byte 0xFFFFFED4 _08040ACC: ldrh r2, [r5, #2] lsls r1, r2, #0x17 lsrs r1, r1, #0x17 ldr r7, [sp, #0x10] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r7, _08040C70 @ =0x000001FF adds r0, r7, #0 ands r1, r0 adds r0, r4, #0 ands r0, r2 orrs r0, r1 strh r0, [r5, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r3, [r1] adds r0, r0, r3 strb r0, [r1] _08040AF8: ldr r5, [sp, #0x40] movs r7, #0x80 lsls r7, r7, #9 adds r0, r5, r7 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #6 ble _08040A2A ldr r1, _08040C74 @ =0x020314E0 ldr r0, [r1] ldr r2, _08040C78 @ =0x00000507 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08040B26 ldr r0, _08040C7C @ =gMain movs r3, #0x85 lsls r3, r3, #5 adds r0, r0, r3 movs r1, #0 strh r1, [r0] _08040B26: ldr r4, _08040C80 @ =0x0200C388 str r4, [sp, #0x10] ldrh r0, [r4] cmp r0, #0 beq _08040BBC ldr r5, _08040C74 @ =0x020314E0 ldr r4, [r5] ldr r7, _08040C84 @ =0x00000524 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x78 subs r0, r0, r1 ldr r2, [sp, #0x10] strh r0, [r2, #2] ldr r4, [r5] ldr r3, _08040C88 @ =0x00000526 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x80 subs r0, r0, r1 ldr r7, [sp, #0x10] strh r0, [r7, #4] movs r2, #0 ldr r5, _08040C8C @ =0x03005000 ldr r0, _08040C90 @ =0xFFFFFE00 mov r8, r0 _08040B72: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r6, r2] ldr r7, [sp, #0x10] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _08040C70 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x11 ble _08040B72 _08040BBC: ldr r3, _08040C94 @ =0x0200C440 str r3, [sp, #0x10] ldrh r0, [r3] cmp r0, #0 beq _08040C54 ldr r5, _08040C74 @ =0x020314E0 ldr r4, [r5] ldr r7, _08040C84 @ =0x00000524 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08040C98 @ =0xFFFFFE98 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 ldr r3, [sp, #0x10] strh r0, [r3, #2] ldr r4, [r5] ldr r5, _08040C88 @ =0x00000526 adds r0, r4, r5 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x80 subs r0, r0, r1 ldr r1, [sp, #0x10] strh r0, [r1, #4] movs r2, #0 ldr r5, _08040C8C @ =0x03005000 ldr r3, _08040C90 @ =0xFFFFFE00 mov r8, r3 _08040C0C: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r7, [sp, #0x10] adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _08040C70 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x11 ble _08040C0C _08040C54: ldr r0, _08040C74 @ =0x020314E0 ldr r1, [r0] movs r3, #0xe3 lsls r3, r3, #2 adds r0, r1, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0 ble _08040CA0 ldr r5, _08040C9C @ =0x0000132C adds r0, r1, r5 ldr r1, [r0] movs r0, #1 b _08040CA8 .align 2, 0 _08040C70: .4byte 0x000001FF _08040C74: .4byte 0x020314E0 _08040C78: .4byte 0x00000507 _08040C7C: .4byte gMain _08040C80: .4byte 0x0200C388 _08040C84: .4byte 0x00000524 _08040C88: .4byte 0x00000526 _08040C8C: .4byte 0x03005000 _08040C90: .4byte 0xFFFFFE00 _08040C94: .4byte 0x0200C440 _08040C98: .4byte 0xFFFFFE98 _08040C9C: .4byte 0x0000132C _08040CA0: ldr r7, _08040CE4 @ =0x0000132C adds r0, r1, r7 ldr r1, [r0] movs r0, #2 _08040CA8: strb r0, [r1, #1] movs r0, #0 str r0, [sp, #0xc] _08040CAE: ldr r1, [sp, #0xc] lsls r3, r1, #0x10 asrs r2, r3, #0x10 movs r0, #0xb8 adds r1, r2, #0 muls r1, r0, r1 ldr r0, _08040CE8 @ =0x0200BE80 adds r1, r1, r0 str r1, [sp, #0x10] ldr r1, _08040CEC @ =0x020314E0 ldr r0, [r1] ldr r4, _08040CF0 @ =0x00000441 adds r0, r0, r4 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 str r3, [sp, #0x34] cmp r0, #5 bls _08040CD8 b _0804131A _08040CD8: lsls r0, r0, #2 ldr r1, _08040CF4 @ =_08040CF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08040CE4: .4byte 0x0000132C _08040CE8: .4byte 0x0200BE80 _08040CEC: .4byte 0x020314E0 _08040CF0: .4byte 0x00000441 _08040CF4: .4byte _08040CF8 _08040CF8: @ jump table .4byte _08040D10 @ case 0 .4byte _08040D3C @ case 1 .4byte _08040D7C @ case 2 .4byte _0804103C @ case 3 .4byte _0804120C @ case 4 .4byte _080412D8 @ case 5 _08040D10: movs r5, #0 str r5, [sp] ldr r0, _08040D30 @ =0x020314E0 ldr r1, [r0] ldr r7, [sp, #0x34] asrs r0, r7, #0xe adds r1, r1, r0 ldr r2, _08040D34 @ =0x0000045C adds r0, r1, r2 strh r5, [r0] ldr r4, _08040D38 @ =0x0000045E adds r1, r1, r4 mov r5, sp ldrh r5, [r5] strh r5, [r1] b _0804131A .align 2, 0 _08040D30: .4byte 0x020314E0 _08040D34: .4byte 0x0000045C _08040D38: .4byte 0x0000045E _08040D3C: ldr r0, _08040D74 @ =0x020314E0 ldr r6, [r0] ldr r0, [sp, #0x34] asrs r7, r0, #0x10 lsls r1, r7, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r6, r2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #5 bl __udivsi3 adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] cmp r4, #0xd bhi _08040D66 b _08041300 _08040D66: movs r0, #0 strh r0, [r5] ldr r3, _08040D78 @ =0x00000441 adds r0, r6, r3 adds r0, r0, r7 movs r1, #2 b _08041318 .align 2, 0 _08040D74: .4byte 0x020314E0 _08040D78: .4byte 0x00000441 _08040D7C: ldr r4, _08040FE0 @ =0x020314E0 ldr r0, [r4] ldr r5, [sp, #0x34] asrs r1, r5, #0xf movs r7, #0x8b lsls r7, r7, #3 adds r0, r0, r7 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0xf ands r1, r0 movs r0, #4 str r0, [sp] cmp r1, #3 ble _08040DA6 movs r2, #6 str r2, [sp] cmp r1, #9 bgt _08040DA6 movs r3, #5 str r3, [sp] _08040DA6: ldr r4, _08040FE0 @ =0x020314E0 mov sl, r4 ldr r0, [r4] ldr r5, [sp, #0x34] asrs r5, r5, #0x10 mov sb, r5 ldr r7, _08040FE4 @ =0x00000441 adds r0, r0, r7 add r0, sb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08040DC4 b _08040FC0 _08040DC4: ldr r0, _08040FE8 @ =gMain lsls r1, r5, #4 subs r1, r1, r5 lsls r1, r1, #3 ldr r0, [r0, #0x4c] adds r0, r0, r1 movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0xf0 bl __udivsi3 adds r5, r0, #0 lsls r5, r5, #0x10 lsrs r5, r5, #0x10 adds r0, r5, #0 bl sub_C74 ldr r4, [r4] mov r1, sb lsls r1, r1, #2 str r1, [sp, #0x24] adds r4, r4, r1 ldr r2, _08040FEC @ =0x00000464 adds r6, r4, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r3, #0xfa lsls r3, r3, #1 mov r8, r3 mov r1, r8 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 adds r7, #0x1b adds r4, r4, r7 strh r1, [r4] adds r0, r5, #0 bl sub_C24 mov r1, sl ldr r7, [r1] ldr r2, [sp, #0x24] adds r5, r7, r2 ldr r3, _08040FF0 @ =0x00000466 adds r4, r5, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 ldr r4, _08040FF4 @ =0x0000045E mov r8, r4 adds r2, r5, r4 strh r1, [r2] ldr r1, _08040FF8 @ =0x0000132C adds r0, r7, r1 ldr r6, [r0] movs r3, #0x10 ldrsh r4, [r6, r3] ldr r0, _08040FFC @ =0x0000045C adds r5, r5, r0 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa str r2, [sp, #0x38] bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r4, r4, r0 subs r4, #0x10 str r4, [sp, #0x1c] movs r3, #0x12 ldrsh r4, [r6, r3] ldr r2, [sp, #0x38] movs r5, #0 ldrsh r0, [r2, r5] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r4, r4, r0 subs r4, #0x20 str r4, [sp, #0x20] ldr r0, [sp, #0x1c] adds r1, r0, #0 muls r1, r0, r1 adds r0, r4, #0 muls r0, r4, r0 adds r5, r1, r0 ldr r1, _08041000 @ =0x00000383 adds r0, r7, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08040E94 b _08040FC0 _08040E94: movs r2, #0xe2 lsls r2, r2, #2 adds r0, r7, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08040EA6 b _08040FC0 _08040EA6: ldr r3, _08041004 @ =0x00000385 adds r0, r7, r3 movs r4, #0xe1 lsls r4, r4, #2 adds r1, r7, r4 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 blt _08040EBE b _08040FC0 _08040EBE: ldr r1, _08041008 @ =0x00000452 adds r0, r7, r1 ldrh r4, [r0] cmp r4, #0 bne _08040FC0 ldr r6, _0804100C @ =0x0000012B cmp r5, r6 bgt _08040FC0 ldr r2, _08041010 @ =0x00000486 adds r1, r7, r2 movs r0, #6 strh r0, [r1] movs r3, #1 strb r3, [r7, #0x1f] mov r5, sl ldr r1, [r5] mov r7, sb lsls r2, r7, #1 movs r5, #0x8b lsls r5, r5, #3 adds r0, r1, r5 adds r0, r0, r2 strh r4, [r0] ldr r7, _08040FE4 @ =0x00000441 adds r1, r1, r7 add r1, sb movs r0, #3 strb r0, [r1] mov r1, sl ldr r0, [r1] ldr r2, _08041014 @ =0x000005FA adds r0, r0, r2 strb r3, [r0] ldr r5, [r1] ldr r3, [sp, #0x24] adds r4, r5, r3 adds r7, #0x1b adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x10 str r0, [sp, #0x14] add r4, r8 movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x20 str r0, [sp, #0x18] ldr r3, [sp, #0x14] lsls r1, r3, #8 ldr r4, _08040FF8 @ =0x0000132C adds r0, r5, r4 ldr r2, [r0] ldr r0, [r2, #0x34] subs r0, r1, r0 str r0, [sp, #0x1c] ldr r7, [sp, #0x18] lsls r1, r7, #8 ldr r0, [r2, #0x38] subs r0, r1, r0 str r0, [sp, #0x20] ldr r4, _08041018 @ =0x000005AC adds r5, r5, r4 ldr r1, [sp, #0x1c] adds r0, r1, #0 muls r0, r1, r0 ldr r2, [sp, #0x20] adds r1, r2, #0 muls r1, r2, r1 adds r0, r0, r1 str r0, [r5] lsls r0, r0, #2 bl Sqrt mov r3, sl ldr r1, [r3] adds r1, r1, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] ldr r4, [sp, #0x1c] rsbs r0, r4, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r5, [sp, #0x20] lsls r1, r5, #0x10 asrs r1, r1, #0x10 bl ArcTan2 mov r7, sl ldr r2, [r7] movs r3, #0xb6 lsls r3, r3, #3 adds r1, r2, r3 strh r0, [r1] ldr r0, [sp, #0xc] adds r0, #1 ldr r4, _0804101C @ =0x00000505 adds r2, r2, r4 strb r0, [r2] ldr r2, [r7] ldr r5, [sp, #0x24] adds r1, r2, r5 ldr r7, _08040FFC @ =0x0000045C adds r0, r1, r7 ldrh r3, [r0] adds r4, #0x1b adds r0, r2, r4 strh r3, [r0] add r1, r8 ldrh r0, [r1] ldr r5, _08041020 @ =0x00000522 adds r2, r2, r5 strh r0, [r2] adds r0, r6, #0 bl m4aSongNumStart movs r0, #0xd bl sub_11B0 _08040FC0: ldr r0, _08040FE0 @ =0x020314E0 ldr r3, [r0] ldr r7, [sp, #0x34] asrs r4, r7, #0x10 lsls r1, r4, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r3, r2 adds r1, r0, r1 ldrh r2, [r1] ldr r0, _08041024 @ =0x00000347 cmp r2, r0 bhi _08041028 adds r0, r2, #1 strh r0, [r1] b _0804131A .align 2, 0 _08040FE0: .4byte 0x020314E0 _08040FE4: .4byte 0x00000441 _08040FE8: .4byte gMain _08040FEC: .4byte 0x00000464 _08040FF0: .4byte 0x00000466 _08040FF4: .4byte 0x0000045E _08040FF8: .4byte 0x0000132C _08040FFC: .4byte 0x0000045C _08041000: .4byte 0x00000383 _08041004: .4byte 0x00000385 _08041008: .4byte 0x00000452 _0804100C: .4byte 0x0000012B _08041010: .4byte 0x00000486 _08041014: .4byte 0x000005FA _08041018: .4byte 0x000005AC _0804101C: .4byte 0x00000505 _08041020: .4byte 0x00000522 _08041024: .4byte 0x00000347 _08041028: movs r0, #0 strh r0, [r1] ldr r5, _08041038 @ =0x00000441 adds r0, r3, r5 adds r0, r0, r4 movs r1, #5 b _08041318 .align 2, 0 _08041038: .4byte 0x00000441 _0804103C: ldr r7, _080411E4 @ =0x020314E0 ldr r0, [r7] ldr r2, [sp, #0x34] asrs r1, r2, #0xf movs r3, #0x8b lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0xf ands r1, r0 movs r4, #4 str r4, [sp] cmp r1, #3 ble _08041066 movs r5, #6 str r5, [sp] cmp r1, #9 bgt _08041066 movs r7, #5 str r7, [sp] _08041066: ldr r0, _080411E4 @ =0x020314E0 ldr r6, [r0] ldr r1, [sp, #0x34] asrs r1, r1, #0x10 str r1, [sp, #0x28] lsls r2, r1, #1 str r2, [sp, #0x2c] movs r3, #0x8b lsls r3, r3, #3 adds r0, r6, r3 adds r0, r0, r2 ldrh r1, [r0] movs r0, #0x1d subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bgt _0804108E movs r4, #0xa _0804108E: movs r5, #0xb6 lsls r5, r5, #3 mov sl, r5 adds r5, r6, r5 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x1e bl __divsi3 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #6 subs r0, r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 ldrh r1, [r5] subs r1, r1, r0 strh r1, [r5] ldr r7, _080411E8 @ =0x0000132C adds r0, r6, r7 ldr r1, [r0] ldr r2, _080411EC @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] ldr r7, _080411F0 @ =0x000005AC adds r0, r6, r7 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x1e bl __divsi3 mov sb, r0 ldr r0, [sp, #0x28] lsls r4, r0, #2 adds r4, r6, r4 ldr r1, _080411F4 @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x10 str r0, [sp, #0x14] ldr r3, _080411F8 @ =0x0000045E adds r4, r4, r3 movs r7, #0 ldrsh r0, [r4, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x20 str r0, [sp, #0x18] ldrh r0, [r5] bl sub_C74 ldr r1, _080411E4 @ =0x020314E0 ldr r5, [r1] ldr r2, _080411E8 @ =0x0000132C adds r1, r5, r2 ldr r6, [r1] ldr r3, [sp, #0x14] lsls r4, r3, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r7, sb muls r7, r0, r7 adds r0, r7, #0 ldr r1, _080411FC @ =0x00004E20 mov r8, r1 bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] add r5, sl ldrh r0, [r5] bl sub_C24 ldr r2, _080411E4 @ =0x020314E0 ldr r7, [r2] ldr r3, _080411E8 @ =0x0000132C adds r5, r7, r3 ldr r6, [r5] ldr r1, [sp, #0x18] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sb muls r2, r0, r2 adds r0, r2, #0 mov r1, r8 bl __divsi3 subs r4, r4, r0 str r4, [r6, #0x38] ldr r4, [r5] movs r3, #0x30 ldrsh r0, [r4, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r5] movs r5, #0x32 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] movs r0, #0xe3 lsls r0, r0, #2 adds r2, r7, r0 movs r3, #0 ldrsh r1, [r2, r3] ldr r0, _08041200 @ =0x00000707 cmp r1, r0 bgt _0804119C ldr r4, _08041204 @ =0x0000038A adds r0, r7, r4 movs r5, #0 strh r5, [r0] ldrh r0, [r2] adds r0, #0x20 strh r0, [r2] _0804119C: ldr r7, _080411E4 @ =0x020314E0 ldr r2, [r7] movs r1, #0x8b lsls r1, r1, #3 adds r0, r2, r1 ldr r3, [sp, #0x2c] adds r1, r0, r3 ldrh r0, [r1] cmp r0, #0xb3 bhi _080411B2 b _080412BE _080411B2: movs r4, #0 strh r4, [r1] ldr r5, _08041208 @ =0x00000441 adds r0, r2, r5 ldr r7, [sp, #0x28] adds r0, r0, r7 movs r1, #4 strb r1, [r0] ldr r0, _080411E4 @ =0x020314E0 ldr r2, [r0] ldr r1, _080411F0 @ =0x000005AC adds r3, r2, r1 ldr r0, [r3] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 str r0, [r3] ldr r3, _080411E8 @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] movs r0, #0xa5 lsls r0, r0, #8 str r0, [r1, #0x38] b _0804131A .align 2, 0 _080411E4: .4byte 0x020314E0 _080411E8: .4byte 0x0000132C _080411EC: .4byte 0xFFFFE000 _080411F0: .4byte 0x000005AC _080411F4: .4byte 0x0000045C _080411F8: .4byte 0x0000045E _080411FC: .4byte 0x00004E20 _08041200: .4byte 0x00000707 _08041204: .4byte 0x0000038A _08041208: .4byte 0x00000441 _0804120C: ldr r4, _080412C4 @ =0x020314E0 mov sl, r4 ldr r0, [r4] ldr r5, [sp, #0x34] asrs r5, r5, #0x10 str r5, [sp, #0x30] lsls r7, r5, #1 movs r1, #0x8b lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0x81 bhi _0804131A cmp r0, #0xa bne _08041234 movs r0, #0x96 lsls r0, r0, #1 bl m4aSongNumStart _08041234: mov r2, sl ldr r6, [r2] ldr r4, _080412C8 @ =0x0000038A adds r3, r6, r4 ldrh r1, [r3] subs r1, #1 movs r5, #0 mov sb, r5 movs r0, #0 mov r8, r0 strh r1, [r3] adds r4, #2 adds r2, r6, r4 ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bgt _080412B0 mov r5, r8 strh r5, [r2] ldr r4, _080412CC @ =0x0000132C adds r0, r6, r4 ldr r5, [r0] movs r1, #0 ldrsh r0, [r3, r1] lsls r0, r0, #7 movs r1, #0xa bl __divsi3 rsbs r0, r0, #0 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r5, #0x32] mov r2, sb strb r2, [r6, #0x1f] mov r3, sl ldr r1, [r3] movs r5, #0x8b lsls r5, r5, #3 adds r0, r1, r5 adds r0, r0, r7 mov r2, r8 strh r2, [r0] adds r4, r1, r4 ldr r0, [r4] strh r2, [r0, #0x30] ldr r3, _080412D0 @ =0x00000441 adds r1, r1, r3 ldr r4, [sp, #0x30] adds r1, r1, r4 mov r5, sb strb r5, [r1] mov r1, sl ldr r0, [r1] ldr r2, _080412D4 @ =0x000005FA adds r0, r0, r2 strb r5, [r0] movs r0, #8 bl sub_11B0 _080412B0: mov r3, sl ldr r1, [r3] movs r4, #0x8b lsls r4, r4, #3 adds r1, r1, r4 adds r1, r1, r7 ldrh r0, [r1] _080412BE: adds r0, #1 strh r0, [r1] b _0804131A .align 2, 0 _080412C4: .4byte 0x020314E0 _080412C8: .4byte 0x0000038A _080412CC: .4byte 0x0000132C _080412D0: .4byte 0x00000441 _080412D4: .4byte 0x000005FA _080412D8: ldr r0, _08041308 @ =0x020314E0 ldr r6, [r0] ldr r5, [sp, #0x34] asrs r7, r5, #0x10 lsls r1, r7, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r6, r2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #6 bl __udivsi3 adds r0, #7 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] cmp r4, #0xa bhi _0804130C _08041300: adds r0, r4, #1 strh r0, [r5] b _0804131A .align 2, 0 _08041308: .4byte 0x020314E0 _0804130C: movs r1, #0 movs r0, #0 strh r0, [r5] ldr r3, _08041540 @ =0x00000441 adds r0, r6, r3 adds r0, r0, r7 _08041318: strb r1, [r0] _0804131A: ldr r4, [sp, #0x10] ldrh r0, [r4] cmp r0, #0 beq _08041400 ldr r2, _08041544 @ =0x040000D4 ldr r5, [sp] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08041548 @ =0x084A6EEC adds r0, r0, r1 str r0, [r2] ldr r0, _0804154C @ =0x06011EA0 str r0, [r2, #4] ldr r0, _08041550 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08041554 @ =0x020314E0 ldr r5, [r0] ldr r7, [sp, #0x34] asrs r4, r7, #0xe adds r4, r5, r4 ldr r1, _08041558 @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 ldr r3, [sp, #0x10] strh r0, [r3, #2] ldr r7, _0804155C @ =0x0000045E adds r4, r4, r7 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r5, #0x5a ldrh r1, [r5] subs r0, r0, r1 ldr r2, [sp, #0x10] strh r0, [r2, #4] movs r2, #0 ldr r5, _08041560 @ =0x03005000 ldr r3, _08041564 @ =0xFFFFFE00 mov r8, r3 _08041384: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r4, [sp, #0x10] adds r6, r4, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 movs r7, #2 ldrsh r1, [r6, r7] movs r7, #2 ldrsh r0, [r4, r7] adds r1, r1, r0 ldr r4, _08041568 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r7, [sp, #0x10] ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08041384 ldr r1, _08041554 @ =0x020314E0 ldr r0, [r1] ldr r3, [sp, #0x34] asrs r2, r3, #0x10 ldr r4, _08041540 @ =0x00000441 adds r0, r0, r4 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080413E6 strh r0, [r7] _080413E6: ldr r0, [r1] ldr r5, _0804156C @ =0x00000505 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08041400 subs r0, #1 cmp r2, r0 bne _08041400 movs r0, #0 ldr r7, [sp, #0x10] strh r0, [r7] _08041400: ldr r1, [sp, #0x34] movs r2, #0x80 lsls r2, r2, #9 adds r0, r1, r2 lsrs r3, r0, #0x10 str r3, [sp, #0xc] asrs r0, r0, #0x10 cmp r0, #1 bgt _08041414 b _08040CAE _08041414: bl sub_417F8 ldr r4, _08041570 @ =0x0200C218 str r4, [sp, #0x10] ldrh r0, [r4] cmp r0, #0 beq _0804150E ldr r5, _08041554 @ =0x020314E0 ldr r4, [r5] movs r7, #0xa4 lsls r7, r7, #3 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 ldr r2, [sp, #0x10] strh r0, [r2, #2] ldr r4, [r5] ldr r3, _08041574 @ =0x00000522 adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 ldr r1, [sp, #0x10] strh r0, [r1, #4] ldr r0, [r5] ldr r2, _08041578 @ =0x0000050E adds r0, r0, r2 ldrh r0, [r0] movs r1, #5 bl __udivsi3 movs r2, #0 ldr r3, _0804157C @ =0x086B5CC0 mov sl, r3 ldr r4, _08041560 @ =0x03005000 mov ip, r4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #1 mov r8, r1 ldr r5, _08041564 @ =0xFFFFFE00 mov sb, r5 _08041482: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp, #0x10] adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r1, ip adds r5, r0, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl mov r2, r8 adds r1, r2, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _08041568 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #4 ble _08041482 ldr r0, _08041554 @ =0x020314E0 ldr r0, [r0] ldr r5, _08041578 @ =0x0000050E adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0x18 bhi _0804150E adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x19 bne _0804150E movs r0, #0 ldr r7, [sp, #0x10] strh r0, [r7] _0804150E: ldr r1, _08041554 @ =0x020314E0 ldr r0, [r1] ldr r3, _0804156C @ =0x00000505 adds r2, r0, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08041530 movs r0, #0 strb r0, [r2] ldr r1, [r1] ldr r4, _08041578 @ =0x0000050E adds r1, r1, r4 strh r0, [r1] movs r0, #1 ldr r5, [sp, #0x10] strh r0, [r5] _08041530: add sp, #0x44 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 _08041540: .4byte 0x00000441 _08041544: .4byte 0x040000D4 _08041548: .4byte 0x084A6EEC _0804154C: .4byte 0x06011EA0 _08041550: .4byte 0x80000140 _08041554: .4byte 0x020314E0 _08041558: .4byte 0x0000045C _0804155C: .4byte 0x0000045E _08041560: .4byte 0x03005000 _08041564: .4byte 0xFFFFFE00 _08041568: .4byte 0x000001FF _0804156C: .4byte 0x00000505 _08041570: .4byte 0x0200C218 _08041574: .4byte 0x00000522 _08041578: .4byte 0x0000050E _0804157C: .4byte 0x086B5CC0 thumb_func_start sub_41580 sub_41580: @ 0x08041580 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080415F4 @ =0x0200CD98 mov sb, r0 ldrh r0, [r0] cmp r0, #0 bne _08041596 b _080417D0 _08041596: ldr r1, _080415F8 @ =0x020314E0 ldr r5, [r1] ldr r2, _080415FC @ =0x00000486 adds r6, r5, r2 ldrh r7, [r6] subs r0, r7, #1 strh r0, [r6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov sl, r1 cmp r0, #5 bgt _080415B0 b _080416C2 _080415B0: ldr r4, _08041600 @ =0x08137D48 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0x21 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r4 ldrh r0, [r0] mov r8, r0 ldr r1, _08041604 @ =0x0000047F adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08041658 cmp r0, #7 bne _0804160C ldr r2, _08041608 @ =0x0000132C adds r0, r5, r2 ldr r1, [r0] ldr r0, [r1, #0x34] movs r4, #0x80 lsls r4, r4, #1 adds r0, r0, r4 b _0804163A .align 2, 0 _080415F4: .4byte 0x0200CD98 _080415F8: .4byte 0x020314E0 _080415FC: .4byte 0x00000486 _08041600: .4byte 0x08137D48 _08041604: .4byte 0x0000047F _08041608: .4byte 0x0000132C _0804160C: cmp r0, #4 bne _08041628 ldr r7, _08041620 @ =0x0000132C adds r0, r5, r7 ldr r1, [r0] ldr r0, [r1, #0x34] ldr r2, _08041624 @ =0xFFFFFE00 adds r0, r0, r2 b _0804163A .align 2, 0 _08041620: .4byte 0x0000132C _08041624: .4byte 0xFFFFFE00 _08041628: cmp r0, #1 bne _0804163C ldr r4, _0804164C @ =0x0000132C adds r0, r5, r4 ldr r1, [r0] ldr r0, [r1, #0x34] movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 _0804163A: str r0, [r1, #0x34] _0804163C: ldr r0, _08041650 @ =0x020314E0 ldr r1, [r0] ldr r7, _08041654 @ =0x0000047F adds r1, r1, r7 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _08041682 .align 2, 0 _0804164C: .4byte 0x0000132C _08041650: .4byte 0x020314E0 _08041654: .4byte 0x0000047F _08041658: ldrh r0, [r5, #4] cmp r0, #0 beq _08041682 adds r0, r7, #0 subs r0, #0x1f strh r0, [r6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _08041670 movs r0, #5 strh r0, [r6] _08041670: mov r2, sl ldr r0, [r2] adds r0, r0, r1 movs r1, #7 strb r1, [r0] movs r0, #0x95 lsls r0, r0, #1 bl m4aSongNumStart _08041682: ldr r0, _080416A8 @ =0x020314E0 ldr r5, [r0] movs r7, #0x90 lsls r7, r7, #3 adds r4, r5, r7 ldrh r3, [r4] mov sl, r0 cmp r3, #0 beq _080416B6 subs r0, r3, #1 strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x34 bls _080416AC movs r0, #8 mov r8, r0 b _080416C6 .align 2, 0 _080416A8: .4byte 0x020314E0 _080416AC: cmp r0, #0x2a bls _080416C6 movs r1, #9 mov r8, r1 b _080416C6 _080416B6: ldrh r0, [r5, #4] cmp r0, #0 beq _080416C6 movs r0, #0x3c strh r0, [r4] b _080416C6 _080416C2: movs r2, #8 mov r8, r2 _080416C6: mov r4, sl ldr r1, [r4] ldr r5, _080416F4 @ =0x00000486 adds r0, r1, r5 movs r7, #0 ldrsh r3, [r0, r7] cmp r3, #0 bne _08041704 ldr r0, _080416F8 @ =gMain ldr r1, _080416FC @ =0x00001CD8 adds r0, r0, r1 movs r2, #0 strh r3, [r0] ldr r0, [r4] movs r4, #0x90 lsls r4, r4, #3 adds r1, r0, r4 strh r3, [r1] ldr r5, _08041700 @ =0x00000383 adds r0, r0, r5 strb r2, [r0] b _08041722 .align 2, 0 _080416F4: .4byte 0x00000486 _080416F8: .4byte gMain _080416FC: .4byte 0x00001CD8 _08041700: .4byte 0x00000383 _08041704: ldr r7, _080417E0 @ =0x00000383 adds r1, r1, r7 movs r2, #0 movs r0, #1 strb r0, [r1] mov r1, sl ldr r0, [r1] ldr r4, _080417E4 @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] _08041722: mov r5, sl ldr r2, [r5] ldr r7, _080417E4 @ =0x0000132C adds r3, r2, r7 ldr r0, [r3] adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0, #0x10] ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 mov r1, sb strh r0, [r1, #2] ldr r0, [r3] adds r2, #0x5a ldrh r0, [r0, #0x12] ldrh r1, [r2] subs r0, r0, r1 subs r0, #8 mov r2, sb strh r0, [r2, #4] movs r2, #0 mov r4, r8 lsls r1, r4, #0x10 ldr r5, _080417E8 @ =0x086B5D56 mov sl, r5 ldr r6, _080417EC @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r7, _080417F0 @ =0xFFFFFE00 mov r8, r7 _08041766: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 mov r5, sb movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _080417F4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 ldrh r7, [r2, #2] ands r0, r7 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08041766 _080417D0: 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 _080417E0: .4byte 0x00000383 _080417E4: .4byte 0x0000132C _080417E8: .4byte 0x086B5D56 _080417EC: .4byte 0x03005000 _080417F0: .4byte 0xFFFFFE00 _080417F4: .4byte 0x000001FF thumb_func_start sub_417F8 sub_417F8: @ 0x080417F8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _08041BD0 @ =0x0200C4F8 ldrh r0, [r6] ldr r1, _08041BD4 @ =0x020314E0 mov sl, r1 cmp r0, #0 bne _08041810 b _08041922 _08041810: ldr r4, [r1] movs r2, #0xa5 lsls r2, r2, #3 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r5, sl ldr r4, [r5] ldr r1, _08041BD8 @ =0x0000052A adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r3, #0xb8 adds r3, r3, r6 mov sb, r3 ldr r7, _08041BDC @ =0x03005000 ldr r4, _08041BE0 @ =0xFFFFFE00 mov r8, r4 _08041856: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041856 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041BDC @ =0x03005000 ldr r1, _08041BE0 @ =0xFFFFFE00 mov r8, r1 _080418DE: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xd ble _080418DE _08041922: ldr r6, _08041BE8 @ =0x0200C668 ldrh r0, [r6] cmp r0, #0 bne _0804192C b _08041A40 _0804192C: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r1, #0xb8 adds r1, r1, r6 mov sb, r1 ldr r7, _08041BDC @ =0x03005000 ldr r2, _08041BE0 @ =0xFFFFFE00 mov r8, r2 _08041974: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041974 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041BDC @ =0x03005000 ldr r1, _08041BE0 @ =0xFFFFFE00 mov r8, r1 _080419FC: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _080419FC _08041A40: ldr r6, _08041BEC @ =0x0200C7D8 ldrh r0, [r6] cmp r0, #0 bne _08041A4A b _08041B5E _08041A4A: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r1, #0xb8 adds r1, r1, r6 mov sb, r1 ldr r7, _08041BDC @ =0x03005000 ldr r2, _08041BE0 @ =0xFFFFFE00 mov r8, r2 _08041A92: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041A92 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041BDC @ =0x03005000 ldr r1, _08041BE0 @ =0xFFFFFE00 mov r8, r1 _08041B1A: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _08041B1A _08041B5E: ldr r6, _08041BF0 @ =0x0200C948 ldrh r0, [r6] cmp r0, #0 bne _08041B68 b _08041CB0 _08041B68: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041BF4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r2, #0xb8 adds r2, r2, r6 mov sb, r2 ldr r7, _08041BDC @ =0x03005000 ldr r3, _08041BE0 @ =0xFFFFFE00 mov r8, r3 _08041BB4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] b _08041BF8 .align 2, 0 _08041BD0: .4byte 0x0200C4F8 _08041BD4: .4byte 0x020314E0 _08041BD8: .4byte 0x0000052A _08041BDC: .4byte 0x03005000 _08041BE0: .4byte 0xFFFFFE00 _08041BE4: .4byte 0x000001FF _08041BE8: .4byte 0x0200C668 _08041BEC: .4byte 0x0200C7D8 _08041BF0: .4byte 0x0200C948 _08041BF4: .4byte 0xFFFFFE90 _08041BF8: adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041BB4 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041FB8 @ =0x03005000 ldr r2, _08041FBC @ =0xFFFFFE00 mov r8, r2 _08041C6C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xd ble _08041C6C _08041CB0: ldr r6, _08041FC0 @ =0x0200CAB8 ldrh r0, [r6] cmp r0, #0 bne _08041CBA b _08041DD6 _08041CBA: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r2, #0xb8 adds r2, r2, r6 mov sb, r2 ldr r7, _08041FB8 @ =0x03005000 ldr r3, _08041FBC @ =0xFFFFFE00 mov r8, r3 _08041D06: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041D06 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041FB8 @ =0x03005000 ldr r2, _08041FBC @ =0xFFFFFE00 mov r8, r2 _08041D92: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _08041D92 _08041DD6: ldr r6, _08041FC4 @ =0x0200CC28 ldrh r0, [r6] cmp r0, #0 bne _08041DE0 b _08041EFC _08041DE0: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r2, #0xb8 adds r2, r2, r6 mov sb, r2 ldr r7, _08041FB8 @ =0x03005000 ldr r3, _08041FBC @ =0xFFFFFE00 mov r8, r3 _08041E2C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041E2C mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041FB8 @ =0x03005000 ldr r2, _08041FBC @ =0xFFFFFE00 mov r8, r2 _08041EB8: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _08041EB8 _08041EFC: ldr r3, _08041FC8 @ =gMain ldr r4, _08041FCC @ =0x000012C8 adds r0, r3, r4 ldrh r1, [r0] cmp r1, #0 bne _08041F0A b _08042014 _08041F0A: ldr r0, _08041FD0 @ =0x020314E0 ldr r2, [r0] ldr r5, _08041FD4 @ =0x00000514 adds r0, r2, r5 ldrh r0, [r0] cmp r0, #6 bne _08041F7A ldr r1, _08041FD8 @ =0x00001438 adds r0, r3, r1 movs r1, #0 strh r1, [r0] ldr r4, _08041FDC @ =0x000014F0 adds r0, r3, r4 strh r1, [r0] ldr r5, _08041FE0 @ =0x000015A8 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xb3 lsls r4, r4, #5 adds r0, r3, r4 strh r1, [r0] ldr r5, _08041FE4 @ =0x00000441 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08041F7A ldr r1, _08041FE8 @ =0x00000442 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08041F7A movs r3, #0xe2 lsls r3, r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08041F7A ldr r4, _08041FEC @ =0x0000132C adds r0, r2, r4 ldr r1, [r0] movs r5, #0xfa lsls r5, r5, #1 adds r0, r5, #0 ldrh r2, [r1, #0x30] adds r0, r0, r2 strh r0, [r1, #0x30] movs r0, #0xd bl sub_11B0 _08041F7A: ldr r4, _08041FD0 @ =0x020314E0 ldr r0, [r4] ldr r3, _08041FD4 @ =0x00000514 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xb bne _08041FA6 ldr r1, _08041FC8 @ =gMain ldr r5, _08041FE0 @ =0x000015A8 adds r0, r1, r5 movs r2, #0 strh r2, [r0] adds r5, #0xb8 adds r0, r1, r5 strh r2, [r0] ldr r2, _08041FF0 @ =0x00001718 adds r0, r1, r2 movs r2, #1 strh r2, [r0] ldr r5, _08041FF4 @ =0x000017D0 adds r1, r1, r5 strh r2, [r1] _08041FA6: ldr r0, [r4] adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xe b _08041FF8 .align 2, 0 _08041FB0: .4byte 0x000001FF _08041FB4: .4byte 0xFFFFFE90 _08041FB8: .4byte 0x03005000 _08041FBC: .4byte 0xFFFFFE00 _08041FC0: .4byte 0x0200CAB8 _08041FC4: .4byte 0x0200CC28 _08041FC8: .4byte gMain _08041FCC: .4byte 0x000012C8 _08041FD0: .4byte 0x020314E0 _08041FD4: .4byte 0x00000514 _08041FD8: .4byte 0x00001438 _08041FDC: .4byte 0x000014F0 _08041FE0: .4byte 0x000015A8 _08041FE4: .4byte 0x00000441 _08041FE8: .4byte 0x00000442 _08041FEC: .4byte 0x0000132C _08041FF0: .4byte 0x00001718 _08041FF4: .4byte 0x000017D0 _08041FF8: bne _080420CC ldr r0, _08042008 @ =gMain ldr r2, _0804200C @ =0x00001718 adds r1, r0, r2 movs r2, #0 strh r2, [r1] ldr r3, _08042010 @ =0x000017D0 b _080420C8 .align 2, 0 _08042008: .4byte gMain _0804200C: .4byte 0x00001718 _08042010: .4byte 0x000017D0 _08042014: ldr r0, _08042274 @ =0x020314E0 ldr r2, [r0] ldr r4, _08042278 @ =0x00000514 adds r0, r2, r4 ldrh r0, [r0] cmp r0, #6 bne _08042082 ldr r5, _0804227C @ =gMain ldr r3, _08042280 @ =0x00001888 adds r0, r5, r3 strh r1, [r0] movs r4, #0xca lsls r4, r4, #5 adds r0, r5, r4 strh r1, [r0] ldr r1, _08042284 @ =0x000019F8 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r3, _08042288 @ =0x00001AB0 adds r0, r5, r3 strh r1, [r0] ldr r4, _0804228C @ =0x00000441 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08042082 ldr r5, _08042290 @ =0x00000442 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08042082 movs r1, #0xe2 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08042082 ldr r3, _08042294 @ =0x0000132C adds r0, r2, r3 ldr r1, [r0] ldr r4, _08042298 @ =0xFFFFFE0C adds r0, r4, #0 ldrh r5, [r1, #0x30] adds r0, r0, r5 strh r0, [r1, #0x30] movs r0, #0xd bl sub_11B0 _08042082: ldr r4, _08042274 @ =0x020314E0 ldr r0, [r4] ldr r3, _08042278 @ =0x00000514 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xb bne _080420B0 ldr r1, _0804227C @ =gMain ldr r2, _08042284 @ =0x000019F8 adds r0, r1, r2 movs r2, #0 strh r2, [r0] ldr r5, _08042288 @ =0x00001AB0 adds r0, r1, r5 strh r2, [r0] ldr r2, _0804229C @ =0x00001B68 adds r0, r1, r2 movs r2, #1 strh r2, [r0] movs r5, #0xe1 lsls r5, r5, #5 adds r1, r1, r5 strh r2, [r1] _080420B0: ldr r0, [r4] adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xe bne _080420CC ldr r0, _0804227C @ =gMain ldr r2, _0804229C @ =0x00001B68 adds r1, r0, r2 movs r2, #0 strh r2, [r1] movs r3, #0xe1 lsls r3, r3, #5 _080420C8: adds r0, r0, r3 strh r2, [r0] _080420CC: ldr r4, _08042274 @ =0x020314E0 mov sb, r4 ldr r1, [r4] ldr r5, _08042278 @ =0x00000514 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xa bne _08042184 ldr r0, _0804228C @ =0x00000441 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08042184 movs r3, #0x8b lsls r3, r3, #3 adds r1, r1, r3 movs r0, #0 strh r0, [r1] movs r1, #1 strb r1, [r2] ldr r4, _0804227C @ =gMain movs r5, #0xdc lsls r5, r5, #4 adds r0, r4, r5 strh r1, [r0] bl sub_C00 adds r5, r0, #0 movs r0, #7 ands r5, r0 ldr r0, [r4, #0x4c] movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0xf0 bl __udivsi3 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 mov r0, sb ldr r2, [r0] ldr r0, _080422A0 @ =0x086AF744 lsls r1, r5, #2 adds r1, r1, r0 ldrh r3, [r1] ldr r5, _080422A4 @ =0x00000464 adds r0, r2, r5 strh r3, [r0] ldrh r0, [r1, #2] ldr r6, _080422A8 @ =0x00000466 adds r2, r2, r6 strh r0, [r2] adds r0, r7, #0 bl sub_C74 mov r1, sb ldr r4, [r1] adds r5, r4, r5 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0xfa lsls r2, r2, #1 mov r8, r2 mov r1, r8 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 ldr r3, _080422AC @ =0x0000045C adds r4, r4, r3 strh r1, [r4] adds r0, r7, #0 bl sub_C24 mov r5, sb ldr r4, [r5] adds r6, r4, r6 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 ldr r0, _080422B0 @ =0x0000045E adds r4, r4, r0 strh r1, [r4] ldr r0, _080422B4 @ =0x0000012D bl m4aSongNumStart _08042184: ldr r1, _08042274 @ =0x020314E0 mov sb, r1 ldr r1, [r1] ldr r2, _08042278 @ =0x00000514 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x10 bne _08042240 ldr r3, _08042290 @ =0x00000442 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08042240 ldr r4, _080422B8 @ =0x0000045A adds r1, r1, r4 movs r0, #0 strh r0, [r1] movs r1, #1 strb r1, [r2] ldr r4, _0804227C @ =gMain ldr r5, _080422BC @ =0x00000E78 adds r0, r4, r5 strh r1, [r0] bl sub_C00 movs r1, #7 ands r1, r0 adds r1, #8 adds r5, r1, #0 ldr r0, [r4, #0x4c] adds r0, #0x78 movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0xf0 bl __udivsi3 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 mov r0, sb ldr r2, [r0] ldr r0, _080422A0 @ =0x086AF744 lsls r1, r5, #2 adds r1, r1, r0 ldrh r3, [r1] movs r5, #0x8d lsls r5, r5, #3 adds r0, r2, r5 strh r3, [r0] ldrh r0, [r1, #2] ldr r6, _080422C0 @ =0x0000046A adds r2, r2, r6 strh r0, [r2] adds r0, r7, #0 bl sub_C74 mov r1, sb ldr r4, [r1] adds r5, r4, r5 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0xfa lsls r2, r2, #1 mov r8, r2 mov r1, r8 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 movs r3, #0x8c lsls r3, r3, #3 adds r4, r4, r3 strh r1, [r4] adds r0, r7, #0 bl sub_C24 mov r5, sb ldr r4, [r5] adds r6, r4, r6 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 ldr r0, _080422C4 @ =0x00000462 adds r4, r4, r0 strh r1, [r4] ldr r0, _080422B4 @ =0x0000012D bl m4aSongNumStart _08042240: ldr r0, _08042274 @ =0x020314E0 ldr r1, [r0] movs r3, #0x99 lsls r3, r3, #3 adds r2, r1, r3 ldrb r3, [r2] movs r1, #0 ldrsb r1, [r2, r1] mov sl, r0 cmp r1, #0 bgt _08042258 b _0804235E _08042258: subs r0, r3, #1 strb r0, [r2] mov r4, sl ldr r5, [r4] movs r0, #0x99 lsls r0, r0, #3 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb bgt _080422CC ldr r4, _080422C8 @ =0x086AEF28 b _0804232E .align 2, 0 _08042274: .4byte 0x020314E0 _08042278: .4byte 0x00000514 _0804227C: .4byte gMain _08042280: .4byte 0x00001888 _08042284: .4byte 0x000019F8 _08042288: .4byte 0x00001AB0 _0804228C: .4byte 0x00000441 _08042290: .4byte 0x00000442 _08042294: .4byte 0x0000132C _08042298: .4byte 0xFFFFFE0C _0804229C: .4byte 0x00001B68 _080422A0: .4byte 0x086AF744 _080422A4: .4byte 0x00000464 _080422A8: .4byte 0x00000466 _080422AC: .4byte 0x0000045C _080422B0: .4byte 0x0000045E _080422B4: .4byte 0x0000012D _080422B8: .4byte 0x0000045A _080422BC: .4byte 0x00000E78 _080422C0: .4byte 0x0000046A _080422C4: .4byte 0x00000462 _080422C8: .4byte 0x086AEF28 _080422CC: cmp r0, #0x17 ble _08042300 cmp r0, #0x23 bgt _080422FC ldr r4, _080422F8 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #2 movs r2, #0xab lsls r2, r2, #2 adds r1, r5, r2 strh r0, [r1] b _08042344 .align 2, 0 _080422F8: .4byte 0x086AEF28 _080422FC: cmp r0, #0x2f bgt _08042328 _08042300: ldr r4, _08042324 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 movs r4, #0xab lsls r4, r4, #2 adds r1, r5, r4 strh r0, [r1] b _08042344 .align 2, 0 _08042324: .4byte 0x086AEF28 _08042328: ldr r4, _08042394 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] _0804232E: movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xab lsls r2, r2, #2 adds r0, r5, r2 strh r1, [r0] _08042344: mov r3, sl ldr r2, [r3] movs r4, #0x99 lsls r4, r4, #3 adds r0, r2, r4 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0804235E movs r5, #0xab lsls r5, r5, #2 adds r0, r2, r5 strh r1, [r0] _0804235E: mov r0, sl ldr r2, [r0] movs r3, #0xa1 lsls r3, r3, #3 adds r1, r2, r3 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 ble _080423C2 adds r1, r0, #0 cmp r1, #0 bge _08042378 adds r0, r1, #3 _08042378: asrs r0, r0, #2 lsls r0, r0, #2 subs r0, r1, r0 lsls r0, r0, #0x10 asrs r1, r0, #0x10 lsrs r0, r0, #0x1f adds r1, r1, r0 asrs r1, r1, #1 cmp r1, #0 beq _0804239C ldr r0, _08042398 @ =0x000002AA adds r1, r2, r0 movs r0, #2 b _080423A2 .align 2, 0 _08042394: .4byte 0x086AEF28 _08042398: .4byte 0x000002AA _0804239C: ldr r3, _080423D0 @ =0x000002AA adds r1, r2, r3 ldr r0, _080423D4 @ =0x0000FFFE _080423A2: strh r0, [r1] mov r5, sl ldr r4, [r5] movs r0, #0xa1 lsls r0, r0, #3 adds r1, r4, r0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 bne _080423C2 ldr r2, _080423D0 @ =0x000002AA adds r0, r4, r2 strh r1, [r0] _080423C2: 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 _080423D0: .4byte 0x000002AA _080423D4: .4byte 0x0000FFFE thumb_func_start sub_423D8 sub_423D8: @ 0x080423D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0804267C @ =0x020314E0 ldr r3, [r0] ldr r2, _08042680 @ =0x00000506 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov r8, r0 cmp r1, #0 beq _080423F8 b _08042AB2 _080423F8: ldr r4, _08042684 @ =0x00000516 adds r1, r3, r4 ldrh r2, [r1] movs r0, #0xac lsls r0, r0, #2 cmp r2, r0 bls _08042408 b _08042AB2 _08042408: subs r0, #0x78 cmp r2, r0 bhi _08042484 adds r0, r2, #0 movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _08042428 ldr r0, _08042688 @ =0x02032F20 ldr r1, _0804268C @ =0x0000FFFF movs r2, #0x80 bl m4aMPlayVolumeControl _08042428: mov r3, r8 ldr r0, [r3] adds r0, r0, r4 ldrh r0, [r0] movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x5a bne _08042446 ldr r0, _08042688 @ =0x02032F20 movs r1, #5 bl m4aMPlayFadeOutTemporarily _08042446: mov r1, r8 ldr r0, [r1] adds r0, r0, r4 ldrh r0, [r0] movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bne _08042464 movs r0, #0x97 lsls r0, r0, #1 bl m4aSongNumStart _08042464: mov r2, r8 ldr r0, [r2] adds r0, r0, r4 ldrh r0, [r0] movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bne _08042484 ldr r0, _08042688 @ =0x02032F20 ldr r1, _0804268C @ =0x0000FFFF movs r2, #0x33 bl m4aMPlayVolumeControl _08042484: ldr r2, _0804267C @ =0x020314E0 ldr r5, [r2] ldr r4, _08042684 @ =0x00000516 adds r3, r5, r4 ldrh r1, [r3] ldr r0, _08042690 @ =0x000001FF mov r8, r2 cmp r1, r0 bls _080424AA adds r0, r1, #0 ldr r3, _08042694 @ =0xFFFFFE00 adds r0, r0, r3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 subs r0, #0x58 adds r1, r5, #0 adds r1, #0xe6 strh r0, [r1] _080424AA: mov r0, r8 ldr r2, [r0] adds r0, r2, r4 ldrh r1, [r0] movs r0, #0x9c lsls r0, r0, #2 cmp r1, r0 bne _080424C4 movs r3, #0xa5 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #1 strb r0, [r1] _080424C4: mov r0, r8 ldr r3, [r0] adds r2, r3, r4 ldrh r1, [r2] movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 bhi _080424E0 adds r0, r1, #0 lsrs r0, r0, #1 movs r2, #0xa3 lsls r2, r2, #3 adds r1, r3, r2 strh r0, [r1] _080424E0: mov r3, r8 ldr r2, [r3] adds r0, r2, r4 ldrh r1, [r0] movs r0, #0xac lsls r0, r0, #2 cmp r1, r0 bne _080424F8 ldr r0, _08042680 @ =0x00000506 adds r1, r2, r0 movs r0, #1 strb r0, [r1] _080424F8: mov r1, r8 ldr r2, [r1] adds r0, r2, r4 ldrh r1, [r0] adds r1, #1 strh r1, [r0] lsls r1, r1, #0x10 movs r0, #0x8e lsls r0, r0, #0x12 cmp r1, r0 bhi _0804251C ldr r3, _08042698 @ =0x00000392 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #5 bls _0804251C subs r0, #1 strh r0, [r1] _0804251C: mov r4, r8 ldr r2, [r4] ldr r3, _08042684 @ =0x00000516 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #1 bne _08042562 movs r0, #0xf1 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] ldr r1, _0804269C @ =0x000003C6 adds r0, r2, r1 adds r1, #0xea strh r1, [r0] movs r4, #0xf2 lsls r4, r4, #2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080426A0 @ =0x000003CA adds r1, r2, r0 movs r0, #0xc8 lsls r0, r0, #1 strh r0, [r1] adds r4, #4 adds r1, r2, r4 movs r0, #0xfa lsls r0, r0, #2 strh r0, [r1] subs r0, #0x1a adds r1, r2, r0 ldr r0, _080426A4 @ =0x000009C4 strh r0, [r1] _08042562: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x58 bne _08042584 movs r4, #0xf1 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r1] ldr r0, _0804269C @ =0x000003C6 adds r1, r2, r0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] _08042584: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x78 bne _080425A6 movs r4, #0xf2 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] ldr r0, _080426A0 @ =0x000003CA adds r1, r2, r0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] _080425A6: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0xaa bne _080425C8 movs r4, #0xf3 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r0, _080426A8 @ =0x000003CE adds r1, r2, r0 movs r0, #0xfa lsls r0, r0, #3 strh r0, [r1] _080425C8: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0xd7 bne _080425E8 movs r4, #0xf1 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0 strh r0, [r1] ldr r0, _0804269C @ =0x000003C6 adds r1, r2, r0 movs r0, #0xfa lsls r0, r0, #3 strh r0, [r1] _080425E8: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r1, [r0] ldr r0, _080426AC @ =0x00000131 cmp r1, r0 bne _08042608 movs r4, #0xf2 lsls r4, r4, #2 adds r0, r2, r4 movs r1, #0xe1 lsls r1, r1, #3 strh r1, [r0] adds r4, #2 adds r0, r2, r4 strh r1, [r0] _08042608: mov r0, r8 ldr r2, [r0] adds r0, r2, r3 ldrh r1, [r0] ldr r0, _080426B0 @ =0x0000013B cmp r1, r0 bne _0804262A movs r3, #0xf3 lsls r3, r3, #2 adds r1, r2, r3 subs r0, #0xf strh r0, [r1] ldr r4, _080426A8 @ =0x000003CE adds r1, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] _0804262A: ldr r6, _080426B4 @ =0x0200BBA0 ldrh r0, [r6] movs r1, #0xb8 adds r1, r1, r6 mov sb, r1 movs r2, #0xb8 lsls r2, r2, #1 adds r2, r2, r6 mov sl, r2 cmp r0, #0 beq _08042728 mov r3, r8 ldr r0, [r3] movs r4, #0xf1 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] ldr r3, _0804269C @ =0x000003C6 adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bgt _080426B8 strh r1, [r6, #4] b _080426C6 .align 2, 0 _0804267C: .4byte 0x020314E0 _08042680: .4byte 0x00000506 _08042684: .4byte 0x00000516 _08042688: .4byte 0x02032F20 _0804268C: .4byte 0x0000FFFF _08042690: .4byte 0x000001FF _08042694: .4byte 0xFFFFFE00 _08042698: .4byte 0x00000392 _0804269C: .4byte 0x000003C6 _080426A0: .4byte 0x000003CA _080426A4: .4byte 0x000009C4 _080426A8: .4byte 0x000003CE _080426AC: .4byte 0x00000131 _080426B0: .4byte 0x0000013B _080426B4: .4byte 0x0200BBA0 _080426B8: mov r0, r8 ldr r1, [r0] ldr r2, _0804276C @ =0x000003C6 adds r1, r1, r2 ldrh r0, [r1] subs r0, #0x14 strh r0, [r1] _080426C6: movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _080426D2 movs r0, #0xb4 strh r0, [r6, #4] _080426D2: movs r0, #0 ldr r4, _08042770 @ =0x0200BC58 mov sb, r4 movs r1, #0xb8 add r1, sb mov sl, r1 ldr r7, _08042774 @ =0x03005000 ldr r2, _08042778 @ =0xFFFFFE00 mov ip, r2 _080426E4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0804277C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _080426E4 _08042728: mov r6, sb ldrh r0, [r6] cmp r0, #0 beq _080427EE mov r3, r8 ldr r0, [r3] movs r4, #0xf2 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] ldr r3, _08042780 @ =0x000003CA adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bgt _08042788 ldr r0, _08042784 @ =0x0000FFC4 strh r0, [r6, #4] b _08042796 .align 2, 0 _0804276C: .4byte 0x000003C6 _08042770: .4byte 0x0200BC58 _08042774: .4byte 0x03005000 _08042778: .4byte 0xFFFFFE00 _0804277C: .4byte 0x000001FF _08042780: .4byte 0x000003CA _08042784: .4byte 0x0000FFC4 _08042788: mov r0, r8 ldr r1, [r0] ldr r2, _08042834 @ =0x000003CA adds r1, r1, r2 ldrh r0, [r1] subs r0, #0xc strh r0, [r1] _08042796: movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _080427A2 movs r0, #0xb4 strh r0, [r6, #4] _080427A2: movs r0, #0 ldr r7, _08042838 @ =0x03005000 ldr r4, _0804283C @ =0xFFFFFE00 mov ip, r4 _080427AA: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042840 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _080427AA _080427EE: mov r6, sl ldrh r0, [r6] cmp r0, #0 beq _080428B2 mov r3, r8 ldr r0, [r3] movs r4, #0xf3 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] ldr r3, _08042844 @ =0x000003CE adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bgt _0804284C ldr r0, _08042848 @ =0x0000FFC4 strh r0, [r6, #4] b _0804285A .align 2, 0 _08042834: .4byte 0x000003CA _08042838: .4byte 0x03005000 _0804283C: .4byte 0xFFFFFE00 _08042840: .4byte 0x000001FF _08042844: .4byte 0x000003CE _08042848: .4byte 0x0000FFC4 _0804284C: mov r0, r8 ldr r1, [r0] ldr r2, _0804290C @ =0x000003CE adds r1, r1, r2 ldrh r0, [r1] subs r0, #0x12 strh r0, [r1] _0804285A: movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _08042866 movs r0, #0xb4 strh r0, [r6, #4] _08042866: movs r0, #0 ldr r7, _08042910 @ =0x03005000 ldr r4, _08042914 @ =0xFFFFFE00 mov ip, r4 _0804286E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042918 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _0804286E _080428B2: mov r3, r8 ldr r0, [r3] ldr r2, _0804291C @ =0x00000516 adds r0, r0, r2 ldrh r1, [r0] movs r0, #0xa5 lsls r0, r0, #2 cmp r1, r0 bne _080428DC ldr r4, _08042920 @ =gMain movs r1, #0xae lsls r1, r1, #4 adds r0, r4, r1 movs r1, #0 strh r1, [r0] ldr r3, _08042924 @ =0x00000B98 adds r0, r4, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r4, r3 strh r1, [r0] _080428DC: ldr r6, _08042928 @ =0x0200BDC8 ldrh r0, [r6] cmp r0, #0 beq _080429CA mov r4, r8 ldr r0, [r4] adds r1, r0, r2 ldrh r0, [r1] subs r0, #0xc3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _08042930 ldr r0, _0804292C @ =0x086AF784 ldrh r1, [r1] subs r1, #0xc3 lsrs r2, r1, #0x1f adds r1, r1, r2 asrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r0 ldrh r7, [r1] b _08042938 .align 2, 0 _0804290C: .4byte 0x000003CE _08042910: .4byte 0x03005000 _08042914: .4byte 0xFFFFFE00 _08042918: .4byte 0x000001FF _0804291C: .4byte 0x00000516 _08042920: .4byte gMain _08042924: .4byte 0x00000B98 _08042928: .4byte 0x0200BDC8 _0804292C: .4byte 0x086AF784 _08042930: ldrh r0, [r1] movs r1, #3 ands r0, r1 lsrs r7, r0, #1 _08042938: mov r0, r8 ldr r4, [r0] movs r1, #0x83 lsls r1, r1, #3 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] ldr r3, _08042A40 @ =0x0000041A adds r4, r4, r3 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _0804296E ldr r0, _08042A44 @ =0x0000FFC4 strh r0, [r6, #4] _0804296E: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xb4 ble _0804297A movs r0, #0xb4 strh r0, [r6, #4] _0804297A: adds r5, r6, #0 adds r5, #8 ldr r4, _08042A48 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08042A4C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08042A50 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 lsls r1, r7, #0x10 asrs r1, r1, #0xe adds r1, #0x7d ldr r4, _08042A54 @ =0x000003FF adds r0, r4, #0 ands r1, r0 ldrh r3, [r2, #4] ldr r0, _08042A58 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] _080429CA: mov r1, r8 ldr r0, [r1] ldr r4, _08042A5C @ =0x00000516 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x96 bne _08042A0A ldr r2, _08042A60 @ =gMain ldr r3, _08042A64 @ =0x00000D08 adds r1, r2, r3 movs r0, #1 strh r0, [r1] mov r0, r8 ldr r1, [r0] movs r3, #0x83 lsls r3, r3, #3 adds r2, r1, r3 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] ldr r0, _08042A40 @ =0x0000041A adds r2, r1, r0 ldr r0, _08042A68 @ =0x0000FF9C strh r0, [r2] subs r3, #4 adds r2, r1, r3 adds r0, #0x4f strh r0, [r2] ldr r0, _08042A6C @ =0x00000416 adds r1, r1, r0 movs r0, #0xe strh r0, [r1] _08042A0A: mov r1, r8 ldr r3, [r1] adds r0, r3, r4 ldrh r0, [r0] cmp r0, #0xcd bls _08042A70 ldr r4, _08042A6C @ =0x00000416 adds r2, r3, r4 ldrh r0, [r2] adds r0, #1 strh r0, [r2] movs r0, #0x83 lsls r0, r0, #3 adds r1, r3, r0 subs r4, #2 adds r0, r3, r4 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] ldr r0, _08042A40 @ =0x0000041A adds r1, r3, r0 ldrh r0, [r2] ldrh r2, [r1] adds r0, r0, r2 b _08042A94 .align 2, 0 _08042A40: .4byte 0x0000041A _08042A44: .4byte 0x0000FFC4 _08042A48: .4byte 0x03005000 _08042A4C: .4byte 0x000001FF _08042A50: .4byte 0xFFFFFE00 _08042A54: .4byte 0x000003FF _08042A58: .4byte 0xFFFFFC00 _08042A5C: .4byte 0x00000516 _08042A60: .4byte gMain _08042A64: .4byte 0x00000D08 _08042A68: .4byte 0x0000FF9C _08042A6C: .4byte 0x00000416 _08042A70: cmp r0, #0x96 bls _08042A96 movs r4, #0x83 lsls r4, r4, #3 adds r1, r3, r4 ldr r2, _08042B2C @ =0x00000414 adds r0, r3, r2 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] ldr r0, _08042B30 @ =0x0000041A adds r1, r3, r0 adds r2, #2 adds r0, r3, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 _08042A94: strh r0, [r1] _08042A96: mov r4, r8 ldr r0, [r4] ldr r1, _08042B34 @ =0x00000516 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0xaf lsls r0, r0, #1 cmp r1, r0 bne _08042AB2 ldr r0, _08042B38 @ =gMain ldr r2, _08042B3C @ =0x00000D08 adds r0, r0, r2 movs r1, #0 strh r1, [r0] _08042AB2: mov r3, r8 ldr r1, [r3] ldr r4, _08042B40 @ =0x00000506 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _08042AC6 b _08042DA0 _08042AC6: ldr r5, _08042B34 @ =0x00000516 adds r2, r1, r5 ldrh r0, [r2] cmp r0, #0xff bhi _08042ADE asrs r0, r0, #1 rsbs r0, r0, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r2] adds r0, #1 strh r0, [r2] _08042ADE: ldr r0, _08042B38 @ =gMain movs r1, #0xae lsls r1, r1, #4 adds r6, r0, r1 ldrh r0, [r6] ldr r2, _08042B38 @ =gMain ldr r3, _08042B44 @ =0x00000B98 adds r2, r2, r3 mov sb, r2 cmp r0, #0 beq _08042BC0 mov r4, r8 ldr r0, [r4] movs r1, #0xf1 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] ldr r0, [r4] ldr r4, _08042B48 @ =0x000003C6 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08042B4C movs r0, #0xb4 strh r0, [r6, #4] b _08042B60 .align 2, 0 _08042B2C: .4byte 0x00000414 _08042B30: .4byte 0x0000041A _08042B34: .4byte 0x00000516 _08042B38: .4byte gMain _08042B3C: .4byte 0x00000D08 _08042B40: .4byte 0x00000506 _08042B44: .4byte 0x00000B98 _08042B48: .4byte 0x000003C6 _08042B4C: mov r0, r8 ldr r1, [r0] adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xff bhi _08042B60 adds r1, r1, r4 ldrh r0, [r1] adds r0, #0x14 strh r0, [r1] _08042B60: movs r2, #4 ldrsh r1, [r6, r2] movs r0, #0x3c rsbs r0, r0, #0 cmp r1, r0 bge _08042B70 ldr r0, _08042C00 @ =0x0000FFC4 strh r0, [r6, #4] _08042B70: movs r0, #0 ldr r3, _08042C04 @ =0x0200BC58 mov sb, r3 ldr r7, _08042C08 @ =0x03005000 ldr r4, _08042C0C @ =0xFFFFFE00 mov ip, r4 _08042B7C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042C10 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08042B7C _08042BC0: mov r6, sb ldrh r0, [r6] cmp r0, #0 beq _08042C86 mov r3, r8 ldr r0, [r3] movs r4, #0xf2 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] adds r4, #2 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08042C14 movs r0, #0xb4 strh r0, [r6, #4] b _08042C2A .align 2, 0 _08042C00: .4byte 0x0000FFC4 _08042C04: .4byte 0x0200BC58 _08042C08: .4byte 0x03005000 _08042C0C: .4byte 0xFFFFFE00 _08042C10: .4byte 0x000001FF _08042C14: mov r0, r8 ldr r1, [r0] ldr r2, _08042CB8 @ =0x00000516 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xff bhi _08042C2A adds r1, r1, r4 ldrh r0, [r1] adds r0, #0xa strh r0, [r1] _08042C2A: movs r3, #4 ldrsh r1, [r6, r3] movs r0, #0x3c rsbs r0, r0, #0 cmp r1, r0 bge _08042C3A ldr r0, _08042CBC @ =0x0000FFC4 strh r0, [r6, #4] _08042C3A: movs r0, #0 ldr r7, _08042CC0 @ =0x03005000 ldr r4, _08042CC4 @ =0xFFFFFE00 mov ip, r4 _08042C42: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042CC8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _08042C42 _08042C86: ldr r6, _08042CCC @ =0x0200BDC8 ldrh r0, [r6] cmp r0, #0 bne _08042C90 b _08042DA0 _08042C90: mov r3, r8 ldr r0, [r3] ldr r4, _08042CB8 @ =0x00000516 adds r1, r0, r4 ldrh r0, [r1] subs r0, #0xbe lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _08042CD4 ldr r0, _08042CD0 @ =0x086AF784 ldrh r1, [r1] subs r1, #0xbe lsrs r2, r1, #0x1f adds r1, r1, r2 asrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r0 ldrh r7, [r1] b _08042CDC .align 2, 0 _08042CB8: .4byte 0x00000516 _08042CBC: .4byte 0x0000FFC4 _08042CC0: .4byte 0x03005000 _08042CC4: .4byte 0xFFFFFE00 _08042CC8: .4byte 0x000001FF _08042CCC: .4byte 0x0200BDC8 _08042CD0: .4byte 0x086AF784 _08042CD4: ldrh r0, [r1] movs r1, #3 ands r0, r1 lsrs r7, r0, #1 _08042CDC: mov r0, r8 ldr r4, [r0] movs r1, #0x83 lsls r1, r1, #3 mov sl, r1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] ldr r3, _08042DB8 @ =0x0000041A mov sb, r3 add r4, sb movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _08042D16 ldr r0, _08042DBC @ =0x0000FFC4 strh r0, [r6, #4] _08042D16: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xb4 ble _08042D22 movs r0, #0xb4 strh r0, [r6, #4] _08042D22: adds r5, r6, #0 adds r5, #8 ldr r4, _08042DC0 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08042DC4 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08042DC8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 lsls r1, r7, #0x10 asrs r1, r1, #0xe adds r1, #0x7d ldr r4, _08042DCC @ =0x000003FF adds r0, r4, #0 ands r1, r0 ldrh r3, [r2, #4] ldr r0, _08042DD0 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] mov r0, r8 ldr r2, [r0] ldr r1, _08042DD4 @ =0x00000516 adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0xa0 bls _08042DA0 mov r3, sl adds r1, r2, r3 adds r4, #0x15 adds r0, r2, r4 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] mov r4, sb adds r1, r2, r4 ldr r3, _08042DD8 @ =0x00000416 adds r0, r2, r3 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] _08042DA0: mov r0, r8 ldr r2, [r0] adds r0, r2, #0 adds r0, #0xe6 movs r3, #0 ldrsh r1, [r0, r3] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 blt _08042DDC movs r0, #0 b _08042DDE .align 2, 0 _08042DB8: .4byte 0x0000041A _08042DBC: .4byte 0x0000FFC4 _08042DC0: .4byte 0x03005000 _08042DC4: .4byte 0x000001FF _08042DC8: .4byte 0xFFFFFE00 _08042DCC: .4byte 0x000003FF _08042DD0: .4byte 0xFFFFFC00 _08042DD4: .4byte 0x00000516 _08042DD8: .4byte 0x00000416 _08042DDC: movs r0, #1 _08042DDE: strb r0, [r2, #0x1a] ldr r4, _08042E38 @ =gMain ldr r0, _08042E3C @ =0x000002F2 adds r2, r4, r0 mov r1, r8 ldr r0, [r1] movs r1, #0xa3 lsls r1, r1, #3 adds r0, r0, r1 ldrh r0, [r0] ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] ldr r0, _08042E40 @ =0x000002EE adds r2, r4, r0 mov r3, r8 ldr r0, [r3] adds r0, r0, r1 ldrh r0, [r0] ldrh r4, [r2] adds r0, r0, r4 strh r0, [r2] ldr r0, _08042E38 @ =gMain ldr r3, _08042E44 @ =0x000002F6 adds r2, r0, r3 mov r4, r8 ldr r0, [r4] adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 bge _08042E20 adds r0, #3 _08042E20: asrs r0, r0, #2 adds r0, #0xe0 ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] 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 _08042E38: .4byte gMain _08042E3C: .4byte 0x000002F2 _08042E40: .4byte 0x000002EE _08042E44: .4byte 0x000002F6 thumb_func_start sub_42E48 sub_42E48: @ 0x08042E48 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08043198 @ =gMain ldr r1, [r0, #0x4c] movs r0, #0xf movs r5, #0 ands r1, r0 cmp r5, r1 bge _08042E72 adds r4, r1, #0 _08042E5E: bl sub_C00 lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 blt _08042E5E _08042E72: ldr r1, _08043198 @ =gMain ldr r0, [r1, #0x4c] str r0, [r1, #0x48] ldr r4, _0804319C @ =0x020314E0 ldr r0, [r4] movs r6, #0 movs r3, #0 strh r3, [r0, #0x18] strb r6, [r0, #0x17] ldr r0, [r4] strb r6, [r0, #0x13] ldr r0, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r0, r2 movs r5, #1 mov r8, r5 mov r7, r8 strb r7, [r0] ldr r2, [r4] adds r5, r2, #0 adds r5, #0x6c movs r1, #0xe1 lsls r1, r1, #5 adds r0, r1, #0 ldrh r7, [r5] adds r0, r0, r7 ldr r7, _080431A0 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r3, [r5] ldr r1, _080431A4 @ =0x00000392 adds r0, r2, r1 strh r3, [r0] ldr r5, _080431A8 @ =0x00000383 adds r2, r2, r5 strb r6, [r2] ldr r0, [r4] adds r7, #0xf2 adds r0, r0, r7 strb r6, [r0] ldr r0, [r4] ldr r1, _080431AC @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] mov r2, r8 strb r2, [r0] ldr r0, [r4] strb r2, [r0, #0x1f] ldr r2, [r4] adds r1, r2, r1 ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r0, [r1] strh r3, [r0, #6] adds r5, #3 adds r2, r2, r5 strb r6, [r2] ldr r1, [r4] ldr r7, _080431B0 @ =0x0000053A adds r0, r1, r7 strh r3, [r0] ldr r2, _080431B4 @ =0x00000542 adds r0, r1, r2 strh r3, [r0] ldr r5, _080431B8 @ =0x00000544 adds r0, r1, r5 str r3, [r0] adds r7, #0x10 adds r1, r1, r7 strb r6, [r1] ldr r0, [r4] movs r2, #0xe5 lsls r2, r2, #2 adds r1, r0, r2 strh r3, [r1] adds r5, #0x4c adds r0, r0, r5 strb r6, [r0] ldr r0, [r4] adds r7, #0x47 adds r0, r0, r7 strb r6, [r0] ldr r1, [r4] ldr r2, _080431BC @ =0x00000592 adds r0, r1, r2 strh r3, [r0] adds r5, #4 adds r0, r1, r5 strh r3, [r0] adds r7, #5 adds r0, r1, r7 strh r3, [r0] adds r1, #0x7e mov r0, r8 strh r0, [r1] movs r5, #0 movs r6, #0xe8 lsls r6, r6, #2 _08042F3C: ldr r0, [r4] lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r0, r6 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] ldr r2, _080431C0 @ =0x000003A3 adds r0, r0, r2 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] lsls r2, r1, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r2 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _08042F3C movs r5, #0 ldr r4, _0804319C @ =0x020314E0 movs r3, #0 _08042F72: ldr r0, [r4] lsls r1, r5, #0x10 asrs r1, r1, #0x10 movs r7, #0xa6 lsls r7, r7, #3 adds r0, r0, r7 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] ldr r2, _080431C4 @ =0x00000533 adds r0, r0, r2 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] ldr r5, _080431C8 @ =0x00000536 adds r0, r0, r5 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] lsls r2, r1, #1 adds r7, #0xc adds r0, r0, r7 adds r0, r0, r2 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _08042F72 movs r5, #0 ldr r6, _0804319C @ =0x020314E0 movs r4, #0 _08042FB4: ldr r0, [r6] lsls r3, r5, #0x10 asrs r3, r3, #0x10 ldr r1, _080431CC @ =0x0000052C adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] ldr r2, _080431D0 @ =0x0000052E adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] movs r5, #0xa9 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] ldr r7, _080431D4 @ =0x0000054B adds r0, r0, r7 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r1, #0x21 adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r2, #0x21 adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r5, #9 adds r0, r0, r5 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r7, #8 adds r0, r0, r7 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r1, #8 adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r2, #8 adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r5, #8 adds r0, r0, r5 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r7, #8 adds r0, r0, r7 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r1, #8 adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r2, #8 adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r2, [r6] lsls r1, r3, #1 adds r5, #9 adds r0, r2, r5 adds r0, r0, r1 strh r4, [r0] adds r7, #0xb adds r0, r2, r7 adds r0, r0, r1 strh r4, [r0] adds r5, #8 adds r0, r2, r5 adds r0, r0, r1 strh r4, [r0] lsls r0, r3, #2 adds r0, r2, r0 adds r7, #0xa adds r1, r0, r7 strh r4, [r1] adds r5, #8 adds r1, r0, r5 strh r4, [r1] adds r7, #8 adds r1, r0, r7 strh r4, [r1] ldr r1, _080431D8 @ =0x0000057A adds r0, r0, r1 strh r4, [r0] lsls r1, r3, #3 adds r5, #0xe adds r0, r2, r5 adds r0, r0, r1 str r4, [r0] adds r7, #0xc adds r2, r2, r7 adds r2, r2, r1 str r4, [r2] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08042FB4 ldr r0, _0804319C @ =0x020314E0 ldr r1, [r0] movs r0, #0 strb r0, [r1, #0x1a] bl sub_4387C bl sub_43500 bl sub_44D58 bl sub_45E08 movs r5, #0 ldr r6, _080431DC @ =0x03005C00 movs r4, #0x80 lsls r4, r4, #3 movs r3, #0x80 lsls r3, r3, #2 ldr r2, _080431E0 @ =0x000007FF _080430C2: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, r4 lsls r0, r0, #1 adds r0, r0, r6 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r2 ble _080430C2 ldr r1, _080431E4 @ =0x040000D4 ldr r2, _080431E8 @ =0x03006400 str r2, [r1] ldr r0, _080431EC @ =0x06001000 str r0, [r1, #4] ldr r0, _080431F0 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _08043198 @ =gMain ldrh r0, [r1, #0x38] ldr r0, _080431F4 @ =0x00001C42 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _080431F8 @ =0x00000C04 strh r0, [r1, #0x3a] movs r5, #0 adds r6, r1, #0 ldr r0, _0804319C @ =0x020314E0 mov r8, r0 movs r1, #0x80 lsls r1, r1, #4 adds r7, r2, r1 ldr r0, _080431FC @ =0x08137E14 mov ip, r0 ldr r1, _08043200 @ =0xFFFFF800 adds r2, r2, r1 ldr r4, _08043204 @ =0x0000013F _08043110: lsls r0, r5, #0x10 asrs r3, r0, #0x10 adds r0, r3, #0 cmp r3, #0 bge _0804311C adds r0, #0x1f _0804311C: asrs r0, r0, #5 lsls r0, r0, #5 subs r0, r3, r0 subs r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1b bhi _0804313C movs r5, #0x80 lsls r5, r5, #4 adds r0, r3, r5 lsls r0, r0, #1 adds r0, r0, r2 movs r1, #0x90 lsls r1, r1, #8 strh r1, [r0] _0804313C: adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 ble _08043110 ldr r0, _08043208 @ =0x000002EE adds r1, r6, r0 movs r0, #0x7e strh r0, [r1] ldr r4, _080431E4 @ =0x040000D4 str r7, [r4] ldr r0, _0804320C @ =0x06001140 str r0, [r4, #4] ldr r0, _08043210 @ =0x80000140 str r0, [r4, #8] ldr r0, [r4, #8] mov r1, r8 ldr r0, [r1] ldr r2, _08043214 @ =0x000005F6 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 add r0, ip str r0, [r4] ldr r0, _08043218 @ =0x05000220 str r0, [r4, #4] ldr r5, _0804321C @ =0x80000010 str r5, [r4, #8] ldr r0, [r4, #8] movs r0, #0x27 bl m4aSongNumStart ldr r0, _08043220 @ =0x081B36A4 str r0, [r4] ldr r0, _08043224 @ =0x05000320 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08043198: .4byte gMain _0804319C: .4byte 0x020314E0 _080431A0: .4byte 0x00000296 _080431A4: .4byte 0x00000392 _080431A8: .4byte 0x00000383 _080431AC: .4byte 0x0000132C _080431B0: .4byte 0x0000053A _080431B4: .4byte 0x00000542 _080431B8: .4byte 0x00000544 _080431BC: .4byte 0x00000592 _080431C0: .4byte 0x000003A3 _080431C4: .4byte 0x00000533 _080431C8: .4byte 0x00000536 _080431CC: .4byte 0x0000052C _080431D0: .4byte 0x0000052E _080431D4: .4byte 0x0000054B _080431D8: .4byte 0x0000057A _080431DC: .4byte 0x03005C00 _080431E0: .4byte 0x000007FF _080431E4: .4byte 0x040000D4 _080431E8: .4byte 0x03006400 _080431EC: .4byte 0x06001000 _080431F0: .4byte 0x80000800 _080431F4: .4byte 0x00001C42 _080431F8: .4byte 0x00000C04 _080431FC: .4byte 0x08137E14 _08043200: .4byte 0xFFFFF800 _08043204: .4byte 0x0000013F _08043208: .4byte 0x000002EE _0804320C: .4byte 0x06001140 _08043210: .4byte 0x80000140 _08043214: .4byte 0x000005F6 _08043218: .4byte 0x05000220 _0804321C: .4byte 0x80000010 _08043220: .4byte 0x081B36A4 _08043224: .4byte 0x05000320 thumb_func_start sub_43228 sub_43228: @ 0x08043228 push {r4, r5, lr} ldr r1, _08043248 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #5 bls _0804323C b _080434BA _0804323C: lsls r0, r0, #2 ldr r1, _0804324C @ =_08043250 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08043248: .4byte 0x020314E0 _0804324C: .4byte _08043250 _08043250: @ jump table .4byte _08043268 @ case 0 .4byte _080432CE @ case 1 .4byte _08043342 @ case 2 .4byte _080433D4 @ case 3 .4byte _08043470 @ case 4 .4byte _080434A2 @ case 5 _08043268: ldr r0, [r5] ldr r1, _080432B0 @ =0x000005F7 adds r0, r0, r1 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r4, [r5] ldrh r1, [r4, #0x18] ldr r0, _080432B4 @ =0x00000153 cmp r1, r0 bhi _080432C0 subs r0, #0x13 cmp r1, r0 bhi _08043296 adds r0, r1, #0 movs r1, #5 bl __udivsi3 ldr r2, _080432B8 @ =0x0000FFC0 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] _08043296: ldr r2, [r5] ldrh r1, [r2, #0x18] ldr r0, _080432BC @ =0x00000145 cmp r1, r0 bne _080432AA movs r3, #0xa5 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #2 strb r0, [r1] _080432AA: ldr r1, [r5] ldrh r0, [r1, #0x18] b _0804331C .align 2, 0 _080432B0: .4byte 0x000005F7 _080432B4: .4byte 0x00000153 _080432B8: .4byte 0x0000FFC0 _080432BC: .4byte 0x00000145 _080432C0: adds r0, r4, #0 adds r0, #0xe6 strh r3, [r0] strb r2, [r4, #0x13] ldr r0, [r5] strh r3, [r0, #0x18] b _080434BA _080432CE: ldr r1, [r5] ldr r4, _08043324 @ =0x00000296 adds r0, r1, r4 ldrh r4, [r0] cmp r4, #0 beq _080432DC b _080434BA _080432DC: movs r0, #0xa5 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] ldrh r0, [r0, #0x18] cmp r0, #0 bne _08043314 bl m4aMPlayAllStop ldr r0, _08043328 @ =0x02032F20 ldr r1, _0804332C @ =0x086A2E90 bl MPlayStart ldr r1, _08043330 @ =gMain movs r0, #0x80 strb r0, [r1, #0xf] ldr r0, [r5] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r5] ldr r2, _08043334 @ =0x00000392 adds r0, r0, r2 strh r4, [r0] _08043314: ldr r1, [r5] ldrh r0, [r1, #0x18] cmp r0, #0x3b bhi _08043338 _0804331C: adds r0, #1 strh r0, [r1, #0x18] b _080434BA .align 2, 0 _08043324: .4byte 0x00000296 _08043328: .4byte 0x02032F20 _0804332C: .4byte 0x086A2E90 _08043330: .4byte gMain _08043334: .4byte 0x00000392 _08043338: movs r0, #2 strb r0, [r1, #0x13] ldr r0, [r5] strh r4, [r0, #0x18] b _080434BA _08043342: ldr r0, [r5] ldrh r0, [r0, #0x18] cmp r0, #0 bne _08043354 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08043354: ldr r2, [r5] ldrh r0, [r2, #0x18] cmp r0, #0x13 bhi _08043362 adds r0, #1 strh r0, [r2, #0x18] b _080434BA _08043362: movs r1, #0 movs r0, #3 strb r0, [r2, #0x13] ldr r0, [r5] strh r1, [r0, #0x18] ldr r2, _080433B0 @ =gMain movs r3, #0x80 lsls r3, r3, #4 adds r0, r2, r3 movs r3, #1 movs r1, #1 strh r1, [r0] ldr r4, _080433B4 @ =0x000008B8 adds r0, r2, r4 strh r1, [r0] adds r4, #0xb8 adds r0, r2, r4 strh r1, [r0] ldr r0, _080433B8 @ =0x00000A28 adds r2, r2, r0 strh r1, [r2] ldr r1, _080433BC @ =0x040000D4 ldr r0, _080433C0 @ =0x084B77EC str r0, [r1] ldr r0, _080433C4 @ =0x06015800 str r0, [r1, #4] ldr r0, _080433C8 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5] movs r1, #0xe5 lsls r1, r1, #2 adds r2, r0, r1 ldr r1, _080433CC @ =0x0000FF82 strh r1, [r2] ldr r2, _080433D0 @ =0x000005FA adds r0, r0, r2 strb r3, [r0] b _080434BA .align 2, 0 _080433B0: .4byte gMain _080433B4: .4byte 0x000008B8 _080433B8: .4byte 0x00000A28 _080433BC: .4byte 0x040000D4 _080433C0: .4byte 0x084B77EC _080433C4: .4byte 0x06015800 _080433C8: .4byte 0x80000400 _080433CC: .4byte 0x0000FF82 _080433D0: .4byte 0x000005FA _080433D4: bl sub_45E90 ldr r1, _08043444 @ =0x020314E0 ldr r2, [r1] ldrb r0, [r2, #0x1c] cmp r0, #0 beq _080433E6 movs r0, #0xb5 strh r0, [r2, #0x18] _080433E6: ldr r2, [r1] ldrh r0, [r2, #0x18] cmp r0, #0xb4 bne _08043408 ldr r3, _08043448 @ =0x00000544 adds r0, r2, r3 ldr r0, [r0] cmp r0, #0 beq _08043408 movs r0, #1 strb r0, [r2, #0x1c] ldr r1, [r1] ldr r0, _0804344C @ =0x00061A80 str r0, [r1, #0x38] adds r0, r1, r3 ldr r0, [r0] str r0, [r1, #0x3c] _08043408: ldr r0, _08043444 @ =0x020314E0 ldr r2, [r0] ldrh r1, [r2, #0x18] adds r5, r0, #0 cmp r1, #0xbd bls _08043426 ldr r0, _08043450 @ =gMain ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08043426 movs r0, #0x87 lsls r0, r0, #2 strh r0, [r2, #0x18] _08043426: ldr r1, [r5] ldrh r2, [r1, #0x18] ldr r0, _08043454 @ =0x0000021B cmp r2, r0 bhi _08043458 cmp r2, #4 bne _0804343A movs r0, #0xa4 bl m4aSongNumStart _0804343A: ldr r1, [r5] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _08043460 .align 2, 0 _08043444: .4byte 0x020314E0 _08043448: .4byte 0x00000544 _0804344C: .4byte 0x00061A80 _08043450: .4byte gMain _08043454: .4byte 0x0000021B _08043458: movs r0, #0 strh r0, [r1, #0x18] movs r0, #4 strb r0, [r1, #0x13] _08043460: ldr r0, [r5] ldr r4, _0804346C @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _080434B8 .align 2, 0 _0804346C: .4byte 0x000005FA _08043470: bl sub_45E90 ldr r0, _08043494 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0x1d bhi _08043498 adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bne _080434BA movs r0, #0xa4 bl m4aSongNumStart b _080434BA .align 2, 0 _08043494: .4byte 0x020314E0 _08043498: movs r0, #0 strh r0, [r1, #0x18] movs r0, #5 strb r0, [r1, #0x13] b _080434BA _080434A2: bl sub_45E90 ldr r2, _080434F4 @ =0x020314E0 ldr r0, [r2] ldr r1, _080434F8 @ =0x00000386 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r2, _080434FC @ =0x000005FA adds r0, r0, r2 _080434B8: strb r1, [r0] _080434BA: bl sub_4387C bl sub_43500 bl sub_44D58 bl sub_45E08 ldr r0, _080434F4 @ =0x020314E0 ldr r1, [r0] ldr r3, _080434F8 @ =0x00000386 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080434E8 ldr r4, _080434FC @ =0x000005FA adds r1, r1, r4 movs r0, #1 strb r0, [r1] bl sub_350F0 _080434E8: bl sub_472E4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080434F4: .4byte 0x020314E0 _080434F8: .4byte 0x00000386 _080434FC: .4byte 0x000005FA thumb_func_start sub_43500 sub_43500: @ 0x08043500 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08043594 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08043524 ldr r0, _08043598 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _08043524 bl sub_455D0 _08043524: ldr r2, _08043594 @ =0x020314E0 ldr r0, [r2] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _08043534 b _080436E8 _08043534: ldr r0, _08043598 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 beq _0804353E b _080436E8 _0804353E: movs r1, #0 adds r7, r2, #0 movs r0, #0xa9 lsls r0, r0, #3 mov r8, r0 ldr r2, _0804359C @ =0x086AFAE2 mov sl, r2 _0804354C: ldr r0, [r7] lsls r1, r1, #0x10 asrs r4, r1, #0x10 add r0, r8 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #0x17 bne _08043576 ldr r0, _080435A0 @ =0x02032F20 ldr r1, _080435A4 @ =0x086A2EAC bl MPlayStart ldr r1, [r7] ldr r0, _080435A8 @ =0x00001388 str r0, [r1, #0x3c] movs r0, #8 bl sub_11B0 _08043576: ldr r3, [r7] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r3, r6 adds r0, r0, r4 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 beq _080435D4 cmp r2, #1 bgt _080435AC cmp r2, #0 beq _080435B6 b _080436D8 .align 2, 0 _08043594: .4byte 0x020314E0 _08043598: .4byte gMain _0804359C: .4byte 0x086AFAE2 _080435A0: .4byte 0x02032F20 _080435A4: .4byte 0x086A2EAC _080435A8: .4byte 0x00001388 _080435AC: cmp r2, #2 beq _08043628 cmp r2, #3 beq _0804366C b _080436D8 _080435B6: lsls r1, r4, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r3, r5 adds r0, r0, r1 strh r2, [r0] ldr r1, _080435D0 @ =0x000003A3 adds r0, r3, r1 adds r0, r0, r4 movs r1, #4 strb r1, [r0] b _080436CE .align 2, 0 _080435D0: .4byte 0x000003A3 _080435D4: mov r2, r8 adds r0, r3, r2 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0804367C ldr r5, _08043624 @ =0x000003A3 adds r0, r3, r5 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #2 add r1, sl lsls r2, r4, #1 movs r6, #0xec lsls r6, r6, #2 adds r0, r3, r6 adds r2, r0, r2 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bhi _080436A6 movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r0, [r7] ldr r1, _08043624 @ =0x000003A3 adds r0, r0, r1 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bne _080436D8 movs r0, #4 strb r0, [r1] b _080436D8 .align 2, 0 _08043624: .4byte 0x000003A3 _08043628: mov r2, r8 adds r0, r3, r2 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0804367C lsls r1, r4, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r3, r5 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 beq _0804365C subs r0, #1 strh r0, [r1] ldr r6, _08043658 @ =0x000003A3 adds r0, r3, r6 adds r0, r0, r4 movs r1, #8 b _080436D6 .align 2, 0 _08043658: .4byte 0x000003A3 _0804365C: ldr r1, _08043668 @ =0x000003A3 adds r0, r3, r1 adds r0, r0, r4 movs r1, #7 b _080436D6 .align 2, 0 _08043668: .4byte 0x000003A3 _0804366C: mov r2, r8 adds r0, r3, r2 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08043682 _0804367C: subs r0, r2, #1 strb r0, [r1] b _080436D8 _08043682: ldr r5, _080436AC @ =0x000003A3 adds r0, r3, r5 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #2 add r1, sl lsls r0, r4, #1 mov ip, r0 movs r2, #0xec lsls r2, r2, #2 adds r0, r3, r2 mov r3, ip adds r2, r0, r3 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _080436B0 _080436A6: adds r0, r3, #1 strh r0, [r2] b _080436D8 .align 2, 0 _080436AC: .4byte 0x000003A3 _080436B0: movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r0, [r7] ldr r5, _08043720 @ =0x000003A3 adds r0, r0, r5 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe ble _080436D8 movs r0, #4 strb r0, [r1] _080436CE: ldr r0, [r7] adds r0, r0, r6 adds r0, r0, r4 movs r1, #1 _080436D6: strb r1, [r0] _080436D8: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _080436E8 b _0804354C _080436E8: ldr r6, _08043724 @ =0x0200C388 ldrh r0, [r6] cmp r0, #0 beq _08043788 ldr r2, _08043728 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x64 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x5e subs r0, r0, r1 strh r0, [r6, #4] ldr r2, [r2] movs r1, #0xa9 lsls r1, r1, #3 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804372C movs r0, #0 b _0804373E .align 2, 0 _08043720: .4byte 0x000003A3 _08043724: .4byte 0x0200C388 _08043728: .4byte 0x020314E0 _0804372C: ldr r1, _080437C0 @ =0x086AFAE0 ldr r3, _080437C4 @ =0x000003A3 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] _0804373E: ldr r2, _080437C8 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #5 ldr r1, _080437CC @ =0x084B47EC adds r0, r0, r1 str r0, [r2] ldr r0, _080437D0 @ =0x060114A0 str r0, [r2, #4] ldr r0, _080437D4 @ =0x80000300 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _080437D8 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _080437DC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080437E0 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _08043788: ldr r6, _080437E4 @ =0x0200C2D0 ldrh r0, [r6] cmp r0, #0 beq _0804384E ldr r2, _080437E8 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x8c subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x5e subs r0, r0, r1 strh r0, [r6, #4] ldr r2, [r2] ldr r5, _080437EC @ =0x00000549 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080437F0 movs r0, #0 b _08043804 .align 2, 0 _080437C0: .4byte 0x086AFAE0 _080437C4: .4byte 0x000003A3 _080437C8: .4byte 0x040000D4 _080437CC: .4byte 0x084B47EC _080437D0: .4byte 0x060114A0 _080437D4: .4byte 0x80000300 _080437D8: .4byte 0x03005000 _080437DC: .4byte 0x000001FF _080437E0: .4byte 0xFFFFFE00 _080437E4: .4byte 0x0200C2D0 _080437E8: .4byte 0x020314E0 _080437EC: .4byte 0x00000549 _080437F0: ldr r1, _0804385C @ =0x086AFAE0 movs r3, #0xe9 lsls r3, r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] _08043804: ldr r2, _08043860 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #5 ldr r1, _08043864 @ =0x084B47EC adds r0, r0, r1 str r0, [r2] ldr r0, _08043868 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _0804386C @ =0x80000300 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _08043870 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08043874 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08043878 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _0804384E: 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 _0804385C: .4byte 0x086AFAE0 _08043860: .4byte 0x040000D4 _08043864: .4byte 0x084B47EC _08043868: .4byte 0x06010CA0 _0804386C: .4byte 0x80000300 _08043870: .4byte 0x03005000 _08043874: .4byte 0x000001FF _08043878: .4byte 0xFFFFFE00 thumb_func_start sub_4387C sub_4387C: @ 0x0804387C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 ldr r0, _080438D4 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0804389A bl _080448FC _0804389A: ldr r0, _080438D8 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 beq _080438A6 bl _080448FC _080438A6: movs r0, #0 str r0, [sp] _080438AA: ldr r3, _080438D4 @ =0x020314E0 ldr r0, [r3] ldr r1, [sp] lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldr r4, _080438DC @ =0x00000553 adds r0, r0, r4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r2 cmp r0, #0xe bls _080438CA bl _080448E4 _080438CA: lsls r0, r0, #2 ldr r1, _080438E0 @ =_080438E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080438D4: .4byte 0x020314E0 _080438D8: .4byte gMain _080438DC: .4byte 0x00000553 _080438E0: .4byte _080438E4 _080438E4: @ jump table .4byte _08043920 @ case 0 .4byte _08043980 @ case 1 .4byte _08043BF8 @ case 2 .4byte _08043CB0 @ case 3 .4byte _08043DC0 @ case 4 .4byte _08043EB8 @ case 5 .4byte _08043F04 @ case 6 .4byte _08043FB0 @ case 7 .4byte _0804409C @ case 8 .4byte _080442A6 @ case 9 .4byte _08044344 @ case 10 .4byte _08044450 @ case 11 .4byte _080445BC @ case 12 .4byte _08044624 @ case 13 .4byte _080446AC @ case 14 _08043920: ldr r5, _08043968 @ =0x020314E0 ldr r1, [r5] mov r6, sb asrs r3, r6, #0x10 ldr r7, _0804396C @ =0x00000553 adds r1, r1, r7 adds r1, r1, r3 movs r4, #0 movs r0, #1 strb r0, [r1] ldr r0, [r5] ldr r1, _08043970 @ =0x0000055B adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r1, [r5] lsls r2, r3, #1 ldr r5, _08043974 @ =0x00000562 adds r0, r1, r5 adds r0, r0, r2 movs r2, #0 strh r4, [r0] ldr r6, _08043978 @ =0x0000054F adds r1, r1, r6 adds r1, r1, r3 strb r2, [r1] ldr r7, _08043968 @ =0x020314E0 ldr r0, [r7] ldr r1, _0804397C @ =0x00000557 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xff strb r1, [r0] bl _080448E4 .align 2, 0 _08043968: .4byte 0x020314E0 _0804396C: .4byte 0x00000553 _08043970: .4byte 0x0000055B _08043974: .4byte 0x00000562 _08043978: .4byte 0x0000054F _0804397C: .4byte 0x00000557 _08043980: ldr r2, _080439A4 @ =0x020314E0 ldr r0, [r2] mov r3, sb asrs r5, r3, #0x10 lsls r1, r5, #1 ldr r4, _080439A8 @ =0x00000562 adds r0, r0, r4 adds r2, r0, r1 ldrh r1, [r2] lsls r0, r5, #4 subs r0, r0, r5 lsls r0, r0, #1 adds r0, #0x78 cmp r1, r0 bge _080439AC adds r0, r1, #1 strh r0, [r2] b _08043BCA .align 2, 0 _080439A4: .4byte 0x020314E0 _080439A8: .4byte 0x00000562 _080439AC: bl sub_C00 adds r1, r0, #0 ldr r6, _08043A34 @ =gMain ldr r0, [r6, #0x4c] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r7, _08043A38 @ =0x020314E0 ldr r4, [r7] ldr r7, _08043A3C @ =0x00000557 adds r4, r4, r7 adds r4, r4, r5 movs r1, #6 bl __umodsi3 strb r0, [r4] ldr r1, _08043A38 @ =0x020314E0 ldr r0, [r1] adds r4, r0, r7 movs r2, #0xab lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _080439F8 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] adds r0, #2 movs r1, #6 bl __modsi3 strb r0, [r4] _080439F8: ldr r4, _08043A38 @ =0x020314E0 ldr r3, [r4] adds r0, r3, r7 adds r0, r0, r5 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bgt _08043AA0 cmp r4, #0 bne _08043A48 lsls r2, r5, #3 movs r6, #0xb0 lsls r6, r6, #3 adds r0, r3, r6 adds r0, r0, r2 movs r1, #0x92 lsls r1, r1, #7 str r1, [r0] ldr r7, _08043A40 @ =0x00000584 adds r0, r3, r7 adds r0, r0, r2 movs r1, #0xab lsls r1, r1, #8 str r1, [r0] ldr r1, _08043A44 @ =0x00000551 adds r0, r3, r1 adds r0, r0, r5 strb r4, [r0] b _08043A6E .align 2, 0 _08043A34: .4byte gMain _08043A38: .4byte 0x020314E0 _08043A3C: .4byte 0x00000557 _08043A40: .4byte 0x00000584 _08043A44: .4byte 0x00000551 _08043A48: lsls r2, r5, #3 movs r4, #0xb0 lsls r4, r4, #3 adds r0, r3, r4 adds r0, r0, r2 movs r1, #0xa7 lsls r1, r1, #8 str r1, [r0] ldr r6, _08043A8C @ =0x00000584 adds r0, r3, r6 adds r0, r0, r2 movs r1, #0xac lsls r1, r1, #8 str r1, [r0] ldr r7, _08043A90 @ =0x00000551 adds r0, r3, r7 adds r0, r0, r5 movs r1, #1 strb r1, [r0] _08043A6E: ldr r2, _08043A94 @ =0x020314E0 ldr r1, [r2] mov r0, sb asrs r3, r0, #0x10 ldr r4, _08043A98 @ =0x0000055B adds r1, r1, r4 adds r1, r1, r3 movs r0, #9 strb r0, [r1] ldr r0, [r2] ldr r5, _08043A9C @ =0x00000553 adds r0, r0, r5 adds r0, r0, r3 movs r1, #7 b _08043BB6 .align 2, 0 _08043A8C: .4byte 0x00000584 _08043A90: .4byte 0x00000551 _08043A94: .4byte 0x020314E0 _08043A98: .4byte 0x0000055B _08043A9C: .4byte 0x00000553 _08043AA0: bl sub_C00 ldr r1, _08043AF8 @ =0x020314E0 ldr r2, [r1] ldr r3, _08043AFC @ =0x00000551 adds r2, r2, r3 adds r2, r2, r5 ldr r1, [r6, #0x4c] adds r1, r1, r0 movs r0, #1 ands r1, r0 strb r1, [r2] ldr r2, _08043AF8 @ =0x020314E0 ldr r1, [r2] adds r3, r1, r3 adds r3, r3, r5 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08043B24 adds r0, r1, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _08043B00 bl sub_C00 ldr r3, _08043AF8 @ =0x020314E0 ldr r4, [r3] lsls r1, r5, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r4, r4, r5 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 movs r1, #5 bl __udivsi3 adds r0, #0x50 b _08043B74 .align 2, 0 _08043AF8: .4byte 0x020314E0 _08043AFC: .4byte 0x00000551 _08043B00: bl sub_C00 ldr r6, _08043B20 @ =0x020314E0 ldr r4, [r6] lsls r1, r5, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r4, r4, r7 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 lsrs r0, r0, #1 adds r0, #0x32 b _08043B74 .align 2, 0 _08043B20: .4byte 0x020314E0 _08043B24: adds r0, r1, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _08043B58 bl sub_C00 ldr r1, _08043B54 @ =0x020314E0 ldr r4, [r1] lsls r1, r5, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r4, r4, r2 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 movs r1, #5 bl __udivsi3 b _08043B72 .align 2, 0 _08043B54: .4byte 0x020314E0 _08043B58: bl sub_C00 ldr r3, _08043BE0 @ =0x020314E0 ldr r4, [r3] lsls r1, r5, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r4, r4, r5 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 lsrs r0, r0, #1 _08043B72: adds r0, #0x8c _08043B74: lsls r0, r0, #8 str r0, [r4] ldr r5, _08043BE0 @ =0x020314E0 ldr r2, [r5] mov r6, sb asrs r4, r6, #0x10 lsls r0, r4, #3 ldr r7, _08043BE4 @ =0x00000584 adds r3, r2, r7 adds r3, r3, r0 ldr r1, _08043BE8 @ =0x00000557 adds r0, r2, r1 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] subs r1, #2 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 movs r6, #0xaf lsls r6, r6, #8 adds r0, r0, r6 str r0, [r3] subs r7, #0x29 adds r2, r2, r7 adds r2, r2, r4 movs r0, #0 strb r0, [r2] ldr r0, [r5] ldr r1, _08043BEC @ =0x00000553 adds r0, r0, r1 adds r0, r0, r4 movs r1, #2 _08043BB6: strb r1, [r0] ldr r2, _08043BE0 @ =0x020314E0 ldr r0, [r2] mov r3, sb asrs r1, r3, #0xf ldr r4, _08043BF0 @ =0x00000562 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _08043BCA: ldr r5, _08043BE0 @ =0x020314E0 ldr r0, [r5] mov r6, sb asrs r1, r6, #0x10 ldr r7, _08043BF4 @ =0x0000054F adds r0, r0, r7 adds r0, r0, r1 movs r1, #0 strb r1, [r0] bl _080448E4 .align 2, 0 _08043BE0: .4byte 0x020314E0 _08043BE4: .4byte 0x00000584 _08043BE8: .4byte 0x00000557 _08043BEC: .4byte 0x00000553 _08043BF0: .4byte 0x00000562 _08043BF4: .4byte 0x0000054F _08043BF8: ldr r3, _08043C2C @ =0x086AFB2C ldr r7, _08043C30 @ =0x020314E0 ldr r2, [r7] mov r0, sb asrs r5, r0, #0x10 ldr r6, _08043C34 @ =0x0000055B adds r0, r2, r6 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043C38 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043C3C adds r0, r1, #1 strh r0, [r2] b _08043C7A .align 2, 0 _08043C2C: .4byte 0x086AFB2C _08043C30: .4byte 0x020314E0 _08043C34: .4byte 0x0000055B _08043C38: .4byte 0x00000562 _08043C3C: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r7] ldr r4, _08043C9C @ =0x0000055B adds r0, r0, r4 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _08043C62 strb r1, [r0] ldr r0, [r7] ldr r2, _08043CA0 @ =0x00000553 adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] _08043C62: ldr r0, [r7] adds r0, r0, r6 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08043C7A movs r0, #0x9a lsls r0, r0, #1 bl m4aSongNumStart _08043C7A: ldr r0, _08043CA4 @ =0x020314E0 ldr r2, [r0] mov r4, sb asrs r3, r4, #0x10 lsls r1, r3, #1 ldr r5, _08043CA8 @ =0x0000056A adds r0, r2, r5 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r6, _08043CAC @ =0x0000054F adds r2, r2, r6 adds r2, r2, r3 movs r0, #1 strb r0, [r2] bl _080448E4 .align 2, 0 _08043C9C: .4byte 0x0000055B _08043CA0: .4byte 0x00000553 _08043CA4: .4byte 0x020314E0 _08043CA8: .4byte 0x0000056A _08043CAC: .4byte 0x0000054F _08043CB0: ldr r3, _08043CE4 @ =0x086AFB2C ldr r7, _08043CE8 @ =0x020314E0 ldr r2, [r7] mov r0, sb asrs r5, r0, #0x10 ldr r1, _08043CEC @ =0x0000055B adds r0, r2, r1 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043CF0 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043CF4 adds r0, r1, #1 strh r0, [r2] b _08043D14 .align 2, 0 _08043CE4: .4byte 0x086AFB2C _08043CE8: .4byte 0x020314E0 _08043CEC: .4byte 0x0000055B _08043CF0: .4byte 0x00000562 _08043CF4: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r4, _08043D58 @ =0x020314E0 ldr r0, [r4] ldr r6, _08043D5C @ =0x0000055B adds r0, r0, r6 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bne _08043D14 movs r0, #3 strb r0, [r1] _08043D14: ldr r7, _08043D58 @ =0x020314E0 ldr r3, [r7] mov r0, sb asrs r4, r0, #0x10 lsls r7, r4, #1 ldr r1, _08043D60 @ =0x0000056A adds r0, r3, r1 adds r2, r0, r7 ldrh r5, [r2] movs r6, #0 ldrsh r1, [r2, r6] ldr r0, _08043D64 @ =0x0000018F cmp r1, r0 bgt _08043D7E adds r0, r5, #1 strh r0, [r2] ldr r7, _08043D68 @ =0x00000551 adds r0, r3, r7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08043D6C lsls r0, r4, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r1, r3, r2 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x23 str r0, [r1] b _08043D9E .align 2, 0 _08043D58: .4byte 0x020314E0 _08043D5C: .4byte 0x0000055B _08043D60: .4byte 0x0000056A _08043D64: .4byte 0x0000018F _08043D68: .4byte 0x00000551 _08043D6C: lsls r0, r4, #3 movs r4, #0xb0 lsls r4, r4, #3 adds r1, r3, r4 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x23 str r0, [r1] b _08043D9E _08043D7E: ldr r5, _08043DB0 @ =0x0000055B adds r0, r3, r5 adds r0, r0, r4 movs r3, #0 movs r2, #6 strb r2, [r0] ldr r6, _08043DB4 @ =0x020314E0 ldr r1, [r6] adds r5, #7 adds r0, r1, r5 adds r0, r0, r7 strh r3, [r0] ldr r6, _08043DB8 @ =0x00000553 adds r1, r1, r6 adds r1, r1, r4 strb r2, [r1] _08043D9E: ldr r7, _08043DB4 @ =0x020314E0 ldr r0, [r7] mov r2, sb asrs r1, r2, #0x10 ldr r3, _08043DBC @ =0x0000054F adds r0, r0, r3 adds r0, r0, r1 bl _080446E8 .align 2, 0 _08043DB0: .4byte 0x0000055B _08043DB4: .4byte 0x020314E0 _08043DB8: .4byte 0x00000553 _08043DBC: .4byte 0x0000054F _08043DC0: ldr r0, _08043E00 @ =0x02032F20 ldr r1, _08043E04 @ =0x086A2D28 bl MPlayStart ldr r2, _08043E08 @ =0x020314E0 ldr r5, [r2] mov r4, sb asrs r6, r4, #0x10 ldr r7, _08043E0C @ =0x0000054F adds r0, r5, r7 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08043E1C lsls r1, r6, #1 ldr r3, _08043E10 @ =0x00000562 adds r0, r5, r3 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r4, _08043E14 @ =0x0000055B adds r0, r5, r4 adds r0, r0, r6 movs r1, #5 strb r1, [r0] ldr r0, [r2] ldr r5, _08043E18 @ =0x00000553 adds r0, r0, r5 adds r0, r0, r6 b _08043E80 .align 2, 0 _08043E00: .4byte 0x02032F20 _08043E04: .4byte 0x086A2D28 _08043E08: .4byte 0x020314E0 _08043E0C: .4byte 0x0000054F _08043E10: .4byte 0x00000562 _08043E14: .4byte 0x0000055B _08043E18: .4byte 0x00000553 _08043E1C: lsls r0, r6, #3 ldr r7, _08043E4C @ =0x00000584 adds r1, r5, r7 adds r1, r1, r0 ldr r2, _08043E50 @ =0x0000055F adds r0, r5, r2 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #8 ldr r1, [r1] adds r1, r1, r0 ldr r3, _08043E54 @ =0x0000132C adds r0, r5, r3 ldr r0, [r0] ldr r0, [r0, #0x38] cmp r1, r0 bge _08043E5C ldr r4, _08043E58 @ =0x00000553 adds r0, r5, r4 adds r0, r0, r6 movs r1, #0xa b _08043E80 .align 2, 0 _08043E4C: .4byte 0x00000584 _08043E50: .4byte 0x0000055F _08043E54: .4byte 0x0000132C _08043E58: .4byte 0x00000553 _08043E5C: lsls r0, r6, #1 ldr r7, _08043EA4 @ =0x00000562 adds r4, r5, r7 adds r4, r4, r0 ldrh r1, [r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0xa0 bl __divsi3 movs r1, #0xac subs r1, r1, r0 strh r1, [r4] ldr r1, _08043EA8 @ =0x00000553 adds r0, r5, r1 adds r0, r0, r6 movs r1, #8 _08043E80: strb r1, [r0] movs r0, #7 bl sub_11B0 ldr r2, _08043EAC @ =0x020314E0 ldr r1, [r2] mov r3, sb asrs r0, r3, #0x10 ldr r4, _08043EB0 @ =0x0000054F adds r1, r1, r4 adds r1, r1, r0 movs r0, #0 strb r0, [r1] ldr r1, [r2] ldr r0, _08043EB4 @ =0x00000BB8 str r0, [r1, #0x3c] bl _080448E4 .align 2, 0 _08043EA4: .4byte 0x00000562 _08043EA8: .4byte 0x00000553 _08043EAC: .4byte 0x020314E0 _08043EB0: .4byte 0x0000054F _08043EB4: .4byte 0x00000BB8 _08043EB8: ldr r5, _08043EE0 @ =0x020314E0 ldr r2, [r5] mov r6, sb asrs r3, r6, #0x10 lsls r1, r3, #1 ldr r7, _08043EE4 @ =0x00000562 adds r0, r2, r7 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #9 bhi _08043EEC adds r0, #1 strh r0, [r1] ldr r1, _08043EE8 @ =0x0000055B adds r0, r2, r1 adds r0, r0, r3 movs r1, #5 strb r1, [r0] bl _080448E4 .align 2, 0 _08043EE0: .4byte 0x020314E0 _08043EE4: .4byte 0x00000562 _08043EE8: .4byte 0x0000055B _08043EEC: movs r0, #0 strh r0, [r1] ldr r4, _08043F00 @ =0x00000553 adds r0, r2, r4 adds r0, r0, r3 movs r1, #6 strb r1, [r0] bl _080448E4 .align 2, 0 _08043F00: .4byte 0x00000553 _08043F04: ldr r3, _08043F38 @ =0x086AFB2C ldr r7, _08043F3C @ =0x020314E0 ldr r2, [r7] mov r6, sb asrs r5, r6, #0x10 ldr r6, _08043F40 @ =0x0000055B adds r0, r2, r6 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043F44 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043F48 adds r0, r1, #1 strh r0, [r2] b _08043F86 .align 2, 0 _08043F38: .4byte 0x086AFB2C _08043F3C: .4byte 0x020314E0 _08043F40: .4byte 0x0000055B _08043F44: .4byte 0x00000562 _08043F48: movs r3, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r7] ldr r4, _08043F9C @ =0x0000055B adds r0, r0, r4 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #9 bne _08043F70 strb r3, [r1] ldr r0, [r7] ldr r1, _08043FA0 @ =0x00000553 adds r0, r0, r1 adds r0, r0, r5 strb r3, [r0] _08043F70: ldr r0, [r7] adds r0, r0, r6 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _08043F86 ldr r0, _08043FA4 @ =0x00000135 bl m4aSongNumStart _08043F86: ldr r0, _08043FA8 @ =0x020314E0 ldr r1, [r0] mov r2, sb asrs r0, r2, #0x10 ldr r3, _08043FAC @ =0x0000054F adds r1, r1, r3 adds r1, r1, r0 movs r0, #0 strb r0, [r1] bl _080448E4 .align 2, 0 _08043F9C: .4byte 0x0000055B _08043FA0: .4byte 0x00000553 _08043FA4: .4byte 0x00000135 _08043FA8: .4byte 0x020314E0 _08043FAC: .4byte 0x0000054F _08043FB0: ldr r3, _08043FE4 @ =0x086AFB2C ldr r6, _08043FE8 @ =0x020314E0 ldr r2, [r6] mov r4, sb asrs r5, r4, #0x10 ldr r7, _08043FEC @ =0x0000055B adds r0, r2, r7 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043FF0 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043FF4 adds r0, r1, #1 strh r0, [r2] b _08044068 .align 2, 0 _08043FE4: .4byte 0x086AFB2C _08043FE8: .4byte 0x020314E0 _08043FEC: .4byte 0x0000055B _08043FF0: .4byte 0x00000562 _08043FF4: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r1, [r6] ldr r4, _08044080 @ =0x0000055B adds r0, r1, r4 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _08044050 ldr r2, _08044084 @ =0x00000553 adds r0, r1, r2 adds r0, r0, r5 movs r1, #8 strb r1, [r0] ldr r2, [r6] lsls r4, r5, #3 movs r0, #0xb0 lsls r0, r0, #3 adds r3, r2, r0 adds r3, r3, r4 ldr r1, _08044088 @ =0x0000055D adds r0, r2, r1 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #8 ldr r0, [r3] adds r0, r0, r1 str r0, [r3] ldr r0, _0804408C @ =0x00000584 adds r3, r2, r0 adds r3, r3, r4 ldr r1, _08044090 @ =0x0000055F adds r2, r2, r1 adds r2, r2, r5 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #8 ldr r0, [r3] adds r0, r0, r1 str r0, [r3] _08044050: ldr r0, [r6] adds r0, r0, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08044068 movs r0, #0xa0 lsls r0, r0, #1 bl m4aSongNumStart _08044068: ldr r0, _08044094 @ =0x020314E0 ldr r1, [r0] mov r2, sb asrs r0, r2, #0x10 ldr r3, _08044098 @ =0x0000054F adds r1, r1, r3 adds r1, r1, r0 movs r0, #2 strb r0, [r1] bl _080448E4 .align 2, 0 _08044080: .4byte 0x0000055B _08044084: .4byte 0x00000553 _08044088: .4byte 0x0000055D _0804408C: .4byte 0x00000584 _08044090: .4byte 0x0000055F _08044094: .4byte 0x020314E0 _08044098: .4byte 0x0000054F _0804409C: ldr r4, _080440D8 @ =0x020314E0 ldr r1, [r4] mov r5, sb asrs r3, r5, #0x10 lsls r4, r3, #1 ldr r6, _080440DC @ =0x00000562 adds r0, r1, r6 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0xb7 bls _080440B4 b _0804423C _080440B4: cmp r0, #0x9f bhi _0804417C ldr r7, _080440E0 @ =0x00000551 adds r0, r1, r7 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080440E4 lsls r0, r3, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r1, r1, r2 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x10 b _080440F2 .align 2, 0 _080440D8: .4byte 0x020314E0 _080440DC: .4byte 0x00000562 _080440E0: .4byte 0x00000551 _080440E4: lsls r0, r3, #3 movs r3, #0xb0 lsls r3, r3, #3 adds r1, r1, r3 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x10 _080440F2: str r0, [r1] ldr r4, _0804411C @ =0x020314E0 ldr r3, [r4] mov r5, sb asrs r2, r5, #0x10 lsls r1, r2, #1 ldr r6, _08044120 @ =0x00000562 adds r0, r3, r6 adds r0, r0, r1 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08044128 lsls r0, r2, #3 ldr r7, _08044124 @ =0x00000584 adds r1, r3, r7 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x10 b _08044134 .align 2, 0 _0804411C: .4byte 0x020314E0 _08044120: .4byte 0x00000562 _08044124: .4byte 0x00000584 _08044128: lsls r0, r2, #3 ldr r2, _08044160 @ =0x00000584 adds r1, r3, r2 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x20 _08044134: str r0, [r1] ldr r3, _08044164 @ =0x020314E0 ldr r4, [r3] mov r6, sb asrs r5, r6, #0x10 lsls r1, r5, #1 ldr r7, _08044168 @ =0x00000562 adds r0, r4, r7 adds r0, r0, r1 ldrh r0, [r0] movs r1, #0x13 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _08044170 ldr r1, _0804416C @ =0x0000055B adds r0, r4, r1 adds r0, r0, r5 movs r1, #0xe b _08044216 .align 2, 0 _08044160: .4byte 0x00000584 _08044164: .4byte 0x020314E0 _08044168: .4byte 0x00000562 _0804416C: .4byte 0x0000055B _08044170: ldr r2, _08044178 @ =0x0000055B adds r0, r4, r2 adds r0, r0, r5 b _08044214 .align 2, 0 _08044178: .4byte 0x0000055B _0804417C: ldr r4, _080441A0 @ =0x00000551 adds r0, r1, r4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080441A4 lsls r0, r3, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r1, r1, r5 adds r1, r1, r0 ldr r0, [r1] movs r6, #0xa0 lsls r6, r6, #1 adds r0, r0, r6 b _080441B4 .align 2, 0 _080441A0: .4byte 0x00000551 _080441A4: lsls r0, r3, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r1, r1, r7 adds r1, r1, r0 ldr r0, [r1] ldr r2, _080441E4 @ =0xFFFFFEC0 adds r0, r0, r2 _080441B4: str r0, [r1] ldr r4, _080441E8 @ =0x020314E0 ldr r3, [r4] mov r5, sb asrs r2, r5, #0x10 lsls r1, r2, #1 ldr r6, _080441EC @ =0x00000562 adds r0, r3, r6 adds r0, r0, r1 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080441F4 lsls r0, r2, #3 ldr r7, _080441F0 @ =0x00000584 adds r1, r3, r7 adds r1, r1, r0 ldr r0, [r1] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 b _08044204 .align 2, 0 _080441E4: .4byte 0xFFFFFEC0 _080441E8: .4byte 0x020314E0 _080441EC: .4byte 0x00000562 _080441F0: .4byte 0x00000584 _080441F4: lsls r0, r2, #3 ldr r4, _0804422C @ =0x00000584 adds r1, r3, r4 adds r1, r1, r0 ldr r0, [r1] movs r5, #0xf0 lsls r5, r5, #1 adds r0, r0, r5 _08044204: str r0, [r1] ldr r6, _08044230 @ =0x020314E0 ldr r0, [r6] mov r7, sb asrs r1, r7, #0x10 ldr r2, _08044234 @ =0x0000055B adds r0, r0, r2 adds r0, r0, r1 _08044214: movs r1, #0xf _08044216: strb r1, [r0] ldr r3, _08044230 @ =0x020314E0 ldr r0, [r3] mov r4, sb asrs r1, r4, #0xf ldr r5, _08044238 @ =0x00000562 adds r0, r0, r5 adds r0, r0, r1 ldrh r1, [r0] adds r1, #1 b _080448E2 .align 2, 0 _0804422C: .4byte 0x00000584 _08044230: .4byte 0x020314E0 _08044234: .4byte 0x0000055B _08044238: .4byte 0x00000562 _0804423C: ldr r6, _08044284 @ =0x00000553 adds r1, r1, r6 adds r1, r1, r3 movs r2, #0 movs r0, #9 strb r0, [r1] ldr r7, _08044288 @ =0x020314E0 ldr r0, [r7] ldr r1, _0804428C @ =0x0000055B adds r0, r0, r1 adds r0, r0, r3 movs r1, #0x10 strb r1, [r0] ldr r1, [r7] ldr r5, _08044290 @ =0x00000562 adds r0, r1, r5 adds r0, r0, r4 strh r2, [r0] subs r6, #2 adds r0, r1, r6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08044294 lsls r0, r3, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r1, r1, r7 adds r1, r1, r0 ldr r0, [r1] adds r0, #0xf0 str r0, [r1] b _080448E4 .align 2, 0 _08044284: .4byte 0x00000553 _08044288: .4byte 0x020314E0 _0804428C: .4byte 0x0000055B _08044290: .4byte 0x00000562 _08044294: lsls r0, r3, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r1, r1, r2 adds r1, r1, r0 ldr r0, [r1] subs r0, #0xf0 str r0, [r1] b _080448E4 _080442A6: ldr r3, _080442DC @ =0x086AFB2C ldr r4, _080442E0 @ =0x020314E0 ldr r2, [r4] mov r6, sb asrs r5, r6, #0x10 ldr r6, _080442E4 @ =0x0000055B adds r0, r2, r6 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r7, _080442E8 @ =0x00000562 adds r2, r2, r7 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _080442EC adds r0, r1, #1 strh r0, [r2] b _080448E4 .align 2, 0 _080442DC: .4byte 0x086AFB2C _080442E0: .4byte 0x020314E0 _080442E4: .4byte 0x0000055B _080442E8: .4byte 0x00000562 _080442EC: movs r3, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r1, _08044334 @ =0x020314E0 ldr r0, [r1] ldr r2, _08044338 @ =0x0000055B adds r0, r0, r2 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x14 bne _08044318 strb r3, [r1] ldr r4, _08044334 @ =0x020314E0 ldr r0, [r4] ldr r7, _0804433C @ =0x00000553 adds r0, r0, r7 adds r0, r0, r5 strb r3, [r0] _08044318: ldr r1, _08044334 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r6 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x11 beq _0804432C b _080448E4 _0804432C: ldr r0, _08044340 @ =0x00000135 bl m4aSongNumStart b _080448E4 .align 2, 0 _08044334: .4byte 0x020314E0 _08044338: .4byte 0x0000055B _0804433C: .4byte 0x00000553 _08044340: .4byte 0x00000135 _08044344: ldr r2, _0804442C @ =0x020314E0 ldr r6, [r2] mov r3, sb asrs r4, r3, #0x10 ldr r5, _08044430 @ =0x00000551 adds r0, r6, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r2, #0 cmp r0, #0 bne _08044360 movs r2, #3 _08044360: ldr r1, _08044434 @ =0x086AFAC0 lsls r2, r2, #0x10 lsrs r0, r2, #0xd adds r3, r0, r1 ldrh r0, [r3, #4] lsls r5, r0, #0x10 movs r7, #0 mov ip, r1 mov sl, r2 cmp r5, #0 ble _0804439E ldr r3, [r3] lsls r1, r4, #1 ldr r2, _08044438 @ =0x00000566 adds r0, r6, r2 adds r0, r0, r1 movs r4, #0 ldrsh r1, [r0, r4] _08044384: lsls r0, r7, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #2 adds r0, r0, r3 movs r6, #2 ldrsh r0, [r0, r6] cmp r0, r1 ble _0804439E adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r0, r5 blt _08044384 _0804439E: ldr r1, _0804442C @ =0x020314E0 ldr r0, [r1] mov r2, sb asrs r5, r2, #0x10 ldr r4, _0804443C @ =0x00000559 adds r0, r0, r4 adds r0, r0, r5 movs r3, #0 strb r7, [r0] ldr r0, [r1] ldr r6, _08044440 @ =0x00000553 adds r0, r0, r6 adds r0, r0, r5 movs r1, #0xb strb r1, [r0] ldr r7, _0804442C @ =0x020314E0 ldr r0, [r7] ldr r1, _08044444 @ =0x0000055B adds r0, r0, r1 adds r0, r0, r5 movs r1, #0x1d strb r1, [r0] ldr r2, [r7] lsls r1, r5, #1 adds r6, #0xf adds r0, r2, r6 adds r0, r0, r1 movs r7, #0 mov r8, r7 strh r3, [r0] lsls r6, r5, #3 movs r0, #0xb0 lsls r0, r0, #3 adds r3, r2, r0 adds r3, r3, r6 mov r7, sl lsrs r1, r7, #0xd add r1, ip adds r4, r2, r4 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] ldr r1, [r1] lsls r0, r0, #2 adds r0, r0, r1 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 str r0, [r3] ldr r0, _08044448 @ =0x00000584 adds r2, r2, r0 adds r2, r2, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r1 movs r1, #2 ldrsh r0, [r0, r1] lsls r0, r0, #8 str r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r2, _0804442C @ =0x020314E0 ldr r0, [r2] ldr r3, _0804444C @ =0x0000054F adds r0, r0, r3 adds r0, r0, r5 mov r4, r8 strb r4, [r0] b _080448E4 .align 2, 0 _0804442C: .4byte 0x020314E0 _08044430: .4byte 0x00000551 _08044434: .4byte 0x086AFAC0 _08044438: .4byte 0x00000566 _0804443C: .4byte 0x00000559 _08044440: .4byte 0x00000553 _08044444: .4byte 0x0000055B _08044448: .4byte 0x00000584 _0804444C: .4byte 0x0000054F _08044450: ldr r5, _08044528 @ =0x020314E0 ldr r6, [r5] mov r7, sb asrs r4, r7, #0x10 ldr r0, _0804452C @ =0x00000551 mov sl, r0 adds r0, r6, r0 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r2, #0 cmp r0, #0 bne _0804446E movs r2, #3 _0804446E: ldr r1, _08044530 @ =0x00000559 adds r0, r6, r1 adds r5, r0, r4 movs r3, #0 ldrsb r3, [r5, r3] mov r8, r3 ldr r1, _08044534 @ =0x086AFAC0 lsls r0, r2, #3 adds r0, r0, r1 mov ip, r0 movs r7, #4 ldrsh r0, [r0, r7] cmp r8, r0 bge _08044566 lsls r2, r4, #3 movs r0, #0xb0 lsls r0, r0, #3 adds r1, r6, r0 adds r1, r1, r2 mov r7, ip ldr r3, [r7] mov r7, r8 lsls r0, r7, #2 adds r0, r0, r3 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 str r0, [r1] ldr r0, _08044538 @ =0x00000584 adds r1, r6, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #2 adds r0, r0, r3 movs r2, #2 ldrsh r0, [r0, r2] lsls r0, r0, #8 str r0, [r1] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r3, _08044528 @ =0x020314E0 ldr r2, [r3] ldr r5, _08044530 @ =0x00000559 adds r0, r2, r5 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] mov r6, ip movs r7, #4 ldrsh r0, [r6, r7] cmp r1, r0 bne _08044566 ldr r1, _0804453C @ =0x00000553 adds r0, r2, r1 adds r0, r0, r4 movs r1, #0xc strb r1, [r0] ldr r0, [r3] movs r2, #0xa6 lsls r2, r2, #3 adds r1, r0, r2 adds r1, r1, r4 add r0, sl adds r0, r0, r4 ldrb r0, [r0] strb r0, [r1] ldr r0, [r3] ldr r3, _08044540 @ =0x00000536 adds r0, r0, r3 adds r0, r0, r4 movs r1, #2 strb r1, [r0] ldr r5, _08044528 @ =0x020314E0 ldr r1, [r5] mov r6, sl adds r0, r1, r6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08044544 lsls r0, r4, #2 adds r0, r1, r0 movs r7, #0xaf lsls r7, r7, #3 adds r0, r0, r7 movs r1, #0xa0 lsls r1, r1, #1 b _08044550 .align 2, 0 _08044528: .4byte 0x020314E0 _0804452C: .4byte 0x00000551 _08044530: .4byte 0x00000559 _08044534: .4byte 0x086AFAC0 _08044538: .4byte 0x00000584 _0804453C: .4byte 0x00000553 _08044540: .4byte 0x00000536 _08044544: lsls r0, r4, #2 adds r0, r1, r0 movs r1, #0xaf lsls r1, r1, #3 adds r0, r0, r1 ldr r1, _080445A4 @ =0x0000FEC0 _08044550: strh r1, [r0] ldr r2, _080445A8 @ =0x020314E0 ldr r0, [r2] mov r3, sb asrs r1, r3, #0xe adds r0, r0, r1 ldr r4, _080445AC @ =0x0000057A adds r0, r0, r4 movs r1, #0xe8 lsls r1, r1, #1 strh r1, [r0] _08044566: ldr r5, _080445A8 @ =0x020314E0 ldr r0, [r5] mov r6, sb asrs r4, r6, #0x10 ldr r7, _080445B0 @ =0x0000055B adds r3, r0, r7 adds r3, r3, r4 lsls r5, r4, #1 ldr r2, _080445B4 @ =0x00000562 adds r0, r0, r2 adds r0, r0, r5 ldrh r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #2 adds r0, #0x1e strb r0, [r3] ldr r0, _080445A8 @ =0x020314E0 ldr r1, [r0] adds r2, r1, r2 adds r2, r2, r5 ldrh r0, [r2] adds r0, #1 movs r3, #0 strh r0, [r2] ldr r2, _080445B8 @ =0x0000054F adds r1, r1, r2 adds r1, r1, r4 strb r3, [r1] b _080448E4 .align 2, 0 _080445A4: .4byte 0x0000FEC0 _080445A8: .4byte 0x020314E0 _080445AC: .4byte 0x0000057A _080445B0: .4byte 0x0000055B _080445B4: .4byte 0x00000562 _080445B8: .4byte 0x0000054F _080445BC: ldr r3, _08044610 @ =0x020314E0 ldr r4, [r3] mov r5, sb asrs r6, r5, #0x10 lsls r5, r6, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r3, r4, r7 adds r3, r3, r5 lsls r2, r6, #2 adds r2, r4, r2 movs r1, #0xaf lsls r1, r1, #3 adds r0, r2, r1 movs r7, #0 ldrsh r1, [r0, r7] ldr r0, [r3] adds r0, r0, r1 str r0, [r3] ldr r0, _08044614 @ =0x00000584 adds r1, r4, r0 adds r1, r1, r5 ldr r3, _08044618 @ =0x0000057A adds r2, r2, r3 movs r5, #0 ldrsh r2, [r2, r5] ldr r0, [r1] adds r0, r0, r2 str r0, [r1] ldr r7, _0804461C @ =0x0000055B adds r3, r4, r7 adds r3, r3, r6 lsls r5, r6, #1 ldr r2, _08044620 @ =0x00000562 adds r4, r4, r2 adds r4, r4, r5 ldrh r0, [r4] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #2 adds r0, #0x1e b _08044676 .align 2, 0 _08044610: .4byte 0x020314E0 _08044614: .4byte 0x00000584 _08044618: .4byte 0x0000057A _0804461C: .4byte 0x0000055B _08044620: .4byte 0x00000562 _08044624: ldr r3, _08044694 @ =0x020314E0 ldr r4, [r3] mov r5, sb asrs r6, r5, #0x10 lsls r5, r6, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r3, r4, r7 adds r3, r3, r5 lsls r2, r6, #2 adds r2, r4, r2 movs r1, #0xaf lsls r1, r1, #3 adds r0, r2, r1 movs r7, #0 ldrsh r1, [r0, r7] ldr r0, [r3] adds r0, r0, r1 str r0, [r3] ldr r0, _08044698 @ =0x00000584 adds r1, r4, r0 adds r1, r1, r5 ldr r3, _0804469C @ =0x0000057A adds r2, r2, r3 movs r5, #0 ldrsh r2, [r2, r5] ldr r0, [r1] adds r0, r0, r2 str r0, [r1] ldr r7, _080446A0 @ =0x0000055B adds r3, r4, r7 adds r3, r3, r6 lsls r5, r6, #1 ldr r2, _080446A4 @ =0x00000562 adds r4, r4, r2 adds r4, r4, r5 ldrh r0, [r4] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 adds r0, #0x1a _08044676: strb r0, [r3] ldr r0, _08044694 @ =0x020314E0 ldr r1, [r0] adds r2, r1, r2 adds r2, r2, r5 ldrh r0, [r2] adds r0, #1 movs r3, #0 strh r0, [r2] ldr r2, _080446A8 @ =0x0000054F adds r1, r1, r2 adds r1, r1, r6 strb r3, [r1] b _080448E4 .align 2, 0 _08044694: .4byte 0x020314E0 _08044698: .4byte 0x00000584 _0804469C: .4byte 0x0000057A _080446A0: .4byte 0x0000055B _080446A4: .4byte 0x00000562 _080446A8: .4byte 0x0000054F _080446AC: ldr r3, _080446F0 @ =0x020314E0 ldr r1, [r3] mov r5, sb asrs r4, r5, #0x10 ldr r6, _080446F4 @ =0x00000557 adds r1, r1, r6 adds r1, r1, r4 movs r0, #0xff strb r0, [r1] ldr r5, [r3] ldr r7, _080446F8 @ =0x0000054D adds r0, r5, r7 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08044704 subs r0, r2, #1 strb r0, [r1] ldr r0, [r3] ldr r1, _080446FC @ =0x0000055B adds r0, r0, r1 adds r0, r0, r4 movs r1, #0x26 strb r1, [r0] ldr r0, [r3] ldr r2, _08044700 @ =0x0000054B adds r0, r0, r2 adds r0, r0, r4 _080446E8: movs r1, #1 strb r1, [r0] b _080448E4 .align 2, 0 _080446F0: .4byte 0x020314E0 _080446F4: .4byte 0x00000557 _080446F8: .4byte 0x0000054D _080446FC: .4byte 0x0000055B _08044700: .4byte 0x0000054B _08044704: lsls r2, r4, #1 ldr r6, _08044748 @ =0x00000562 adds r0, r5, r6 adds r3, r0, r2 ldrh r1, [r3] ldr r0, _0804474C @ =0x0000014D cmp r1, r0 bls _08044716 b _080448C4 _08044716: cmp r1, #0xf bhi _0804475C ldr r3, _08044750 @ =0x0000055B adds r0, r5, r3 adds r0, r0, r4 movs r1, #0x15 strb r1, [r0] ldr r5, _08044754 @ =0x020314E0 ldr r0, [r5] adds r0, r0, r6 adds r0, r0, r2 ldrh r0, [r0] cmp r0, #1 bne _0804473A movs r0, #0x9f lsls r0, r0, #1 bl m4aSongNumStart _0804473A: ldr r6, _08044754 @ =0x020314E0 ldr r0, [r6] ldr r7, _08044758 @ =0x0000054F adds r0, r0, r7 adds r0, r0, r4 b _08044824 .align 2, 0 _08044748: .4byte 0x00000562 _0804474C: .4byte 0x0000014D _08044750: .4byte 0x0000055B _08044754: .4byte 0x020314E0 _08044758: .4byte 0x0000054F _0804475C: ldr r0, _0804479C @ =0x0000013B cmp r1, r0 bhi _08044840 ldr r1, _080447A0 @ =0x0000054B adds r0, r5, r1 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080447B8 lsls r0, r4, #3 ldr r2, _080447A4 @ =0x00000584 adds r1, r5, r2 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x40 str r0, [r1] ldrh r0, [r3] movs r1, #0x13 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _080447AC ldr r3, _080447A8 @ =0x0000055B adds r0, r5, r3 adds r0, r0, r4 movs r1, #0x16 b _080447F0 .align 2, 0 _0804479C: .4byte 0x0000013B _080447A0: .4byte 0x0000054B _080447A4: .4byte 0x00000584 _080447A8: .4byte 0x0000055B _080447AC: ldr r6, _080447B4 @ =0x0000055B adds r0, r5, r6 b _080447EC .align 2, 0 _080447B4: .4byte 0x0000055B _080447B8: lsls r0, r4, #3 ldr r7, _080447E0 @ =0x00000584 adds r1, r5, r7 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x80 str r0, [r1] ldrh r0, [r3] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #4 bhi _080447E8 ldr r1, _080447E4 @ =0x0000055B adds r0, r5, r1 adds r0, r0, r4 movs r1, #0x16 b _080447F0 .align 2, 0 _080447E0: .4byte 0x00000584 _080447E4: .4byte 0x0000055B _080447E8: ldr r2, _0804482C @ =0x0000055B adds r0, r5, r2 _080447EC: adds r0, r0, r4 movs r1, #0x17 _080447F0: strb r1, [r0] ldr r4, _08044830 @ =0x020314E0 ldr r3, [r4] mov r5, sb asrs r2, r5, #0x10 lsls r1, r2, #3 ldr r6, _08044834 @ =0x00000584 adds r0, r3, r6 adds r0, r0, r1 ldr r1, [r0] movs r0, #0xac lsls r0, r0, #8 cmp r1, r0 ble _0804481A lsls r0, r2, #1 ldr r7, _08044838 @ =0x00000562 adds r1, r3, r7 adds r1, r1, r0 movs r0, #0x9e lsls r0, r0, #1 strh r0, [r1] _0804481A: ldr r1, _08044830 @ =0x020314E0 ldr r0, [r1] ldr r3, _0804483C @ =0x0000054F adds r0, r0, r3 adds r0, r0, r2 _08044824: movs r1, #3 strb r1, [r0] b _080448A0 .align 2, 0 _0804482C: .4byte 0x0000055B _08044830: .4byte 0x020314E0 _08044834: .4byte 0x00000584 _08044838: .4byte 0x00000562 _0804483C: .4byte 0x0000054F _08044840: lsls r0, r4, #3 ldr r6, _0804486C @ =0x00000584 adds r1, r5, r6 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x30 str r0, [r1] ldr r7, _08044870 @ =0xFFFFFEC4 adds r0, r7, #0 ldrh r3, [r3] adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bgt _08044878 ldr r1, _08044874 @ =0x0000055B adds r0, r5, r1 adds r0, r0, r4 movs r1, #0x18 b _08044880 .align 2, 0 _0804486C: .4byte 0x00000584 _08044870: .4byte 0xFFFFFEC4 _08044874: .4byte 0x0000055B _08044878: ldr r3, _080448B4 @ =0x0000055B adds r0, r5, r3 adds r0, r0, r4 movs r1, #0x19 _08044880: strb r1, [r0] cmp r2, #1 bne _0804488E movs r0, #0x9b lsls r0, r0, #1 bl m4aSongNumStart _0804488E: ldr r2, _080448B8 @ =0x020314E0 ldr r1, [r2] mov r4, sb asrs r0, r4, #0x10 ldr r5, _080448BC @ =0x0000054F adds r1, r1, r5 adds r1, r1, r0 movs r0, #0 strb r0, [r1] _080448A0: ldr r6, _080448B8 @ =0x020314E0 ldr r0, [r6] mov r7, sb asrs r1, r7, #0xf ldr r2, _080448C0 @ =0x00000562 adds r0, r0, r2 adds r0, r0, r1 ldrh r1, [r0] adds r1, #1 b _080448E2 .align 2, 0 _080448B4: .4byte 0x0000055B _080448B8: .4byte 0x020314E0 _080448BC: .4byte 0x0000054F _080448C0: .4byte 0x00000562 _080448C4: ldr r3, _08044A9C @ =0x00000553 adds r0, r5, r3 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r5, _08044AA0 @ =0x020314E0 ldr r0, [r5] ldr r6, _08044AA4 @ =0x0000055B adds r0, r0, r6 adds r0, r0, r4 strb r1, [r0] ldr r0, [r5] ldr r7, _08044AA8 @ =0x00000562 adds r0, r0, r7 adds r0, r0, r2 _080448E2: strh r1, [r0] _080448E4: ldr r1, [sp] lsls r0, r1, #0x10 movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 lsrs r3, r0, #0x10 str r3, [sp] asrs r0, r0, #0x10 cmp r0, #1 bgt _080448FC bl _080438AA _080448FC: movs r4, #0 str r4, [sp] _08044900: ldr r5, [sp] lsls r1, r5, #0x10 asrs r4, r1, #0x10 movs r0, #0xb8 muls r0, r4, r0 ldr r6, _08044AAC @ =0x0200BDC8 adds r0, r0, r6 mov r8, r0 ldrh r0, [r0] mov sb, r1 cmp r0, #0 bne _0804491A b _08044D12 _0804491A: ldr r7, _08044AA0 @ =0x020314E0 ldr r1, [r7] ldr r0, _08044AB0 @ =0x00000555 adds r3, r1, r0 adds r3, r3, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] ldr r2, _08044AA4 @ =0x0000055B adds r0, r1, r2 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #1 ldr r0, _08044AB4 @ =0x086AFB2C adds r0, #4 adds r2, r2, r0 ldr r5, _08044AB8 @ =0x00000551 adds r1, r1, r5 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #1 subs r1, r1, r0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 ldrb r2, [r2] adds r0, r0, r2 strb r0, [r3] ldr r2, [r7] ldr r6, _08044AA4 @ =0x0000055B adds r0, r2, r6 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 ldr r7, _08044AB4 @ =0x086AFB2C adds r0, r0, r7 ldrh r5, [r0] lsls r3, r4, #3 movs r1, #0xb0 lsls r1, r1, #3 adds r0, r2, r1 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _0804498A adds r0, #0xff _0804498A: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x58 ldrh r0, [r0] adds r0, #0xc subs r1, r1, r0 mov r6, r8 strh r1, [r6, #2] ldr r7, _08044ABC @ =0x00000584 adds r0, r2, r7 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _080449A8 adds r0, #0xff _080449A8: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] adds r0, #0xe subs r1, r1, r0 mov r0, r8 strh r1, [r0, #4] ldr r2, [sp, #4] lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _08044AC0 @ =0x084B046C adds r0, r0, r1 ldr r6, _08044AC4 @ =0x040000D4 str r0, [r6] adds r0, r3, r4 lsls r0, r0, #5 ldr r7, _08044AC8 @ =0x06011CA0 adds r0, r0, r7 str r0, [r6, #4] ldr r0, _08044ACC @ =0x80000090 str r0, [r6, #8] ldr r0, [r6, #8] movs r7, #0 lsls r0, r5, #0x10 ldr r1, _08044AD0 @ =0x03005000 mov ip, r1 adds r6, r4, #0 asrs r0, r0, #0x10 mov sl, r0 _080449EA: lsls r0, r7, #0x10 asrs r3, r0, #0x10 lsls r0, r3, #3 adds r0, #8 mov r2, r8 adds r5, r2, r0 ldrh r2, [r5] lsls r2, r2, #3 add r2, ip mov r4, sl lsls r1, r4, #1 add r1, sl lsls r1, r1, #3 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r4, _08044AD4 @ =0x086B56D8 adds r0, r0, r4 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldr r0, _08044AA0 @ =0x020314E0 ldr r1, [r0] ldr r2, _08044AB8 @ =0x00000551 adds r0, r1, r2 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08044AE8 cmp r3, #0 bne _08044A5E ldr r3, _08044AD8 @ =0x0000055D adds r1, r1, r3 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrb r0, [r0, #2] rsbs r0, r0, #0 strb r0, [r1] ldr r4, _08044AA0 @ =0x020314E0 ldr r1, [r4] ldr r0, _08044ADC @ =0x0000055F adds r1, r1, r0 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrb r0, [r0] strb r0, [r1] _08044A5E: ldrh r3, [r5] lsls r3, r3, #3 add r3, ip ldrh r4, [r3, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov r2, r8 movs r0, #2 ldrsh r2, [r2, r0] str r2, [sp, #8] ldr r2, _08044AA0 @ =0x020314E0 ldr r0, [r2] ldr r2, _08044AD8 @ =0x0000055D adds r0, r0, r2 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 ldr r2, [sp, #8] adds r0, r2, r0 adds r1, r1, r0 ldr r2, _08044AE0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldr r0, _08044AE4 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r3, #2] b _08044B36 .align 2, 0 _08044A9C: .4byte 0x00000553 _08044AA0: .4byte 0x020314E0 _08044AA4: .4byte 0x0000055B _08044AA8: .4byte 0x00000562 _08044AAC: .4byte 0x0200BDC8 _08044AB0: .4byte 0x00000555 _08044AB4: .4byte 0x086AFB2C _08044AB8: .4byte 0x00000551 _08044ABC: .4byte 0x00000584 _08044AC0: .4byte 0x084B046C _08044AC4: .4byte 0x040000D4 _08044AC8: .4byte 0x06011CA0 _08044ACC: .4byte 0x80000090 _08044AD0: .4byte 0x03005000 _08044AD4: .4byte 0x086B56D8 _08044AD8: .4byte 0x0000055D _08044ADC: .4byte 0x0000055F _08044AE0: .4byte 0x000001FF _08044AE4: .4byte 0xFFFFFE00 _08044AE8: cmp r3, #0 bne _08044B10 ldr r3, _08044C24 @ =0x0000055D adds r1, r1, r3 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrh r0, [r0, #2] strb r0, [r1] ldr r4, _08044C28 @ =0x020314E0 ldr r1, [r4] ldr r0, _08044C2C @ =0x0000055F adds r1, r1, r0 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrb r0, [r0] strb r0, [r1] _08044B10: ldrh r2, [r5] lsls r2, r2, #3 add r2, ip ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 str r1, [sp, #0xc] mov r1, r8 movs r4, #2 ldrsh r0, [r1, r4] ldr r4, [sp, #0xc] adds r1, r4, r0 ldr r4, _08044C30 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08044C34 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] _08044B36: ldrh r1, [r5] lsls r1, r1, #3 add r1, ip mov r2, r8 ldrb r0, [r2, #4] ldrb r3, [r1] adds r0, r0, r3 strb r0, [r1] ldrh r2, [r5] lsls r2, r2, #3 add r2, ip ldrh r3, [r2, #4] lsls r1, r3, #0x16 lsrs r1, r1, #0x16 lsls r0, r6, #3 adds r0, r0, r6 adds r1, r1, r0 ldr r4, _08044C38 @ =0x000003FF adds r0, r4, #0 ands r1, r0 ldr r0, _08044C3C @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] lsls r0, r7, #0x10 movs r5, #0x80 lsls r5, r5, #9 adds r0, r0, r5 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _08044B78 b _080449EA _08044B78: ldr r6, _08044C28 @ =0x020314E0 ldr r2, [r6] mov r7, sb asrs r3, r7, #0x10 lsls r0, r3, #2 adds r6, r2, r0 lsls r4, r3, #3 movs r1, #0xb0 lsls r1, r1, #3 adds r0, r2, r1 adds r0, r0, r4 ldr r0, [r0] cmp r0, #0 bge _08044B96 adds r0, #0xff _08044B96: asrs r1, r0, #8 ldr r5, _08044C24 @ =0x0000055D adds r0, r2, r5 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #0x10 adds r1, r1, r0 lsls r1, r1, #1 movs r7, #0xae lsls r7, r7, #3 adds r0, r6, r7 strh r1, [r0] ldr r1, _08044C40 @ =0x00000584 adds r0, r2, r1 adds r7, r0, r4 ldr r1, [r7] cmp r1, #0 bge _08044BC0 adds r1, #0xff _08044BC0: asrs r1, r1, #8 ldr r4, _08044C2C @ =0x0000055F adds r0, r2, r4 adds r5, r0, r3 movs r0, #0 ldrsb r0, [r5, r0] subs r0, #0x12 adds r1, r1, r0 lsls r1, r1, #1 adds r4, #0x13 adds r0, r6, r4 strh r1, [r0] lsls r1, r3, #1 ldr r6, _08044C44 @ =0x00000566 adds r0, r2, r6 adds r4, r0, r1 ldr r0, [r7] cmp r0, #0 bge _08044BE8 adds r0, #0xff _08044BE8: asrs r1, r0, #8 movs r0, #0 ldrsb r0, [r5, r0] adds r0, r0, r1 strh r0, [r4] movs r0, #0xb8 muls r0, r3, r0 ldr r7, _08044C48 @ =0x0200BF38 adds r0, r0, r7 mov r8, r0 ldr r1, [sp, #4] lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc beq _08044C0A cmp r0, #0x2a bne _08044C50 _08044C0A: ldr r4, _08044C4C @ =0x0000055B adds r0, r2, r4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r5, #9 str r5, [sp, #4] cmp r0, #0xb bne _08044C54 movs r6, #8 str r6, [sp, #4] b _08044C54 .align 2, 0 _08044C24: .4byte 0x0000055D _08044C28: .4byte 0x020314E0 _08044C2C: .4byte 0x0000055F _08044C30: .4byte 0x000001FF _08044C34: .4byte 0xFFFFFE00 _08044C38: .4byte 0x000003FF _08044C3C: .4byte 0xFFFFFC00 _08044C40: .4byte 0x00000584 _08044C44: .4byte 0x00000566 _08044C48: .4byte 0x0200BF38 _08044C4C: .4byte 0x0000055B _08044C50: movs r7, #0 str r7, [sp, #4] _08044C54: ldr r0, _08044D34 @ =0x020314E0 ldr r2, [r0] mov r1, sb asrs r4, r1, #0x10 lsls r3, r4, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r2, r5 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _08044C6E adds r0, #0xff _08044C6E: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x58 ldrh r0, [r0] adds r0, #0xc subs r1, r1, r0 mov r6, r8 strh r1, [r6, #2] ldr r7, _08044D38 @ =0x00000584 adds r0, r2, r7 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _08044C8C adds r0, #0xff _08044C8C: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] adds r0, #0xe subs r1, r1, r0 mov r0, r8 strh r1, [r0, #4] ldr r2, [sp, #4] lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r5, _08044D3C @ =0x084B046C adds r0, r0, r5 ldr r6, _08044D40 @ =0x040000D4 str r0, [r6] adds r0, r3, r4 lsls r0, r0, #5 ldr r7, _08044D44 @ =0x06011EE0 adds r0, r0, r7 str r0, [r6, #4] ldr r0, _08044D48 @ =0x80000090 str r0, [r6, #8] ldr r0, [r6, #8] movs r7, #0 ldr r6, _08044D4C @ =0x03005000 ldr r0, _08044D50 @ =0xFFFFFE00 mov sl, r0 _08044CC8: lsls r3, r7, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 mov r1, r8 adds r5, r1, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 movs r4, #2 ldrsh r1, [r5, r4] mov r7, r8 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r7, _08044D54 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, r8 ldrb r0, [r2, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _08044CC8 _08044D12: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r3, r0, #0x10 str r3, [sp] asrs r0, r0, #0x10 cmp r0, #1 bgt _08044D24 b _08044900 _08044D24: add sp, #0x10 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 _08044D34: .4byte 0x020314E0 _08044D38: .4byte 0x00000584 _08044D3C: .4byte 0x084B046C _08044D40: .4byte 0x040000D4 _08044D44: .4byte 0x06011EE0 _08044D48: .4byte 0x80000090 _08044D4C: .4byte 0x03005000 _08044D50: .4byte 0xFFFFFE00 _08044D54: .4byte 0x000001FF thumb_func_start sub_44D58 sub_44D58: @ 0x08044D58 push {r4, r5, r6, r7, lr} movs r0, #0 mov ip, r0 ldr r6, _08044EE4 @ =0x0200C0A8 ldrh r0, [r6] ldr r7, _08044EE8 @ =0x020314E0 cmp r0, #0 beq _08044DE8 ldr r0, [r7] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x68 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x56 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r7] ldr r2, _08044EEC @ =0x00000542 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x15 bhi _08044D9C ldr r0, _08044EF0 @ =0x08137D60 ldrh r1, [r1] adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov ip, r0 _08044D9C: ldr r2, _08044EF4 @ =0x040000D4 mov r3, ip lsls r0, r3, #0x10 asrs r0, r0, #7 ldr r1, _08044EF8 @ =0x084AF9EC adds r0, r0, r1 str r0, [r2] ldr r0, _08044EFC @ =0x06010920 str r0, [r2, #4] ldr r0, _08044F00 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _08044F04 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08044F08 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08044F0C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] _08044DE8: ldr r6, _08044F10 @ =0x0200BBA0 ldrh r0, [r6] cmp r0, #0 beq _08044E72 ldr r0, [r7] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x68 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x5e subs r0, r0, r1 strh r0, [r6, #4] ldr r2, _08044EF4 @ =0x040000D4 mov r0, ip lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08044F14 @ =0x084AFFEC adds r0, r0, r1 str r0, [r2] ldr r0, _08044F18 @ =0x06010B20 str r0, [r2, #4] ldr r0, _08044F1C @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _08044F04 @ =0x03005000 ldr r1, _08044F0C @ =0xFFFFFE00 mov ip, r1 _08044E2E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08044F08 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08044E2E _08044E72: ldr r4, _08044EE8 @ =0x020314E0 ldr r0, [r4] movs r1, #0x13 ldrsb r1, [r0, r1] cmp r1, #1 bne _08044E88 ldr r0, _08044F20 @ =gMain movs r3, #0xae lsls r3, r3, #4 adds r0, r0, r3 strh r1, [r0] _08044E88: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08044EC8 ldr r0, _08044F20 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _08044EC8 ldr r5, _08044EEC @ =0x00000542 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 beq _08044EC8 cmp r0, #0x15 bne _08044EB0 ldr r0, _08044F24 @ =0x02032F20 ldr r1, _08044F28 @ =0x086A2D94 bl MPlayStart _08044EB0: ldr r1, [r4] adds r1, r1, r5 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08044EC8 ldr r0, _08044F24 @ =0x02032F20 ldr r1, _08044F2C @ =0x086A2E70 bl MPlayStart _08044EC8: ldr r0, _08044EE8 @ =0x020314E0 ldr r0, [r0] adds r0, #0x7e ldrh r0, [r0] cmp r0, #0 beq _08044F34 ldr r0, _08044F20 @ =gMain ldrb r0, [r0, #5] cmp r0, #0 bne _08044F30 bl sub_44F3C b _08044F34 .align 2, 0 _08044EE4: .4byte 0x0200C0A8 _08044EE8: .4byte 0x020314E0 _08044EEC: .4byte 0x00000542 _08044EF0: .4byte 0x08137D60 _08044EF4: .4byte 0x040000D4 _08044EF8: .4byte 0x084AF9EC _08044EFC: .4byte 0x06010920 _08044F00: .4byte 0x80000100 _08044F04: .4byte 0x03005000 _08044F08: .4byte 0x000001FF _08044F0C: .4byte 0xFFFFFE00 _08044F10: .4byte 0x0200BBA0 _08044F14: .4byte 0x084AFFEC _08044F18: .4byte 0x06010B20 _08044F1C: .4byte 0x800000C0 _08044F20: .4byte gMain _08044F24: .4byte 0x02032F20 _08044F28: .4byte 0x086A2D94 _08044F2C: .4byte 0x086A2E70 _08044F30: bl sub_45164 _08044F34: pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_44F3C sub_44F3C: @ 0x08044F3C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r6, _08045010 @ =0x0200C160 ldrh r0, [r6] ldr r1, _08045014 @ =0x020314E0 mov sb, r1 ldr r2, _08045018 @ =0x086AFC16 mov r8, r2 cmp r0, #0 beq _08044FE6 ldr r1, [r1] ldr r3, _0804501C @ =0x00000591 adds r0, r1, r3 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 add r2, r8 ldrh r0, [r2, #4] adds r0, #0x86 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldrh r1, [r2, #6] adds r1, #0x9a mov r3, sb ldr r0, [r3] adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #4] ldr r3, _08045020 @ =0x040000D4 movs r0, #0 ldrsh r1, [r2, r0] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08045024 @ =0x084B7FEC adds r0, r0, r1 str r0, [r3] ldr r0, _08045028 @ =0x06012120 str r0, [r3, #4] ldr r0, _0804502C @ =0x80000230 str r0, [r3, #8] ldr r0, [r3, #8] movs r0, #0 ldr r7, _08045030 @ =0x03005000 ldr r1, _08045034 @ =0xFFFFFE00 mov ip, r1 _08044FA2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08045038 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _08044FA2 _08044FE6: mov r5, sb ldr r2, [r5] ldr r6, _0804501C @ =0x00000591 adds r4, r2, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #3 mov r1, r8 adds r1, #2 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] ldr r1, _0804503C @ =0x00000592 adds r2, r2, r1 ldrh r3, [r2] cmp r0, r3 ble _08045040 adds r0, r3, #1 strh r0, [r2] b _08045148 .align 2, 0 _08045010: .4byte 0x0200C160 _08045014: .4byte 0x020314E0 _08045018: .4byte 0x086AFC16 _0804501C: .4byte 0x00000591 _08045020: .4byte 0x040000D4 _08045024: .4byte 0x084B7FEC _08045028: .4byte 0x06012120 _0804502C: .4byte 0x80000230 _08045030: .4byte 0x03005000 _08045034: .4byte 0xFFFFFE00 _08045038: .4byte 0x000001FF _0804503C: .4byte 0x00000592 _08045040: movs r3, #0 mov r8, r3 movs r7, #0 strh r7, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r5] ldr r1, _08045154 @ =0x00000591 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #1 bne _08045066 ldr r0, _08045158 @ =gMain movs r2, #0x85 lsls r2, r2, #5 adds r0, r0, r2 strh r1, [r0] _08045066: ldr r0, [r5] adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x13 bne _08045086 movs r0, #0x12 strb r0, [r1] ldr r0, _08045158 @ =gMain movs r3, #0x85 lsls r3, r3, #5 adds r0, r0, r3 strh r7, [r0] ldr r0, [r5] adds r0, #0x7e strh r7, [r0] _08045086: ldr r2, [r5] adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _080450C8 ldr r0, _0804515C @ =0x0000132C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #0xa] subs r0, #0x40 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x8d lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xc8 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r1, [r2] ldr r0, _08045160 @ =0x0000FFA0 strh r0, [r1, #0x30] ldr r1, [r2] movs r0, #0x54 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #3 strb r0, [r1, #1] movs r0, #7 bl sub_11B0 _080450C8: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _080450DC movs r0, #0xd3 bl m4aSongNumStart _080450DC: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _080450F0 movs r0, #0xd4 bl m4aSongNumStart _080450F0: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _08045134 movs r0, #0xd6 bl m4aSongNumStart ldr r0, [r5] ldr r2, _0804515C @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] mov r1, r8 strb r1, [r0] ldr r1, [r5] adds r1, r1, r2 ldr r2, [r1] ldrh r0, [r2, #0xa] subs r0, #0x40 strh r0, [r2, #0xa] ldr r2, [r1] movs r0, #0x8f lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r0, #0xc3 lsls r0, r0, #8 str r0, [r2, #0x38] ldr r0, [r1] strh r7, [r0, #0x30] ldr r0, [r1] strh r7, [r0, #0x32] _08045134: mov r2, sb ldr r1, [r2] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08045148 mov r3, r8 strb r3, [r1, #0x1f] _08045148: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08045154: .4byte 0x00000591 _08045158: .4byte gMain _0804515C: .4byte 0x0000132C _08045160: .4byte 0x0000FFA0 thumb_func_start sub_45164 sub_45164: @ 0x08045164 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _080452A0 @ =0x0200C218 ldrh r0, [r6] cmp r0, #0 beq _08045234 ldr r0, _080452A4 @ =0x020314E0 ldr r4, [r0] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x92 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _080452A4 @ =0x020314E0 ldr r4, [r3] ldr r1, _080452A8 @ =0x00000322 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r5, r0, #0 adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r0, #0x6e subs r5, r5, r0 ldr r3, _080452AC @ =0x0000030E adds r4, r4, r3 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r5, r5, r0 strh r5, [r6, #4] ldr r2, _080452A4 @ =0x020314E0 ldr r0, [r2] ldr r3, _080452B0 @ =0x00000591 adds r0, r0, r3 ldr r2, _080452B4 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _080452B8 @ =0x084BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _080452BC @ =0x060125A0 str r0, [r2, #4] ldr r0, _080452C0 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _080452C4 @ =0x03005000 ldr r1, _080452C8 @ =0xFFFFFE00 mov r8, r1 _080451F0: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080452CC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _080451F0 _08045234: ldr r3, _080452A4 @ =0x020314E0 ldr r4, [r3] ldr r1, _080452D0 @ =0x00000592 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0xfa bhi _080452F0 cmp r0, #0xfa beq _08045248 b _08045594 _08045248: movs r2, #0xc8 lsls r2, r2, #2 adds r1, r4, r2 movs r2, #0 movs r0, #0xe6 lsls r0, r0, #2 strh r0, [r1] ldr r3, _080452A8 @ =0x00000322 adds r1, r4, r3 ldr r0, _080452D4 @ =0x0000FF9C strh r0, [r1] movs r0, #0xc7 lsls r0, r0, #2 adds r1, r4, r0 ldr r0, _080452D8 @ =0x0000FFAE strh r0, [r1] ldr r1, _080452DC @ =0x0000031E adds r0, r4, r1 strh r2, [r0] subs r3, #0x16 adds r0, r4, r3 strh r2, [r0] ldr r0, _080452E0 @ =0x00000306 adds r1, r4, r0 movs r0, #8 strb r0, [r1] ldr r1, _080452A4 @ =0x020314E0 ldr r0, [r1] ldr r2, _080452B0 @ =0x00000591 adds r0, r0, r2 movs r1, #0xd strb r1, [r0] ldr r0, _080452E4 @ =gMain ldr r3, _080452E8 @ =0x00001158 adds r0, r0, r3 movs r2, #1 movs r1, #1 strh r1, [r0] ldr r1, _080452A4 @ =0x020314E0 ldr r0, [r1] ldr r3, _080452EC @ =0x000005FA adds r0, r0, r3 strb r2, [r0] b _08045594 .align 2, 0 _080452A0: .4byte 0x0200C218 _080452A4: .4byte 0x020314E0 _080452A8: .4byte 0x00000322 _080452AC: .4byte 0x0000030E _080452B0: .4byte 0x00000591 _080452B4: .4byte 0x040000D4 _080452B8: .4byte 0x084BB16C _080452BC: .4byte 0x060125A0 _080452C0: .4byte 0x80000240 _080452C4: .4byte 0x03005000 _080452C8: .4byte 0xFFFFFE00 _080452CC: .4byte 0x000001FF _080452D0: .4byte 0x00000592 _080452D4: .4byte 0x0000FF9C _080452D8: .4byte 0x0000FFAE _080452DC: .4byte 0x0000031E _080452E0: .4byte 0x00000306 _080452E4: .4byte gMain _080452E8: .4byte 0x00001158 _080452EC: .4byte 0x000005FA _080452F0: movs r5, #0xc3 lsls r5, r5, #2 adds r0, r4, r5 ldrh r0, [r0] movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 adds r0, #0xd ldr r2, _0804537C @ =0x00000591 adds r1, r4, r2 strb r0, [r1] ldr r3, _08045380 @ =0x020314E0 ldr r0, [r3] adds r0, r0, r5 ldrh r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x10 bl sub_C24 adds r1, r0, #0 ldr r0, _08045380 @ =0x020314E0 ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _08045384 @ =0x00004E20 bl __divsi3 ldr r2, _08045388 @ =0x0000030E adds r1, r4, r2 strh r0, [r1] adds r4, r4, r5 ldrh r0, [r4] cmp r0, #0 bne _0804534A movs r0, #0xe4 bl m4aSongNumStart _0804534A: ldr r3, _08045380 @ =0x020314E0 ldr r4, [r3] adds r0, r4, r5 ldrh r0, [r0] cmp r0, #0x27 bhi _08045390 movs r0, #0xc8 lsls r0, r0, #2 adds r1, r4, r0 movs r2, #0xc7 lsls r2, r2, #2 adds r0, r4, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldr r0, _0804538C @ =0x00000322 adds r1, r4, r0 adds r2, #2 adds r0, r4, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] b _0804539A .align 2, 0 _0804537C: .4byte 0x00000591 _08045380: .4byte 0x020314E0 _08045384: .4byte 0x00004E20 _08045388: .4byte 0x0000030E _0804538C: .4byte 0x00000322 _08045390: ldr r0, _0804547C @ =gMain ldr r1, _08045480 @ =0x00001158 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _0804539A: ldr r0, _08045484 @ =0x020314E0 ldr r2, [r0] movs r6, #0xc3 lsls r6, r6, #2 adds r1, r2, r6 ldrh r1, [r1] cmp r1, #0xd bne _08045416 ldr r5, _08045488 @ =0x0000132C adds r0, r2, r5 ldr r1, [r0] movs r0, #0 strb r0, [r1] ldr r2, _08045484 @ =0x020314E0 ldr r4, [r2] movs r3, #0xc5 lsls r3, r3, #2 adds r1, r4, r3 ldr r0, _0804548C @ =0x0000FFF6 strh r0, [r1] ldr r0, _08045490 @ =0x00000316 adds r1, r4, r0 ldr r0, _08045494 @ =0x0000FFE7 strh r0, [r1] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x9d lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r3, #0xc6 lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] ldr r1, _08045498 @ =0x00000322 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x86 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r3, _0804549C @ =0x0000031A adds r0, r4, r3 strh r1, [r0] adds r4, r4, r5 ldr r1, [r4] movs r0, #1 strb r0, [r1, #1] _08045416: ldr r0, _08045484 @ =0x020314E0 ldr r7, [r0] ldrb r0, [r7, #0x1f] cmp r0, #0 bne _08045422 b _08045584 _08045422: adds r0, r7, r6 ldrh r0, [r0] cmp r0, #0xc bhi _080454A0 ldr r1, _08045488 @ =0x0000132C adds r4, r7, r1 ldr r5, [r4] movs r2, #0xc8 lsls r2, r2, #2 adds r0, r7, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r0, #0x9d strh r0, [r5, #0x10] ldr r5, [r4] ldr r1, _08045498 @ =0x00000322 adds r0, r7, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x86 strh r0, [r5, #0x12] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] b _0804557C .align 2, 0 _0804547C: .4byte gMain _08045480: .4byte 0x00001158 _08045484: .4byte 0x020314E0 _08045488: .4byte 0x0000132C _0804548C: .4byte 0x0000FFF6 _08045490: .4byte 0x00000316 _08045494: .4byte 0x0000FFE7 _08045498: .4byte 0x00000322 _0804549C: .4byte 0x0000031A _080454A0: ldr r3, _080455B0 @ =0x00000316 adds r1, r7, r3 ldrh r0, [r1] adds r0, #2 movs r2, #0 mov r8, r2 movs r3, #0 mov sl, r3 strh r0, [r1] movs r0, #0xc6 lsls r0, r0, #2 adds r2, r7, r0 movs r3, #0xc5 lsls r3, r3, #2 adds r0, r7, r3 ldrh r0, [r0] ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] ldr r0, _080455B4 @ =0x0000031A adds r4, r7, r0 ldrh r0, [r1] ldrh r1, [r4] adds r0, r0, r1 strh r0, [r4] ldr r3, _080455B8 @ =0x0000132C mov sb, r3 adds r5, r7, r3 ldr r6, [r5] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x10] ldr r6, [r5] movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x12] ldr r5, [r5] movs r3, #0x12 ldrsh r0, [r5, r3] cmp r0, #0xb4 ble _08045556 movs r0, #0xb5 strh r0, [r5, #0x12] ldr r1, _080455BC @ =0x000005F7 adds r0, r7, r1 mov r2, r8 strb r2, [r0] ldr r3, _080455C0 @ =0x020314E0 ldr r0, [r3] strb r2, [r0, #0x1f] ldr r1, [r3] ldr r0, _080455B8 @ =0x0000132C adds r3, r1, r0 ldr r2, [r3] ldr r0, _080455C4 @ =0x0000FFF6 strh r0, [r2, #0x30] ldr r0, [r3] mov r2, sl strh r2, [r0, #0x32] ldr r3, _080455C8 @ =0x000005FA adds r1, r1, r3 mov r0, r8 strb r0, [r1] ldr r1, _080455C0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080455B8 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] movs r0, #3 strb r0, [r1, #1] ldr r3, _080455C0 @ =0x020314E0 ldr r0, [r3] adds r0, #0x24 mov r1, r8 strb r1, [r0] ldr r0, [r3] adds r0, #0x7e mov r2, sl strh r2, [r0] movs r0, #0xe5 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _08045556: ldr r3, _080455C0 @ =0x020314E0 ldr r1, [r3] add r1, sb ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r3, #0x12 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] _0804557C: movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] _08045584: ldr r3, _080455C0 @ =0x020314E0 ldr r1, [r3] movs r0, #0xc3 lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08045594: ldr r2, _080455C0 @ =0x020314E0 ldr r1, [r2] ldr r3, _080455CC @ =0x00000592 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] 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 _080455B0: .4byte 0x00000316 _080455B4: .4byte 0x0000031A _080455B8: .4byte 0x0000132C _080455BC: .4byte 0x000005F7 _080455C0: .4byte 0x020314E0 _080455C4: .4byte 0x0000FFF6 _080455C8: .4byte 0x000005FA _080455CC: .4byte 0x00000592 thumb_func_start sub_455D0 sub_455D0: @ 0x080455D0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 movs r2, #0 _080455DE: ldr r3, _08045608 @ =0x020314E0 ldr r0, [r3] lsls r2, r2, #0x10 asrs r1, r2, #0x10 ldr r4, _0804560C @ =0x00000536 adds r0, r0, r4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r3 str r2, [sp] cmp r0, #5 bls _080455FE bl _08045DE0 _080455FE: lsls r0, r0, #2 ldr r1, _08045610 @ =_08045614 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08045608: .4byte 0x020314E0 _0804560C: .4byte 0x00000536 _08045610: .4byte _08045614 _08045614: @ jump table .4byte _0804562C @ case 0 .4byte _08045642 @ case 1 .4byte _080456E0 @ case 2 .4byte _08045778 @ case 3 .4byte _08045B00 @ case 4 .4byte _08045C4C @ case 5 _0804562C: mov r5, r8 ldr r0, [r5] ldr r2, [sp] asrs r1, r2, #0x10 movs r3, #0xa6 lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r1 movs r1, #0 strb r1, [r0] b _08045DE0 _08045642: mov r4, r8 ldr r1, [r4] ldr r5, [sp] asrs r6, r5, #0x10 movs r2, #0xa6 lsls r2, r2, #3 adds r0, r1, r2 adds r0, r0, r6 movs r3, #0 ldrsb r3, [r0, r3] movs r4, #0xe8 lsls r4, r4, #2 mov sl, r4 add r1, sl adds r1, r1, r3 movs r2, #0 movs r0, #2 strb r0, [r1] mov r5, r8 ldr r1, [r5] lsls r7, r3, #1 movs r0, #0xec lsls r0, r0, #2 mov sb, r0 adds r0, r1, r0 adds r0, r0, r7 movs r4, #0 mov ip, r4 strh r2, [r0] ldr r2, _080456D4 @ =0x000003A3 adds r1, r1, r2 adds r1, r1, r3 movs r0, #7 strb r0, [r1] ldr r5, [r5] lsls r1, r6, #1 ldr r4, _080456D8 @ =0x0000053C adds r0, r5, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 bne _08045698 b _08045DE0 _08045698: subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0 beq _080456A6 b _08045DE0 _080456A6: ldr r1, _080456DC @ =0x00000536 adds r0, r5, r1 adds r0, r0, r6 mov r5, ip strb r5, [r0] mov r1, r8 ldr r0, [r1] add r0, sl adds r0, r0, r3 movs r1, #1 strb r1, [r0] mov r5, r8 ldr r1, [r5] mov r5, sb adds r0, r1, r5 adds r0, r0, r7 strh r4, [r0] adds r1, r1, r2 adds r1, r1, r3 movs r0, #4 strb r0, [r1] b _08045DE0 .align 2, 0 _080456D4: .4byte 0x000003A3 _080456D8: .4byte 0x0000053C _080456DC: .4byte 0x00000536 _080456E0: mov r0, r8 ldr r1, [r0] ldr r2, [sp] asrs r6, r2, #0x10 movs r3, #0xa6 lsls r3, r3, #3 adds r0, r1, r3 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r6, #2 bne _0804571E movs r0, #1 strb r0, [r1, #0x1f] mov r4, r8 ldr r0, [r4] ldr r1, _08045768 @ =0x0000132C adds r0, r0, r1 ldr r3, [r0] ldrh r2, [r3, #0x30] adds r2, #5 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 subs r2, r2, r0 strh r2, [r3, #0x30] _0804571E: mov r2, r8 ldr r1, [r2] ldr r3, _0804576C @ =0x00000536 adds r1, r1, r3 adds r1, r1, r6 movs r4, #0 movs r0, #3 strb r0, [r1] ldr r0, [r2] ldr r1, _08045770 @ =0x00000533 adds r0, r0, r1 adds r0, r0, r6 strb r4, [r0] ldr r1, [r2] lsls r3, r5, #0x10 asrs r3, r3, #0x10 movs r2, #0xe8 lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r3 movs r0, #2 strb r0, [r1] mov r5, r8 ldr r1, [r5] lsls r2, r3, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r1, r5 adds r0, r0, r2 strh r4, [r0] ldr r0, _08045774 @ =0x000003A3 adds r1, r1, r0 adds r1, r1, r3 movs r0, #7 strb r0, [r1] b _08045DE0 .align 2, 0 _08045768: .4byte 0x0000132C _0804576C: .4byte 0x00000536 _08045770: .4byte 0x00000533 _08045774: .4byte 0x000003A3 _08045778: mov r1, r8 ldr r2, [r1] ldr r4, [sp] asrs r3, r4, #0x10 movs r5, #0xa6 lsls r5, r5, #3 adds r0, r2, r5 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r3, #1 ble _08045798 b _0804599C _08045798: lsls r0, r5, #0x10 asrs r4, r0, #0x10 mov sb, r0 cmp r4, #0 bne _080457C8 lsls r1, r3, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r2, r5 adds r0, r0, r1 ldr r1, [r0] ldr r0, _080457C4 @ =0x000055FF cmp r1, r0 ble _080457EA lsls r0, r3, #2 adds r0, r2, r0 movs r1, #0xaf lsls r1, r1, #3 adds r0, r0, r1 strh r4, [r0] b _080457EA .align 2, 0 _080457C4: .4byte 0x000055FF _080457C8: lsls r1, r3, #3 movs r4, #0xb0 lsls r4, r4, #3 adds r0, r2, r4 adds r0, r0, r1 ldr r1, [r0] movs r0, #0x9c lsls r0, r0, #8 cmp r1, r0 bgt _080457EA lsls r0, r3, #2 adds r0, r2, r0 movs r5, #0xaf lsls r5, r5, #3 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080457EA: mov r0, r8 ldr r2, [r0] ldr r1, [sp] asrs r5, r1, #0x10 lsls r7, r5, #2 adds r1, r2, r7 ldr r3, _08045870 @ =0x0000057A mov sl, r3 add r1, sl ldrh r0, [r1] adds r0, #0xc strh r0, [r1] mov r4, sb asrs r6, r4, #0x10 movs r1, #0xa9 lsls r1, r1, #3 adds r0, r2, r1 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08045880 lsls r1, r5, #3 adds r3, #0xa adds r0, r2, r3 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045874 @ =0x000065FF cmp r1, r0 bgt _0804582A b _08045DE0 _0804582A: ldr r4, _08045878 @ =0x00000533 adds r0, r2, r4 adds r0, r0, r5 movs r1, #0 strb r1, [r0] mov r2, r8 ldr r0, [r2] subs r3, #0x4e adds r0, r0, r3 adds r0, r0, r5 movs r1, #5 strb r1, [r0] ldr r0, [r2] movs r4, #0xe8 lsls r4, r4, #2 adds r0, r0, r4 adds r0, r0, r6 movs r1, #3 strb r1, [r0] ldr r0, [r2] ldr r5, _0804587C @ =0x000003A3 adds r0, r0, r5 adds r0, r0, r6 movs r1, #0xf strb r1, [r0] ldr r0, [r2] lsls r1, r6, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r0, r2 adds r0, r0, r1 movs r3, #0 strh r3, [r0] b _08045DE0 .align 2, 0 _08045870: .4byte 0x0000057A _08045874: .4byte 0x000065FF _08045878: .4byte 0x00000533 _0804587C: .4byte 0x000003A3 _08045880: lsls r3, r5, #3 ldr r4, _08045904 @ =0x00000584 mov sb, r4 adds r0, r2, r4 adds r0, r0, r3 ldr r1, [r0] ldr r0, _08045908 @ =0x000065FF cmp r1, r0 bgt _08045894 b _08045DE0 _08045894: subs r4, #0x51 adds r1, r2, r4 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _0804590C @ =0x02032F20 ldr r1, _08045910 @ =0x086A2EE4 str r3, [sp, #4] bl MPlayStart mov r0, r8 ldr r2, [r0] adds r4, r2, r4 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] ldr r3, [sp, #4] cmp r0, #2 bgt _08045920 mov r1, sb adds r0, r2, r1 adds r0, r0, r3 movs r1, #0xcc lsls r1, r1, #7 str r1, [r0] adds r0, r2, r7 add r0, sl ldr r1, _08045914 @ =0x0000FED4 strh r1, [r0] ldr r3, _08045918 @ =0x00000553 adds r0, r2, r3 adds r0, r0, r5 movs r1, #0xd strb r1, [r0] mov r4, r8 ldr r0, [r4] movs r5, #0xe8 lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r6 movs r1, #2 strb r1, [r0] ldr r0, [r4] ldr r1, _0804591C @ =0x000003A3 adds r0, r0, r1 adds r0, r0, r6 movs r1, #8 strb r1, [r0] ldr r1, [r4] lsls r0, r6, #1 movs r2, #0xec lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r0 b _08045A5C .align 2, 0 _08045904: .4byte 0x00000584 _08045908: .4byte 0x000065FF _0804590C: .4byte 0x02032F20 _08045910: .4byte 0x086A2EE4 _08045914: .4byte 0x0000FED4 _08045918: .4byte 0x00000553 _0804591C: .4byte 0x000003A3 _08045920: adds r2, r2, r7 lsls r0, r6, #4 subs r0, r0, r6 lsls r0, r0, #2 movs r1, #0x1e subs r1, r1, r0 lsls r1, r1, #2 movs r3, #0xaf lsls r3, r3, #3 adds r0, r2, r3 strh r1, [r0] add r2, sl ldr r0, _08045988 @ =0x0000FE70 strh r0, [r2] movs r0, #0 strb r0, [r4] mov r1, r8 ldr r0, [r1] ldr r2, _0804598C @ =0x00000536 adds r0, r0, r2 adds r0, r0, r5 movs r1, #4 strb r1, [r0] mov r3, r8 ldr r0, [r3] movs r4, #0xe8 lsls r4, r4, #2 adds r0, r0, r4 adds r0, r0, r6 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r5, _08045990 @ =0x000003A3 adds r0, r0, r5 adds r0, r0, r6 movs r1, #0xb strb r1, [r0] ldr r2, [r3] lsls r1, r6, #1 movs r3, #0xec lsls r3, r3, #2 adds r0, r2, r3 adds r0, r0, r1 movs r4, #0 strh r4, [r0] ldr r5, _08045994 @ =0x00000542 adds r1, r2, r5 movs r0, #0x64 strh r0, [r1] ldr r0, _08045998 @ =0x0000052C adds r2, r2, r0 b _08045AE2 .align 2, 0 _08045988: .4byte 0x0000FE70 _0804598C: .4byte 0x00000536 _08045990: .4byte 0x000003A3 _08045994: .4byte 0x00000542 _08045998: .4byte 0x0000052C _0804599C: lsls r0, r5, #0x10 asrs r3, r0, #0x10 mov sb, r0 cmp r3, #0 bne _080459C0 ldr r1, _080459B8 @ =0x0000132C adds r0, r2, r1 ldr r2, [r0] ldr r1, [r2, #0x34] ldr r0, _080459BC @ =0x000055FF cmp r1, r0 ble _080459D4 strh r3, [r2, #0x30] b _080459D4 .align 2, 0 _080459B8: .4byte 0x0000132C _080459BC: .4byte 0x000055FF _080459C0: ldr r3, _08045A64 @ =0x0000132C adds r0, r2, r3 ldr r2, [r0] ldr r1, [r2, #0x34] movs r0, #0x9c lsls r0, r0, #8 cmp r1, r0 bgt _080459D4 movs r0, #0 strh r0, [r2, #0x30] _080459D4: mov r4, r8 ldr r3, [r4] ldr r7, _08045A64 @ =0x0000132C adds r2, r3, r7 ldr r1, [r2] ldrh r0, [r1, #0x32] adds r0, #3 movs r5, #0 mov sl, r5 strh r0, [r1, #0x32] ldr r0, [r2] ldr r1, [r0, #0x38] ldr r0, _08045A68 @ =0x000064FF cmp r1, r0 bgt _080459F4 b _08045DE0 _080459F4: ldr r0, [sp] asrs r5, r0, #0x10 ldr r4, _08045A6C @ =0x00000533 adds r1, r3, r4 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08045A70 @ =0x02032F20 ldr r1, _08045A74 @ =0x086A2EE4 bl MPlayStart movs r0, #7 bl sub_11B0 mov r1, r8 ldr r3, [r1] adds r4, r3, r4 adds r6, r4, r5 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #2 bgt _08045A80 adds r2, r3, r7 ldr r1, [r2] movs r0, #0xca lsls r0, r0, #7 str r0, [r1, #0x38] ldr r1, [r2] ldr r0, _08045A78 @ =0x0000FFA6 strh r0, [r1, #0x32] mov r4, sb asrs r2, r4, #0x10 movs r5, #0xe8 lsls r5, r5, #2 adds r0, r3, r5 adds r0, r0, r2 movs r1, #2 strb r1, [r0] mov r1, r8 ldr r0, [r1] ldr r3, _08045A7C @ =0x000003A3 adds r0, r0, r3 adds r0, r0, r2 movs r1, #8 strb r1, [r0] mov r4, r8 ldr r1, [r4] lsls r2, r2, #1 adds r5, #0x10 adds r1, r1, r5 adds r1, r1, r2 _08045A5C: movs r0, #0xc strh r0, [r1] b _08045DE0 .align 2, 0 _08045A64: .4byte 0x0000132C _08045A68: .4byte 0x000064FF _08045A6C: .4byte 0x00000533 _08045A70: .4byte 0x02032F20 _08045A74: .4byte 0x086A2EE4 _08045A78: .4byte 0x0000FFA6 _08045A7C: .4byte 0x000003A3 _08045A80: adds r2, r3, r7 ldr r4, [r2] mov r0, sb asrs r3, r0, #0x10 lsls r1, r3, #3 subs r1, r1, r3 lsls r1, r1, #3 movs r0, #0x1c subs r0, r0, r1 strh r0, [r4, #0x30] ldr r1, [r2] ldr r0, _08045AEC @ =0x0000FF88 strh r0, [r1, #0x32] mov r1, sl strb r1, [r6] mov r2, r8 ldr r0, [r2] ldr r4, _08045AF0 @ =0x00000536 adds r0, r0, r4 adds r0, r0, r5 movs r1, #4 strb r1, [r0] ldr r0, [r2] movs r5, #0xe8 lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r2] ldr r1, _08045AF4 @ =0x000003A3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xb strb r1, [r0] ldr r2, [r2] lsls r3, r3, #1 movs r4, #0xec lsls r4, r4, #2 adds r0, r2, r4 adds r0, r0, r3 movs r5, #0 strh r5, [r0] ldr r0, _08045AF8 @ =0x00000542 adds r1, r2, r0 movs r0, #0x6a strh r0, [r1] ldr r1, _08045AFC @ =0x0000052D adds r2, r2, r1 _08045AE2: ldrb r0, [r2] adds r0, #1 strb r0, [r2] b _08045DE0 .align 2, 0 _08045AEC: .4byte 0x0000FF88 _08045AF0: .4byte 0x00000536 _08045AF4: .4byte 0x000003A3 _08045AF8: .4byte 0x00000542 _08045AFC: .4byte 0x0000052D _08045B00: mov r2, r8 ldr r3, [r2] ldr r4, [sp] asrs r2, r4, #0x10 movs r5, #0xa6 lsls r5, r5, #3 adds r0, r3, r5 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r2, #1 bgt _08045B90 lsls r0, r2, #2 adds r4, r3, r0 ldr r0, _08045B4C @ =0x0000057A adds r1, r4, r0 ldrh r0, [r1] adds r0, #0xc movs r6, #0 strh r0, [r1] cmp r5, #0 bne _08045B54 lsls r1, r2, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r0, r3, r2 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045B50 @ =0x000077FF cmp r1, r0 ble _08045B70 movs r3, #0xaf lsls r3, r3, #3 adds r0, r4, r3 b _08045B6E .align 2, 0 _08045B4C: .4byte 0x0000057A _08045B50: .4byte 0x000077FF _08045B54: lsls r1, r2, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r3, r5 adds r0, r0, r1 ldr r1, [r0] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045B70 movs r1, #0xaf lsls r1, r1, #3 adds r0, r4, r1 _08045B6E: strh r6, [r0] _08045B70: mov r3, r8 ldr r2, [r3] ldr r5, [sp] asrs r4, r5, #0x10 lsls r1, r4, #3 ldr r3, _08045B88 @ =0x00000584 adds r0, r2, r3 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045B8C @ =0x000083FF b _08045CD0 .align 2, 0 _08045B88: .4byte 0x00000584 _08045B8C: .4byte 0x000083FF _08045B90: ldr r1, _08045BB4 @ =0x0000132C adds r2, r3, r1 ldr r0, [r2] ldrh r1, [r0, #0x32] adds r1, #3 movs r3, #0 strh r1, [r0, #0x32] lsls r0, r5, #0x10 mov sb, r0 cmp r0, #0 bne _08045BBC ldr r2, [r2] ldr r1, [r2, #0x34] ldr r0, _08045BB8 @ =0x000077FF cmp r1, r0 ble _08045BCA b _08045BC8 .align 2, 0 _08045BB4: .4byte 0x0000132C _08045BB8: .4byte 0x000077FF _08045BBC: ldr r2, [r2] ldr r1, [r2, #0x34] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045BCA _08045BC8: strh r3, [r2, #0x30] _08045BCA: mov r2, r8 ldr r3, [r2] ldr r7, _08045C34 @ =0x0000132C adds r0, r3, r7 ldr r0, [r0] ldr r1, [r0, #0x38] ldr r0, _08045C38 @ =0x000083FF cmp r1, r0 bgt _08045BDE b _08045DE0 _08045BDE: ldr r4, [sp] asrs r5, r4, #0x10 ldr r2, _08045C3C @ =0x00000533 adds r1, r3, r2 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 movs r3, #0 mov sl, r3 strb r0, [r1] mov r0, r8 ldr r4, [r0] adds r2, r4, r2 adds r6, r2, r5 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #1 bgt _08045C40 adds r4, r4, r7 ldr r1, [r4] movs r0, #0x84 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r5, [r4] movs r1, #0x32 ldrsh r0, [r5, r1] rsbs r0, r0, #0 movs r1, #3 bl __divsi3 strh r0, [r5, #0x32] ldr r0, [r4] mov r2, sl strh r2, [r0, #0x30] movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #1 beq _08045C2C b _08045DE0 _08045C2C: movs r0, #7 bl sub_11B0 b _08045DE0 .align 2, 0 _08045C34: .4byte 0x0000132C _08045C38: .4byte 0x000083FF _08045C3C: .4byte 0x00000533 _08045C40: adds r1, r4, r7 ldr r0, [r1] movs r3, #0 mov r2, sl strh r2, [r0, #0x32] b _08045DC0 _08045C4C: mov r5, r8 ldr r3, [r5] ldr r0, [sp] asrs r2, r0, #0x10 movs r1, #0xa6 lsls r1, r1, #3 adds r0, r3, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r2, #1 bgt _08045D20 lsls r0, r2, #2 adds r4, r3, r0 ldr r0, _08045C98 @ =0x0000057A adds r1, r4, r0 ldrh r0, [r1] adds r0, #0xc movs r6, #0 strh r0, [r1] cmp r5, #0 bne _08045CA0 lsls r1, r2, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r0, r3, r2 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045C9C @ =0x000077FF cmp r1, r0 ble _08045CBC movs r3, #0xaf lsls r3, r3, #3 adds r0, r4, r3 b _08045CBA .align 2, 0 _08045C98: .4byte 0x0000057A _08045C9C: .4byte 0x000077FF _08045CA0: lsls r1, r2, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r3, r5 adds r0, r0, r1 ldr r1, [r0] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045CBC movs r1, #0xaf lsls r1, r1, #3 adds r0, r4, r1 _08045CBA: strh r6, [r0] _08045CBC: mov r3, r8 ldr r2, [r3] ldr r5, [sp] asrs r4, r5, #0x10 lsls r1, r4, #3 ldr r3, _08045D08 @ =0x00000584 adds r0, r2, r3 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045D0C @ =0x00008DFF _08045CD0: cmp r1, r0 bgt _08045CD6 b _08045DE0 _08045CD6: ldr r5, _08045D10 @ =0x00000536 adds r0, r2, r5 adds r0, r0, r4 movs r3, #0 strb r3, [r0] mov r1, r8 ldr r0, [r1] ldr r2, _08045D14 @ =0x00000553 adds r0, r0, r2 adds r0, r0, r4 movs r1, #0xe strb r1, [r0] mov r5, r8 ldr r1, [r5] lsls r2, r4, #1 ldr r5, _08045D18 @ =0x00000562 adds r0, r1, r5 adds r0, r0, r2 movs r2, #0 strh r3, [r0] ldr r0, _08045D1C @ =0x0000054B adds r1, r1, r0 adds r1, r1, r4 strb r2, [r1] b _08045DE0 .align 2, 0 _08045D08: .4byte 0x00000584 _08045D0C: .4byte 0x00008DFF _08045D10: .4byte 0x00000536 _08045D14: .4byte 0x00000553 _08045D18: .4byte 0x00000562 _08045D1C: .4byte 0x0000054B _08045D20: ldr r1, _08045D44 @ =0x0000132C adds r2, r3, r1 ldr r0, [r2] ldrh r1, [r0, #0x32] adds r1, #3 movs r3, #0 strh r1, [r0, #0x32] lsls r0, r5, #0x10 mov sb, r0 cmp r0, #0 bne _08045D4C ldr r2, [r2] ldr r1, [r2, #0x34] ldr r0, _08045D48 @ =0x000077FF cmp r1, r0 ble _08045D5A b _08045D58 .align 2, 0 _08045D44: .4byte 0x0000132C _08045D48: .4byte 0x000077FF _08045D4C: ldr r2, [r2] ldr r1, [r2, #0x34] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045D5A _08045D58: strh r3, [r2, #0x30] _08045D5A: mov r4, r8 ldr r3, [r4] ldr r6, _08045DAC @ =0x0000132C adds r0, r3, r6 ldr r0, [r0] ldr r1, [r0, #0x38] ldr r0, _08045DB0 @ =0x00008DFF cmp r1, r0 ble _08045DE0 ldr r2, [sp] asrs r5, r2, #0x10 ldr r2, _08045DB4 @ =0x00000533 adds r1, r3, r2 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 movs r7, #0 strb r0, [r1] ldr r4, [r4] adds r2, r4, r2 adds r2, r2, r5 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #1 bgt _08045DB8 adds r4, r4, r6 ldr r1, [r4] movs r0, #0x8e lsls r0, r0, #8 str r0, [r1, #0x38] ldr r5, [r4] movs r3, #0x32 ldrsh r0, [r5, r3] rsbs r0, r0, #0 movs r1, #3 bl __divsi3 strh r0, [r5, #0x32] ldr r0, [r4] strh r7, [r0, #0x30] b _08045DE0 .align 2, 0 _08045DAC: .4byte 0x0000132C _08045DB0: .4byte 0x00008DFF _08045DB4: .4byte 0x00000533 _08045DB8: adds r1, r4, r6 ldr r0, [r1] movs r3, #0 strh r7, [r0, #0x32] _08045DC0: ldr r2, [r1] mov r1, sb asrs r0, r1, #0x10 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r0, #5 subs r0, r0, r1 strh r0, [r2, #0x30] strb r3, [r4, #0x1f] mov r2, r8 ldr r0, [r2] ldr r4, _08045E04 @ =0x00000536 adds r0, r0, r4 adds r0, r0, r5 strb r3, [r0] _08045DE0: ldr r5, [sp] movs r1, #0x80 lsls r1, r1, #9 adds r0, r5, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _08045DF4 bl _080455DE _08045DF4: add sp, #8 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 _08045E04: .4byte 0x00000536 thumb_func_start sub_45E08 sub_45E08: @ 0x08045E08 push {r4, r5, r6, r7, lr} ldr r4, _08045E70 @ =0x086AEED6 ldr r0, _08045E74 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 movs r2, #0x80 lsls r2, r2, #0x11 ldr r1, _08045E78 @ =0x03006C00 mov ip, r1 ldr r7, _08045E7C @ =0xFFFFF000 add r7, ip ldr r6, _08045E80 @ =0x0837A4E8 movs r1, #0 ldrsh r0, [r0, r1] lsls r3, r0, #2 ldr r5, _08045E84 @ =0x000003FF movs r4, #0x80 lsls r4, r4, #4 _08045E3A: asrs r2, r2, #0x10 adds r1, r2, r4 lsls r1, r1, #1 adds r1, r1, r7 lsls r0, r2, #1 adds r0, r0, r6 ldrh r0, [r0] adds r0, r0, r3 strh r0, [r1] adds r2, #1 lsls r2, r2, #0x10 asrs r0, r2, #0x10 cmp r0, r5 ble _08045E3A ldr r1, _08045E88 @ =0x040000D4 mov r0, ip str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08045E8C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08045E70: .4byte 0x086AEED6 _08045E74: .4byte gMain _08045E78: .4byte 0x03006C00 _08045E7C: .4byte 0xFFFFF000 _08045E80: .4byte 0x0837A4E8 _08045E84: .4byte 0x000003FF _08045E88: .4byte 0x040000D4 _08045E8C: .4byte 0x80000400 thumb_func_start sub_45E90 sub_45E90: @ 0x08045E90 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x30 ldr r0, _08045ED0 @ =0x020314E0 ldr r4, [r0] movs r1, #0x13 ldrsb r1, [r4, r1] cmp r1, #3 ble _08045EDC movs r0, #0xe5 lsls r0, r0, #2 adds r2, r4, r0 ldrh r3, [r2] movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x7e rsbs r0, r0, #0 cmp r1, r0 ble _08045F12 subs r0, r3, #6 strh r0, [r2] ldr r1, _08045ED4 @ =gMain rsbs r0, r0, #0 adds r0, #4 ldr r2, _08045ED8 @ =0x000002EE adds r1, r1, r2 strh r0, [r1] b _08045F12 .align 2, 0 _08045ED0: .4byte 0x020314E0 _08045ED4: .4byte gMain _08045ED8: .4byte 0x000002EE _08045EDC: movs r3, #0xe5 lsls r3, r3, #2 adds r1, r4, r3 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 bge _08045EFA adds r0, r2, #6 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 ble _08045EFA movs r0, #0 strh r0, [r1] _08045EFA: ldr r0, _08045F84 @ =gMain ldr r2, _08045F88 @ =0x020314E0 ldr r1, [r2] movs r3, #0xe5 lsls r3, r3, #2 adds r1, r1, r3 ldrh r1, [r1] rsbs r1, r1, #0 adds r1, #4 ldr r2, _08045F8C @ =0x000002EE adds r0, r0, r2 strh r1, [r0] _08045F12: ldr r3, _08045F88 @ =0x020314E0 ldr r0, [r3] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bgt _08045F2E ldr r1, _08045F84 @ =gMain ldrh r0, [r1, #0x38] ldr r0, _08045F90 @ =0x00001C42 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _08045F94 @ =0x00000C04 strh r0, [r1, #0x3a] _08045F2E: ldr r0, _08045F88 @ =0x020314E0 ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _08045F3C ldrh r0, [r1, #0x18] _08045F3C: ldr r0, _08045F88 @ =0x020314E0 ldr r2, [r0] ldr r1, _08045F98 @ =0x0000053A adds r3, r2, r1 ldrh r0, [r3] subs r0, #0x65 lsls r0, r0, #0x10 movs r1, #0xae lsls r1, r1, #0x11 cmp r0, r1 bhi _08045FAA ldr r0, _08045F9C @ =0x0000052E adds r4, r2, r0 ldr r1, _08045FA0 @ =0x0000052C adds r0, r2, r1 ldrb r5, [r4] movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 beq _08045FA4 ldrh r0, [r3] movs r1, #3 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08045FAA adds r0, r5, #1 strb r0, [r4] movs r0, #0x91 bl m4aSongNumStart b _08045FAA .align 2, 0 _08045F84: .4byte gMain _08045F88: .4byte 0x020314E0 _08045F8C: .4byte 0x000002EE _08045F90: .4byte 0x00001C42 _08045F94: .4byte 0x00000C04 _08045F98: .4byte 0x0000053A _08045F9C: .4byte 0x0000052E _08045FA0: .4byte 0x0000052C _08045FA4: movs r0, #0xf5 lsls r0, r0, #1 strh r0, [r3] _08045FAA: ldr r0, _08045FF8 @ =0x020314E0 ldr r2, [r0] ldr r0, _08045FFC @ =0x0000053A adds r3, r2, r0 ldr r1, _08046000 @ =0xFFFFFE0B adds r0, r1, #0 ldrh r1, [r3] adds r0, r0, r1 lsls r0, r0, #0x10 movs r1, #0x95 lsls r1, r1, #0x11 cmp r0, r1 bhi _08046012 ldr r0, _08046004 @ =0x0000052F adds r4, r2, r0 ldr r1, _08046008 @ =0x0000052D adds r0, r2, r1 ldrb r5, [r4] movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 beq _0804600C ldrh r0, [r3] movs r1, #3 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08046012 adds r0, r5, #1 strb r0, [r4] movs r0, #0x91 bl m4aSongNumStart b _08046012 .align 2, 0 _08045FF8: .4byte 0x020314E0 _08045FFC: .4byte 0x0000053A _08046000: .4byte 0xFFFFFE0B _08046004: .4byte 0x0000052F _08046008: .4byte 0x0000052D _0804600C: movs r0, #0xc8 lsls r0, r0, #2 strh r0, [r3] _08046012: ldr r2, _080463D0 @ =0x020314E0 ldr r4, [r2] ldr r3, _080463D4 @ =0x0000053A adds r0, r4, r3 ldrh r1, [r0] ldr r0, _080463D8 @ =0x0000031F cmp r1, r0 bhi _0804602C ldrh r0, [r4, #0x18] cmp r0, #0xa0 bls _0804602C movs r0, #0xa0 strh r0, [r4, #0x18] _0804602C: ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080463D4 @ =0x0000053A adds r0, r0, r2 ldrh r1, [r0] adds r1, #1 strh r1, [r0] ldr r6, _080463DC @ =0x0200B8C0 ldrh r0, [r6] cmp r0, #0 bne _08046044 b _0804679A _08046044: movs r0, #0x78 strh r0, [r6, #2] ldr r3, _080463D0 @ =0x020314E0 ldr r0, [r3] movs r1, #0xe5 lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 add r2, sp, #0x18 mov r8, r2 movs r3, #0xb8 adds r3, r3, r6 mov sb, r3 ldr r7, _080463E0 @ =0x03005000 ldr r0, _080463E4 @ =0xFFFFFE00 mov ip, r0 _0804606A: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080463E8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x15 ble _0804606A ldr r3, _080463D0 @ =0x020314E0 ldr r0, [r3] ldr r1, _080463EC @ =0x0000052E adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] ldr r0, _080463F0 @ =0x004C4B40 adds r7, r1, #0 muls r7, r0, r7 mov r5, sp ldr r4, _080463F4 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463F8 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r0, sp movs r6, #0xa strh r6, [r0, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463FC @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08046400 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xa] mov r0, sp strh r6, [r0, #0xc] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0xe] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0x10] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #0x12] movs r1, #0 _0804615C: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r0, r4, #1 mov r2, sp adds r5, r2, r0 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08046186 movs r0, #0x14 strh r0, [r5] adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0804615C _08046186: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #1 movs r2, #0xb4 lsls r2, r2, #2 adds r5, r2, #0 adds r0, r0, r5 mov r3, r8 strh r0, [r3] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #2] mov r0, sp movs r2, #4 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #4] mov r0, sp movs r3, #6 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 mov r1, r8 strh r0, [r1, #6] mov r0, sp movs r2, #8 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #8] mov r0, sp movs r3, #0xa ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #0xa] mov r0, sp movs r1, #0xc ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 mov r2, r8 strh r0, [r2, #0xc] mov r0, sp movs r3, #0xe ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0xe] mov r0, sp movs r1, #0x10 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0x10] mov r0, sp movs r2, #0x12 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 mov r3, r8 strh r0, [r3, #0x12] ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080463EC @ =0x0000052E adds r0, r0, r2 movs r7, #0 ldrsb r7, [r0, r7] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __divsi3 strh r0, [r4] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #2] mov r0, sp movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08046240 mov r1, sp movs r0, #0x14 strh r0, [r1] _08046240: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 mov r2, r8 strh r0, [r2, #0x14] mov r0, sp movs r3, #2 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0x16] mov r6, sb movs r0, #0x78 strh r0, [r6, #2] ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] movs r2, #0xe5 lsls r2, r2, #2 adds r0, r0, r2 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 ldr r7, _080463E0 @ =0x03005000 ldr r3, _08046404 @ =0x000003FF mov sl, r3 mov ip, r8 ldr r0, _08046408 @ =0xFFFFFC00 mov sb, r0 _0804627E: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080463E8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080463E4 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 lsls r0, r4, #1 add r0, ip ldrh r0, [r0] mov r1, sl ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _0804627E ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _0804640C @ =0x0000052F adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r1, r2, #5 subs r1, r1, r2 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 lsls r7, r0, #6 mov r5, sp ldr r4, _080463F4 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463F8 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r0, sp movs r6, #0xa strh r6, [r0, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463FC @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08046400 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xa] mov r0, sp strh r6, [r0, #0xc] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0xe] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0x10] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #0x12] movs r1, #0 _08046392: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r0, r4, #1 mov r3, sp adds r5, r3, r0 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _080463BC movs r0, #0x14 strh r0, [r5] adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _08046392 _080463BC: mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 movs r3, #0xb4 lsls r3, r3, #2 adds r5, r3, #0 adds r0, r0, r5 b _08046410 .align 2, 0 _080463D0: .4byte 0x020314E0 _080463D4: .4byte 0x0000053A _080463D8: .4byte 0x0000031F _080463DC: .4byte 0x0200B8C0 _080463E0: .4byte 0x03005000 _080463E4: .4byte 0xFFFFFE00 _080463E8: .4byte 0x000001FF _080463EC: .4byte 0x0000052E _080463F0: .4byte 0x004C4B40 _080463F4: .4byte 0x00989680 _080463F8: .4byte 0x000F4240 _080463FC: .4byte 0x000186A0 _08046400: .4byte 0x00002710 _08046404: .4byte 0x000003FF _08046408: .4byte 0xFFFFFC00 _0804640C: .4byte 0x0000052F _08046410: mov r1, r8 strh r0, [r1] mov r0, sp movs r2, #2 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #2] mov r0, sp movs r3, #4 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #4] mov r0, sp movs r1, #6 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 mov r2, r8 strh r0, [r2, #6] mov r0, sp movs r3, #8 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #8] mov r0, sp movs r1, #0xa ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0xa] mov r0, sp movs r2, #0xc ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 mov r3, r8 strh r0, [r3, #0xc] mov r0, sp movs r1, #0xe ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #0xe] mov r0, sp movs r2, #0x10 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #0x10] mov r0, sp movs r3, #0x12 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 mov r1, r8 strh r0, [r1, #0x12] ldr r2, _080467AC @ =0x020314E0 ldr r0, [r2] ldr r3, _080467B0 @ =0x0000052F adds r0, r0, r3 movs r7, #0 ldrsb r7, [r0, r7] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __divsi3 strh r0, [r4] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #2] mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 bne _080464BA mov r1, sp movs r0, #0x14 strh r0, [r1] _080464BA: mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 mov r3, r8 strh r0, [r3, #0x14] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #0x16] ldr r6, _080467B4 @ =0x0200BA30 movs r0, #0x78 strh r0, [r6, #2] ldr r2, _080467AC @ =0x020314E0 ldr r0, [r2] movs r3, #0xe5 lsls r3, r3, #2 adds r0, r0, r3 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 ldr r7, _080467B8 @ =0x03005000 ldr r0, _080467BC @ =0x000003FF mov sl, r0 mov ip, r8 ldr r2, _080467C0 @ =0xFFFFFC00 mov sb, r2 _080464F8: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080467C4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080467C8 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 lsls r0, r4, #1 add r0, ip ldrh r0, [r0] mov r1, sl ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _080464F8 ldr r0, _080467AC @ =0x020314E0 ldr r3, [r0] ldr r1, _080467CC @ =0x0000052E adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] ldr r0, _080467D0 @ =0x004C4B40 adds r4, r1, #0 muls r4, r0, r4 ldr r2, _080467B0 @ =0x0000052F adds r0, r3, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r1, r2, #5 subs r1, r1, r2 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 lsls r0, r0, #6 adds r7, r4, r0 ldr r0, _080467D4 @ =0x00000544 adds r3, r3, r0 str r7, [r3] mov r5, sp ldr r4, _080467D8 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467DC @ =0x00989680 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467E0 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #4] mov r0, sp movs r6, #0xa strh r6, [r0, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467E4 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467E8 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xa] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xc] mov r0, sp strh r6, [r0, #0xe] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0x10] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0x12] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #0x14] movs r1, #0 _08046636: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r0, r4, #1 mov r1, sp adds r5, r1, r0 movs r2, #0 ldrsh r0, [r5, r2] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08046660 movs r0, #0x14 strh r0, [r5] adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08046636 _08046660: mov r0, sp movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 movs r2, #0xb4 lsls r2, r2, #2 adds r1, r2, #0 adds r0, r0, r1 mov r3, r8 strh r0, [r3] mov r0, sp movs r2, #2 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r3, #2] mov r0, sp movs r3, #4 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r2, r8 strh r0, [r2, #4] mov r0, sp movs r3, #6 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r2, #6] mov r0, sp movs r2, #8 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 mov r3, r8 strh r0, [r3, #8] mov r0, sp movs r2, #0xa ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r3, #0xa] mov r0, sp movs r3, #0xc ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r2, r8 strh r0, [r2, #0xc] mov r0, sp movs r3, #0xe ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r2, #0xe] mov r0, sp movs r2, #0x10 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 mov r3, r8 strh r0, [r3, #0x10] mov r0, sp movs r2, #0x12 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r3, #0x12] mov r0, sp movs r3, #0x14 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r2, r8 strh r0, [r2, #0x14] ldr r3, _080467AC @ =0x020314E0 ldr r0, [r3] ldr r2, _080467EC @ =0x000005F6 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r0, #1 mov r0, sp strh r7, [r0] movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r1, r8 strh r0, [r1, #0x16] ldr r6, _080467F0 @ =0x0200BAE8 movs r0, #0x78 strh r0, [r6, #2] ldr r2, _080467AC @ =0x020314E0 ldr r0, [r2] movs r3, #0xe5 lsls r3, r3, #2 adds r0, r0, r3 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 ldr r7, _080467B8 @ =0x03005000 ldr r0, _080467C8 @ =0xFFFFFE00 mov ip, r0 ldr r2, _080467BC @ =0x000003FF mov sl, r2 ldr r3, _080467C0 @ =0xFFFFFC00 mov sb, r3 _0804673C: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080467C4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 lsls r0, r4, #1 add r0, r8 ldrh r0, [r0] mov r1, sl ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _0804673C _0804679A: add sp, #0x30 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 _080467AC: .4byte 0x020314E0 _080467B0: .4byte 0x0000052F _080467B4: .4byte 0x0200BA30 _080467B8: .4byte 0x03005000 _080467BC: .4byte 0x000003FF _080467C0: .4byte 0xFFFFFC00 _080467C4: .4byte 0x000001FF _080467C8: .4byte 0xFFFFFE00 _080467CC: .4byte 0x0000052E _080467D0: .4byte 0x004C4B40 _080467D4: .4byte 0x00000544 _080467D8: .4byte 0x05F5E100 _080467DC: .4byte 0x00989680 _080467E0: .4byte 0x000F4240 _080467E4: .4byte 0x000186A0 _080467E8: .4byte 0x00002710 _080467EC: .4byte 0x000005F6 _080467F0: .4byte 0x0200BAE8 thumb_func_start sub_467F4 sub_467F4: @ 0x080467F4 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} ldr r0, _08046824 @ =0x02031520 ldr r3, _08046828 @ =0x086AFD70 ldr r4, _0804682C @ =gMain ldrb r2, [r4, #4] movs r1, #0x54 muls r1, r2, r1 adds r1, r1, r3 adds r0, #0x14 movs r2, #0x54 bl memcpy ldrb r0, [r4, #4] cmp r0, #7 bls _0804681A b _08046F66 _0804681A: lsls r0, r0, #2 ldr r1, _08046830 @ =_08046834 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08046824: .4byte 0x02031520 _08046828: .4byte 0x086AFD70 _0804682C: .4byte gMain _08046830: .4byte _08046834 _08046834: @ jump table .4byte _08046854 @ case 0 .4byte _0804698C @ case 1 .4byte _08046AC0 @ case 2 .4byte _08046B9C @ case 3 .4byte _08046C78 @ case 4 .4byte _08046D40 @ case 5 .4byte _08046E08 @ case 6 .4byte _08046EE8 @ case 7 _08046854: ldr r4, _08046914 @ =0x040000D4 ldr r0, _08046918 @ =0x081BFEE4 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0804691C @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046920 @ =0x08265C10 str r0, [r4] ldr r0, _08046924 @ =0x06008000 mov r8, r0 str r0, [r4, #4] ldr r1, _08046928 @ =0x80004000 mov sb, r1 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _0804692C @ =0x0826DC10 str r0, [r4] ldr r0, _08046930 @ =0x06003000 str r0, [r4, #4] ldr r6, _08046934 @ =0x80000800 str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046938 @ =0x0824C1E4 ldr r5, _0804693C @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046940 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046944 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046948 @ =0x0824DD60 adds r1, r5, #0 bl LZ77UnCompWram ldr r0, _0804694C @ =0x08250934 ldr r1, _08046950 @ =0x020030A0 bl LZ77UnCompWram movs r1, #0xc0 lsls r1, r1, #4 adds r0, r5, r1 str r0, [r4] ldr r0, _08046954 @ =0x0600B400 str r0, [r4, #4] ldr r0, _08046958 @ =0x80001200 str r0, [r4, #8] ldr r0, [r4, #8] movs r0, #0xc0 lsls r0, r0, #6 adds r5, r5, r0 str r5, [r4] mov r1, r8 str r1, [r4, #4] ldr r0, _0804695C @ =0x80001A00 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046960 @ =0x081C08E4 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046964 @ =0x0822E424 str r0, [r4] ldr r0, _08046968 @ =0x06001000 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _0804696C @ =0x083A8ACC str r0, [r4] ldr r0, _08046970 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046974 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046978 @ =0x083A826C str r0, [r4] ldr r0, _0804697C @ =0x06006C00 str r0, [r4, #4] ldr r0, _08046980 @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046984 @ =0x0845A48C str r0, [r4] ldr r0, _08046988 @ =0x06010000 str r0, [r4, #4] mov r0, sb str r0, [r4, #8] b _08046F64 .align 2, 0 _08046914: .4byte 0x040000D4 _08046918: .4byte 0x081BFEE4 _0804691C: .4byte 0x80000100 _08046920: .4byte 0x08265C10 _08046924: .4byte 0x06008000 _08046928: .4byte 0x80004000 _0804692C: .4byte 0x0826DC10 _08046930: .4byte 0x06003000 _08046934: .4byte 0x80000800 _08046938: .4byte 0x0824C1E4 _0804693C: .4byte 0x0200FBB0 _08046940: .4byte 0x06004000 _08046944: .4byte 0x80002000 _08046948: .4byte 0x0824DD60 _0804694C: .4byte 0x08250934 _08046950: .4byte 0x020030A0 _08046954: .4byte 0x0600B400 _08046958: .4byte 0x80001200 _0804695C: .4byte 0x80001A00 _08046960: .4byte 0x081C08E4 _08046964: .4byte 0x0822E424 _08046968: .4byte 0x06001000 _0804696C: .4byte 0x083A8ACC _08046970: .4byte 0x06006800 _08046974: .4byte 0x80000200 _08046978: .4byte 0x083A826C _0804697C: .4byte 0x06006C00 _08046980: .4byte 0x80000400 _08046984: .4byte 0x0845A48C _08046988: .4byte 0x06010000 _0804698C: ldr r4, _08046A48 @ =0x040000D4 ldr r0, _08046A4C @ =0x0826EC10 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046A50 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A54 @ =0x082E4EE0 str r0, [r4] ldr r1, _08046A58 @ =0x06008000 mov r8, r1 str r1, [r4, #4] ldr r0, _08046A5C @ =0x80004000 mov sb, r0 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A60 @ =0x082ECEE0 str r0, [r4] ldr r0, _08046A64 @ =0x06003000 str r0, [r4, #4] ldr r6, _08046A68 @ =0x80000800 str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A6C @ =0x082D34D0 ldr r5, _08046A70 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046A74 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046A78 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A7C @ =0x082D523C adds r1, r5, #0 bl LZ77UnCompWram ldr r0, _08046A80 @ =0x082D8998 ldr r1, _08046A84 @ =0x020030A0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046A88 @ =0x0600A800 str r0, [r4, #4] ldr r0, _08046A8C @ =0x80001800 str r0, [r4, #8] ldr r0, [r4, #8] movs r1, #0xc0 lsls r1, r1, #6 adds r5, r5, r1 str r5, [r4] mov r0, r8 str r0, [r4, #4] ldr r0, _08046A90 @ =0x80001400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A94 @ =0x0826EE10 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A98 @ =0x082AE6D0 str r0, [r4] ldr r0, _08046A9C @ =0x06001000 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046AA0 @ =0x083A8ACC str r0, [r4] ldr r0, _08046AA4 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046AA8 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046AAC @ =0x083A826C str r0, [r4] ldr r0, _08046AB0 @ =0x06006C00 str r0, [r4, #4] ldr r0, _08046AB4 @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046AB8 @ =0x0845F9EC str r0, [r4] ldr r0, _08046ABC @ =0x06010000 str r0, [r4, #4] mov r1, sb str r1, [r4, #8] b _08046F64 .align 2, 0 _08046A48: .4byte 0x040000D4 _08046A4C: .4byte 0x0826EC10 _08046A50: .4byte 0x80000100 _08046A54: .4byte 0x082E4EE0 _08046A58: .4byte 0x06008000 _08046A5C: .4byte 0x80004000 _08046A60: .4byte 0x082ECEE0 _08046A64: .4byte 0x06003000 _08046A68: .4byte 0x80000800 _08046A6C: .4byte 0x082D34D0 _08046A70: .4byte 0x0200FBB0 _08046A74: .4byte 0x06004000 _08046A78: .4byte 0x80002000 _08046A7C: .4byte 0x082D523C _08046A80: .4byte 0x082D8998 _08046A84: .4byte 0x020030A0 _08046A88: .4byte 0x0600A800 _08046A8C: .4byte 0x80001800 _08046A90: .4byte 0x80001400 _08046A94: .4byte 0x0826EE10 _08046A98: .4byte 0x082AE6D0 _08046A9C: .4byte 0x06001000 _08046AA0: .4byte 0x083A8ACC _08046AA4: .4byte 0x06006800 _08046AA8: .4byte 0x80000200 _08046AAC: .4byte 0x083A826C _08046AB0: .4byte 0x06006C00 _08046AB4: .4byte 0x80000400 _08046AB8: .4byte 0x0845F9EC _08046ABC: .4byte 0x06010000 _08046AC0: ldr r4, _08046B44 @ =0x040000D4 ldr r0, _08046B48 @ =0x082EDEE0 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046B4C @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B50 @ =0x08302700 ldr r5, _08046B54 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046B58 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046B5C @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B60 @ =0x08303928 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046B64 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046B68 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B6C @ =0x082EE4C0 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046B70 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B74 @ =0x08301700 str r0, [r4] ldr r0, _08046B78 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B7C @ =0x08301F00 str r0, [r4] ldr r0, _08046B80 @ =0x06001000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B84 @ =0x083A8ACC str r0, [r4] ldr r0, _08046B88 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046B8C @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B90 @ =0x083A826C str r0, [r4] ldr r0, _08046B94 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B98 @ =0x08464F4C b _08046F5C .align 2, 0 _08046B44: .4byte 0x040000D4 _08046B48: .4byte 0x082EDEE0 _08046B4C: .4byte 0x80000100 _08046B50: .4byte 0x08302700 _08046B54: .4byte 0x0200FBB0 _08046B58: .4byte 0x06004000 _08046B5C: .4byte 0x80002000 _08046B60: .4byte 0x08303928 _08046B64: .4byte 0x06008000 _08046B68: .4byte 0x80004000 _08046B6C: .4byte 0x082EE4C0 _08046B70: .4byte 0x80000400 _08046B74: .4byte 0x08301700 _08046B78: .4byte 0x06000800 _08046B7C: .4byte 0x08301F00 _08046B80: .4byte 0x06001000 _08046B84: .4byte 0x083A8ACC _08046B88: .4byte 0x06006800 _08046B8C: .4byte 0x80000200 _08046B90: .4byte 0x083A826C _08046B94: .4byte 0x06006C00 _08046B98: .4byte 0x08464F4C _08046B9C: ldr r4, _08046C20 @ =0x040000D4 ldr r0, _08046C24 @ =0x0830CBD4 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046C28 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C2C @ =0x08302700 ldr r5, _08046C30 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046C34 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046C38 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C3C @ =0x0832A194 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046C40 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046C44 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C48 @ =0x08329994 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046C4C @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C50 @ =0x0830CDD4 str r0, [r4] ldr r0, _08046C54 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C58 @ =0x08327994 str r0, [r4] ldr r0, _08046C5C @ =0x06001000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C60 @ =0x083A8ACC str r0, [r4] ldr r0, _08046C64 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046C68 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C6C @ =0x083A826C str r0, [r4] ldr r0, _08046C70 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C74 @ =0x084675EC b _08046F5C .align 2, 0 _08046C20: .4byte 0x040000D4 _08046C24: .4byte 0x0830CBD4 _08046C28: .4byte 0x80000100 _08046C2C: .4byte 0x08302700 _08046C30: .4byte 0x0200FBB0 _08046C34: .4byte 0x06004000 _08046C38: .4byte 0x80002000 _08046C3C: .4byte 0x0832A194 _08046C40: .4byte 0x06008000 _08046C44: .4byte 0x80004000 _08046C48: .4byte 0x08329994 _08046C4C: .4byte 0x80000400 _08046C50: .4byte 0x0830CDD4 _08046C54: .4byte 0x06000800 _08046C58: .4byte 0x08327994 _08046C5C: .4byte 0x06001000 _08046C60: .4byte 0x083A8ACC _08046C64: .4byte 0x06006800 _08046C68: .4byte 0x80000200 _08046C6C: .4byte 0x083A826C _08046C70: .4byte 0x06006C00 _08046C74: .4byte 0x084675EC _08046C78: ldr r4, _08046CF0 @ =0x040000D4 ldr r0, _08046CF4 @ =0x08332E04 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046CF8 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046CFC @ =0x08302700 ldr r5, _08046D00 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046D04 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046D08 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D0C @ =0x0833E044 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046D10 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046D14 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D18 @ =0x08333004 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046D1C @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D20 @ =0x0833D844 str r0, [r4] ldr r0, _08046D24 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D28 @ =0x083A8ACC str r0, [r4] ldr r0, _08046D2C @ =0x06006800 str r0, [r4, #4] ldr r0, _08046D30 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D34 @ =0x083A826C str r0, [r4] ldr r0, _08046D38 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D3C @ =0x0846A40C b _08046F5C .align 2, 0 _08046CF0: .4byte 0x040000D4 _08046CF4: .4byte 0x08332E04 _08046CF8: .4byte 0x80000100 _08046CFC: .4byte 0x08302700 _08046D00: .4byte 0x0200FBB0 _08046D04: .4byte 0x06004000 _08046D08: .4byte 0x80002000 _08046D0C: .4byte 0x0833E044 _08046D10: .4byte 0x06008000 _08046D14: .4byte 0x80004000 _08046D18: .4byte 0x08333004 _08046D1C: .4byte 0x80000400 _08046D20: .4byte 0x0833D844 _08046D24: .4byte 0x06000800 _08046D28: .4byte 0x083A8ACC _08046D2C: .4byte 0x06006800 _08046D30: .4byte 0x80000200 _08046D34: .4byte 0x083A826C _08046D38: .4byte 0x06006C00 _08046D3C: .4byte 0x0846A40C _08046D40: ldr r4, _08046DB8 @ =0x040000D4 ldr r0, _08046DBC @ =0x08352BD8 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046DC0 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DC4 @ =0x08302700 ldr r5, _08046DC8 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046DCC @ =0x06004000 str r0, [r4, #4] ldr r0, _08046DD0 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DD4 @ =0x08353DD8 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046DD8 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046DDC @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DE0 @ =0x08352DD8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046DE4 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DE8 @ =0x083535D8 str r0, [r4] ldr r0, _08046DEC @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DF0 @ =0x083A8ACC str r0, [r4] ldr r0, _08046DF4 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046DF8 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DFC @ =0x083A826C str r0, [r4] ldr r0, _08046E00 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046E04 @ =0x0846D2AC b _08046F5C .align 2, 0 _08046DB8: .4byte 0x040000D4 _08046DBC: .4byte 0x08352BD8 _08046DC0: .4byte 0x80000100 _08046DC4: .4byte 0x08302700 _08046DC8: .4byte 0x0200FBB0 _08046DCC: .4byte 0x06004000 _08046DD0: .4byte 0x80002000 _08046DD4: .4byte 0x08353DD8 _08046DD8: .4byte 0x06008000 _08046DDC: .4byte 0x80004000 _08046DE0: .4byte 0x08352DD8 _08046DE4: .4byte 0x80000400 _08046DE8: .4byte 0x083535D8 _08046DEC: .4byte 0x06000800 _08046DF0: .4byte 0x083A8ACC _08046DF4: .4byte 0x06006800 _08046DF8: .4byte 0x80000200 _08046DFC: .4byte 0x083A826C _08046E00: .4byte 0x06006C00 _08046E04: .4byte 0x0846D2AC _08046E08: ldr r4, _08046E8C @ =0x040000D4 ldr r0, _08046E90 @ =0x08363EC8 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046E94 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046E98 @ =0x08302700 ldr r5, _08046E9C @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046EA0 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046EA4 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EA8 @ =0x08370808 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046EAC @ =0x06008000 str r0, [r4, #4] ldr r2, _08046EB0 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EB4 @ =0x083640C8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046EB8 @ =0x80000800 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EBC @ =0x0836F808 str r0, [r4] ldr r0, _08046EC0 @ =0x06001000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EC4 @ =0x0836E808 str r0, [r4] ldr r0, _08046EC8 @ =0x06003000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046ECC @ =0x083A8ACC str r0, [r4] ldr r0, _08046ED0 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046ED4 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046ED8 @ =0x083A826C str r0, [r4] ldr r0, _08046EDC @ =0x06006C00 str r0, [r4, #4] ldr r0, _08046EE0 @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EE4 @ =0x08472A6C b _08046F5C .align 2, 0 _08046E8C: .4byte 0x040000D4 _08046E90: .4byte 0x08363EC8 _08046E94: .4byte 0x80000100 _08046E98: .4byte 0x08302700 _08046E9C: .4byte 0x0200FBB0 _08046EA0: .4byte 0x06004000 _08046EA4: .4byte 0x80002000 _08046EA8: .4byte 0x08370808 _08046EAC: .4byte 0x06008000 _08046EB0: .4byte 0x80004000 _08046EB4: .4byte 0x083640C8 _08046EB8: .4byte 0x80000800 _08046EBC: .4byte 0x0836F808 _08046EC0: .4byte 0x06001000 _08046EC4: .4byte 0x0836E808 _08046EC8: .4byte 0x06003000 _08046ECC: .4byte 0x083A8ACC _08046ED0: .4byte 0x06006800 _08046ED4: .4byte 0x80000200 _08046ED8: .4byte 0x083A826C _08046EDC: .4byte 0x06006C00 _08046EE0: .4byte 0x80000400 _08046EE4: .4byte 0x08472A6C _08046EE8: ldr r4, _08046F78 @ =0x040000D4 ldr r0, _08046F7C @ =0x0837A2E8 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046F80 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046F84 @ =0x08302700 ldr r5, _08046F88 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046F8C @ =0x06004000 str r0, [r4, #4] ldr r0, _08046F90 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046F94 @ =0x0838E828 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046F98 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046F9C @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FA0 @ =0x0837A4E8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046FA4 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FA8 @ =0x0838E028 str r0, [r4] ldr r0, _08046FAC @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FB0 @ =0x083A8ACC str r0, [r4] ldr r0, _08046FB4 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046FB8 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FBC @ =0x083A826C str r0, [r4] ldr r0, _08046FC0 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FC4 @ =0x084779EC _08046F5C: str r0, [r4] ldr r0, _08046FC8 @ =0x06010000 str r0, [r4, #4] str r2, [r4, #8] _08046F64: ldr r0, [r4, #8] _08046F66: ldr r1, _08046FCC @ =0x02031520 ldr r0, _08046FD0 @ =0x0816C3E4 str r0, [r1, #0x68] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08046F78: .4byte 0x040000D4 _08046F7C: .4byte 0x0837A2E8 _08046F80: .4byte 0x80000100 _08046F84: .4byte 0x08302700 _08046F88: .4byte 0x0200FBB0 _08046F8C: .4byte 0x06004000 _08046F90: .4byte 0x80002000 _08046F94: .4byte 0x0838E828 _08046F98: .4byte 0x06008000 _08046F9C: .4byte 0x80004000 _08046FA0: .4byte 0x0837A4E8 _08046FA4: .4byte 0x80000400 _08046FA8: .4byte 0x0838E028 _08046FAC: .4byte 0x06000800 _08046FB0: .4byte 0x083A8ACC _08046FB4: .4byte 0x06006800 _08046FB8: .4byte 0x80000200 _08046FBC: .4byte 0x083A826C _08046FC0: .4byte 0x06006C00 _08046FC4: .4byte 0x084779EC _08046FC8: .4byte 0x06010000 _08046FCC: .4byte 0x02031520 _08046FD0: .4byte 0x0816C3E4 thumb_func_start sub_46FD4 sub_46FD4: @ 0x08046FD4 push {r4, r5, lr} ldr r5, _08047024 @ =0x02031520 ldr r4, _08047028 @ =0x086AFCB0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #4 ldr r3, _0804702C @ =gMain ldrb r1, [r3, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 adds r0, r2, r0 adds r0, r0, r4 ldr r0, [r0] str r0, [r5, #0x38] ldrb r1, [r3, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 adds r0, r2, r0 adds r1, r4, #0 adds r1, #0x10 adds r0, r0, r1 ldr r0, [r0] str r0, [r5, #0x48] ldrb r1, [r3, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 adds r2, r2, r0 adds r4, #0x20 adds r2, r2, r4 ldr r0, [r2] str r0, [r5, #0x58] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08047024: .4byte 0x02031520 _08047028: .4byte 0x086AFCB0 _0804702C: .4byte gMain thumb_func_start sub_47030 sub_47030: @ 0x08047030 push {r4, r5, lr} ldr r0, _08047074 @ =gMain ldr r1, _08047078 @ =0x000002F6 adds r0, r0, r1 ldrh r0, [r0] lsrs r4, r0, #3 adds r2, r4, #0 lsls r1, r2, #3 ldr r0, _0804707C @ =0x086B0010 adds r3, r1, r0 ldr r1, _08047080 @ =0x020314E0 ldr r0, [r1] adds r0, #0x64 movs r5, #0 ldrsh r0, [r0, r5] adds r5, r1, #0 cmp r2, r0 beq _080470EA cmp r2, r0 ble _080470A8 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0x1f ble _0804708C ldr r2, _08047084 @ =0x040000D4 subs r0, #0x20 lsls r0, r0, #0xa ldr r1, _08047088 @ =0x020030A0 adds r0, r0, r1 str r0, [r2] movs r1, #2 ldrsh r0, [r3, r1] b _080470D6 .align 2, 0 _08047074: .4byte gMain _08047078: .4byte 0x000002F6 _0804707C: .4byte 0x086B0010 _08047080: .4byte 0x020314E0 _08047084: .4byte 0x040000D4 _08047088: .4byte 0x020030A0 _0804708C: ldr r2, _080470A0 @ =0x040000D4 movs r1, #0 ldrsh r0, [r3, r1] lsls r0, r0, #0xa ldr r1, _080470A4 @ =0x0200FBB0 adds r0, r0, r1 str r0, [r2] movs r1, #2 ldrsh r0, [r3, r1] b _080470D6 .align 2, 0 _080470A0: .4byte 0x040000D4 _080470A4: .4byte 0x0200FBB0 _080470A8: movs r1, #4 ldrsh r0, [r3, r1] cmp r0, #0x1f ble _080470C4 ldr r2, _080470BC @ =0x040000D4 subs r0, #0x20 lsls r0, r0, #0xa ldr r1, _080470C0 @ =0x020030A0 b _080470CE .align 2, 0 _080470BC: .4byte 0x040000D4 _080470C0: .4byte 0x020030A0 _080470C4: ldr r2, _080470F0 @ =0x040000D4 movs r1, #4 ldrsh r0, [r3, r1] lsls r0, r0, #0xa ldr r1, _080470F4 @ =0x0200FBB0 _080470CE: adds r0, r0, r1 str r0, [r2] movs r1, #6 ldrsh r0, [r3, r1] _080470D6: lsls r0, r0, #0xa ldr r1, _080470F8 @ =0x06008000 adds r0, r0, r1 str r0, [r2, #4] ldr r0, _080470FC @ =0x80000200 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x64 strh r4, [r0] _080470EA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080470F0: .4byte 0x040000D4 _080470F4: .4byte 0x0200FBB0 _080470F8: .4byte 0x06008000 _080470FC: .4byte 0x80000200 thumb_func_start sub_47100 sub_47100: @ 0x08047100 ldr r0, _0804710C @ =0x020314E0 ldr r0, [r0] adds r0, #0xfc movs r1, #0x80 strh r1, [r0] bx lr .align 2, 0 _0804710C: .4byte 0x020314E0 thumb_func_start sub_47110 sub_47110: @ 0x08047110 push {r4, r5, lr} movs r0, #0 ldr r5, _08047148 @ =0x03005C00 adds r4, r5, #0 ldr r3, _0804714C @ =0x000001FF ldr r2, _08047150 @ =0x000007FF _0804711C: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r4 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r2 ble _0804711C ldr r1, _08047154 @ =0x040000D4 str r5, [r1] ldr r0, _08047158 @ =0x06002000 str r0, [r1, #4] ldr r0, _0804715C @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08047148: .4byte 0x03005C00 _0804714C: .4byte 0x000001FF _08047150: .4byte 0x000007FF _08047154: .4byte 0x040000D4 _08047158: .4byte 0x06002000 _0804715C: .4byte 0x80000800 thumb_func_start sub_47160 sub_47160: @ 0x08047160 push {r4, r5, lr} ldr r2, _0804719C @ =gMain ldrh r1, [r2, #0x18] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080471B6 ldrb r0, [r2, #2] cmp r0, #3 beq _080471B6 ldr r0, _080471A0 @ =0x020314E0 ldr r0, [r0] movs r1, #0x88 lsls r1, r1, #5 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 bne _080471B6 ldrb r1, [r2, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080471A4 movs r0, #0xfd ands r0, r1 strb r0, [r2, #0xf] bl sub_497BC b _080471B6 .align 2, 0 _0804719C: .4byte gMain _080471A0: .4byte 0x020314E0 _080471A4: movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080471B6 movs r0, #2 orrs r0, r1 strb r0, [r2, #0xf] bl sub_495A0 _080471B6: ldr r4, _080472B0 @ =gMain ldrb r1, [r4, #0xf] movs r5, #2 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08047274 ldrh r1, [r4, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080471E4 ldr r0, _080472B4 @ =0x020314E0 ldr r1, [r0] ldr r0, _080472B8 @ =0x00001104 adds r1, r1, r0 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] movs r0, #0xa3 bl m4aSongNumStart _080471E4: ldrh r1, [r4, #0x18] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08047204 ldr r0, _080472B4 @ =0x020314E0 ldr r1, [r0] ldr r0, _080472B8 @ =0x00001104 adds r1, r1, r0 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] movs r0, #0xa3 bl m4aSongNumStart _08047204: ldrh r1, [r4, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08047244 ldrh r1, [r4, #0x1c] movs r0, #0xe ands r0, r1 cmp r0, #0 bne _08047244 ldr r0, _080472B4 @ =0x020314E0 ldr r0, [r0] ldr r1, _080472B8 @ =0x00001104 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08047230 strb r5, [r4, #0xe] bl sub_49850 _08047230: ldrb r1, [r4, #0xf] movs r0, #0xfd ands r0, r1 strb r0, [r4, #0xf] bl sub_497BC ldrh r1, [r4, #0x18] ldr r0, _080472BC @ =0x0000FFFE ands r0, r1 strh r0, [r4, #0x18] _08047244: ldr r4, _080472B0 @ =gMain ldrh r1, [r4, #0x18] movs r5, #2 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08047266 ldrb r1, [r4, #0xf] movs r0, #0xfd ands r0, r1 strb r0, [r4, #0xf] bl sub_497BC ldrh r1, [r4, #0x18] ldr r0, _080472C0 @ =0x0000FFFD ands r0, r1 strh r0, [r4, #0x18] _08047266: ldrb r1, [r4, #0xf] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08047274 bl sub_49A34 _08047274: ldr r0, _080472B0 @ =gMain ldrb r1, [r0, #0xf] adds r2, r0, #0 cmp r1, #0 bne _080472DC ldr r3, _080472B4 @ =0x020314E0 ldr r0, [r3] movs r4, #0xe8 lsls r4, r4, #3 adds r0, r0, r4 strb r1, [r0] ldrh r0, [r2, #0x14] cmp r0, #0 beq _080472DC subs r0, #1 strh r0, [r2, #0x14] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bne _080472D2 ldr r0, [r3] adds r1, r0, #0 adds r1, #0xe4 ldrb r0, [r1] cmp r0, #0 beq _080472C4 movs r0, #0xa strh r0, [r2, #0x14] b _080472D2 .align 2, 0 _080472B0: .4byte gMain _080472B4: .4byte 0x020314E0 _080472B8: .4byte 0x00001104 _080472BC: .4byte 0x0000FFFE _080472C0: .4byte 0x0000FFFD _080472C4: ldrb r0, [r2, #0x11] cmp r0, #8 bne _080472CE movs r0, #0x13 b _080472D0 _080472CE: movs r0, #0x14 _080472D0: strb r0, [r1] _080472D2: ldrh r0, [r2, #0x14] cmp r0, #0 bne _080472DC ldrb r0, [r2, #0x11] strb r0, [r2, #0xf] _080472DC: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_472E4 sub_472E4: @ 0x080472E4 push {r4, lr} ldr r4, _080472FC @ =gMain ldrb r1, [r4, #0xf] cmp r1, #0 beq _08047338 movs r0, #8 ands r0, r1 cmp r0, #0 beq _08047300 bl sub_478D8 b _08047338 .align 2, 0 _080472FC: .4byte gMain _08047300: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0804730E bl sub_47670 b _08047338 _0804730E: movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0804731C bl sub_474F4 b _08047338 _0804731C: movs r0, #4 ands r0, r1 cmp r0, #0 beq _08047338 bl sub_47344 ldr r0, _08047340 @ =0x020314E0 ldr r1, [r0] ldrb r0, [r4, #0x10] adds r0, #1 movs r2, #0xe8 lsls r2, r2, #3 adds r1, r1, r2 strb r0, [r1] _08047338: pop {r4} pop {r0} bx r0 .align 2, 0 _08047340: .4byte 0x020314E0 thumb_func_start sub_47344 sub_47344: @ 0x08047344 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x44 ldr r1, _08047448 @ =0x08137DBE mov r0, sp movs r2, #0x2a bl memcpy add r4, sp, #0x2c ldr r1, _0804744C @ =0x08137DE8 adds r0, r4, #0 movs r2, #0x18 bl memcpy mov sb, r4 mov r1, sp adds r1, #0x2d mov r6, sp adds r6, #0x31 mov r7, sp adds r7, #0x39 add r0, sp, #0x38 mov r8, r0 ldr r0, _08047450 @ =0x03005C00 movs r3, #0 movs r2, #0xd0 lsls r2, r2, #3 adds r0, r0, r2 movs r2, #0x40 _08047382: strh r3, [r0] adds r0, #2 subs r2, #1 cmp r2, #0 bne _08047382 ldr r5, _08047454 @ =0x020314E0 ldr r0, [r5] ldr r4, _08047458 @ =0x0000132C adds r0, r0, r4 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] movs r2, #3 movs r3, #1 bl sub_6CC ldr r0, [r5] adds r0, r0, r4 ldr r0, [r0] movs r1, #0x12 ldrsh r0, [r0, r1] adds r1, r6, #0 movs r2, #3 movs r3, #1 bl sub_6CC mov r0, sb movs r1, #0x1a movs r2, #9 bl sub_678 ldr r0, [r5] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r7, #0 movs r2, #3 movs r3, #1 bl sub_6CC mov r0, r8 movs r1, #0x1a movs r2, #0x12 bl sub_678 mov r0, sp movs r1, #0x1a movs r2, #0 bl sub_678 ldr r4, _0804745C @ =gMain ldrh r1, [r4, #0x1c] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08047464 ldr r0, [r4, #0x4c] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08047408 ldr r0, _08047460 @ =0x08137E00 ldrb r1, [r4, #0x10] adds r1, #0x1a movs r2, #0 bl sub_678 _08047408: ldrh r1, [r4, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0804741C ldrb r0, [r4, #0x10] cmp r0, #0 beq _0804741C subs r0, #1 strb r0, [r4, #0x10] _0804741C: ldr r2, _0804745C @ =gMain ldrh r1, [r2, #0x18] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08047432 ldrb r0, [r2, #0x10] cmp r0, #0 bne _08047432 adds r0, #1 strb r0, [r2, #0x10] _08047432: ldr r0, _08047454 @ =0x020314E0 ldr r0, [r0] movs r6, #0xe8 lsls r6, r6, #3 adds r0, r0, r6 ldrb r0, [r0] cmp r0, #2 bne _08047490 bl sub_48124 b _08047490 .align 2, 0 _08047448: .4byte 0x08137DBE _0804744C: .4byte 0x08137DE8 _08047450: .4byte 0x03005C00 _08047454: .4byte 0x020314E0 _08047458: .4byte 0x0000132C _0804745C: .4byte gMain _08047460: .4byte 0x08137E00 _08047464: ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #3 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #1 beq _08047478 cmp r0, #2 beq _0804747E b _08047482 _08047478: bl sub_47FF8 b _08047482 _0804747E: bl sub_48124 _08047482: ldr r0, _080474DC @ =0x08137E00 ldr r1, _080474E0 @ =gMain ldrb r1, [r1, #0x10] adds r1, #0x1a movs r2, #0 bl sub_678 _08047490: ldr r4, _080474E4 @ =0x03005C00 ldr r5, _080474E0 @ =gMain movs r2, #0xc1 lsls r2, r2, #8 adds r3, r2, #0 movs r6, #0xd0 lsls r6, r6, #3 adds r1, r4, r6 movs r2, #0x40 _080474A2: ldrh r6, [r1] adds r0, r3, r6 strh r0, [r1] adds r1, #2 subs r2, #1 cmp r2, #0 bne _080474A2 ldr r1, _080474E8 @ =0x040000D4 str r4, [r1] ldr r0, _080474EC @ =0x06002000 str r0, [r1, #4] ldr r0, _080474F0 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r1, [r5, #0x1c] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080474CC bl sub_47FBC _080474CC: add sp, #0x44 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080474DC: .4byte 0x08137E00 _080474E0: .4byte gMain _080474E4: .4byte 0x03005C00 _080474E8: .4byte 0x040000D4 _080474EC: .4byte 0x06002000 _080474F0: .4byte 0x80000400 thumb_func_start sub_474F4 sub_474F4: @ 0x080474F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _08047638 @ =gMain ldr r1, [r0, #0x44] adds r1, #0xa8 ldr r5, [r1] ldrh r1, [r5] mov sb, r0 cmp r1, #0 beq _08047558 movs r0, #0x3f strh r0, [r5, #2] movs r0, #0x34 strh r0, [r5, #4] ldr r7, _0804763C @ =0x03005000 ldr r0, _08047640 @ =0xFFFFFE00 mov ip, r0 adds r4, r5, #0 adds r4, #8 ldr r1, _08047644 @ =0x000001FF mov r8, r1 movs r6, #7 _08047524: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r5, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _08047524 _08047558: mov r1, sb ldr r0, [r1, #0x4c] lsls r0, r0, #0x1c lsrs r7, r0, #0x10 movs r6, #0 _08047562: adds r0, r7, #0 bl sub_C74 ldr r4, _08047648 @ =0x02031500 lsls r2, r6, #1 adds r4, r2, r4 ldr r1, _0804764C @ =0x02030750 adds r5, r2, r1 movs r2, #0 ldrsh r1, [r5, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 movs r1, #0xc8 bl __divsi3 strh r0, [r4] ldr r0, _08047638 @ =gMain ldr r1, [r0, #0x4c] movs r0, #1 ands r1, r0 cmp r1, #0 bne _0804759E ldrh r0, [r5] adds r0, #1 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 blt _0804759E strh r1, [r5] _0804759E: adds r6, #1 cmp r6, #7 ble _08047562 ldr r2, _08047638 @ =gMain ldrh r1, [r2, #0x12] movs r0, #0xe1 lsls r0, r0, #4 cmp r1, r0 bne _080475FA ldr r1, _08047650 @ =0x040000D4 ldr r0, _08047654 @ =0x08509F4C str r0, [r1] ldr r0, _08047658 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804765C @ =0x80000200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2, #0x44] adds r0, #0xa8 ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r6, #0 mov r8, r6 ldr r5, _08047648 @ =0x02031500 ldr r7, _08047660 @ =0x0000E0C0 _080475D2: lsls r4, r6, #1 strh r7, [r5] ldr r0, _08047664 @ =0x020306C0 adds r0, r4, r0 mov r1, r8 strh r1, [r0] bl sub_C00 ldr r1, _0804764C @ =0x02030750 adds r4, r4, r1 movs r1, #0x1e bl __umodsi3 ldr r2, _08047668 @ =0x0000FFCE adds r0, r0, r2 strh r0, [r4] adds r5, #2 adds r6, #1 cmp r6, #7 ble _080475D2 _080475FA: ldr r0, _08047638 @ =gMain ldrh r1, [r0, #0x12] mov sb, r0 cmp r1, #0 beq _08047618 subs r0, r1, #1 mov r1, sb strh r0, [r1, #0x12] lsls r0, r0, #0x10 cmp r0, #0 bne _08047618 ldr r0, _0804766C @ =0x020314E0 ldr r1, [r0] movs r0, #2 strb r0, [r1, #0x1d] _08047618: mov r2, sb ldrh r1, [r2, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804762C ldr r0, _0804766C @ =0x020314E0 ldr r1, [r0] movs r0, #2 strb r0, [r1, #0x1d] _0804762C: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08047638: .4byte gMain _0804763C: .4byte 0x03005000 _08047640: .4byte 0xFFFFFE00 _08047644: .4byte 0x000001FF _08047648: .4byte 0x02031500 _0804764C: .4byte 0x02030750 _08047650: .4byte 0x040000D4 _08047654: .4byte 0x08509F4C _08047658: .4byte 0x06015800 _0804765C: .4byte 0x80000200 _08047660: .4byte 0x0000E0C0 _08047664: .4byte 0x020306C0 _08047668: .4byte 0x0000FFCE _0804766C: .4byte 0x020314E0 thumb_func_start sub_47670 sub_47670: @ 0x08047670 push {r4, r5, r6, r7, lr} ldr r4, _080476A4 @ =gMain ldrh r0, [r4, #0x12] cmp r0, #0 bne _0804767C b _080477C4 _0804767C: cmp r0, #0x14 bhi _080476AC cmp r0, #0x14 bne _0804768A movs r0, #0xa4 bl m4aSongNumStart _0804768A: ldr r0, _080476A8 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0xfc ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x7f bgt _080476C4 adds r0, r2, #0 adds r0, #8 b _080476C2 .align 2, 0 _080476A4: .4byte gMain _080476A8: .4byte 0x020314E0 _080476AC: ldr r0, _0804771C @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0xfc ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _080476C4 adds r0, r2, #0 subs r0, #8 _080476C2: strh r0, [r1] _080476C4: bl sub_48190 ldr r2, _08047720 @ =gMain ldrh r0, [r2, #0x12] subs r0, #1 movs r1, #0 strh r0, [r2, #0x12] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc7 bne _080477A0 ldr r0, _0804771C @ =0x020314E0 ldr r0, [r0] adds r0, #0xfc movs r1, #0x80 strh r1, [r0] movs r1, #0x97 lsls r1, r1, #4 adds r0, r2, r1 movs r1, #1 strh r1, [r0] movs r3, #0xe9 lsls r3, r3, #3 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r1, _08047724 @ =0x040000D4 ldr r0, _08047728 @ =0x0850398C str r0, [r1] ldr r0, _0804772C @ =0x06015800 str r0, [r1, #4] ldr r0, _08047730 @ =0x80001400 str r0, [r1, #8] ldr r0, [r1, #8] ldrb r0, [r2, #4] cmp r0, #0 bne _08047738 ldr r0, _08047734 @ =0x08521FAC b _0804773A .align 2, 0 _0804771C: .4byte 0x020314E0 _08047720: .4byte gMain _08047724: .4byte 0x040000D4 _08047728: .4byte 0x0850398C _0804772C: .4byte 0x06015800 _08047730: .4byte 0x80001400 _08047734: .4byte 0x08521FAC _08047738: ldr r0, _0804778C @ =0x08521FCC _0804773A: str r0, [r1] ldr r0, _08047790 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08047794 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xa4 bl m4aSongNumStart movs r1, #0 ldr r7, _08047798 @ =0x020314E0 ldr r6, _0804779C @ =0x0000063C movs r5, #0 _08047754: movs r2, #0 lsls r4, r1, #0x10 asrs r1, r4, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r3, r0, #2 _08047760: ldr r0, [r7] lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r3 adds r0, r0, r6 adds r0, r0, r2 strb r5, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x13 ble _08047760 movs r1, #0x80 lsls r1, r1, #9 adds r0, r4, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08047754 b _080478D0 .align 2, 0 _0804778C: .4byte 0x08521FCC _08047790: .4byte 0x050003C0 _08047794: .4byte 0x80000010 _08047798: .4byte 0x020314E0 _0804779C: .4byte 0x0000063C _080477A0: cmp r0, #1 beq _080477A6 b _080478D0 _080477A6: movs r3, #0x97 lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] movs r3, #0xe9 lsls r3, r3, #3 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] b _080478D0 _080477C4: ldrb r0, [r4, #0xf] movs r1, #0xef ands r1, r0 strb r1, [r4, #0xf] bl sub_47FBC ldr r5, _08047860 @ =0x020314E0 ldr r1, [r5] adds r2, r1, #0 adds r2, #0x30 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080478BC ldr r0, _08047864 @ =0x00000724 adds r1, r1, r0 movs r4, #0 subs r0, #0x1c strh r0, [r1] ldrb r0, [r2] subs r0, #1 strb r0, [r2] ldr r0, [r5] movs r1, #0x3c strh r1, [r0, #0x26] ldr r1, _08047868 @ =0x0000062A adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] ldr r2, _0804786C @ =0x0000062B adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r3, _08047870 @ =0x0000062C adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r2, #3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #3 adds r0, r0, r3 strb r4, [r0] movs r0, #0 bl sub_11C14 movs r0, #0 bl sub_46FD4 ldr r0, [r5] ldr r1, _08047874 @ =0x0000029E adds r0, r0, r1 strb r4, [r0] ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _080478A4 ldr r2, _08047878 @ =0x00000283 adds r0, r1, r2 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080478AA lsls r0, r0, #2 ldr r1, _0804787C @ =_08047880 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08047860: .4byte 0x020314E0 _08047864: .4byte 0x00000724 _08047868: .4byte 0x0000062A _0804786C: .4byte 0x0000062B _08047870: .4byte 0x0000062C _08047874: .4byte 0x0000029E _08047878: .4byte 0x00000283 _0804787C: .4byte _08047880 _08047880: @ jump table .4byte _08047894 @ case 0 .4byte _0804789C @ case 1 .4byte _08047894 @ case 2 .4byte _0804789C @ case 3 .4byte _0804789C @ case 4 _08047894: movs r0, #0xe bl m4aSongNumStart b _080478AA _0804789C: movs r0, #0xf bl m4aSongNumStart b _080478AA _080478A4: movs r0, #1 bl sub_19B64 _080478AA: ldr r0, _080478B8 @ =0x020314E0 ldr r0, [r0] adds r0, #0xe4 movs r1, #0 strb r1, [r0] b _080478D0 .align 2, 0 _080478B8: .4byte 0x020314E0 _080478BC: ldrb r0, [r4, #0xf] movs r1, #0x20 orrs r0, r1 strb r0, [r4, #0xf] movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r4, #0x12] movs r0, #0xc bl m4aSongNumStart _080478D0: pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_478D8 sub_478D8: @ 0x080478D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r7, _08047AEC @ =gMain ldrh r0, [r7, #0x12] cmp r0, #0 bne _080478EE b _08047F2E _080478EE: movs r0, #0xd2 lsls r0, r0, #3 adds r6, r7, r0 ldrh r0, [r6] movs r1, #0xbb lsls r1, r1, #3 adds r1, r1, r7 mov r8, r1 cmp r0, #0 beq _08047984 movs r0, #0x58 strh r0, [r6, #2] ldr r0, _08047AF0 @ =0x020314E0 ldr r0, [r0] adds r0, #0xfe ldrh r0, [r0] adds r0, #0x14 strh r0, [r6, #4] movs r0, #0 ldr r7, _08047AF4 @ =0x03005000 ldr r2, _08047AF8 @ =0xFFFFFE00 mov sl, r2 movs r3, #0xf rsbs r3, r3, #0 mov sb, r3 _08047920: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08047AFC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #3] mov r0, sb ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08047920 _08047984: mov r6, r8 ldrh r0, [r6] cmp r0, #0 beq _08047A14 ldr r4, _08047AF0 @ =0x020314E0 ldr r0, [r4] movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x18 strh r0, [r6, #2] ldr r0, [r4] adds r4, r0, #0 adds r4, #0xfe movs r1, #0x82 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x14 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldr r4, _08047AF4 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08047AFC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08047AF8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] 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] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r1, #1] movs r2, #3 orrs r0, r2 strb r0, [r1, #1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2, #3] _08047A14: subs r6, #0xb8 ldrh r0, [r6] cmp r0, #0 beq _08047A9A ldr r4, _08047AF0 @ =0x020314E0 ldr r0, [r4] movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x38 strh r0, [r6, #2] ldr r0, [r4] adds r4, r0, #0 adds r4, #0xfe movs r1, #0x82 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x34 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r6, #4] movs r0, #0 ldr r7, _08047AF4 @ =0x03005000 ldr r2, _08047AF8 @ =0xFFFFFE00 mov r8, r2 _08047A56: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08047AFC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08047A56 _08047A9A: ldr r1, _08047AEC @ =gMain ldrh r0, [r1, #0x12] subs r0, #1 strh r0, [r1, #0x12] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x46 bls _08047B00 ldrh r1, [r1, #0x12] adds r2, r1, #0 adds r2, #0x14 adds r0, r2, #0 asrs r0, r0, #6 lsls r0, r0, #6 subs r0, r2, r0 lsls r0, r0, #0x1a lsrs r0, r0, #0x10 bl sub_C24 ldr r1, _08047AF0 @ =0x020314E0 ldr r5, [r1] movs r3, #0x82 lsls r3, r3, #1 adds r4, r5, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x28 bl __divsi3 str r0, [r4] movs r4, #0x84 lsls r4, r4, #1 adds r1, r5, r4 movs r0, #0xa strh r0, [r1] movs r0, #0x85 lsls r0, r0, #1 adds r1, r5, r0 adds r0, #0x86 strh r0, [r1] b _08047B3C .align 2, 0 _08047AEC: .4byte gMain _08047AF0: .4byte 0x020314E0 _08047AF4: .4byte 0x03005000 _08047AF8: .4byte 0xFFFFFE00 _08047AFC: .4byte 0x000001FF _08047B00: ldr r0, _08047B6C @ =0x020314E0 ldr r4, [r0] movs r2, #0x84 lsls r2, r2, #1 adds r1, r4, r2 movs r0, #0xc8 lsls r0, r0, #1 strh r0, [r1] movs r5, #0x85 lsls r5, r5, #1 adds r3, r4, r5 ldrh r0, [r3] subs r0, #0x23 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #1 adds r2, r4, r0 movs r5, #0 ldrsh r1, [r1, r5] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x82 lsls r0, r0, #1 adds r2, r4, r0 movs r4, #0 ldrsh r1, [r3, r4] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] _08047B3C: ldr r1, _08047B70 @ =gMain ldrh r2, [r1, #0x12] adds r0, r2, #0 subs r0, #0x1e lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r6, r1, #0 cmp r0, #0x1d bhi _08047B74 ldrh r1, [r6, #0x12] movs r0, #0x3c subs r0, r0, r1 lsls r0, r0, #8 movs r1, #0x1e bl __divsi3 movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] b _08047B8C .align 2, 0 _08047B6C: .4byte 0x020314E0 _08047B70: .4byte gMain _08047B74: movs r0, #0x80 lsls r0, r0, #1 str r0, [sp] lsls r0, r2, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1d bhi _08047B8C movs r2, #0xbb lsls r2, r2, #3 adds r1, r6, r2 movs r0, #0 strh r0, [r1] _08047B8C: ldrh r0, [r6, #0x12] cmp r0, #0x1e bhi _08047BBE cmp r0, #0xa bls _08047BAE adds r1, r0, #0 subs r1, #0xa lsls r0, r1, #5 subs r0, r0, r1 lsls r0, r0, #3 movs r1, #0x14 bl __divsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 b _08047BE4 _08047BAE: movs r3, #8 mov sl, r3 movs r4, #0xd2 lsls r4, r4, #3 adds r1, r6, r4 movs r0, #0 strh r0, [r1] b _08047BE6 _08047BBE: ldr r0, _08047C48 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0xfe ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0 ble _08047BE0 adds r0, r2, #0 subs r0, #8 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08047BE0 movs r0, #0 strh r0, [r1] _08047BE0: movs r0, #0x80 lsls r0, r0, #1 _08047BE4: mov sl, r0 _08047BE6: adds r3, r6, #0 ldrh r0, [r3, #0x12] cmp r0, #0xca bls _08047BF0 b _08047DBA _08047BF0: cmp r0, #0x37 bls _08047C50 ldr r7, _08047C48 @ =0x020314E0 ldr r2, [r7] movs r1, #0x84 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] movs r4, #0x86 lsls r4, r4, #1 adds r0, r2, r4 strh r1, [r0] movs r5, #0x85 lsls r5, r5, #1 adds r0, r2, r5 ldrh r0, [r0] subs r0, #0x5a adds r4, #2 adds r1, r2, r4 strh r0, [r1] adds r5, #6 mov r8, r5 adds r1, r2, r5 subs r4, #0xe adds r0, r2, r4 ldr r0, [r0] str r0, [r1] adds r5, #4 mov sb, r5 adds r1, r2, r5 adds r4, #4 adds r0, r2, r4 ldr r0, [r0] str r0, [r1] ldrh r0, [r3, #0x12] cmp r0, #0x38 bne _08047C40 movs r0, #0x95 bl m4aSongNumStart _08047C40: ldr r5, [r7] ldr r0, _08047C4C @ =0x0000132C adds r4, r5, r0 b _08047CBC .align 2, 0 _08047C48: .4byte 0x020314E0 _08047C4C: .4byte 0x0000132C _08047C50: cmp r0, #0x1f bls _08047D00 ldr r7, _08047CF4 @ =0x020314E0 ldr r5, [r7] movs r0, #0x87 lsls r0, r0, #1 adds r4, r5, r0 ldrh r0, [r4] adds r0, #6 movs r1, #0 mov ip, r1 strh r0, [r4] movs r2, #0x88 lsls r2, r2, #1 mov r8, r2 adds r2, r5, r2 movs r3, #0x86 lsls r3, r3, #1 adds r0, r5, r3 movs r3, #0 ldrsh r1, [r0, r3] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x8a lsls r0, r0, #1 mov sb, r0 adds r2, r5, r0 movs r3, #0 ldrsh r1, [r4, r3] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r4, #0xa4 lsls r4, r4, #3 adds r0, r6, r4 mov r1, ip strh r1, [r0] ldrh r0, [r6, #0x12] cmp r0, #0x20 bne _08047CB6 ldr r2, _08047CF8 @ =0x000005FA adds r1, r5, r2 movs r0, #0 strb r0, [r1] movs r0, #0x96 bl m4aSongNumStart movs r0, #6 bl sub_11B0 _08047CB6: ldr r5, [r7] ldr r3, _08047CFC @ =0x0000132C adds r4, r5, r3 _08047CBC: ldr r6, [r4] mov r1, r8 adds r0, r5, r1 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x56 lsls r0, r0, #8 str r0, [r6, #0x34] ldr r6, [r4] adds r0, r5, #0 adds r0, #0xfe movs r2, #0 ldrsh r4, [r0, r2] add r5, sb ldr r0, [r5] movs r1, #0x64 bl __divsi3 movs r3, #0xba lsls r3, r3, #1 adds r0, r0, r3 adds r4, r4, r0 lsls r4, r4, #8 str r4, [r6, #0x38] adds r2, r7, #0 b _08047D80 .align 2, 0 _08047CF4: .4byte 0x020314E0 _08047CF8: .4byte 0x000005FA _08047CFC: .4byte 0x0000132C _08047D00: ldr r4, _08047E68 @ =0x020314E0 mov sb, r4 ldr r7, [r4] movs r5, #0x86 lsls r5, r5, #1 adds r1, r7, r5 movs r0, #0 strh r0, [r1] movs r0, #0x87 lsls r0, r0, #1 adds r3, r7, r0 ldrh r0, [r3] adds r0, #0x14 strh r0, [r3] movs r4, #0x88 lsls r4, r4, #1 adds r2, r7, r4 movs r5, #0 ldrsh r1, [r1, r5] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x8a lsls r0, r0, #1 adds r5, r7, r0 movs r4, #0 ldrsh r1, [r3, r4] ldr r0, [r5] adds r0, r0, r1 str r0, [r5] ldr r0, _08047E6C @ =0x0000132C adds r6, r7, r0 ldr r4, [r6] ldr r0, [r2] movs r1, #0x64 bl __divsi3 adds r0, #0x56 lsls r0, r0, #8 str r0, [r4, #0x34] ldr r1, [r6] mov r8, r1 adds r0, r7, #0 adds r0, #0xfe movs r2, #0 ldrsh r4, [r0, r2] ldr r0, [r5] movs r1, #0x64 bl __divsi3 movs r3, #0xba lsls r3, r3, #1 adds r0, r0, r3 adds r4, r4, r0 lsls r4, r4, #8 mov r5, r8 str r4, [r5, #0x38] ldr r6, [r6] ldr r0, [r6, #0x38] ldr r1, _08047E70 @ =0x00017100 mov r2, sb cmp r0, r1 ble _08047D80 str r1, [r6, #0x38] _08047D80: ldr r0, [r2] ldr r1, _08047E6C @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] movs r3, #0 strb r3, [r0, #1] ldr r0, [r2] adds r2, r0, r1 ldr r1, [r2] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] ldr r1, [r2] ldr r0, [r1, #0x34] cmp r0, #0 bge _08047DA0 adds r0, #0x7f _08047DA0: asrs r0, r0, #7 strh r0, [r1, #0x28] ldr r1, [r2] ldr r0, [r1, #0x38] cmp r0, #0 bge _08047DAE adds r0, #0x7f _08047DAE: asrs r0, r0, #7 strh r0, [r1, #0x2a] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] _08047DBA: movs r0, #0x80 lsls r0, r0, #1 mov r2, sl lsls r1, r2, #0x10 asrs r1, r1, #0x10 movs r2, #3 bl sub_7C0 ldr r3, [sp] lsls r1, r3, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #4 bl sub_7C0 ldr r4, _08047E74 @ =gMain ldrh r1, [r4, #0x12] cmp r1, #0xcb beq _08047DE2 b _08047F18 _08047DE2: ldr r2, _08047E68 @ =0x020314E0 ldr r3, [r2] movs r5, #0x80 lsls r5, r5, #1 adds r0, r3, r5 movs r1, #0 str r1, [r0] adds r5, #4 adds r0, r3, r5 str r1, [r0] adds r5, #4 adds r0, r3, r5 strh r1, [r0] adds r5, #2 adds r0, r3, r5 strh r1, [r0] adds r1, r3, #0 adds r1, #0xfe movs r0, #0x64 strh r0, [r1] movs r1, #0xd2 lsls r1, r1, #3 adds r0, r4, r1 movs r1, #1 strh r1, [r0] movs r3, #0xbb lsls r3, r3, #3 adds r0, r4, r3 strh r1, [r0] movs r5, #0xa4 lsls r5, r5, #3 adds r0, r4, r5 strh r1, [r0] ldrb r0, [r4, #4] cmp r0, #0 bne _08047EAC ldr r0, _08047E78 @ =0x040000D4 ldr r1, _08047E7C @ =0x0850100C str r1, [r0] ldr r1, _08047E80 @ =0x06015800 str r1, [r0, #4] ldr r1, _08047E84 @ =0x80001200 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08047E88 @ =0x085028CC str r1, [r0] ldr r1, _08047E8C @ =0x06016800 str r1, [r0, #4] ldr r1, _08047E90 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08047E94 @ =0x085038CC str r1, [r0] ldr r1, _08047E98 @ =0x06017000 str r1, [r0, #4] ldr r1, _08047E9C @ =0x80000060 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08047EA0 @ =0x08514F4C str r1, [r0] ldr r1, _08047EA4 @ =0x050003C0 str r1, [r0, #4] ldr r1, _08047EA8 @ =0x80000010 str r1, [r0, #8] ldr r0, [r0, #8] b _08047ECA .align 2, 0 _08047E68: .4byte 0x020314E0 _08047E6C: .4byte 0x0000132C _08047E70: .4byte 0x00017100 _08047E74: .4byte gMain _08047E78: .4byte 0x040000D4 _08047E7C: .4byte 0x0850100C _08047E80: .4byte 0x06015800 _08047E84: .4byte 0x80001200 _08047E88: .4byte 0x085028CC _08047E8C: .4byte 0x06016800 _08047E90: .4byte 0x80000400 _08047E94: .4byte 0x085038CC _08047E98: .4byte 0x06017000 _08047E9C: .4byte 0x80000060 _08047EA0: .4byte 0x08514F4C _08047EA4: .4byte 0x050003C0 _08047EA8: .4byte 0x80000010 _08047EAC: ldr r1, _08047EF4 @ =0x040000D4 ldr r0, _08047EF8 @ =0x0850100C str r0, [r1] ldr r0, _08047EFC @ =0x06015800 str r0, [r1, #4] ldr r0, _08047F00 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08047F04 @ =0x08514F6C str r0, [r1] ldr r0, _08047F08 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08047F0C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _08047ECA: ldr r1, [r2] movs r0, #2 strb r0, [r1, #0x1f] ldr r0, [r2] ldr r1, _08047F10 @ =0x000005FA adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r3, _08047F14 @ =0x000005F7 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] movs r4, #0x88 lsls r4, r4, #5 adds r0, r0, r4 strb r1, [r0] movs r0, #0x94 bl m4aSongNumStart b _08047FA0 .align 2, 0 _08047EF4: .4byte 0x040000D4 _08047EF8: .4byte 0x0850100C _08047EFC: .4byte 0x06015800 _08047F00: .4byte 0x80001200 _08047F04: .4byte 0x08514F6C _08047F08: .4byte 0x050003C0 _08047F0C: .4byte 0x80000010 _08047F10: .4byte 0x000005FA _08047F14: .4byte 0x000005F7 _08047F18: cmp r1, #0 bne _08047FA0 movs r5, #0xd2 lsls r5, r5, #3 adds r0, r4, r5 strh r1, [r0] movs r2, #0xbb lsls r2, r2, #3 adds r0, r4, r2 strh r1, [r0] b _08047FA0 _08047F2E: ldrb r1, [r7, #0xf] movs r0, #0xf7 ands r0, r1 strb r0, [r7, #0xf] ldr r5, _08047F6C @ =0x020314E0 ldr r1, [r5] movs r4, #0 movs r0, #0x3c strh r0, [r1, #0x26] movs r0, #0 bl sub_11C14 ldr r0, [r5] strb r4, [r0, #0x1f] movs r0, #0 bl sub_46FD4 ldr r0, [r5] ldr r3, _08047F70 @ =0x0000029E adds r0, r0, r3 strb r4, [r0] ldrb r0, [r7, #4] cmp r0, #0 bne _08047F78 ldr r0, [r5] ldr r4, _08047F74 @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] movs r0, #3 b _08047F82 .align 2, 0 _08047F6C: .4byte 0x020314E0 _08047F70: .4byte 0x0000029E _08047F74: .4byte 0x0000132C _08047F78: ldr r0, [r5] ldr r5, _08047FB0 @ =0x0000132C adds r0, r0, r5 ldr r1, [r0] movs r0, #1 _08047F82: strb r0, [r1, #1] ldr r2, _08047FB4 @ =0x020314E0 ldr r0, [r2] ldr r1, _08047FB8 @ =0x000005F7 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0xe4 strb r1, [r0] ldr r0, [r2] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 strb r1, [r0] _08047FA0: 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 _08047FB0: .4byte 0x0000132C _08047FB4: .4byte 0x020314E0 _08047FB8: .4byte 0x000005F7 thumb_func_start sub_47FBC sub_47FBC: @ 0x08047FBC ldr r3, _08047FE4 @ =0x03005C00 ldr r2, _08047FE8 @ =0x000001FF movs r0, #0xd0 lsls r0, r0, #3 adds r1, r3, r0 movs r0, #0x40 _08047FC8: strh r2, [r1] adds r1, #2 subs r0, #1 cmp r0, #0 bne _08047FC8 ldr r1, _08047FEC @ =0x040000D4 str r3, [r1] ldr r0, _08047FF0 @ =0x06002000 str r0, [r1, #4] ldr r0, _08047FF4 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] bx lr .align 2, 0 _08047FE4: .4byte 0x03005C00 _08047FE8: .4byte 0x000001FF _08047FEC: .4byte 0x040000D4 _08047FF0: .4byte 0x06002000 _08047FF4: .4byte 0x80000400 thumb_func_start sub_47FF8 sub_47FF8: @ 0x08047FF8 push {r4, lr} ldr r2, _08048068 @ =gMain ldrh r1, [r2, #0x1c] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08048074 movs r0, #0x40 ands r0, r1 ldr r3, _0804806C @ =0x020314E0 cmp r0, #0 beq _0804801E ldr r0, [r3] ldr r1, _08048070 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x38] subs r0, #0x80 str r0, [r1, #0x38] _0804801E: ldrh r1, [r2, #0x1c] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048036 ldr r0, [r3] ldr r4, _08048070 @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] ldr r0, [r1, #0x38] adds r0, #0x80 str r0, [r1, #0x38] _08048036: ldrh r1, [r2, #0x1c] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0804804E ldr r0, [r3] ldr r1, _08048070 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x34] subs r0, #0x80 str r0, [r1, #0x34] _0804804E: ldrh r1, [r2, #0x1c] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080480E0 ldr r0, [r3] ldr r2, _08048070 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] ldr r0, [r1, #0x34] adds r0, #0x80 b _080480DE .align 2, 0 _08048068: .4byte gMain _0804806C: .4byte 0x020314E0 _08048070: .4byte 0x0000132C _08048074: movs r0, #0x40 ands r0, r1 ldr r3, _08048118 @ =0x020314E0 cmp r0, #0 beq _0804808E ldr r0, [r3] ldr r4, _0804811C @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] ldr r0, [r1, #0x38] ldr r4, _08048120 @ =0xFFFFFE00 adds r0, r0, r4 str r0, [r1, #0x38] _0804808E: ldrh r1, [r2, #0x1c] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080480AA ldr r0, [r3] ldr r1, _0804811C @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x38] movs r4, #0x80 lsls r4, r4, #2 adds r0, r0, r4 str r0, [r1, #0x38] _080480AA: ldrh r1, [r2, #0x1c] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080480C4 ldr r0, [r3] ldr r1, _0804811C @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x34] ldr r4, _08048120 @ =0xFFFFFE00 adds r0, r0, r4 str r0, [r1, #0x34] _080480C4: ldrh r1, [r2, #0x1c] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080480E0 ldr r0, [r3] ldr r1, _0804811C @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x34] movs r2, #0x80 lsls r2, r2, #2 adds r0, r0, r2 _080480DE: str r0, [r1, #0x34] _080480E0: ldr r0, [r3] ldr r4, _0804811C @ =0x0000132C adds r2, r0, r4 ldr r1, [r2] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] ldr r1, [r2] ldr r0, [r1, #0x34] cmp r0, #0 bge _080480F6 adds r0, #0x7f _080480F6: asrs r0, r0, #7 movs r3, #0 strh r0, [r1, #0x28] ldr r1, [r2] ldr r0, [r1, #0x38] cmp r0, #0 bge _08048106 adds r0, #0x7f _08048106: asrs r0, r0, #7 strh r0, [r1, #0x2a] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] pop {r4} pop {r0} bx r0 .align 2, 0 _08048118: .4byte 0x020314E0 _0804811C: .4byte 0x0000132C _08048120: .4byte 0xFFFFFE00 thumb_func_start sub_48124 sub_48124: @ 0x08048124 ldr r3, _08048188 @ =gMain ldrh r1, [r3, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0804813E ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _0804813E: ldrh r1, [r3, #0x18] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048156 ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _08048156: ldrh r1, [r3, #0x18] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0804816E ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _0804816E: ldrh r1, [r3, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08048186 ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _08048186: bx lr .align 2, 0 _08048188: .4byte gMain _0804818C: .4byte 0x020314E0 thumb_func_start sub_48190 sub_48190: @ 0x08048190 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x28 ldr r2, _080481F8 @ =0x020314E0 ldr r3, [r2] ldr r1, _080481FC @ =0x0000063A adds r0, r3, r1 ldrh r1, [r0] movs r0, #0xd4 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r4, #0 str r4, [sp, #0x10] movs r7, #0 str r7, [sp, #0x14] movs r0, #0 str r0, [sp, #0x18] adds r1, r2, #0 mov r8, r1 ldr r6, _08048200 @ =0x040000D4 movs r2, #0xcf lsls r2, r2, #3 adds r3, r3, r2 ldr r7, _08048204 @ =0x80000010 mov sb, r7 _080481CC: lsls r0, r4, #2 adds r1, r4, #1 mov ip, r1 adds r0, r0, r4 movs r1, #0x16 muls r1, r4, r1 lsls r4, r0, #2 movs r5, #0x13 lsls r1, r1, #5 ldr r7, _08048208 @ =0x06017400 adds r2, r1, r7 _080481E2: adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x5f bne _0804820C movs r1, #0x30 b _0804821E .align 2, 0 _080481F8: .4byte 0x020314E0 _080481FC: .4byte 0x0000063A _08048200: .4byte 0x040000D4 _08048204: .4byte 0x80000010 _08048208: .4byte 0x06017400 _0804820C: cmp r0, #0x5e bne _08048214 movs r1, #0x2f b _0804821E _08048214: cmp r0, #0x2e ble _0804821E subs r0, #0x41 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0804821E: mov r7, r8 ldr r0, [r7] ldr r7, _08048244 @ =0x0000063C adds r0, r0, r7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804824C lsls r0, r1, #0x10 asrs r0, r0, #0xb ldr r1, _08048248 @ =0x0850558C adds r0, r0, r1 str r0, [r6] str r2, [r6, #4] mov r0, sb str r0, [r6, #8] b _08048256 .align 2, 0 _08048244: .4byte 0x0000063C _08048248: .4byte 0x0850558C _0804824C: ldr r0, _080483A0 @ =0x08505B8C str r0, [r6] str r2, [r6, #4] mov r1, sb str r1, [r6, #8] _08048256: ldr r0, [r6, #8] adds r2, #0x20 adds r4, #1 subs r5, #1 cmp r5, #0 bge _080481E2 mov r4, ip cmp r4, #2 ble _080481CC ldr r2, _080483A4 @ =gMain ldrh r0, [r2, #0x12] cmp r0, #0xb3 bls _08048272 b _08048412 _08048272: cmp r0, #0x32 bhi _08048278 b _08048412 _08048278: ldrh r1, [r2, #0x18] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _08048286 b _08048412 _08048286: ldr r4, _080483A8 @ =0x020314E0 ldr r3, [r4] ldr r7, _080483AC @ =0x00000639 adds r0, r3, r7 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _08048298 b _080483CC _08048298: ldr r0, _080483B0 @ =0x0000063A adds r1, r3, r0 movs r0, #0x64 strh r0, [r1] mov sl, r0 movs r2, #0xc7 lsls r2, r2, #3 adds r1, r3, r2 movs r0, #6 strb r0, [r1] ldr r4, [r4] movs r3, #0xc6 lsls r3, r3, #3 adds r5, r4, r3 subs r7, #0xf adds r0, r4, r7 ldrb r1, [r0] lsls r0, r1, #5 subs r0, r0, r1 lsls r2, r0, #6 subs r2, r2, r0 lsls r2, r2, #3 adds r2, r2, r1 lsls r2, r2, #5 ldr r1, _080483B4 @ =0x0000062B adds r0, r4, r1 ldrb r1, [r0] ldr r0, _080483B8 @ =0x000B71B0 muls r0, r1, r0 adds r2, r2, r0 subs r3, #4 adds r0, r4, r3 ldrb r3, [r0] lsls r1, r3, #5 subs r1, r1, r3 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r3 lsls r0, r0, #5 adds r2, r2, r0 adds r7, #3 adds r0, r4, r7 ldrb r0, [r0] ldr r1, _080483BC @ =0x000186A0 muls r0, r1, r0 adds r2, r2, r0 ldr r3, _080483C0 @ =0x0000062E adds r0, r4, r3 ldrb r0, [r0] muls r0, r1, r0 adds r2, r2, r0 str r2, [r5] adds r7, #7 adds r4, r4, r7 str r6, [r4] movs r0, #0x96 ldr r1, _080483A4 @ =gMain strh r0, [r1, #0x12] movs r5, #0 ldr r2, _080483A8 @ =0x020314E0 adds r7, #8 movs r3, #1 _08048316: ldr r0, [r2] adds r0, r0, r7 adds r0, r0, r5 strb r3, [r0] adds r5, #1 cmp r5, #0x13 ble _08048316 movs r5, #0 ldr r3, _080483A8 @ =0x020314E0 movs r2, #0xca lsls r2, r2, #3 movs r1, #1 _0804832E: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _0804832E movs r5, #0 ldr r3, _080483A8 @ =0x020314E0 ldr r2, _080483C4 @ =0x00000664 movs r1, #1 _08048344: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _08048344 movs r4, #0 ldr r2, _080483A8 @ =0x020314E0 mov sb, r2 ldr r3, _080483C8 @ =0x086B0128 mov r8, r3 movs r7, #0xcf lsls r7, r7, #3 movs r6, #0xc7 lsls r6, r6, #3 _08048364: movs r5, #0 lsls r0, r4, #2 adds r1, r4, #1 mov ip, r1 adds r0, r0, r4 lsls r4, r0, #2 _08048370: mov r2, sb ldr r0, [r2] adds r2, r5, r4 adds r3, r0, r7 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, r8 ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _08048370 mov r4, ip cmp r4, #2 ble _08048364 movs r3, #1 str r3, [sp, #0x14] b _08048412 .align 2, 0 _080483A0: .4byte 0x08505B8C _080483A4: .4byte gMain _080483A8: .4byte 0x020314E0 _080483AC: .4byte 0x00000639 _080483B0: .4byte 0x0000063A _080483B4: .4byte 0x0000062B _080483B8: .4byte 0x000B71B0 _080483BC: .4byte 0x000186A0 _080483C0: .4byte 0x0000062E _080483C4: .4byte 0x00000664 _080483C8: .4byte 0x086B0128 _080483CC: ldr r4, _08048560 @ =0x0000063A adds r0, r3, r4 movs r5, #0 strh r2, [r0] movs r0, #0x33 ldr r7, _08048564 @ =gMain strh r0, [r7, #0x12] movs r0, #0x64 mov sl, r0 ldr r1, _08048568 @ =0x000006B4 adds r4, r3, r1 ldr r1, [r4] cmp r1, #0 bne _080483F4 movs r2, #0xd7 lsls r2, r2, #3 adds r0, r3, r2 ldr r0, [r0] cmp r0, #0 beq _08048412 _080483F4: ldr r0, [r3, #0x44] adds r0, r0, r1 str r0, [r3, #0x44] movs r7, #0xd7 lsls r7, r7, #3 adds r2, r3, r7 ldr r0, [r3, #0x48] ldr r1, [r2] adds r0, r0, r1 str r0, [r3, #0x48] str r5, [r4] str r5, [r2] movs r0, #0x91 bl m4aSongNumStart _08048412: ldr r0, _08048564 @ =gMain ldrh r1, [r0, #0x12] mov r0, sl lsls r0, r0, #0x10 str r0, [sp, #0x1c] cmp r1, #0xb9 bne _08048496 ldr r1, _0804856C @ =0x020314E0 ldr r0, [r1] ldr r2, _08048570 @ =0x00000639 adds r0, r0, r2 movs r3, #0 strb r3, [r0] ldr r1, [r1] ldr r4, _08048560 @ =0x0000063A adds r2, r1, r4 movs r4, #0 movs r0, #0xd4 strh r0, [r2] movs r2, #0xc7 lsls r2, r2, #3 adds r1, r1, r2 strb r4, [r1] ldr r7, _0804856C @ =0x020314E0 ldr r0, [r7] movs r4, #0xc6 lsls r4, r4, #3 adds r1, r0, r4 str r3, [r1] ldr r7, _08048574 @ =0x00000634 adds r0, r0, r7 str r3, [r0] movs r4, #0 ldr r0, _0804856C @ =0x020314E0 mov sb, r0 ldr r1, _08048578 @ =0x086B0128 mov r8, r1 adds r7, #0x44 adds r6, r2, #0 _08048460: movs r5, #0 lsls r0, r4, #2 adds r2, r4, #1 mov ip, r2 adds r0, r0, r4 lsls r4, r0, #2 _0804846C: mov r3, sb ldr r0, [r3] adds r2, r5, r4 adds r3, r0, r7 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, r8 ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _0804846C mov r4, ip cmp r4, #2 ble _08048460 _08048496: ldr r4, _0804856C @ =0x020314E0 ldr r0, [r4] ldr r4, _08048560 @ =0x0000063A adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _080484A6 b _080487B2 _080484A6: ldr r7, _08048564 @ =gMain ldrh r0, [r7, #0x12] cmp r0, #0x95 bhi _080484B2 adds r0, #1 strh r0, [r7, #0x12] _080484B2: ldr r0, _0804856C @ =0x020314E0 ldr r1, [r0] movs r2, #0xc7 lsls r2, r2, #3 adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #4 ble _080484C6 b _08048650 _080484C6: ldr r3, [sp, #0x1c] asrs r0, r3, #0x10 cmp r0, #0x58 bgt _08048580 movs r1, #0x18 bl __divsi3 lsls r0, r0, #0x10 asrs r7, r0, #0x10 cmp r7, #2 ble _080484DE movs r7, #2 _080484DE: movs r4, #0 cmp r4, r7 bgt _080485D4 movs r6, #0 movs r3, #0 _080484E8: ldr r1, [sp, #0x1c] asrs r0, r1, #0x10 subs r0, r0, r3 movs r1, #0x28 str r3, [sp, #0x24] bl __modsi3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r5, r0, #1 ldr r2, _0804856C @ =0x020314E0 ldr r1, [r2] movs r2, #0xc7 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r3, [sp, #0x24] cmp r0, #0 beq _08048516 cmp r4, #2 beq _08048542 _08048516: adds r2, r5, r6 ldr r0, _0804857C @ =0x0000063C adds r0, r0, r1 mov r8, r0 add r8, r2 mov r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08048542 movs r0, #0xcf lsls r0, r0, #3 adds r1, r1, r0 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x5f beq _08048542 movs r1, #1 str r1, [sp, #0x18] _08048542: ldr r2, _0804856C @ =0x020314E0 ldr r0, [r2] adds r1, r5, r6 ldr r2, _0804857C @ =0x0000063C adds r0, r0, r2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] adds r6, #0x14 adds r3, #0x18 adds r4, #1 cmp r4, r7 ble _080484E8 b _080485D4 .align 2, 0 _08048560: .4byte 0x0000063A _08048564: .4byte gMain _08048568: .4byte 0x000006B4 _0804856C: .4byte 0x020314E0 _08048570: .4byte 0x00000639 _08048574: .4byte 0x00000634 _08048578: .4byte 0x086B0128 _0804857C: .4byte 0x0000063C _08048580: cmp r0, #0x93 ble _080485D4 subs r0, #0x94 lsls r4, r0, #0x10 asrs r5, r4, #0x10 adds r0, r5, #0 movs r1, #0x18 bl __divsi3 lsls r0, r0, #0x10 asrs r7, r0, #0x10 cmp r7, #1 ble _0804859C movs r7, #1 _0804859C: str r4, [sp, #0x1c] cmp r7, #0 blt _080485D4 movs r2, #0 adds r6, r5, #0 adds r4, r7, #1 _080485A8: adds r0, r6, #0 movs r1, #0x28 str r2, [sp, #0x20] bl __modsi3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r5, r0, #1 ldr r3, _08048640 @ =0x020314E0 ldr r1, [r3] ldr r2, [sp, #0x20] adds r0, r5, r2 ldr r7, _08048644 @ =0x0000063C adds r1, r1, r7 adds r1, r1, r0 movs r0, #0 strb r0, [r1] adds r2, #0x14 subs r6, #0x18 subs r4, #1 cmp r4, #0 bne _080485A8 _080485D4: ldr r0, _08048640 @ =0x020314E0 ldr r1, [r0] ldr r3, _08048648 @ =0x0000063A adds r2, r1, r3 ldrh r0, [r2] cmp r0, #1 beq _080485E4 b _080487A6 _080485E4: movs r0, #0xd4 strh r0, [r2] movs r2, #0xc7 lsls r2, r2, #3 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r4, #0 ldr r7, _08048640 @ =0x020314E0 mov sl, r7 ldr r0, _0804864C @ =0x086B0128 mov sb, r0 movs r1, #0xcf lsls r1, r1, #3 mov r8, r1 adds r6, r2, #0 _08048606: movs r5, #0 lsls r0, r4, #2 adds r2, r4, #1 mov ip, r2 adds r0, r0, r4 lsls r7, r0, #2 _08048612: mov r3, sl ldr r0, [r3] adds r2, r5, r7 mov r4, r8 adds r3, r0, r4 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, sb ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _08048612 mov r4, ip cmp r4, #2 ble _08048606 b _080487A6 .align 2, 0 _08048640: .4byte 0x020314E0 _08048644: .4byte 0x0000063C _08048648: .4byte 0x0000063A _0804864C: .4byte 0x086B0128 _08048650: cmp r0, #5 bne _08048720 ldr r7, [sp, #0x1c] asrs r2, r7, #0x10 cmp r2, #0x10 bgt _08048672 rsbs r0, r2, #0 lsls r0, r0, #0x11 lsrs r0, r0, #0x10 str r0, [sp, #0x10] cmp r2, #2 beq _0804866A b _080487A6 _0804866A: movs r0, #0xa2 bl m4aSongNumStart b _080487A6 _08048672: movs r0, #0 str r0, [sp, #0x10] adds r1, r1, r4 movs r0, #0xd4 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] movs r5, #0 ldr r2, _08048710 @ =0x020314E0 ldr r7, _08048714 @ =0x0000063C movs r3, #1 _0804868A: ldr r0, [r2] adds r0, r0, r7 adds r0, r0, r5 strb r3, [r0] adds r5, #1 cmp r5, #0x13 ble _0804868A movs r5, #0 ldr r3, _08048710 @ =0x020314E0 movs r2, #0xca lsls r2, r2, #3 movs r1, #0 _080486A2: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _080486A2 movs r5, #0 ldr r3, _08048710 @ =0x020314E0 ldr r2, _08048718 @ =0x00000664 movs r1, #0 _080486B8: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _080486B8 movs r4, #0 ldr r1, _08048710 @ =0x020314E0 mov sb, r1 ldr r2, _0804871C @ =0x086B0128 mov r8, r2 movs r7, #0xcf lsls r7, r7, #3 movs r6, #0xc7 lsls r6, r6, #3 _080486D8: movs r5, #0 lsls r0, r4, #2 adds r3, r4, #1 mov ip, r3 adds r0, r0, r4 lsls r4, r0, #2 _080486E4: mov r1, sb ldr r0, [r1] adds r2, r5, r4 adds r3, r0, r7 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, r8 ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _080486E4 mov r4, ip cmp r4, #2 ble _080486D8 b _080487A6 .align 2, 0 _08048710: .4byte 0x020314E0 _08048714: .4byte 0x0000063C _08048718: .4byte 0x00000664 _0804871C: .4byte 0x086B0128 _08048720: ldr r2, [sp, #0x1c] asrs r0, r2, #0x10 cmp r0, #0x58 bgt _080487A6 movs r1, #0x18 bl __divsi3 lsls r0, r0, #0x10 asrs r7, r0, #0x10 cmp r7, #2 ble _08048738 movs r7, #2 _08048738: movs r4, #0 cmp r4, r7 bgt _080487A6 movs r6, #0 movs r3, #0 _08048742: ldr r1, [sp, #0x1c] asrs r0, r1, #0x10 subs r0, r0, r3 movs r1, #0x28 str r3, [sp, #0x24] bl __modsi3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r5, r0, #1 ldr r3, [sp, #0x24] cmp r4, #0 beq _0804878C ldr r2, _080487E8 @ =0x020314E0 ldr r1, [r2] adds r2, r5, r6 ldr r0, _080487EC @ =0x0000063C adds r0, r0, r1 mov r8, r0 add r8, r2 mov r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804878C movs r0, #0xcf lsls r0, r0, #3 adds r1, r1, r0 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x5f beq _0804878C movs r1, #1 str r1, [sp, #0x18] _0804878C: ldr r2, _080487E8 @ =0x020314E0 ldr r0, [r2] adds r1, r5, r6 ldr r2, _080487EC @ =0x0000063C adds r0, r0, r2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] adds r6, #0x14 adds r3, #0x18 adds r4, #1 cmp r4, r7 ble _08048742 _080487A6: ldr r3, [sp, #0x18] cmp r3, #0 beq _080487B2 movs r0, #0xa1 bl m4aSongNumStart _080487B2: movs r7, #0 movs r3, #0 ldr r0, _080487E8 @ =0x020314E0 ldr r5, [r0] ldr r4, _080487F0 @ =0x0000063A adds r1, r5, r4 ldrh r1, [r1] cmp r1, #0xd4 beq _080487CE ldr r0, [sp, #0x14] cmp r0, #0 bne _080487CE bl _0804908E _080487CE: movs r1, #0xc7 lsls r1, r1, #3 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bhi _08048894 lsls r0, r0, #2 ldr r1, _080487F4 @ =_080487F8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080487E8: .4byte 0x020314E0 _080487EC: .4byte 0x0000063C _080487F0: .4byte 0x0000063A _080487F4: .4byte _080487F8 _080487F8: @ jump table .4byte _08048814 @ case 0 .4byte _08048828 @ case 1 .4byte _08048844 @ case 2 .4byte _08048860 @ case 3 .4byte _08048874 @ case 4 .4byte _08048890 @ case 5 .4byte _08048894 @ case 6 _08048814: ldr r2, _08048820 @ =0x020314E0 ldr r0, [r2] ldr r3, _08048824 @ =0x0000062A adds r0, r0, r3 b _0804884C .align 2, 0 _08048820: .4byte 0x020314E0 _08048824: .4byte 0x0000062A _08048828: ldr r4, _08048838 @ =0x020314E0 ldr r0, [r4] ldr r7, _0804883C @ =0x0000062B adds r0, r0, r7 ldrb r7, [r0] ldr r3, _08048840 @ =0x000B71B0 b _08048894 .align 2, 0 _08048838: .4byte 0x020314E0 _0804883C: .4byte 0x0000062B _08048840: .4byte 0x000B71B0 _08048844: ldr r1, _08048854 @ =0x020314E0 ldr r0, [r1] ldr r2, _08048858 @ =0x0000062C adds r0, r0, r2 _0804884C: ldrb r7, [r0] ldr r3, _0804885C @ =0x0007A120 b _08048894 .align 2, 0 _08048854: .4byte 0x020314E0 _08048858: .4byte 0x0000062C _0804885C: .4byte 0x0007A120 _08048860: ldr r3, _0804886C @ =0x020314E0 ldr r0, [r3] ldr r4, _08048870 @ =0x0000062D adds r0, r0, r4 b _0804887C .align 2, 0 _0804886C: .4byte 0x020314E0 _08048870: .4byte 0x0000062D _08048874: ldr r7, _08048884 @ =0x020314E0 ldr r0, [r7] ldr r1, _08048888 @ =0x0000062E adds r0, r0, r1 _0804887C: ldrb r7, [r0] ldr r3, _0804888C @ =0x000186A0 b _08048894 .align 2, 0 _08048884: .4byte 0x020314E0 _08048888: .4byte 0x0000062E _0804888C: .4byte 0x000186A0 _08048890: movs r7, #0 movs r3, #0 _08048894: ldr r2, _08048900 @ =0x020314E0 ldr r0, [r2] movs r4, #0xc7 lsls r4, r4, #3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 ble _080488AA b _08048B80 _080488AA: mov r5, sp adds r5, #2 adds r0, r7, #0 muls r0, r3, r0 mov r8, r0 movs r1, #7 add r1, sp mov sl, r1 add r2, sp, #8 mov sb, r2 movs r1, #0 mov r0, sp adds r0, #9 _080488C4: strb r1, [r0] subs r0, #1 cmp r0, sp bge _080488C4 mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __divsi3 strb r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #2 movs r0, #0 ldrsb r0, [r5, r0] b _08048914 .align 2, 0 _08048900: .4byte 0x020314E0 _08048904: subs r4, #1 cmp r4, #0 ble _0804891C mov r3, sp adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048914: cmp r0, #0 ble _08048904 cmp r0, #0xa beq _08048904 _0804891C: movs r5, #0 cmp r5, r4 bgt _08048942 ldr r6, _080489FC @ =0x020314E0 movs r3, #0x13 movs r2, #0xcf lsls r2, r2, #3 _0804892A: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _0804892A _08048942: movs r1, #0 mov r0, sp adds r0, #9 _08048948: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048948 mov r7, r8 ldr r1, _080489FC @ =0x020314E0 ldr r0, [r1] ldr r2, _08048A00 @ =0x00000634 adds r0, r0, r2 str r7, [r0] mov r5, sp ldr r4, _08048A04 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048A08 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048A0C @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048A10 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #7 mov r3, sl movs r0, #0 ldrsb r0, [r3, r0] b _08048A24 .align 2, 0 _080489FC: .4byte 0x020314E0 _08048A00: .4byte 0x00000634 _08048A04: .4byte 0x00989680 _08048A08: .4byte 0x000F4240 _08048A0C: .4byte 0x000186A0 _08048A10: .4byte 0x00002710 _08048A14: subs r4, #1 cmp r4, #0 ble _08048A2C mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048A24: cmp r0, #0 ble _08048A14 cmp r0, #0xa beq _08048A14 _08048A2C: movs r5, #0 cmp r5, r4 bgt _08048A50 ldr r6, _08048B1C @ =0x020314E0 movs r3, #0x13 ldr r2, _08048B20 @ =0x0000068C _08048A38: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048A38 _08048A50: movs r1, #0 mov r0, sp adds r0, #9 _08048A56: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048A56 ldr r1, _08048B1C @ =0x020314E0 ldr r0, [r1] movs r2, #0xc6 lsls r2, r2, #3 adds r0, r0, r2 ldr r7, [r0] mov r5, sp ldr r4, _08048B24 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B28 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B2C @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B30 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B34 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 mov r3, sb movs r0, #0 ldrsb r0, [r3, r0] b _08048B48 .align 2, 0 _08048B1C: .4byte 0x020314E0 _08048B20: .4byte 0x0000068C _08048B24: .4byte 0x05F5E100 _08048B28: .4byte 0x00989680 _08048B2C: .4byte 0x000F4240 _08048B30: .4byte 0x000186A0 _08048B34: .4byte 0x00002710 _08048B38: subs r4, #1 cmp r4, #0 ble _08048B50 mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048B48: cmp r0, #0 ble _08048B38 cmp r0, #0xa beq _08048B38 _08048B50: movs r5, #0 cmp r5, r4 ble _08048B58 b _0804908E _08048B58: ldr r6, _08048B7C @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08048B60: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048B60 b _0804908E .align 2, 0 _08048B7C: .4byte 0x020314E0 _08048B80: cmp r0, #5 beq _08048B86 b _08048CB8 _08048B86: add r0, sp, #8 mov sb, r0 movs r1, #0 mov r0, sp adds r0, #9 _08048B90: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048B90 ldr r1, _08048C58 @ =0x020314E0 ldr r0, [r1] movs r2, #0xc6 lsls r2, r2, #3 adds r0, r0, r2 ldr r7, [r0] mov r5, sp ldr r4, _08048C5C @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C60 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C64 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C68 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C6C @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 mov r3, sb movs r0, #0 ldrsb r0, [r3, r0] b _08048C80 .align 2, 0 _08048C58: .4byte 0x020314E0 _08048C5C: .4byte 0x05F5E100 _08048C60: .4byte 0x00989680 _08048C64: .4byte 0x000F4240 _08048C68: .4byte 0x000186A0 _08048C6C: .4byte 0x00002710 _08048C70: subs r4, #1 cmp r4, #0 ble _08048C88 mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048C80: cmp r0, #0 ble _08048C70 cmp r0, #0xa beq _08048C70 _08048C88: movs r5, #0 cmp r5, r4 ble _08048C90 b _0804908E _08048C90: ldr r6, _08048CB4 @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08048C98: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048C98 b _0804908E .align 2, 0 _08048CB4: .4byte 0x020314E0 _08048CB8: add r0, sp, #8 mov sb, r0 movs r1, #5 add r1, sp mov r8, r1 movs r2, #0xa add r2, sp mov sl, r2 movs r1, #0 mov r0, sp adds r0, #9 _08048CCE: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048CCE ldr r3, _08048D94 @ =0x020314E0 ldr r0, [r3] movs r4, #0xc6 lsls r4, r4, #3 adds r0, r0, r4 ldr r7, [r0] mov r5, sp ldr r4, _08048D98 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048D9C @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048DA0 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048DA4 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048DA8 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 mov r7, sb movs r0, #0 ldrsb r0, [r7, r0] b _08048DBC .align 2, 0 _08048D94: .4byte 0x020314E0 _08048D98: .4byte 0x05F5E100 _08048D9C: .4byte 0x00989680 _08048DA0: .4byte 0x000F4240 _08048DA4: .4byte 0x000186A0 _08048DA8: .4byte 0x00002710 _08048DAC: subs r4, #1 cmp r4, #0 ble _08048DC4 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048DBC: cmp r0, #0 ble _08048DAC cmp r0, #0xa beq _08048DAC _08048DC4: movs r5, #0 cmp r5, r4 bgt _08048DEA ldr r6, _08048E7C @ =0x020314E0 movs r3, #0x13 movs r2, #0xcf lsls r2, r2, #3 _08048DD2: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048DD2 _08048DEA: movs r1, #0 mov r0, sp adds r0, #9 _08048DF0: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048DF0 ldr r1, _08048E7C @ =0x020314E0 ldr r0, [r1] ldr r2, _08048E80 @ =0x0000062F adds r0, r0, r2 ldrb r7, [r0] mov r5, sp ldr r1, _08048E84 @ =0x000F4240 adds r0, r7, #0 bl __modsi3 ldr r4, _08048E88 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048E8C @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #5 mov r3, r8 movs r0, #0 ldrsb r0, [r3, r0] b _08048EA0 .align 2, 0 _08048E7C: .4byte 0x020314E0 _08048E80: .4byte 0x0000062F _08048E84: .4byte 0x000F4240 _08048E88: .4byte 0x000186A0 _08048E8C: .4byte 0x00002710 _08048E90: subs r4, #1 cmp r4, #0 ble _08048EA8 mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048EA0: cmp r0, #0 ble _08048E90 cmp r0, #0xa beq _08048E90 _08048EA8: movs r5, #0 cmp r5, r4 bgt _08048ECC ldr r6, _08049020 @ =0x020314E0 movs r3, #0x13 ldr r2, _08049024 @ =0x0000068C _08048EB4: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048EB4 _08048ECC: movs r1, #0 mov r0, sp adds r0, #0xa _08048ED2: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048ED2 movs r7, #0 movs r5, #0 ldr r1, _08049020 @ =0x020314E0 ldr r0, [r1] ldr r1, _08049028 @ =0x0000062F adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _08048F24 ldr r2, _08049020 @ =0x020314E0 adds r6, r1, #0 _08048EF0: ldr r4, [r2] movs r3, #0xc6 lsls r3, r3, #3 adds r0, r4, r3 ldr r0, [r0] adds r7, r7, r0 adds r0, r7, #0 ldr r1, _0804902C @ =0x0BEBC200 str r2, [sp, #0x20] bl __divsi3 ldr r2, [sp, #0x20] cmp r0, #0 ble _08048F12 ldr r0, _08049030 @ =0xF4143E00 adds r7, r7, r0 adds r5, #2 _08048F12: adds r1, r4, r6 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r0, [r2] adds r0, r0, r6 ldrb r0, [r0] cmp r0, #0 bne _08048EF0 _08048F24: ldr r1, _08049034 @ =0x05F5E100 mov r8, r1 adds r0, r7, #0 bl __divsi3 cmp r0, #0 ble _08048F38 ldr r2, _08049038 @ =0xFA0A1F00 adds r7, r7, r2 adds r5, #1 _08048F38: ldr r3, _08049020 @ =0x020314E0 ldr r0, [r3] movs r4, #0xd7 lsls r4, r4, #3 adds r1, r0, r4 str r5, [r1] ldr r1, _0804903C @ =0x000006B4 adds r0, r0, r1 str r7, [r0] mov r4, sp movs r6, #0xfa lsls r6, r6, #2 adds r0, r5, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #0xa] mov r4, sp adds r0, r5, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 adds r0, #0xa strb r0, [r4, #9] mov r4, sp adds r0, r5, #0 movs r1, #0xa bl __modsi3 strb r0, [r4, #8] mov r5, sp adds r0, r7, #0 mov r1, r8 bl __modsi3 ldr r4, _08049040 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049044 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049048 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _0804904C @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 adds r1, r6, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #0xa mov r2, sl movs r0, #0 ldrsb r0, [r2, r0] b _08049060 .align 2, 0 _08049020: .4byte 0x020314E0 _08049024: .4byte 0x0000068C _08049028: .4byte 0x0000062F _0804902C: .4byte 0x0BEBC200 _08049030: .4byte 0xF4143E00 _08049034: .4byte 0x05F5E100 _08049038: .4byte 0xFA0A1F00 _0804903C: .4byte 0x000006B4 _08049040: .4byte 0x00989680 _08049044: .4byte 0x000F4240 _08049048: .4byte 0x000186A0 _0804904C: .4byte 0x00002710 _08049050: subs r4, #1 cmp r4, #0 ble _08049068 mov r3, sp adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08049060: cmp r0, #0 ble _08049050 cmp r0, #0xa beq _08049050 _08049068: movs r5, #0 cmp r5, r4 bgt _0804908E ldr r6, _080490FC @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08049076: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08049076 _0804908E: ldr r1, [sp, #0x1c] ldr r2, _08049100 @ =0xFFA60000 adds r0, r1, r2 lsrs r0, r0, #0x10 cmp r0, #0x32 bls _0804909C b _0804948A _0804909C: ldr r3, _080490FC @ =0x020314E0 ldr r1, [r3] movs r4, #0xc7 lsls r4, r4, #3 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 ble _080490B2 b _08049250 _080490B2: ldr r3, _08049104 @ =0x00000634 adds r0, r1, r3 ldr r0, [r0] cmp r0, #0 beq _080490C4 ldr r7, _08049108 @ =0x0000063A adds r1, r1, r7 movs r0, #0x64 strh r0, [r1] _080490C4: ldr r0, _0804910C @ =gMain ldr r2, [r0, #0x4c] movs r0, #1 ands r2, r0 cmp r2, #0 bne _08049134 ldr r0, _080490FC @ =0x020314E0 ldr r1, [r0] adds r4, r1, r3 ldr r3, [r4] ldr r0, _08049110 @ =0x00030D3F cmp r3, r0 bls _0804911C ldr r2, _08049114 @ =0xFFFCF2C0 adds r0, r3, r2 str r0, [r4] movs r3, #0xc6 lsls r3, r3, #3 adds r1, r1, r3 ldr r0, [r1] ldr r4, _08049118 @ =0x00030D40 adds r0, r0, r4 str r0, [r1] movs r0, #0x91 bl m4aSongNumStart b _08049134 .align 2, 0 _080490FC: .4byte 0x020314E0 _08049100: .4byte 0xFFA60000 _08049104: .4byte 0x00000634 _08049108: .4byte 0x0000063A _0804910C: .4byte gMain _08049110: .4byte 0x00030D3F _08049114: .4byte 0xFFFCF2C0 _08049118: .4byte 0x00030D40 _0804911C: cmp r3, #0 beq _08049134 movs r7, #0xc6 lsls r7, r7, #3 adds r1, r1, r7 ldr r0, [r1] adds r0, r0, r3 str r0, [r1] str r2, [r4] movs r0, #0x91 bl m4aSongNumStart _08049134: ldr r6, _080491F0 @ =0x020314E0 ldr r0, [r6] movs r1, #0xc6 lsls r1, r1, #3 adds r0, r0, r1 ldr r7, [r0] mov r5, sp ldr r4, _080491F4 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080491F8 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080491FC @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049200 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049204 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 add r0, sp, #8 b _08049212 .align 2, 0 _080491F0: .4byte 0x020314E0 _080491F4: .4byte 0x05F5E100 _080491F8: .4byte 0x00989680 _080491FC: .4byte 0x000F4240 _08049200: .4byte 0x000186A0 _08049204: .4byte 0x00002710 _08049208: subs r4, #1 cmp r4, #0 ble _08049220 mov r2, sp adds r0, r2, r4 _08049212: ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08049208 cmp r0, #0xa beq _08049208 _08049220: movs r5, #0 cmp r5, r4 ble _08049228 b _0804948A _08049228: ldr r6, _0804924C @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08049230: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08049230 b _0804948A .align 2, 0 _0804924C: .4byte 0x020314E0 _08049250: cmp r0, #6 beq _08049256 b _0804948A _08049256: ldr r0, _080492A4 @ =0x00000639 adds r1, r1, r0 movs r0, #1 strb r0, [r1] ldr r2, _080492A8 @ =0x020314E0 ldr r1, [r2] ldr r3, _080492AC @ =0x000006B4 adds r0, r1, r3 ldr r0, [r0] cmp r0, #0 bne _08049278 movs r4, #0xd7 lsls r4, r4, #3 adds r0, r1, r4 ldr r0, [r0] cmp r0, #0 beq _08049280 _08049278: ldr r7, _080492B0 @ =0x0000063A adds r1, r1, r7 movs r0, #0x64 strh r0, [r1] _08049280: ldr r0, _080492B4 @ =gMain ldr r0, [r0, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08049302 ldr r0, _080492A8 @ =0x020314E0 ldr r2, [r0] ldr r0, _080492AC @ =0x000006B4 adds r5, r2, r0 ldr r3, [r5] ldr r0, _080492B8 @ =0x00030D3F cmp r3, r0 bls _080492C0 ldr r1, _080492BC @ =0xFFFCF2C0 adds r0, r3, r1 b _080492D6 .align 2, 0 _080492A4: .4byte 0x00000639 _080492A8: .4byte 0x020314E0 _080492AC: .4byte 0x000006B4 _080492B0: .4byte 0x0000063A _080492B4: .4byte gMain _080492B8: .4byte 0x00030D3F _080492BC: .4byte 0xFFFCF2C0 _080492C0: movs r7, #0xd7 lsls r7, r7, #3 adds r4, r2, r7 ldr r1, [r4] cmp r1, #0 beq _080492F0 subs r0, r1, #1 str r0, [r4] ldr r0, [r5] ldr r1, _080492E8 @ =0x05F2D3C0 adds r0, r0, r1 _080492D6: str r0, [r5] ldr r0, [r2, #0x44] ldr r3, _080492EC @ =0x00030D40 adds r0, r0, r3 str r0, [r2, #0x44] movs r0, #0x91 bl m4aSongNumStart b _08049302 .align 2, 0 _080492E8: .4byte 0x05F2D3C0 _080492EC: .4byte 0x00030D40 _080492F0: cmp r3, #0 beq _08049302 ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] str r1, [r5] movs r0, #0x91 bl m4aSongNumStart _08049302: movs r4, #0xa add r4, sp mov sl, r4 movs r1, #0 mov r0, sl _0804930C: strb r1, [r0] subs r0, #1 cmp r0, sp bge _0804930C movs r5, #0 ldr r7, _0804942C @ =0x020314E0 movs r6, #0xd4 lsls r6, r6, #3 ldr r4, _08049430 @ =0x086B0150 movs r3, #0xc7 lsls r3, r3, #3 _08049322: ldr r0, [r7] adds r2, r0, r6 adds r2, r2, r5 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r5, r0 adds r0, r0, r4 ldrb r0, [r0] strb r0, [r2] adds r5, #1 cmp r5, #0x13 ble _08049322 ldr r7, _0804942C @ =0x020314E0 ldr r0, [r7] movs r2, #0xd7 lsls r2, r2, #3 adds r1, r0, r2 ldr r5, [r1] ldr r3, _08049434 @ =0x000006B4 adds r0, r0, r3 ldr r7, [r0] mov r4, sp movs r6, #0xfa lsls r6, r6, #2 adds r0, r5, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #0xa] mov r4, sp adds r0, r5, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 adds r0, #0xa strb r0, [r4, #9] mov r4, sp adds r0, r5, #0 movs r1, #0xa bl __modsi3 strb r0, [r4, #8] mov r5, sp ldr r1, _08049438 @ =0x05F5E100 adds r0, r7, #0 bl __modsi3 ldr r4, _0804943C @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049440 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049444 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049448 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 adds r1, r6, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #0xa mov r7, sl movs r0, #0 ldrsb r0, [r7, r0] b _0804945C .align 2, 0 _0804942C: .4byte 0x020314E0 _08049430: .4byte 0x086B0150 _08049434: .4byte 0x000006B4 _08049438: .4byte 0x05F5E100 _0804943C: .4byte 0x00989680 _08049440: .4byte 0x000F4240 _08049444: .4byte 0x000186A0 _08049448: .4byte 0x00002710 _0804944C: subs r4, #1 cmp r4, #0 ble _08049464 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _0804945C: cmp r0, #0 ble _0804944C cmp r0, #0xa beq _0804944C _08049464: movs r5, #0 cmp r5, r4 bgt _0804948A ldr r6, _08049584 @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08049472: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08049472 _0804948A: ldr r1, _08049584 @ =0x020314E0 ldr r0, [r1] ldr r2, _08049588 @ =0x0000063A adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _0804949C subs r0, #1 strh r0, [r1] _0804949C: ldr r6, _0804958C @ =0x0200BA30 ldrh r0, [r6] cmp r0, #0 beq _08049572 movs r0, #0x78 strh r0, [r6, #2] ldr r3, _08049584 @ =0x020314E0 ldr r0, [r3] adds r0, #0xfc ldrh r0, [r0] adds r0, #0x26 strh r0, [r6, #4] ldr r4, [sp, #0x10] lsls r4, r4, #0x10 mov r8, r4 ldr r7, _08049590 @ =0x03005000 ldr r0, _08049594 @ =0xFFFFFE00 mov sl, r0 adds r4, r6, #0 adds r4, #8 ldr r1, _08049598 @ =0x000001FF mov sb, r1 movs r5, #0xd _080494CA: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 mov r0, sb ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 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 _080494CA movs r4, #0 mov r3, r8 asrs r3, r3, #0x10 mov sl, r3 ldr r7, _08049590 @ =0x03005000 ldr r0, _08049594 @ =0xFFFFFE00 mov sb, r0 ldr r1, _08049598 @ =0x000001FF mov r8, r1 _08049510: movs r0, #0xb8 muls r0, r4, r0 ldr r2, _0804959C @ =0x0200B808 adds r6, r0, r2 movs r0, #0x68 strh r0, [r6, #2] lsls r1, r4, #4 ldr r3, _08049584 @ =0x020314E0 ldr r0, [r3] adds r0, #0xfc ldrh r0, [r0] adds r0, #0x40 adds r1, r1, r0 add r1, sl strh r1, [r6, #4] adds r4, #1 mov ip, r4 adds r4, r6, #0 adds r4, #8 movs r5, #4 _08049538: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 movs r0, #2 ldrsh r1, [r4, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 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 _08049538 mov r4, ip cmp r4, #2 ble _08049510 _08049572: add sp, #0x28 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 _08049584: .4byte 0x020314E0 _08049588: .4byte 0x0000063A _0804958C: .4byte 0x0200BA30 _08049590: .4byte 0x03005000 _08049594: .4byte 0xFFFFFE00 _08049598: .4byte 0x000001FF _0804959C: .4byte 0x0200B808 thumb_func_start sub_495A0 sub_495A0: @ 0x080495A0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _080495DC @ =0xFFFFFDFC add sp, r4 ldr r2, _080495E0 @ =0x020314E0 ldr r0, [r2] ldr r1, _080495E4 @ =0x00001104 adds r0, r0, r1 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r1, [r2] ldr r2, _080495E8 @ =0x0000131C adds r0, r1, r2 str r3, [r0] ldr r2, _080495EC @ =0x02032EE0 ldr r0, [r2, #4] cmp r0, #0 blt _080495F4 ldr r5, _080495F0 @ =0x00000F4C adds r1, r1, r5 ldr r0, [r2] str r0, [r1] adds r0, r2, #0 bl m4aMPlayStop b _080495FA .align 2, 0 _080495DC: .4byte 0xFFFFFDFC _080495E0: .4byte 0x020314E0 _080495E4: .4byte 0x00001104 _080495E8: .4byte 0x0000131C _080495EC: .4byte 0x02032EE0 _080495F0: .4byte 0x00000F4C _080495F4: ldr r2, _08049628 @ =0x00000F4C adds r0, r1, r2 str r3, [r0] _080495FA: bl m4aMPlayAllStop movs r0, #0xa5 bl m4aSongNumStart ldr r2, _0804962C @ =gMain ldrb r0, [r2, #4] cmp r0, #1 bhi _0804963C ldr r0, _08049630 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0x68 ldrh r1, [r1] adds r0, #0x6a strh r1, [r0] ldrb r0, [r2, #4] cmp r0, #0 bne _08049634 bl sub_4E814 b _0804963C .align 2, 0 _08049628: .4byte 0x00000F4C _0804962C: .4byte gMain _08049630: .4byte 0x020314E0 _08049634: cmp r0, #1 bne _0804963C bl sub_4F814 _0804963C: ldr r4, _08049708 @ =0x020314E0 ldr r2, [r4] ldr r3, _0804970C @ =gMain ldrh r1, [r3, #0x38] ldr r5, _08049710 @ =0x00001106 adds r0, r2, r5 ldrh r5, [r0] strh r1, [r0] ldrh r1, [r3, #0x3a] ldr r5, _08049714 @ =0x00001108 adds r0, r2, r5 ldrh r5, [r0] strh r1, [r0] ldrh r1, [r3, #0x3c] ldr r5, _08049718 @ =0x0000110A adds r0, r2, r5 ldrh r5, [r0] strh r1, [r0] ldrh r1, [r3, #0x2c] ldr r5, _0804971C @ =0x0000110C adds r0, r2, r5 strh r1, [r0] ldrh r1, [r3, #0x26] adds r5, #2 adds r0, r2, r5 strh r1, [r0] ldr r1, _08049720 @ =0x040000D4 ldr r0, _08049724 @ =0x05000200 str r0, [r1] ldr r0, _08049728 @ =0x0000111A adds r2, r2, r0 str r2, [r1, #4] ldr r0, _0804972C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] movs r1, #0 add r6, sp, #0x200 movs r2, #0x9c lsls r2, r2, #1 add r2, sp mov sl, r2 _0804968E: movs r5, #0 lsls r1, r1, #0x10 mov sb, r1 mov r0, sb asrs r0, r0, #0x10 mov r8, r0 _0804969A: lsls r7, r5, #0x10 mov r1, r8 cmp r1, #9 bne _080496A8 asrs r0, r7, #0x10 cmp r0, #0xc beq _08049730 _080496A8: ldr r2, _08049708 @ =0x020314E0 ldr r4, [r2] asrs r5, r7, #0xf mov r1, r8 lsls r0, r1, #5 adds r5, r5, r0 ldr r2, _08049728 @ =0x0000111A adds r4, r4, r2 adds r4, r4, r5 ldrh r1, [r4] movs r0, #0x1f ands r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 strb r0, [r6] ldrh r0, [r4] movs r2, #0xf8 lsls r2, r2, #2 adds r1, r2, #0 ands r0, r1 lsrs r0, r0, #4 movs r1, #5 bl __divsi3 strb r0, [r6, #1] ldrh r0, [r4] movs r2, #0xf8 lsls r2, r2, #7 adds r1, r2, #0 ands r0, r1 lsrs r0, r0, #9 movs r1, #5 bl __divsi3 strb r0, [r6, #2] mov r0, sp adds r2, r0, r5 ldrb r1, [r6] ldrb r0, [r6, #1] lsls r0, r0, #5 orrs r1, r0 ldrb r0, [r6, #2] lsls r0, r0, #0xa orrs r1, r0 strh r1, [r2] b _08049736 .align 2, 0 _08049708: .4byte 0x020314E0 _0804970C: .4byte gMain _08049710: .4byte 0x00001106 _08049714: .4byte 0x00001108 _08049718: .4byte 0x0000110A _0804971C: .4byte 0x0000110C _08049720: .4byte 0x040000D4 _08049724: .4byte 0x05000200 _08049728: .4byte 0x0000111A _0804972C: .4byte 0x80000100 _08049730: ldr r0, _08049770 @ =0x00007FFF mov r1, sl strh r0, [r1] _08049736: movs r2, #0x80 lsls r2, r2, #9 adds r0, r7, r2 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _0804969A adds r0, r2, #0 add r0, sb lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _0804968E ldr r1, _08049774 @ =0x040000D4 mov r5, sp str r5, [r1] ldr r0, _08049778 @ =0x05000200 str r0, [r1, #4] ldr r0, _0804977C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08049780 @ =gMain ldrb r3, [r0, #4] cmp r3, #1 bhi _08049784 bl sub_1D4D0 b _080497A0 .align 2, 0 _08049770: .4byte 0x00007FFF _08049774: .4byte 0x040000D4 _08049778: .4byte 0x05000200 _0804977C: .4byte 0x80000100 _08049780: .4byte gMain _08049784: cmp r3, #2 bne _0804978E bl sub_356A0 b _080497A0 _0804978E: cmp r3, #4 bne _08049798 bl sub_3ADA0 b _080497A0 _08049798: cmp r3, #5 bne _080497A0 bl sub_3E5D0 _080497A0: movs r0, #1 bl sub_11F0 movs r3, #0x81 lsls r3, r3, #2 add sp, r3 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_497BC sub_497BC: @ 0x080497BC push {lr} ldr r1, _08049824 @ =gMain ldr r0, _08049828 @ =0x020314E0 ldr r2, [r0] ldr r3, _0804982C @ =0x00001106 adds r0, r2, r3 ldrh r0, [r0] ldrh r3, [r1, #0x38] strh r0, [r1, #0x38] ldr r3, _08049830 @ =0x00001108 adds r0, r2, r3 ldrh r0, [r0] ldrh r3, [r1, #0x3a] strh r0, [r1, #0x3a] ldr r3, _08049834 @ =0x0000110A adds r0, r2, r3 ldrh r0, [r0] ldrh r3, [r1, #0x3c] strh r0, [r1, #0x3c] ldr r3, _08049838 @ =0x0000110C adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, #0x2c] adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, #0x26] ldr r1, _0804983C @ =0x040000D4 adds r3, #0xc adds r0, r2, r3 str r0, [r1] ldr r0, _08049840 @ =0x05000200 str r0, [r1, #4] ldr r0, _08049844 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08049848 @ =0x00000F4C adds r2, r2, r0 ldr r0, [r2] cmp r0, #0 beq _08049814 ldr r0, _0804984C @ =0x02032EE0 bl m4aMPlayContinue _08049814: movs r0, #0xa6 bl m4aSongNumStart movs r0, #0 bl sub_11F0 pop {r0} bx r0 .align 2, 0 _08049824: .4byte gMain _08049828: .4byte 0x020314E0 _0804982C: .4byte 0x00001106 _08049830: .4byte 0x00001108 _08049834: .4byte 0x0000110A _08049838: .4byte 0x0000110C _0804983C: .4byte 0x040000D4 _08049840: .4byte 0x05000200 _08049844: .4byte 0x80000100 _08049848: .4byte 0x00000F4C _0804984C: .4byte 0x02032EE0 thumb_func_start sub_49850 sub_49850: @ 0x08049850 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08049A20 @ =0x0200B3B8 mov ip, r0 mov r5, ip adds r5, #8 ldr r4, _08049A24 @ =0x03005000 mov r3, ip ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 movs r0, #2 ldrsh r2, [r5, r0] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] ldr r6, _08049A2C @ =0xFFFFFE00 adds r0, r6, #0 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] mov r1, ip ldrh r0, [r1, #8] lsls r0, r0, #3 adds r0, r0, r4 ldrh r1, [r5, #4] strb r1, [r0] mov r3, ip ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #1] movs r5, #4 rsbs r5, r5, #0 adds r0, r5, #0 ands r0, r2 strb r0, [r1, #1] ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #3] movs r3, #0xf rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r2 strb r0, [r1, #3] movs r0, #1 movs r1, #0xb8 add r1, ip mov sl, r1 adds r7, r4, #0 mov sb, r6 mov r8, r5 adds r6, r3, #0 _080498C4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r3, ip adds r5, r3, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 movs r0, #2 ldrsh r2, [r5, r0] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] mov r0, sb ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r7 ldrh r1, [r5, #4] strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #1] mov r0, r8 ands r0, r2 strb r0, [r1, #1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #3] adds r0, r6, #0 ands r0, r2 strb r0, [r1, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _080498C4 movs r0, #5 ldr r6, _08049A24 @ =0x03005000 ldr r1, _08049A2C @ =0xFFFFFE00 mov sb, r1 movs r3, #4 rsbs r3, r3, #0 mov r8, r3 movs r7, #0xf rsbs r7, r7, #0 _0804992E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r1, ip adds r5, r1, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 movs r3, #2 ldrsh r2, [r5, r3] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] mov r0, sb ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r6 ldrh r1, [r5, #4] strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] mov r0, r8 ands r0, r2 strb r0, [r1, #1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #3] adds r0, r7, #0 ands r0, r2 strb r0, [r1, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xa ble _0804992E mov ip, sl movs r0, #0 ldr r6, _08049A24 @ =0x03005000 ldr r7, _08049A2C @ =0xFFFFFE00 _0804998E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r1, ip adds r5, r1, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 movs r3, #2 ldrsh r2, [r5, r3] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] adds r0, r7, #0 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r6 ldrh r1, [r5, #4] strb r1, [r0] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0804998E ldr r0, _08049A30 @ =0x0200B528 mov ip, r0 movs r0, #0 ldr r6, _08049A24 @ =0x03005000 ldr r7, _08049A2C @ =0xFFFFFE00 _080499D4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r1, ip adds r5, r1, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 movs r3, #2 ldrsh r2, [r5, r3] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] adds r0, r7, #0 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r6 ldrh r1, [r5, #4] strb r1, [r0] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _080499D4 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 _08049A20: .4byte 0x0200B3B8 _08049A24: .4byte 0x03005000 _08049A28: .4byte 0x000001FF _08049A2C: .4byte 0xFFFFFE00 _08049A30: .4byte 0x0200B528 thumb_func_start sub_49A34 sub_49A34: @ 0x08049A34 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 movs r0, #8 mov r8, r0 ldr r1, _08049A94 @ =0x020314E0 ldr r0, [r1] ldr r3, _08049A98 @ =0x0000131C adds r0, r0, r3 ldr r2, [r0] mov ip, r1 cmp r2, #0 bne _08049A68 ldr r1, _08049A9C @ =gMain ldrh r0, [r1, #0x38] movs r0, #0xcf strh r0, [r1, #0x38] ldrh r0, [r1, #0x3c] movs r0, #0xa strh r0, [r1, #0x3c] strh r2, [r1, #0x2c] movs r0, #0x90 strh r0, [r1, #0x26] _08049A68: mov r1, ip ldr r0, [r1] adds r0, r0, r3 ldr r2, [r0] cmp r2, #0xf bhi _08049AA4 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #1 movs r0, #0xa0 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] movs r2, #0x18 str r2, [sp, #4] ldr r3, _08049AA0 @ =0x0000FFFF mov sb, r3 mov r0, sb movs r5, #0x10 mov r8, r5 b _08049B48 .align 2, 0 _08049A94: .4byte 0x020314E0 _08049A98: .4byte 0x0000131C _08049A9C: .4byte gMain _08049AA0: .4byte 0x0000FFFF _08049AA4: cmp r2, #0x17 bhi _08049B34 movs r0, #0 str r0, [sp] adds r0, r2, #0 subs r0, #0xf lsls r1, r0, #1 adds r1, r1, r0 movs r0, #0x18 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] cmp r2, #0x11 bhi _08049AD0 ldr r1, _08049ACC @ =0x0000FFFF mov sb, r1 mov r0, sb b _08049B48 .align 2, 0 _08049ACC: .4byte 0x0000FFFF _08049AD0: cmp r2, #0x12 bne _08049AE4 movs r0, #9 ldr r2, _08049AE0 @ =0x0000FFF6 mov sb, r2 movs r3, #0x10 mov r8, r3 b _08049B48 .align 2, 0 _08049AE0: .4byte 0x0000FFF6 _08049AE4: cmp r2, #0x13 bne _08049AF8 movs r0, #9 ldr r5, _08049AF4 @ =0x0000FFF7 mov sb, r5 movs r1, #0x80 b _08049B46 .align 2, 0 _08049AF4: .4byte 0x0000FFF7 _08049AF8: cmp r2, #0x14 bne _08049B0C movs r0, #7 ldr r2, _08049B08 @ =0x0000FFF8 mov sb, r2 movs r3, #0xa0 mov r8, r3 b _08049B48 .align 2, 0 _08049B08: .4byte 0x0000FFF8 _08049B0C: cmp r2, #0x15 bne _08049B20 movs r0, #6 ldr r5, _08049B1C @ =0x0000FFF9 mov sb, r5 movs r1, #0xc0 b _08049B46 .align 2, 0 _08049B1C: .4byte 0x0000FFF9 _08049B20: cmp r2, #0x16 bne _08049B3C movs r0, #4 ldr r2, _08049B30 @ =0x0000FFFB mov sb, r2 movs r3, #0xe0 mov r8, r3 b _08049B48 .align 2, 0 _08049B30: .4byte 0x0000FFFB _08049B34: movs r2, #0 str r2, [sp] movs r3, #0 str r3, [sp, #4] _08049B3C: movs r0, #4 ldr r5, _08049C18 @ =0x0000FFFC mov sb, r5 movs r1, #0x80 lsls r1, r1, #1 _08049B46: mov r8, r1 _08049B48: ldr r6, _08049C1C @ =0x0200B3B8 lsls r0, r0, #0x10 asrs r1, r0, #0x10 str r0, [sp, #0xc] mov r2, r8 lsls r2, r2, #0x10 str r2, [sp, #0x10] ldr r3, [sp] lsls r3, r3, #0x10 mov sl, r3 ldr r5, [sp, #4] lsls r5, r5, #0x10 str r5, [sp, #8] cmp r1, #0 bge _08049B68 b _08049D92 _08049B68: movs r0, #0x64 strh r0, [r6, #2] adds r0, r1, #0 adds r0, #0x50 strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldr r4, _08049C20 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r7, r0] adds r1, #0x64 ldr r3, _08049C24 @ =0x08137D78 mov sl, r3 movs r5, #0 ldrsh r0, [r3, r5] adds r1, r1, r0 ldr r3, _08049C28 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08049C2C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r3, [r6, #8] lsls r3, r3, #3 adds r3, r3, r4 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 mov r5, sl ldrb r2, [r5, #2] adds r2, r2, r0 mov r1, ip ldr r0, [r1] ldr r5, _08049C30 @ =0x00001104 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 strb r2, [r3] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r1, #1] movs r2, #3 orrs r0, r2 strb r0, [r1, #1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 movs r1, #0xa orrs r0, r1 strb r0, [r2, #3] ldr r5, _08049C34 @ =0x08137DA4 ldr r0, _08049C38 @ =0xFFFFFD08 adds r4, r6, r0 ldr r0, [r4, #0x4c] movs r1, #0x41 bl __umodsi3 movs r1, #5 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldrh r1, [r0] ldrb r0, [r4, #4] cmp r0, #1 bhi _08049C48 ldr r2, _08049C3C @ =0x040000D4 lsls r0, r1, #0x10 asrs r0, r0, #0xb ldr r1, _08049C40 @ =0x08510CAC adds r0, r0, r1 str r0, [r2] ldr r0, _08049C44 @ =0x060118C0 b _08049C56 .align 2, 0 _08049C18: .4byte 0x0000FFFC _08049C1C: .4byte 0x0200B3B8 _08049C20: .4byte 0x03005000 _08049C24: .4byte 0x08137D78 _08049C28: .4byte 0x000001FF _08049C2C: .4byte 0xFFFFFE00 _08049C30: .4byte 0x00001104 _08049C34: .4byte 0x08137DA4 _08049C38: .4byte 0xFFFFFD08 _08049C3C: .4byte 0x040000D4 _08049C40: .4byte 0x08510CAC _08049C44: .4byte 0x060118C0 _08049C48: ldr r2, _08049E84 @ =0x040000D4 lsls r0, r1, #0x10 asrs r0, r0, #0xb ldr r1, _08049E88 @ =0x08510CAC adds r0, r0, r1 str r0, [r2] ldr r0, _08049E8C @ =0x06010480 _08049C56: str r0, [r2, #4] ldr r0, _08049E90 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0x64 strh r0, [r6, #2] ldr r1, [sp, #0xc] asrs r0, r1, #0x10 adds r0, #0x50 strh r0, [r6, #4] movs r0, #1 mov r2, sb lsls r2, r2, #0x10 mov sb, r2 mov r3, r8 lsls r3, r3, #0x10 str r3, [sp, #0x10] ldr r5, [sp] lsls r5, r5, #0x10 mov sl, r5 ldr r1, [sp, #4] lsls r1, r1, #0x10 str r1, [sp, #8] ldr r2, _08049E94 @ =0x03005000 mov ip, r2 movs r3, #0xf rsbs r3, r3, #0 mov r8, r3 _08049C8E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, ip movs r5, #2 ldrsh r1, [r7, r5] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 lsls r5, r4, #2 ldr r0, _08049E98 @ =0x08137D78 adds r5, r5, r0 movs r2, #0 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08049EA0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r6, #4] ldrb r3, [r7, #4] adds r1, r1, r3 ldrb r0, [r5, #2] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #3] mov r0, r8 ands r0, r1 movs r1, #0xa orrs r0, r1 strb r0, [r2, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _08049C8E movs r0, #0x64 strh r0, [r6, #2] mov r5, sb asrs r0, r5, #0x10 adds r0, #0x58 strh r0, [r6, #4] movs r0, #5 ldr r1, _08049E94 @ =0x03005000 mov ip, r1 ldr r2, _08049EA0 @ =0xFFFFFE00 mov sb, r2 movs r3, #0xf rsbs r3, r3, #0 mov r8, r3 _08049D1E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, ip movs r5, #2 ldrsh r1, [r7, r5] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 lsls r5, r4, #2 ldr r0, _08049E98 @ =0x08137D78 adds r5, r5, r0 movs r2, #0 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =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 r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r6, #4] ldrb r3, [r7, #4] adds r1, r1, r3 ldrb r0, [r5, #2] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #3] mov r0, r8 ands r0, r1 movs r1, #0xa orrs r0, r1 strb r0, [r2, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xa ble _08049D1E _08049D92: movs r0, #0x80 lsls r0, r0, #1 ldr r5, [sp, #0x10] asrs r1, r5, #0x10 movs r2, #5 bl sub_7C0 ldr r6, _08049EA4 @ =0x0200B470 movs r0, #0x64 mov r2, sl asrs r1, r2, #0x10 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, [sp, #8] asrs r0, r3, #0x10 adds r0, #0x50 strh r0, [r6, #4] movs r0, #0 ldr r5, _08049E94 @ =0x03005000 ldr r1, _08049EA0 @ =0xFFFFFE00 mov r8, r1 _08049DBC: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r7, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08049DBC ldr r6, _08049EA8 @ =0x0200B528 mov r3, sl asrs r0, r3, #0x10 adds r0, #0x44 strh r0, [r6, #2] movs r0, #0x6c ldr r5, [sp, #8] asrs r1, r5, #0x10 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r1, _08049EAC @ =0x020314E0 mov ip, r1 ldr r5, _08049E94 @ =0x03005000 ldr r2, _08049EA0 @ =0xFFFFFE00 mov r8, r2 _08049E20: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _08049E20 mov r3, ip ldr r1, [r3] ldr r5, _08049EB0 @ =0x0000131C adds r1, r1, r5 ldr r0, [r1] adds r0, #1 str r0, [r1] add sp, #0x14 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 _08049E84: .4byte 0x040000D4 _08049E88: .4byte 0x08510CAC _08049E8C: .4byte 0x06010480 _08049E90: .4byte 0x80000010 _08049E94: .4byte 0x03005000 _08049E98: .4byte 0x08137D78 _08049E9C: .4byte 0x000001FF _08049EA0: .4byte 0xFFFFFE00 _08049EA4: .4byte 0x0200B470 _08049EA8: .4byte 0x0200B528 _08049EAC: .4byte 0x020314E0 _08049EB0: .4byte 0x0000131C thumb_func_start PinballGameMain PinballGameMain: @ 0x08049EB4 push {lr} ldr r1, _08049ECC @ =0x08137E04 ldr r0, _08049ED0 @ =gMain 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 _08049ECC: .4byte 0x08137E04 _08049ED0: .4byte gMain thumb_func_start sub_49ED4 sub_49ED4: @ 0x08049ED4 push {r4, r5, r6, r7, lr} ldr r0, _08049F18 @ =gMain ldr r1, [r0, #0x4c] movs r0, #0xf movs r5, #0 ands r1, r0 cmp r5, r1 bge _08049EFA adds r4, r1, #0 _08049EE6: bl sub_C00 lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 blt _08049EE6 _08049EFA: bl sub_10C0 ldr r1, _08049F1C @ =0x020314E0 ldr r0, _08049F20 @ =0x02000000 str r0, [r1] bl sub_438 ldr r1, _08049F18 @ =gMain movs r0, #0 strb r0, [r1, #0xe] ldrb r0, [r1, #0xd] cmp r0, #0 beq _08049F24 movs r1, #0 b _08049F36 .align 2, 0 _08049F18: .4byte gMain _08049F1C: .4byte 0x020314E0 _08049F20: .4byte 0x02000000 _08049F24: ldrb r0, [r1, #5] ldrb r2, [r1, #4] movs r1, #1 cmp r0, r2 beq _08049F36 movs r1, #3 cmp r2, #1 bhi _08049F36 movs r1, #2 _08049F36: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r7, r0, #0 cmp r1, #1 bne _08049F42 b _0804A064 _08049F42: cmp r1, #1 bgt _08049F4C cmp r1, #0 beq _08049F5A b _0804A19C _08049F4C: cmp r1, #2 bne _08049F52 b _0804A104 _08049F52: cmp r1, #3 bne _08049F58 b _0804A158 _08049F58: b _0804A19C _08049F5A: bl sub_4A270 bl sub_4A518 bl sub_467F4 ldr r2, _08049FE4 @ =0x040000D4 ldr r0, _08049FE8 @ =0x02031520 ldr r0, [r0, #0x2c] str r0, [r2] ldr r0, _08049FEC @ =0x05000200 str r0, [r2, #4] ldr r0, _08049FF0 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08049FF4 @ =gMain ldrb r0, [r0, #9] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08049FA4 ldr r0, _08049FF8 @ =0x020314E0 ldr r0, [r0] ldr r1, _08049FFC @ =0x000005F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0804A000 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804A004 @ =0x05000220 str r0, [r2, #4] ldr r0, _0804A008 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _08049FA4: bl sub_4A90C movs r5, #0 ldr r6, _0804A00C @ =0x020028D8 _08049FAC: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, r0, r6 ldr r0, [r0] bl _call_via_r0 adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _08049FAC bl m4aMPlayAllStop bl sub_47110 bl sub_4A518 ldr r0, _08049FF4 @ =gMain ldrb r0, [r0, #2] cmp r0, #3 bne _0804A010 movs r0, #2 bl sub_4B678 b _0804A016 .align 2, 0 _08049FE4: .4byte 0x040000D4 _08049FE8: .4byte 0x02031520 _08049FEC: .4byte 0x05000200 _08049FF0: .4byte 0x80000100 _08049FF4: .4byte gMain _08049FF8: .4byte 0x020314E0 _08049FFC: .4byte 0x000005F6 _0804A000: .4byte 0x08137E14 _0804A004: .4byte 0x05000220 _0804A008: .4byte 0x80000010 _0804A00C: .4byte 0x020028D8 _0804A010: movs r0, #1 bl sub_4B678 _0804A016: bl sub_4A270 bl sub_4A90C ldr r1, _0804A03C @ =0x086B085C ldr r4, _0804A040 @ =gMain ldrb r0, [r4, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4, #4] cmp r0, #1 bhi _0804A044 bl sub_1D4D0 b _0804A19C .align 2, 0 _0804A03C: .4byte 0x086B085C _0804A040: .4byte gMain _0804A044: cmp r0, #2 bne _0804A04E bl sub_356A0 b _0804A19C _0804A04E: cmp r0, #4 bne _0804A058 bl sub_3ADA0 b _0804A19C _0804A058: cmp r0, #5 beq _0804A05E b _0804A19C _0804A05E: bl sub_3E5D0 b _0804A19C _0804A064: bl sub_4A270 bl sub_4A518 bl sub_467F4 ldr r2, _0804A0D8 @ =0x040000D4 ldr r0, _0804A0DC @ =0x02031520 ldr r0, [r0, #0x2c] str r0, [r2] ldr r0, _0804A0E0 @ =0x05000200 str r0, [r2, #4] ldr r0, _0804A0E4 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0804A0E8 @ =gMain ldrb r0, [r0, #9] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804A0AE ldr r0, _0804A0EC @ =0x020314E0 ldr r0, [r0] ldr r1, _0804A0F0 @ =0x000005F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0804A0F4 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804A0F8 @ =0x05000220 str r0, [r2, #4] ldr r0, _0804A0FC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0804A0AE: bl sub_4A90C movs r5, #0 ldr r6, _0804A100 @ =0x020028D8 _0804A0B6: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, r0, r6 ldr r0, [r0] bl _call_via_r0 adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _0804A0B6 bl sub_47110 b _0804A19C .align 2, 0 _0804A0D8: .4byte 0x040000D4 _0804A0DC: .4byte 0x02031520 _0804A0E0: .4byte 0x05000200 _0804A0E4: .4byte 0x80000100 _0804A0E8: .4byte gMain _0804A0EC: .4byte 0x020314E0 _0804A0F0: .4byte 0x000005F6 _0804A0F4: .4byte 0x08137E14 _0804A0F8: .4byte 0x05000220 _0804A0FC: .4byte 0x80000010 _0804A100: .4byte 0x020028D8 _0804A104: bl sub_4A270 bl sub_4A6A0 movs r0, #0 bl sub_4B678 bl sub_4A90C ldr r1, _0804A148 @ =0x086B085C ldr r4, _0804A14C @ =gMain ldrb r0, [r4, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4, #4] cmp r0, #0 bne _0804A132 movs r0, #1 bl sub_46FD4 _0804A132: movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, _0804A150 @ =0x020314E0 ldr r0, [r0] ldr r1, _0804A154 @ =0x000006C4 adds r0, r0, r1 movs r1, #0 strb r1, [r0] b _0804A19C .align 2, 0 _0804A148: .4byte 0x086B085C _0804A14C: .4byte gMain _0804A150: .4byte 0x020314E0 _0804A154: .4byte 0x000006C4 _0804A158: bl sub_4A270 bl sub_4A518 bl sub_467F4 ldr r1, _0804A22C @ =0x040000D4 ldr r0, _0804A230 @ =0x02031520 ldr r0, [r0, #0x2c] str r0, [r1] ldr r0, _0804A234 @ =0x05000200 str r0, [r1, #4] ldr r0, _0804A238 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_4A90C movs r5, #0 ldr r6, _0804A23C @ =0x020028D8 _0804A17E: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, r0, r6 ldr r0, [r0] bl _call_via_r0 adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _0804A17E bl sub_47110 _0804A19C: ldr r1, _0804A230 @ =0x02031520 movs r0, #0 strh r0, [r1, #8] movs r2, #0 ldr r3, _0804A240 @ =0x0200B134 _0804A1A6: lsls r0, r2, #0x10 asrs r2, r0, #0x10 adds r0, r2, r3 ldrb r0, [r0] cmp r0, #3 bls _0804A1B8 ldrh r0, [r1, #8] adds r0, #1 strh r0, [r1, #8] _0804A1B8: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xcc ble _0804A1A6 bl sub_CBC bl sub_24C ldr r4, _0804A244 @ =0x020314E0 ldr r0, [r4] movs r1, #0x88 lsls r1, r1, #5 adds r0, r0, r1 movs r3, #0 strb r3, [r0] ldr r1, _0804A248 @ =gMain adds r2, r1, #0 adds r2, #0x36 movs r0, #1 strb r0, [r2] asrs r0, r7, #0x10 cmp r0, #2 bgt _0804A25E cmp r0, #1 bge _0804A254 cmp r0, #0 bne _0804A25E ldrb r0, [r1, #2] cmp r0, #3 beq _0804A212 ldr r0, [r4] ldr r1, _0804A24C @ =0x00000F4C adds r0, r0, r1 ldr r1, [r0] cmp r1, #0 beq _0804A212 ldr r2, _0804A250 @ =0x02032EE0 ldr r0, [r2, #4] cmp r0, #0 bge _0804A212 adds r0, r2, #0 bl MPlayStart _0804A212: ldr r0, _0804A248 @ =gMain ldrb r0, [r0, #4] cmp r0, #1 bhi _0804A25E ldr r0, _0804A244 @ =0x020314E0 ldr r0, [r0] adds r0, #0x6f ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_31BE8 b _0804A25E .align 2, 0 _0804A22C: .4byte 0x040000D4 _0804A230: .4byte 0x02031520 _0804A234: .4byte 0x05000200 _0804A238: .4byte 0x80000100 _0804A23C: .4byte 0x020028D8 _0804A240: .4byte 0x0200B134 _0804A244: .4byte 0x020314E0 _0804A248: .4byte gMain _0804A24C: .4byte 0x00000F4C _0804A250: .4byte 0x02032EE0 _0804A254: ldrh r0, [r1, #0x38] movs r0, #0xce strh r0, [r1, #0x38] ldrh r0, [r1, #0x3c] strh r3, [r1, #0x3c] _0804A25E: ldr r1, _0804A26C @ =gMain ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804A26C: .4byte gMain thumb_func_start sub_4A270 sub_4A270: @ 0x0804A270 push {r4, lr} movs r0, #0x80 lsls r0, r0, #0x13 movs r2, #0x86 lsls r2, r2, #5 adds r1, r2, #0 strh r1, [r0] ldr r0, _0804A294 @ =gMain ldrb r1, [r0, #4] adds r3, r0, #0 cmp r1, #7 bls _0804A28A b _0804A4E8 _0804A28A: lsls r0, r1, #2 ldr r1, _0804A298 @ =_0804A29C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804A294: .4byte gMain _0804A298: .4byte _0804A29C _0804A29C: @ jump table .4byte _0804A2BC @ case 0 .4byte _0804A308 @ case 1 .4byte _0804A354 @ case 2 .4byte _0804A39C @ case 3 .4byte _0804A3E8 @ case 4 .4byte _0804A418 @ case 5 .4byte _0804A448 @ case 6 .4byte _0804A494 @ case 7 _0804A2BC: ldr r1, _0804A2F0 @ =0x0400000E ldr r4, _0804A2F4 @ =0x0000804B adds r0, r4, #0 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A2F8 @ =0x0400000C ldr r4, _0804A2FC @ =0x00008246 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A300 @ =0x0400000A ldr r4, _0804A304 @ =0x00008649 b _0804A4C4 .align 2, 0 _0804A2F0: .4byte 0x0400000E _0804A2F4: .4byte 0x0000804B _0804A2F8: .4byte 0x0400000C _0804A2FC: .4byte 0x00008246 _0804A300: .4byte 0x0400000A _0804A304: .4byte 0x00008649 _0804A308: ldr r1, _0804A33C @ =0x0400000E ldr r2, _0804A340 @ =0x0000804B adds r0, r2, #0 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A344 @ =0x0400000C ldr r4, _0804A348 @ =0x00008246 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A34C @ =0x0400000A ldr r4, _0804A350 @ =0x00008649 b _0804A4C4 .align 2, 0 _0804A33C: .4byte 0x0400000E _0804A340: .4byte 0x0000804B _0804A344: .4byte 0x0400000C _0804A348: .4byte 0x00008246 _0804A34C: .4byte 0x0400000A _0804A350: .4byte 0x00008649 _0804A354: ldr r1, _0804A390 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A394 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A398 @ =0x0400000A movs r4, #0x82 lsls r4, r4, #2 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] subs r4, #8 b _0804A4CE .align 2, 0 _0804A390: .4byte 0x0400000E _0804A394: .4byte 0x0400000C _0804A398: .4byte 0x0400000A _0804A39C: ldr r1, _0804A3D8 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A3DC @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A3E0 @ =0x0400000A ldr r4, _0804A3E4 @ =0x00000209 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] subs r4, #9 b _0804A4CE .align 2, 0 _0804A3D8: .4byte 0x0400000E _0804A3DC: .4byte 0x0400000C _0804A3E0: .4byte 0x0400000A _0804A3E4: .4byte 0x00000209 _0804A3E8: ldr r1, _0804A410 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A414 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 b _0804A4CE .align 2, 0 _0804A410: .4byte 0x0400000E _0804A414: .4byte 0x0400000C _0804A418: ldr r1, _0804A440 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A444 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 b _0804A4CE .align 2, 0 _0804A440: .4byte 0x0400000E _0804A444: .4byte 0x0400000C _0804A448: ldr r1, _0804A47C @ =0x0400000E ldr r2, _0804A480 @ =0x0000800B adds r0, r2, #0 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A484 @ =0x0400000C ldr r4, _0804A488 @ =0x0000820A adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A48C @ =0x0400000A ldr r4, _0804A490 @ =0x00008609 b _0804A4C4 .align 2, 0 _0804A47C: .4byte 0x0400000E _0804A480: .4byte 0x0000800B _0804A484: .4byte 0x0400000C _0804A488: .4byte 0x0000820A _0804A48C: .4byte 0x0400000A _0804A490: .4byte 0x00008609 _0804A494: ldr r1, _0804A4FC @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A500 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A504 @ =0x0400000A ldr r4, _0804A508 @ =0x00008208 _0804A4C4: adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #2 _0804A4CE: adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A50C @ =0x04000008 ldr r4, _0804A510 @ =0x00008404 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] _0804A4E8: movs r0, #0x80 lsls r0, r0, #0x13 ldrh r0, [r0] movs r1, #0 strh r0, [r3, #0x16] ldr r0, _0804A514 @ =0x0400004C strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0804A4FC: .4byte 0x0400000E _0804A500: .4byte 0x0400000C _0804A504: .4byte 0x0400000A _0804A508: .4byte 0x00008208 _0804A50C: .4byte 0x04000008 _0804A510: .4byte 0x00008404 _0804A514: .4byte 0x0400004C thumb_func_start sub_4A518 sub_4A518: @ 0x0804A518 push {r4, r5, r6, r7, lr} sub sp, #4 ldr r0, _0804A60C @ =gMain movs r3, #0 strb r3, [r0, #0xf] strb r3, [r0, #0x10] str r3, [r0, #0x50] strb r3, [r0, #0x11] movs r7, #0 strh r3, [r0, #0x12] strh r3, [r0, #0x14] movs r1, #0x90 strh r1, [r0, #0x26] strh r3, [r0, #0x28] strh r3, [r0, #0x2a] adds r1, r0, #0 adds r1, #0x36 strb r7, [r1] ldrh r1, [r0, #0x38] strh r3, [r0, #0x38] ldrh r1, [r0, #0x3a] strh r3, [r0, #0x3a] ldrh r1, [r0, #0x3c] strh r3, [r0, #0x3c] ldrb r1, [r0, #5] adds r6, r0, #0 ldr r5, _0804A610 @ =0x020314E0 ldrb r0, [r6, #4] cmp r1, r0 beq _0804A556 b _0804A652 _0804A556: mov r0, sp strh r3, [r0] ldr r4, _0804A614 @ =0x040000D4 str r0, [r4] ldr r0, [r5] str r0, [r4, #4] ldr r0, _0804A618 @ =0x81000A08 str r0, [r4, #8] ldr r0, [r4, #8] movs r2, #9 ldrsb r2, [r6, r2] cmp r2, #0 beq _0804A62C ldr r2, [r5] movs r1, #0xe3 lsls r1, r1, #1 adds r0, r2, r1 movs r1, #0xa8 strh r1, [r0] movs r7, #0xe4 lsls r7, r7, #1 adds r0, r2, r7 strh r1, [r0] movs r1, #0xe6 lsls r1, r1, #1 adds r0, r2, r1 movs r1, #0xd strh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] movs r1, #0xe8 lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] adds r7, #0xa adds r0, r2, r7 strh r3, [r0] movs r0, #0xeb lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0x78 strh r0, [r1] adds r7, #8 adds r1, r2, r7 movs r0, #0x3c strh r0, [r1] ldr r0, _0804A61C @ =0x084C0C6C str r0, [r4] ldr r0, _0804A620 @ =0x06010600 str r0, [r4, #4] ldr r0, _0804A624 @ =0x800000C0 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, [r5] movs r2, #0xf1 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #2 strb r0, [r1] ldr r0, [r6, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r3, [r0] ldr r1, [r5] movs r3, #0xe0 lsls r3, r3, #1 adds r2, r1, r3 movs r0, #1 strh r0, [r2] ldr r4, _0804A628 @ =0x000005F6 adds r1, r1, r4 movs r0, #3 strb r0, [r1] ldr r1, [r5] movs r7, #0xbf lsls r7, r7, #3 adds r2, r1, r7 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x30 movs r0, #9 strb r0, [r1] ldr r0, [r5] movs r2, #0xc9 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #0x63 b _0804A650 .align 2, 0 _0804A60C: .4byte gMain _0804A610: .4byte 0x020314E0 _0804A614: .4byte 0x040000D4 _0804A618: .4byte 0x81000A08 _0804A61C: .4byte 0x084C0C6C _0804A620: .4byte 0x06010600 _0804A624: .4byte 0x800000C0 _0804A628: .4byte 0x000005F6 _0804A62C: ldr r1, [r5] movs r3, #0xea lsls r3, r3, #1 adds r0, r1, r3 strh r2, [r0] movs r4, #0xeb lsls r4, r4, #1 adds r2, r1, r4 ldr r0, _0804A690 @ =0x0000FFFC strh r0, [r2] adds r1, #0x30 movs r0, #2 strb r0, [r1] ldr r0, [r5] movs r7, #0xc9 lsls r7, r7, #1 adds r1, r0, r7 movs r0, #0xa _0804A650: strb r0, [r1] _0804A652: ldrb r0, [r6, #2] cmp r0, #3 beq _0804A666 ldr r0, [r5] movs r2, #0xa1 lsls r2, r2, #1 adds r1, r6, r2 ldrb r1, [r1] adds r0, #0x31 strb r1, [r0] _0804A666: ldr r1, [r5] ldr r0, _0804A694 @ =0x00009C40 str r0, [r1, #0x38] movs r3, #0 strb r3, [r1, #0x1d] ldr r0, [r5] ldr r4, _0804A698 @ =0x0000132C adds r1, r0, r4 ldr r7, _0804A69C @ =0x00001334 adds r2, r0, r7 str r2, [r1] adds r4, #4 adds r1, r0, r4 str r2, [r1] adds r0, #0x66 strh r3, [r0] add sp, #4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804A690: .4byte 0x0000FFFC _0804A694: .4byte 0x00009C40 _0804A698: .4byte 0x0000132C _0804A69C: .4byte 0x00001334 thumb_func_start sub_4A6A0 sub_4A6A0: @ 0x0804A6A0 push {r4, r5, r6, r7, lr} ldr r1, _0804A6C0 @ =0x020314E0 ldr r2, [r1] ldr r3, _0804A6C4 @ =0x00000282 adds r0, r2, r3 movs r5, #0 ldrsb r5, [r0, r5] adds r6, r1, #0 cmp r5, #1 beq _0804A760 cmp r5, #1 bgt _0804A6C8 cmp r5, #0 beq _0804A6D0 b _0804A83C .align 2, 0 _0804A6C0: .4byte 0x020314E0 _0804A6C4: .4byte 0x00000282 _0804A6C8: cmp r5, #2 bne _0804A6CE b _0804A7D0 _0804A6CE: b _0804A83C _0804A6D0: ldr r4, _0804A738 @ =0x0000132C adds r1, r2, r4 ldr r2, [r1] movs r3, #0 movs r0, #0x77 strh r0, [r2, #0x10] ldr r2, [r1] adds r0, #0xa0 strh r0, [r2, #0x12] ldr r0, [r1] strh r5, [r0, #0x30] ldr r0, [r1] strh r5, [r0, #0x32] ldr r0, [r1] strh r5, [r0, #6] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x38] ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0xe] ldr r0, [r1] movs r1, #1 strb r1, [r0] ldr r0, [r6] strb r1, [r0, #0x1f] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r3, [r0] ldr r0, [r6] movs r1, #0x78 strh r1, [r0, #0x28] adds r0, #0x25 movs r1, #4 strb r1, [r0] ldr r0, _0804A73C @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _0804A740 bl sub_1A9E8 b _0804A744 .align 2, 0 _0804A738: .4byte 0x0000132C _0804A73C: .4byte gMain _0804A740: bl sub_32968 _0804A744: ldr r3, _0804A75C @ =0x020314E0 ldr r1, [r3] adds r2, r1, #0 adds r2, #0x4c movs r0, #0 strh r0, [r2] adds r1, #0x4e movs r0, #0xd7 strh r0, [r1] adds r6, r3, #0 b _0804A83C .align 2, 0 _0804A75C: .4byte 0x020314E0 _0804A760: ldr r3, _0804A7C8 @ =0x0000132C adds r1, r2, r3 ldr r2, [r1] movs r4, #0 movs r3, #0 movs r0, #0x8c strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xb7 strh r0, [r2, #0x12] ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r0, [r1] strh r3, [r0, #6] ldr r2, [r1] movs r7, #0x10 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x38] ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0xe] ldr r0, [r1] strb r5, [r0] ldr r0, [r6] strb r5, [r0, #0x1f] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] ldr r2, _0804A7CC @ =0x000002A2 adds r0, r0, r2 movs r1, #5 strb r1, [r0] ldr r0, [r6] adds r1, r0, #0 adds r1, #0x4c strh r3, [r1] adds r0, #0x4e movs r1, #0x76 strh r1, [r0] b _0804A83C .align 2, 0 _0804A7C8: .4byte 0x0000132C _0804A7CC: .4byte 0x000002A2 _0804A7D0: ldr r3, _0804A8E4 @ =0x0000132C adds r1, r2, r3 ldr r2, [r1] movs r4, #0 movs r3, #0 ldr r0, _0804A8E8 @ =0x0000FFE4 strh r0, [r2, #0x10] ldr r2, [r1] adds r0, #0x12 strh r0, [r2, #0x12] ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r0, [r1] strh r3, [r0, #6] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x38] ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0xe] ldr r0, [r1] movs r1, #1 strb r1, [r0] ldr r0, [r6] strb r1, [r0, #0x1f] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] movs r2, #0xc3 lsls r2, r2, #2 adds r1, r0, r2 strh r3, [r1] ldr r4, _0804A8EC @ =0x00000306 adds r0, r0, r4 movs r1, #7 strb r1, [r0] ldr r0, [r6] adds r1, r0, #0 adds r1, #0x4c strh r3, [r1] adds r0, #0x4e strh r3, [r0] _0804A83C: ldr r1, [r6] ldr r3, _0804A8F0 @ =0x000005FC adds r0, r1, r3 movs r4, #0 movs r2, #0 strh r2, [r0] ldr r5, _0804A8F4 @ =0x000005FE adds r0, r1, r5 strh r2, [r0] ldr r7, _0804A8F8 @ =0x000005FB adds r1, r1, r7 strb r4, [r1] ldr r2, [r6] adds r5, r2, #0 adds r5, #0x4e movs r1, #0 ldrsh r0, [r5, r1] lsls r0, r0, #8 str r0, [r2, #0x54] adds r4, r2, #0 adds r4, #0x4c ldrh r1, [r4] adds r0, r2, #0 adds r0, #0x58 strh r1, [r0] adds r3, r2, r3 ldrh r0, [r3] ldrh r5, [r5] adds r0, r0, r5 adds r1, r2, #0 adds r1, #0x5a strh r0, [r1] ldr r2, _0804A8FC @ =gMain ldrh r1, [r4] movs r3, #0xbc lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] ldr r0, [r6] adds r0, #0x4e ldrh r1, [r0] ldr r4, _0804A900 @ =0x000002F2 adds r0, r2, r4 strh r1, [r0] ldr r0, [r6] adds r0, #0x4c ldrh r1, [r0] movs r5, #0xbd lsls r5, r5, #2 adds r0, r2, r5 strh r1, [r0] ldr r0, [r6] adds r0, #0x4e ldrh r3, [r0] ldr r7, _0804A904 @ =0x000002F6 adds r4, r2, r7 strh r3, [r4] ldr r0, [r6] adds r0, #0x4c ldrh r1, [r0] subs r5, #8 adds r0, r2, r5 strh r1, [r0] ldr r0, [r6] adds r0, #0x4e ldrh r1, [r0] subs r7, #8 adds r0, r2, r7 strh r1, [r0] ldr r0, _0804A908 @ =0x000002EA adds r2, r2, r0 movs r0, #0x50 strh r0, [r2] ldr r1, [r6] adds r0, r1, #0 adds r0, #0xcc strh r3, [r0] ldrh r0, [r4] lsrs r0, r0, #3 adds r1, #0x64 strh r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804A8E4: .4byte 0x0000132C _0804A8E8: .4byte 0x0000FFE4 _0804A8EC: .4byte 0x00000306 _0804A8F0: .4byte 0x000005FC _0804A8F4: .4byte 0x000005FE _0804A8F8: .4byte 0x000005FB _0804A8FC: .4byte gMain _0804A900: .4byte 0x000002F2 _0804A904: .4byte 0x000002F6 _0804A908: .4byte 0x000002EA thumb_func_start sub_4A90C sub_4A90C: @ 0x0804A90C push {r4, lr} ldr r2, _0804A944 @ =0x020028D8 ldr r3, _0804A948 @ =0x086B077C ldr r0, [r3] ldr r1, [r3, #4] str r0, [r2, #8] str r1, [r2, #0xc] adds r0, r3, #0 adds r0, #0x90 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x40] str r1, [r2, #0x44] ldr r0, [r3, #0x78] ldr r1, [r3, #0x7c] str r0, [r2, #0x30] str r1, [r2, #0x34] ldr r0, _0804A94C @ =gMain ldrb r1, [r0, #4] adds r4, r0, #0 cmp r1, #7 bls _0804A93A b _0804AACC _0804A93A: lsls r0, r1, #2 ldr r1, _0804A950 @ =_0804A954 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804A944: .4byte 0x020028D8 _0804A948: .4byte 0x086B077C _0804A94C: .4byte gMain _0804A950: .4byte _0804A954 _0804A954: @ jump table .4byte _0804A974 @ case 0 .4byte _0804A9BC @ case 1 .4byte _0804AA04 @ case 2 .4byte _0804AA1E @ case 3 .4byte _0804AA38 @ case 4 .4byte _0804AA52 @ case 5 .4byte _0804AA6C @ case 6 .4byte _0804AA86 @ case 7 _0804A974: ldr r0, [r3, #0x18] ldr r1, [r3, #0x1c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x80 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0x98 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] ldr r0, [r3, #0x58] ldr r1, [r3, #0x5c] str r0, [r2, #0x20] str r1, [r2, #0x24] ldr r0, [r3, #8] ldr r1, [r3, #0xc] str r0, [r2, #0x10] str r1, [r2, #0x14] ldr r0, [r3, #0x68] ldr r1, [r3, #0x6c] str r0, [r2, #0x28] str r1, [r2, #0x2c] ldrb r1, [r4, #4] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _0804A9B8 @ =0x086B02CC b _0804AAC8 .align 2, 0 _0804A9B8: .4byte 0x086B02CC _0804A9BC: ldr r0, [r3, #0x20] ldr r1, [r3, #0x24] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x80 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xa0 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] ldr r0, [r3, #0x58] ldr r1, [r3, #0x5c] str r0, [r2, #0x20] str r1, [r2, #0x24] ldr r0, [r3, #8] ldr r1, [r3, #0xc] str r0, [r2, #0x10] str r1, [r2, #0x14] ldr r0, [r3, #0x68] ldr r1, [r3, #0x6c] str r0, [r2, #0x28] str r1, [r2, #0x2c] ldrb r1, [r4, #4] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _0804AA00 @ =0x086B02CC b _0804AAC8 .align 2, 0 _0804AA00: .4byte 0x086B02CC _0804AA04: ldr r0, [r3, #0x28] ldr r1, [r3, #0x2c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xa8 b _0804AA9E _0804AA1E: ldr r0, [r3, #0x30] ldr r1, [r3, #0x34] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xb0 b _0804AA9E _0804AA38: ldr r0, [r3, #0x38] ldr r1, [r3, #0x3c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xb8 b _0804AA9E _0804AA52: ldr r0, [r3, #0x40] ldr r1, [r3, #0x44] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xc0 b _0804AA9E _0804AA6C: ldr r0, [r3, #0x48] ldr r1, [r3, #0x4c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xc8 b _0804AA9E _0804AA86: ldr r0, [r3, #0x50] ldr r1, [r3, #0x54] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xd0 _0804AA9E: ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] ldr r0, [r3, #0x60] ldr r1, [r3, #0x64] str r0, [r2, #0x20] str r1, [r2, #0x24] ldr r0, [r3, #0x10] ldr r1, [r3, #0x14] str r0, [r2, #0x10] str r1, [r2, #0x14] ldr r0, [r3, #0x70] ldr r1, [r3, #0x74] str r0, [r2, #0x28] str r1, [r2, #0x2c] ldrb r1, [r4, #4] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 ldr r1, _0804AAD4 @ =0x086B03BC _0804AAC8: adds r0, r0, r1 str r0, [r4, #0x44] _0804AACC: pop {r4} pop {r0} bx r0 .align 2, 0 _0804AAD4: .4byte 0x086B03BC thumb_func_start sub_4AAD8 sub_4AAD8: @ 0x0804AAD8 push {r4, r5, lr} ldr r0, _0804AAF0 @ =0x020314E0 ldr r1, [r0] ldrb r4, [r1, #0x1d] cmp r4, #1 beq _0804AB08 cmp r4, #1 bgt _0804AAF4 cmp r4, #0 beq _0804AAFA b _0804ABB8 .align 2, 0 _0804AAF0: .4byte 0x020314E0 _0804AAF4: cmp r4, #2 beq _0804ABB0 b _0804ABB8 _0804AAFA: movs r0, #1 strb r0, [r1, #0x1d] ldr r0, _0804AB04 @ =gMain strb r4, [r0, #0xe] b _0804ABB8 .align 2, 0 _0804AB04: .4byte gMain _0804AB08: ldr r1, _0804AB3C @ =0x086B085C ldr r5, _0804AB40 @ =gMain ldrb r0, [r5, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrh r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0xf bne _0804AB24 strb r4, [r5, #0xe] _0804AB24: ldrb r0, [r5, #0xe] cmp r0, #0 beq _0804ABB8 ldrb r0, [r5, #4] cmp r0, #1 bhi _0804AB44 bl sub_1D4D0 movs r0, #0 bl sub_31BE8 b _0804AB60 .align 2, 0 _0804AB3C: .4byte 0x086B085C _0804AB40: .4byte gMain _0804AB44: cmp r0, #2 bne _0804AB4E bl sub_356A0 b _0804AB60 _0804AB4E: cmp r0, #4 bne _0804AB58 bl sub_3ADA0 b _0804AB60 _0804AB58: cmp r0, #5 bne _0804AB60 bl sub_3E5D0 _0804AB60: ldr r4, _0804AB98 @ =gMain ldrb r1, [r4, #0xf] movs r3, #2 adds r0, r3, #0 ands r0, r1 ldr r2, _0804AB9C @ =0x020314E0 cmp r0, #0 beq _0804AB84 ldr r1, _0804ABA0 @ =0x040000D4 ldr r0, [r2] ldr r5, _0804ABA4 @ =0x0000111A adds r0, r0, r5 str r0, [r1] ldr r0, _0804ABA8 @ =0x05000200 str r0, [r1, #4] ldr r0, _0804ABAC @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] _0804AB84: ldr r0, [r2] strb r3, [r0, #0x1d] ldrb r0, [r4, #0xe] cmp r0, #2 bne _0804ABB8 movs r0, #1 bl sub_4B408 b _0804ABB8 .align 2, 0 _0804AB98: .4byte gMain _0804AB9C: .4byte 0x020314E0 _0804ABA0: .4byte 0x040000D4 _0804ABA4: .4byte 0x0000111A _0804ABA8: .4byte 0x05000200 _0804ABAC: .4byte 0x80000100 _0804ABB0: ldr r1, _0804ABC4 @ =gMain ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0804ABB8: bl sub_11FC pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804ABC4: .4byte gMain thumb_func_start sub_4ABC8 sub_4ABC8: @ 0x0804ABC8 push {lr} bl sub_111C bl sub_1170 cmp r0, #0 beq _0804ABE2 bl sub_1198 ldr r1, _0804ABE8 @ =gMain ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0804ABE2: pop {r0} bx r0 .align 2, 0 _0804ABE8: .4byte gMain thumb_func_start sub_4ABEC sub_4ABEC: @ 0x0804ABEC push {r4, r5, lr} bl sub_4B280 ldr r5, _0804AC50 @ =0x020028D8 ldr r0, [r5, #0xc] bl _call_via_r0 ldr r4, _0804AC54 @ =gMain ldrh r1, [r4, #0xe] ldr r0, _0804AC58 @ =0x000002FF ands r0, r1 cmp r0, #0 bne _0804ACDE ldr r0, [r5, #0x14] bl _call_via_r0 ldr r0, [r5, #4] bl _call_via_r0 ldr r0, [r5, #0x1c] bl _call_via_r0 ldr r0, [r5, #0x24] bl _call_via_r0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0804AC60 ldr r0, _0804AC5C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 bne _0804ACD0 movs r4, #0 _0804AC30: ldr r0, _0804AC5C @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804AC50 @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AC30 b _0804ACD0 .align 2, 0 _0804AC50: .4byte 0x020028D8 _0804AC54: .4byte gMain _0804AC58: .4byte 0x000002FF _0804AC5C: .4byte 0x020314E0 _0804AC60: ldr r0, [r4, #0x50] adds r0, #1 str r0, [r4, #0x50] ldr r0, _0804ACA4 @ =0x020314E0 ldr r2, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r2, #0x1f] cmp r0, #0 beq _0804ACAC cmp r0, #2 beq _0804ACD0 movs r4, #0 _0804AC82: ldr r0, _0804ACA4 @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804ACA8 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AC82 b _0804ACD0 .align 2, 0 _0804ACA4: .4byte 0x020314E0 _0804ACA8: .4byte 0x020028D8 _0804ACAC: movs r4, #0 _0804ACAE: ldr r0, _0804ACE8 @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804ACAE _0804ACD0: ldr r4, _0804ACEC @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804ACDE: bl sub_47030 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804ACE8: .4byte 0x020314E0 _0804ACEC: .4byte 0x020028D8 thumb_func_start sub_4ACF0 sub_4ACF0: @ 0x0804ACF0 push {r4, r5, r6, r7, lr} bl sub_4B334 ldr r5, _0804AD54 @ =0x020028D8 ldr r0, [r5, #0xc] bl _call_via_r0 ldr r4, _0804AD58 @ =gMain ldrb r1, [r4, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0804ADDE ldr r0, [r5, #0x14] bl _call_via_r0 ldr r0, [r5, #4] bl _call_via_r0 ldr r0, [r5, #0x1c] bl _call_via_r0 ldr r0, [r5, #0x24] bl _call_via_r0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0804AD60 ldr r0, _0804AD5C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 bne _0804ADD0 movs r4, #0 _0804AD34: ldr r0, _0804AD5C @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804AD54 @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AD34 b _0804ADD0 .align 2, 0 _0804AD54: .4byte 0x020028D8 _0804AD58: .4byte gMain _0804AD5C: .4byte 0x020314E0 _0804AD60: ldr r0, [r4, #0x50] adds r0, #1 str r0, [r4, #0x50] ldr r0, _0804ADA4 @ =0x020314E0 ldr r2, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r2, #0x1f] cmp r0, #0 beq _0804ADAC cmp r0, #2 beq _0804ADD0 movs r4, #0 _0804AD82: ldr r0, _0804ADA4 @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804ADA8 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AD82 b _0804ADD0 .align 2, 0 _0804ADA4: .4byte 0x020314E0 _0804ADA8: .4byte 0x020028D8 _0804ADAC: movs r4, #0 _0804ADAE: ldr r0, _0804AE1C @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804ADAE _0804ADD0: ldr r4, _0804AE20 @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804ADDE: bl sub_47030 ldr r0, _0804AE24 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #4 cmp r0, #0 beq _0804AE38 movs r4, #0 ldr r7, _0804AE28 @ =0x03006280 ldr r0, _0804AE2C @ =0xFFFFF980 adds r6, r7, r0 ldr r5, _0804AE30 @ =0x0000034A ldr r1, _0804AE34 @ =0xFFFFC156 adds r3, r1, #0 _0804ADFE: lsls r0, r4, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r6 adds r2, r0, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804ADFE b _0804AE5C .align 2, 0 _0804AE1C: .4byte 0x020314E0 _0804AE20: .4byte 0x020028D8 _0804AE24: .4byte gMain _0804AE28: .4byte 0x03006280 _0804AE2C: .4byte 0xFFFFF980 _0804AE30: .4byte 0x0000034A _0804AE34: .4byte 0xFFFFC156 _0804AE38: movs r4, #0 ldr r7, _0804AE70 @ =0x03006280 ldr r0, _0804AE74 @ =0xFFFFF980 adds r5, r7, r0 ldr r3, _0804AE78 @ =0x0000034A ldr r2, _0804AE7C @ =0x000001FF _0804AE44: lsls r1, r4, #0x10 asrs r1, r1, #0x10 adds r0, r1, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _0804AE44 _0804AE5C: ldr r1, _0804AE80 @ =0x040000D4 str r7, [r1] ldr r0, _0804AE84 @ =0x06002680 str r0, [r1, #4] ldr r0, _0804AE88 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804AE70: .4byte 0x03006280 _0804AE74: .4byte 0xFFFFF980 _0804AE78: .4byte 0x0000034A _0804AE7C: .4byte 0x000001FF _0804AE80: .4byte 0x040000D4 _0804AE84: .4byte 0x06002680 _0804AE88: .4byte 0x80000020 thumb_func_start sub_4AE8C sub_4AE8C: @ 0x0804AE8C push {r4, r5, r6, lr} bl sub_4B280 ldr r6, _0804AF0C @ =0x020028D8 ldr r0, [r6, #0xc] bl _call_via_r0 ldr r5, _0804AF10 @ =gMain ldrb r1, [r5, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804AEA8 b _0804AFEA _0804AEA8: ldr r0, [r6, #4] bl _call_via_r0 ldr r0, [r6, #0x14] bl _call_via_r0 ldr r0, [r6, #0x1c] bl _call_via_r0 ldr r0, [r6, #0x24] bl _call_via_r0 ldrb r4, [r5, #0xf] movs r0, #0x41 rsbs r0, r0, #0 ands r4, r0 cmp r4, #0 beq _0804AF20 ldr r0, _0804AF14 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 beq _0804AED8 b _0804AFDC _0804AED8: movs r4, #0 _0804AEDA: ldr r0, _0804AF14 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804AF18 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804AF1C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804AF0C @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AEDA b _0804AFDC .align 2, 0 _0804AF0C: .4byte 0x020028D8 _0804AF10: .4byte gMain _0804AF14: .4byte 0x020314E0 _0804AF18: .4byte 0x0000132C _0804AF1C: .4byte 0x00001334 _0804AF20: ldr r0, [r5, #0x50] adds r0, #1 str r0, [r5, #0x50] ldr r0, _0804AF58 @ =0x020314E0 ldr r3, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r3, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r3, #0x1f] cmp r0, #0 beq _0804AFA4 cmp r0, #2 bne _0804AF60 adds r0, r3, #0 adds r0, #0x66 movs r2, #0 strh r4, [r0] ldr r4, _0804AF5C @ =0x0000132C adds r1, r3, r4 adds r4, #8 adds r0, r3, r4 str r0, [r1] strb r2, [r3, #0x1e] b _0804AFDC .align 2, 0 _0804AF58: .4byte 0x020314E0 _0804AF5C: .4byte 0x0000132C _0804AF60: movs r4, #0 _0804AF62: ldr r0, _0804AF94 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804AF98 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804AF9C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804AFA0 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AF62 b _0804AFDC .align 2, 0 _0804AF94: .4byte 0x020314E0 _0804AF98: .4byte 0x0000132C _0804AF9C: .4byte 0x00001334 _0804AFA0: .4byte 0x020028D8 _0804AFA4: movs r4, #0 adds r5, r6, #0 _0804AFA8: ldr r0, _0804AFF0 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804AFF4 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804AFF8 @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AFA8 _0804AFDC: ldr r4, _0804AFFC @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804AFEA: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804AFF0: .4byte 0x020314E0 _0804AFF4: .4byte 0x0000132C _0804AFF8: .4byte 0x00001334 _0804AFFC: .4byte 0x020028D8 thumb_func_start sub_4B000 sub_4B000: @ 0x0804B000 push {r4, r5, r6, r7, lr} bl sub_4B334 ldr r5, _0804B07C @ =gMain ldrb r1, [r5, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804B014 b _0804B15A _0804B014: ldr r6, _0804B080 @ =0x020028D8 ldr r0, [r6, #4] bl _call_via_r0 ldr r0, [r6, #0x14] bl _call_via_r0 ldr r0, [r6, #0x1c] bl _call_via_r0 ldr r0, [r6, #0x24] bl _call_via_r0 ldrb r4, [r5, #0xf] movs r0, #0x41 rsbs r0, r0, #0 ands r4, r0 cmp r4, #0 beq _0804B090 ldr r0, _0804B084 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 beq _0804B046 b _0804B14C _0804B046: movs r4, #0 _0804B048: ldr r0, _0804B084 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804B088 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804B08C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804B080 @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804B048 b _0804B14C .align 2, 0 _0804B07C: .4byte gMain _0804B080: .4byte 0x020028D8 _0804B084: .4byte 0x020314E0 _0804B088: .4byte 0x0000132C _0804B08C: .4byte 0x00001334 _0804B090: ldr r0, [r5, #0x50] adds r0, #1 str r0, [r5, #0x50] ldr r0, _0804B0C8 @ =0x020314E0 ldr r3, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r3, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r3, #0x1f] cmp r0, #0 beq _0804B114 cmp r0, #2 bne _0804B0D0 adds r0, r3, #0 adds r0, #0x66 movs r2, #0 strh r4, [r0] ldr r4, _0804B0CC @ =0x0000132C adds r1, r3, r4 adds r4, #8 adds r0, r3, r4 str r0, [r1] strb r2, [r3, #0x1e] b _0804B14C .align 2, 0 _0804B0C8: .4byte 0x020314E0 _0804B0CC: .4byte 0x0000132C _0804B0D0: movs r4, #0 _0804B0D2: ldr r0, _0804B104 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804B108 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804B10C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804B110 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804B0D2 b _0804B14C .align 2, 0 _0804B104: .4byte 0x020314E0 _0804B108: .4byte 0x0000132C _0804B10C: .4byte 0x00001334 _0804B110: .4byte 0x020028D8 _0804B114: movs r4, #0 adds r5, r6, #0 _0804B118: ldr r0, _0804B194 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804B198 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804B19C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804B118 _0804B14C: ldr r4, _0804B1A0 @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804B15A: ldr r0, _0804B1A4 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #4 cmp r0, #0 beq _0804B1B8 movs r4, #0 ldr r7, _0804B1A8 @ =0x03006240 ldr r0, _0804B1AC @ =0xFFFFF9C0 adds r6, r7, r0 ldr r5, _0804B1B0 @ =0x0000032B ldr r1, _0804B1B4 @ =0xFFFFC156 adds r3, r1, #0 _0804B176: lsls r0, r4, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r6 adds r2, r0, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0804B176 b _0804B1DC .align 2, 0 _0804B194: .4byte 0x020314E0 _0804B198: .4byte 0x0000132C _0804B19C: .4byte 0x00001334 _0804B1A0: .4byte 0x020028D8 _0804B1A4: .4byte gMain _0804B1A8: .4byte 0x03006240 _0804B1AC: .4byte 0xFFFFF9C0 _0804B1B0: .4byte 0x0000032B _0804B1B4: .4byte 0xFFFFC156 _0804B1B8: movs r4, #0 ldr r7, _0804B1F0 @ =0x03006240 ldr r3, _0804B1F4 @ =0xFFFFF9C0 adds r5, r7, r3 ldr r3, _0804B1F8 @ =0x0000032B ldr r2, _0804B1FC @ =0x000001FF _0804B1C4: lsls r1, r4, #0x10 asrs r1, r1, #0x10 adds r0, r1, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #8 ble _0804B1C4 _0804B1DC: ldr r1, _0804B200 @ =0x040000D4 str r7, [r1] ldr r0, _0804B204 @ =0x06002640 str r0, [r1, #4] ldr r0, _0804B208 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804B1F0: .4byte 0x03006240 _0804B1F4: .4byte 0xFFFFF9C0 _0804B1F8: .4byte 0x0000032B _0804B1FC: .4byte 0x000001FF _0804B200: .4byte 0x040000D4 _0804B204: .4byte 0x06002640 _0804B208: .4byte 0x80000020 thumb_func_start sub_4B20C sub_4B20C: @ 0x0804B20C push {r4, lr} ldr r4, _0804B250 @ =gMain adds r1, r4, #0 adds r1, #0x36 movs r0, #0 strb r0, [r1] bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r0, _0804B254 @ =0x020314E0 ldr r1, [r0] ldr r0, [r1, #0x44] str r0, [r4, #0x58] ldr r0, [r1, #0x48] str r0, [r4, #0x5c] ldrb r0, [r4, #0xe] cmp r0, #2 bne _0804B23A bl sub_4B654 _0804B23A: ldrb r0, [r4, #0xe] cmp r0, #0 bne _0804B262 ldrb r0, [r4, #4] cmp r0, #1 bls _0804B258 movs r0, #0xb bl sub_23C b _0804B276 .align 2, 0 _0804B250: .4byte gMain _0804B254: .4byte 0x020314E0 _0804B258: ldr r0, [r4, #8] ldr r1, _0804B26C @ =0x00FFFF00 ands r0, r1 cmp r0, #0 beq _0804B270 _0804B262: movs r0, #0 bl sub_23C b _0804B276 .align 2, 0 _0804B26C: .4byte 0x00FFFF00 _0804B270: movs r0, #8 bl sub_23C _0804B276: pop {r4} pop {r0} bx r0 thumb_func_start nullsub_19 nullsub_19: @ 0x0804B27C bx lr thumb_func_start sub_4B280 sub_4B280: @ 0x0804B280 push {r4, r5, lr} movs r3, #0 ldr r4, _0804B2F8 @ =0x020314E0 ldr r0, _0804B2FC @ =gMain mov ip, r0 adds r2, r4, #0 movs r1, #0 _0804B28E: ldr r0, [r2] adds r0, #4 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r0, #9 adds r0, r0, r3 strb r1, [r0] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B28E mov r1, ip ldrb r0, [r1, #0xf] cmp r0, #0 bne _0804B32E movs r3, #0 movs r5, #1 _0804B2B4: lsls r2, r3, #2 mov r1, ip adds r1, #0x60 adds r1, r2, r1 mov r0, ip adds r0, #0x62 adds r2, r2, r0 ldrh r1, [r1] ldrh r0, [r2] orrs r1, r0 ldr r2, _0804B300 @ =0x000003FF adds r0, r2, #0 ands r1, r0 mov r2, ip ldrh r0, [r2, #0x1c] ands r0, r1 cmp r1, r0 bne _0804B304 ldr r1, [r4] adds r0, r1, #0 adds r0, #0xe adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0 bne _0804B2EC adds r0, r1, #4 adds r0, r0, r3 strb r5, [r0] _0804B2EC: ldr r0, [r4] adds r0, #0xe adds r0, r0, r3 strb r5, [r0] b _0804B324 .align 2, 0 _0804B2F8: .4byte 0x020314E0 _0804B2FC: .4byte gMain _0804B300: .4byte 0x000003FF _0804B304: ldr r1, [r4] adds r0, r1, #0 adds r0, #0xe adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0 beq _0804B31A adds r0, r1, #0 adds r0, #9 adds r0, r0, r3 strb r5, [r0] _0804B31A: ldr r0, [r4] adds r0, #0xe adds r0, r0, r3 movs r1, #0 strb r1, [r0] _0804B324: adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B2B4 _0804B32E: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_4B334 sub_4B334: @ 0x0804B334 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r3, #0 ldr r0, _0804B3F4 @ =0x020314E0 mov r8, r0 ldr r1, _0804B3F8 @ =gMain mov sb, r1 mov r2, r8 movs r1, #0 _0804B34A: ldr r0, [r2] adds r0, #4 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r0, #9 adds r0, r0, r3 strb r1, [r0] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B34A mov r1, sb ldrb r0, [r1, #0xf] cmp r0, #0 bne _0804B3E6 ldr r0, _0804B3FC @ =0x02031510 ldr r2, [r0] ldr r1, _0804B400 @ =0x00000E0F mov ip, r0 cmp r2, r1 bhi _0804B3D6 movs r3, #0 ldr r7, _0804B3F4 @ =0x020314E0 ldr r6, _0804B404 @ =0x02031520 mov r5, ip movs r4, #1 _0804B382: ldr r2, [r7] adds r2, #4 adds r2, r2, r3 ldr r0, [r5] ldr r1, [r6, #0x10] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0] asrs r0, r3 ands r0, r4 strb r0, [r2] ldr r2, [r7] adds r2, #9 adds r2, r2, r3 ldr r0, [r5] ldr r1, [r6, #0x10] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #1] asrs r0, r3 ands r0, r4 strb r0, [r2] ldr r2, [r7] adds r2, #0xe adds r2, r2, r3 ldr r0, [r5] ldr r1, [r6, #0x10] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #2] asrs r0, r3 ands r0, r4 strb r0, [r2] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B382 mov r1, ip ldr r0, [r1] adds r0, #1 str r0, [r1] _0804B3D6: mov r1, r8 ldr r0, [r1] ldrb r0, [r0, #5] cmp r0, #0 beq _0804B3E6 movs r0, #1 mov r1, sb strh r0, [r1, #0x18] _0804B3E6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804B3F4: .4byte 0x020314E0 _0804B3F8: .4byte gMain _0804B3FC: .4byte 0x02031510 _0804B400: .4byte 0x00000E0F _0804B404: .4byte 0x02031520 thumb_func_start sub_4B408 sub_4B408: @ 0x0804B408 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r2, _0804B430 @ =0x02032EE0 ldr r0, [r2, #4] cmp r0, #0 blt _0804B43C ldr r0, _0804B434 @ =0x020314E0 ldr r0, [r0] ldr r1, _0804B438 @ =0x00000F4C adds r0, r0, r1 ldr r1, [r2] str r1, [r0] adds r0, r2, #0 bl m4aMPlayStop b _0804B448 .align 2, 0 _0804B430: .4byte 0x02032EE0 _0804B434: .4byte 0x020314E0 _0804B438: .4byte 0x00000F4C _0804B43C: ldr r0, _0804B5EC @ =0x020314E0 ldr r0, [r0] ldr r2, _0804B5F0 @ =0x00000F4C adds r0, r0, r2 movs r1, #0 str r1, [r0] _0804B448: movs r3, #0 ldr r6, _0804B5EC @ =0x020314E0 ldr r0, _0804B5F4 @ =gMain mov ip, r0 lsls r4, r4, #0x10 mov r8, r4 mov r5, ip adds r7, r6, #0 _0804B458: ldr r4, [r7] lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 ldrb r3, [r5, #6] movs r0, #0xc8 muls r0, r3, r0 adds r2, r2, r0 ldr r3, _0804B5F8 @ =0x00000F68 adds r4, r4, r3 adds r4, r4, r2 movs r0, #0xb8 muls r0, r1, r0 adds r0, r0, r5 movs r2, #0xbe lsls r2, r2, #2 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4] adds r1, #1 lsls r1, r1, #0x10 lsrs r3, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x63 ble _0804B458 ldr r2, _0804B5FC @ =0x040000D4 ldr r0, _0804B600 @ =0x05000200 str r0, [r2] mov r3, ip ldrb r1, [r3, #6] lsls r1, r1, #9 ldr r0, _0804B604 @ =0x0000074C adds r1, r1, r0 ldr r0, [r6] adds r0, r0, r1 str r0, [r2, #4] ldr r3, _0804B608 @ =0x80000100 str r3, [r2, #8] ldr r0, [r2, #8] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2] mov r0, ip ldrb r1, [r0, #6] lsls r1, r1, #9 ldr r0, _0804B60C @ =0x00000B4C adds r1, r1, r0 ldr r0, [r6] adds r0, r0, r1 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] mov r1, r8 cmp r1, #0 bne _0804B4C8 b _0804B5E0 _0804B4C8: ldr r1, [r6] ldr r3, _0804B610 @ =0x00000F58 adds r2, r1, r3 movs r0, #0xba lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] ldr r0, _0804B614 @ =0x00000F5C adds r2, r1, r0 movs r0, #0xbb lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] adds r3, #8 adds r2, r1, r3 movs r0, #0xbc lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] ldr r0, _0804B618 @ =0x00000F64 adds r2, r1, r0 movs r0, #0xbd lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] mov r2, ip ldrb r0, [r2, #4] ldr r3, _0804B61C @ =0x000010FD adds r1, r1, r3 strb r0, [r1] ldr r0, [r6] ldrb r1, [r2, #5] ldr r2, _0804B620 @ =0x000010FE adds r0, r0, r2 strb r1, [r0] ldr r0, [r6] mov r3, ip ldrb r1, [r3, #6] adds r2, #1 adds r0, r0, r2 strb r1, [r0] ldr r0, [r6] ldrb r1, [r3, #0xf] ldr r3, _0804B624 @ =0x00001101 adds r0, r0, r3 strb r1, [r0] ldr r0, [r6] mov r2, ip ldrb r1, [r2, #0x10] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r6] ldrb r1, [r2, #0x11] ldr r2, _0804B628 @ =0x00001103 adds r0, r0, r2 strb r1, [r0] ldr r1, [r6] mov r3, ip ldrh r2, [r3, #0x12] movs r3, #0x99 lsls r3, r3, #5 adds r0, r1, r3 strh r2, [r0] mov r0, ip ldrh r2, [r0, #0x14] adds r3, #2 adds r0, r1, r3 strh r2, [r0] mov r0, ip ldrh r2, [r0, #0x28] adds r3, #2 adds r0, r1, r3 strh r2, [r0] mov r0, ip ldrh r2, [r0, #0x2a] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldr r2, _0804B62C @ =0x00001106 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B630 @ =0x00001110 adds r0, r1, r3 ldrh r3, [r0] strh r2, [r0] ldr r2, _0804B634 @ =0x00001108 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B638 @ =0x00001112 adds r0, r1, r3 ldrh r3, [r0] strh r2, [r0] ldr r2, _0804B63C @ =0x0000110A adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B640 @ =0x00001114 adds r0, r1, r3 ldrh r3, [r0] strh r2, [r0] ldr r2, _0804B644 @ =0x0000110C adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B648 @ =0x00001116 adds r0, r1, r3 strh r2, [r0] ldr r2, _0804B64C @ =0x0000110E adds r0, r1, r2 ldrh r2, [r0] adds r3, #2 adds r0, r1, r3 strh r2, [r0] movs r0, #0xa1 lsls r0, r0, #1 add r0, ip ldrb r0, [r0] adds r1, #0x31 strb r0, [r1] movs r3, #0 ldr r5, _0804B650 @ =0x000010F8 mov r4, ip adds r4, #7 _0804B5C4: ldr r2, [r6] lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r2, r2, r5 adds r2, r2, r0 adds r1, r0, r4 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0804B5C4 _0804B5E0: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804B5EC: .4byte 0x020314E0 _0804B5F0: .4byte 0x00000F4C _0804B5F4: .4byte gMain _0804B5F8: .4byte 0x00000F68 _0804B5FC: .4byte 0x040000D4 _0804B600: .4byte 0x05000200 _0804B604: .4byte 0x0000074C _0804B608: .4byte 0x80000100 _0804B60C: .4byte 0x00000B4C _0804B610: .4byte 0x00000F58 _0804B614: .4byte 0x00000F5C _0804B618: .4byte 0x00000F64 _0804B61C: .4byte 0x000010FD _0804B620: .4byte 0x000010FE _0804B624: .4byte 0x00001101 _0804B628: .4byte 0x00001103 _0804B62C: .4byte 0x00001106 _0804B630: .4byte 0x00001110 _0804B634: .4byte 0x00001108 _0804B638: .4byte 0x00001112 _0804B63C: .4byte 0x0000110A _0804B640: .4byte 0x00001114 _0804B644: .4byte 0x0000110C _0804B648: .4byte 0x00001116 _0804B64C: .4byte 0x0000110E _0804B650: .4byte 0x000010F8 thumb_func_start sub_4B654 sub_4B654: @ 0x0804B654 push {lr} ldr r0, _0804B66C @ =0x020314E0 ldr r0, [r0] movs r1, #1 str r1, [r0] ldr r1, _0804B670 @ =0x0E000544 ldr r2, _0804B674 @ =0x00001410 bl sub_55654 pop {r0} bx r0 .align 2, 0 _0804B66C: .4byte 0x020314E0 _0804B670: .4byte 0x0E000544 _0804B674: .4byte 0x00001410 thumb_func_start sub_4B678 sub_4B678: @ 0x0804B678 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 cmp r0, #1 bne _0804B6B0 ldr r3, _0804B6A0 @ =0x02032FF0 ldr r0, _0804B6A4 @ =0x0E000544 ldr r1, _0804B6A8 @ =0x020314E0 ldr r1, [r1] ldr r2, _0804B6AC @ =0x00001410 ldr r3, [r3] bl _call_via_r3 b _0804B746 .align 2, 0 _0804B6A0: .4byte 0x02032FF0 _0804B6A4: .4byte 0x0E000544 _0804B6A8: .4byte 0x020314E0 _0804B6AC: .4byte 0x00001410 _0804B6B0: mov r0, r8 cmp r0, #2 bne _0804B746 ldr r1, _0804B87C @ =0x040000D4 ldr r0, _0804B880 @ =0x02031520 ldr r0, [r0, #0xc] str r0, [r1] ldr r4, _0804B884 @ =0x020314E0 ldr r3, [r4] str r3, [r1, #4] ldr r0, _0804B888 @ =0x80000A08 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0804B88C @ =0x0000132C adds r0, r3, r1 ldr r2, _0804B890 @ =0x00001334 adds r1, r3, r2 str r1, [r0] ldr r5, _0804B894 @ =0x00001330 adds r0, r3, r5 str r1, [r0] ldr r0, _0804B898 @ =gMain ldrh r0, [r0, #0x30] movs r1, #3 ands r0, r1 cmp r0, #1 bne _0804B746 ldr r1, _0804B89C @ =0x00000614 adds r0, r3, r1 movs r2, #0 movs r1, #0 strh r1, [r0] movs r5, #0x82 lsls r5, r5, #2 adds r0, r3, r5 strh r1, [r0] adds r5, #2 adds r0, r3, r5 strb r2, [r0] ldr r3, [r4] movs r2, #0xe3 lsls r2, r2, #1 adds r0, r3, r2 strh r1, [r0] movs r4, #0xe4 lsls r4, r4, #1 adds r0, r3, r4 strh r1, [r0] subs r5, #0x3e adds r0, r3, r5 strh r1, [r0] adds r2, #4 adds r0, r3, r2 strh r1, [r0] adds r4, #0xc adds r0, r3, r4 strh r1, [r0] adds r5, #0xa adds r2, r3, r5 ldr r0, _0804B8A0 @ =0x0000FFFC strh r0, [r2] movs r2, #0xec lsls r2, r2, #1 adds r0, r3, r2 subs r2, #0xd8 strh r2, [r0] adds r4, #6 adds r0, r3, r4 strh r2, [r0] subs r5, #8 adds r0, r3, r5 strh r1, [r0] adds r2, #0xd0 adds r0, r3, r2 strh r1, [r0] _0804B746: mov r3, r8 cmp r3, #0 bne _0804B74E b _0804B8CC _0804B74E: ldr r4, _0804B898 @ =gMain ldr r3, _0804B884 @ =0x020314E0 ldr r1, [r3] ldr r5, _0804B8A4 @ =0x000010FD adds r0, r1, r5 ldrb r0, [r0] strb r0, [r4, #4] ldr r2, _0804B8A8 @ =0x000010FE adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, #5] adds r5, #2 adds r0, r1, r5 ldrb r0, [r0] strb r0, [r4, #6] adds r2, #3 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, #0xf] adds r5, #3 adds r0, r1, r5 ldrb r0, [r0] strb r0, [r4, #0x10] adds r2, #2 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, #0x11] movs r5, #0x99 lsls r5, r5, #5 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r4, #0x12] ldr r2, _0804B8AC @ =0x00001322 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r4, #0x14] adds r5, #4 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r4, #0x28] adds r2, #4 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r4, #0x2a] ldr r5, _0804B8B0 @ =0x00001110 adds r0, r1, r5 ldrh r0, [r0] ldrh r2, [r4, #0x38] strh r0, [r4, #0x38] ldr r2, _0804B8B4 @ =0x00001112 adds r0, r1, r2 ldrh r0, [r0] ldrh r2, [r4, #0x3a] strh r0, [r4, #0x3a] adds r5, #4 adds r0, r1, r5 ldrh r0, [r0] ldrh r2, [r4, #0x3c] strh r0, [r4, #0x3c] ldr r2, _0804B8B8 @ =0x00001116 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r4, #0x2c] adds r5, #4 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r4, #0x26] movs r0, #0xba lsls r0, r0, #2 adds r2, r4, r0 ldr r5, _0804B8BC @ =0x00000F58 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] movs r0, #0xbb lsls r0, r0, #2 adds r2, r4, r0 adds r5, #4 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] movs r0, #0xbc lsls r0, r0, #2 adds r2, r4, r0 adds r5, #4 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] movs r0, #0xbd lsls r0, r0, #2 adds r2, r4, r0 adds r5, #4 adds r1, r1, r5 ldr r0, [r1] str r0, [r2] movs r5, #0 mov sl, r3 adds r7, r4, #0 adds r6, r7, #7 mov r4, sl ldr r3, _0804B8C0 @ =0x000010F8 _0804B818: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 ldr r0, [r4] adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #4 ble _0804B818 mov r1, sl ldr r0, [r1] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strb r1, [r0] mov r3, r8 cmp r3, #1 bne _0804B8DA ldrb r0, [r7, #4] cmp r0, #1 bhi _0804B8DA mov r4, sl ldr r3, [r4] adds r2, r3, #0 adds r2, #0x4e ldr r5, _0804B8C4 @ =0x00000121 adds r0, r3, r5 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804B8C8 @ =0x000005FC adds r0, r3, r2 ldrh r0, [r0] adds r2, r3, #0 adds r2, #0xe6 adds r0, r0, r1 ldrh r2, [r2] adds r0, r0, r2 adds r1, r3, #0 adds r1, #0x68 strh r0, [r1] b _0804B8DA .align 2, 0 _0804B87C: .4byte 0x040000D4 _0804B880: .4byte 0x02031520 _0804B884: .4byte 0x020314E0 _0804B888: .4byte 0x80000A08 _0804B88C: .4byte 0x0000132C _0804B890: .4byte 0x00001334 _0804B894: .4byte 0x00001330 _0804B898: .4byte gMain _0804B89C: .4byte 0x00000614 _0804B8A0: .4byte 0x0000FFFC _0804B8A4: .4byte 0x000010FD _0804B8A8: .4byte 0x000010FE _0804B8AC: .4byte 0x00001322 _0804B8B0: .4byte 0x00001110 _0804B8B4: .4byte 0x00001112 _0804B8B8: .4byte 0x00001116 _0804B8BC: .4byte 0x00000F58 _0804B8C0: .4byte 0x000010F8 _0804B8C4: .4byte 0x00000121 _0804B8C8: .4byte 0x000005FC _0804B8CC: ldr r0, _0804B958 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0x6a ldrh r1, [r1] adds r0, #0x68 strh r1, [r0] _0804B8DA: ldr r5, _0804B958 @ =0x020314E0 ldr r0, [r5] movs r1, #0 strb r1, [r0, #0x1d] ldr r4, _0804B95C @ =gMain strb r1, [r4, #0xd] bl sub_467F4 ldrb r0, [r4, #4] cmp r0, #0 bne _0804B902 ldr r0, [r5] ldr r3, _0804B960 @ =0x0000029E adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0 beq _0804B902 movs r0, #1 bl sub_46FD4 _0804B902: ldr r0, _0804B95C @ =gMain ldrb r1, [r0, #4] ldr r4, _0804B958 @ =0x020314E0 mov sl, r4 adds r7, r0, #0 ldr r5, _0804B964 @ =0x03005C00 mov sb, r5 cmp r1, #1 bhi _0804B9A0 movs r5, #0 ldr r6, _0804B968 @ =0x040000D4 _0804B918: mov r0, sl ldr r2, [r0] adds r2, #0x64 ldrh r1, [r2] lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r1, r0, r1 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 movs r3, #0 ldrsh r1, [r2, r3] adds r1, #0xa adds r0, r0, r1 movs r1, #0x16 bl __modsi3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1f bgt _0804B974 lsls r0, r0, #0xa ldr r1, _0804B96C @ =0x0200FBB0 adds r0, r0, r1 str r0, [r6] lsls r0, r2, #0x10 asrs r0, r0, #6 ldr r4, _0804B970 @ =0x06008000 adds r0, r0, r4 b _0804B988 .align 2, 0 _0804B958: .4byte 0x020314E0 _0804B95C: .4byte gMain _0804B960: .4byte 0x0000029E _0804B964: .4byte 0x03005C00 _0804B968: .4byte 0x040000D4 _0804B96C: .4byte 0x0200FBB0 _0804B970: .4byte 0x06008000 _0804B974: subs r0, #0x20 lsls r0, r0, #0x10 asrs r0, r0, #6 ldr r1, _0804BA38 @ =0x020030A0 adds r0, r0, r1 str r0, [r6] lsls r0, r2, #0x10 asrs r0, r0, #6 ldr r1, _0804BA3C @ =0x06008000 adds r0, r0, r1 _0804B988: str r0, [r6, #4] ldr r0, _0804BA40 @ =0x80000200 str r0, [r6, #8] ldr r0, [r6, #8] lsls r0, r5, #0x10 movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0804B918 _0804B9A0: movs r5, #0 ldr r4, _0804BA44 @ =0x03005C00 ldr r3, _0804BA48 @ =0x000001FF ldr r2, _0804BA4C @ =0x000007FF _0804B9A8: lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r4 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r2 ble _0804B9A8 ldr r1, _0804BA50 @ =0x040000D4 mov r3, sb str r3, [r1] ldr r0, _0804BA54 @ =0x06002000 str r0, [r1, #4] ldr r0, _0804BA58 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] movs r4, #0x2c ldrsh r0, [r7, r4] cmp r0, #0 beq _0804BABE mov r5, sl ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #6 bne _0804BA5C movs r2, #0 movs r3, #0xa6 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] cmp r2, r0 bgt _0804BAAE mov r6, sb movs r4, #0xc1 lsls r4, r4, #8 _0804B9F6: movs r5, #2 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _0804B9FC: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xb ble _0804B9FC movs r5, #0x80 lsls r5, r5, #9 adds r1, r2, r5 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 mov r3, sl ldr r0, [r3] movs r5, #0xa6 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r1, r0 ble _0804B9F6 b _0804BAAE .align 2, 0 _0804BA38: .4byte 0x020030A0 _0804BA3C: .4byte 0x06008000 _0804BA40: .4byte 0x80000200 _0804BA44: .4byte 0x03005C00 _0804BA48: .4byte 0x000001FF _0804BA4C: .4byte 0x000007FF _0804BA50: .4byte 0x040000D4 _0804BA54: .4byte 0x06002000 _0804BA58: .4byte 0x80000800 _0804BA5C: movs r2, #0 movs r3, #0xa6 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] cmp r2, r0 bgt _0804BAAE mov r6, sb movs r4, #0xc1 lsls r4, r4, #8 _0804BA70: movs r5, #1 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _0804BA76: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0804BA76 movs r5, #0x80 lsls r5, r5, #9 adds r1, r2, r5 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 mov r3, sl ldr r0, [r3] movs r5, #0xa6 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r1, r0 ble _0804BA70 _0804BAAE: ldr r1, _0804BB20 @ =0x040000D4 mov r0, sb str r0, [r1] ldr r0, _0804BB24 @ =0x06002000 str r0, [r1, #4] ldr r0, _0804BB28 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _0804BABE: ldr r1, _0804BB20 @ =0x040000D4 ldr r2, _0804BB2C @ =0x020314E0 ldr r4, _0804BB30 @ =gMain ldrb r0, [r4, #6] lsls r0, r0, #9 ldr r3, _0804BB34 @ =0x0000074C adds r0, r0, r3 ldr r2, [r2] adds r0, r2, r0 str r0, [r1] ldr r0, _0804BB38 @ =0x05000200 str r0, [r1, #4] ldr r3, _0804BB3C @ =0x80000100 str r3, [r1, #8] ldr r0, [r1, #8] ldrb r0, [r4, #6] lsls r0, r0, #9 ldr r5, _0804BB40 @ =0x00000B4C adds r0, r0, r5 adds r0, r2, r0 str r0, [r1] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, _0804BB44 @ =0x000005F6 adds r2, r2, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #5 ldr r2, _0804BB48 @ =0x08137E14 adds r0, r0, r2 str r0, [r1] ldr r0, _0804BB4C @ =0x05000220 str r0, [r1, #4] ldr r0, _0804BB50 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_4BC34 ldrb r0, [r4, #4] cmp r0, #7 bhi _0804BBC0 lsls r0, r0, #2 ldr r1, _0804BB54 @ =_0804BB58 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804BB20: .4byte 0x040000D4 _0804BB24: .4byte 0x06002000 _0804BB28: .4byte 0x80000400 _0804BB2C: .4byte 0x020314E0 _0804BB30: .4byte gMain _0804BB34: .4byte 0x0000074C _0804BB38: .4byte 0x05000200 _0804BB3C: .4byte 0x80000100 _0804BB40: .4byte 0x00000B4C _0804BB44: .4byte 0x000005F6 _0804BB48: .4byte 0x08137E14 _0804BB4C: .4byte 0x05000220 _0804BB50: .4byte 0x80000010 _0804BB54: .4byte _0804BB58 _0804BB58: @ jump table .4byte _0804BB78 @ case 0 .4byte _0804BB98 @ case 1 .4byte _0804BB9E @ case 2 .4byte _0804BBA4 @ case 3 .4byte _0804BBAA @ case 4 .4byte _0804BBB0 @ case 5 .4byte _0804BBB6 @ case 6 .4byte _0804BBBC @ case 7 _0804BB78: bl sub_50848 ldr r0, _0804BB90 @ =0x020314E0 ldr r0, [r0] ldr r3, _0804BB94 @ =0x000001A5 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_4E9F0 b _0804BBC0 .align 2, 0 _0804BB90: .4byte 0x020314E0 _0804BB94: .4byte 0x000001A5 _0804BB98: bl sub_50AD4 b _0804BBC0 _0804BB9E: bl sub_50D48 b _0804BBC0 _0804BBA4: bl sub_50DE0 b _0804BBC0 _0804BBAA: bl sub_50F04 b _0804BBC0 _0804BBB0: bl sub_50FD4 b _0804BBC0 _0804BBB6: bl sub_51090 b _0804BBC0 _0804BBBC: bl sub_51150 _0804BBC0: movs r5, #0 ldr r4, _0804BC24 @ =0x020314E0 mov sl, r4 ldr r7, _0804BC28 @ =gMain movs r0, #0xb8 mov ip, r0 _0804BBCC: lsls r1, r5, #0x10 asrs r1, r1, #0x10 mov r4, ip muls r4, r1, r4 adds r4, r4, r7 mov r2, sl ldr r6, [r2] lsls r2, r1, #1 ldrb r3, [r7, #6] movs r0, #0xc8 muls r0, r3, r0 adds r2, r2, r0 ldr r3, _0804BC2C @ =0x00000F68 adds r0, r6, r3 adds r0, r0, r2 ldrh r0, [r0] movs r5, #0xbe lsls r5, r5, #2 adds r4, r4, r5 strh r0, [r4] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x63 ble _0804BBCC mov r0, r8 cmp r0, #1 bne _0804BC14 movs r0, #0 str r0, [r6] ldr r1, _0804BC30 @ =0x0E000544 adds r0, r6, #0 movs r2, #4 bl sub_55654 _0804BC14: 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 _0804BC24: .4byte 0x020314E0 _0804BC28: .4byte gMain _0804BC2C: .4byte 0x00000F68 _0804BC30: .4byte 0x0E000544 thumb_func_start sub_4BC34 sub_4BC34: @ 0x0804BC34 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0804BC50 @ =gMain ldrb r0, [r0, #4] cmp r0, #7 bhi _0804BCC6 lsls r0, r0, #2 ldr r1, _0804BC54 @ =_0804BC58 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804BC50: .4byte gMain _0804BC54: .4byte _0804BC58 _0804BC58: @ jump table .4byte _0804BC78 @ case 0 .4byte _0804BC82 @ case 1 .4byte _0804BC8C @ case 2 .4byte _0804BC96 @ case 3 .4byte _0804BCA0 @ case 4 .4byte _0804BCAA @ case 5 .4byte _0804BCB4 @ case 6 .4byte _0804BCBE @ case 7 _0804BC78: bl sub_4C290 bl sub_4C808 b _0804BCC6 _0804BC82: bl sub_4C290 bl sub_4CA18 b _0804BCC6 _0804BC8C: bl nullsub_18 bl sub_4CAE8 b _0804BCC6 _0804BC96: bl nullsub_18 bl sub_4CB0C b _0804BCC6 _0804BCA0: bl nullsub_18 bl sub_4CB30 b _0804BCC6 _0804BCAA: bl nullsub_18 bl sub_4CBB4 b _0804BCC6 _0804BCB4: bl nullsub_18 bl sub_4CC58 b _0804BCC6 _0804BCBE: bl nullsub_18 bl sub_4CD60 _0804BCC6: ldr r0, _0804BCE4 @ =0x020314E0 ldr r1, [r0] adds r1, #0xe4 ldrb r1, [r1] subs r1, #1 adds r3, r0, #0 cmp r1, #0x15 bls _0804BCD8 b _0804C274 _0804BCD8: lsls r0, r1, #2 ldr r1, _0804BCE8 @ =_0804BCEC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804BCE4: .4byte 0x020314E0 _0804BCE8: .4byte _0804BCEC _0804BCEC: @ jump table .4byte _0804BD44 @ case 0 .4byte _0804BDA4 @ case 1 .4byte _0804BDC4 @ case 2 .4byte _0804BDE4 @ case 3 .4byte _0804BE14 @ case 4 .4byte _0804BE34 @ case 5 .4byte _0804BE54 @ case 6 .4byte _0804BE74 @ case 7 .4byte _0804BE94 @ case 8 .4byte _0804BEB4 @ case 9 .4byte _0804BED4 @ case 10 .4byte _0804BEF4 @ case 11 .4byte _0804BFB0 @ case 12 .4byte _0804BF14 @ case 13 .4byte _0804C094 @ case 14 .4byte _0804C0C8 @ case 15 .4byte _0804C0E8 @ case 16 .4byte _0804C108 @ case 17 .4byte _0804C1A8 @ case 18 .4byte _0804C1C8 @ case 19 .4byte _0804C1E8 @ case 20 .4byte _0804C264 @ case 21 _0804BD44: ldr r1, [r3] movs r2, #0xf1 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0804BD84 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0804BD84 ldr r1, _0804BD74 @ =0x040000D4 ldr r0, _0804BD78 @ =0x08395A4C str r0, [r1] ldr r0, _0804BD7C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BD80 @ =0x80001200 b _0804C270 .align 2, 0 _0804BD74: .4byte 0x040000D4 _0804BD78: .4byte 0x08395A4C _0804BD7C: .4byte 0x06015800 _0804BD80: .4byte 0x80001200 _0804BD84: ldr r1, _0804BD94 @ =0x040000D4 ldr r0, _0804BD98 @ =0x08397E6C str r0, [r1] ldr r0, _0804BD9C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BDA0 @ =0x80001200 b _0804C270 .align 2, 0 _0804BD94: .4byte 0x040000D4 _0804BD98: .4byte 0x08397E6C _0804BD9C: .4byte 0x06015800 _0804BDA0: .4byte 0x80001200 _0804BDA4: ldr r1, _0804BDB4 @ =0x040000D4 ldr r0, _0804BDB8 @ =0x083A704C str r0, [r1] ldr r0, _0804BDBC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BDC0 @ =0x80000800 b _0804C270 .align 2, 0 _0804BDB4: .4byte 0x040000D4 _0804BDB8: .4byte 0x083A704C _0804BDBC: .4byte 0x06015800 _0804BDC0: .4byte 0x80000800 _0804BDC4: ldr r1, _0804BDD4 @ =0x040000D4 ldr r0, _0804BDD8 @ =0x0848FD8C str r0, [r1] ldr r0, _0804BDDC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BDE0 @ =0x80000650 b _0804C270 .align 2, 0 _0804BDD4: .4byte 0x040000D4 _0804BDD8: .4byte 0x0848FD8C _0804BDDC: .4byte 0x06015800 _0804BDE0: .4byte 0x80000650 _0804BDE4: ldr r1, _0804BE04 @ =0x040000D4 ldr r2, _0804BE08 @ =0x086ACEF8 ldr r0, [r3] adds r0, #0xf2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804BE0C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE10 @ =0x800012F0 b _0804C270 .align 2, 0 _0804BE04: .4byte 0x040000D4 _0804BE08: .4byte 0x086ACEF8 _0804BE0C: .4byte 0x06015800 _0804BE10: .4byte 0x800012F0 _0804BE14: ldr r1, _0804BE24 @ =0x040000D4 ldr r0, _0804BE28 @ =0x083A07CC str r0, [r1] ldr r0, _0804BE2C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE30 @ =0x80001000 b _0804C270 .align 2, 0 _0804BE24: .4byte 0x040000D4 _0804BE28: .4byte 0x083A07CC _0804BE2C: .4byte 0x06015800 _0804BE30: .4byte 0x80001000 _0804BE34: ldr r1, _0804BE44 @ =0x040000D4 ldr r0, _0804BE48 @ =0x083A29EC str r0, [r1] ldr r0, _0804BE4C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE50 @ =0x80000400 b _0804C270 .align 2, 0 _0804BE44: .4byte 0x040000D4 _0804BE48: .4byte 0x083A29EC _0804BE4C: .4byte 0x06015800 _0804BE50: .4byte 0x80000400 _0804BE54: ldr r1, _0804BE64 @ =0x040000D4 ldr r0, _0804BE68 @ =0x083A340C str r0, [r1] ldr r0, _0804BE6C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE70 @ =0x80001000 b _0804C270 .align 2, 0 _0804BE64: .4byte 0x040000D4 _0804BE68: .4byte 0x083A340C _0804BE6C: .4byte 0x06015800 _0804BE70: .4byte 0x80001000 _0804BE74: ldr r1, _0804BE84 @ =0x040000D4 ldr r0, _0804BE88 @ =0x083A562C str r0, [r1] ldr r0, _0804BE8C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE90 @ =0x80000C00 b _0804C270 .align 2, 0 _0804BE84: .4byte 0x040000D4 _0804BE88: .4byte 0x083A562C _0804BE8C: .4byte 0x06015800 _0804BE90: .4byte 0x80000C00 _0804BE94: ldr r1, _0804BEA4 @ =0x040000D4 ldr r0, _0804BEA8 @ =0x081428D4 str r0, [r1] ldr r0, _0804BEAC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BEB0 @ =0x80000E00 b _0804C270 .align 2, 0 _0804BEA4: .4byte 0x040000D4 _0804BEA8: .4byte 0x081428D4 _0804BEAC: .4byte 0x06015800 _0804BEB0: .4byte 0x80000E00 _0804BEB4: ldr r1, _0804BEC4 @ =0x040000D4 ldr r0, _0804BEC8 @ =0x0839C78C str r0, [r1] ldr r0, _0804BECC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BED0 @ =0x80000A00 b _0804C270 .align 2, 0 _0804BEC4: .4byte 0x040000D4 _0804BEC8: .4byte 0x0839C78C _0804BECC: .4byte 0x06015800 _0804BED0: .4byte 0x80000A00 _0804BED4: ldr r1, _0804BEE4 @ =0x040000D4 ldr r0, _0804BEE8 @ =0x0839DDAC str r0, [r1] ldr r0, _0804BEEC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BEF0 @ =0x80001400 b _0804C270 .align 2, 0 _0804BEE4: .4byte 0x040000D4 _0804BEE8: .4byte 0x0839DDAC _0804BEEC: .4byte 0x06015800 _0804BEF0: .4byte 0x80001400 _0804BEF4: ldr r1, _0804BF04 @ =0x040000D4 ldr r0, _0804BF08 @ =0x084FA20C str r0, [r1] ldr r0, _0804BF0C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BF10 @ =0x80000140 b _0804C270 .align 2, 0 _0804BF04: .4byte 0x040000D4 _0804BF08: .4byte 0x084FA20C _0804BF0C: .4byte 0x06015800 _0804BF10: .4byte 0x80000140 _0804BF14: movs r2, #0 ldr r7, _0804BF50 @ =0x084F61EC mov r8, r7 ldr r0, _0804BF54 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r1, r1, r0 mov sb, r1 ldr r3, _0804BF58 @ =0x086A3707 mov ip, r3 ldr r4, _0804BF5C @ =0x040000D4 ldr r6, _0804BF60 @ =0x06015800 ldr r5, _0804BF64 @ =0x80000020 _0804BF30: lsls r2, r2, #0x10 asrs r3, r2, #0x10 mov r7, sb ldrh r1, [r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r3, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _0804BF6C ldr r0, _0804BF68 @ =0x083FFD4C b _0804BF76 .align 2, 0 _0804BF50: .4byte 0x084F61EC _0804BF54: .4byte 0x020314E0 _0804BF58: .4byte 0x086A3707 _0804BF5C: .4byte 0x040000D4 _0804BF60: .4byte 0x06015800 _0804BF64: .4byte 0x80000020 _0804BF68: .4byte 0x083FFD4C _0804BF6C: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0804BFA0 @ =0x083FF04C adds r0, r0, r1 _0804BF76: str r0, [r4] lsls r0, r3, #6 adds r0, r0, r6 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804BF30 ldr r1, _0804BFA4 @ =0x040000D4 mov r2, r8 str r2, [r1] ldr r0, _0804BFA8 @ =0x06015C00 str r0, [r1, #4] ldr r0, _0804BFAC @ =0x800004A0 b _0804C270 .align 2, 0 _0804BFA0: .4byte 0x083FF04C _0804BFA4: .4byte 0x040000D4 _0804BFA8: .4byte 0x06015C00 _0804BFAC: .4byte 0x800004A0 _0804BFB0: movs r2, #0 ldr r0, _0804BFE8 @ =0x020314E0 ldr r0, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r3, r3, r0 mov r8, r3 ldr r7, _0804BFEC @ =0x086A3707 mov ip, r7 ldr r4, _0804BFF0 @ =0x040000D4 ldr r6, _0804BFF4 @ =0x06015800 ldr r5, _0804BFF8 @ =0x80000020 _0804BFC8: lsls r0, r2, #0x10 asrs r3, r0, #0x10 mov r0, r8 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r3, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _0804C000 ldr r0, _0804BFFC @ =0x083FFD4C b _0804C00A .align 2, 0 _0804BFE8: .4byte 0x020314E0 _0804BFEC: .4byte 0x086A3707 _0804BFF0: .4byte 0x040000D4 _0804BFF4: .4byte 0x06015800 _0804BFF8: .4byte 0x80000020 _0804BFFC: .4byte 0x083FFD4C _0804C000: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0804C04C @ =0x083FF04C adds r0, r0, r1 _0804C00A: str r0, [r4] lsls r0, r3, #6 adds r0, r0, r6 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] lsls r0, r2, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804BFC8 movs r2, #0 ldr r3, _0804C050 @ =0x086ACFE0 mov ip, r3 ldr r5, _0804C054 @ =0x040000D4 ldr r7, _0804C058 @ =0x06015800 ldr r6, _0804C05C @ =0x80000020 _0804C032: lsls r0, r2, #0x10 asrs r4, r0, #0x10 lsls r1, r4, #1 mov r2, ip adds r3, r1, r2 movs r2, #0 ldrsh r1, [r3, r2] adds r2, r0, #0 cmp r1, #0x20 bne _0804C064 ldr r0, _0804C060 @ =0x083FFD4C b _0804C070 .align 2, 0 _0804C04C: .4byte 0x083FF04C _0804C050: .4byte 0x086ACFE0 _0804C054: .4byte 0x040000D4 _0804C058: .4byte 0x06015800 _0804C05C: .4byte 0x80000020 _0804C060: .4byte 0x083FFD4C _0804C064: movs r1, #0 ldrsh r0, [r3, r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0804C090 @ =0x083FF04C adds r0, r0, r1 _0804C070: str r0, [r5] adds r0, r4, #0 adds r0, #0xa lsls r0, r0, #6 adds r0, r0, r7 str r0, [r5, #4] str r6, [r5, #8] ldr r0, [r5, #8] movs r3, #0x80 lsls r3, r3, #9 adds r0, r2, r3 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804C032 b _0804C274 .align 2, 0 _0804C090: .4byte 0x083FF04C _0804C094: ldr r1, _0804C0B4 @ =0x040000D4 ldr r2, _0804C0B8 @ =0x086AD474 ldr r0, [r3] ldr r7, _0804C0BC @ =0x0000025F adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804C0C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C0C4 @ =0x80000E00 b _0804C270 .align 2, 0 _0804C0B4: .4byte 0x040000D4 _0804C0B8: .4byte 0x086AD474 _0804C0BC: .4byte 0x0000025F _0804C0C0: .4byte 0x06015800 _0804C0C4: .4byte 0x80000E00 _0804C0C8: ldr r1, _0804C0D8 @ =0x040000D4 ldr r0, _0804C0DC @ =0x08158284 str r0, [r1] ldr r0, _0804C0E0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C0E4 @ =0x80001200 b _0804C270 .align 2, 0 _0804C0D8: .4byte 0x040000D4 _0804C0DC: .4byte 0x08158284 _0804C0E0: .4byte 0x06015800 _0804C0E4: .4byte 0x80001200 _0804C0E8: ldr r1, _0804C0F8 @ =0x040000D4 ldr r0, _0804C0FC @ =0x083A562C str r0, [r1] ldr r0, _0804C100 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C104 @ =0x80000C00 b _0804C270 .align 2, 0 _0804C0F8: .4byte 0x040000D4 _0804C0FC: .4byte 0x083A562C _0804C100: .4byte 0x06015800 _0804C104: .4byte 0x80000C00 _0804C108: ldr r7, _0804C17C @ =0x040000D4 ldr r0, _0804C180 @ =0x084F61EC str r0, [r7] ldr r0, _0804C184 @ =0x06015C00 str r0, [r7, #4] ldr r0, _0804C188 @ =0x800004A0 str r0, [r7, #8] ldr r0, [r7, #8] ldr r2, [r3] ldr r1, _0804C18C @ =0x000001A5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804C12A b _0804C274 _0804C12A: ldr r1, _0804C190 @ =0x086AD2DE movs r3, #0xd3 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r4, [r0] lsls r4, r4, #3 ldr r0, _0804C194 @ =0x086AD000 adds r4, r4, r0 ldrh r0, [r4, #6] movs r1, #0xa bl __udivsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xa ldr r6, _0804C198 @ =0x08480E0C adds r0, r0, r6 str r0, [r7] ldr r0, _0804C19C @ =0x06015DA0 str r0, [r7, #4] ldr r5, _0804C1A0 @ =0x80000020 str r5, [r7, #8] ldr r0, [r7, #8] ldrh r0, [r4, #6] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xa adds r0, r0, r6 str r0, [r7] ldr r0, _0804C1A4 @ =0x06015E60 str r0, [r7, #4] str r5, [r7, #8] ldr r0, [r7, #8] b _0804C274 .align 2, 0 _0804C17C: .4byte 0x040000D4 _0804C180: .4byte 0x084F61EC _0804C184: .4byte 0x06015C00 _0804C188: .4byte 0x800004A0 _0804C18C: .4byte 0x000001A5 _0804C190: .4byte 0x086AD2DE _0804C194: .4byte 0x086AD000 _0804C198: .4byte 0x08480E0C _0804C19C: .4byte 0x06015DA0 _0804C1A0: .4byte 0x80000020 _0804C1A4: .4byte 0x06015E60 _0804C1A8: ldr r1, _0804C1B8 @ =0x040000D4 ldr r0, _0804C1BC @ =0x0850100C str r0, [r1] ldr r0, _0804C1C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C1C4 @ =0x80001200 b _0804C270 .align 2, 0 _0804C1B8: .4byte 0x040000D4 _0804C1BC: .4byte 0x0850100C _0804C1C0: .4byte 0x06015800 _0804C1C4: .4byte 0x80001200 _0804C1C8: ldr r1, _0804C1D8 @ =0x040000D4 ldr r0, _0804C1DC @ =0x0850398C str r0, [r1] ldr r0, _0804C1E0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C1E4 @ =0x80001400 b _0804C270 .align 2, 0 _0804C1D8: .4byte 0x040000D4 _0804C1DC: .4byte 0x0850398C _0804C1E0: .4byte 0x06015800 _0804C1E4: .4byte 0x80001400 _0804C1E8: ldr r0, _0804C20C @ =gMain ldrb r0, [r0, #4] cmp r0, #0 bne _0804C22C ldr r1, _0804C210 @ =0x040000D4 ldr r0, _0804C214 @ =0x081BCAA4 str r0, [r1] ldr r0, _0804C218 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C21C @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0804C220 @ =0x081BE2C4 str r0, [r1] ldr r0, _0804C224 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0804C228 @ =0x80000010 b _0804C270 .align 2, 0 _0804C20C: .4byte gMain _0804C210: .4byte 0x040000D4 _0804C214: .4byte 0x081BCAA4 _0804C218: .4byte 0x06015800 _0804C21C: .4byte 0x80000C00 _0804C220: .4byte 0x081BE2C4 _0804C224: .4byte 0x050003C0 _0804C228: .4byte 0x80000010 _0804C22C: ldr r1, _0804C248 @ =0x040000D4 ldr r0, _0804C24C @ =0x081BE4C4 str r0, [r1] ldr r0, _0804C250 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C254 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0804C258 @ =0x081BFCE4 str r0, [r1] ldr r0, _0804C25C @ =0x050003C0 str r0, [r1, #4] ldr r0, _0804C260 @ =0x80000010 b _0804C270 .align 2, 0 _0804C248: .4byte 0x040000D4 _0804C24C: .4byte 0x081BE4C4 _0804C250: .4byte 0x06015800 _0804C254: .4byte 0x80000C00 _0804C258: .4byte 0x081BFCE4 _0804C25C: .4byte 0x050003C0 _0804C260: .4byte 0x80000010 _0804C264: ldr r1, _0804C280 @ =0x040000D4 ldr r0, _0804C284 @ =0x08526DCC str r0, [r1] ldr r0, _0804C288 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C28C @ =0x80000600 _0804C270: str r0, [r1, #8] ldr r0, [r1, #8] _0804C274: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804C280: .4byte 0x040000D4 _0804C284: .4byte 0x08526DCC _0804C288: .4byte 0x06015800 _0804C28C: .4byte 0x80000600 thumb_func_start sub_4C290 sub_4C290: @ 0x0804C290 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 bl sub_28AE0 bl sub_28BFC movs r1, #0 ldr r0, _0804C3B8 @ =0x020314E0 ldr r4, [r0] ldr r3, _0804C3BC @ =0x040000D4 mov sb, r0 _0804C2AE: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 adds r0, r4, r0 ldr r1, _0804C3C0 @ =0x000013BC adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 lsls r0, r0, #9 ldr r1, _0804C3C4 @ =0x083FE44C adds r0, r0, r1 str r0, [r3] lsls r0, r2, #9 ldr r5, _0804C3C8 @ =0x06010000 adds r0, r0, r5 str r0, [r3, #4] ldr r0, _0804C3CC @ =0x80000100 str r0, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0804C2AE mov r1, sb ldr r0, [r1] ldr r2, _0804C3D0 @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] ldrh r0, [r0, #0xa] ldr r2, _0804C3BC @ =0x040000D4 lsrs r0, r0, #0xc lsls r0, r0, #7 ldr r1, _0804C3D4 @ =0x083BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _0804C3D8 @ =0x06010400 str r0, [r2, #4] ldr r0, _0804C3DC @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r5, _0804C3E0 @ =0x084C07EC ldr r6, _0804C3E4 @ =0x084FA48C ldr r7, _0804C3E8 @ =0x084C00EC adds r3, r2, #0 mov r2, sb ldr r0, [r2] ldr r2, _0804C3EC @ =0x00000744 adds r4, r0, r2 _0804C320: lsls r2, r1, #0x10 asrs r2, r2, #0x10 adds r0, r4, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 adds r0, r0, r5 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r1, _0804C3F0 @ =0x06010480 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0804C3F4 @ =0x800000C0 str r0, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0804C320 mov r2, sb ldr r0, [r2] ldr r3, _0804C3F8 @ =0x000001E5 adds r0, r0, r3 ldr r2, _0804C3BC @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r6 str r0, [r2] ldr r0, _0804C3FC @ =0x06010780 str r0, [r2, #4] ldr r0, _0804C400 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] mov r5, sb ldr r0, [r5] movs r1, #0xe5 lsls r1, r1, #1 adds r0, r0, r1 ldrh r3, [r0] mov sl, r3 movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #7 adds r0, r0, r7 str r0, [r2] ldr r0, _0804C404 @ =0x06010AE0 str r0, [r2, #4] ldr r0, _0804C3DC @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 _0804C396: mov r2, sb ldr r0, [r2] lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldr r3, _0804C408 @ =0x00000747 adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] adds r7, r2, #0 cmp r0, #9 bls _0804C3AE b _0804C602 _0804C3AE: lsls r0, r0, #2 ldr r1, _0804C40C @ =_0804C410 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804C3B8: .4byte 0x020314E0 _0804C3BC: .4byte 0x040000D4 _0804C3C0: .4byte 0x000013BC _0804C3C4: .4byte 0x083FE44C _0804C3C8: .4byte 0x06010000 _0804C3CC: .4byte 0x80000100 _0804C3D0: .4byte 0x0000132C _0804C3D4: .4byte 0x083BB16C _0804C3D8: .4byte 0x06010400 _0804C3DC: .4byte 0x80000040 _0804C3E0: .4byte 0x084C07EC _0804C3E4: .4byte 0x084FA48C _0804C3E8: .4byte 0x084C00EC _0804C3EC: .4byte 0x00000744 _0804C3F0: .4byte 0x06010480 _0804C3F4: .4byte 0x800000C0 _0804C3F8: .4byte 0x000001E5 _0804C3FC: .4byte 0x06010780 _0804C400: .4byte 0x80000090 _0804C404: .4byte 0x06010AE0 _0804C408: .4byte 0x00000747 _0804C40C: .4byte _0804C410 _0804C410: @ jump table .4byte _0804C438 @ case 0 .4byte _0804C5D4 @ case 1 .4byte _0804C5D4 @ case 2 .4byte _0804C55E @ case 3 .4byte _0804C5D4 @ case 4 .4byte _0804C602 @ case 5 .4byte _0804C5D4 @ case 6 .4byte _0804C5D4 @ case 7 .4byte _0804C5D4 @ case 8 .4byte _0804C460 @ case 9 _0804C438: ldr r3, _0804C454 @ =0x040000D4 mov r5, sb ldr r0, [r5] asrs r2, r7, #0x10 ldr r1, _0804C458 @ =0x00000749 adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0804C45C @ =0x0848D68C b _0804C5EC .align 2, 0 _0804C454: .4byte 0x040000D4 _0804C458: .4byte 0x00000749 _0804C45C: .4byte 0x0848D68C _0804C460: mov r5, sb ldr r4, [r5] movs r1, #0x97 lsls r1, r1, #2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804C510 ldr r1, _0804C498 @ =0x0200B134 ldr r2, _0804C49C @ =0x0000059A adds r0, r4, r2 ldrh r3, [r0] adds r1, r3, r1 ldrb r0, [r1] cmp r0, #0 bne _0804C4AC asrs r3, r7, #0x10 ldr r2, _0804C4A0 @ =0x00000749 adds r0, r4, r2 adds r0, r0, r3 movs r1, #0xcd strb r1, [r0] ldr r6, _0804C4A4 @ =0x040000D4 ldr r5, _0804C4A8 @ =gMonPortraitGroupPals mov r8, r5 b _0804C528 .align 2, 0 _0804C498: .4byte 0x0200B134 _0804C49C: .4byte 0x0000059A _0804C4A0: .4byte 0x00000749 _0804C4A4: .4byte 0x040000D4 _0804C4A8: .4byte gMonPortraitGroupPals _0804C4AC: cmp r0, #3 bhi _0804C4E8 asrs r1, r7, #0x10 ldr r2, _0804C4D4 @ =0x00000749 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] ldr r1, _0804C4D8 @ =0x040000D4 ldr r0, _0804C4DC @ =gMonPortraitGroupPals ldr r0, [r0] movs r3, #0xf0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0804C4E0 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0804C4E4 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _0804C55E .align 2, 0 _0804C4D4: .4byte 0x00000749 _0804C4D8: .4byte 0x040000D4 _0804C4DC: .4byte gMonPortraitGroupPals _0804C4E0: .4byte 0x050003A0 _0804C4E4: .4byte 0x80000010 _0804C4E8: asrs r2, r7, #0x10 ldr r1, _0804C504 @ =0x00000749 adds r0, r4, r1 adds r0, r0, r2 strb r3, [r0] ldr r6, _0804C508 @ =0x040000D4 ldr r5, _0804C50C @ =gMonPortraitGroupPals mov r8, r5 mov r3, sb ldr r0, [r3] adds r0, r0, r1 adds r0, r0, r2 b _0804C530 .align 2, 0 _0804C504: .4byte 0x00000749 _0804C508: .4byte 0x040000D4 _0804C50C: .4byte gMonPortraitGroupPals _0804C510: asrs r3, r7, #0x10 ldr r2, _0804C5B4 @ =0x00000749 adds r1, r4, r2 adds r1, r1, r3 movs r5, #0xb3 lsls r5, r5, #3 adds r0, r4, r5 ldrh r0, [r0] strb r0, [r1] ldr r6, _0804C5B8 @ =0x040000D4 ldr r0, _0804C5BC @ =gMonPortraitGroupPals mov r8, r0 _0804C528: mov r1, sb ldr r0, [r1] adds r0, r0, r2 adds r0, r0, r3 _0804C530: ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x13 ldr r1, [r4] adds r1, r1, r0 str r1, [r6] ldr r0, _0804C5C0 @ =0x050003A0 str r0, [r6, #4] ldr r0, _0804C5C4 @ =0x80000010 str r0, [r6, #8] ldr r0, [r6, #8] _0804C55E: ldr r2, _0804C5B8 @ =0x040000D4 ldr r3, _0804C5C8 @ =gMonPortraitGroupGfx mov r8, r3 mov r5, sb ldr r0, [r5] asrs r6, r7, #0x10 ldr r1, _0804C5B4 @ =0x00000749 adds r0, r0, r1 adds r0, r0, r6 ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf str r2, [sp] bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 ldr r2, [sp] str r0, [r2] lsls r0, r6, #1 adds r0, r0, r6 lsls r0, r0, #3 ldr r3, _0804C5CC @ =0x06010CA0 adds r0, r0, r3 str r0, [r2, #4] ldr r0, _0804C5D0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] b _0804C602 .align 2, 0 _0804C5B4: .4byte 0x00000749 _0804C5B8: .4byte 0x040000D4 _0804C5BC: .4byte gMonPortraitGroupPals _0804C5C0: .4byte 0x050003A0 _0804C5C4: .4byte 0x80000010 _0804C5C8: .4byte gMonPortraitGroupGfx _0804C5CC: .4byte 0x06010CA0 _0804C5D0: .4byte 0x80000180 _0804C5D4: ldr r3, _0804C630 @ =0x040000D4 mov r5, sb ldr r0, [r5] asrs r2, r7, #0x10 ldr r1, _0804C634 @ =0x00000749 adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0804C638 @ =0x083A8EEC _0804C5EC: adds r0, r0, r1 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #8 ldr r2, _0804C63C @ =0x06010CA0 adds r0, r0, r2 str r0, [r3, #4] ldr r0, _0804C640 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] _0804C602: movs r3, #0x80 lsls r3, r3, #9 adds r0, r7, r3 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _0804C612 b _0804C396 _0804C612: mov r5, sb ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0804C69C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #7 blt _0804C69C cmp r0, #8 ble _0804C644 cmp r0, #9 beq _0804C660 b _0804C69C .align 2, 0 _0804C630: .4byte 0x040000D4 _0804C634: .4byte 0x00000749 _0804C638: .4byte 0x083A8EEC _0804C63C: .4byte 0x06010CA0 _0804C640: .4byte 0x80000180 _0804C644: ldr r2, _0804C654 @ =0x000005A9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #4 bls _0804C68C ldr r1, _0804C658 @ =0x040000D4 ldr r0, _0804C65C @ =0x02031060 b _0804C690 .align 2, 0 _0804C654: .4byte 0x000005A9 _0804C658: .4byte 0x040000D4 _0804C65C: .4byte 0x02031060 _0804C660: movs r3, #0xb5 lsls r3, r3, #3 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1f bgt _0804C69C ldr r5, _0804C680 @ =0x000005A9 adds r0, r1, r5 ldrb r0, [r0] cmp r0, #4 bls _0804C68C ldr r1, _0804C684 @ =0x040000D4 ldr r0, _0804C688 @ =0x02031060 b _0804C690 .align 2, 0 _0804C680: .4byte 0x000005A9 _0804C684: .4byte 0x040000D4 _0804C688: .4byte 0x02031060 _0804C68C: ldr r1, _0804C6B8 @ =0x040000D4 ldr r0, _0804C6BC @ =0x02030760 _0804C690: str r0, [r1] ldr r0, _0804C6C0 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _0804C6C4 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _0804C69C: mov r0, sb ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #8 bne _0804C720 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #2 beq _0804C6C8 cmp r0, #3 beq _0804C6E4 b _0804C720 .align 2, 0 _0804C6B8: .4byte 0x040000D4 _0804C6BC: .4byte 0x02030760 _0804C6C0: .4byte 0x06010CA0 _0804C6C4: .4byte 0x80000240 _0804C6C8: ldr r2, _0804C6D8 @ =0x000005A9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #4 bls _0804C710 ldr r1, _0804C6DC @ =0x040000D4 ldr r0, _0804C6E0 @ =0x02031060 b _0804C714 .align 2, 0 _0804C6D8: .4byte 0x000005A9 _0804C6DC: .4byte 0x040000D4 _0804C6E0: .4byte 0x02031060 _0804C6E4: movs r3, #0xb5 lsls r3, r3, #3 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1f bgt _0804C720 ldr r5, _0804C704 @ =0x000005A9 adds r0, r1, r5 ldrb r0, [r0] cmp r0, #4 bls _0804C710 ldr r1, _0804C708 @ =0x040000D4 ldr r0, _0804C70C @ =0x02031060 b _0804C714 .align 2, 0 _0804C704: .4byte 0x000005A9 _0804C708: .4byte 0x040000D4 _0804C70C: .4byte 0x02031060 _0804C710: ldr r1, _0804C7C4 @ =0x040000D4 ldr r0, _0804C7C8 @ =0x02030760 _0804C714: str r0, [r1] ldr r0, _0804C7CC @ =0x06010CA0 str r0, [r1, #4] ldr r0, _0804C7D0 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _0804C720: ldr r2, _0804C7C4 @ =0x040000D4 mov r1, sb ldr r0, [r1] ldr r3, _0804C7D4 @ =0x0000020B adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r5, _0804C7D8 @ =0x0844838C adds r0, r0, r5 str r0, [r2] ldr r0, _0804C7DC @ =0x060113C0 str r0, [r2, #4] ldr r0, _0804C7E0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] mov r1, sb ldr r0, [r1] adds r3, #0x54 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r5, _0804C7E4 @ =0x086AD49C adds r0, r0, r5 mov r3, sl lsls r1, r3, #0x10 asrs r1, r1, #7 ldr r0, [r0] adds r0, r0, r1 str r0, [r2] ldr r0, _0804C7E8 @ =0x060116C0 str r0, [r2, #4] ldr r3, _0804C7EC @ =0x80000100 str r3, [r2, #8] ldr r0, [r2, #8] mov r5, sb ldr r0, [r5] ldr r1, _0804C7F0 @ =0x000001ED adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0804C7F4 @ =0x086AD2EE adds r1, #6 adds r0, r0, r1 movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #9 ldr r1, _0804C7F8 @ =0x084FD18C adds r0, r0, r1 str r0, [r2] ldr r0, _0804C7FC @ =0x06011CE0 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] mov r5, sb ldr r0, [r5] adds r0, #0x6e ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #9 ldr r1, _0804C800 @ =0x083BD36C adds r0, r0, r1 str r0, [r2] ldr r0, _0804C804 @ =0x06011EE0 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] 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 _0804C7C4: .4byte 0x040000D4 _0804C7C8: .4byte 0x02030760 _0804C7CC: .4byte 0x06010CA0 _0804C7D0: .4byte 0x80000240 _0804C7D4: .4byte 0x0000020B _0804C7D8: .4byte 0x0844838C _0804C7DC: .4byte 0x060113C0 _0804C7E0: .4byte 0x80000180 _0804C7E4: .4byte 0x086AD49C _0804C7E8: .4byte 0x060116C0 _0804C7EC: .4byte 0x80000100 _0804C7F0: .4byte 0x000001ED _0804C7F4: .4byte 0x086AD2EE _0804C7F8: .4byte 0x084FD18C _0804C7FC: .4byte 0x06011CE0 _0804C800: .4byte 0x083BD36C _0804C804: .4byte 0x06011EE0 thumb_func_start sub_4C808 sub_4C808: @ 0x0804C808 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _0804C90C @ =0x086AD2EE ldr r6, _0804C910 @ =0x020314E0 ldr r5, [r6] ldr r2, _0804C914 @ =0x000001ED adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r1, #4 adds r0, r0, r1 ldr r4, _0804C918 @ =0x040000D4 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0804C91C @ =0x084FB68C adds r0, r0, r1 str r0, [r4] ldr r0, _0804C920 @ =0x060122A0 str r0, [r4, #4] ldr r0, _0804C924 @ =0x80000240 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0804C928 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r2, _0804C92C @ =0x083C3C2C adds r1, r1, r2 str r1, [r4] ldr r1, _0804C930 @ =0x06012720 str r1, [r4, #4] ldr r1, _0804C934 @ =0x80000180 str r1, [r4, #8] ldr r1, [r4, #8] ldr r1, _0804C938 @ =0x000002F5 adds r5, r5, r1 movs r2, #0 ldrsb r2, [r5, r2] lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #2 subs r1, r1, r2 lsls r1, r1, #5 ldr r2, _0804C93C @ =0x084F5ACC adds r1, r1, r2 str r1, [r4] ldr r1, _0804C940 @ =0x06012C20 str r1, [r4, #4] ldr r1, _0804C944 @ =0x80000130 str r1, [r4, #8] ldr r1, [r4, #8] movs r2, #0 mov ip, r6 ldr r1, _0804C948 @ =0x084ED0CC mov r8, r1 ldr r1, _0804C94C @ =0x08449D8C mov sb, r1 ldr r1, _0804C950 @ =0x086AD456 mov sl, r1 lsls r0, r0, #8 ldr r1, _0804C954 @ =0x083C806C adds r3, r0, r1 movs r7, #0xba lsls r7, r7, #1 ldr r6, _0804C958 @ =0x06010000 ldr r5, _0804C95C @ =0x80000080 _0804C8AE: str r3, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 adds r1, r1, r7 lsls r1, r1, #5 adds r1, r1, r6 str r1, [r4, #4] str r5, [r4, #8] ldr r1, [r4, #8] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0804C8AE mov r2, ip ldr r0, [r2] ldr r1, _0804C960 @ =0x000002F1 adds r0, r0, r1 ldrb r0, [r0] movs r1, #0xf ldr r2, _0804C918 @ =0x040000D4 ands r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 add r0, r8 str r0, [r2] ldr r0, _0804C964 @ =0x06013180 str r0, [r2, #4] ldr r0, _0804C968 @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, ip ldr r1, [r2] ldr r2, _0804C96C @ =0x000002DA adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0804C974 ldr r0, _0804C970 @ =0x00000746 adds r1, r1, r0 movs r0, #0 b _0804C97A .align 2, 0 _0804C90C: .4byte 0x086AD2EE _0804C910: .4byte 0x020314E0 _0804C914: .4byte 0x000001ED _0804C918: .4byte 0x040000D4 _0804C91C: .4byte 0x084FB68C _0804C920: .4byte 0x060122A0 _0804C924: .4byte 0x80000240 _0804C928: .4byte gMain _0804C92C: .4byte 0x083C3C2C _0804C930: .4byte 0x06012720 _0804C934: .4byte 0x80000180 _0804C938: .4byte 0x000002F5 _0804C93C: .4byte 0x084F5ACC _0804C940: .4byte 0x06012C20 _0804C944: .4byte 0x80000130 _0804C948: .4byte 0x084ED0CC _0804C94C: .4byte 0x08449D8C _0804C950: .4byte 0x086AD456 _0804C954: .4byte 0x083C806C _0804C958: .4byte 0x06010000 _0804C95C: .4byte 0x80000080 _0804C960: .4byte 0x000002F1 _0804C964: .4byte 0x06013180 _0804C968: .4byte 0x800000C0 _0804C96C: .4byte 0x000002DA _0804C970: .4byte 0x00000746 _0804C974: ldr r2, _0804C9F8 @ =0x00000746 adds r1, r1, r2 movs r0, #1 _0804C97A: strb r0, [r1] ldr r4, _0804C9FC @ =0x040000D4 mov r1, ip ldr r0, [r1] ldr r2, _0804C9F8 @ =0x00000746 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 add r0, sb str r0, [r4] ldr r0, _0804CA00 @ =0x06013300 str r0, [r4, #4] ldr r0, _0804CA04 @ =0x80000140 str r0, [r4, #8] ldr r0, [r4, #8] mov r0, ip ldr r5, [r0] movs r1, #0xda lsls r1, r1, #1 adds r0, r5, r1 ldrh r0, [r0] movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf ldr r2, _0804CA08 @ =0x000001A5 adds r1, r5, r2 movs r2, #0 ldrsb r2, [r1, r2] lsls r1, r2, #3 subs r1, r1, r2 lsls r1, r1, #1 adds r0, r0, r1 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0804CA0C @ =0x084F6B0C adds r0, r0, r1 str r0, [r4] ldr r0, _0804CA10 @ =0x06013D00 str r0, [r4, #4] ldr r0, _0804CA14 @ =0x80000280 str r0, [r4, #8] ldr r0, [r4, #8] 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 _0804C9F8: .4byte 0x00000746 _0804C9FC: .4byte 0x040000D4 _0804CA00: .4byte 0x06013300 _0804CA04: .4byte 0x80000140 _0804CA08: .4byte 0x000001A5 _0804CA0C: .4byte 0x084F6B0C _0804CA10: .4byte 0x06013D00 _0804CA14: .4byte 0x80000280 thumb_func_start sub_4CA18 sub_4CA18: @ 0x0804CA18 ldr r1, _0804CA38 @ =0x020314E0 ldr r0, [r1] ldr r2, _0804CA3C @ =0x00000346 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r1, #0 cmp r0, #6 bhi _0804CACE lsls r0, r0, #2 ldr r1, _0804CA40 @ =_0804CA44 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804CA38: .4byte 0x020314E0 _0804CA3C: .4byte 0x00000346 _0804CA40: .4byte _0804CA44 _0804CA44: @ jump table .4byte _0804CA60 @ case 0 .4byte _0804CA60 @ case 1 .4byte _0804CA60 @ case 2 .4byte _0804CA78 @ case 3 .4byte _0804CA78 @ case 4 .4byte _0804CAA0 @ case 5 .4byte _0804CACE @ case 6 _0804CA60: ldr r0, [r2] ldr r3, _0804CA70 @ =0x00000345 adds r0, r0, r3 ldr r2, _0804CA74 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] b _0804CAB8 .align 2, 0 _0804CA70: .4byte 0x00000345 _0804CA74: .4byte 0x040000D4 _0804CA78: ldr r1, _0804CA90 @ =0x040000D4 ldr r0, _0804CA94 @ =0x08490A4C movs r2, #0xff lsls r2, r2, #6 adds r0, r0, r2 str r0, [r1] ldr r0, _0804CA98 @ =0x0600D900 str r0, [r1, #4] ldr r0, _0804CA9C @ =0x80000220 str r0, [r1, #8] ldr r0, [r1, #8] b _0804CACE .align 2, 0 _0804CA90: .4byte 0x040000D4 _0804CA94: .4byte 0x08490A4C _0804CA98: .4byte 0x0600D900 _0804CA9C: .4byte 0x80000220 _0804CAA0: ldr r1, _0804CAD0 @ =0x086AE5A0 ldr r0, [r2] ldr r3, _0804CAD4 @ =0x00000345 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r2, _0804CAD8 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] _0804CAB8: lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _0804CADC @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _0804CAE0 @ =0x0600D900 str r0, [r2, #4] ldr r0, _0804CAE4 @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] _0804CACE: bx lr .align 2, 0 _0804CAD0: .4byte 0x086AE5A0 _0804CAD4: .4byte 0x00000345 _0804CAD8: .4byte 0x040000D4 _0804CADC: .4byte 0x08490A4C _0804CAE0: .4byte 0x0600D900 _0804CAE4: .4byte 0x80000220 thumb_func_start sub_4CAE8 sub_4CAE8: @ 0x0804CAE8 ldr r1, _0804CAFC @ =0x040000D4 ldr r0, _0804CB00 @ =0x08138834 str r0, [r1] ldr r0, _0804CB04 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CB08 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] bx lr .align 2, 0 _0804CAFC: .4byte 0x040000D4 _0804CB00: .4byte 0x08138834 _0804CB04: .4byte 0x06015800 _0804CB08: .4byte 0x80001000 thumb_func_start sub_4CB0C sub_4CB0C: @ 0x0804CB0C ldr r1, _0804CB20 @ =0x040000D4 ldr r0, _0804CB24 @ =0x0813A854 str r0, [r1] ldr r0, _0804CB28 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CB2C @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] bx lr .align 2, 0 _0804CB20: .4byte 0x040000D4 _0804CB24: .4byte 0x0813A854 _0804CB28: .4byte 0x06015800 _0804CB2C: .4byte 0x80001000 thumb_func_start sub_4CB30 sub_4CB30: @ 0x0804CB30 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r5, _0804CB90 @ =0x040000D4 ldr r0, _0804CB94 @ =0x0813C874 str r0, [r5] ldr r0, _0804CB98 @ =0x06015800 str r0, [r5, #4] ldr r0, _0804CB9C @ =0x80001000 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _0804CBA0 @ =gMonPortraitGroupGfx mov r8, r0 ldr r0, _0804CBA4 @ =0x020314E0 ldr r0, [r0] ldr r1, _0804CBA8 @ =0x00000749 adds r0, r0, r1 ldrb r6, [r0] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r5] ldr r0, _0804CBAC @ =0x06010CA0 str r0, [r5, #4] ldr r0, _0804CBB0 @ =0x80000180 str r0, [r5, #8] ldr r0, [r5, #8] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804CB90: .4byte 0x040000D4 _0804CB94: .4byte 0x0813C874 _0804CB98: .4byte 0x06015800 _0804CB9C: .4byte 0x80001000 _0804CBA0: .4byte gMonPortraitGroupGfx _0804CBA4: .4byte 0x020314E0 _0804CBA8: .4byte 0x00000749 _0804CBAC: .4byte 0x06010CA0 _0804CBB0: .4byte 0x80000180 thumb_func_start sub_4CBB4 sub_4CBB4: @ 0x0804CBB4 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r0, _0804CBD0 @ =0x020314E0 ldr r1, [r0] ldrb r1, [r1, #0x13] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r2, r0, #0 cmp r1, #1 bgt _0804CBDC ldr r1, _0804CBD4 @ =0x040000D4 ldr r0, _0804CBD8 @ =0x0849F1CC b _0804CBE0 .align 2, 0 _0804CBD0: .4byte 0x020314E0 _0804CBD4: .4byte 0x040000D4 _0804CBD8: .4byte 0x0849F1CC _0804CBDC: ldr r1, _0804CC38 @ =0x040000D4 ldr r0, _0804CC3C @ =0x0813E894 _0804CBE0: str r0, [r1] ldr r0, _0804CC40 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CC44 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r6, _0804CC38 @ =0x040000D4 ldr r0, _0804CC48 @ =gMonPortraitGroupGfx mov r8, r0 ldr r0, [r2] ldr r1, _0804CC4C @ =0x00000749 adds r0, r0, r1 ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r6] ldr r0, _0804CC50 @ =0x06010CA0 str r0, [r6, #4] ldr r0, _0804CC54 @ =0x80000180 str r0, [r6, #8] ldr r0, [r6, #8] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804CC38: .4byte 0x040000D4 _0804CC3C: .4byte 0x0813E894 _0804CC40: .4byte 0x06015800 _0804CC44: .4byte 0x80001000 _0804CC48: .4byte gMonPortraitGroupGfx _0804CC4C: .4byte 0x00000749 _0804CC50: .4byte 0x06010CA0 _0804CC54: .4byte 0x80000180 thumb_func_start sub_4CC58 sub_4CC58: @ 0x0804CC58 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r1, _0804CC7C @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r1, #0 cmp r0, #0 bne _0804CC90 ldr r1, _0804CC80 @ =0x040000D4 ldr r0, _0804CC84 @ =0x083C5A2C str r0, [r1] ldr r0, _0804CC88 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CC8C @ =0x80001400 b _0804CCC0 .align 2, 0 _0804CC7C: .4byte 0x020314E0 _0804CC80: .4byte 0x040000D4 _0804CC84: .4byte 0x083C5A2C _0804CC88: .4byte 0x06015800 _0804CC8C: .4byte 0x80001400 _0804CC90: cmp r0, #1 bne _0804CCB4 ldr r1, _0804CCA4 @ =0x040000D4 ldr r0, _0804CCA8 @ =0x084A856C str r0, [r1] ldr r0, _0804CCAC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CCB0 @ =0x80000E00 b _0804CCC0 .align 2, 0 _0804CCA4: .4byte 0x040000D4 _0804CCA8: .4byte 0x084A856C _0804CCAC: .4byte 0x06015800 _0804CCB0: .4byte 0x80000E00 _0804CCB4: ldr r1, _0804CD34 @ =0x040000D4 ldr r0, _0804CD38 @ =0x081408B4 str r0, [r1] ldr r0, _0804CD3C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CD40 @ =0x80001000 _0804CCC0: str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #9 bls _0804CCE8 ldr r1, _0804CD34 @ =0x040000D4 ldr r0, _0804CD44 @ =0x084AA18C str r0, [r1] ldr r0, _0804CD48 @ =0x06011620 str r0, [r1, #4] ldr r0, _0804CD4C @ =0x80000430 str r0, [r1, #8] ldr r0, [r1, #8] _0804CCE8: ldr r6, _0804CD34 @ =0x040000D4 ldr r0, _0804CD50 @ =gMonPortraitGroupGfx mov r8, r0 ldr r0, [r2] ldr r1, _0804CD54 @ =0x00000749 adds r0, r0, r1 ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r6] ldr r0, _0804CD58 @ =0x06010CA0 str r0, [r6, #4] ldr r0, _0804CD5C @ =0x80000180 str r0, [r6, #8] ldr r0, [r6, #8] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804CD34: .4byte 0x040000D4 _0804CD38: .4byte 0x081408B4 _0804CD3C: .4byte 0x06015800 _0804CD40: .4byte 0x80001000 _0804CD44: .4byte 0x084AA18C _0804CD48: .4byte 0x06011620 _0804CD4C: .4byte 0x80000430 _0804CD50: .4byte gMonPortraitGroupGfx _0804CD54: .4byte 0x00000749 _0804CD58: .4byte 0x06010CA0 _0804CD5C: .4byte 0x80000180 thumb_func_start sub_4CD60 sub_4CD60: @ 0x0804CD60 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r2, #0 ldr r3, _0804CE5C @ =0x03006400 ldr r6, _0804CE60 @ =gMain movs r0, #0x80 lsls r0, r0, #4 adds r0, r0, r3 mov r8, r0 ldr r1, _0804CE64 @ =0x084B77EC mov sb, r1 ldr r0, _0804CE68 @ =0xFFFFF800 adds r0, r0, r3 mov ip, r0 movs r7, #0x80 lsls r7, r7, #3 movs r5, #0x80 lsls r5, r5, #2 ldr r4, _0804CE6C @ =0x000007FF _0804CD8A: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r0, r1, r7 lsls r0, r0, #1 add r0, ip strh r5, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r4 ble _0804CD8A ldr r1, _0804CE70 @ =0x040000D4 str r3, [r1] ldr r0, _0804CE74 @ =0x06001000 str r0, [r1, #4] ldr r0, _0804CE78 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r6, #0x38] ldr r0, _0804CE7C @ =0x00001C42 strh r0, [r6, #0x38] ldrh r0, [r6, #0x3a] ldr r0, _0804CE80 @ =0x00000C04 strh r0, [r6, #0x3a] movs r2, #0 ldr r1, _0804CE68 @ =0xFFFFF800 adds r4, r3, r1 ldr r3, _0804CE84 @ =0x0000013F _0804CDC4: lsls r0, r2, #0x10 asrs r2, r0, #0x10 adds r0, r2, #0 cmp r2, #0 bge _0804CDD0 adds r0, #0x1f _0804CDD0: asrs r0, r0, #5 lsls r0, r0, #5 subs r0, r2, r0 subs r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1b bhi _0804CDF0 movs r1, #0x80 lsls r1, r1, #4 adds r0, r2, r1 lsls r0, r0, #1 adds r0, r0, r4 movs r1, #0x90 lsls r1, r1, #8 strh r1, [r0] _0804CDF0: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r3 ble _0804CDC4 movs r0, #0xbb lsls r0, r0, #2 adds r1, r6, r0 movs r0, #8 strh r0, [r1] ldr r0, _0804CE88 @ =0x000002EE adds r1, r6, r0 movs r0, #0x7e strh r0, [r1] ldr r1, _0804CE70 @ =0x040000D4 mov r0, r8 str r0, [r1] ldr r0, _0804CE8C @ =0x06001140 str r0, [r1, #4] ldr r0, _0804CE90 @ =0x80000140 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 ldr r5, _0804CE94 @ =0xFFFFF000 add r5, r8 ldr r4, _0804CE98 @ =0x000001FF ldr r3, _0804CE6C @ =0x000007FF _0804CE28: lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 ble _0804CE28 ldr r1, _0804CE70 @ =0x040000D4 mov r0, sb str r0, [r1] ldr r0, _0804CE9C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CEA0 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804CE5C: .4byte 0x03006400 _0804CE60: .4byte gMain _0804CE64: .4byte 0x084B77EC _0804CE68: .4byte 0xFFFFF800 _0804CE6C: .4byte 0x000007FF _0804CE70: .4byte 0x040000D4 _0804CE74: .4byte 0x06001000 _0804CE78: .4byte 0x80000800 _0804CE7C: .4byte 0x00001C42 _0804CE80: .4byte 0x00000C04 _0804CE84: .4byte 0x0000013F _0804CE88: .4byte 0x000002EE _0804CE8C: .4byte 0x06001140 _0804CE90: .4byte 0x80000140 _0804CE94: .4byte 0xFFFFF000 _0804CE98: .4byte 0x000001FF _0804CE9C: .4byte 0x06015800 _0804CEA0: .4byte 0x80000400 thumb_func_start nullsub_18 nullsub_18: @ 0x0804CEA4 bx lr thumb_func_start sub_4CEA8 sub_4CEA8: @ 0x0804CEA8 push {lr} bl sub_4CEB4 pop {r0} bx r0 thumb_func_start sub_4CEB4 sub_4CEB4: @ 0x0804CEB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 bl sub_4D3D0 ldr r5, _0804CF34 @ =0x020314E0 ldr r2, [r5] ldr r1, _0804CF38 @ =0x000005F6 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 ldr r1, [r2, #0x3c] muls r1, r0, r1 ldr r0, [r2, #0x40] adds r3, r0, r1 str r3, [r2, #0x40] ldrb r1, [r2, #0x1c] cmp r1, #0 beq _0804CF56 ldrb r0, [r2, #5] ldr r4, _0804CF3C @ =gMain cmp r0, #0 bne _0804CEF6 ldrh r1, [r4, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804CF08 _0804CEF6: ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] movs r0, #0 str r0, [r2, #0x40] strb r0, [r2, #0x1c] ldr r1, [r5] ldr r0, _0804CF40 @ =0x00009C40 str r0, [r1, #0x38] _0804CF08: ldr r5, [r4, #0x4c] movs r0, #1 ands r5, r0 cmp r5, #0 bne _0804CF5E ldr r1, _0804CF34 @ =0x020314E0 ldr r2, [r1] ldr r4, [r2, #0x40] cmp r4, #0 beq _0804CF5E ldr r3, [r2, #0x38] cmp r4, r3 bhi _0804CF44 ldr r0, [r2, #0x44] adds r0, r0, r4 str r0, [r2, #0x44] str r5, [r2, #0x40] strb r5, [r2, #0x1c] ldr r1, [r1] ldr r0, _0804CF40 @ =0x00009C40 str r0, [r1, #0x38] b _0804CF5E .align 2, 0 _0804CF34: .4byte 0x020314E0 _0804CF38: .4byte 0x000005F6 _0804CF3C: .4byte gMain _0804CF40: .4byte 0x00009C40 _0804CF44: ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] subs r0, r4, r3 str r0, [r2, #0x40] movs r0, #0x91 bl m4aSongNumStart b _0804CF5E _0804CF56: ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] str r1, [r2, #0x40] _0804CF5E: ldr r4, _0804CF84 @ =0x020314E0 ldr r6, [r4] ldr r7, [r6, #0x44] ldr r1, _0804CF88 @ =0x05F5E100 adds r0, r7, #0 bl __udivsi3 mov sb, r4 cmp r0, #0 beq _0804CF9C ldr r1, [r6, #0x48] ldr r0, _0804CF8C @ =0x0000270E cmp r1, r0 bhi _0804CF94 adds r0, r1, #1 str r0, [r6, #0x48] ldr r2, _0804CF90 @ =0xFA0A1F00 adds r0, r7, r2 b _0804CF9A .align 2, 0 _0804CF84: .4byte 0x020314E0 _0804CF88: .4byte 0x05F5E100 _0804CF8C: .4byte 0x0000270E _0804CF90: .4byte 0xFA0A1F00 _0804CF94: ldr r0, _0804D2EC @ =0x0000270F str r0, [r6, #0x48] ldr r0, _0804D2F0 @ =0x05F5E0FF _0804CF9A: str r0, [r6, #0x44] _0804CF9C: mov r7, sb ldr r5, [r7] movs r0, #0 str r0, [r5, #0x3c] ldr r7, [r5, #0x48] mov r4, sp ldr r0, _0804D2F4 @ =0x00002710 mov r8, r0 adds r0, r7, #0 mov r1, r8 bl __umodsi3 movs r6, #0xfa lsls r6, r6, #2 adds r1, r6, #0 bl __udivsi3 adds r0, #5 strh r0, [r4] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __umodsi3 movs r1, #0x64 bl __udivsi3 adds r0, #5 strh r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __umodsi3 movs r1, #0xa bl __udivsi3 adds r0, #0x13 strh r0, [r4, #4] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __umodsi3 adds r0, #5 strh r0, [r4, #6] ldr r7, [r5, #0x44] mov r5, sp ldr r4, _0804D2F8 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __udivsi3 adds r0, #5 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __umodsi3 ldr r4, _0804D2FC @ =0x000F4240 adds r1, r4, #0 bl __udivsi3 adds r0, #0x13 strh r0, [r5, #0xa] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __umodsi3 ldr r4, _0804D300 @ =0x000186A0 adds r1, r4, #0 bl __udivsi3 adds r0, #5 strh r0, [r5, #0xc] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __umodsi3 mov r1, r8 bl __udivsi3 adds r0, #5 strh r0, [r5, #0xe] mov r4, sp adds r0, r7, #0 mov r1, r8 bl __umodsi3 adds r1, r6, #0 bl __udivsi3 adds r0, #0x13 strh r0, [r4, #0x10] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __umodsi3 movs r1, #0x64 bl __udivsi3 adds r0, #5 strh r0, [r4, #0x12] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __umodsi3 movs r1, #0xa bl __udivsi3 adds r0, #5 strh r0, [r4, #0x14] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __umodsi3 adds r0, #5 strh r0, [r4, #0x16] movs r3, #0 ldr r1, _0804D304 @ =0x03005C00 mov sl, r1 movs r4, #0x1e _0804D09C: lsls r0, r3, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #1 mov r5, sp adds r1, r5, r0 movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #5 beq _0804D0B2 cmp r0, #0x13 bne _0804D0C0 _0804D0B2: strh r4, [r1] adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0804D09C _0804D0C0: lsls r1, r3, #0x10 adds r3, r1, #0 asrs r0, r3, #0x10 cmp r0, #0xb bgt _0804D10A ldr r5, _0804D304 @ =0x03005C00 asrs r6, r1, #0x10 _0804D0CE: asrs r3, r3, #0x10 subs r1, r3, r6 ldr r0, _0804D308 @ =0x000007C1 adds r2, r1, r0 lsls r2, r2, #1 adds r2, r2, r5 lsls r0, r3, #1 mov r7, sp adds r4, r7, r0 movs r7, #0 ldrsh r0, [r4, r7] lsls r0, r0, #1 ldr r7, _0804D30C @ =0xFFFFC160 adds r0, r0, r7 strh r0, [r2] ldr r0, _0804D310 @ =0x000007E1 adds r1, r1, r0 lsls r1, r1, #1 adds r1, r1, r5 movs r2, #0 ldrsh r0, [r4, r2] lsls r0, r0, #1 adds r7, #1 adds r0, r0, r7 strh r0, [r1] adds r3, #1 lsls r3, r3, #0x10 asrs r0, r3, #0x10 cmp r0, #0xb ble _0804D0CE _0804D10A: mov r1, sb ldr r0, [r1] movs r3, #0xbe lsls r3, r3, #3 adds r2, r0, r3 ldrh r0, [r2] ldr r1, _0804D314 @ =0x000003E7 cmp r0, r1 bls _0804D11E strh r1, [r2] _0804D11E: mov r5, sp mov r2, sb ldr r4, [r2] adds r4, r4, r3 ldrh r0, [r4] movs r1, #0x64 bl __udivsi3 strh r0, [r5, #4] mov r5, sp ldrh r0, [r4] movs r1, #0x64 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xa bl __udivsi3 strh r0, [r5, #2] mov r5, sp ldrh r0, [r4] movs r1, #0xa bl __umodsi3 strh r0, [r5] mov r6, sl ldr r5, _0804D318 @ =0x00000FA2 adds r1, r6, r5 ldr r0, _0804D31C @ =0x0000C17E strh r0, [r1] ldr r7, _0804D320 @ =0x00000FE2 adds r1, r6, r7 adds r0, #1 strh r0, [r1] mov r0, sp movs r1, #4 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 ldr r2, _0804D30C @ =0xFFFFC160 adds r7, r2, #0 adds r0, r0, r7 adds r5, #2 adds r1, r6, r5 strh r0, [r1] mov r0, sp movs r1, #4 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 adds r2, #1 mov r8, r2 add r0, r8 adds r5, #0x40 adds r1, r6, r5 strh r0, [r1] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 ldr r2, _0804D324 @ =0x00000FA6 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #2 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 subs r2, #0x3e adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r5, sb ldr r0, [r5] movs r2, #0xc9 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x63 bls _0804D1EC movs r0, #0x63 strb r0, [r1] _0804D1EC: mov r5, sp mov r0, sb ldr r4, [r0] adds r4, r4, r2 ldrb r0, [r4] movs r1, #0xa bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 strh r0, [r5, #2] mov r5, sp ldrb r0, [r4] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 strh r0, [r5] ldr r2, _0804D328 @ =0x00000FAC adds r1, r6, r2 ldr r0, _0804D32C @ =0x0000C19C strh r0, [r1] ldr r5, _0804D330 @ =0x00000FEC adds r1, r6, r5 adds r0, #1 strh r0, [r1] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 adds r2, #2 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #2 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 subs r2, #0x3e adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r5, sb ldr r0, [r5] adds r1, r0, #0 adds r1, #0x30 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #9 ble _0804D27E movs r0, #9 strb r0, [r1] _0804D27E: ldr r0, _0804D334 @ =0x00000FB4 adds r1, r6, r0 ldr r0, _0804D338 @ =0x0000C180 strh r0, [r1] ldr r2, _0804D33C @ =0x00000FF4 adds r1, r6, r2 adds r0, #1 strh r0, [r1] mov r5, sb ldr r0, [r5] adds r0, #0x30 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 ldr r7, _0804D340 @ =0x00000FB6 adds r1, r6, r7 strh r0, [r1] ldr r0, [r5] adds r0, #0x30 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #2 adds r1, r6, r2 strh r0, [r1] ldr r1, [r5] movs r5, #0xe5 lsls r5, r5, #1 adds r0, r1, r5 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0xd bne _0804D384 movs r2, #0xee lsls r2, r2, #1 adds r0, r1, r2 ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0804D350 ldr r5, _0804D344 @ =0x00000FBA adds r1, r6, r5 ldr r0, _0804D348 @ =0x0000C19A strh r0, [r1] ldr r7, _0804D34C @ =0x00000FFA adds r1, r6, r7 b _0804D35C .align 2, 0 _0804D2EC: .4byte 0x0000270F _0804D2F0: .4byte 0x05F5E0FF _0804D2F4: .4byte 0x00002710 _0804D2F8: .4byte 0x00989680 _0804D2FC: .4byte 0x000F4240 _0804D300: .4byte 0x000186A0 _0804D304: .4byte 0x03005C00 _0804D308: .4byte 0x000007C1 _0804D30C: .4byte 0xFFFFC160 _0804D310: .4byte 0x000007E1 _0804D314: .4byte 0x000003E7 _0804D318: .4byte 0x00000FA2 _0804D31C: .4byte 0x0000C17E _0804D320: .4byte 0x00000FE2 _0804D324: .4byte 0x00000FA6 _0804D328: .4byte 0x00000FAC _0804D32C: .4byte 0x0000C19C _0804D330: .4byte 0x00000FEC _0804D334: .4byte 0x00000FB4 _0804D338: .4byte 0x0000C180 _0804D33C: .4byte 0x00000FF4 _0804D340: .4byte 0x00000FB6 _0804D344: .4byte 0x00000FBA _0804D348: .4byte 0x0000C19A _0804D34C: .4byte 0x00000FFA _0804D350: ldr r0, _0804D378 @ =0x00000FBA adds r1, r6, r0 ldr r0, _0804D37C @ =0x0000C182 strh r0, [r1] ldr r2, _0804D380 @ =0x00000FFA adds r1, r6, r2 _0804D35C: adds r0, #1 strh r0, [r1] mov r5, sb ldr r0, [r5] movs r7, #0xee lsls r7, r7, #1 adds r4, r0, r7 ldrh r0, [r4] cmp r0, #0 beq _0804D394 subs r0, #1 strh r0, [r4] b _0804D394 .align 2, 0 _0804D378: .4byte 0x00000FBA _0804D37C: .4byte 0x0000C182 _0804D380: .4byte 0x00000FFA _0804D384: ldr r1, _0804D3B4 @ =0x00000FBA add r1, sl ldr r0, _0804D3B8 @ =0x0000C19E strh r0, [r1] ldr r1, _0804D3BC @ =0x00000FFA add r1, sl adds r0, #1 strh r0, [r1] _0804D394: ldr r1, _0804D3C0 @ =0x040000D4 ldr r0, _0804D3C4 @ =0x03006B80 str r0, [r1] ldr r0, _0804D3C8 @ =0x06002F80 str r0, [r1, #4] ldr r0, _0804D3CC @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] add sp, #0x18 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 _0804D3B4: .4byte 0x00000FBA _0804D3B8: .4byte 0x0000C19E _0804D3BC: .4byte 0x00000FFA _0804D3C0: .4byte 0x040000D4 _0804D3C4: .4byte 0x03006B80 _0804D3C8: .4byte 0x06002F80 _0804D3CC: .4byte 0x80000040 thumb_func_start sub_4D3D0 sub_4D3D0: @ 0x0804D3D0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r1, _0804D4C8 @ =0x020314E0 ldr r2, [r1] movs r3, #0xa5 lsls r3, r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #0 bne _0804D3F2 b _0804D628 _0804D3F2: ldr r5, _0804D4CC @ =0x00000296 adds r1, r2, r5 ldrh r2, [r1] cmp r2, #0 bne _0804D3FE b _0804D628 _0804D3FE: cmp r0, #2 bne _0804D40E ldr r0, _0804D4D0 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _0804D40E subs r0, r2, #1 strh r0, [r1] _0804D40E: mov r5, sp mov r0, sb ldr r6, [r0] ldr r1, _0804D4CC @ =0x00000296 adds r7, r6, r1 ldrh r0, [r7] movs r4, #0xe1 lsls r4, r4, #4 adds r1, r4, #0 bl __udivsi3 strh r0, [r5] ldrh r0, [r7] adds r1, r4, #0 bl __umodsi3 adds r4, r0, #0 mov r1, sp movs r0, #0xa strh r0, [r1, #2] mov r8, sp lsls r4, r4, #0x10 asrs r4, r4, #0x10 movs r5, #0x96 lsls r5, r5, #2 adds r0, r4, #0 adds r1, r5, #0 bl __divsi3 mov r2, r8 strh r0, [r2, #4] adds r0, r4, #0 adds r1, r5, #0 bl __modsi3 mov r4, sp lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c bl __divsi3 strh r0, [r4, #6] movs r3, #0xa5 lsls r3, r3, #2 adds r6, r6, r3 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #3 bne _0804D4F4 movs r1, #0 ldr r6, _0804D4D4 @ =0x03005EC0 ldr r5, _0804D4D8 @ =0xFFFFFD40 adds r3, r6, r5 ldr r5, _0804D4DC @ =0x00000179 ldr r2, _0804D4E0 @ =0x000001FF ldr r4, _0804D4E4 @ =0x00000199 _0804D47E: lsls r0, r1, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r1, r0, r4 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804D47E ldr r1, _0804D4E8 @ =0x040000D4 str r6, [r1] ldr r0, _0804D4EC @ =0x060022C0 str r0, [r1, #4] ldr r0, _0804D4F0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] mov r1, sb ldr r0, [r1] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0 strb r1, [r0] mov r3, sb ldr r0, [r3] ldr r5, _0804D4CC @ =0x00000296 adds r0, r0, r5 strh r1, [r0] b _0804D556 .align 2, 0 _0804D4C8: .4byte 0x020314E0 _0804D4CC: .4byte 0x00000296 _0804D4D0: .4byte gMain _0804D4D4: .4byte 0x03005EC0 _0804D4D8: .4byte 0xFFFFFD40 _0804D4DC: .4byte 0x00000179 _0804D4E0: .4byte 0x000001FF _0804D4E4: .4byte 0x00000199 _0804D4E8: .4byte 0x040000D4 _0804D4EC: .4byte 0x060022C0 _0804D4F0: .4byte 0x80000040 _0804D4F4: ldrh r0, [r7] cmp r0, #0 bne _0804D500 bl sub_4D648 b _0804D542 _0804D500: movs r1, #0 ldr r4, _0804D578 @ =0x03005C00 _0804D504: lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r0, _0804D57C @ =0x00000179 adds r1, r2, r0 lsls r1, r1, #1 adds r1, r1, r4 lsls r0, r2, #1 mov r5, sp adds r3, r5, r0 movs r5, #0 ldrsh r0, [r3, r5] lsls r0, r0, #1 ldr r5, _0804D580 @ =0xFFFFC140 adds r0, r0, r5 strh r0, [r1] ldr r0, _0804D584 @ =0x00000199 adds r1, r2, r0 lsls r1, r1, #1 adds r1, r1, r4 movs r5, #0 ldrsh r0, [r3, r5] lsls r0, r0, #1 ldr r3, _0804D588 @ =0xFFFFC141 adds r0, r0, r3 strh r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _0804D504 _0804D542: ldr r1, _0804D58C @ =0x040000D4 ldr r0, _0804D590 @ =0x03005EC0 str r0, [r1] ldr r0, _0804D594 @ =0x060022C0 str r0, [r1, #4] ldr r0, _0804D598 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] ldr r5, _0804D59C @ =0x020314E0 mov sb, r5 _0804D556: mov r1, sb ldr r0, [r1] ldr r2, _0804D5A0 @ =0x00000296 adds r3, r0, r2 ldrh r2, [r3] adds r1, r2, #0 movs r0, #0xe1 lsls r0, r0, #2 cmp r1, r0 bhi _0804D5E8 movs r0, #8 ands r0, r2 cmp r0, #0 beq _0804D5A8 ldr r1, _0804D58C @ =0x040000D4 ldr r0, _0804D5A4 @ =0x086B0884 b _0804D5AC .align 2, 0 _0804D578: .4byte 0x03005C00 _0804D57C: .4byte 0x00000179 _0804D580: .4byte 0xFFFFC140 _0804D584: .4byte 0x00000199 _0804D588: .4byte 0xFFFFC141 _0804D58C: .4byte 0x040000D4 _0804D590: .4byte 0x03005EC0 _0804D594: .4byte 0x060022C0 _0804D598: .4byte 0x80000040 _0804D59C: .4byte 0x020314E0 _0804D5A0: .4byte 0x00000296 _0804D5A4: .4byte 0x086B0884 _0804D5A8: ldr r1, _0804D5D4 @ =0x040000D4 ldr r0, _0804D5D8 @ =0x081C0064 _0804D5AC: str r0, [r1] ldr r0, _0804D5DC @ =0x05000180 str r0, [r1, #4] ldr r0, _0804D5E0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] mov r3, sb ldr r0, [r3] ldr r5, _0804D5E4 @ =0x00000296 adds r0, r0, r5 ldrh r1, [r0] movs r0, #0xe1 lsls r0, r0, #2 cmp r1, r0 bne _0804D628 movs r0, #0x19 bl m4aSongNumStart b _0804D628 .align 2, 0 _0804D5D4: .4byte 0x040000D4 _0804D5D8: .4byte 0x081C0064 _0804D5DC: .4byte 0x05000180 _0804D5E0: .4byte 0x80000010 _0804D5E4: .4byte 0x00000296 _0804D5E8: movs r0, #0xe1 lsls r0, r0, #3 cmp r1, r0 bhi _0804D628 ldrh r0, [r3] movs r1, #0x16 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xb bl __udivsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0804D618 ldr r1, _0804D610 @ =0x040000D4 ldr r0, _0804D614 @ =0x086B08A4 b _0804D61C .align 2, 0 _0804D610: .4byte 0x040000D4 _0804D614: .4byte 0x086B08A4 _0804D618: ldr r1, _0804D638 @ =0x040000D4 ldr r0, _0804D63C @ =0x081C0064 _0804D61C: str r0, [r1] ldr r0, _0804D640 @ =0x05000180 str r0, [r1, #4] ldr r0, _0804D644 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0804D628: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804D638: .4byte 0x040000D4 _0804D63C: .4byte 0x081C0064 _0804D640: .4byte 0x05000180 _0804D644: .4byte 0x80000010 thumb_func_start sub_4D648 sub_4D648: @ 0x0804D648 push {r4, r5, r6, lr} ldr r2, _0804D6A0 @ =0x020314E0 ldr r0, [r2] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] ldr r2, _0804D6A4 @ =0x00000296 adds r0, r0, r2 strh r1, [r0] ldr r6, _0804D6A8 @ =0x03005EC0 ldr r0, _0804D6AC @ =0xFFFFFD40 adds r3, r6, r0 ldr r5, _0804D6B0 @ =0x00000179 subs r2, #0x97 ldr r4, _0804D6B4 @ =0x00000199 _0804D66C: lsls r0, r1, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r1, r0, r4 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804D66C ldr r1, _0804D6B8 @ =0x040000D4 str r6, [r1] ldr r0, _0804D6BC @ =0x060022C0 str r0, [r1, #4] ldr r0, _0804D6C0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804D6A0: .4byte 0x020314E0 _0804D6A4: .4byte 0x00000296 _0804D6A8: .4byte 0x03005EC0 _0804D6AC: .4byte 0xFFFFFD40 _0804D6B0: .4byte 0x00000179 _0804D6B4: .4byte 0x00000199 _0804D6B8: .4byte 0x040000D4 _0804D6BC: .4byte 0x060022C0 _0804D6C0: .4byte 0x80000040 thumb_func_start sub_4D6C4 sub_4D6C4: @ 0x0804D6C4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r0, #0 mov ip, r0 ldr r0, _0804D7B0 @ =gMain ldrb r2, [r0, #4] movs r3, #0 adds r7, r0, #0 cmp r2, #0 beq _0804D6E6 ldr r3, _0804D7B4 @ =0x0000FFE8 cmp r2, #1 beq _0804D6E6 movs r3, #0 movs r1, #8 mov ip, r1 _0804D6E6: ldrb r0, [r7, #4] cmp r0, #1 bls _0804D6EE b _0804D810 _0804D6EE: ldr r6, _0804D7B8 @ =0x020314E0 ldr r1, [r6] lsls r0, r3, #0x10 asrs r0, r0, #0x10 subs r0, #0xf4 ldr r4, _0804D7BC @ =0x000005FC adds r2, r1, r4 movs r5, #0 movs r3, #0 strh r0, [r2] ldr r2, _0804D7C0 @ =0x000005FE adds r0, r1, r2 strh r3, [r0] ldr r0, _0804D7C4 @ =0x000005FB adds r1, r1, r0 strb r5, [r1] ldr r6, [r6] ldr r0, _0804D7C8 @ =0x02031520 ldrh r1, [r0, #0x14] adds r3, r6, #0 adds r3, #0x4c strh r1, [r3] ldrh r1, [r0, #0x16] adds r5, r6, #0 adds r5, #0x4e strh r1, [r5] movs r1, #0x16 ldrsh r0, [r0, r1] lsls r0, r0, #8 str r0, [r6, #0x54] ldrh r1, [r3] adds r0, r6, #0 adds r0, #0x58 strh r1, [r0] adds r4, r6, r4 ldrh r0, [r4] ldrh r2, [r5] adds r0, r0, r2 adds r1, r6, #0 adds r1, #0x5a strh r0, [r1] ldrh r1, [r3] mov r0, ip lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r1, r2, r1 mov ip, r1 movs r1, #0xbc lsls r1, r1, #2 adds r0, r7, r1 mov r1, ip strh r1, [r0] ldrh r0, [r4] ldrh r1, [r5] adds r0, r0, r1 ldr r1, _0804D7CC @ =0x000002F2 strh r0, [r1, r7] ldrh r0, [r3] adds r0, r2, r0 adds r1, #2 strh r0, [r1, r7] ldrh r0, [r4] ldrh r1, [r5] adds r0, r0, r1 ldr r1, _0804D7D0 @ =0x000002F6 strh r0, [r1, r7] ldrh r0, [r3] adds r2, r2, r0 subs r1, #0xa adds r0, r7, r1 strh r2, [r0] ldrh r0, [r4] ldrh r5, [r5] adds r0, r0, r5 ldr r2, _0804D7D4 @ =0x000002EE adds r1, r7, r2 strh r0, [r1] ldrb r0, [r7, #4] cmp r0, #0 bne _0804D7E4 ldr r5, _0804D7D8 @ =0x00000283 adds r0, r6, r5 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0804D7DC movs r0, #0x1c bl m4aSongNumStart b _0804D90E .align 2, 0 _0804D7B0: .4byte gMain _0804D7B4: .4byte 0x0000FFE8 _0804D7B8: .4byte 0x020314E0 _0804D7BC: .4byte 0x000005FC _0804D7C0: .4byte 0x000005FE _0804D7C4: .4byte 0x000005FB _0804D7C8: .4byte 0x02031520 _0804D7CC: .4byte 0x000002F2 _0804D7D0: .4byte 0x000002F6 _0804D7D4: .4byte 0x000002EE _0804D7D8: .4byte 0x00000283 _0804D7DC: movs r0, #0x5b bl m4aSongNumStart b _0804D90E _0804D7E4: ldr r7, _0804D804 @ =0x00000283 adds r0, r6, r7 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0804D808 movs r0, #0x20 bl m4aSongNumStart b _0804D90E .align 2, 0 _0804D804: .4byte 0x00000283 _0804D808: movs r0, #0x5c bl m4aSongNumStart b _0804D90E _0804D810: ldr r3, _0804D838 @ =0x020314E0 ldr r1, [r3] ldr r2, _0804D83C @ =0x000005FC adds r0, r1, r2 movs r4, #0 movs r2, #0 strh r2, [r0] ldr r5, _0804D840 @ =0x000005FE adds r0, r1, r5 strh r2, [r0] ldr r0, _0804D844 @ =0x000005FB adds r1, r1, r0 strb r4, [r1] ldrb r0, [r7, #4] cmp r0, #3 bhi _0804D84C ldr r0, [r3] adds r0, #0xe6 ldr r1, _0804D848 @ =0x0000FFE8 b _0804D862 .align 2, 0 _0804D838: .4byte 0x020314E0 _0804D83C: .4byte 0x000005FC _0804D840: .4byte 0x000005FE _0804D844: .4byte 0x000005FB _0804D848: .4byte 0x0000FFE8 _0804D84C: cmp r0, #6 bne _0804D85C ldr r0, [r3] adds r0, #0xe6 ldr r1, _0804D858 @ =0x0000FFA8 b _0804D862 .align 2, 0 _0804D858: .4byte 0x0000FFA8 _0804D85C: ldr r0, [r3] adds r0, #0xe6 ldr r1, _0804D93C @ =0x0000FFC0 _0804D862: strh r1, [r0] ldr r0, _0804D940 @ =0x020314E0 ldr r5, [r0] ldr r1, _0804D944 @ =0x02031520 ldrh r0, [r1, #0x14] adds r4, r5, #0 adds r4, #0x4c strh r0, [r4] adds r0, r5, #0 adds r0, #0xe6 ldrh r0, [r0] ldrh r2, [r1, #0x16] adds r0, r0, r2 adds r6, r5, #0 adds r6, #0x4e strh r0, [r6] movs r7, #0x16 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r5, #0x54] ldrh r1, [r4] adds r0, r5, #0 adds r0, #0x58 strh r1, [r0] ldr r1, _0804D948 @ =0x000005FC adds r0, r5, r1 ldrh r0, [r0] ldrh r2, [r6] adds r0, r0, r2 adds r1, r5, #0 adds r1, #0x5a strh r0, [r1] ldr r3, _0804D94C @ =gMain ldrh r0, [r4] mov r7, ip lsls r1, r7, #0x10 asrs r1, r1, #0x10 adds r0, r1, r0 mov r8, r0 movs r2, #0xbc lsls r2, r2, #2 adds r0, r3, r2 mov r7, r8 strh r7, [r0] ldrh r2, [r6] ldr r7, _0804D950 @ =0x000002F2 adds r0, r3, r7 strh r2, [r0] ldrh r0, [r4] adds r0, r1, r0 movs r2, #0xbd lsls r2, r2, #2 adds r2, r2, r3 mov ip, r2 strh r0, [r2] ldrh r2, [r6] adds r7, #4 adds r0, r3, r7 strh r2, [r0] ldrh r0, [r4] adds r1, r1, r0 movs r2, #0xbb lsls r2, r2, #2 adds r0, r3, r2 strh r1, [r0] movs r7, #0 ldrsh r0, [r6, r7] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r2, #2 adds r1, r3, r2 strh r0, [r1] ldrb r0, [r3, #4] cmp r0, #3 bne _0804D90E movs r7, #0xa4 lsls r7, r7, #2 adds r0, r5, r7 ldr r0, [r0] ldr r1, _0804D954 @ =0x000007FF ands r0, r1 lsrs r0, r0, #3 add r0, r8 mov r1, ip strh r0, [r1] _0804D90E: ldr r1, _0804D94C @ =gMain ldr r5, _0804D958 @ =0x000002EA adds r2, r1, r5 movs r0, #0x50 strh r0, [r2] ldr r0, _0804D940 @ =0x020314E0 ldr r2, [r0] ldr r7, _0804D95C @ =0x000002F6 adds r1, r1, r7 ldrh r1, [r1] adds r0, r2, #0 adds r0, #0xcc strh r1, [r0] subs r0, #2 strh r1, [r0] movs r0, #0x80 lsls r0, r0, #5 str r0, [r2, #0x2c] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804D93C: .4byte 0x0000FFC0 _0804D940: .4byte 0x020314E0 _0804D944: .4byte 0x02031520 _0804D948: .4byte 0x000005FC _0804D94C: .4byte gMain _0804D950: .4byte 0x000002F2 _0804D954: .4byte 0x000007FF _0804D958: .4byte 0x000002EA _0804D95C: .4byte 0x000002F6 thumb_func_start sub_4D960 sub_4D960: @ 0x0804D960 push {r4, r5, r6, r7, lr} movs r7, #0x80 lsls r7, r7, #5 ldr r0, _0804D9A4 @ =gMain ldrb r0, [r0, #0xf] cmp r0, #0 bne _0804D972 bl sub_4E2F8 _0804D972: ldr r1, _0804D9A8 @ =0x020314E0 ldr r2, [r1] ldr r0, _0804D9AC @ =0x000005FB adds r4, r2, r0 movs r0, #0 ldrsb r0, [r4, r0] adds r6, r1, #0 cmp r0, #0 beq _0804D9C2 ldr r3, _0804D9B0 @ =0x000005FC adds r1, r2, r3 ldr r5, _0804D9B4 @ =0x000005FE adds r0, r2, r5 ldrh r3, [r1] movs r5, #0 ldrsh r2, [r1, r5] movs r5, #0 ldrsh r0, [r0, r5] cmp r2, r0 beq _0804D9BE cmp r2, r0 ble _0804D9B8 subs r0, r3, #1 strh r0, [r1] b _0804D9C2 .align 2, 0 _0804D9A4: .4byte gMain _0804D9A8: .4byte 0x020314E0 _0804D9AC: .4byte 0x000005FB _0804D9B0: .4byte 0x000005FC _0804D9B4: .4byte 0x000005FE _0804D9B8: adds r0, r3, #1 strh r0, [r1] b _0804D9C2 _0804D9BE: movs r0, #0 strb r0, [r4] _0804D9C2: ldr r5, [r6] ldrb r0, [r5, #0x1f] cmp r0, #0 bne _0804D9E0 ldr r1, _0804DA2C @ =0x00001330 adds r0, r5, r1 ldr r0, [r0] movs r2, #0x32 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 movs r3, #0x80 lsls r3, r3, #5 adds r7, r0, r3 _0804D9E0: ldr r4, [r5, #0x2c] subs r0, r7, r4 movs r1, #0xa bl __divsi3 adds r4, r4, r0 str r4, [r5, #0x2c] ldr r1, _0804DA2C @ =0x00001330 adds r0, r5, r1 ldr r0, [r0] ldr r0, [r0, #0x38] adds r1, r0, r4 ldr r2, _0804DA30 @ =0x02031520 movs r3, #0x18 ldrsh r0, [r2, r3] lsls r0, r0, #8 cmp r1, r0 bgt _0804DA0E movs r4, #0x1a ldrsh r0, [r2, r4] lsls r0, r0, #8 cmp r1, r0 bge _0804DA10 _0804DA0E: adds r1, r0, #0 _0804DA10: ldr r5, _0804DA34 @ =0xFFFFB000 adds r1, r1, r5 ldr r0, [r6] ldr r4, [r0, #0x54] subs r0, r1, r4 movs r1, #0xc bl __divsi3 adds r1, r0, #0 cmp r1, #0 ble _0804DA38 cmp r1, #0x4f bgt _0804DA42 b _0804DA40 .align 2, 0 _0804DA2C: .4byte 0x00001330 _0804DA30: .4byte 0x02031520 _0804DA34: .4byte 0xFFFFB000 _0804DA38: movs r0, #0x50 rsbs r0, r0, #0 cmp r1, r0 ble _0804DA42 _0804DA40: movs r1, #0 _0804DA42: adds r4, r4, r1 ldr r1, [r6] ldr r2, _0804DA7C @ =0x000005FA adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804DAAC str r4, [r1, #0x54] adds r0, r4, #0 cmp r0, #0 bge _0804DA5E adds r0, #0xff _0804DA5E: asrs r0, r0, #8 adds r2, r1, #0 adds r2, #0x4e strh r0, [r2] ldr r3, _0804DA80 @ =0x00001330 adds r0, r1, r3 ldr r0, [r0] movs r4, #0x10 ldrsh r0, [r0, r4] cmp r0, #0xe5 ble _0804DA84 adds r1, #0x4c ldrh r0, [r1] adds r0, #1 b _0804DA8A .align 2, 0 _0804DA7C: .4byte 0x000005FA _0804DA80: .4byte 0x00001330 _0804DA84: adds r1, #0x4c ldrh r0, [r1] subs r0, #1 _0804DA8A: strh r0, [r1] ldr r0, _0804DAA0 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0x4c movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0x10 ble _0804DAA4 movs r0, #0x10 b _0804DAAA .align 2, 0 _0804DAA0: .4byte 0x020314E0 _0804DAA4: cmp r0, #0 bge _0804DAAC movs r0, #0 _0804DAAA: strh r0, [r1] _0804DAAC: bl sub_4DFA0 ldr r3, _0804DB14 @ =gMain ldr r0, _0804DB18 @ =0x020314E0 ldr r4, [r0] adds r2, r4, #0 adds r2, #0x4c movs r1, #0x90 lsls r1, r1, #1 adds r0, r4, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804DB1C @ =0x000002AA adds r0, r4, r2 ldrh r0, [r0] adds r0, r0, r1 movs r5, #0xbd lsls r5, r5, #2 adds r1, r3, r5 strh r0, [r1] adds r1, r4, #0 adds r1, #0x4e ldr r2, _0804DB20 @ =0x00000121 adds r0, r4, r2 movs r2, #0 ldrsb r2, [r0, r2] ldrh r1, [r1] adds r2, r2, r1 ldr r5, _0804DB24 @ =0x000005FC adds r0, r4, r5 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0xe6 adds r1, r1, r2 ldrh r0, [r0] adds r1, r1, r0 adds r0, r4, #0 adds r0, #0xcc strh r1, [r0] ldr r0, _0804DB28 @ =0x000002F6 adds r3, r3, r0 ldrh r0, [r3] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #8 ble _0804DB2C movs r2, #8 b _0804DB36 .align 2, 0 _0804DB14: .4byte gMain _0804DB18: .4byte 0x020314E0 _0804DB1C: .4byte 0x000002AA _0804DB20: .4byte 0x00000121 _0804DB24: .4byte 0x000005FC _0804DB28: .4byte 0x000002F6 _0804DB2C: movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _0804DB36 ldr r2, _0804DBE0 @ =0x0000FFF8 _0804DB36: ldr r3, _0804DBE4 @ =gMain cmp r2, #0 beq _0804DB46 ldr r4, _0804DBE8 @ =0x000002F6 adds r1, r3, r4 ldrh r0, [r1] subs r0, r0, r2 strh r0, [r1] _0804DB46: movs r5, #0xbd lsls r5, r5, #2 adds r0, r3, r5 ldrh r2, [r0] movs r1, #0xbc lsls r1, r1, #2 adds r0, r3, r1 strh r2, [r0] ldr r4, _0804DBE8 @ =0x000002F6 adds r0, r3, r4 ldrh r1, [r0] subs r5, #2 adds r0, r3, r5 strh r1, [r0] subs r4, #0xa adds r0, r3, r4 strh r2, [r0] subs r5, #4 adds r0, r3, r5 strh r1, [r0] ldr r0, _0804DBEC @ =0x020314E0 ldr r4, [r0] adds r2, r4, #0 adds r2, #0x4c movs r1, #0x90 lsls r1, r1, #1 adds r0, r4, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804DBF0 @ =0x000002AA adds r0, r4, r2 ldrh r0, [r0] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x58 strh r0, [r1] adds r6, r4, #0 adds r6, #0x4e ldr r3, _0804DBF4 @ =0x00000121 adds r3, r3, r4 mov ip, r3 movs r1, #0 ldrsb r1, [r3, r1] ldrh r5, [r6] adds r1, r1, r5 ldr r0, _0804DBF8 @ =0x000005FC adds r3, r4, r0 ldrh r0, [r3] adds r5, r4, #0 adds r5, #0xe6 adds r0, r0, r1 ldrh r1, [r5] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x5a strh r0, [r1] adds r2, r4, #0 adds r2, #0x68 ldrh r1, [r2] adds r0, r4, #0 adds r0, #0x6a strh r1, [r0] mov r4, ip movs r1, #0 ldrsb r1, [r4, r1] ldrh r6, [r6] adds r1, r1, r6 ldrh r0, [r3] adds r0, r0, r1 ldrh r5, [r5] adds r0, r0, r5 strh r0, [r2] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804DBE0: .4byte 0x0000FFF8 _0804DBE4: .4byte gMain _0804DBE8: .4byte 0x000002F6 _0804DBEC: .4byte 0x020314E0 _0804DBF0: .4byte 0x000002AA _0804DBF4: .4byte 0x00000121 _0804DBF8: .4byte 0x000005FC thumb_func_start sub_4DBFC sub_4DBFC: @ 0x0804DBFC push {r4, r5, r6, r7, lr} movs r6, #0x80 lsls r6, r6, #5 ldr r0, _0804DC48 @ =gMain ldrb r0, [r0, #0xf] movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 cmp r0, #0 bne _0804DC14 bl sub_4E468 _0804DC14: ldr r1, _0804DC4C @ =0x020314E0 ldr r2, [r1] ldr r0, _0804DC50 @ =0x000005FB adds r4, r2, r0 movs r0, #0 ldrsb r0, [r4, r0] adds r7, r1, #0 cmp r0, #0 beq _0804DC66 ldr r3, _0804DC54 @ =0x000005FC adds r1, r2, r3 ldr r5, _0804DC58 @ =0x000005FE adds r0, r2, r5 ldrh r3, [r1] movs r5, #0 ldrsh r2, [r1, r5] movs r5, #0 ldrsh r0, [r0, r5] cmp r2, r0 beq _0804DC62 cmp r2, r0 ble _0804DC5C subs r0, r3, #1 strh r0, [r1] b _0804DC66 .align 2, 0 _0804DC48: .4byte gMain _0804DC4C: .4byte 0x020314E0 _0804DC50: .4byte 0x000005FB _0804DC54: .4byte 0x000005FC _0804DC58: .4byte 0x000005FE _0804DC5C: adds r0, r3, #1 strh r0, [r1] b _0804DC66 _0804DC62: movs r0, #0 strb r0, [r4] _0804DC66: ldr r5, [r7] ldrb r0, [r5, #0x1f] cmp r0, #0 bne _0804DC84 ldr r6, _0804DCD0 @ =0x00001330 adds r0, r5, r6 ldr r0, [r0] movs r2, #0x32 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 movs r3, #0x80 lsls r3, r3, #5 adds r6, r0, r3 _0804DC84: ldr r4, [r5, #0x2c] subs r0, r6, r4 movs r1, #0xa bl __divsi3 adds r4, r4, r0 str r4, [r5, #0x2c] ldr r6, _0804DCD0 @ =0x00001330 adds r0, r5, r6 ldr r0, [r0] ldr r0, [r0, #0x38] adds r2, r0, r4 ldr r1, _0804DCD4 @ =0x02031520 movs r3, #0x18 ldrsh r0, [r1, r3] lsls r0, r0, #8 cmp r2, r0 bgt _0804DCB2 movs r4, #0x1a ldrsh r0, [r1, r4] lsls r0, r0, #8 cmp r2, r0 bge _0804DCB4 _0804DCB2: adds r2, r0, #0 _0804DCB4: ldr r5, _0804DCD8 @ =0xFFFFB000 adds r2, r2, r5 ldr r0, [r7] ldr r4, [r0, #0x54] subs r0, r2, r4 movs r1, #0xc bl __divsi3 adds r1, r0, #0 cmp r1, #0 ble _0804DCDC cmp r1, #0x4f bgt _0804DCE6 b _0804DCE4 .align 2, 0 _0804DCD0: .4byte 0x00001330 _0804DCD4: .4byte 0x02031520 _0804DCD8: .4byte 0xFFFFB000 _0804DCDC: movs r0, #0x50 rsbs r0, r0, #0 cmp r1, r0 ble _0804DCE6 _0804DCE4: movs r1, #0 _0804DCE6: adds r4, r4, r1 ldr r0, _0804DD80 @ =0x020314E0 ldr r2, [r0] ldr r6, _0804DD84 @ =0x000005FA adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804DD0C str r4, [r2, #0x54] adds r0, r4, #0 cmp r0, #0 bge _0804DD04 adds r0, #0xff _0804DD04: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x4e strh r1, [r0] _0804DD0C: bl sub_4DFA0 ldr r2, _0804DD88 @ =gMain ldr r0, _0804DD80 @ =0x020314E0 ldr r3, [r0] adds r1, r3, #0 adds r1, #0x4c movs r4, #0x90 lsls r4, r4, #1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r1] adds r0, r0, r1 ldr r5, _0804DD8C @ =0x000002AA adds r1, r3, r5 adds r0, #8 ldrh r1, [r1] adds r0, r0, r1 movs r6, #0xbc lsls r6, r6, #2 adds r2, r2, r6 strh r0, [r2] adds r2, r3, #0 adds r2, #0x4e ldr r1, _0804DD90 @ =0x00000121 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804DD94 @ =0x000005FC adds r0, r3, r2 ldrh r0, [r0] adds r2, r3, #0 adds r2, #0xe6 adds r0, r0, r1 ldrh r2, [r2] adds r0, r0, r2 movs r4, #0xab lsls r4, r4, #2 adds r1, r3, r4 ldrh r1, [r1] adds r1, r1, r0 adds r0, r3, #0 adds r0, #0xcc strh r1, [r0] subs r0, #2 ldrh r0, [r0] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #8 ble _0804DD98 movs r2, #8 b _0804DDA2 .align 2, 0 _0804DD80: .4byte 0x020314E0 _0804DD84: .4byte 0x000005FA _0804DD88: .4byte gMain _0804DD8C: .4byte 0x000002AA _0804DD90: .4byte 0x00000121 _0804DD94: .4byte 0x000005FC _0804DD98: movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _0804DDA2 ldr r2, _0804DDDC @ =0x0000FFF8 _0804DDA2: lsls r0, r2, #0x10 asrs r2, r0, #0x10 ldr r7, _0804DDE0 @ =0x020314E0 cmp r2, #0 beq _0804DDB6 ldr r1, [r7] adds r1, #0xca ldrh r0, [r1] subs r0, r0, r2 strh r0, [r1] _0804DDB6: ldr r1, _0804DDE4 @ =gMain ldr r0, [r7] adds r0, #0xca ldrh r2, [r0] ldr r5, _0804DDE8 @ =0x000002F2 adds r0, r1, r5 strh r2, [r0] ldrb r0, [r1, #4] subs r0, #2 adds r4, r1, #0 cmp r0, #5 bls _0804DDD0 b _0804DF18 _0804DDD0: lsls r0, r0, #2 ldr r1, _0804DDEC @ =_0804DDF0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804DDDC: .4byte 0x0000FFF8 _0804DDE0: .4byte 0x020314E0 _0804DDE4: .4byte gMain _0804DDE8: .4byte 0x000002F2 _0804DDEC: .4byte _0804DDF0 _0804DDF0: @ jump table .4byte _0804DE08 @ case 0 .4byte _0804DE4C @ case 1 .4byte _0804DE98 @ case 2 .4byte _0804DE98 @ case 3 .4byte _0804DEC8 @ case 4 .4byte _0804DEFC @ case 5 _0804DE08: movs r6, #0xbc lsls r6, r6, #2 adds r0, r4, r6 ldrh r2, [r0] movs r1, #0xbd lsls r1, r1, #2 adds r0, r4, r1 strh r2, [r0] ldr r3, _0804DE40 @ =0x000002F2 adds r0, r4, r3 ldrh r1, [r0] ldr r5, _0804DE44 @ =0x000002F6 adds r0, r4, r5 strh r1, [r0] subs r6, #4 adds r0, r4, r6 strh r2, [r0] ldr r0, [r7] adds r0, #0xca movs r1, #0 ldrsh r0, [r0, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 ldr r2, _0804DE48 @ =0x000002EE adds r1, r4, r2 strh r0, [r1] b _0804DF18 .align 2, 0 _0804DE40: .4byte 0x000002F2 _0804DE44: .4byte 0x000002F6 _0804DE48: .4byte 0x000002EE _0804DE4C: movs r3, #0xbc lsls r3, r3, #2 adds r2, r4, r3 ldr r0, [r7] movs r5, #0xa4 lsls r5, r5, #2 adds r0, r0, r5 ldr r0, [r0] ldr r1, _0804DE8C @ =0x000007FF ands r0, r1 lsrs r0, r0, #3 ldrh r2, [r2] adds r0, r2, r0 movs r6, #0xbd lsls r6, r6, #2 adds r1, r4, r6 movs r3, #0 strh r0, [r1] ldr r1, _0804DE90 @ =0x000002F2 adds r0, r4, r1 ldrh r1, [r0] adds r5, #0x66 adds r0, r4, r5 strh r1, [r0] subs r6, #8 adds r0, r4, r6 strh r2, [r0] ldr r1, _0804DE94 @ =0x000002EE adds r0, r4, r1 strh r3, [r0] b _0804DF18 .align 2, 0 _0804DE8C: .4byte 0x000007FF _0804DE90: .4byte 0x000002F2 _0804DE94: .4byte 0x000002EE _0804DE98: movs r2, #0xbc lsls r2, r2, #2 adds r0, r4, r2 ldrh r2, [r0] movs r3, #0xbd lsls r3, r3, #2 adds r0, r4, r3 strh r2, [r0] ldr r5, _0804DEC0 @ =0x000002F2 adds r0, r4, r5 ldrh r1, [r0] ldr r6, _0804DEC4 @ =0x000002F6 adds r0, r4, r6 strh r1, [r0] subs r3, #8 adds r0, r4, r3 strh r2, [r0] subs r5, #4 adds r0, r4, r5 b _0804DF16 .align 2, 0 _0804DEC0: .4byte 0x000002F2 _0804DEC4: .4byte 0x000002F6 _0804DEC8: movs r6, #0xbc lsls r6, r6, #2 adds r0, r4, r6 ldrh r3, [r0] movs r1, #0xbd lsls r1, r1, #2 adds r0, r4, r1 strh r3, [r0] ldr r5, _0804DEF4 @ =0x000002F2 adds r2, r4, r5 ldrh r0, [r2] lsrs r0, r0, #2 adds r6, #6 adds r1, r4, r6 strh r0, [r1] movs r1, #0xbb lsls r1, r1, #2 adds r0, r4, r1 strh r3, [r0] ldrh r1, [r2] ldr r2, _0804DEF8 @ =0x000002EE b _0804DF14 .align 2, 0 _0804DEF4: .4byte 0x000002F2 _0804DEF8: .4byte 0x000002EE _0804DEFC: movs r3, #0xbc lsls r3, r3, #2 adds r0, r4, r3 ldrh r1, [r0] movs r5, #0xbd lsls r5, r5, #2 adds r0, r4, r5 strh r1, [r0] ldr r6, _0804DF8C @ =0x000002F2 adds r0, r4, r6 ldrh r1, [r0] ldr r2, _0804DF90 @ =0x000002F6 _0804DF14: adds r0, r4, r2 _0804DF16: strh r1, [r0] _0804DF18: ldr r3, [r7] adds r2, r3, #0 adds r2, #0x4c movs r4, #0x90 lsls r4, r4, #1 adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r5, _0804DF94 @ =0x000002AA adds r0, r3, r5 ldrh r0, [r0] adds r0, r0, r1 adds r1, r3, #0 adds r1, #0x58 strh r0, [r1] movs r6, #0x4e adds r6, r6, r3 mov ip, r6 ldr r0, _0804DF98 @ =0x00000121 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] ldrh r1, [r6] adds r0, r0, r1 ldr r4, _0804DF9C @ =0x000005FC adds r2, r3, r4 ldrh r1, [r2] adds r4, r3, #0 adds r4, #0xe6 adds r1, r1, r0 ldrh r6, [r4] adds r1, r1, r6 movs r6, #0xab lsls r6, r6, #2 adds r0, r3, r6 ldrh r0, [r0] adds r0, r0, r1 adds r1, r3, #0 adds r1, #0x5a strh r0, [r1] movs r1, #0 ldrsb r1, [r5, r1] mov r0, ip ldrh r0, [r0] adds r1, r1, r0 ldrh r0, [r2] adds r0, r0, r1 ldrh r4, [r4] adds r0, r0, r4 adds r1, r3, #0 adds r1, #0x68 strh r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804DF8C: .4byte 0x000002F2 _0804DF90: .4byte 0x000002F6 _0804DF94: .4byte 0x000002AA _0804DF98: .4byte 0x00000121 _0804DF9C: .4byte 0x000005FC thumb_func_start sub_4DFA0 sub_4DFA0: @ 0x0804DFA0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #8 ldr r3, _0804E0C8 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E084 ldr r1, _0804E0CC @ =0x000005A4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, #2 beq _0804E084 ldr r4, _0804E0D0 @ =0x0000061C adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E084 ldrb r0, [r2, #6] cmp r0, #0 beq _0804E008 movs r1, #0x95 lsls r1, r1, #1 adds r0, r2, r1 ldrb r1, [r0] cmp r1, #0 bne _0804E008 ldr r4, _0804E0D4 @ =0x00000129 adds r0, r2, r4 strb r1, [r0] ldr r0, [r3] movs r2, #0x94 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0 bne _0804E008 movs r0, #4 strb r0, [r1] movs r0, #0x78 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0804E008: ldr r2, _0804E0C8 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #7] cmp r0, #0 beq _0804E044 movs r3, #0x95 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] cmp r0, #0 bne _0804E044 ldr r4, _0804E0D4 @ =0x00000129 adds r1, r1, r4 movs r0, #1 strb r0, [r1] ldr r0, [r2] movs r2, #0x94 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0 bne _0804E044 movs r0, #4 strb r0, [r1] movs r0, #0x78 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0804E044: ldr r0, _0804E0C8 @ =0x020314E0 ldr r3, [r0] ldrb r1, [r3, #8] mov r8, r0 cmp r1, #0 beq _0804E084 movs r4, #0x95 lsls r4, r4, #1 adds r0, r3, r4 ldrb r0, [r0] cmp r0, #0 bne _0804E084 ldr r0, _0804E0D4 @ =0x00000129 adds r1, r3, r0 movs r0, #2 strb r0, [r1] mov r1, r8 ldr r0, [r1] movs r2, #0x94 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0 bne _0804E096 movs r0, #4 strb r0, [r1] movs r0, #0x78 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0804E084: ldr r0, _0804E0C8 @ =0x020314E0 ldr r1, [r0] movs r3, #0x94 lsls r3, r3, #1 adds r1, r1, r3 ldrb r1, [r1] mov r8, r0 cmp r1, #0 beq _0804E174 _0804E096: mov r4, r8 ldr r0, [r4] movs r2, #0x94 lsls r2, r2, #1 adds r0, r0, r2 ldrb r1, [r0] subs r1, #1 strb r1, [r0] ldr r1, [r4] adds r2, r1, r2 ldrb r3, [r2] cmp r3, #0 bne _0804E174 ldr r2, _0804E0D4 @ =0x00000129 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 beq _0804E10C cmp r2, #1 bgt _0804E0D8 cmp r2, #0 beq _0804E0DE b _0804E166 .align 2, 0 _0804E0C8: .4byte 0x020314E0 _0804E0CC: .4byte 0x000005A4 _0804E0D0: .4byte 0x0000061C _0804E0D4: .4byte 0x00000129 _0804E0D8: cmp r2, #2 beq _0804E13C b _0804E166 _0804E0DE: movs r3, #0x8c lsls r3, r3, #1 adds r0, r1, r3 movs r2, #6 strb r2, [r0] mov r4, r8 ldr r0, [r4] movs r1, #0x8e lsls r1, r1, #1 adds r0, r0, r1 movs r1, #0xff strb r1, [r0] ldr r0, [r4] adds r3, #2 adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] movs r4, #0x8f lsls r4, r4, #1 adds r1, r0, r4 movs r0, #1 strb r0, [r1] b _0804E166 _0804E10C: ldr r3, _0804E134 @ =0x00000119 adds r0, r1, r3 movs r1, #6 strb r1, [r0] mov r4, r8 ldr r0, [r4] adds r3, #4 adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] ldr r4, _0804E138 @ =0x0000011B adds r0, r0, r4 strb r1, [r0] mov r1, r8 ldr r0, [r1] adds r3, #2 adds r0, r0, r3 strb r2, [r0] b _0804E166 .align 2, 0 _0804E134: .4byte 0x00000119 _0804E138: .4byte 0x0000011B _0804E13C: movs r4, #0x8d lsls r4, r4, #1 adds r1, r1, r4 movs r0, #6 strb r0, [r1] mov r1, r8 ldr r0, [r1] movs r2, #0x8f lsls r2, r2, #1 adds r0, r0, r2 movs r1, #1 strb r1, [r0] mov r4, r8 ldr r0, [r4] subs r2, #3 adds r0, r0, r2 strb r3, [r0] ldr r0, [r4] ldr r3, _0804E1CC @ =0x0000011F adds r0, r0, r3 strb r1, [r0] _0804E166: mov r4, r8 ldr r0, [r4] movs r2, #0x95 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #0x18 strb r0, [r1] _0804E174: mov r3, r8 ldr r0, [r3] movs r4, #0x95 lsls r4, r4, #1 adds r1, r0, r4 ldrb r0, [r1] cmp r0, #0 beq _0804E188 subs r0, #1 strb r0, [r1] _0804E188: movs r5, #0 mov ip, r8 movs r7, #0x8c lsls r7, r7, #1 movs r6, #0x8e lsls r6, r6, #1 mov r4, sp _0804E196: mov r1, ip ldr r0, [r1] adds r0, r0, r7 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0804E1AC subs r0, r2, #1 strb r0, [r1] _0804E1AC: mov r2, ip ldr r1, [r2] adds r0, r1, r7 adds r3, r0, r5 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #2 bgt _0804E1D0 adds r0, r1, r6 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0 ldrsb r0, [r3, r0] muls r0, r1, r0 b _0804E1E2 .align 2, 0 _0804E1CC: .4byte 0x0000011F _0804E1D0: adds r0, r1, r6 adds r0, r0, r5 movs r2, #0 ldrsb r2, [r0, r2] movs r1, #0 ldrsb r1, [r3, r1] movs r0, #6 subs r0, r0, r1 muls r0, r2, r0 _0804E1E2: strh r0, [r4] adds r4, #2 adds r5, #1 cmp r5, #3 ble _0804E196 mov r3, r8 ldr r1, [r3] mov r2, sp mov r0, sp ldrh r0, [r0, #2] ldrb r2, [r2] adds r0, r0, r2 movs r3, #0x90 lsls r3, r3, #1 adds r1, r1, r3 strb r0, [r1] mov r4, r8 ldr r2, [r4] mov r1, sp mov r0, sp ldrb r0, [r0, #6] ldrb r1, [r1, #4] adds r0, r0, r1 ldr r4, _0804E254 @ =0x00000121 adds r1, r2, r4 strb r0, [r1] mov r0, r8 ldr r2, [r0] adds r0, r2, r3 ldrh r1, [r0] cmp r1, #0 bne _0804E232 adds r4, #5 adds r0, r2, r4 strb r1, [r0] mov r2, r8 ldr r0, [r2] adds r4, #1 adds r0, r0, r4 strb r1, [r0] _0804E232: mov r0, r8 ldr r1, [r0] adds r0, r1, r3 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 ble _0804E258 movs r3, #0x91 lsls r3, r3, #1 adds r1, r1, r3 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 bge _0804E270 subs r0, r3, #1 b _0804E26E .align 2, 0 _0804E254: .4byte 0x00000121 _0804E258: cmp r2, #0 bge _0804E270 movs r4, #0x91 lsls r4, r4, #1 adds r1, r1, r4 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 ble _0804E270 adds r0, r3, #1 _0804E26E: strb r0, [r1] _0804E270: mov r0, r8 ldr r1, [r0] ldr r2, _0804E294 @ =0x00000121 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 ble _0804E29C ldr r3, _0804E298 @ =0x00000123 adds r1, r1, r3 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 bge _0804E2B2 subs r0, r3, #1 b _0804E2B0 .align 2, 0 _0804E294: .4byte 0x00000121 _0804E298: .4byte 0x00000123 _0804E29C: cmp r2, #0 bge _0804E2B2 ldr r4, _0804E2F4 @ =0x00000123 adds r1, r1, r4 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 ble _0804E2B2 adds r0, r3, #1 _0804E2B0: strb r0, [r1] _0804E2B2: mov r0, r8 ldr r1, [r0] movs r2, #0x93 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E2E6 movs r3, #0x90 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] movs r4, #0x91 lsls r4, r4, #1 adds r1, r1, r4 strb r0, [r1] mov r0, r8 ldr r1, [r0] subs r2, #5 adds r0, r1, r2 ldrb r0, [r0] adds r3, #3 adds r1, r1, r3 strb r0, [r1] _0804E2E6: add sp, #8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E2F4: .4byte 0x00000123 thumb_func_start sub_4E2F8 sub_4E2F8: @ 0x0804E2F8 push {r4, r5, r6, r7, lr} ldr r0, _0804E3E4 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r5, r0, #0 cmp r1, #0 beq _0804E328 ldrb r0, [r2, #5] cmp r0, #0 beq _0804E328 adds r0, r2, #0 adds r0, #0x20 ldrb r0, [r0] cmp r0, #0 beq _0804E328 adds r0, r2, #0 adds r0, #0x21 movs r1, #1 strb r1, [r0] ldr r0, [r5] ldr r2, _0804E3E8 @ =0x00000163 adds r0, r0, r2 strb r1, [r0] _0804E328: adds r4, r5, #0 ldr r1, [r4] adds r0, r1, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _0804E372 ldrb r0, [r1, #0xa] cmp r0, #0 beq _0804E372 ldr r0, _0804E3E8 @ =0x00000163 adds r1, r1, r0 movs r6, #0 movs r0, #3 strb r0, [r1] ldr r0, [r4] adds r0, #0x20 ldrb r0, [r0] cmp r0, #0 beq _0804E36C movs r0, #7 bl sub_11B0 ldr r0, [r4] ldr r1, _0804E3EC @ =0x0000132C adds r0, r0, r1 ldr r2, [r0] ldr r1, _0804E3F0 @ =0x0000FDB2 strh r1, [r2, #0x32] ldr r0, [r0] strh r6, [r0, #0x30] movs r0, #0xcd bl m4aSongNumStart _0804E36C: ldr r0, [r5] adds r0, #0x21 strb r6, [r0] _0804E372: ldr r7, _0804E3E4 @ =0x020314E0 ldr r6, [r7] ldr r2, _0804E3EC @ =0x0000132C adds r3, r6, r2 ldr r0, _0804E3F4 @ =0x00001334 adds r4, r6, r0 str r4, [r3] ldr r0, _0804E3F8 @ =0x02031520 movs r2, #0x12 ldrsh r1, [r4, r2] ldrh r5, [r0, #0x2a] movs r2, #0x2a ldrsh r0, [r0, r2] cmp r1, r0 blt _0804E452 movs r2, #0 strh r5, [r4, #0x12] ldr r1, [r3] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r3] movs r4, #0x12 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r3] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r3] movs r4, #0x12 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r1, #0x38] ldr r0, [r3] strh r2, [r0, #0x30] ldr r0, [r3] strh r2, [r0, #0x32] ldr r4, _0804E3FC @ =gMain ldrh r0, [r4, #0x14] cmp r0, #0 bne _0804E452 ldr r1, _0804E400 @ =0x00000724 adds r0, r6, r1 ldrh r0, [r0] cmp r0, #0 beq _0804E404 movs r0, #4 strh r0, [r4, #0x14] movs r0, #8 strb r0, [r4, #0x11] movs r0, #0xcc strh r0, [r4, #0x12] b _0804E452 .align 2, 0 _0804E3E4: .4byte 0x020314E0 _0804E3E8: .4byte 0x00000163 _0804E3EC: .4byte 0x0000132C _0804E3F0: .4byte 0x0000FDB2 _0804E3F4: .4byte 0x00001334 _0804E3F8: .4byte 0x02031520 _0804E3FC: .4byte gMain _0804E400: .4byte 0x00000724 _0804E404: movs r0, #0x50 strh r0, [r4, #0x14] movs r0, #0x10 strb r0, [r4, #0x11] movs r0, #0xc8 strh r0, [r4, #0x12] bl m4aMPlayAllStop movs r0, #0xd bl m4aSongNumStart bl sub_4E598 ldr r2, [r7] movs r3, #0xf1 lsls r3, r3, #1 adds r0, r2, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #2 bne _0804E452 movs r0, #9 ldrsb r0, [r4, r0] cmp r0, #0 bne _0804E452 movs r4, #0xdf lsls r4, r4, #1 adds r0, r2, r4 strb r1, [r0] ldr r1, [r7] movs r0, #0xe0 lsls r0, r0, #1 adds r2, r1, r0 movs r0, #0xc8 lsls r0, r0, #2 strh r0, [r2] adds r1, r1, r3 movs r0, #0 strb r0, [r1] _0804E452: ldr r0, _0804E464 @ =0x020314E0 ldr r0, [r0] adds r0, #0x20 movs r1, #0 strb r1, [r0] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E464: .4byte 0x020314E0 thumb_func_start sub_4E468 sub_4E468: @ 0x0804E468 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r2, _0804E4C4 @ =0x020314E0 ldr r5, [r2] ldr r0, _0804E4C8 @ =0x0000132C mov r8, r0 adds r4, r5, r0 ldr r1, _0804E4CC @ =0x00001334 adds r3, r5, r1 str r3, [r4] ldr r6, _0804E4D0 @ =0x02031520 movs r7, #0x12 ldrsh r1, [r3, r7] movs r7, #0x2a ldrsh r0, [r6, r7] mov ip, r2 cmp r1, r0 blt _0804E572 movs r1, #0 strh r1, [r3, #0x30] ldr r0, [r4] strh r1, [r0, #0x32] ldr r3, _0804E4D4 @ =gMain ldrb r1, [r3, #0xf] movs r0, #0x40 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _0804E4DC ldr r0, _0804E4D8 @ =0x00000386 adds r1, r5, r0 movs r0, #1 strb r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] mov r1, ip ldr r0, [r1] add r0, r8 ldr r1, [r0] ldrh r0, [r6, #0x2a] subs r0, #0xa strh r0, [r1, #0x12] b _0804E542 .align 2, 0 _0804E4C4: .4byte 0x020314E0 _0804E4C8: .4byte 0x0000132C _0804E4CC: .4byte 0x00001334 _0804E4D0: .4byte 0x02031520 _0804E4D4: .4byte gMain _0804E4D8: .4byte 0x00000386 _0804E4DC: ldr r0, [r4] movs r1, #1 strb r1, [r0] mov r3, ip ldr r0, [r3] movs r7, #0xe2 lsls r7, r7, #2 adds r0, r0, r7 strb r1, [r0] ldr r3, [r3] ldr r1, _0804E57C @ =0x00000392 adds r0, r3, r1 strh r2, [r0] mov r7, r8 adds r2, r3, r7 ldr r1, [r2] ldrh r0, [r6, #0x26] strh r0, [r1, #0x10] ldr r1, [r2] ldrh r0, [r6, #0x28] strh r0, [r1, #0x12] ldr r4, _0804E580 @ =0x000005F6 adds r3, r3, r4 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 ble _0804E518 subs r0, r1, #1 strb r0, [r3] _0804E518: mov r0, ip ldr r1, [r0] movs r3, #0xbf lsls r3, r3, #3 adds r2, r1, r3 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] ldr r2, _0804E584 @ =0x040000D4 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #5 ldr r1, _0804E588 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804E58C @ =0x05000220 str r0, [r2, #4] ldr r0, _0804E590 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0804E542: mov r7, ip ldr r1, [r7] ldr r0, _0804E594 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x38] _0804E572: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E57C: .4byte 0x00000392 _0804E580: .4byte 0x000005F6 _0804E584: .4byte 0x040000D4 _0804E588: .4byte 0x08137E14 _0804E58C: .4byte 0x05000220 _0804E590: .4byte 0x80000010 _0804E594: .4byte 0x0000132C thumb_func_start sub_4E598 sub_4E598: @ 0x0804E598 push {r4, r5, r6, r7, lr} ldr r0, _0804E708 @ =0x020314E0 ldr r2, [r0] movs r5, #0 movs r3, #0 ldr r1, _0804E70C @ =0x000027D7 strh r1, [r2, #0x18] movs r1, #0x13 ldrsb r1, [r2, r1] adds r4, r0, #0 cmp r1, #2 bne _0804E5B4 movs r0, #5 strb r0, [r2, #0x17] _0804E5B4: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #7 bne _0804E5C2 movs r0, #6 strb r0, [r1, #0x17] _0804E5C2: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0804E5D0 movs r0, #0xa strb r0, [r1, #0x17] _0804E5D0: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _0804E5DE movs r0, #6 strb r0, [r1, #0x17] _0804E5DE: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #6 bne _0804E5EC movs r0, #8 strb r0, [r1, #0x17] _0804E5EC: ldr r0, [r4] ldr r1, _0804E710 @ =0x00000714 adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] ldr r6, _0804E714 @ =0x00000711 adds r0, r0, r6 strb r1, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] ldr r7, _0804E718 @ =0x00000712 adds r0, r0, r7 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804E71C @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] subs r6, #0xfd adds r1, r0, r6 strh r3, [r1] movs r7, #0x82 lsls r7, r7, #2 adds r1, r0, r7 strh r3, [r1] ldr r1, _0804E720 @ =0x0000020A adds r0, r0, r1 strb r5, [r0] ldr r2, [r4] movs r6, #0xf1 lsls r6, r6, #1 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r6, _0804E724 @ =gMain cmp r0, #2 bne _0804E654 movs r0, #9 ldrsb r0, [r6, r0] cmp r0, #0 bne _0804E69C _0804E654: movs r7, #0xe3 lsls r7, r7, #1 adds r0, r2, r7 strh r3, [r0] movs r1, #0xe4 lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] movs r5, #0xe6 lsls r5, r5, #1 adds r0, r2, r5 strh r3, [r0] adds r7, #4 adds r0, r2, r7 strh r3, [r0] adds r1, #0xc adds r0, r2, r1 strh r3, [r0] adds r5, #0xa adds r1, r2, r5 ldr r0, _0804E728 @ =0x0000FFFC strh r0, [r1] adds r7, #0xe adds r0, r2, r7 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] adds r5, #4 adds r0, r2, r5 strh r1, [r0] subs r7, #0xa adds r0, r2, r7 strh r3, [r0] adds r1, #0xd0 adds r0, r2, r1 strh r3, [r0] _0804E69C: ldr r0, [r4] movs r2, #0xe3 lsls r2, r2, #3 adds r0, r0, r2 movs r3, #0 strb r3, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] ldr r5, _0804E72C @ =0x00000719 adds r0, r0, r5 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r7, _0804E730 @ =0x0000071A adds r0, r0, r7 strb r1, [r0] ldr r1, [r4] movs r2, #0xc2 lsls r2, r2, #2 adds r0, r1, r2 strh r3, [r0] movs r2, #9 ldrsb r2, [r6, r2] cmp r2, #0 beq _0804E748 ldr r3, _0804E734 @ =0x000005F6 adds r1, r1, r3 movs r0, #3 strb r0, [r1] ldr r1, [r4] movs r5, #0xbf lsls r5, r5, #3 adds r2, r1, r5 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] ldr r2, _0804E738 @ =0x040000D4 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #5 ldr r1, _0804E73C @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804E740 @ =0x05000220 str r0, [r2, #4] ldr r0, _0804E744 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, r1, #0 b _0804E75C .align 2, 0 _0804E708: .4byte 0x020314E0 _0804E70C: .4byte 0x000027D7 _0804E710: .4byte 0x00000714 _0804E714: .4byte 0x00000711 _0804E718: .4byte 0x00000712 _0804E71C: .4byte 0x00000713 _0804E720: .4byte 0x0000020A _0804E724: .4byte gMain _0804E728: .4byte 0x0000FFFC _0804E72C: .4byte 0x00000719 _0804E730: .4byte 0x0000071A _0804E734: .4byte 0x000005F6 _0804E738: .4byte 0x040000D4 _0804E73C: .4byte 0x08137E14 _0804E740: .4byte 0x05000220 _0804E744: .4byte 0x80000010 _0804E748: ldr r6, _0804E7E8 @ =0x000005F6 adds r1, r1, r6 movs r0, #0 strb r0, [r1] ldr r0, [r4] movs r7, #0xbf lsls r7, r7, #3 adds r0, r0, r7 strh r2, [r0] ldr r6, _0804E7EC @ =0x08137E14 _0804E75C: adds r3, r4, #0 ldr r0, [r3] ldr r1, _0804E7F0 @ =0x000005F7 adds r0, r0, r1 movs r5, #0 strb r5, [r0] ldr r1, _0804E7F4 @ =0x040000D4 ldr r2, [r3] ldr r7, _0804E7E8 @ =0x000005F6 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r0, r0, r6 str r0, [r1] ldr r0, _0804E7F8 @ =0x05000220 str r0, [r1, #4] ldr r0, _0804E7FC @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0804E800 @ =0x0000070E adds r0, r2, r1 ldrb r0, [r0] ldr r6, _0804E804 @ =0x0000062F adds r2, r2, r6 strb r0, [r2] ldr r0, [r3] adds r0, r0, r1 movs r2, #1 strb r2, [r0] ldr r1, [r3] ldr r7, _0804E808 @ =0x000002A5 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x2d bne _0804E7D8 movs r6, #0xa9 lsls r6, r6, #2 adds r0, r1, r6 strb r5, [r0] ldr r0, [r3] adds r0, r0, r7 strb r5, [r0] ldr r1, [r3] adds r6, #2 adds r0, r1, r6 strh r5, [r0] ldr r7, _0804E80C @ =0x0000016F adds r0, r1, r7 strb r2, [r0] ldr r0, [r3] movs r1, #0xba lsls r1, r1, #1 adds r2, r0, r1 movs r1, #0x40 strh r1, [r2] ldr r2, _0804E810 @ =0x000002AA adds r0, r0, r2 strh r5, [r0] _0804E7D8: ldr r0, [r4] movs r6, #0xc0 lsls r6, r6, #2 adds r0, r0, r6 strb r5, [r0] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E7E8: .4byte 0x000005F6 _0804E7EC: .4byte 0x08137E14 _0804E7F0: .4byte 0x000005F7 _0804E7F4: .4byte 0x040000D4 _0804E7F8: .4byte 0x05000220 _0804E7FC: .4byte 0x80000010 _0804E800: .4byte 0x0000070E _0804E804: .4byte 0x0000062F _0804E808: .4byte 0x000002A5 _0804E80C: .4byte 0x0000016F _0804E810: .4byte 0x000002AA thumb_func_start sub_4E814 sub_4E814: @ 0x0804E814 push {r4, r5, r6, lr} ldr r6, _0804E910 @ =0x020314E0 ldr r4, [r6] ldr r0, _0804E914 @ =0x0000070C adds r5, r4, r0 ldrh r0, [r5] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x14 bl __udivsi3 ldr r1, _0804E918 @ =0x00000734 adds r4, r4, r1 strh r0, [r4] ldrh r0, [r5] adds r0, #1 strh r0, [r5] bl sub_4EA44 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xe7 bgt _0804E854 bl sub_4EDC0 bl sub_4EE74 _0804E854: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x51 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa6 bhi _0804E868 bl sub_4EF38 _0804E868: bl sub_4F0F0 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6f bgt _0804E87C bl sub_4F258 _0804E87C: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x70 ble _0804E88C bl sub_4F028 _0804E88C: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x68 ble _0804E8A0 bl sub_4F4B4 bl sub_4F660 _0804E8A0: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xff bgt _0804E8B0 bl sub_4F30C _0804E8B0: bl sub_4F2B8 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6e ble _0804E8C4 bl sub_4EAB0 _0804E8C4: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xb2 ble _0804E8DC bl sub_4EAF8 bl sub_4EBD0 bl sub_4E920 _0804E8DC: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xca ble _0804E8EC bl sub_4ECDC _0804E8EC: ldr r0, [r6] ldr r1, _0804E91C @ =0x00000724 adds r2, r0, r1 ldrh r1, [r2] cmp r1, #0 beq _0804E908 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E908 subs r0, r1, #1 strh r0, [r2] _0804E908: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804E910: .4byte 0x020314E0 _0804E914: .4byte 0x0000070C _0804E918: .4byte 0x00000734 _0804E91C: .4byte 0x00000724 thumb_func_start sub_4E920 sub_4E920: @ 0x0804E920 push {r4, r5, lr} ldr r1, _0804E9CC @ =0x086B08CA ldr r4, _0804E9D0 @ =0x020314E0 ldr r0, [r4] ldr r2, _0804E9D4 @ =0x00000716 adds r3, r0, r2 ldrb r2, [r3] lsls r0, r2, #1 adds r0, r0, r1 ldrh r5, [r0] cmp r2, #0 beq _0804E95C subs r0, r2, #1 strb r0, [r3] ldr r0, [r4] ldr r1, _0804E9D4 @ =0x00000716 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #3 bne _0804E95C movs r0, #0x73 bl m4aSongNumStart ldr r1, [r4] movs r0, #0xfa lsls r0, r0, #1 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 _0804E95C: ldr r0, _0804E9D0 @ =0x020314E0 ldr r0, [r0] ldr r2, _0804E9D8 @ =0x00000717 adds r0, r0, r2 ldrb r0, [r0] lsls r3, r0, #4 subs r3, r3, r0 lsls r3, r3, #2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 adds r2, r2, r0 lsls r2, r2, #2 ldr r0, _0804E9DC @ =0x086B08D4 adds r2, r2, r0 adds r2, r3, r2 adds r0, #0x28 adds r3, r3, r0 ldr r0, _0804E9E0 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3] str r1, [r0, #4] ldr r1, _0804E9E4 @ =0x80000010 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #4] str r1, [r0, #4] ldr r5, _0804E9E8 @ =0x80000020 str r5, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #8] str r1, [r0] ldr r1, [r3, #8] str r1, [r0, #4] ldr r4, _0804E9EC @ =0x80000030 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0xc] str r1, [r0] ldr r1, [r3, #0xc] str r1, [r0, #4] str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0x10] str r1, [r0] ldr r1, [r3, #0x10] str r1, [r0, #4] str r5, [r0, #8] ldr r0, [r0, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804E9CC: .4byte 0x086B08CA _0804E9D0: .4byte 0x020314E0 _0804E9D4: .4byte 0x00000716 _0804E9D8: .4byte 0x00000717 _0804E9DC: .4byte 0x086B08D4 _0804E9E0: .4byte 0x040000D4 _0804E9E4: .4byte 0x80000010 _0804E9E8: .4byte 0x80000020 _0804E9EC: .4byte 0x80000030 thumb_func_start sub_4E9F0 sub_4E9F0: @ 0x0804E9F0 push {r4, lr} lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #2 ldr r3, _0804EA34 @ =0x086B094C adds r2, r2, r3 adds r4, r3, #0 adds r4, #0x18 ldr r1, _0804EA38 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x18] str r0, [r1, #4] ldr r3, _0804EA3C @ =0x80000060 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] ldr r0, _0804EA40 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4} pop {r0} bx r0 .align 2, 0 _0804EA34: .4byte 0x086B094C _0804EA38: .4byte 0x040000D4 _0804EA3C: .4byte 0x80000060 _0804EA40: .4byte 0x80000010 thumb_func_start sub_4EA44 sub_4EA44: @ 0x0804EA44 push {r4, r5, lr} ldr r0, _0804EA9C @ =0x020314E0 ldr r0, [r0] ldr r1, _0804EAA0 @ =0x0000070E adds r0, r0, r1 movs r5, #0 ldrsb r5, [r0, r5] adds r0, r5, #0 movs r1, #0xa bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #8 lsrs r4, r4, #0x10 adds r0, r5, #0 movs r1, #0xa bl __modsi3 lsls r0, r0, #0x18 lsls r4, r4, #0x10 asrs r4, r4, #0xd ldr r3, _0804EAA4 @ =0x086B0970 adds r4, r4, r3 ldr r2, _0804EAA8 @ =0x040000D4 ldr r1, [r4] str r1, [r2] ldr r1, [r3, #0x50] str r1, [r2, #4] ldr r1, _0804EAAC @ =0x80000010 str r1, [r2, #8] ldr r4, [r2, #8] asrs r0, r0, #0x15 adds r4, r0, r3 ldr r0, [r4, #4] str r0, [r2] ldr r0, [r3, #0x54] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804EA9C: .4byte 0x020314E0 _0804EAA0: .4byte 0x0000070E _0804EAA4: .4byte 0x086B0970 _0804EAA8: .4byte 0x040000D4 _0804EAAC: .4byte 0x80000010 thumb_func_start sub_4EAB0 sub_4EAB0: @ 0x0804EAB0 push {r4, lr} ldr r0, _0804EAE8 @ =0x020314E0 ldr r0, [r0] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 ldr r3, _0804EAEC @ =0x086B09C8 adds r2, r2, r3 ldr r0, _0804EAF0 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3, #0x18] str r1, [r0, #4] ldr r4, _0804EAF4 @ =0x80000020 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #0x1c] str r1, [r0, #4] str r4, [r0, #8] ldr r0, [r0, #8] pop {r4} pop {r0} bx r0 .align 2, 0 _0804EAE8: .4byte 0x020314E0 _0804EAEC: .4byte 0x086B09C8 _0804EAF0: .4byte 0x040000D4 _0804EAF4: .4byte 0x80000020 thumb_func_start sub_4EAF8 sub_4EAF8: @ 0x0804EAF8 push {r4, r5, r6, r7, lr} ldr r7, _0804EBB4 @ =0x020314E0 ldr r5, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r5, r0 ldrb r0, [r1] cmp r0, #0 beq _0804EB5E ldr r6, _0804EBB8 @ =0x00000721 adds r0, r5, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r4, _0804EBBC @ =0x0000071D adds r5, r5, r4 adds r5, r5, r0 ldrb r0, [r1] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r1, #1 subs r1, r1, r0 strb r1, [r5] ldr r0, [r7] ldr r2, _0804EBC0 @ =0x00000722 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, r4 adds r1, r4, r1 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r4, r0 ldrb r0, [r4] strb r0, [r1] ldr r1, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r1, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0804EB5E: movs r1, #0 ldr r0, [r7] ldr r2, _0804EBBC @ =0x0000071D adds r7, r0, r2 ldr r6, _0804EBC4 @ =0x086B09E8 movs r0, #0x30 adds r0, r0, r6 mov ip, r0 ldr r4, _0804EBC8 @ =0x040000D4 ldr r5, _0804EBCC @ =0x80000020 _0804EB72: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r2, r3, #3 subs r2, r2, r3 lsls r2, r2, #3 adds r0, r7, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #3 adds r1, r1, r6 adds r1, r2, r1 add r2, ip ldr r0, [r1] str r0, [r4] ldr r0, [r2] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, [r1, #4] str r0, [r4] ldr r0, [r2, #4] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0804EB72 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804EBB4: .4byte 0x020314E0 _0804EBB8: .4byte 0x00000721 _0804EBBC: .4byte 0x0000071D _0804EBC0: .4byte 0x00000722 _0804EBC4: .4byte 0x086B09E8 _0804EBC8: .4byte 0x040000D4 _0804EBCC: .4byte 0x80000020 thumb_func_start sub_4EBD0 sub_4EBD0: @ 0x0804EBD0 push {r4, r5, r6, r7, lr} ldr r5, _0804EC38 @ =0x020314E0 ldr r4, [r5] ldr r1, _0804EC3C @ =0x00000714 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804EC7A ldr r2, _0804EC40 @ =0x00000715 adds r1, r4, r2 ldrb r0, [r1] cmp r0, #0 beq _0804EC4C movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804EC44 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804EC48 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, [r5] adds r3, #3 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0804EC7A .align 2, 0 _0804EC38: .4byte 0x020314E0 _0804EC3C: .4byte 0x00000714 _0804EC40: .4byte 0x00000715 _0804EC44: .4byte 0x00000711 _0804EC48: .4byte 0x00000713 _0804EC4C: movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804ECC4 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804ECC8 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] _0804EC7A: movs r2, #0 ldr r0, _0804ECCC @ =0x020314E0 ldr r0, [r0] movs r3, #0xe2 lsls r3, r3, #3 adds r5, r0, r3 ldr r4, _0804ECD0 @ =0x086B0BC4 adds r7, r4, #0 adds r7, #8 ldr r3, _0804ECD4 @ =0x040000D4 ldr r6, _0804ECD8 @ =0x80000020 _0804EC90: lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r2, r0 adds r2, r2, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r2] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _0804EC90 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804ECC4: .4byte 0x00000711 _0804ECC8: .4byte 0x00000713 _0804ECCC: .4byte 0x020314E0 _0804ECD0: .4byte 0x086B0BC4 _0804ECD4: .4byte 0x040000D4 _0804ECD8: .4byte 0x80000020 thumb_func_start sub_4ECDC sub_4ECDC: @ 0x0804ECDC push {r4, r5, lr} ldr r0, _0804ECF8 @ =0x020314E0 ldr r3, [r0] ldr r2, _0804ECFC @ =0x00000724 adds r1, r3, r2 ldrh r2, [r1] movs r1, #0x96 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bls _0804ED04 ldr r0, _0804ED00 @ =0x00000726 adds r1, r3, r0 b _0804ED1A .align 2, 0 _0804ECF8: .4byte 0x020314E0 _0804ECFC: .4byte 0x00000724 _0804ED00: .4byte 0x00000726 _0804ED04: cmp r2, #0 beq _0804ED40 adds r0, r3, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804ED24 ldr r2, _0804ED20 @ =0x00000726 adds r1, r3, r2 _0804ED1A: movs r0, #1 strb r0, [r1] b _0804ED46 .align 2, 0 _0804ED20: .4byte 0x00000726 _0804ED24: ldr r0, _0804ED38 @ =gMain ldr r0, [r0, #0x50] movs r1, #0xf ands r0, r1 lsrs r0, r0, #3 ldr r2, _0804ED3C @ =0x00000726 adds r1, r3, r2 strb r0, [r1] b _0804ED46 .align 2, 0 _0804ED38: .4byte gMain _0804ED3C: .4byte 0x00000726 _0804ED40: ldr r1, _0804EDA8 @ =0x00000726 adds r0, r3, r1 strb r2, [r0] _0804ED46: ldr r0, [r5] ldr r2, _0804EDA8 @ =0x00000726 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #4 ldr r1, _0804EDAC @ =0x086B0A90 adds r3, r0, r1 adds r4, r1, #0 adds r4, #0x20 ldr r2, _0804EDB0 @ =0x040000D4 ldr r0, [r3] str r0, [r2] ldr r0, [r1, #0x20] str r0, [r2, #4] ldr r1, _0804EDB4 @ =0x80000060 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xd7 ble _0804EDA0 ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] ldr r0, _0804EDB8 @ =0x80000050 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #0xc] str r0, [r2] ldr r0, [r4, #0xc] str r0, [r2, #4] ldr r0, _0804EDBC @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] _0804EDA0: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804EDA8: .4byte 0x00000726 _0804EDAC: .4byte 0x086B0A90 _0804EDB0: .4byte 0x040000D4 _0804EDB4: .4byte 0x80000060 _0804EDB8: .4byte 0x80000050 _0804EDBC: .4byte 0x80000020 thumb_func_start sub_4EDC0 sub_4EDC0: @ 0x0804EDC0 push {r4, r5, r6, lr} movs r3, #0 ldr r0, _0804EE60 @ =0x020314E0 ldr r2, [r0] movs r4, #0xe5 lsls r4, r4, #3 adds r1, r2, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r6, r0, #0 cmp r1, #0 ble _0804EDE8 ldr r1, _0804EE64 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0804EDE8: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r3, _0804EE68 @ =0x086B0AC0 adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x30 ble _0804EE30 cmp r0, #0xd7 bgt _0804EE14 ldr r1, _0804EE6C @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _0804EE70 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EE14: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xdf bgt _0804EE30 ldr r1, _0804EE6C @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804EE70 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EE30: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x40 ble _0804EE58 ldr r0, _0804EE6C @ =0x040000D4 ldr r1, [r4, #8] str r1, [r0] ldr r1, [r5, #8] str r1, [r0, #4] ldr r2, _0804EE70 @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r4, #0xc] str r1, [r0] ldr r1, [r5, #0xc] str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] _0804EE58: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804EE60: .4byte 0x020314E0 _0804EE64: .4byte 0x00000734 _0804EE68: .4byte 0x086B0AC0 _0804EE6C: .4byte 0x040000D4 _0804EE70: .4byte 0x80000040 thumb_func_start sub_4EE74 sub_4EE74: @ 0x0804EE74 push {r4, r5, r6, lr} movs r3, #0 ldr r0, _0804EF18 @ =0x020314E0 ldr r2, [r0] ldr r4, _0804EF1C @ =0x00000729 adds r1, r2, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r6, r0, #0 cmp r1, #0 ble _0804EE9A ldr r1, _0804EF20 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0804EE9A: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r3, _0804EF24 @ =0x086B0AF0 adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x28 ble _0804EEE2 cmp r0, #0xcf bgt _0804EEC6 ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _0804EF2C @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804EEC6: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xd7 bgt _0804EEE2 ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804EF30 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EEE2: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x38 ble _0804EF12 cmp r0, #0xdf bgt _0804EF02 ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _0804EF30 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EF02: ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4, #0xc] str r0, [r1] ldr r0, [r5, #0xc] str r0, [r1, #4] ldr r0, _0804EF34 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804EF12: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804EF18: .4byte 0x020314E0 _0804EF1C: .4byte 0x00000729 _0804EF20: .4byte 0x00000734 _0804EF24: .4byte 0x086B0AF0 _0804EF28: .4byte 0x040000D4 _0804EF2C: .4byte 0x80000020 _0804EF30: .4byte 0x80000040 _0804EF34: .4byte 0x80000030 thumb_func_start sub_4EF38 sub_4EF38: @ 0x0804EF38 push {r4, r5, lr} movs r3, #0 ldr r0, _0804EF58 @ =0x020314E0 ldr r2, [r0] movs r4, #0xbc lsls r4, r4, #2 adds r1, r2, r4 ldrb r1, [r1] adds r5, r0, #0 cmp r1, #2 bls _0804EF60 ldr r0, _0804EF5C @ =0x0000072A adds r1, r2, r0 movs r0, #1 strb r0, [r1] b _0804EF6E .align 2, 0 _0804EF58: .4byte 0x020314E0 _0804EF5C: .4byte 0x0000072A _0804EF60: movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #0 beq _0804EF6E ldr r1, _0804EF98 @ =0x0000072A adds r0, r2, r1 strb r3, [r0] _0804EF6E: ldr r1, [r5] ldr r2, _0804EF98 @ =0x0000072A adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804EFA0 ldr r4, _0804EF9C @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r2, #0xa adds r1, r1, r2 ldrh r1, [r1] subs r1, #1 subs r0, r0, r1 lsls r0, r0, #0x10 b _0804EFAC .align 2, 0 _0804EF98: .4byte 0x0000072A _0804EF9C: .4byte 0x000001A5 _0804EFA0: ldr r4, _0804F014 @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x11 _0804EFAC: lsrs r3, r0, #0x10 lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r2, _0804F018 @ =0x086B0B20 adds r3, r0, r2 adds r4, r2, #0 adds r4, #0x40 ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xef bgt _0804EFD6 ldr r1, _0804F01C @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x40] str r0, [r1, #4] ldr r0, _0804F020 @ =0x80000050 str r0, [r1, #8] ldr r0, [r1, #8] _0804EFD6: ldr r2, _0804F01C @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r1, _0804F020 @ =0x80000050 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x58 ble _0804F00C ldr r0, [r3, #0xc] str r0, [r2] ldr r0, [r4, #0xc] str r0, [r2, #4] ldr r0, _0804F024 @ =0x80000030 str r0, [r2, #8] ldr r0, [r2, #8] _0804F00C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804F014: .4byte 0x000001A5 _0804F018: .4byte 0x086B0B20 _0804F01C: .4byte 0x040000D4 _0804F020: .4byte 0x80000050 _0804F024: .4byte 0x80000030 thumb_func_start sub_4F028 sub_4F028: @ 0x0804F028 push {r4, r5, lr} movs r3, #0 ldr r1, _0804F0CC @ =0x020314E0 ldr r0, [r1] ldr r4, _0804F0D0 @ =0x00000731 adds r0, r0, r4 strb r3, [r0] ldr r2, [r1] ldr r5, _0804F0D4 @ =0x0000072F adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #1 ble _0804F056 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _0804F056 adds r1, r2, r4 movs r0, #1 strb r0, [r1] _0804F056: ldr r2, [r5] ldr r1, _0804F0D0 @ =0x00000731 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804F074 ldr r5, _0804F0D8 @ =0x00000734 adds r0, r2, r5 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0804F074: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r4, _0804F0DC @ =0x086B0B94 adds r3, r0, r4 adds r5, r4, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0804F0E0 @ =0x00000107 cmp r1, r0 bgt _0804F09E ldr r1, _0804F0E4 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r4, #0x20] str r0, [r1, #4] ldr r0, _0804F0E8 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804F09E: ldr r0, _0804F0E4 @ =0x040000D4 ldr r1, [r3, #4] str r1, [r0] ldr r1, [r5, #4] str r1, [r0, #4] ldr r2, _0804F0EC @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r3, #8] str r1, [r0] ldr r1, [r5, #8] str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r3, #0xc] str r1, [r0] ldr r1, [r5, #0xc] str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804F0CC: .4byte 0x020314E0 _0804F0D0: .4byte 0x00000731 _0804F0D4: .4byte 0x0000072F _0804F0D8: .4byte 0x00000734 _0804F0DC: .4byte 0x086B0B94 _0804F0E0: .4byte 0x00000107 _0804F0E4: .4byte 0x040000D4 _0804F0E8: .4byte 0x80000020 _0804F0EC: .4byte 0x80000040 thumb_func_start sub_4F0F0 sub_4F0F0: @ 0x0804F0F0 push {r4, r5, r6, r7, lr} ldr r5, _0804F1E8 @ =0x020314E0 ldr r4, [r5] ldr r0, _0804F1EC @ =0x0000071B adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] adds r7, r5, #0 cmp r0, #0 bne _0804F106 b _0804F24C _0804F106: ldr r6, _0804F1F0 @ =0x0000071C adds r0, r4, r6 ldrb r3, [r0] cmp r3, #0 bne _0804F112 b _0804F220 _0804F112: movs r1, #0xbe lsls r1, r1, #2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804F152 ldr r0, _0804F1F4 @ =gMain ldr r0, [r0, #0x50] movs r1, #0x14 bl __umodsi3 movs r1, #0xa bl __udivsi3 movs r2, #0xe3 lsls r2, r2, #3 adds r1, r4, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804F1F8 @ =0x00000719 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r4, _0804F1FC @ =0x0000071A adds r0, r0, r4 strb r1, [r0] _0804F152: ldr r1, [r5] adds r0, r1, r6 ldrb r0, [r0] cmp r0, #0x1c bne _0804F196 ldr r3, _0804F200 @ =0x000005F6 adds r1, r1, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _0804F16E adds r0, r2, #1 strb r0, [r1] _0804F16E: ldr r1, [r5] movs r0, #0xbf lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] ldr r2, _0804F204 @ =0x040000D4 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #5 ldr r1, _0804F208 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804F20C @ =0x05000220 str r0, [r2, #4] ldr r0, _0804F210 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0804F196: adds r5, r7, #0 ldr r0, [r5] ldr r4, _0804F1F0 @ =0x0000071C adds r0, r0, r4 ldrb r0, [r0] cmp r0, #0x28 bne _0804F1AC ldr r0, _0804F214 @ =0x02032F20 ldr r1, _0804F218 @ =0x0869F664 bl MPlayStart _0804F1AC: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] cmp r0, #0x3c bne _0804F1C2 ldr r0, _0804F1F4 @ =gMain ldr r0, [r0, #0x44] adds r0, #0xac ldr r1, [r0] movs r0, #1 strh r0, [r1] _0804F1C2: ldr r2, [r7] ldr r3, _0804F21C @ =0x086B0E20 adds r0, r2, r4 ldrb r1, [r0] lsrs r1, r1, #1 movs r0, #0x1e subs r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] adds r2, #0x6e strb r0, [r2] ldr r1, [r7] adds r1, r1, r4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0804F24C .align 2, 0 _0804F1E8: .4byte 0x020314E0 _0804F1EC: .4byte 0x0000071B _0804F1F0: .4byte 0x0000071C _0804F1F4: .4byte gMain _0804F1F8: .4byte 0x00000719 _0804F1FC: .4byte 0x0000071A _0804F200: .4byte 0x000005F6 _0804F204: .4byte 0x040000D4 _0804F208: .4byte 0x08137E14 _0804F20C: .4byte 0x05000220 _0804F210: .4byte 0x80000010 _0804F214: .4byte 0x02032F20 _0804F218: .4byte 0x0869F664 _0804F21C: .4byte 0x086B0E20 _0804F220: strb r3, [r1] ldr r2, [r5] movs r1, #0xbe lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804F246 ldr r4, _0804F254 @ =0x0000071A adds r0, r2, r4 strb r3, [r0] subs r4, #1 adds r0, r2, r4 strb r3, [r0] subs r4, #1 adds r0, r2, r4 strb r3, [r0] _0804F246: ldr r0, [r5] adds r0, r0, r1 strb r3, [r0] _0804F24C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804F254: .4byte 0x0000071A thumb_func_start sub_4F258 sub_4F258: @ 0x0804F258 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r0, _0804F2A8 @ =0x020314E0 ldr r0, [r0] movs r2, #0xe3 lsls r2, r2, #3 adds r5, r0, r2 ldr r4, _0804F2AC @ =0x086B0B70 adds r7, r4, #0 adds r7, #8 ldr r3, _0804F2B0 @ =0x040000D4 ldr r6, _0804F2B4 @ =0x80000020 _0804F270: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r1, r0 adds r1, r1, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r1] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _0804F270 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804F2A8: .4byte 0x020314E0 _0804F2AC: .4byte 0x086B0B70 _0804F2B0: .4byte 0x040000D4 _0804F2B4: .4byte 0x80000020 thumb_func_start sub_4F2B8 sub_4F2B8: @ 0x0804F2B8 push {r4, r5, lr} ldr r0, _0804F2EC @ =0x020314E0 ldr r1, [r0] ldr r0, _0804F2F0 @ =0x0000072B adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 ble _0804F306 ldr r5, _0804F2F4 @ =0x0000072C adds r2, r1, r5 ldrh r4, [r2] ldr r0, _0804F2F8 @ =0x086B08C4 movs r1, #0 ldrsb r1, [r3, r1] subs r1, #1 lsls r1, r1, #1 adds r1, r1, r0 movs r5, #0 ldrsh r0, [r1, r5] cmp r4, r0 bge _0804F2FC adds r0, r4, #1 strh r0, [r2] b _0804F306 .align 2, 0 _0804F2EC: .4byte 0x020314E0 _0804F2F0: .4byte 0x0000072B _0804F2F4: .4byte 0x0000072C _0804F2F8: .4byte 0x086B08C4 _0804F2FC: movs r0, #0 strh r0, [r2] ldrb r0, [r3] subs r0, #1 strb r0, [r3] _0804F306: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_4F30C sub_4F30C: @ 0x0804F30C push {r4, r5, lr} sub sp, #8 ldr r1, _0804F33C @ =0x020314E0 ldr r2, [r1] ldr r3, _0804F340 @ =0x0000072B adds r0, r2, r3 movs r3, #0 ldrsb r3, [r0, r3] adds r4, r1, #0 cmp r3, #0 bne _0804F348 mov r1, sp ldr r5, _0804F344 @ =0x00000734 adds r2, r2, r5 movs r5, #0 ldrsh r0, [r2, r5] lsls r0, r0, #1 strh r0, [r1] ldrh r0, [r2] strh r0, [r1, #2] mov r0, sp strh r3, [r0, #4] b _0804F396 .align 2, 0 _0804F33C: .4byte 0x020314E0 _0804F340: .4byte 0x0000072B _0804F344: .4byte 0x00000734 _0804F348: cmp r3, #1 bne _0804F36C mov r1, sp movs r0, #3 strh r0, [r1] ldr r0, _0804F368 @ =0x00000734 adds r2, r2, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r1, #4] b _0804F396 .align 2, 0 _0804F368: .4byte 0x00000734 _0804F36C: cmp r3, #2 bne _0804F38C mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r5, _0804F388 @ =0x00000734 adds r0, r2, r5 ldrh r0, [r0] adds r0, #2 strh r0, [r1, #4] b _0804F396 .align 2, 0 _0804F388: .4byte 0x00000734 _0804F38C: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] _0804F396: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r2, _0804F4A8 @ =0x086B0CB8 adds r3, r0, r2 adds r5, r2, #0 adds r5, #0x30 ldr r0, [r4] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x2a lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F3CA ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F3CA: ldr r0, [r4] adds r4, r0, #0 adds r4, #0x6a ldrh r0, [r4] subs r0, #0x32 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F3EC ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F3EC: mov r0, sp movs r3, #2 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x3c adds r3, r0, r1 adds r5, r2, #0 adds r5, #0x6c ldrh r0, [r4] subs r0, #0x3a lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F41E ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x6c] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F41E: ldrh r0, [r4] subs r0, #0x42 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F43A ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F43A: mov r0, sp movs r5, #4 ldrsh r1, [r0, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x78 adds r3, r0, r1 adds r5, r2, #0 adds r5, #0xa8 ldrh r0, [r4] subs r0, #0x4a lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F46C ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r5] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F46C: ldrh r0, [r4] subs r0, #0x52 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F488 ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F488: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x59 ble _0804F4A0 ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F4A0: add sp, #8 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804F4A8: .4byte 0x086B0CB8 _0804F4AC: .4byte 0x040000D4 _0804F4B0: .4byte 0x80000030 thumb_func_start sub_4F4B4 sub_4F4B4: @ 0x0804F4B4 push {r4, r5, r6, lr} sub sp, #8 ldr r0, _0804F4E8 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r6, r0, #0 cmp r1, #2 bgt _0804F53C ldr r1, _0804F4EC @ =0x0000072E adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _0804F4F4 mov r1, sp ldr r4, _0804F4F0 @ =0x00000734 adds r0, r2, r4 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _0804F562 .align 2, 0 _0804F4E8: .4byte 0x020314E0 _0804F4EC: .4byte 0x0000072E _0804F4F0: .4byte 0x00000734 _0804F4F4: cmp r3, #1 bne _0804F514 mov r1, sp movs r0, #3 strh r0, [r1] ldr r3, _0804F510 @ =0x00000734 adds r2, r2, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 b _0804F560 .align 2, 0 _0804F510: .4byte 0x00000734 _0804F514: cmp r3, #2 bne _0804F530 mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r3, _0804F52C @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #2 b _0804F560 .align 2, 0 _0804F52C: .4byte 0x00000734 _0804F530: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _0804F562 _0804F53C: mov r1, sp ldr r4, _0804F648 @ =0x00000739 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r3, _0804F64C @ =0x0000073A adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _0804F560: strh r0, [r1, #4] _0804F562: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804F650 @ =0x086B0C04 mov ip, r3 adds r3, r0, r3 mov r4, ip adds r4, #0x30 ldr r0, [r6] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0804F654 @ =0x00000107 cmp r1, r0 bgt _0804F598 ldr r1, _0804F658 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _0804F65C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F598: ldr r2, _0804F658 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r5, _0804F65C @ =0x80000030 str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r6] adds r6, r0, #0 adds r6, #0x6a movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x78 ble _0804F5FE mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] _0804F5FE: movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x88 ble _0804F640 mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] _0804F640: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804F648: .4byte 0x00000739 _0804F64C: .4byte 0x0000073A _0804F650: .4byte 0x086B0C04 _0804F654: .4byte 0x00000107 _0804F658: .4byte 0x040000D4 _0804F65C: .4byte 0x80000030 thumb_func_start sub_4F660 sub_4F660: @ 0x0804F660 push {r4, r5, r6, lr} sub sp, #8 ldr r0, _0804F694 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r5, r0, #0 cmp r1, #2 bgt _0804F6E8 ldr r1, _0804F698 @ =0x0000072F adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _0804F6A0 mov r1, sp ldr r4, _0804F69C @ =0x00000734 adds r0, r2, r4 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _0804F70E .align 2, 0 _0804F694: .4byte 0x020314E0 _0804F698: .4byte 0x0000072F _0804F69C: .4byte 0x00000734 _0804F6A0: cmp r3, #1 bne _0804F6C0 mov r1, sp movs r0, #3 strh r0, [r1] ldr r3, _0804F6BC @ =0x00000734 adds r2, r2, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 b _0804F70C .align 2, 0 _0804F6BC: .4byte 0x00000734 _0804F6C0: cmp r3, #2 bne _0804F6DC mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r3, _0804F6D8 @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #2 b _0804F70C .align 2, 0 _0804F6D8: .4byte 0x00000734 _0804F6DC: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _0804F70E _0804F6E8: mov r1, sp ldr r4, _0804F7F8 @ =0x00000736 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r3, _0804F7FC @ =0x00000737 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _0804F70C: strh r0, [r1, #4] _0804F70E: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804F800 @ =0x086B0D6C mov ip, r3 adds r3, r0, r3 mov r4, ip adds r4, #0x30 ldr r0, [r5] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0804F804 @ =0x00000107 cmp r1, r0 bgt _0804F744 ldr r1, _0804F808 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _0804F80C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F744: ldr r2, _0804F808 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r6, _0804F80C @ =0x80000030 str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r5, r0, #0 adds r5, #0x6a movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x78 ble _0804F7AC mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] ldr r1, _0804F810 @ =0x80000020 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] _0804F7AC: movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x88 ble _0804F7F0 mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] ldr r0, _0804F810 @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] _0804F7F0: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804F7F8: .4byte 0x00000736 _0804F7FC: .4byte 0x00000737 _0804F800: .4byte 0x086B0D6C _0804F804: .4byte 0x00000107 _0804F808: .4byte 0x040000D4 _0804F80C: .4byte 0x80000030 _0804F810: .4byte 0x80000020 thumb_func_start sub_4F814 sub_4F814: @ 0x0804F814 push {r4, r5, r6, lr} ldr r6, _0804F94C @ =0x020314E0 ldr r4, [r6] ldr r0, _0804F950 @ =0x0000070C adds r5, r4, r0 ldrh r0, [r5] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x14 bl __udivsi3 ldr r1, _0804F954 @ =0x00000734 adds r4, r4, r1 strh r0, [r4] ldrh r0, [r5] adds r0, #1 strh r0, [r5] bl sub_50710 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x53 ble _0804F850 bl sub_50000 _0804F850: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x12 ble _0804F860 bl sub_500B4 _0804F860: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x38 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xba bhi _0804F874 bl sub_505A4 _0804F874: bl sub_4F0F0 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6f bgt _0804F888 bl sub_506B0 _0804F888: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x40 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xbd bhi _0804F89C bl sub_504C0 _0804F89C: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x1b lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xb7 bhi _0804F8B4 bl sub_4FB08 bl sub_4F95C _0804F8B4: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x68 ble _0804F8C8 bl sub_50154 bl sub_5030C _0804F8C8: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x48 ble _0804F8D8 bl sub_4FE6C _0804F8D8: bl sub_4F2B8 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6e ble _0804F8EC bl sub_4FAC0 _0804F8EC: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xb2 ble _0804F904 bl sub_4FBA4 bl sub_4FC7C bl sub_4F9F0 _0804F904: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xca ble _0804F914 bl sub_4FD88 _0804F914: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xad bhi _0804F928 bl sub_507D4 _0804F928: ldr r0, [r6] ldr r1, _0804F958 @ =0x00000724 adds r2, r0, r1 ldrh r1, [r2] cmp r1, #0 beq _0804F944 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804F944 subs r0, r1, #1 strh r0, [r2] _0804F944: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804F94C: .4byte 0x020314E0 _0804F950: .4byte 0x0000070C _0804F954: .4byte 0x00000734 _0804F958: .4byte 0x00000724 thumb_func_start sub_4F95C sub_4F95C: @ 0x0804F95C push {r4, r5, r6, r7, lr} ldr r0, _0804F9DC @ =0x020314E0 ldr r4, [r0] ldr r1, _0804F9E0 @ =0x0000070E adds r0, r4, r1 movs r5, #0 ldrsb r5, [r0, r5] adds r0, r5, #0 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #8 lsrs r6, r0, #0x10 adds r0, r5, #0 movs r1, #0xa bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #8 lsrs r7, r0, #0x10 adds r4, #0x6a movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x24 ble _0804F9D6 lsls r0, r6, #0x10 asrs r0, r0, #0xc ldr r3, _0804F9E4 @ =0x086B0E9C adds r5, r0, r3 adds r4, r3, #0 adds r4, #0xa0 ldr r1, _0804F9E8 @ =0x040000D4 ldr r0, [r5] str r0, [r1] ldr r0, [r4] str r0, [r1, #4] ldr r2, _0804F9EC @ =0x80000010 str r2, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] lsls r0, r7, #0x10 asrs r0, r0, #0xc adds r5, r0, r3 ldr r0, [r5, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5, #0xc] str r0, [r1] ldr r0, [r4, #0xc] str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] _0804F9D6: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804F9DC: .4byte 0x020314E0 _0804F9E0: .4byte 0x0000070E _0804F9E4: .4byte 0x086B0E9C _0804F9E8: .4byte 0x040000D4 _0804F9EC: .4byte 0x80000010 thumb_func_start sub_4F9F0 sub_4F9F0: @ 0x0804F9F0 push {r4, r5, lr} ldr r1, _0804FA9C @ =0x086B0E60 ldr r4, _0804FAA0 @ =0x020314E0 ldr r0, [r4] ldr r2, _0804FAA4 @ =0x00000716 adds r3, r0, r2 ldrb r2, [r3] lsls r0, r2, #1 adds r0, r0, r1 ldrh r5, [r0] cmp r2, #0 beq _0804FA2C subs r0, r2, #1 strb r0, [r3] ldr r0, [r4] ldr r1, _0804FAA4 @ =0x00000716 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #3 bne _0804FA2C movs r0, #0x73 bl m4aSongNumStart ldr r1, [r4] movs r0, #0xfa lsls r0, r0, #1 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 _0804FA2C: ldr r0, _0804FAA0 @ =0x020314E0 ldr r0, [r0] ldr r2, _0804FAA8 @ =0x00000717 adds r0, r0, r2 ldrb r0, [r0] lsls r3, r0, #4 subs r3, r3, r0 lsls r3, r3, #2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 adds r2, r2, r0 lsls r2, r2, #2 ldr r0, _0804FAAC @ =0x086B108C adds r2, r2, r0 adds r2, r3, r2 adds r0, #0x28 adds r3, r3, r0 ldr r0, _0804FAB0 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3] str r1, [r0, #4] ldr r1, _0804FAB4 @ =0x80000010 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #4] str r1, [r0, #4] ldr r5, _0804FAB8 @ =0x80000020 str r5, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #8] str r1, [r0] ldr r1, [r3, #8] str r1, [r0, #4] ldr r4, _0804FABC @ =0x80000030 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0xc] str r1, [r0] ldr r1, [r3, #0xc] str r1, [r0, #4] str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0x10] str r1, [r0] ldr r1, [r3, #0x10] str r1, [r0, #4] str r5, [r0, #8] ldr r0, [r0, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804FA9C: .4byte 0x086B0E60 _0804FAA0: .4byte 0x020314E0 _0804FAA4: .4byte 0x00000716 _0804FAA8: .4byte 0x00000717 _0804FAAC: .4byte 0x086B108C _0804FAB0: .4byte 0x040000D4 _0804FAB4: .4byte 0x80000010 _0804FAB8: .4byte 0x80000020 _0804FABC: .4byte 0x80000030 thumb_func_start sub_4FAC0 sub_4FAC0: @ 0x0804FAC0 push {r4, lr} ldr r0, _0804FAF8 @ =0x020314E0 ldr r0, [r0] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 ldr r3, _0804FAFC @ =0x086B1104 adds r2, r2, r3 ldr r0, _0804FB00 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3, #0x18] str r1, [r0, #4] ldr r4, _0804FB04 @ =0x80000020 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #0x1c] str r1, [r0, #4] str r4, [r0, #8] ldr r0, [r0, #8] pop {r4} pop {r0} bx r0 .align 2, 0 _0804FAF8: .4byte 0x020314E0 _0804FAFC: .4byte 0x086B1104 _0804FB00: .4byte 0x040000D4 _0804FB04: .4byte 0x80000020 thumb_func_start sub_4FB08 sub_4FB08: @ 0x0804FB08 push {r4, r5, lr} ldr r0, _0804FB88 @ =gMain ldr r0, [r0, #0x4c] movs r1, #0x3f ands r0, r1 lsrs r0, r0, #4 lsls r0, r0, #4 ldr r2, _0804FB8C @ =0x086B0F4C adds r3, r0, r2 adds r5, r2, #0 adds r5, #0x40 ldr r4, _0804FB90 @ =0x020314E0 ldr r0, [r4] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xbf bgt _0804FB3C ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x40] str r0, [r1, #4] ldr r0, _0804FB98 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FB3C: ldr r0, [r4] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xc7 bgt _0804FB5A ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804FB9C @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804FB5A: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xcf bgt _0804FB72 ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _0804FBA0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804FB72: ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3, #0xc] str r0, [r1] ldr r0, [r5, #0xc] str r0, [r1, #4] ldr r0, _0804FBA0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804FB88: .4byte gMain _0804FB8C: .4byte 0x086B0F4C _0804FB90: .4byte 0x020314E0 _0804FB94: .4byte 0x040000D4 _0804FB98: .4byte 0x80000020 _0804FB9C: .4byte 0x80000040 _0804FBA0: .4byte 0x80000030 thumb_func_start sub_4FBA4 sub_4FBA4: @ 0x0804FBA4 push {r4, r5, r6, r7, lr} ldr r7, _0804FC60 @ =0x020314E0 ldr r5, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r5, r0 ldrb r0, [r1] cmp r0, #0 beq _0804FC0A ldr r6, _0804FC64 @ =0x00000721 adds r0, r5, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r4, _0804FC68 @ =0x0000071D adds r5, r5, r4 adds r5, r5, r0 ldrb r0, [r1] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r1, #1 subs r1, r1, r0 strb r1, [r5] ldr r0, [r7] ldr r2, _0804FC6C @ =0x00000722 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, r4 adds r1, r4, r1 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r4, r0 ldrb r0, [r4] strb r0, [r1] ldr r1, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r1, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0804FC0A: movs r1, #0 ldr r0, [r7] ldr r2, _0804FC68 @ =0x0000071D adds r7, r0, r2 ldr r6, _0804FC70 @ =0x086B1124 movs r0, #0x30 adds r0, r0, r6 mov ip, r0 ldr r4, _0804FC74 @ =0x040000D4 ldr r5, _0804FC78 @ =0x80000020 _0804FC1E: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r2, r3, #3 subs r2, r2, r3 lsls r2, r2, #3 adds r0, r7, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #3 adds r1, r1, r6 adds r1, r2, r1 add r2, ip ldr r0, [r1] str r0, [r4] ldr r0, [r2] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, [r1, #4] str r0, [r4] ldr r0, [r2, #4] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0804FC1E pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804FC60: .4byte 0x020314E0 _0804FC64: .4byte 0x00000721 _0804FC68: .4byte 0x0000071D _0804FC6C: .4byte 0x00000722 _0804FC70: .4byte 0x086B1124 _0804FC74: .4byte 0x040000D4 _0804FC78: .4byte 0x80000020 thumb_func_start sub_4FC7C sub_4FC7C: @ 0x0804FC7C push {r4, r5, r6, r7, lr} ldr r5, _0804FCE4 @ =0x020314E0 ldr r4, [r5] ldr r1, _0804FCE8 @ =0x00000714 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804FD26 ldr r2, _0804FCEC @ =0x00000715 adds r1, r4, r2 ldrb r0, [r1] cmp r0, #0 beq _0804FCF8 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804FCF0 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804FCF4 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, [r5] adds r3, #3 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0804FD26 .align 2, 0 _0804FCE4: .4byte 0x020314E0 _0804FCE8: .4byte 0x00000714 _0804FCEC: .4byte 0x00000715 _0804FCF0: .4byte 0x00000711 _0804FCF4: .4byte 0x00000713 _0804FCF8: movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804FD70 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804FD74 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] _0804FD26: movs r2, #0 ldr r0, _0804FD78 @ =0x020314E0 ldr r0, [r0] movs r3, #0xe2 lsls r3, r3, #3 adds r5, r0, r3 ldr r4, _0804FD7C @ =0x086B1300 adds r7, r4, #0 adds r7, #8 ldr r3, _0804FD80 @ =0x040000D4 ldr r6, _0804FD84 @ =0x80000020 _0804FD3C: lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r2, r0 adds r2, r2, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r2] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _0804FD3C pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804FD70: .4byte 0x00000711 _0804FD74: .4byte 0x00000713 _0804FD78: .4byte 0x020314E0 _0804FD7C: .4byte 0x086B1300 _0804FD80: .4byte 0x040000D4 _0804FD84: .4byte 0x80000020 thumb_func_start sub_4FD88 sub_4FD88: @ 0x0804FD88 push {r4, r5, lr} ldr r0, _0804FDA4 @ =0x020314E0 ldr r3, [r0] ldr r2, _0804FDA8 @ =0x00000724 adds r1, r3, r2 ldrh r2, [r1] movs r1, #0x96 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bls _0804FDB0 ldr r0, _0804FDAC @ =0x00000726 adds r1, r3, r0 b _0804FDC6 .align 2, 0 _0804FDA4: .4byte 0x020314E0 _0804FDA8: .4byte 0x00000724 _0804FDAC: .4byte 0x00000726 _0804FDB0: cmp r2, #0 beq _0804FDEC adds r0, r3, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804FDD0 ldr r2, _0804FDCC @ =0x00000726 adds r1, r3, r2 _0804FDC6: movs r0, #1 strb r0, [r1] b _0804FDF2 .align 2, 0 _0804FDCC: .4byte 0x00000726 _0804FDD0: ldr r0, _0804FDE4 @ =gMain ldr r0, [r0, #0x50] movs r1, #0xf ands r0, r1 lsrs r0, r0, #3 ldr r2, _0804FDE8 @ =0x00000726 adds r1, r3, r2 strb r0, [r1] b _0804FDF2 .align 2, 0 _0804FDE4: .4byte gMain _0804FDE8: .4byte 0x00000726 _0804FDEC: ldr r1, _0804FE54 @ =0x00000726 adds r0, r3, r1 strb r2, [r0] _0804FDF2: ldr r0, [r5] ldr r2, _0804FE54 @ =0x00000726 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #4 ldr r1, _0804FE58 @ =0x086B11CC adds r3, r0, r1 adds r4, r1, #0 adds r4, #0x20 ldr r2, _0804FE5C @ =0x040000D4 ldr r0, [r3] str r0, [r2] ldr r0, [r1, #0x20] str r0, [r2, #4] ldr r1, _0804FE60 @ =0x80000070 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xd7 ble _0804FE4C ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] ldr r0, _0804FE64 @ =0x80000060 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #0xc] str r0, [r2] ldr r0, [r4, #0xc] str r0, [r2, #4] ldr r0, _0804FE68 @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] _0804FE4C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804FE54: .4byte 0x00000726 _0804FE58: .4byte 0x086B11CC _0804FE5C: .4byte 0x040000D4 _0804FE60: .4byte 0x80000070 _0804FE64: .4byte 0x80000060 _0804FE68: .4byte 0x80000020 thumb_func_start sub_4FE6C sub_4FE6C: @ 0x0804FE6C push {r4, r5, r6, r7, lr} sub sp, #8 ldr r1, _0804FE94 @ =0x020314E0 ldr r2, [r1] ldr r3, _0804FE98 @ =0x0000072B adds r0, r2, r3 movs r3, #0 ldrsb r3, [r0, r3] adds r7, r1, #0 cmp r3, #0 bne _0804FEA0 mov r1, sp ldr r4, _0804FE9C @ =0x00000734 adds r0, r2, r4 ldrh r0, [r0] strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _0804FEE2 .align 2, 0 _0804FE94: .4byte 0x020314E0 _0804FE98: .4byte 0x0000072B _0804FE9C: .4byte 0x00000734 _0804FEA0: cmp r3, #1 bne _0804FEBC mov r0, sp strh r3, [r0] mov r1, sp ldr r0, _0804FEB8 @ =0x00000734 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r1, #2] ldrh r0, [r2] strh r0, [r1, #4] b _0804FEE2 .align 2, 0 _0804FEB8: .4byte 0x00000734 _0804FEBC: cmp r3, #2 bne _0804FED8 mov r0, sp strh r3, [r0] strh r3, [r0, #2] mov r1, sp ldr r3, _0804FED4 @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #1 strh r0, [r1, #4] b _0804FEE2 .align 2, 0 _0804FED4: .4byte 0x00000734 _0804FED8: mov r0, sp movs r1, #2 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] _0804FEE2: mov r0, sp movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804FFE4 @ =0x086B13F4 adds r2, r0, r3 adds r6, r3, #0 adds r6, #0x24 ldr r0, [r7] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xef bgt _0804FF12 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x24] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF12: ldr r0, [r7] adds r5, r0, #0 adds r5, #0x6a movs r4, #0 ldrsh r0, [r5, r4] cmp r0, #0xf7 bgt _0804FF30 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2, #4] str r0, [r1] ldr r0, [r6, #4] str r0, [r1, #4] ldr r0, _0804FFF0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF30: movs r0, #0 ldrsh r4, [r5, r0] cmp r4, #0x58 ble _0804FF7C mov r0, sp movs r2, #2 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r1, r3, #0 adds r1, #0x3c adds r2, r0, r1 adds r6, r3, #0 adds r6, #0x60 cmp r4, #0xfd bgt _0804FF62 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x60] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF62: movs r3, #0 ldrsh r1, [r5, r3] ldr r0, _0804FFF4 @ =0x00000105 cmp r1, r0 bgt _0804FF7C ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2, #4] str r0, [r1] ldr r0, [r6, #4] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF7C: ldr r0, [r7] adds r0, #0x6a movs r1, #0 ldrsh r4, [r0, r1] cmp r4, #0x60 ble _0804FFDA mov r0, sp movs r2, #4 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804FFF8 @ =0x086B146C adds r2, r0, r3 adds r6, r3, #0 adds r6, #0x24 ldr r0, _0804FFFC @ =0x00000107 cmp r4, r0 bgt _0804FFB2 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x24] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FFB2: ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2, #4] str r0, [r1] ldr r0, [r6, #4] str r0, [r1, #4] ldr r3, _0804FFEC @ =0x80000020 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] adds r0, #0x6a movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x68 ble _0804FFDA ldr r0, [r2, #8] str r0, [r1] ldr r0, [r6, #8] str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] _0804FFDA: add sp, #8 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804FFE4: .4byte 0x086B13F4 _0804FFE8: .4byte 0x040000D4 _0804FFEC: .4byte 0x80000020 _0804FFF0: .4byte 0x80000030 _0804FFF4: .4byte 0x00000105 _0804FFF8: .4byte 0x086B146C _0804FFFC: .4byte 0x00000107 thumb_func_start sub_50000 sub_50000: @ 0x08050000 push {r4, r5, r6, lr} movs r1, #0 ldr r6, _0805009C @ =0x020314E0 ldr r2, [r6] movs r3, #0xe5 lsls r3, r3, #3 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08050026 ldr r1, _080500A0 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _08050026: lsls r0, r1, #0x10 asrs r0, r0, #0xc ldr r3, _080500A4 @ =0x086B11FC adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xff bgt _0805004E ldr r1, _080500A8 @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _080500AC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0805004E: ldr r0, [r6] adds r2, r0, #0 adds r2, #0x6a ldrh r0, [r2] subs r0, #0x61 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa6 bhi _08050070 ldr r1, _080500A8 @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _080500B0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050070: movs r3, #0 ldrsh r0, [r2, r3] cmp r0, #0x67 ble _08050094 ldr r0, _080500A8 @ =0x040000D4 ldr r1, [r4, #8] str r1, [r0] ldr r1, [r5, #8] str r1, [r0, #4] ldr r2, _080500B0 @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r4, #0xc] str r1, [r0] ldr r1, [r5, #0xc] str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] _08050094: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0805009C: .4byte 0x020314E0 _080500A0: .4byte 0x00000734 _080500A4: .4byte 0x086B11FC _080500A8: .4byte 0x040000D4 _080500AC: .4byte 0x80000020 _080500B0: .4byte 0x80000040 thumb_func_start sub_500B4 sub_500B4: @ 0x080500B4 push {r4, r5, lr} movs r1, #0 ldr r5, _0805013C @ =0x020314E0 ldr r2, [r5] ldr r3, _08050140 @ =0x00000729 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080500D8 ldr r1, _08050144 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _080500D8: lsls r0, r1, #0x10 asrs r0, r0, #0xc ldr r1, _08050148 @ =0x086B122C adds r3, r0, r1 adds r4, r1, #0 adds r4, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xc2 bgt _08050100 ldr r1, _0805014C @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] ldr r0, _08050150 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050100: ldr r0, [r5] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x1e ble _0805011E ldr r1, _0805014C @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] ldr r0, _08050150 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0805011E: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x26 ble _08050136 ldr r1, _0805014C @ =0x040000D4 ldr r0, [r3, #0xc] str r0, [r1] ldr r0, [r4, #0xc] str r0, [r1, #4] ldr r0, _08050150 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050136: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0805013C: .4byte 0x020314E0 _08050140: .4byte 0x00000729 _08050144: .4byte 0x00000734 _08050148: .4byte 0x086B122C _0805014C: .4byte 0x040000D4 _08050150: .4byte 0x80000040 thumb_func_start sub_50154 sub_50154: @ 0x08050154 push {r4, r5, r6, lr} sub sp, #8 ldr r0, _0805018C @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r6, r0, #0 cmp r1, #2 bgt _080501E0 ldr r1, _08050190 @ =0x0000072E adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _08050198 mov r1, sp ldr r4, _08050194 @ =0x00000734 adds r2, r2, r4 movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 strh r0, [r1] ldrh r0, [r2] strh r0, [r1, #2] mov r0, sp strh r3, [r0, #4] b _08050206 .align 2, 0 _0805018C: .4byte 0x020314E0 _08050190: .4byte 0x0000072E _08050194: .4byte 0x00000734 _08050198: cmp r3, #1 bne _080501B8 mov r1, sp movs r0, #3 strh r0, [r1] ldr r0, _080501B4 @ =0x00000734 adds r2, r2, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #1 b _08050204 .align 2, 0 _080501B4: .4byte 0x00000734 _080501B8: cmp r3, #2 bne _080501D4 mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r4, _080501D0 @ =0x00000734 adds r0, r2, r4 ldrh r0, [r0] adds r0, #2 b _08050204 .align 2, 0 _080501D0: .4byte 0x00000734 _080501D4: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _08050206 _080501E0: mov r1, sp ldr r3, _080502F0 @ =0x00000739 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r4, _080502F4 @ =0x0000073A adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08050204: strh r0, [r1, #4] _08050206: mov r0, sp movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080502F8 @ =0x086B1340 mov ip, r1 adds r3, r0, r1 mov r4, ip adds r4, #0x30 ldr r0, [r6] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _080502FC @ =0x00000107 cmp r1, r0 bgt _0805023C ldr r1, _08050300 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _08050304 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0805023C: ldr r2, _08050300 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r5, _08050304 @ =0x80000030 str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r6] adds r6, r0, #0 adds r6, #0x6a movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x78 ble _080502A2 mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] _080502A2: movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x88 ble _080502E6 mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] ldr r0, _08050308 @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] _080502E6: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080502F0: .4byte 0x00000739 _080502F4: .4byte 0x0000073A _080502F8: .4byte 0x086B1340 _080502FC: .4byte 0x00000107 _08050300: .4byte 0x040000D4 _08050304: .4byte 0x80000030 _08050308: .4byte 0x80000020 thumb_func_start sub_5030C sub_5030C: @ 0x0805030C push {r4, r5, r6, lr} sub sp, #8 ldr r0, _08050340 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r5, r0, #0 cmp r1, #2 bgt _08050394 ldr r1, _08050344 @ =0x0000072F adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _0805034C mov r1, sp ldr r4, _08050348 @ =0x00000734 adds r0, r2, r4 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _080503BA .align 2, 0 _08050340: .4byte 0x020314E0 _08050344: .4byte 0x0000072F _08050348: .4byte 0x00000734 _0805034C: cmp r3, #1 bne _0805036C mov r1, sp movs r0, #3 strh r0, [r1] ldr r3, _08050368 @ =0x00000734 adds r2, r2, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 b _080503B8 .align 2, 0 _08050368: .4byte 0x00000734 _0805036C: cmp r3, #2 bne _08050388 mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r3, _08050384 @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #2 b _080503B8 .align 2, 0 _08050384: .4byte 0x00000734 _08050388: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _080503BA _08050394: mov r1, sp ldr r4, _080504A4 @ =0x00000736 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r3, _080504A8 @ =0x00000737 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _080503B8: strh r0, [r1, #4] _080503BA: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _080504AC @ =0x086B14A8 mov ip, r3 adds r3, r0, r3 mov r4, ip adds r4, #0x30 ldr r0, [r5] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _080504B0 @ =0x00000107 cmp r1, r0 bgt _080503F0 ldr r1, _080504B4 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _080504B8 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _080503F0: ldr r2, _080504B4 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r6, _080504B8 @ =0x80000030 str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r5, r0, #0 adds r5, #0x6a movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x78 ble _08050458 mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] ldr r1, _080504BC @ =0x80000020 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] _08050458: movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x88 ble _0805049C mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] ldr r1, _080504BC @ =0x80000020 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] _0805049C: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080504A4: .4byte 0x00000736 _080504A8: .4byte 0x00000737 _080504AC: .4byte 0x086B14A8 _080504B0: .4byte 0x00000107 _080504B4: .4byte 0x040000D4 _080504B8: .4byte 0x80000030 _080504BC: .4byte 0x80000020 thumb_func_start sub_504C0 sub_504C0: @ 0x080504C0 push {r4, r5, r6, lr} movs r3, #0 ldr r1, _08050584 @ =0x020314E0 ldr r0, [r1] ldr r4, _08050588 @ =0x00000731 adds r0, r0, r4 strb r3, [r0] ldr r2, [r1] ldr r5, _0805058C @ =0x0000072F adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #1 ble _080504EE movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _080504EE adds r1, r2, r4 movs r0, #1 strb r0, [r1] _080504EE: ldr r2, [r6] ldr r1, _08050588 @ =0x00000731 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0805050C ldr r5, _08050590 @ =0x00000734 adds r0, r2, r5 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0805050C: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r3, _08050594 @ =0x086B12D0 adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xe7 bgt _08050534 ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _0805059C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _08050534: ldr r0, [r6] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xef bgt _08050552 ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _080505A0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050552: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x4f ble _0805057E cmp r0, #0xf7 bgt _0805056E ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _080505A0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0805056E: ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4, #0xc] str r0, [r1] ldr r0, [r5, #0xc] str r0, [r1, #4] ldr r0, _0805059C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0805057E: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08050584: .4byte 0x020314E0 _08050588: .4byte 0x00000731 _0805058C: .4byte 0x0000072F _08050590: .4byte 0x00000734 _08050594: .4byte 0x086B12D0 _08050598: .4byte 0x040000D4 _0805059C: .4byte 0x80000030 _080505A0: .4byte 0x80000040 thumb_func_start sub_505A4 sub_505A4: @ 0x080505A4 push {r4, r5, lr} movs r3, #0 ldr r0, _080505C8 @ =0x020314E0 ldr r2, [r0] ldr r4, _080505CC @ =0x00000366 adds r1, r2, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r5, r0, #0 cmp r1, #3 bne _080505D4 ldr r0, _080505D0 @ =0x0000072A adds r1, r2, r0 movs r0, #1 strb r0, [r1] b _080505E2 .align 2, 0 _080505C8: .4byte 0x020314E0 _080505CC: .4byte 0x00000366 _080505D0: .4byte 0x0000072A _080505D4: movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #0 beq _080505E2 ldr r1, _0805060C @ =0x0000072A adds r0, r2, r1 strb r3, [r0] _080505E2: ldr r1, [r5] ldr r2, _0805060C @ =0x0000072A adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08050614 ldr r4, _08050610 @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r2, #0xa adds r1, r1, r2 ldrh r1, [r1] subs r1, #1 subs r0, r0, r1 lsls r0, r0, #0x10 b _08050620 .align 2, 0 _0805060C: .4byte 0x0000072A _08050610: .4byte 0x000001A5 _08050614: ldr r4, _0805069C @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x11 _08050620: lsrs r3, r0, #0x10 lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r2, _080506A0 @ =0x086B125C adds r3, r0, r2 adds r4, r2, #0 adds r4, #0x40 ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xdf bgt _0805064A ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x40] str r0, [r1, #4] ldr r0, _080506A8 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0805064A: ldr r0, [r5] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xe7 bgt _08050668 ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] ldr r0, _080506A8 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050668: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x47 ble _08050694 cmp r0, #0xef bgt _08050684 ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] ldr r0, _080506A8 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050684: ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3, #0xc] str r0, [r1] ldr r0, [r4, #0xc] str r0, [r1, #4] ldr r0, _080506AC @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _08050694: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0805069C: .4byte 0x000001A5 _080506A0: .4byte 0x086B125C _080506A4: .4byte 0x040000D4 _080506A8: .4byte 0x80000040 _080506AC: .4byte 0x80000030 thumb_func_start sub_506B0 sub_506B0: @ 0x080506B0 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r0, _08050700 @ =0x020314E0 ldr r0, [r0] movs r2, #0xe3 lsls r2, r2, #3 adds r5, r0, r2 ldr r4, _08050704 @ =0x086B12AC adds r7, r4, #0 adds r7, #8 ldr r3, _08050708 @ =0x040000D4 ldr r6, _0805070C @ =0x80000020 _080506C8: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r1, r0 adds r1, r1, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r1] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _080506C8 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050700: .4byte 0x020314E0 _08050704: .4byte 0x086B12AC _08050708: .4byte 0x040000D4 _0805070C: .4byte 0x80000020 thumb_func_start sub_50710 sub_50710: @ 0x08050710 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r2, _08050770 @ =0x020314E0 ldr r0, [r2] ldr r1, _08050774 @ =0x00000346 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _080507C0 movs r1, #0 mov sb, r2 ldr r2, _08050778 @ =0x0000034B mov r8, r2 ldr r5, _0805077C @ =0x040000D4 ldr r0, _08050780 @ =0x086B0F9C mov sl, r0 ldr r7, _08050784 @ =0x80000020 _0805073C: mov r2, sb ldr r0, [r2] lsls r1, r1, #0x10 asrs r4, r1, #0x10 add r0, r8 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #0 ble _08050788 cmp r0, #0xa bne _0805075E movs r0, #0xdc bl m4aSongNumStart _0805075E: mov r0, sb ldr r1, [r0] add r1, r8 adds r1, r1, r4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] movs r2, #1 b _0805078A .align 2, 0 _08050770: .4byte 0x020314E0 _08050774: .4byte 0x00000346 _08050778: .4byte 0x0000034B _0805077C: .4byte 0x040000D4 _08050780: .4byte 0x086B0F9C _08050784: .4byte 0x80000020 _08050788: movs r2, #0 _0805078A: asrs r3, r6, #0x10 lsls r1, r3, #1 adds r1, r1, r3 lsls r1, r1, #3 lsls r2, r2, #3 add r2, sl adds r2, r1, r2 ldr r0, _080507D0 @ =0x086B0FAC adds r1, r1, r0 ldr r0, [r2] str r0, [r5] ldr r0, [r1] str r0, [r5, #4] str r7, [r5, #8] ldr r0, [r5, #8] ldr r0, [r2, #4] str r0, [r5] ldr r0, [r1, #4] str r0, [r5, #4] str r7, [r5, #8] ldr r0, [r5, #8] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _0805073C _080507C0: 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 _080507D0: .4byte 0x086B0FAC thumb_func_start sub_507D4 sub_507D4: @ 0x080507D4 push {r4, r5, lr} movs r1, #0 ldr r0, _08050834 @ =0x020314E0 ldr r4, [r0] movs r2, #0xc2 lsls r2, r2, #2 adds r0, r4, r2 ldrh r0, [r0] cmp r0, #0x63 bls _080507F8 ldr r1, _08050838 @ =0x0000070C adds r0, r4, r1 ldrh r0, [r0] movs r1, #0x14 bl __umodsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x12 _080507F8: lsls r0, r1, #3 ldr r2, _0805083C @ =0x086B0E6C adds r3, r0, r2 adds r5, r2, #0 adds r5, #0x28 adds r0, r4, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xaf bgt _0805081E ldr r1, _08050840 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x28] str r0, [r1, #4] ldr r0, _08050844 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0805081E: ldr r1, _08050840 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _08050844 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08050834: .4byte 0x020314E0 _08050838: .4byte 0x0000070C _0805083C: .4byte 0x086B0E6C _08050840: .4byte 0x040000D4 _08050844: .4byte 0x80000020 thumb_func_start sub_50848 sub_50848: @ 0x08050848 push {r4, r5, r6, r7, lr} movs r0, #0 ldr r4, _080508E8 @ =gMain ldr r7, _080508EC @ =0x086B155C adds r6, r4, #0 movs r5, #0xb8 movs r3, #0xbe lsls r3, r3, #2 movs r2, #0 _0805085A: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x53 ble _0805085A ldr r0, _080508F0 @ =0x000030F8 adds r1, r4, r0 movs r0, #1 strh r0, [r1] ldr r1, _080508F4 @ =0x00002578 adds r3, r4, r1 ldr r2, _080508F8 @ =0x00003548 adds r1, r4, r2 strh r0, [r1] movs r5, #0xbe lsls r5, r5, #2 adds r2, r4, r5 strh r0, [r2] adds r5, #0xb8 adds r1, r4, r5 strh r0, [r1] adds r5, #0xb8 adds r1, r4, r5 strh r0, [r1] ldr r5, _080508FC @ =0x00001718 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050900 @ =0x00003D30 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050904 @ =0x000031B0 adds r1, r4, r5 strh r0, [r1] movs r5, #0xd8 lsls r5, r5, #6 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050908 @ =0x00003268 adds r1, r4, r5 strh r0, [r1] ldr r5, _0805090C @ =0x000027A0 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050910 @ =0x00002ED0 adds r1, r4, r5 strh r0, [r1] strh r0, [r3] ldr r3, _08050914 @ =0x00002858 adds r1, r4, r3 strh r0, [r1] adds r5, #0xb8 adds r1, r4, r5 strh r0, [r1] ldrb r1, [r4, #4] lsls r1, r1, #3 adds r1, r1, r7 ldr r0, [r1] ldrh r1, [r1, #4] bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080508E8: .4byte gMain _080508EC: .4byte 0x086B155C _080508F0: .4byte 0x000030F8 _080508F4: .4byte 0x00002578 _080508F8: .4byte 0x00003548 _080508FC: .4byte 0x00001718 _08050900: .4byte 0x00003D30 _08050904: .4byte 0x000031B0 _08050908: .4byte 0x00003268 _0805090C: .4byte 0x000027A0 _08050910: .4byte 0x00002ED0 _08050914: .4byte 0x00002858 thumb_func_start sub_50918 sub_50918: @ 0x08050918 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r2, _080509EC @ =gMain ldr r1, _080509F0 @ =0x00000A28 adds r0, r2, r1 movs r1, #0 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] ldr r4, _080509F4 @ =0x00002578 adds r0, r2, r4 strh r1, [r0] movs r3, #0xd8 lsls r3, r3, #6 adds r0, r2, r3 strh r1, [r0] movs r0, #0x33 adds r5, r2, #0 ldr r7, _080509F8 @ =0x020314E0 ldr r4, _080509FC @ =0x086B155C mov r8, r4 adds r6, r5, #0 movs r4, #0xb8 movs r3, #0xbe lsls r3, r3, #2 movs r2, #0 _08050952: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r6 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x42 ble _08050952 ldr r4, [r7] ldr r0, [r5, #0x4c] movs r1, #0x19 bl __umodsi3 movs r2, #0xde lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r4, #0x68 movs r3, #0 ldrsh r0, [r4, r3] cmp r0, #0x6d bgt _0805099E ldr r4, _08050A00 @ =0x000031B0 adds r0, r5, r4 movs r1, #1 strh r1, [r0] movs r2, #0xd8 lsls r2, r2, #6 adds r0, r5, r2 strh r1, [r0] ldr r3, _08050A04 @ =0x00003268 adds r0, r5, r3 strh r1, [r0] _0805099E: ldr r3, [r7] adds r2, r3, #0 adds r2, #0x68 movs r4, #0 ldrsh r0, [r2, r4] cmp r0, #0xa7 bgt _080509BA ldr r1, _080509F4 @ =0x00002578 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r4, _08050A08 @ =0x00002858 adds r0, r5, r4 strh r1, [r0] _080509BA: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xdb bgt _08050A1E ldr r2, _08050A0C @ =0x000027A0 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r4, _08050A10 @ =0x00002ED0 adds r0, r5, r4 strh r1, [r0] ldr r2, _08050A14 @ =0x000030F8 adds r0, r5, r2 strh r1, [r0] movs r4, #0xa9 lsls r4, r4, #2 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08050A18 subs r2, #0xb8 adds r0, r5, r2 b _08050A1C .align 2, 0 _080509EC: .4byte gMain _080509F0: .4byte 0x00000A28 _080509F4: .4byte 0x00002578 _080509F8: .4byte 0x020314E0 _080509FC: .4byte 0x086B155C _08050A00: .4byte 0x000031B0 _08050A04: .4byte 0x00003268 _08050A08: .4byte 0x00002858 _08050A0C: .4byte 0x000027A0 _08050A10: .4byte 0x00002ED0 _08050A14: .4byte 0x000030F8 _08050A18: ldr r3, _08050AB0 @ =0x00002F88 adds r0, r5, r3 _08050A1C: strh r1, [r0] _08050A1E: ldr r0, [r7] adds r0, #0x68 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x3f ble _08050A38 ldr r1, _08050AB4 @ =0x00002910 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r2, _08050AB8 @ =0x00002BF0 adds r0, r5, r2 strh r1, [r0] _08050A38: ldr r0, [r7] adds r4, r0, #0 adds r4, #0x68 movs r3, #0 ldrsh r0, [r4, r3] cmp r0, #0x73 ble _08050A4E ldr r0, _08050ABC @ =0x00002CA8 adds r1, r5, r0 movs r0, #1 strh r0, [r1] _08050A4E: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x82 ble _08050A64 ldr r2, _08050AC0 @ =0x00002D60 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r3, _08050AC4 @ =0x00002E18 adds r0, r5, r3 strh r1, [r0] _08050A64: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xd8 ble _08050A90 ldr r2, _08050AC8 @ =0x00002B38 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r3, _08050ACC @ =0x000029C8 adds r0, r5, r3 strh r1, [r0] movs r4, #0xaa lsls r4, r4, #6 adds r0, r5, r4 strh r1, [r0] ldr r2, _08050AD0 @ =0x00000A28 adds r0, r5, r2 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r5, r3 strh r1, [r0] _08050A90: ldrb r1, [r5, #4] lsls r1, r1, #3 add r1, r8 ldr r0, [r1] ldrh r1, [r1, #4] movs r4, #0xbe lsls r4, r4, #2 adds r2, r5, r4 bl sub_358 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050AB0: .4byte 0x00002F88 _08050AB4: .4byte 0x00002910 _08050AB8: .4byte 0x00002BF0 _08050ABC: .4byte 0x00002CA8 _08050AC0: .4byte 0x00002D60 _08050AC4: .4byte 0x00002E18 _08050AC8: .4byte 0x00002B38 _08050ACC: .4byte 0x000029C8 _08050AD0: .4byte 0x00000A28 thumb_func_start sub_50AD4 sub_50AD4: @ 0x08050AD4 push {r4, r5, r6, r7, lr} movs r0, #0 ldr r3, _08050B5C @ =gMain ldr r7, _08050B60 @ =0x086B155C adds r6, r3, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r2, #0 _08050AE6: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x56 ble _08050AE6 ldr r1, _08050B64 @ =0x000036B8 adds r0, r3, r1 movs r1, #1 strh r1, [r0] movs r2, #0xc1 lsls r2, r2, #6 adds r0, r3, r2 strh r1, [r0] ldr r4, _08050B68 @ =0x00002E18 adds r0, r3, r4 strh r1, [r0] ldr r2, _08050B6C @ =0x00003490 adds r0, r3, r2 strh r1, [r0] ldr r4, _08050B70 @ =0x00002858 adds r0, r3, r4 strh r1, [r0] ldr r2, _08050B74 @ =0x00003828 adds r0, r3, r2 strh r1, [r0] movs r4, #0xbe lsls r4, r4, #2 adds r2, r3, r4 strh r1, [r2] adds r4, #0xb8 adds r0, r3, r4 strh r1, [r0] adds r4, #0xb8 adds r0, r3, r4 strh r1, [r0] ldr r4, _08050B78 @ =0x000014F0 adds r0, r3, r4 strh r1, [r0] ldr r4, _08050B7C @ =0x00004010 adds r0, r3, r4 strh r1, [r0] ldrb r1, [r3, #4] lsls r1, r1, #3 adds r1, r1, r7 ldr r0, [r1] ldrh r1, [r1, #4] bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050B5C: .4byte gMain _08050B60: .4byte 0x086B155C _08050B64: .4byte 0x000036B8 _08050B68: .4byte 0x00002E18 _08050B6C: .4byte 0x00003490 _08050B70: .4byte 0x00002858 _08050B74: .4byte 0x00003828 _08050B78: .4byte 0x000014F0 _08050B7C: .4byte 0x00004010 thumb_func_start sub_50B80 sub_50B80: @ 0x08050B80 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r0, #0x37 ldr r1, _08050CF0 @ =gMain mov sb, r1 mov r5, sb movs r4, #0xb8 movs r3, #0xbe lsls r3, r3, #2 movs r2, #0 _08050B9A: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r5 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x46 ble _08050B9A mov r5, sb ldr r2, _08050CF4 @ =0x00002858 adds r7, r5, r2 movs r0, #0 strh r0, [r7] ldr r1, _08050CF8 @ =0x000036B8 adds r1, r1, r5 mov r8, r1 strh r0, [r1] ldr r2, _08050CFC @ =0x0200C668 strh r0, [r2] ldr r1, _08050D00 @ =0x000027A0 adds r6, r5, r1 strh r0, [r6] ldr r2, _08050D04 @ =0x0200EA58 strh r0, [r2] ldr r1, _08050D08 @ =0x000038E0 adds r1, r1, r5 mov sl, r1 strh r0, [r1] ldr r2, _08050D0C @ =0x0200BAE8 strh r0, [r2] ldr r1, _08050D10 @ =0x0200BBA0 strh r0, [r1] ldr r2, _08050D14 @ =0x020314E0 ldr r4, [r2] ldr r0, [r5, #0x4c] movs r1, #0x19 bl __umodsi3 movs r2, #0xde lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r4, #0x68 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x59 bgt _08050C08 movs r0, #1 strh r0, [r7] strh r0, [r6] _08050C08: ldr r2, _08050D14 @ =0x020314E0 ldr r0, [r2] adds r4, r0, #0 adds r4, #0x68 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xdb bgt _08050C1E movs r0, #1 mov r2, r8 strh r0, [r2] _08050C1E: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x95 bgt _08050C34 ldr r2, _08050D18 @ =0x00002E18 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r2, _08050D1C @ =0x00003490 adds r0, r5, r2 strh r1, [r0] _08050C34: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xc3 bgt _08050C4A movs r2, #0xc1 lsls r2, r2, #6 adds r1, r5, r2 movs r0, #1 strh r0, [r1] mov r1, sl strh r0, [r1] _08050C4A: movs r2, #0 ldrsh r0, [r4, r2] cmp r0, #0xc9 bgt _08050C70 ldr r1, _08050D20 @ =0x00002ED0 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r2, _08050D24 @ =0x00002CA8 adds r0, r5, r2 strh r1, [r0] ldr r2, _08050D28 @ =0x00002F88 adds r0, r5, r2 strh r1, [r0] ldr r2, _08050D2C @ =0x00002D60 adds r0, r5, r2 strh r1, [r0] ldr r0, _08050D04 @ =0x0200EA58 strh r1, [r0] _08050C70: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x76 ble _08050CA2 ldr r2, _08050D30 @ =0x00003548 adds r1, r5, r2 movs r0, #1 strh r0, [r1] ldr r1, _08050CFC @ =0x0200C668 strh r0, [r1] ldr r2, _08050D34 @ =0x000030F8 adds r1, r5, r2 strh r0, [r1] ldr r2, _08050D38 @ =0x000033D8 adds r1, r5, r2 strh r0, [r1] ldr r2, _08050D3C @ =0x000031B0 adds r1, r5, r2 strh r0, [r1] adds r2, #0xb8 adds r1, r5, r2 strh r0, [r1] adds r2, #0xb8 adds r1, r5, r2 strh r0, [r1] _08050CA2: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xd8 ble _08050CC8 ldr r2, _08050D40 @ =0x00002BF0 adds r0, r5, r2 movs r1, #1 strh r1, [r0] movs r2, #0xaa lsls r2, r2, #6 adds r0, r5, r2 strh r1, [r0] adds r2, #0xb8 adds r0, r5, r2 strh r1, [r0] ldr r0, _08050D0C @ =0x0200BAE8 strh r1, [r0] ldr r2, _08050D10 @ =0x0200BBA0 strh r1, [r2] _08050CC8: mov r0, sb ldrb r1, [r0, #4] lsls r1, r1, #3 ldr r2, _08050D44 @ =0x086B155C adds r1, r1, r2 ldr r0, [r1] ldrh r1, [r1, #4] movs r2, #0xbe lsls r2, r2, #2 add r2, sb bl sub_358 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 _08050CF0: .4byte gMain _08050CF4: .4byte 0x00002858 _08050CF8: .4byte 0x000036B8 _08050CFC: .4byte 0x0200C668 _08050D00: .4byte 0x000027A0 _08050D04: .4byte 0x0200EA58 _08050D08: .4byte 0x000038E0 _08050D0C: .4byte 0x0200BAE8 _08050D10: .4byte 0x0200BBA0 _08050D14: .4byte 0x020314E0 _08050D18: .4byte 0x00002E18 _08050D1C: .4byte 0x00003490 _08050D20: .4byte 0x00002ED0 _08050D24: .4byte 0x00002CA8 _08050D28: .4byte 0x00002F88 _08050D2C: .4byte 0x00002D60 _08050D30: .4byte 0x00003548 _08050D34: .4byte 0x000030F8 _08050D38: .4byte 0x000033D8 _08050D3C: .4byte 0x000031B0 _08050D40: .4byte 0x00002BF0 _08050D44: .4byte 0x086B155C thumb_func_start sub_50D48 sub_50D48: @ 0x08050D48 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r6, _08050D74 @ =gMain ldr r0, _08050D78 @ =0x086B155C mov ip, r0 adds r5, r6, #0 movs r4, #0xb8 movs r2, #0xbe lsls r2, r2, #2 movs r7, #1 _08050D5C: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08050D7C adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r5 adds r0, r0, r2 strh r7, [r0] b _08050D88 .align 2, 0 _08050D74: .4byte gMain _08050D78: .4byte 0x086B155C _08050D7C: adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r5 adds r0, r0, r2 movs r1, #0 strh r1, [r0] _08050D88: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _08050D5C ldr r0, [r6, #0x44] ldr r1, [r0] movs r0, #1 strh r0, [r1] ldrb r1, [r6, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r6, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_50DB8 sub_50DB8: @ 0x08050DB8 push {lr} ldr r0, _08050DD8 @ =0x086B155C ldr r2, _08050DDC @ =gMain ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08050DD8: .4byte 0x086B155C _08050DDC: .4byte gMain thumb_func_start sub_50DE0 sub_50DE0: @ 0x08050DE0 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _08050E0C @ =gMain ldr r0, _08050E10 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08050DF4: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08050E14 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08050E20 .align 2, 0 _08050E0C: .4byte gMain _08050E10: .4byte 0x086B155C _08050E14: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08050E20: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x20 ble _08050DF4 ldr r0, [r2, #0x44] ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r3, #0x9c lsls r3, r3, #5 adds r1, r2, r3 strh r0, [r1] movs r3, #0x97 lsls r3, r3, #4 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EE8 @ =0x00001438 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EEC @ =0x00000E78 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] movs r3, #0x80 lsls r3, r3, #4 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EF0 @ =0x00000A28 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EF4 @ =0x00000FE8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EF8 @ =0x000014F0 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] movs r3, #0xca lsls r3, r3, #5 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EFC @ =0x000017D0 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050EE8: .4byte 0x00001438 _08050EEC: .4byte 0x00000E78 _08050EF0: .4byte 0x00000A28 _08050EF4: .4byte 0x00000FE8 _08050EF8: .4byte 0x000014F0 _08050EFC: .4byte 0x000017D0 thumb_func_start nullsub_20 nullsub_20: @ 0x08050F00 bx lr thumb_func_start sub_50F04 sub_50F04: @ 0x08050F04 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _08050F30 @ =gMain ldr r0, _08050F34 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08050F18: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08050F38 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08050F44 .align 2, 0 _08050F30: .4byte gMain _08050F34: .4byte 0x086B155C _08050F38: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08050F44: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1a ble _08050F18 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _08050FA8 @ =0x00001210 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] movs r3, #0xdc lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050FA8: .4byte 0x00001210 thumb_func_start sub_50FAC sub_50FAC: @ 0x08050FAC push {lr} ldr r0, _08050FCC @ =0x086B155C ldr r2, _08050FD0 @ =gMain ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08050FCC: .4byte 0x086B155C _08050FD0: .4byte gMain thumb_func_start sub_50FD4 sub_50FD4: @ 0x08050FD4 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _08051000 @ =gMain ldr r0, _08051004 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08050FE8: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08051008 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08051014 .align 2, 0 _08051000: .4byte gMain _08051004: .4byte 0x086B155C _08051008: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08051014: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1f ble _08050FE8 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _08051064 @ =0x000017D0 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08051064: .4byte 0x000017D0 thumb_func_start sub_51068 sub_51068: @ 0x08051068 push {lr} ldr r0, _08051088 @ =0x086B155C ldr r2, _0805108C @ =gMain ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08051088: .4byte 0x086B155C _0805108C: .4byte gMain thumb_func_start sub_51090 sub_51090: @ 0x08051090 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _080510BC @ =gMain ldr r0, _080510C0 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _080510A4: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _080510C4 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _080510D0 .align 2, 0 _080510BC: .4byte gMain _080510C0: .4byte 0x086B155C _080510C4: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _080510D0: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x2d ble _080510A4 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] ldr r3, _08051120 @ =0x00002128 adds r0, r2, r3 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _08051124 @ =0x00001210 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08051120: .4byte 0x00002128 _08051124: .4byte 0x00001210 thumb_func_start sub_51128 sub_51128: @ 0x08051128 push {lr} ldr r0, _08051148 @ =0x086B155C ldr r2, _0805114C @ =gMain ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08051148: .4byte 0x086B155C _0805114C: .4byte gMain thumb_func_start sub_51150 sub_51150: @ 0x08051150 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _0805117C @ =gMain ldr r0, _08051180 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08051164: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08051184 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08051190 .align 2, 0 _0805117C: .4byte gMain _08051180: .4byte 0x086B155C _08051184: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08051190: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x16 ble _08051164 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] ldr r3, _080511EC @ =0x00000FE8 adds r0, r2, r3 strh r1, [r0] ldr r3, _080511F0 @ =0x00001210 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _080511F4 @ =0x00000D08 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080511EC: .4byte 0x00000FE8 _080511F0: .4byte 0x00001210 _080511F4: .4byte 0x00000D08 thumb_func_start sub_511F8 sub_511F8: @ 0x080511F8 push {lr} ldr r0, _08051218 @ =0x086B155C ldr r2, _0805121C @ =gMain ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08051218: .4byte 0x086B155C _0805121C: .4byte gMain