.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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08011BC8: .4byte 0x0000132C _08011BCC: .4byte 0x00001334 _08011BD0: movs r3, #0 _08011BD2: ldr r0, _08011C08 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08011C0C: .4byte 0x0000132C _08011C10: .4byte 0x00001334 thumb_func_start sub_11C14 sub_11C14: @ 0x08011C14 push {r4, r5, lr} ldr r3, _08011C6C @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08011C70: .4byte 0x00001334 _08011C74: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08137910 b _08011CFE .align 2, 0 _08011CE0: .4byte gUnknown_020314E0 _08011CE4: .4byte 0x0000132C _08011CE8: .4byte 0x000005A4 _08011CEC: .4byte gUnknown_08137910 _08011CF0: cmp r0, #0x50 ble _08011CFC ldr r0, _08011CF8 @ =gUnknown_08137908 b _08011CFE .align 2, 0 _08011CF8: .4byte gUnknown_08137908 _08011CFC: ldr r0, _08011D8C @ =gUnknown_08137900 _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 gUnknown_08137900 _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 @ =gUnknown_08137910 b _08011E2A .align 2, 0 _08011E18: .4byte gUnknown_08137910 _08011E1C: cmp r0, #0x64 ble _08011E28 ldr r0, _08011E24 @ =gUnknown_08137908 b _08011E2A .align 2, 0 _08011E24: .4byte gUnknown_08137908 _08011E28: ldr r0, _08011EB8 @ =gUnknown_08137900 _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 gUnknown_08137900 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08137910 b _08011FF2 .align 2, 0 _08011FD0: .4byte gUnknown_020314E0 _08011FD4: .4byte 0x0000132C _08011FD8: .4byte 0x000005A4 _08011FDC: .4byte 0x00000383 _08011FE0: .4byte gUnknown_08137910 _08011FE4: cmp r0, #0x4b ble _08011FF0 ldr r0, _08011FEC @ =gUnknown_08137908 b _08011FF2 .align 2, 0 _08011FEC: .4byte gUnknown_08137908 _08011FF0: ldr r0, _0801208C @ =gUnknown_08137900 _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 gUnknown_08137900 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080125F4: .4byte 0x0000132C _080125F8: .4byte 0x000005F7 _080125FC: .4byte 0x000005F6 _08012600: .4byte 0x040000D4 _08012604: .4byte gUnknown_08137E14 _08012608: .4byte 0x05000220 _0801260C: .4byte 0x80000010 _08012610: .4byte 0x000005B2 _08012614: ldr r4, _080126C8 @ =gUnknown_020314E0 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 SetMatrixScale ldr r0, _080126C8 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 gUnknown_020314E0 _080126CC: .4byte 0x000005B2 _080126D0: .4byte gMain _080126D4: .4byte 0x000002AA _080126D8: .4byte 0x000005FC _080126DC: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_083BB16C 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 gUnknown_020314E0 _08012770: .4byte 0x000005F6 _08012774: .4byte gUnknown_083BB16C _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 SetMatrixScale ldr r0, _08012828 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 gUnknown_020314E0 _0801282C: .4byte 0x000002AA _08012830: .4byte 0x000005FC _08012834: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_083BB16C 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 gUnknown_020314E0 _080128C8: .4byte 0x000005F6 _080128CC: .4byte gUnknown_083BB16C _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 @ =gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080129D4: .4byte gMain _080129D8: .4byte gOamBuffer _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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gOamBuffer _08012B20: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_083BD36C 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08012BD4: .4byte 0x040000D4 _08012BD8: .4byte gUnknown_083BD36C _08012BDC: .4byte 0x06011EE0 _08012BE0: .4byte 0x80000100 _08012BE4: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_02031590 ldrb r1, [r0, #0x16] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08012C74 @ =gUnknown_0200B3B8 adds r6, r1, r0 b _08012CAC .align 2, 0 _08012C70: .4byte gUnknown_02031590 _08012C74: .4byte gUnknown_0200B3B8 _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 @ =gUnknown_083BB16C 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 @ =gOamBuffer 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 gUnknown_083BB16C _08012DD4: .4byte 0x06010400 _08012DD8: .4byte 0x80000040 _08012DDC: .4byte 0x000002AA _08012DE0: .4byte 0x000005FC _08012DE4: .4byte 0x0000FFC4 _08012DE8: .4byte gOamBuffer _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 @ =gUnknown_083BF16C 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 @ =gUnknown_08137E14 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 @ =gUnknown_020314E0 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 gUnknown_083BF16C _08012F9C: .4byte 0x06010720 _08012FA0: .4byte 0x80000100 _08012FA4: .4byte 0xFFF90000 _08012FA8: .4byte 0x000005F6 _08012FAC: .4byte gUnknown_08137E14 _08012FB0: .4byte 0x05000220 _08012FB4: .4byte 0x80000010 _08012FB8: .4byte gUnknown_020314E0 _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 @ =gUnknown_083BDF6C 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r0, [r3] ldr r4, _08013098 @ =0x000005F6 adds r0, r0, r4 b _080130F2 .align 2, 0 _0801307C: .4byte 0x00000392 _08013080: .4byte 0x040000D4 _08013084: .4byte gUnknown_083BDF6C _08013088: .4byte 0x06010720 _0801308C: .4byte 0x80000100 _08013090: .4byte gMain _08013094: .4byte gUnknown_020314E0 _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 @ =gUnknown_08137E14 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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 gUnknown_08137E14 _08013214: .4byte 0x05000220 _08013218: .4byte 0x80000010 _0801321C: .4byte gMain _08013220: .4byte gUnknown_020314E0 _08013224: .4byte gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _08013328: .4byte 0x000001FF thumb_func_start sub_1332C sub_1332C: @ 0x0801332C ldr r0, _08013338 @ =gUnknown_020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] bx lr .align 2, 0 _08013338: .4byte gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACD50 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08013420: .4byte 0x0000132C _08013424: .4byte gUnknown_086ACD50 _08013428: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _08013464 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACD50 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080134F4: .4byte 0x0000132C _080134F8: .4byte gUnknown_086ACD50 _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 @ =gUnknown_02031520 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 @ =gUnknown_020314E0 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 gUnknown_02031520 _08013564: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACD74 _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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801360C: .4byte gUnknown_086ACD74 _08013610: .4byte gUnknown_02031520 _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 @ =gUnknown_02031520 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 @ =gUnknown_020314E0 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 gUnknown_02031520 _08013678: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACD74 _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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08013750: .4byte gUnknown_086ACD74 _08013754: .4byte gUnknown_02031520 _08013758: ldr r0, _08013788 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r0, [r0] ldr r1, _08013AC4 @ =0x0000132C adds r0, r0, r1 b _08013AD4 .align 2, 0 _08013ABC: .4byte 0x00004E20 _08013AC0: .4byte gUnknown_020314E0 _08013AC4: .4byte 0x0000132C _08013AC8: cmp r1, #0x45 ble _08013AE4 ldr r0, _08013B1C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACD84 adds r0, r0, r3 movs r4, #0x80 lsls r4, r4, #7 adds r1, r4, #0 b _08013CDC .align 2, 0 _08013CAC: .4byte gUnknown_020314E0 _08013CB0: .4byte 0x000013BC _08013CB4: .4byte 0x000013BD _08013CB8: .4byte 0x000013BE _08013CBC: .4byte 0x000013C1 _08013CC0: .4byte gUnknown_086ACD84 _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 @ =gUnknown_086ACD86 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 gUnknown_086ACD86 _08013CF0: ldr r3, [sp, #0xc] lsls r0, r3, #0x10 cmp r0, #0 bgt _08013D08 ldr r0, _08013D04 @ =gUnknown_020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #5 strb r1, [r0] b _08013D14 .align 2, 0 _08013D04: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086ACDF4 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 @ =gUnknown_020314E0 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 gUnknown_086ACDF4 _080143D8: .4byte 0x00004E20 _080143DC: .4byte 0xFFFF0000 _080143E0: .4byte 0x0000FFFF _080143E4: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r0, [r2] adds r0, #0x22 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x23 strb r1, [r0] ldr r1, _0801451C @ =gUnknown_086ACE0C 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 gUnknown_020314E0 _0801451C: .4byte gUnknown_086ACE0C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACE60 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08014660: .4byte gUnknown_086ACE60 _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 @ =gUnknown_02031520 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_02031520 _08014738: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_0839A28C 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 gUnknown_020314E0 _080147EC: .4byte 0x000005A4 _080147F0: .4byte gUnknown_0839A28C _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACDB8 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08014B74: .4byte 0x000013BC _08014B78: .4byte gUnknown_086ACDB8 _08014B7C: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08014C24: .4byte 0x000013C1 _08014C28: .4byte 0x000013C4 _08014C2C: .4byte 0x00000B21 _08014C30: .4byte 0xFFFFF5D8 _08014C34: ldr r0, _08014D14 @ =gUnknown_086ACE2C 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086ACE2C _08014D18: .4byte 0xFFFFF5D8 _08014D1C: .4byte 0x00001518 _08014D20: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08014F10: .4byte 0x0000132C _08014F14: .4byte 0xFFFF0000 _08014F18: .4byte 0x0000FFFF _08014F1C: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08014FB8: .4byte 0xFFFFC010 _08014FBC: .4byte 0x0000132C _08014FC0: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015014: .4byte 0x0000FFF0 _08015018: ldr r2, _0801504C @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08259C10 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 gUnknown_020314E0 _0801512C: .4byte 0x000005B2 _08015130: .4byte 0x000002A3 _08015134: .4byte gUnknown_08259C10 _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 @ =gUnknown_08252B10 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 @ =gUnknown_08252B10 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 @ =gUnknown_08252B10 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 gUnknown_08252B10 _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 @ =gUnknown_08254B10 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 @ =gUnknown_08257390 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 gUnknown_08254B10 _080153B8: .4byte 0x0000FFF0 _080153BC: .4byte 0x000002E2 _080153C0: .4byte 0x000002E6 _080153C4: .4byte 0x000002EE _080153C8: .4byte gUnknown_08257390 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015494: ldr r3, _080154B8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015644: .4byte 0x00000165 _08015648: .4byte 0x00000732 _0801564C: ldr r4, _08015670 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015674: .4byte 0x000005B2 _08015678: .4byte 0x0000029E _0801567C: ldr r5, _080156C4 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015760: .4byte 0x00000732 _08015764: ldr r0, _080157A8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r1, [r5] ldr r4, _08015A8C @ =0x0000072F adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08015A90 @ =gMPlayInfo_SE1 ldr r1, _08015A94 @ =gUnknown_0869FC0C 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015A8C: .4byte 0x0000072F _08015A90: .4byte gMPlayInfo_SE1 _08015A94: .4byte gUnknown_0869FC0C _08015A98: .4byte 0x00000731 _08015A9C: .4byte 0x000006BC _08015AA0: .4byte 0x00000732 _08015AA4: ldr r0, _08015AC0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015EA8: .4byte 0x00000616 _08015EAC: .4byte 0x0000132C _08015EB0: .4byte 0x00000614 _08015EB4: ldr r3, _08015F14 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015F18: .4byte 0x000002DA _08015F1C: .4byte 0x00001388 _08015F20: ldr r4, _08015F80 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08015F84: .4byte 0x000002DA _08015F88: .4byte 0x00001388 _08015F8C: ldr r0, _08015FE8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08016194: .4byte 0x0000132C _08016198: .4byte 0xFFFF0000 _0801619C: .4byte 0x0000FFFF _080161A0: .4byte gUnknown_02031520 _080161A4: cmp r1, #4 bne _08016290 _080161A8: ldr r2, _08016208 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801620C: .4byte 0xFFFFC010 _08016210: .4byte 0x0000132C _08016214: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08252B10 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 @ =gUnknown_08252B10 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 @ =gUnknown_08252B10 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 gUnknown_020314E0 _0801641C: .4byte 0x000005B2 _08016420: .4byte gUnknown_08252B10 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080164B8: .4byte 0x0000132C _080164BC: adds r1, #0x25 movs r0, #3 _080164C0: strb r0, [r1] bl sub_32914 ldr r0, _080164D4 @ =gUnknown_020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #7 strb r1, [r0] b _080168A4 .align 2, 0 _080164D4: .4byte gUnknown_020314E0 _080164D8: ldr r3, _080164F0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801678C: .4byte 0x0000132C _08016790: .4byte 0x00000BB8 _08016794: ldr r1, _080167BC @ =gUnknown_020314E0 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 gUnknown_020314E0 _080167C0: .4byte 0x00000165 _080167C4: .4byte 0x00000732 _080167C8: .4byte 0x00000342 _080167CC: ldr r0, _08016850 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080168B0: .4byte 0x00000366 _080168B4: ldr r1, _0801690C @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08016C18: .4byte 0x0000072F _08016C1C: .4byte 0x00000731 _08016C20: .4byte 0x000006BC _08016C24: .4byte 0x00000732 _08016C28: ldr r0, _08016C4C @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08016EFC: .4byte 0x00000616 _08016F00: .4byte 0x0000132C _08016F04: .4byte 0x00000614 _08016F08: ldr r5, _08017058 @ =gUnknown_020314E0 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 @ =gUnknown_086ACE70 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801705C: .4byte 0x00000732 _08017060: .4byte gUnknown_086ACE70 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACE70 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 gUnknown_020314E0 _08017148: .4byte 0x00000732 _0801714C: .4byte gUnknown_086ACE70 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _080172D0: .4byte 0x0000132C _080172D4: .4byte 0xFFFF0000 _080172D8: .4byte 0x0000FFFF _080172DC: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08017378: .4byte 0xFFFFC010 _0801737C: .4byte 0x0000132C _08017380: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_083071D4 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 gUnknown_020314E0 _08017498: .4byte 0x00000387 _0801749C: .4byte 0x000003F2 _080174A0: .4byte gUnknown_083071D4 _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 @ =gUnknown_08252B10 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 @ =gUnknown_08252B10 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 @ =gUnknown_08252B10 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 gUnknown_08252B10 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _080177B4: .4byte 0x0000132C _080177B8: .4byte 0xFFFF0000 _080177BC: .4byte 0x0000FFFF _080177C0: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08017804: ldr r2, _0801785C @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_0832D604 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 gUnknown_020314E0 _08017928: .4byte 0x00000387 _0801792C: .4byte 0x000003F2 _08017930: .4byte gUnknown_0832D604 _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 @ =gUnknown_08330204 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 gUnknown_08330204 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08017CFC: .4byte 0xFFFF0000 _08017D00: .4byte 0x0000FFFF _08017D04: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801801C: .4byte 0x0000132C _08018020: .4byte 0x000001FF _08018024: .4byte 0xFFFF0000 _08018028: .4byte 0x0000FFFF _0801802C: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _080180FC: .4byte 0xFFFFC010 _08018100: .4byte 0x0000132C _08018104: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08340B58 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 b _08018278 .align 2, 0 _080181DC: .4byte gUnknown_020314E0 _080181E0: .4byte 0x00000387 _080181E4: .4byte 0x000003F2 _080181E8: .4byte gUnknown_08340B58 _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 @ =gUnknown_083499D8 b _08018270 .align 2, 0 _0801822C: .4byte 0x000003F2 _08018230: .4byte gUnknown_083499D8 _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 @ =gUnknown_0834DBD8 _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 gUnknown_0834DBD8 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08018418: .4byte 0x0000132C _0801841C: .4byte 0x000001FF _08018420: .4byte 0xFFFF0000 _08018424: .4byte 0x0000FFFF _08018428: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _080184F8: .4byte 0xFFFFC010 _080184FC: .4byte 0x0000132C _08018500: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_083579C8 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 @ =gUnknown_020314E0 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 @ =gUnknown_0835E9C8 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 @ =gUnknown_020314E0 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 @ =gUnknown_0835E9C8 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 gUnknown_020314E0 _0801875C: .4byte 0x00000387 _08018760: .4byte gUnknown_083579C8 _08018764: .4byte 0x0000FFF0 _08018768: .4byte 0x00000452 _0801876C: .4byte 0x000004FA _08018770: .4byte gUnknown_0835E9C8 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _080188E8: .4byte 0x0000132C _080188EC: .4byte 0x000001FF _080188F0: .4byte 0xFFFF0000 _080188F4: .4byte 0x0000FFFF _080188F8: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _080189C8: .4byte 0xFFFFC010 _080189CC: .4byte 0x0000132C _080189D0: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_083722E8 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 gUnknown_020314E0 _08018ACC: .4byte 0x00000387 _08018AD0: .4byte 0x000003F2 _08018AD4: .4byte gUnknown_083722E8 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08018C58: .4byte 0x0000132C _08018C5C: .4byte 0xFFFF0000 _08018C60: .4byte 0x0000FFFF _08018C64: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _08018D00: .4byte 0xFFFFC010 _08018D04: .4byte 0x0000132C _08018D08: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08393A4C 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08018E60: .4byte 0x0000054F _08018E64: .4byte 0x00000572 _08018E68: .4byte gUnknown_08393A4C _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 @ =gUnknown_08391A4C 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 @ =gUnknown_020314E0 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 gUnknown_08391A4C _08018EFC: .4byte 0x0000FFF0 _08018F00: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08018FA8: .4byte 0x00000532 _08018FAC: ldr r2, _08018FC8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08018FCC: .4byte 0x00000532 _08018FD0: ldr r2, _08018FF4 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08018FF8: .4byte 0x00000532 _08018FFC: ldr r1, _08019020 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08019024: .4byte 0x00000532 thumb_func_start IdlePinballGameMain IdlePinballGameMain: @ 0x08019028 push {lr} ldr r1, _08019040 @ =gUnknown_08137918 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 gUnknown_08137918 _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 @ =gUnknown_02031510 str r2, [r0] adds r5, r1, #0 ldr r4, _080190AC @ =gUnknown_02031520 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 Random 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 gUnknown_02031510 _080190AC: .4byte gUnknown_02031520 _080190B0: cmp r0, #2 beq _080190F4 cmp r0, #3 beq _08019110 b _0801911E _080190BA: ldr r1, _080190C8 @ =gUnknown_02031520 ldr r0, _080190CC @ =0x00000A14 strh r0, [r1, #6] ldr r0, _080190D0 @ =gUnknown_081450F4 str r0, [r1, #0x10] ldr r0, _080190D4 @ =gUnknown_081531F4 b _0801911C .align 2, 0 _080190C8: .4byte gUnknown_02031520 _080190CC: .4byte 0x00000A14 _080190D0: .4byte gUnknown_081450F4 _080190D4: .4byte gUnknown_081531F4 _080190D8: ldr r1, _080190E8 @ =gUnknown_02031520 movs r0, #0xf0 lsls r0, r0, #4 strh r0, [r1, #6] ldr r0, _080190EC @ =gUnknown_0814F9B4 str r0, [r1, #0x10] ldr r0, _080190F0 @ =gUnknown_08156E60 b _0801911C .align 2, 0 _080190E8: .4byte gUnknown_02031520 _080190EC: .4byte gUnknown_0814F9B4 _080190F0: .4byte gUnknown_08156E60 _080190F4: ldr r1, _08019104 @ =gUnknown_02031520 movs r0, #0xd2 lsls r0, r0, #4 strh r0, [r1, #6] ldr r0, _08019108 @ =gUnknown_08148934 str r0, [r1, #0x10] ldr r0, _0801910C @ =gUnknown_08154618 b _0801911C .align 2, 0 _08019104: .4byte gUnknown_02031520 _08019108: .4byte gUnknown_08148934 _0801910C: .4byte gUnknown_08154618 _08019110: ldr r1, _08019134 @ =gUnknown_02031520 ldr r0, _08019138 @ =0x00000E4C strh r0, [r1, #6] ldr r0, _0801913C @ =gUnknown_0814C174 str r0, [r1, #0x10] ldr r0, _08019140 @ =gUnknown_08155A3C _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 gUnknown_02031520 _08019138: .4byte 0x00000E4C _0801913C: .4byte gUnknown_0814C174 _08019140: .4byte gUnknown_08155A3C _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 @ =gUnknown_02031520 ldr r1, _0801918C @ =gMain+0x74 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 gUnknown_02031520 _0801918C: .4byte gMain+0x74 thumb_func_start sub_19190 sub_19190: @ 0x08019190 push {r4, r5, lr} ldr r0, _080191A8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_02031520 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 gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_02031520 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 @ =gUnknown_02031520 movs r3, #6 ldrsh r1, [r0, r3] ldr r0, [r2, #0x54] cmp r0, r1 bhs _080192EC movs r0, #1 bl SetMainGameState b _080192F2 .align 2, 0 _080192E0: .4byte gMain _080192E4: .4byte gUnknown_02031520 _080192E8: .4byte 0x00000141 _080192EC: movs r0, #9 bl SetMainGameState _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACE8C adds r7, r0, r2 ldrh r0, [r7] adds r0, #0x53 lsls r0, r0, #0x10 ldr r3, _080193C8 @ =0xFFFF0000 ldr r2, _080193CC @ =gUnknown_02031520 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 @ =gUnknown_086ACE8C ldr r4, _080193CC @ =gUnknown_02031520 cmp r0, #0 blt _080193D8 ldr r1, _080193D4 @ =0x000013C4 add r1, sb movs r0, #1 b _080193DE .align 2, 0 _080193BC: .4byte gUnknown_020314E0 _080193C0: .4byte 0x000013BC _080193C4: .4byte gUnknown_086ACE8C _080193C8: .4byte 0xFFFF0000 _080193CC: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 mov r8, r0 ldr r1, _080194E4 @ =0x00000A28 adds r1, r1, r4 mov sb, r1 ldr r7, _080194E8 @ =0x040000D4 ldr r2, _080194EC @ =gOamBuffer 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 gUnknown_020314E0 _080194E4: .4byte 0x00000A28 _080194E8: .4byte 0x040000D4 _080194EC: .4byte gOamBuffer _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 @ =gUnknown_086ACEF4 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 @ =gUnknown_02031520 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 @ =gUnknown_083FE44C 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 gUnknown_086ACEF4 _080195AC: .4byte gUnknown_02031520 _080195B0: .4byte gUnknown_083FE44C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 mov sb, r1 ldr r2, _08019788 @ =0x040000D4 mov ip, r2 ldr r0, _0801978C @ =gOamBuffer 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 gUnknown_020314E0 _08019788: .4byte 0x040000D4 _0801978C: .4byte gOamBuffer _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 @ =gUnknown_0200B5E0 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 @ =gUnknown_086ACEF4 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 @ =gUnknown_02031520 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 @ =gUnknown_083FE44C 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 gUnknown_0200B5E0 _08019874: .4byte 0x000013BC _08019878: .4byte gUnknown_086ACEF4 _0801987C: .4byte gUnknown_02031520 _08019880: .4byte gUnknown_083FE44C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gMPlayInfo_BGM 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 gUnknown_020314E0 _08019B5C: .4byte gMPlayInfo_BGM _08019B60: .4byte 0x0000FFFF thumb_func_start sub_19B64 sub_19B64: @ 0x08019B64 ldr r2, _08019B88 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08019B8C: .4byte gMain thumb_func_start sub_19B90 sub_19B90: @ 0x08019B90 push {r4, lr} ldr r4, _08019BA8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08019BAC: cmp r0, #2 beq _08019BE8 b _08019BFE _08019BB2: ldr r1, _08019BCC @ =gUnknown_086AD4C4 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 gUnknown_086AD4C4 _08019BD0: ldr r0, _08019BE4 @ =gUnknown_086AD4E8 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 gUnknown_086AD4E8 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08019CBC: .4byte 0x0000073C _08019CC0: .4byte 0x0000072E _08019CC4: .4byte 0x0000073D thumb_func_start sub_19CC8 sub_19CC8: @ 0x08019CC8 push {lr} ldr r0, _08019CEC @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 Random 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08019EA8: .4byte gMain _08019EAC: .4byte 0x0000029F _08019EB0: bl sub_1EC48 _08019EB4: bl sub_1F158 bl sub_1F59C _08019EBC: bl sub_1F698 ldr r4, _08019F64 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 thumb_func_start sub_19FA0 sub_19FA0: @ 0x08019FA0 push {r4, r5, lr} ldr r0, _0801A0DC @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801A32C: .4byte gMain _0801A330: adds r0, r4, #0 adds r0, #0xe4 strb r1, [r0] ldr r1, _0801A3AC @ =0x040000D4 ldr r2, _0801A3B0 @ =gUnknown_086ACEF8 ldr r3, _0801A3B4 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086ACEF8 _0801A3B4: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r0, [r2] adds r0, #0xe4 strb r6, [r0] b _0801A8B8 .align 2, 0 _0801A3E4: .4byte 0x0000FF92 _0801A3E8: .4byte gUnknown_020314E0 _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 @ =gUnknown_086ACEF8 ldr r2, _0801A4E0 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 ldr r1, _0801A4F0 @ =gUnknown_0869F7C8 bl MPlayStart _0801A456: ldr r5, _0801A4E0 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r1, [r0] adds r1, #0x70 movs r2, #0 strb r2, [r1] ldr r2, _0801A4FC @ =gUnknown_02031520 b _0801A51C .align 2, 0 _0801A4D8: .4byte 0x040000D4 _0801A4DC: .4byte gUnknown_086ACEF8 _0801A4E0: .4byte gUnknown_020314E0 _0801A4E4: .4byte 0x06015800 _0801A4E8: .4byte 0x800010E0 _0801A4EC: .4byte gMPlayInfo_SE1 _0801A4F0: .4byte gUnknown_0869F7C8 _0801A4F4: .4byte 0x000001A5 _0801A4F8: .4byte 0x000006DC _0801A4FC: .4byte gUnknown_02031520 _0801A500: ldr r3, _0801A534 @ =gUnknown_020314E0 ldr r0, [r3] adds r0, #0x70 movs r1, #1 strb r1, [r0] ldr r1, _0801A538 @ =0x040000D4 ldr r2, _0801A53C @ =gUnknown_02031520 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 gUnknown_020314E0 _0801A538: .4byte 0x040000D4 _0801A53C: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r1, [r0] adds r1, #0x70 movs r2, #0 strb r2, [r1] ldr r2, _0801A5F0 @ =gUnknown_02031520 b _0801A610 .align 2, 0 _0801A5E4: .4byte 0x000001A5 _0801A5E8: .4byte 0x000006DC _0801A5EC: .4byte gUnknown_020314E0 _0801A5F0: .4byte gUnknown_02031520 _0801A5F4: ldr r3, _0801A628 @ =gUnknown_020314E0 ldr r0, [r3] adds r0, #0x70 movs r1, #1 strb r1, [r0] ldr r1, _0801A62C @ =0x040000D4 ldr r2, _0801A630 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801A62C: .4byte 0x040000D4 _0801A630: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 ldr r0, [r1] adds r0, #0x6f movs r1, #1 _0801A678: strb r1, [r0] _0801A67A: ldr r2, _0801A6C4 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_02031520 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 gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801A868: .4byte 0x000001A5 _0801A86C: .4byte 0x000006DC _0801A870: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gOamBuffer mov ip, r6 ldr r7, _0801A968 @ =gUnknown_086B4568 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 gUnknown_020314E0 _0801A964: .4byte gOamBuffer _0801A968: .4byte gUnknown_086B4568 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] _0801A9E0: pop {r0} bx r0 .align 2, 0 _0801A9E4: .4byte gUnknown_020314E0 thumb_func_start sub_1A9E8 sub_1A9E8: @ 0x0801A9E8 push {lr} ldr r2, _0801AA10 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801ADF0: .4byte 0x000005F7 thumb_func_start sub_1ADF4 sub_1ADF4: @ 0x0801ADF4 push {r4, r5, r6, lr} ldr r5, _0801AE7C @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_084F61EC 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 @ =gUnknown_081B45A4 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801B230: .4byte 0x000006DE _0801B234: .4byte 0x000006DD _0801B238: .4byte 0x00000252 _0801B23C: .4byte 0x040000D4 _0801B240: .4byte gUnknown_084F61EC _0801B244: .4byte 0x06015C00 _0801B248: .4byte 0x800004A0 _0801B24C: .4byte gUnknown_081B45A4 _0801B250: .4byte 0x05000180 _0801B254: .4byte 0x80000010 _0801B258: .4byte gUnknown_02031520 _0801B25C: .4byte 0x05000240 _0801B260: .4byte 0x80000060 _0801B264: ldr r1, _0801B29C @ =0x040000D4 ldr r2, _0801B2A0 @ =gUnknown_02031520 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 @ =gUnknown_020314E0 ldr r0, [r2] adds r0, #0x6f movs r3, #0 movs r1, #1 b _0801B328 .align 2, 0 _0801B29C: .4byte 0x040000D4 _0801B2A0: .4byte gUnknown_02031520 _0801B2A4: .4byte 0x05000240 _0801B2A8: .4byte 0x80000070 _0801B2AC: .4byte 0x05000340 _0801B2B0: .4byte 0x80000030 _0801B2B4: .4byte gUnknown_020314E0 _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 @ =gUnknown_02031520 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 gUnknown_02031520 _0801B2EC: .4byte 0x05000240 _0801B2F0: .4byte 0x80000060 _0801B2F4: ldr r1, _0801B3FC @ =0x040000D4 ldr r2, _0801B400 @ =gUnknown_02031520 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD2DE 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 @ =gUnknown_081B8784 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 @ =gUnknown_081B8984 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 gUnknown_02031520 _0801B404: .4byte 0x05000240 _0801B408: .4byte 0x80000070 _0801B40C: .4byte 0x05000340 _0801B410: .4byte 0x80000030 _0801B414: .4byte gUnknown_020314E0 _0801B418: .4byte gUnknown_086AD2DE _0801B41C: .4byte 0x000001A7 _0801B420: .4byte gMain _0801B424: .4byte gUnknown_081B8784 _0801B428: .4byte 0x050003C0 _0801B42C: .4byte 0x80000010 _0801B430: .4byte gUnknown_081B8984 _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 @ =gUnknown_086AD2DE 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 gUnknown_086AD2DE _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801B5F0: .4byte gMain _0801B5F4: .4byte 0x000006DD _0801B5F8: strb r4, [r1] _0801B5FA: ldr r2, _0801B63C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086AD50C ldr r4, _0801B6C8 @ =gUnknown_020314E0 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 gUnknown_086AD50C _0801B6C8: .4byte gUnknown_020314E0 _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 @ =gUnknown_086AD000 adds r4, r0, r1 ldr r1, _0801B77C @ =gUnknown_086AD2DE 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 gUnknown_086AD000 _0801B77C: .4byte gUnknown_086AD2DE _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD2DE 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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801B92C: .4byte 0x000006DD _0801B930: .4byte 0x00000252 _0801B934: .4byte 0x000006DE _0801B938: .4byte gUnknown_086AD2DE _0801B93C: .4byte 0x000001AF _0801B940: .4byte gMain _0801B944: .4byte 0x040000D4 _0801B948: .4byte gUnknown_02031520 _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 @ =gUnknown_02031520 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 gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801BAE8: .4byte 0x000006DE _0801BAEC: movs r0, #0x18 strh r0, [r1, #0x28] _0801BAF0: ldr r0, _0801BB08 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801BB0C: movs r0, #0 movs r1, #0 bl sub_1C7F4 _0801BB14: ldr r3, _0801BB54 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 @ =gUnknown_084F61EC 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 @ =gUnknown_081B4584 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 @ =gUnknown_086A3700 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 gUnknown_086ACEF8 _0801BD20: .4byte 0x06015800 _0801BD24: .4byte 0x80001200 _0801BD28: .4byte gUnknown_086ACF18 _0801BD2C: .4byte 0x050003C0 _0801BD30: .4byte 0x80000010 _0801BD34: .4byte gUnknown_084F61EC _0801BD38: .4byte 0x06015C00 _0801BD3C: .4byte 0x800004A0 _0801BD40: .4byte gUnknown_081B4584 _0801BD44: .4byte 0x05000180 _0801BD48: .4byte 0x0000025D _0801BD4C: .4byte gUnknown_086A3700 _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 @ =gUnknown_081B8784 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 @ =gUnknown_020314E0 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 @ =gUnknown_081B4784 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 @ =gUnknown_020314E0 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 gUnknown_081B8784 _0801BE14: .4byte 0x050003C0 _0801BE18: .4byte 0x80000010 _0801BE1C: .4byte 0x000002EA _0801BE20: .4byte gUnknown_020314E0 _0801BE24: .4byte gUnknown_081B4784 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086A3700 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 @ =gUnknown_020314E0 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 @ =gUnknown_086A3700 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 gUnknown_020314E0 _0801C004: .4byte 0x0000025D _0801C008: .4byte gUnknown_086A3700 _0801C00C: .4byte gMain _0801C010: .4byte 0x0000059A _0801C014: cmp r4, #1 bne _0801C058 ldr r2, _0801C064 @ =gUnknown_086A3700 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 @ =gUnknown_020314E0 ldr r0, [r0] movs r6, #0xd9 lsls r6, r6, #1 adds r1, r0, r6 b _0801C116 .align 2, 0 _0801C064: .4byte gUnknown_086A3700 _0801C068: .4byte 0x0000059A _0801C06C: .4byte gUnknown_020314E0 _0801C070: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801C11A ldr r6, _0801C0BC @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801C0C0: .4byte 0x0000059A _0801C0C4: cmp r4, #2 bne _0801C10C ldr r2, _0801C148 @ =gUnknown_086A3700 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086A3700 _0801C14C: .4byte 0x0000059A _0801C150: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086AD50C ldr r0, _0801C2AC @ =gUnknown_020314E0 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 gUnknown_086AD50C _0801C2AC: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0801C390: .4byte gMain _0801C394: .4byte 0x00000252 _0801C398: .4byte 0x040000D4 _0801C39C: .4byte gUnknown_02031520 _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 @ =gUnknown_02031520 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 gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_0848D68C 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 @ =gUnknown_081C00E4 adds r0, r0, r1 str r0, [r4] ldr r0, _0801C8F4 @ =gUnknown_086AD798 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 gUnknown_020314E0 _0801C8D4: .4byte 0x000006DB _0801C8D8: .4byte 0x00000749 _0801C8DC: .4byte 0x000006D9 _0801C8E0: .4byte 0x040000D4 _0801C8E4: .4byte gUnknown_0848D68C _0801C8E8: .4byte 0x06010CA0 _0801C8EC: .4byte 0x80000180 _0801C8F0: .4byte gUnknown_081C00E4 _0801C8F4: .4byte gUnknown_086AD798 _0801C8F8: .4byte 0x05000200 _0801C8FC: .4byte 0x80000010 _0801C900: ldr r7, _0801C97C @ =gUnknown_086AD070 ldr r6, _0801C980 @ =gUnknown_020314E0 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 @ =gUnknown_083A8EEC 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 @ =gUnknown_081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801C99C @ =gUnknown_086AD798 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 gUnknown_086AD070 _0801C980: .4byte gUnknown_020314E0 _0801C984: .4byte 0x00000749 _0801C988: .4byte 0x040000D4 _0801C98C: .4byte gUnknown_083A8EEC _0801C990: .4byte 0x06010CA0 _0801C994: .4byte 0x80000180 _0801C998: .4byte gUnknown_081C02E4 _0801C99C: .4byte gUnknown_086AD798 _0801C9A0: .4byte 0x05000200 _0801C9A4: .4byte 0x80000010 _0801C9A8: ldr r5, _0801CA1C @ =gUnknown_020314E0 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 @ =gUnknown_086AD000 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 @ =gUnknown_083A8EEC 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 @ =gUnknown_081C02E4 adds r3, r3, r0 str r3, [r4] ldr r0, _0801CA40 @ =gUnknown_086AD798 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 gUnknown_020314E0 _0801CA20: .4byte 0x000006EC _0801CA24: .4byte gUnknown_086AD000 _0801CA28: .4byte 0x00000749 _0801CA2C: .4byte 0x040000D4 _0801CA30: .4byte gUnknown_083A8EEC _0801CA34: .4byte 0x06010CA0 _0801CA38: .4byte 0x80000180 _0801CA3C: .4byte gUnknown_081C02E4 _0801CA40: .4byte gUnknown_086AD798 _0801CA44: .4byte 0x05000200 _0801CA48: .4byte 0x80000010 _0801CA4C: ldr r7, _0801CAFC @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gMain+0x74 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 gUnknown_020314E0 _0801CB6C: .4byte gMain+0x74 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD000 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 @ =gUnknown_083A8EEC 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 gUnknown_020314E0 _0801CD2C: .4byte 0x00000749 _0801CD30: .4byte gUnknown_086AD000 _0801CD34: .4byte 0x040000D4 _0801CD38: .4byte gUnknown_083A8EEC _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 @ =gUnknown_086AD000 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 @ =gUnknown_083A8EEC 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 gUnknown_086AD000 _0801CDB0: .4byte 0x040000D4 _0801CDB4: .4byte gUnknown_083A8EEC _0801CDB8: .4byte 0x06010CA0 _0801CDBC: .4byte 0x80000180 _0801CDC0: ldr r4, _0801CEF8 @ =gUnknown_020314E0 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 @ =gUnknown_086AD000 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 @ =gUnknown_083A8EEC 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 @ =gUnknown_086AD2DE 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 @ =gUnknown_081C02E4 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 @ =gUnknown_086AD798 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 gUnknown_020314E0 _0801CEFC: .4byte 0x000001A7 _0801CF00: .4byte gUnknown_086AD000 _0801CF04: .4byte 0x00000749 _0801CF08: .4byte 0x040000D4 _0801CF0C: .4byte gUnknown_083A8EEC _0801CF10: .4byte 0x06010CA0 _0801CF14: .4byte 0x80000180 _0801CF18: .4byte gUnknown_086AD2DE _0801CF1C: .4byte 0x000001AF _0801CF20: .4byte gUnknown_081C02E4 _0801CF24: .4byte 0x80000010 _0801CF28: .4byte gUnknown_086AD798 _0801CF2C: .4byte 0x05000200 _0801CF30: ldr r2, _0801CF58 @ =0x040000D4 lsls r0, r5, #1 ldr r1, _0801CF5C @ =gUnknown_081C02E4 adds r0, r0, r1 str r0, [r2] ldr r1, _0801CF60 @ =gUnknown_086AD798 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 gUnknown_081C02E4 _0801CF60: .4byte gUnknown_086AD798 _0801CF64: .4byte 0x05000200 _0801CF68: .4byte 0x80000010 _0801CF6C: ldr r5, _0801CFFC @ =gUnknown_020314E0 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 @ =gUnknown_086AD000 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 @ =gUnknown_083A8EEC 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 @ =gUnknown_081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801D020 @ =gUnknown_086AD798 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 gUnknown_020314E0 _0801D000: .4byte 0x000006EC _0801D004: .4byte gUnknown_086AD000 _0801D008: .4byte 0x00000749 _0801D00C: .4byte 0x040000D4 _0801D010: .4byte gUnknown_083A8EEC _0801D014: .4byte 0x06010CA0 _0801D018: .4byte 0x80000180 _0801D01C: .4byte gUnknown_081C02E4 _0801D020: .4byte gUnknown_086AD798 _0801D024: .4byte 0x05000200 _0801D028: .4byte 0x80000010 _0801D02C: ldr r2, _0801D0EC @ =gUnknown_020314E0 mov sb, r2 ldr r2, [r2] ldr r3, _0801D0F0 @ =0x000006DC adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #3 ldr r1, _0801D0F4 @ =gUnknown_086AD000 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 @ =gUnknown_086AD79C 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 @ =gUnknown_083A8EEC 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 @ =gUnknown_081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801D118 @ =gUnknown_086AD798 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 gUnknown_020314E0 _0801D0F0: .4byte 0x000006DC _0801D0F4: .4byte gUnknown_086AD000 _0801D0F8: .4byte 0x00000749 _0801D0FC: .4byte gUnknown_086AD79C _0801D100: .4byte 0x000006DE _0801D104: .4byte 0x040000D4 _0801D108: .4byte gUnknown_083A8EEC _0801D10C: .4byte 0x06010CA0 _0801D110: .4byte 0x80000180 _0801D114: .4byte gUnknown_081C02E4 _0801D118: .4byte gUnknown_086AD798 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gOamBuffer _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 @ =gOamBuffer _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 @ =gOamBuffer _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 @ =gOamBuffer _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 gUnknown_020314E0 _0801D5CC: .4byte 0x000006C4 _0801D5D0: .4byte gMain _0801D5D4: .4byte gOamBuffer 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 @ =gUnknown_0200E6C0 mov sb, r0 movs r1, #0 mov r8, r1 movs r5, #0 ldr r1, _0801D610 @ =gUnknown_020314E0 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 gUnknown_0200E6C0 _0801D610: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD7C0 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 gUnknown_020314E0 _0801D6B0: .4byte 0x000002FE _0801D6B4: .4byte 0x000002FD _0801D6B8: .4byte 0x000002FB _0801D6BC: .4byte gUnknown_086AD7C0 _0801D6C0: .4byte 0x0000C350 _0801D6C4: ldr r3, _0801D6F0 @ =gUnknown_086AD7C0 ldr r0, _0801D6F4 @ =gUnknown_020314E0 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 gUnknown_086AD7C0 _0801D6F4: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801D758: .4byte 0x000002FD _0801D75C: .4byte 0x000002FB _0801D760: ldr r4, _0801D7B0 @ =gUnknown_020314E0 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 @ =gUnknown_086AD7C0 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 gUnknown_020314E0 _0801D7B4: .4byte 0x000002FE _0801D7B8: .4byte 0x000002FD _0801D7BC: .4byte 0x000002FB _0801D7C0: .4byte gUnknown_086AD7C0 _0801D7C4: .4byte 0x000186A0 _0801D7C8: ldr r2, _0801D7F4 @ =gUnknown_086AD7C0 ldr r5, _0801D7F8 @ =gUnknown_020314E0 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 gUnknown_086AD7C0 _0801D7F8: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD7C0 ldr r0, [r4] ldr r1, _0801D84C @ =0x000002FD adds r0, r0, r1 b _0801D91A .align 2, 0 _0801D84C: .4byte 0x000002FD _0801D850: .4byte 0x000002FB _0801D854: .4byte gUnknown_020314E0 _0801D858: .4byte 0x000002FE _0801D85C: .4byte gUnknown_086AD7C0 _0801D860: ldr r3, _0801D88C @ =gUnknown_086AD7C0 ldr r5, _0801D890 @ =gUnknown_020314E0 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 gUnknown_086AD7C0 _0801D890: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801D8DC: .4byte 0x000002FD _0801D8E0: ldr r4, _0801DA3C @ =gUnknown_020314E0 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 @ =gUnknown_086AD7C0 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 @ =gUnknown_086AD856 ldr r3, _0801DA3C @ =gUnknown_020314E0 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 @ =gUnknown_0845710C 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 @ =gOamBuffer 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 @ =gUnknown_086B2E64 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801DA40: .4byte 0x000002FA _0801DA44: .4byte 0x000002F9 _0801DA48: .4byte 0x000002FE _0801DA4C: .4byte gUnknown_086AD7C0 _0801DA50: .4byte gUnknown_086AD856 _0801DA54: .4byte 0x040000D4 _0801DA58: .4byte gUnknown_0845710C _0801DA5C: .4byte 0x06014380 _0801DA60: .4byte 0x80000130 _0801DA64: .4byte gOamBuffer _0801DA68: .4byte 0xFFFFFE00 _0801DA6C: .4byte gUnknown_086B2E64 _0801DA70: .4byte 0x000001FF thumb_func_start sub_1DA74 sub_1DA74: @ 0x0801DA74 ldr r0, _0801DAB0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0200E270 mov r8, r0 ldr r0, _0801DB68 @ =gUnknown_020314E0 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 gUnknown_0200E270 _0801DB68: .4byte gUnknown_020314E0 _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 @ =gUnknown_084ED0CC 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 @ =gUnknown_0200E278 mov sl, r7 ldr r6, _0801DC70 @ =gOamBuffer 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 gUnknown_084ED0CC _0801DC64: .4byte 0x06013180 _0801DC68: .4byte 0x800000C0 _0801DC6C: .4byte gUnknown_0200E278 _0801DC70: .4byte gOamBuffer _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 @ =gUnknown_0200E100 ldr r2, _0801DD80 @ =gUnknown_020314E0 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 @ =gUnknown_086AD862 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 @ =gUnknown_081379D8 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 @ =gUnknown_084B7FEC 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 @ =gOamBuffer 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 gUnknown_0200E100 _0801DD80: .4byte gUnknown_020314E0 _0801DD84: .4byte 0x000002A5 _0801DD88: .4byte gUnknown_086AD862 _0801DD8C: .4byte 0x040000D4 _0801DD90: .4byte gUnknown_081379D8 _0801DD94: .4byte 0x05000320 _0801DD98: .4byte 0x80000010 _0801DD9C: .4byte gUnknown_084B7FEC _0801DDA0: .4byte 0x06014680 _0801DDA4: .4byte 0x80000230 _0801DDA8: .4byte 0x0000FF08 _0801DDAC: .4byte 0x0000FEC4 _0801DDB0: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086AD862 ldr r4, _0801DF1C @ =gUnknown_020314E0 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 gUnknown_086AD862 _0801DF1C: .4byte gUnknown_020314E0 _0801DF20: .4byte 0x000002A5 _0801DF24: .4byte 0x000002A6 _0801DF28: .4byte 0x000002A2 _0801DF2C: ldr r6, _0801DF5C @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801DF60: .4byte 0x000002A6 _0801DF64: .4byte 0x000002A5 _0801DF68: ldr r2, _0801DFA8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801DFAC: .4byte 0x000002A5 _0801DFB0: .4byte 0x000002A6 _0801DFB4: .4byte 0x000002A2 _0801DFB8: .4byte 0x0000132C _0801DFBC: .4byte 0x00001388 _0801DFC0: ldr r1, _0801DFE8 @ =gUnknown_086AD862 ldr r4, _0801DFEC @ =gUnknown_020314E0 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 gUnknown_086AD862 _0801DFEC: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801E0CC: .4byte 0x0000132C _0801E0D0: ldr r5, _0801E154 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801E1A4: .4byte 0x000002A5 _0801E1A8: .4byte 0x000002A6 _0801E1AC: .4byte 0x000002A2 _0801E1B0: .4byte 0x0000132C _0801E1B4: ldr r1, _0801E1DC @ =gUnknown_086AD862 ldr r4, _0801E1E0 @ =gUnknown_020314E0 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 gUnknown_086AD862 _0801E1E0: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801E2F8: ldr r4, _0801E33C @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801E340: .4byte 0x000002A5 _0801E344: .4byte 0x000002A6 _0801E348: .4byte 0x00000724 _0801E34C: ldr r1, _0801E374 @ =gUnknown_086AD862 ldr r4, _0801E378 @ =gUnknown_020314E0 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 gUnknown_086AD862 _0801E378: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD9EC 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 @ =gUnknown_02032FB0 ldr r1, _0801E448 @ =gUnknown_086A0F30 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 gUnknown_020314E0 _0801E43C: .4byte gUnknown_086AD9EC _0801E440: .4byte 0x000002AA _0801E444: .4byte gUnknown_02032FB0 _0801E448: .4byte gUnknown_086A0F30 _0801E44C: ldr r1, _0801E474 @ =gUnknown_086AD862 ldr r4, _0801E478 @ =gUnknown_020314E0 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 gUnknown_086AD862 _0801E478: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_08137968 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 gUnknown_08137968 _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 @ =gUnknown_086AD9DC 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 @ =gUnknown_020314E0 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 gUnknown_086AD9DC _0801E710: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801E8C4: .4byte 0x00004E20 _0801E8C8: .4byte 0x00000564 _0801E8CC: .4byte 0x000005DC _0801E8D0: movs r6, #0 ldr r3, _0801E984 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0813798C 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 gUnknown_0813798C _0801EAF0: .4byte 0x00000514 _0801EAF4: .4byte 0x00000582 _0801EAF8: .4byte 0x0000055A _0801EAFC: .4byte 0x0000067C _0801EB00: ldr r0, _0801EBF0 @ =gUnknown_086AD9DC 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 Random 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 gUnknown_086AD9DC _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 ldr r0, [r0, #0x18] b _0801EE0C .align 2, 0 _0801ED70: .4byte gUnknown_020314E0 _0801ED74: .4byte 0x00000625 _0801ED78: .4byte 0x000006C6 _0801ED7C: .4byte gMain _0801ED80: .4byte 0x0000F63C _0801ED84: .4byte 0x040000D4 _0801ED88: .4byte gUnknown_086ACEF8 _0801ED8C: .4byte 0x06015800 _0801ED90: .4byte 0x80001200 _0801ED94: .4byte gUnknown_086ACF18 _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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r1, [r2] ldr r3, _0801EED0 @ =0x00000624 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801EE4A: ldr r5, _0801EED4 @ =gUnknown_0200E048 mov sl, r5 ldr r6, _0801EECC @ =gUnknown_020314E0 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 @ =gUnknown_0844928C mov sb, r2 ldr r3, _0801EECC @ =gUnknown_020314E0 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 gUnknown_086ACEF8 _0801EEB8: .4byte 0x06015800 _0801EEBC: .4byte 0x80001200 _0801EEC0: .4byte gUnknown_086ACF18 _0801EEC4: .4byte 0x050003C0 _0801EEC8: .4byte 0x80000010 _0801EECC: .4byte gUnknown_020314E0 _0801EED0: .4byte 0x00000624 _0801EED4: .4byte gUnknown_0200E048 _0801EED8: .4byte gUnknown_0844928C _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 @ =gUnknown_020314E0 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 @ =gUnknown_081379B8 b _0801F006 .align 2, 0 _0801EF38: .4byte 0x06012E80 _0801EF3C: .4byte 0x80000080 _0801EF40: .4byte 0x040000D4 _0801EF44: .4byte gUnknown_020314E0 _0801EF48: .4byte gUnknown_081379B8 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_083C806C 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 @ =gUnknown_020314E0 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 @ =gUnknown_08137998 _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 gUnknown_083C806C _0801F12C: .4byte 0x06012E80 _0801F130: .4byte 0x80000080 _0801F134: .4byte 0x040000D4 _0801F138: .4byte gUnknown_020314E0 _0801F13C: .4byte gUnknown_08137998 _0801F140: .4byte 0x05000320 _0801F144: .4byte 0x80000010 _0801F148: .4byte 0x0000FFD8 _0801F14C: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_084F5ACC 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 @ =gUnknown_086AD9FC 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 @ =gUnknown_086B3A04 mov sb, r5 ldr r6, _0801F298 @ =gOamBuffer 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 gUnknown_020314E0 _0801F280: .4byte 0x000002F5 _0801F284: .4byte gUnknown_084F5ACC _0801F288: .4byte 0x06012C20 _0801F28C: .4byte 0x80000130 _0801F290: .4byte gUnknown_086AD9FC _0801F294: .4byte gUnknown_086B3A04 _0801F298: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 ldr r1, _0801F3F0 @ =gUnknown_0869F2A0 bl MPlayStart ldr r1, [r4] ldr r0, _0801F3F4 @ =0x00000BB8 str r0, [r1, #0x3c] _0801F39A: ldr r5, _0801F3E8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0801F3EC: .4byte gMPlayInfo_SE1 _0801F3F0: .4byte gUnknown_0869F2A0 _0801F3F4: .4byte 0x00000BB8 _0801F3F8: .4byte 0x00000616 _0801F3FC: .4byte 0x00000614 _0801F400: .4byte 0x0000061A _0801F404: strh r3, [r1] ldr r0, _0801F464 @ =gUnknown_02032FB0 ldr r1, _0801F468 @ =gUnknown_0869F240 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 @ =gUnknown_020314E0 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 gUnknown_02032FB0 _0801F468: .4byte gUnknown_0869F240 _0801F46C: .4byte 0x0000061C _0801F470: .4byte gUnknown_020314E0 _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 @ =gUnknown_02032FB0 ldr r1, _0801F544 @ =gUnknown_0869F240 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 @ =gUnknown_020314E0 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 gUnknown_02032FB0 _0801F544: .4byte gUnknown_0869F240 _0801F548: .4byte 0x0000061C _0801F54C: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_084FA48C 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 @ =gOamBuffer 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 gUnknown_084FA48C _0801F684: .4byte 0x06010780 _0801F688: .4byte 0x80000090 _0801F68C: .4byte gOamBuffer _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 @ =gUnknown_0200BDC8 ldr r0, _0801F6F0 @ =gUnknown_020314E0 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 @ =gUnknown_083C562C 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 gUnknown_0200BDC8 _0801F6F0: .4byte gUnknown_020314E0 _0801F6F4: .4byte 0x040000D4 _0801F6F8: .4byte gUnknown_083C562C _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 @ =gUnknown_083C562C 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 gUnknown_083C562C _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 @ =gUnknown_0200BD10 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 @ =gOamBuffer 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 @ =gUnknown_083C542C 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 gUnknown_0200BD10 _0801F884: .4byte gOamBuffer _0801F888: .4byte 0xFFFFFE00 _0801F88C: .4byte 0x000001FF _0801F890: .4byte 0x040000D4 _0801F894: .4byte gUnknown_083C542C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_0200D9D0 ldr r0, _0801FAD4 @ =gUnknown_020314E0 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 @ =gUnknown_086ADA58 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 gUnknown_0200D9D0 _0801FAD4: .4byte gUnknown_020314E0 _0801FAD8: .4byte 0x000002B2 _0801FADC: .4byte gUnknown_086ADA58 _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 @ =gUnknown_083C3C2C 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 @ =gOamBuffer 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 gUnknown_083C3C2C _0801FBB0: .4byte 0x06012720 _0801FBB4: .4byte 0x80000180 _0801FBB8: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ADA6E adds r7, r0, r1 ldr r0, _0801FC80 @ =gUnknown_0200DCB0 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 gUnknown_020314E0 _0801FC78: .4byte 0x000002C2 _0801FC7C: .4byte gUnknown_086ADA6E _0801FC80: .4byte gUnknown_0200DCB0 _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 @ =gUnknown_08447A8C 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 @ =gOamBuffer mov ip, r2 ldr r3, _0801FF00 @ =gUnknown_086B2FC0 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 gUnknown_08447A8C _0801FEEC: .4byte 0x06013B80 _0801FEF0: .4byte 0x800000C0 _0801FEF4: .4byte 0x06013A00 _0801FEF8: .4byte 0x06013880 _0801FEFC: .4byte gOamBuffer _0801FF00: .4byte gUnknown_086B2FC0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ADEB2 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 gUnknown_020314E0 _0801FF74: .4byte 0x000002E3 _0801FF78: .4byte 0x000002E5 _0801FF7C: .4byte gUnknown_086ADEB2 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ADEB0 adds r0, r0, r5 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 ldr r4, _080202E0 @ =gUnknown_0847FD0C 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 @ =gUnknown_0200DE20 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 @ =gOamBuffer 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 gUnknown_020314E0 _080202D4: .4byte 0x040000D4 _080202D8: .4byte 0x000002E5 _080202DC: .4byte gUnknown_086ADEB0 _080202E0: .4byte gUnknown_0847FD0C _080202E4: .4byte 0x06012A20 _080202E8: .4byte 0x80000080 _080202EC: .4byte gUnknown_0200DE20 _080202F0: .4byte 0x0000012D _080202F4: .4byte gOamBuffer _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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 gUnknown_086ACEF8 _080203B8: .4byte 0x06015800 _080203BC: .4byte 0x80001200 _080203C0: .4byte gUnknown_086ACF18 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ADF48 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 gUnknown_020314E0 _08020430: .4byte gUnknown_086ADF48 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gMPlayInfo_SE1 ldr r1, _08020680 @ =gUnknown_086A2FA0 bl MPlayStart _0802063C: ldr r0, _08020684 @ =gUnknown_020314E0 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 gMPlayInfo_SE1 _08020680: .4byte gUnknown_086A2FA0 _08020684: .4byte gUnknown_020314E0 _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 @ =gUnknown_084C07EC 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 gUnknown_084C07EC _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gMPlayInfo_SE1 ldr r1, _080207F8 @ =gUnknown_086A0328 bl MPlayStart b _08020804 .align 2, 0 _080207F4: .4byte gMPlayInfo_SE1 _080207F8: .4byte gUnknown_086A0328 _080207FC: ldr r0, _08020810 @ =gMPlayInfo_SE1 ldr r1, _08020814 @ =gUnknown_086A0368 bl MPlayStart _08020804: ldr r0, _08020818 @ =gMPlayInfo_BGM ldr r1, _0802081C @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl b _08020832 .align 2, 0 _08020810: .4byte gMPlayInfo_SE1 _08020814: .4byte gUnknown_086A0368 _08020818: .4byte gMPlayInfo_BGM _0802081C: .4byte 0x0000FFFF _08020820: ldr r0, _08020900 @ =gMPlayInfo_SE1 ldr r1, _08020904 @ =gUnknown_086A0328 bl MPlayStart ldr r0, _08020908 @ =gMPlayInfo_BGM ldr r1, _0802090C @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl _08020832: ldr r0, _08020910 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 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 @ =gUnknown_020314E0 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 @ =gUnknown_086ADF8A 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 gMPlayInfo_SE1 _08020904: .4byte gUnknown_086A0328 _08020908: .4byte gMPlayInfo_BGM _0802090C: .4byte 0x0000FFFF _08020910: .4byte gUnknown_020314E0 _08020914: .4byte 0x0000061E _08020918: .4byte 0x0000132C _0802091C: .4byte 0x00004E20 _08020920: .4byte gUnknown_086ADF8A _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 @ =gUnknown_086ADF8A 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 @ =gUnknown_020314E0 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 gUnknown_086ADF8A _08020A44: .4byte 0x000002BE _08020A48: .4byte 0x0000FED4 _08020A4C: .4byte 0x000005F7 _08020A50: .4byte 0x00000714 _08020A54: .4byte 0x00000711 _08020A58: .4byte 0x00000712 _08020A5C: .4byte 0x00000715 _08020A60: .4byte gUnknown_020314E0 _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 @ =gUnknown_08395A4C b _08020ADC .align 2, 0 _08020AC4: .4byte 0x00000743 _08020AC8: .4byte 0x0000061E _08020ACC: .4byte gMain _08020AD0: .4byte 0x040000D4 _08020AD4: .4byte gUnknown_08395A4C _08020AD8: ldr r1, _08020AEC @ =0x040000D4 ldr r0, _08020AF0 @ =gUnknown_08397E6C _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 gUnknown_08397E6C _08020AF4: .4byte 0x06015800 _08020AF8: .4byte 0x80001200 _08020AFC: ldr r2, _08020B24 @ =gUnknown_086ADEE0 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 gUnknown_086ADEE0 _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 @ =gMPlayInfo_BGM 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 gMPlayInfo_BGM _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 @ =gUnknown_020314E0 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 @ =gUnknown_084C07EC 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 @ =gUnknown_086ADEE0 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 gUnknown_020314E0 _08020C54: .4byte gUnknown_084C07EC _08020C58: .4byte 0x06010480 _08020C5C: .4byte 0x800000C0 _08020C60: .4byte gUnknown_086ADEE0 _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 @ =gOamBuffer mov sb, r2 ldr r3, _08020E1C @ =gUnknown_086B4922 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 @ =gUnknown_020314E0 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 @ =gUnknown_084C07EC 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 @ =gUnknown_020314E0 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 gOamBuffer _08020E1C: .4byte gUnknown_086B4922 _08020E20: .4byte 0xFFFFFE00 _08020E24: .4byte 0x000001FF _08020E28: .4byte gMain _08020E2C: .4byte 0x040000D4 _08020E30: .4byte gUnknown_020314E0 _08020E34: .4byte 0x00000744 _08020E38: .4byte gUnknown_084C07EC _08020E3C: .4byte 0x06010480 _08020E40: .4byte 0x800000C0 _08020E44: movs r0, #0xc8 _08020E46: strh r0, [r6, #4] movs r4, #0 ldr r7, _08020EB4 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_084C07EC 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 @ =gUnknown_086ADF90 ldr r2, _0802109C @ =gUnknown_020314E0 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 @ =gUnknown_086AD788 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 gUnknown_084C07EC _08021090: .4byte 0x06010600 _08021094: .4byte 0x800000C0 _08021098: .4byte gUnknown_086ADF90 _0802109C: .4byte gUnknown_020314E0 _080210A0: .4byte 0x00004E20 _080210A4: .4byte gUnknown_086AD788 _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 @ =gMonHatchSpriteGroup5_Gfx 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 @ =gUnknown_084C156C 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 gMonHatchSpriteGroup5_Gfx _080211C0: .4byte 0x060112A0 _080211C4: .4byte 0x80000090 _080211C8: .4byte gOamBuffer _080211CC: .4byte 0xFFFFFE00 _080211D0: .4byte 0x000001FF _080211D4: .4byte 0x000009C3 _080211D8: .4byte gUnknown_020314E0 _080211DC: .4byte gUnknown_084C156C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 thumb_func_start sub_21238 sub_21238: @ 0x08021238 push {r4, r5, lr} lsls r0, r0, #0x10 cmp r0, #0 beq _0802127A ldr r3, _080212E0 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802131C: .4byte 0x000006DD thumb_func_start sub_21320 sub_21320: @ 0x08021320 push {r4, lr} ldr r1, _08021340 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r1, [r0] movs r0, #0 strh r0, [r1, #0x18] b _0802150C .align 2, 0 _080214C0: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r1, [r0] _080214EA: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _0802150C .align 2, 0 _080214F4: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080217FC: bl sub_219EC movs r0, #7 movs r1, #0 bl sub_1C7F4 ldr r0, _08021820 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08021988: bl sub_21514 ldr r0, _08021998 @ =gUnknown_020314E0 ldr r1, [r0] _08021990: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _080219A2 .align 2, 0 _08021998: .4byte gUnknown_020314E0 _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 @ =gUnknown_0844838C 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 @ =gUnknown_020314E0 ldr r0, [r0] ldr r1, _080219E8 @ =0x000005F3 adds r0, r0, r1 strb r2, [r0] bx lr .align 2, 0 _080219D0: .4byte 0x040000D4 _080219D4: .4byte gUnknown_0844838C _080219D8: .4byte 0x060113C0 _080219DC: .4byte 0x80000180 _080219E0: .4byte gMain _080219E4: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0844838C 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 @ =gOamBuffer 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 gUnknown_0844838C _08021AF8: .4byte 0x060113C0 _08021AFC: .4byte 0x80000180 _08021B00: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_084C00EC 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 gUnknown_084C00EC _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 @ =gUnknown_084C00EC 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 @ =gUnknown_020314E0 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 gUnknown_084C00EC _08021CA0: .4byte 0x06010AE0 _08021CA4: .4byte 0x80000040 _08021CA8: .4byte gUnknown_020314E0 _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 SetMatrixScale movs r0, #0 ldr r6, _08021D6C @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_0200EBC8 ldr r4, _08021DDC @ =gUnknown_020314E0 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 gUnknown_0200EBC8 _08021DDC: .4byte gUnknown_020314E0 _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 @ =gUnknown_086AD456 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 @ =gUnknown_083A8A8C 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 gUnknown_086AD456 _08021E80: .4byte 0x000001A5 _08021E84: .4byte 0x040000D4 _08021E88: .4byte gUnknown_083A8A8C _08021E8C: .4byte 0x05000240 _08021E90: .4byte 0x80000010 _08021E94: cmp r4, #0x25 bne _08021E9E movs r0, #0xca bl m4aSongNumStart _08021E9E: ldr r4, _08021F90 @ =gUnknown_020314E0 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 @ =gUnknown_084F6B0C 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 @ =gOamBuffer 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 gUnknown_020314E0 _08021F94: .4byte 0x040000D4 _08021F98: .4byte gUnknown_084F6B0C _08021F9C: .4byte 0x06013D00 _08021FA0: .4byte 0x80000280 _08021FA4: .4byte gOamBuffer _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 @ =gUnknown_086AD2DE ldr r4, _08022170 @ =gUnknown_020314E0 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 @ =gUnknown_086AD000 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 @ =gUnknown_08480E0C 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 @ =gOamBuffer 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 @ =gOamBuffer mov r8, r4 ldr r6, _0802219C @ =gUnknown_086B47DE 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 gUnknown_086AD2DE _08022170: .4byte gUnknown_020314E0 _08022174: .4byte gUnknown_086AD000 _08022178: .4byte 0x040000D4 _0802217C: .4byte gUnknown_08480E0C _08022180: .4byte 0x06015DA0 _08022184: .4byte 0x80000020 _08022188: .4byte 0x06015E60 _0802218C: .4byte gOamBuffer _08022190: .4byte 0xFFFFFE00 _08022194: .4byte 0x000001FF _08022198: .4byte 0x000001A5 _0802219C: .4byte gUnknown_086B47DE _080221A0: movs r0, #0x56 _080221A2: strh r0, [r7, #4] mov r5, sp ldr r4, _08022254 @ =gUnknown_086ADFC8 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 @ =gOamBuffer 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 gUnknown_086ADFC8 _08022258: .4byte gMain _0802225C: .4byte 0x000001A5 _08022260: .4byte gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _080223D8: .4byte 0xFFFFFE00 _080223DC: ldrh r1, [r7, #0x28] lsls r1, r1, #3 ldr r6, _08022448 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 gOamBuffer _0802244C: .4byte 0xFFFFFE00 _08022450: .4byte 0x000001FF _08022454: ldrh r1, [r7, #0x30] lsls r1, r1, #3 ldr r0, _08022490 @ =gOamBuffer 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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_086AD2DE 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 @ =gUnknown_086ADFD4 mov r1, sl ldr r0, [r1] movs r2, #0xdc lsls r2, r2, #1 adds r0, r0, r2 b _08022544 .align 2, 0 _080224EC: .4byte gUnknown_086AD2DE _080224F0: .4byte 0x000001AF _080224F4: .4byte gUnknown_086ADFD4 _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 @ =gUnknown_086ADFD4 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 gUnknown_086ADFD4 _0802253C: ldr r4, _080225D0 @ =gUnknown_086ADFD4 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 @ =gUnknown_0847FF0C 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 @ =gOamBuffer 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 gUnknown_086ADFD4 _080225D4: .4byte 0x040000D4 _080225D8: .4byte gUnknown_0847FF0C _080225DC: .4byte 0x06016220 _080225E0: .4byte 0x80000180 _080225E4: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086B481A mov r8, r1 ldr r3, _0802284C @ =gOamBuffer 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 gUnknown_086B481A _0802284C: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_083A808C 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 @ =gUnknown_0848FD8C 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 gUnknown_020314E0 _08022A04: .4byte 0x000002CA _08022A08: .4byte 0x000002C3 _08022A0C: .4byte gMain _08022A10: .4byte 0x00003DE8 _08022A14: .4byte 0x040000D4 _08022A18: .4byte gUnknown_083A808C _08022A1C: .4byte 0x050003C0 _08022A20: .4byte 0x80000010 _08022A24: .4byte gUnknown_0848FD8C _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 @ =gUnknown_0200EEA8 ldr r1, _08022A6C @ =gUnknown_086ADFE2 ldr r4, _08022A70 @ =gUnknown_020314E0 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 gUnknown_0200EEA8 _08022A6C: .4byte gUnknown_086ADFE2 _08022A70: .4byte gUnknown_020314E0 _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 @ =gUnknown_084FD18C 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086ADFE2 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 @ =gUnknown_086B28A0 mov sb, r5 ldr r6, _08022C60 @ =gOamBuffer 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 gUnknown_084FD18C _08022C40: .4byte 0x06011CE0 _08022C44: .4byte 0x80000100 _08022C48: .4byte 0x001E8480 _08022C4C: .4byte gUnknown_020314E0 _08022C50: .4byte 0x00000149 _08022C54: .4byte 0x000002CA _08022C58: .4byte gUnknown_086ADFE2 _08022C5C: .4byte gUnknown_086B28A0 _08022C60: .4byte gOamBuffer _08022C64: .4byte 0xFFFFFE00 _08022C68: .4byte 0x000001FF thumb_func_start sub_22C6C sub_22C6C: @ 0x08022C6C push {r4, r5, r6, lr} ldr r4, _08022D14 @ =gUnknown_020314E0 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 @ =gUnknown_086AE088 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 @ =gUnknown_083A806C 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 @ =gUnknown_083A704C 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 gUnknown_020314E0 _08022D18: .4byte 0x000002C6 _08022D1C: .4byte 0x000002CA _08022D20: .4byte 0x0000FFD8 _08022D24: .4byte 0x0000FFDC _08022D28: .4byte 0x000002CE _08022D2C: .4byte gMain _08022D30: .4byte 0x00000B98 _08022D34: .4byte gUnknown_086AE088 _08022D38: .4byte 0x040000D4 _08022D3C: .4byte gUnknown_083A806C _08022D40: .4byte 0x050003C0 _08022D44: .4byte 0x80000010 _08022D48: .4byte gUnknown_083A704C _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 @ =gUnknown_020314E0 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 @ =gUnknown_0200BC58 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE088 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 gUnknown_020314E0 _08022E3C: .4byte 0x000002C6 _08022E40: .4byte gUnknown_0200BC58 _08022E44: .4byte 0x000002CA _08022E48: .4byte 0xFFFFF468 _08022E4C: .4byte gUnknown_086AE088 _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 @ =gUnknown_084FD18C 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 gUnknown_084FD18C _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 @ =gOamBuffer mov ip, r3 ldr r7, _08022F98 @ =gUnknown_086B4850 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 gOamBuffer _08022F98: .4byte gUnknown_086B4850 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086A3707 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 @ =gUnknown_083FFD4C 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 gUnknown_020314E0 _08023020: .4byte 0x0000020E _08023024: .4byte gMain _08023028: .4byte gUnknown_086A3707 _0802302C: .4byte 0x040000D4 _08023030: .4byte 0x06015800 _08023034: .4byte 0x80000020 _08023038: .4byte gUnknown_083FFD4C _0802303C: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0802306C @ =gUnknown_083FF04C 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 gUnknown_083FF04C 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 @ =gUnknown_020314E0 mov r8, r1 ldr r7, _080230FC @ =gOamBuffer 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 gUnknown_020314E0 _080230FC: .4byte gOamBuffer _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 @ =gUnknown_020314E0 ldr r0, [r0] adds r0, #0xe4 strb r2, [r0] bx lr .align 2, 0 _08023124: .4byte gMain _08023128: .4byte gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086A3707 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 @ =gUnknown_083FFD4C 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 gUnknown_020314E0 _080231BC: .4byte 0x0000020E _080231C0: .4byte 0x000006DB _080231C4: .4byte gMain _080231C8: .4byte gUnknown_086A3707 _080231CC: .4byte 0x040000D4 _080231D0: .4byte 0x06015800 _080231D4: .4byte 0x80000020 _080231D8: .4byte gUnknown_083FFD4C _080231DC: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _08023230 @ =gUnknown_083FF04C 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 @ =gUnknown_086ACFE0 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 @ =gUnknown_083FFD4C b _08023258 .align 2, 0 _08023230: .4byte gUnknown_083FF04C _08023234: .4byte gMain _08023238: .4byte gUnknown_086ACFE0 _0802323C: .4byte 0x040000D4 _08023240: .4byte 0x06015800 _08023244: .4byte 0x80000020 _08023248: .4byte gUnknown_083FFD4C _0802324C: movs r7, #0 ldrsh r0, [r1, r7] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _080232EC @ =gUnknown_083FF04C 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_083FF04C _080232F0: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gOamBuffer 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 gUnknown_020314E0 _080233E8: .4byte 0x000006C4 _080233EC: .4byte gMain _080233F0: .4byte gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08023684: .4byte 0x000013D4 _08023688: ldr r1, _080236B0 @ =gMain ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] movs r5, #0 ldr r2, _080236B4 @ =gOamBuffer 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 gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gOamBuffer 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 @ =gOamBuffer 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 gOamBuffer _0802394C: .4byte 0xFFFFFE00 _08023950: .4byte 0x000001FF thumb_func_start sub_23954 sub_23954: @ 0x08023954 push {r4, lr} ldr r2, _08023998 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0200D638 mov sb, r1 mov ip, r6 ldr r1, _080239E0 @ =gUnknown_020314E0 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 gUnknown_0200D638 _080239E0: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD2EE 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 @ =gUnknown_084FB68C 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 @ =gUnknown_020314E0 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 @ =gUnknown_084FD18C 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD2EE 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 gUnknown_020314E0 _08023AD8: .4byte 0x000001ED _08023ADC: .4byte gUnknown_086AD2EE _08023AE0: .4byte 0x040000D4 _08023AE4: .4byte gUnknown_084FB68C _08023AE8: .4byte 0x060122A0 _08023AEC: .4byte 0x80000240 _08023AF0: .4byte gUnknown_084FD18C _08023AF4: .4byte 0x06011CE0 _08023AF8: .4byte 0x80000100 _08023AFC: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] ldr r3, _08023C94 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 SaveFile_SetPokedexFlags _08023B66: ldr r5, _08023C94 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD2EE ldr r1, _08023C94 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08023C98: .4byte gMain _08023C9C: .4byte 0x000001ED _08023CA0: .4byte gUnknown_086AD2EE _08023CA4: ldr r3, _08023CC0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gOamBuffer 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 @ =gUnknown_086B4D4E 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 @ =gUnknown_0200D918 mov sb, r6 ldr r1, _08023E10 @ =gUnknown_020314E0 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 @ =gOamBuffer mov sl, r8 mov r8, ip _08023D92: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 ldr r6, _08023E14 @ =gUnknown_0200D920 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 gOamBuffer _08023E00: .4byte gUnknown_086B4D4E _08023E04: .4byte 0x000001FF _08023E08: .4byte 0xFFFFFE00 _08023E0C: .4byte gUnknown_0200D918 _08023E10: .4byte gUnknown_020314E0 _08023E14: .4byte gUnknown_0200D920 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 @ =gUnknown_0200D860 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE0B4 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 @ =gUnknown_086AE0A4 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 @ =gUnknown_08449D8C 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 gUnknown_0200D860 _08023F04: .4byte 0xFFFFD860 _08023F08: .4byte gUnknown_020314E0 _08023F0C: .4byte 0x00000746 _08023F10: .4byte 0x000002DA _08023F14: .4byte gUnknown_086AE0B4 _08023F18: .4byte gUnknown_086AE0A4 _08023F1C: .4byte 0x000002D6 _08023F20: .4byte 0x040000D4 _08023F24: .4byte gUnknown_08449D8C _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 @ =gUnknown_08449D8C 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 gUnknown_08449D8C _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 @ =gUnknown_020314E0 ldr r7, [r6] ldr r1, _08024190 @ =gUnknown_086AE0A4 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 gUnknown_020314E0 _08024190: .4byte gUnknown_086AE0A4 _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 ldr r0, [r0] movs r1, #0xb4 lsls r1, r1, #2 b _080242D6 .align 2, 0 _080242C8: .4byte gMain _080242CC: .4byte gUnknown_020314E0 _080242D0: ldr r0, _0802431C @ =gUnknown_020314E0 ldr r0, [r0] ldr r1, _08024320 @ =0x00000343 _080242D6: adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r5, _0802431C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 bl _080252F4 .align 2, 0 _08024494: .4byte gUnknown_020314E0 _08024498: .4byte 0x000006C4 _0802449C: .4byte gMain _080244A0: ldr r3, _080244D0 @ =gUnknown_086AD52C ldr r5, _080244D4 @ =gUnknown_020314E0 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 gUnknown_086AD52C _080244D4: .4byte gUnknown_020314E0 _080244D8: .4byte 0x00000206 _080244DC: ldrb r0, [r4] adds r0, #1 movs r5, #0 strb r0, [r4] ldr r0, _0802459C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r1, [r0] movs r0, #3 strb r0, [r1, #0x17] ldr r2, _0802459C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086A3700 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 @ =gUnknown_086AD52C b _080245FE .align 2, 0 _0802459C: .4byte gUnknown_020314E0 _080245A0: .4byte 0x00000206 _080245A4: .4byte gMain _080245A8: .4byte gUnknown_086A3700 _080245AC: .4byte 0x0000FFF8 _080245B0: .4byte 0x0000FFE2 _080245B4: .4byte gUnknown_086AD52C _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 @ =gUnknown_086AD52C b _080245FE .align 2, 0 _080245D0: .4byte gUnknown_086AD52C _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_0202C7A0 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 @ =gUnknown_020315D0 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 @ =gUnknown_086B4B0E mov r8, r5 ldr r6, _08024778 @ =gOamBuffer 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 gUnknown_020314E0 _08024758: .4byte 0x040000D4 _0802475C: .4byte gUnknown_0202C7A0 _08024760: .4byte 0x060112A0 _08024764: .4byte 0x80000090 _08024768: .4byte gUnknown_020315D0 _0802476C: .4byte 0x050003A0 _08024770: .4byte 0x80000010 _08024774: .4byte gUnknown_086B4B0E _08024778: .4byte gOamBuffer _0802477C: .4byte 0x000001FF _08024780: .4byte 0xFFFFFE00 _08024784: ldr r0, _080247B0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086AD750 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 gUnknown_086AD750 _080248A4: .4byte 0x00000143 _080248A8: .4byte 0x00004E20 _080248AC: ldr r0, _08024934 @ =gUnknown_086AD788 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 @ =gUnknown_020314E0 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 gUnknown_086AD788 _08024938: .4byte gMain _0802493C: .4byte 0x00004E20 _08024940: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0202C7A0 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 @ =gUnknown_020314E0 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 gUnknown_0202C7A0 _08024A18: .4byte 0x060112A0 _08024A1C: .4byte 0x80000090 _08024A20: .4byte gUnknown_020314E0 _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 @ =gOamBuffer 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 gOamBuffer _08024AAC: .4byte 0xFFFFFE00 _08024AB0: .4byte 0x000001FF _08024AB4: ldr r3, _08024B5C @ =gUnknown_086AD580 ldr r5, _08024B60 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086AD580 _08024B60: .4byte gUnknown_020314E0 _08024B64: .4byte gMain _08024B68: .4byte 0x00004E20 _08024B6C: .4byte 0x000005A9 _08024B70: ldr r2, _08024BA8 @ =gUnknown_086A3700 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 @ =gUnknown_086AD788 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 gUnknown_086A3700 _08024BAC: .4byte gUnknown_086AD788 _08024BB0: .4byte gMain _08024BB4: ldr r0, _08024C1C @ =gUnknown_086AD788 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086AD788 _08024C20: .4byte gMain _08024C24: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08024C70: ldr r0, _08024C94 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08024C98: .4byte 0x00000367 _08024C9C: movs r1, #1 mov sl, r1 _08024CA0: ldr r2, _08024CE8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0202C7A0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_0202C7A0 _08024DA8: .4byte 0x060112A0 _08024DAC: .4byte 0x80000090 _08024DB0: .4byte gOamBuffer _08024DB4: .4byte 0xFFFFFE00 _08024DB8: .4byte 0x000001FF _08024DBC: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08024EAC: .4byte 0x000005A9 _08024EB0: adds r0, r5, #0 bl sub_C74 ldr r6, _08024EF4 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08024EF8: .4byte 0x00004E20 _08024EFC: ldr r7, _0802508C @ =gUnknown_020314E0 ldr r0, [r7] adds r0, #0xe4 movs r5, #0 movs r1, #9 strb r1, [r0] ldr r1, _08025090 @ =0x040000D4 ldr r0, _08025094 @ =gUnknown_086ACF80 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 @ =gUnknown_081428D4 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 @ =gUnknown_08138014 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_0202D760 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 ldr r1, [r3] movs r0, #0 strh r0, [r1, #0x18] b _080252F6 .align 2, 0 _0802508C: .4byte gUnknown_020314E0 _08025090: .4byte 0x040000D4 _08025094: .4byte gUnknown_086ACF80 _08025098: .4byte 0x050003E0 _0802509C: .4byte 0x80000010 _080250A0: .4byte gUnknown_081428D4 _080250A4: .4byte 0x06015800 _080250A8: .4byte 0x80000E00 _080250AC: .4byte 0x000005F6 _080250B0: .4byte gUnknown_08138014 _080250B4: .4byte 0x060164C0 _080250B8: .4byte 0x80000040 _080250BC: .4byte 0x06016760 _080250C0: .4byte 0x000005A4 _080250C4: .4byte 0x0000028A _080250C8: .4byte 0x000006D3 _080250CC: .4byte gUnknown_0202D760 _080250D0: .4byte 0x060112A0 _080250D4: .4byte 0x80000090 _080250D8: .4byte gOamBuffer _080250DC: .4byte 0xFFFFFE00 _080250E0: .4byte 0x000001FF _080250E4: ldr r5, _080251E4 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_0202D760 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080251E8: .4byte gOamBuffer _080251EC: .4byte 0xFFFFFE00 _080251F0: .4byte 0x000001FF _080251F4: .4byte 0x040000D4 _080251F8: .4byte gUnknown_0202D760 _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 @ =gOamBuffer 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 @ =gUnknown_020314E0 ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 b _080252F4 .align 2, 0 _08025280: .4byte gOamBuffer _08025284: .4byte 0xFFFFFE00 _08025288: .4byte 0x000001FF _0802528C: .4byte gMain _08025290: .4byte gUnknown_020314E0 _08025294: bl sub_242B4 ldr r2, _080252B0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080252B4: .4byte 0x00000367 _080252B8: ldr r6, _080252C8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_020314E0 mov sb, r0 cmp r1, #0 beq _08025360 movs r0, #0 ldr r6, _080253D8 @ =gOamBuffer 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 @ =gOamBuffer 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 gUnknown_020314E0 _080253D8: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_083A05CC 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 @ =gUnknown_0839DDAC 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 @ =gUnknown_086AD3FE ldr r3, _08025494 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08025498: .4byte 0x000006CC _0802549C: .4byte 0x000006C7 _080254A0: .4byte 0x000006C6 _080254A4: .4byte 0x000006CA _080254A8: .4byte 0x040000D4 _080254AC: .4byte gUnknown_083A05CC _080254B0: .4byte 0x050003C0 _080254B4: .4byte 0x80000010 _080254B8: .4byte gUnknown_0839DDAC _080254BC: .4byte 0x06015800 _080254C0: .4byte 0x80001400 _080254C4: .4byte gUnknown_086AD3FE _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gOamBuffer mov ip, r0 ldr r1, _080257F0 @ =gUnknown_086AD3FE mov sl, r1 ldr r3, _080257F4 @ =gUnknown_020314E0 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 @ =gUnknown_086B53E4 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 @ =gUnknown_086B53E4 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 @ =gUnknown_086B53E4 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 gOamBuffer _080257F0: .4byte gUnknown_086AD3FE _080257F4: .4byte gUnknown_020314E0 _080257F8: .4byte 0x000006CC _080257FC: .4byte gUnknown_086B53E4 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_083A07CC 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 @ =gUnknown_083A27EC 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 gUnknown_083A07CC _08025908: .4byte 0x06015800 _0802590C: .4byte 0x80001000 _08025910: .4byte gUnknown_083A27EC _08025914: .4byte 0x050003C0 _08025918: .4byte 0x80000010 _0802591C: .4byte gMain _08025920: .4byte 0x00000602 _08025924: .4byte 0x00000604 _08025928: .4byte 0x00000603 _0802592C: ldr r2, _08025954 @ =gUnknown_086AE0C0 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 gUnknown_086AE0C0 _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 @ =gOamBuffer mov r8, r7 ldr r1, _08025A70 @ =gUnknown_086B50AE 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 gOamBuffer _08025A70: .4byte gUnknown_086B50AE _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 @ =gUnknown_083A29EC 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 @ =gUnknown_083A320C 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 gUnknown_083A29EC _08025AD8: .4byte 0x06015800 _08025ADC: .4byte 0x80000400 _08025AE0: .4byte gUnknown_083A320C _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 @ =gOamBuffer mov r8, r3 ldr r4, _08025C0C @ =gUnknown_086B4F6A 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 gOamBuffer _08025C0C: .4byte gUnknown_086B4F6A _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 @ =gUnknown_083A340C 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 @ =gUnknown_083A542C 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 gUnknown_083A340C _08025C60: .4byte 0x06015800 _08025C64: .4byte 0x80001000 _08025C68: .4byte gUnknown_083A542C _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 @ =gUnknown_083A562C 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 @ =gUnknown_083A6E4C 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 gUnknown_083A562C _08025DB4: .4byte 0x06015800 _08025DB8: .4byte 0x80000C00 _08025DBC: .4byte gUnknown_083A6E4C _08025DC0: .4byte 0x050003C0 _08025DC4: .4byte 0x80000010 _08025DC8: .4byte gMain _08025DCC: .4byte 0x00000602 _08025DD0: ldr r2, _08025DF8 @ =gUnknown_086AE0D0 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 gUnknown_086AE0D0 _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 @ =gOamBuffer mov r8, r3 ldr r4, _08025F58 @ =gUnknown_086B4E62 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 gOamBuffer _08025F58: .4byte gUnknown_086B4E62 _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 @ =gUnknown_020314E0 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 Random 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 @ =gUnknown_08055A68 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 @ =gUnknown_08137928 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 @ =gUnknown_083A8AAC 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 @ =gUnknown_084FA20C 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 gUnknown_020314E0 _08026080: .4byte 0x000006DB _08026084: .4byte gMain _08026088: .4byte gUnknown_08055A68 _0802608C: .4byte gUnknown_08137928 _08026090: .4byte 0x000006DA _08026094: .4byte 0x000006D9 _08026098: .4byte 0x000006D3 _0802609C: .4byte 0x040000D4 _080260A0: .4byte gUnknown_083A8AAC _080260A4: .4byte 0x050003C0 _080260A8: .4byte 0x80000010 _080260AC: .4byte gUnknown_084FA20C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_08137944 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 @ =gUnknown_08137944 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 @ =gUnknown_08137944 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 gUnknown_08137944 _080262D8: .4byte 0x00000171 _080262DC: .4byte 0x000006F2 _080262E0: .4byte 0x000006C4 _080262E4: ldr r1, _08026338 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r2, [r5] ldr r4, _080265F8 @ =gUnknown_08055A68 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 @ =gUnknown_08137928 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 gUnknown_020314E0 _080265F8: .4byte gUnknown_08055A68 _080265FC: .4byte gMain _08026600: .4byte gUnknown_08137928 _08026604: .4byte 0x000006DA _08026608: ldr r0, _08026640 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gOamBuffer mov r8, r7 ldr r0, _08026768 @ =gUnknown_086B51CE 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 gOamBuffer _08026768: .4byte gUnknown_086B51CE _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 @ =gUnknown_020314E0 ldr r2, [r4] ldr r1, _080267E8 @ =0x0000070C adds r3, r2, r1 movs r5, #0 movs r1, #0 strh r1, [r3] ldr r1, _080267EC @ =gUnknown_08137AB8 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 gUnknown_020314E0 _080267E8: .4byte 0x0000070C _080267EC: .4byte gUnknown_08137AB8 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08026870: .4byte 0x0000072A _08026874: .4byte 0x00000729 _08026878: ldr r2, _080268BC @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_081C0064 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 gUnknown_020314E0 _080269F8: .4byte 0x00000296 _080269FC: .4byte 0x00000724 _08026A00: .4byte 0x040000D4 _08026A04: .4byte gUnknown_081C0064 _08026A08: .4byte 0x05000180 _08026A0C: .4byte 0x80000010 thumb_func_start sub_26A10 sub_26A10: @ 0x08026A10 push {r4, r5, r6, lr} ldr r4, _08026A68 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08026C60: .4byte 0x00000736 _08026C64: .4byte 0x00000739 _08026C68: bl sub_219EC ldr r0, _08026C84 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086A3700 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 @ =gUnknown_081C0064 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 gUnknown_086A3700 _08027058: .4byte 0x0000025F _0802705C: .4byte 0x040000D4 _08027060: .4byte gUnknown_081C0064 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 Random ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #5 bl __umodsi3 ldr r5, _080271FC @ =gUnknown_020314E0 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 Random ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r2, r0, r1 movs r0, #3 ands r2, r0 ldr r4, _080271FC @ =gUnknown_020314E0 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 Random ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 bl __umodsi3 ldr r1, _080271FC @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 ldr r5, _08027380 @ =gUnknown_020314E0 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 Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 ldr r5, _08027380 @ =gUnknown_020314E0 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 Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 ldr r5, _08027380 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 Random 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086ACFA0 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 gUnknown_086ACFA0 _08027408: .4byte gMain _0802740C: .4byte 0x0000025A _08027410: .4byte 0x0000026E _08027414: bl sub_278F4 ldr r0, _08027420 @ =gUnknown_020314E0 ldr r1, [r0] b _080277B8 .align 2, 0 _08027420: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_03005C00 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 @ =gUnknown_03005C00 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 gUnknown_020314E0 _08027690: .4byte 0x000006C4 _08027694: .4byte 0x004C4B40 _08027698: .4byte gMain _0802769C: .4byte gUnknown_03005C00 _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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gOamBuffer _08027884: .4byte 0x000001FF _08027888: .4byte 0xFFFFFE00 _0802788C: .4byte gUnknown_020314E0 _08027890: .4byte 0x000001A5 _08027894: .4byte 0x00000714 _08027898: .4byte 0x000006EE _0802789C: bl sub_26EA4 ldr r0, _080278AC @ =gUnknown_020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _080278AC: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD474 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 @ =gUnknown_0815C4C4 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 @ =gMPlayInfo_SE1 ldr r1, _080279F8 @ =gUnknown_0869F58C bl MPlayStart _0802799E: ldr r2, _080279FC @ =gUnknown_086AE0E6 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 gUnknown_020314E0 _080279CC: .4byte 0x0000026E _080279D0: .4byte 0x040000D4 _080279D4: .4byte gUnknown_086AD474 _080279D8: .4byte 0x0000025F _080279DC: .4byte 0x06015800 _080279E0: .4byte 0x80000E00 _080279E4: .4byte gUnknown_0815C4C4 _080279E8: .4byte 0x050003E0 _080279EC: .4byte 0x80000010 _080279F0: .4byte 0x00000626 _080279F4: .4byte gMPlayInfo_SE1 _080279F8: .4byte gUnknown_0869F58C _080279FC: .4byte gUnknown_086AE0E6 _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 @ =gMPlayInfo_SE1 ldr r1, _08027B50 @ =gUnknown_0869F5C8 bl MPlayStart ldr r0, [r6] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _08027A46: ldr r3, _08027B54 @ =gUnknown_020314E0 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 @ =gOamBuffer mov sl, r3 ldr r5, _08027B64 @ =gUnknown_086B4202 mov sb, r5 ldr r6, _08027B54 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gMPlayInfo_SE1 _08027B50: .4byte gUnknown_0869F5C8 _08027B54: .4byte gUnknown_020314E0 _08027B58: .4byte 0x0000025A _08027B5C: .4byte 0x0000FFE2 _08027B60: .4byte gOamBuffer _08027B64: .4byte gUnknown_086B4202 _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 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 ldr r1, _08027D14 @ =gUnknown_0869F618 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD49C 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 @ =gOamBuffer 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 gUnknown_020314E0 _08027D08: .4byte 0x0000026B _08027D0C: .4byte 0x00002710 _08027D10: .4byte gMPlayInfo_SE1 _08027D14: .4byte gUnknown_0869F618 _08027D18: .4byte 0x0000071D _08027D1C: .4byte gMain _08027D20: .4byte 0x0000FFE2 _08027D24: .4byte 0x040000D4 _08027D28: .4byte gUnknown_086AD49C _08027D2C: .4byte 0x0000025F _08027D30: .4byte 0x060116C0 _08027D34: .4byte 0x80000100 _08027D38: .4byte gOamBuffer _08027D3C: .4byte 0x000001FF _08027D40: .4byte 0xFFFFFE00 thumb_func_start sub_27D44 sub_27D44: @ 0x08027D44 push {r4, r5, r6, lr} ldr r4, _08027DC8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_081C0064 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 gUnknown_081C0064 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802803C: .4byte gUnknown_020314E0 _08028040: bl sub_3219C ldr r0, _0802806C @ =gMain ldrb r0, [r0, #2] cmp r0, #3 beq _08028060 ldr r0, _08028070 @ =gUnknown_020314E0 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 SaveFile_SetPokedexFlags _08028060: ldr r0, _08028070 @ =gUnknown_020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802806C: .4byte gMain _08028070: .4byte gUnknown_020314E0 _08028074: bl sub_28AE0 ldr r2, _0802808C @ =gUnknown_020314E0 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 gUnknown_020314E0 _08028090: .4byte 0x0000073D _08028094: movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r2, _080280D8 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 gUnknown_086ACEF8 _080281C0: .4byte 0x06015800 _080281C4: .4byte 0x80001200 _080281C8: .4byte gUnknown_086ACF18 _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 @ =gUnknown_0839C78C 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 @ =gUnknown_0839DBAC 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 gUnknown_0839C78C _08028270: .4byte 0x06015800 _08028274: .4byte 0x80000A00 _08028278: .4byte gUnknown_0839DBAC _0802827C: .4byte 0x050003C0 _08028280: .4byte 0x80000010 _08028284: bl sub_293D8 b _080283FA _0802828A: bl sub_29624 ldr r0, _0802832C @ =0x040000D4 ldr r1, _08028330 @ =gUnknown_086ACF80 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 @ =gUnknown_020306D0 str r1, [r0] ldr r1, _08028340 @ =0x050003A0 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] ldr r4, _08028344 @ =gUnknown_020314E0 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 @ =gUnknown_086A3700 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 gUnknown_086ACF80 _08028334: .4byte 0x050003E0 _08028338: .4byte 0x80000010 _0802833C: .4byte gUnknown_020306D0 _08028340: .4byte 0x050003A0 _08028344: .4byte gUnknown_020314E0 _08028348: .4byte 0x0000028A _0802834C: .4byte 0x0000071D _08028350: .4byte 0x000005F2 _08028354: .4byte gUnknown_086A3700 _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 @ =gUnknown_020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802839C: .4byte gUnknown_020314E0 _080283A0: bl sub_27D44 ldr r0, _080283B0 @ =gUnknown_020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _080283B0: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r1, [r0] movs r0, #0 _080283F8: strb r0, [r1, #0x17] _080283FA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08028400: .4byte gUnknown_020314E0 thumb_func_start sub_28404 sub_28404: @ 0x08028404 push {r4, r5, r6, r7, lr} ldr r5, _08028500 @ =gUnknown_020314E0 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 @ =gUnknown_081C0064 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 gUnknown_020314E0 _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 gUnknown_081C0064 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 gUnknown_086ACEF8 _08028670: .4byte 0x06015800 _08028674: .4byte 0x80001200 _08028678: .4byte gUnknown_086ACF18 _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 @ =gUnknown_086ACF80 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 @ =gUnknown_020306D0 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 @ =gUnknown_02030760 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 @ =gUnknown_086AE124 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 gUnknown_086ACF80 _080287AC: .4byte 0x050003E0 _080287B0: .4byte 0x80000010 _080287B4: .4byte gUnknown_020306D0 _080287B8: .4byte 0x050003A0 _080287BC: .4byte 0x0000071D _080287C0: .4byte 0x0000071E _080287C4: .4byte 0x000005F2 _080287C8: .4byte gMain _080287CC: .4byte gUnknown_02030760 _080287D0: .4byte 0x06010CA0 _080287D4: .4byte 0x80000240 _080287D8: .4byte 0x0000FA88 _080287DC: .4byte gUnknown_086AE124 _080287E0: ldr r4, _08028824 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r3, [r0] ldr r2, _080288E4 @ =gUnknown_086AE124 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 gUnknown_020314E0 _080288E4: .4byte gUnknown_086AE124 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 ldr r1, _08028A28 @ =gUnknown_0869F58C bl MPlayStart b _08028AD2 .align 2, 0 _08028A0C: .4byte 0x00004E20 _08028A10: .4byte gUnknown_020314E0 _08028A14: .4byte 0x000001F3 _08028A18: .4byte 0x000005AA _08028A1C: .4byte 0x00000296 _08028A20: .4byte 0x000005F2 _08028A24: .4byte gMPlayInfo_SE1 _08028A28: .4byte gUnknown_0869F58C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08028A5C: .4byte 0x000005AA _08028A60: bl sub_28EA0 bl sub_292A0 bl sub_27D44 ldr r2, _08028A84 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_086A3700 ldr r0, _08028BD8 @ =gUnknown_020314E0 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 @ =gUnknown_086BB6F4 add r3, sp, #0xc mov r8, r3 ldr r4, _08028BE0 @ =gUnknown_02030760 mov sl, r4 ldr r1, _08028BE4 @ =gUnknown_020306D0 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 @ =gUnknown_086B15B4 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 @ =gUnknown_086B15B4 ldr r1, [r3] movs r4, #0xf0 lsls r4, r4, #1 adds r1, r1, r4 str r1, [r0] ldr r1, _08028BF8 @ =gUnknown_02030730 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 gUnknown_086A3700 _08028BD8: .4byte gUnknown_020314E0 _08028BDC: .4byte gUnknown_086BB6F4 _08028BE0: .4byte gUnknown_02030760 _08028BE4: .4byte gUnknown_020306D0 _08028BE8: .4byte gUnknown_086B15B4 _08028BEC: .4byte 0x040000D4 _08028BF0: .4byte 0x80000240 _08028BF4: .4byte 0x80000010 _08028BF8: .4byte gUnknown_02030730 thumb_func_start sub_28BFC sub_28BFC: @ 0x08028BFC push {r4, r5, r6, lr} ldr r2, _08028C6C @ =gUnknown_086A3700 ldr r0, _08028C70 @ =gUnknown_020314E0 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 @ =gUnknown_0202C7A0 str r1, [r0, #4] ldr r1, _08028C84 @ =0x80000870 str r1, [r0, #8] ldr r1, [r0, #8] str r3, [r0] ldr r1, _08028C88 @ =gUnknown_020315D0 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 gUnknown_086A3700 _08028C70: .4byte gUnknown_020314E0 _08028C74: .4byte gMonHatchSpriteGroupGfx _08028C78: .4byte gMonHatchSpriteGroupPals _08028C7C: .4byte 0x040000D4 _08028C80: .4byte gUnknown_0202C7A0 _08028C84: .4byte 0x80000870 _08028C88: .4byte gUnknown_020315D0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_02031060 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 @ =gUnknown_02030760 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 gUnknown_020314E0 _08028D38: .4byte 0x000005A9 _08028D3C: .4byte 0x040000D4 _08028D40: .4byte gUnknown_02031060 _08028D44: .4byte 0x06010CA0 _08028D48: .4byte 0x80000240 _08028D4C: .4byte gUnknown_02030760 _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 @ =gUnknown_02030760 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 @ =gOamBuffer 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 gUnknown_02030760 _08028E18: .4byte 0x06010CA0 _08028E1C: .4byte 0x80000240 _08028E20: .4byte gOamBuffer _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_0844AA0C b _08028FFC .align 2, 0 _08028F64: .4byte gMain _08028F68: .4byte gUnknown_020314E0 _08028F6C: .4byte 0x040000D4 _08028F70: .4byte gUnknown_0844AA0C _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 @ =gUnknown_02031060 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 @ =gUnknown_02030760 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 gUnknown_02031060 _08028FD4: .4byte 0x06010CA0 _08028FD8: .4byte 0x80000240 _08028FDC: .4byte gUnknown_02030760 _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 @ =gUnknown_02030760 _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 gUnknown_02030760 _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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE154 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 gOamBuffer _08029130: .4byte 0xFFFFFE00 _08029134: .4byte 0x000001FF _08029138: .4byte gMain _0802913C: .4byte gUnknown_020314E0 _08029140: .4byte gUnknown_086AE154 _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 @ =gUnknown_086B263C 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086B263C _08029288: .4byte 0xFFFFFE00 _0802928C: .4byte gOamBuffer _08029290: .4byte 0x000001FF _08029294: .4byte gUnknown_020314E0 _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 @ =gOamBuffer 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 gOamBuffer _08029330: .4byte 0xFFFFFE00 thumb_func_start sub_29334 sub_29334: @ 0x08029334 push {r4, r5, lr} ldr r0, _08029384 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086AD436 ldr r3, _08029410 @ =gUnknown_020314E0 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 gUnknown_086AD436 _08029410: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020306D0 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 @ =gUnknown_02030760 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 @ =gUnknown_020314E0 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 @ =gUnknown_086B55DC mov sl, r4 ldr r1, _08029614 @ =gUnknown_086AD436 mov sb, r1 ldr r2, _080295E4 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080295E8: .4byte 0x000006CC _080295EC: .4byte 0x000006CA _080295F0: .4byte gMain _080295F4: .4byte 0x040000D4 _080295F8: .4byte gUnknown_020306D0 _080295FC: .4byte 0x050003A0 _08029600: .4byte 0x80000010 _08029604: .4byte gUnknown_02030760 _08029608: .4byte 0x06010CA0 _0802960C: .4byte 0x80000240 _08029610: .4byte gUnknown_086B55DC _08029614: .4byte gUnknown_086AD436 _08029618: .4byte gOamBuffer _0802961C: .4byte 0x000001FF _08029620: .4byte 0xFFFFFE00 thumb_func_start sub_29624 sub_29624: @ 0x08029624 push {r4, r5, lr} ldr r0, _08029658 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 Random 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 Random 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 Random 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE1A4 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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_086B53B4 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 @ =gUnknown_086B53B8 adds r1, r1, r5 ldrh r0, [r1] strh r0, [r2, #2] ldrh r3, [r4] lsls r3, r3, #3 ldr r6, _080298E4 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _080298C0: .4byte 0x00000606 _080298C4: .4byte gUnknown_086AE1A4 _080298C8: .4byte 0x000005DA _080298CC: .4byte 0x000005B9 _080298D0: .4byte 0x000005C2 _080298D4: .4byte 0x000036AF _080298D8: .4byte 0xFFFF0000 _080298DC: .4byte 0xFFFFFED4 _080298E0: .4byte 0x0000FFFF _080298E4: .4byte gOamBuffer _080298E8: .4byte gUnknown_086B53B4 _080298EC: .4byte gUnknown_086B53B8 _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 @ =gUnknown_020314E0 movs r1, #0x64 mov sb, r1 ldr r2, _08029A38 @ =gUnknown_086AE2F4 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 Random 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 Random ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029A40 @ =gUnknown_086AE2F6 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 Random 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08029A38: .4byte gUnknown_086AE2F4 _08029A3C: .4byte 0x000005C2 _08029A40: .4byte gUnknown_086AE2F6 _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 @ =gOamBuffer mov r8, r0 ldr r1, _08029D34 @ =gUnknown_086B4E3E mov sl, r1 _08029A92: ldr r2, _08029D38 @ =gUnknown_020314E0 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 @ =gUnknown_086AE234 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086B4E42 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 @ =gUnknown_086AE30C 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 @ =gUnknown_086AE318 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 @ =gUnknown_020314E0 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 SetMatrixScale 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 SetMatrixScale 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 SetMatrixScale 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 SetMatrixScale ldr r0, _08029D38 @ =gUnknown_020314E0 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 gOamBuffer _08029D34: .4byte gUnknown_086B4E3E _08029D38: .4byte gUnknown_020314E0 _08029D3C: .4byte 0x00000606 _08029D40: .4byte gUnknown_086AE234 _08029D44: .4byte 0x000005DA _08029D48: .4byte 0x000005B9 _08029D4C: .4byte 0x000005BD _08029D50: .4byte 0x000005C2 _08029D54: .4byte 0xFFFF0000 _08029D58: .4byte 0x0000FFFF _08029D5C: .4byte gUnknown_086B4E42 _08029D60: .4byte 0x000001FF _08029D64: .4byte 0xFFFFFE00 _08029D68: .4byte gUnknown_086AE30C _08029D6C: .4byte gUnknown_086AE318 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD180 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 gUnknown_020314E0 _08029E6C: .4byte 0x000006F2 _08029E70: .4byte 0x000006F4 _08029E74: .4byte 0x000006E9 _08029E78: .4byte gUnknown_086AD180 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 Random 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802A200: .4byte 0x000006F4 _0802A204: .4byte 0x000006F6 _0802A208: .4byte 0x000006F2 _0802A20C: ldr r7, _0802A2DC @ =gUnknown_020314E0 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 @ =gMPlayInfo_BGM 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802A2E0: .4byte 0x000006F2 _0802A2E4: .4byte 0x000006C4 _0802A2E8: .4byte gMPlayInfo_BGM _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 @ =gMPlayInfo_SE1 ldr r1, _0802A350 @ =gUnknown_0869F45C 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 gMPlayInfo_SE1 _0802A350: .4byte gUnknown_0869F45C thumb_func_start sub_2A354 sub_2A354: @ 0x0802A354 push {r4, r5, r6, r7, lr} ldr r4, _0802A3C4 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_084C156C 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 gUnknown_084C156C _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 @ =gMPlayInfo_SE1 ldr r1, _0802A8B8 @ =gUnknown_0869F664 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 @ =gUnknown_08137E14 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 gMPlayInfo_SE1 _0802A8B8: .4byte gUnknown_0869F664 _0802A8BC: .4byte 0x040000D4 _0802A8C0: .4byte gUnknown_08137E14 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACF38 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802AB60: .4byte 0x000005A6 _0802AB64: .4byte gUnknown_086ACF38 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_081428D4 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 @ =gUnknown_08138014 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 @ =gMPlayInfo_BGM bl m4aMPlayStop ldr r0, [r7] adds r0, #0x71 strb r4, [r0] bl _0802C4D2 .align 2, 0 _0802ACDC: .4byte gMain _0802ACE0: .4byte gUnknown_020314E0 _0802ACE4: .4byte 0x0000132C _0802ACE8: .4byte 0x040000D4 _0802ACEC: .4byte gUnknown_081428D4 _0802ACF0: .4byte 0x06015800 _0802ACF4: .4byte 0x80000E00 _0802ACF8: .4byte 0x000005F6 _0802ACFC: .4byte gUnknown_08138014 _0802AD00: .4byte 0x060164C0 _0802AD04: .4byte 0x80000040 _0802AD08: .4byte 0x06016760 _0802AD0C: .4byte 0x000005F7 _0802AD10: .4byte 0x000005A6 _0802AD14: .4byte gMPlayInfo_BGM _0802AD18: ldr r4, _0802AD94 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 ldr r1, _0802ADB0 @ =gUnknown_0869FCE4 bl MPlayStart bl _0802C4D2 .align 2, 0 _0802AD94: .4byte gUnknown_020314E0 _0802AD98: .4byte 0x0000071D _0802AD9C: .4byte 0x0000071E _0802ADA0: .4byte 0x0000071F _0802ADA4: .4byte 0x0000132C _0802ADA8: .4byte 0x000005A6 _0802ADAC: .4byte gMPlayInfo_SE1 _0802ADB0: .4byte gUnknown_0869FCE4 _0802ADB4: ldr r2, _0802AE14 @ =0x040000D4 ldr r3, _0802AE18 @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0802AE1C: .4byte 0x000005F6 _0802AE20: .4byte gUnknown_08137E14 _0802AE24: .4byte 0x05000220 _0802AE28: .4byte 0x80000010 _0802AE2C: .4byte gMain _0802AE30: .4byte 0x000005A6 _0802AE34: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802AE98: ldr r4, _0802AED8 @ =gMain ldrh r0, [r4, #0x3c] movs r0, #7 strh r0, [r4, #0x3c] ldr r3, _0802AEDC @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0802AEE0: .4byte 0x000005A6 _0802AEE4: .4byte 0x040000D4 _0802AEE8: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08137F14 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 gUnknown_020314E0 _0802AF60: .4byte gUnknown_08137F14 _0802AF64: .4byte 0x05000220 _0802AF68: .4byte 0x80000010 _0802AF6C: ldr r3, _0802AFDC @ =gUnknown_020314E0 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 @ =gUnknown_02030710 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 @ =gUnknown_08137F14 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 gUnknown_020314E0 _0802AFE0: .4byte gMain _0802AFE4: .4byte 0x040000D4 _0802AFE8: .4byte gUnknown_02030710 _0802AFEC: .4byte 0x050003A0 _0802AFF0: .4byte 0x80000010 _0802AFF4: .4byte gUnknown_08137F14 _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 @ =gUnknown_08137E14 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 @ =gUnknown_020314E0 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 @ =gOamBuffer mov r8, r1 ldr r2, _0802B110 @ =gUnknown_081B0FE4 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 gUnknown_08137E14 _0802B0F8: .4byte 0x05000220 _0802B0FC: .4byte 0x80000010 _0802B100: .4byte gMain _0802B104: .4byte gUnknown_020314E0 _0802B108: .4byte 0x0000132C _0802B10C: .4byte gOamBuffer _0802B110: .4byte gUnknown_081B0FE4 _0802B114: .4byte 0x000001FF _0802B118: .4byte 0xFFFFFE00 _0802B11C: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802B1E8 @ =gOamBuffer mov sb, r3 ldr r4, _0802B1EC @ =gUnknown_081B0FE4 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 @ =gUnknown_020314E0 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 gOamBuffer _0802B1EC: .4byte gUnknown_081B0FE4 _0802B1F0: .4byte 0xFFFFFE00 _0802B1F4: .4byte 0x000001FF _0802B1F8: .4byte gUnknown_020314E0 _0802B1FC: .4byte 0x000005A6 _0802B200: ldr r2, _0802B29C @ =0x040000D4 ldr r6, _0802B2A0 @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 gUnknown_020314E0 _0802B2A4: .4byte 0x000005F6 _0802B2A8: .4byte gUnknown_08137E14 _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 @ =gUnknown_020306D0 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 @ =gUnknown_020314E0 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 gUnknown_020306D0 _0802B32C: .4byte 0x050003A0 _0802B330: .4byte 0x80000010 _0802B334: .4byte gUnknown_020314E0 _0802B338: .4byte 0x0000132C _0802B33C: ldr r4, _0802B410 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802B414: .4byte 0x000005A6 _0802B418: .4byte 0xFFFFE000 _0802B41C: .4byte 0x0000132C _0802B420: .4byte 0x000005AC _0802B424: .4byte 0x00004E20 _0802B428: .4byte 0x0000028A _0802B42C: ldr r5, _0802B454 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802B458: .4byte 0x0000132C _0802B45C: .4byte 0xFFFFE000 _0802B460: ldr r2, _0802B498 @ =0x040000D4 ldr r0, _0802B49C @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 gUnknown_020314E0 _0802B4A0: .4byte 0x000005F6 _0802B4A4: .4byte gUnknown_08137E14 _0802B4A8: .4byte 0x05000220 _0802B4AC: .4byte 0x80000010 _0802B4B0: .4byte 0x0000132C _0802B4B4: .4byte 0xFFFFE000 _0802B4B8: ldr r2, _0802B4F0 @ =0x040000D4 ldr r0, _0802B4F4 @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 gUnknown_020314E0 _0802B4F8: .4byte 0x000005F6 _0802B4FC: .4byte gUnknown_08137E14 _0802B500: .4byte 0x05000220 _0802B504: .4byte 0x80000010 _0802B508: .4byte 0x0000132C _0802B50C: .4byte 0xFFFFE000 _0802B510: ldr r4, _0802B554 @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 gUnknown_020314E0 _0802B558: .4byte 0x000005A6 _0802B55C: .4byte 0x040000D4 _0802B560: .4byte 0x000005F6 _0802B564: .4byte gUnknown_08137E14 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACFF4 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 @ =gOamBuffer mov r8, r7 ldr r1, _0802B678 @ =gUnknown_081B0FE4 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 gUnknown_020314E0 _0802B66C: .4byte 0x0000132C _0802B670: .4byte gUnknown_086ACFF4 _0802B674: .4byte gOamBuffer _0802B678: .4byte gUnknown_081B0FE4 _0802B67C: .4byte 0x000001FF _0802B680: .4byte 0xFFFFFE00 _0802B684: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802B75C @ =gOamBuffer mov sb, r3 ldr r4, _0802B760 @ =gUnknown_081B0FE4 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r0, [r4] ldr r7, _0802B774 @ =0x00000389 adds r0, r0, r7 movs r1, #1 strb r1, [r0] b _0802B7F8 .align 2, 0 _0802B75C: .4byte gOamBuffer _0802B760: .4byte gUnknown_081B0FE4 _0802B764: .4byte 0xFFFFFE00 _0802B768: .4byte 0x000001FF _0802B76C: .4byte gUnknown_020314E0 _0802B770: .4byte 0x000005A9 _0802B774: .4byte 0x00000389 _0802B778: ldr r0, _0802B7A0 @ =gUnknown_020314E0 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 @ =gUnknown_020306F0 b _0802B7EC .align 2, 0 _0802B7A0: .4byte gUnknown_020314E0 _0802B7A4: .4byte 0x040000D4 _0802B7A8: .4byte gUnknown_020306F0 _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 @ =gUnknown_02030730 _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 @ =gUnknown_020314E0 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 gUnknown_02030730 _0802B828: .4byte 0x050003A0 _0802B82C: .4byte 0x80000010 _0802B830: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACFF4 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 @ =gOamBuffer mov r8, r1 ldr r2, _0802B9CC @ =gUnknown_081B0FE4 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 gUnknown_020314E0 _0802B9C0: .4byte 0x0000132C _0802B9C4: .4byte gUnknown_086ACFF4 _0802B9C8: .4byte gOamBuffer _0802B9CC: .4byte gUnknown_081B0FE4 _0802B9D0: .4byte 0x000001FF _0802B9D4: .4byte 0xFFFFFE00 _0802B9D8: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802BA6C @ =gOamBuffer mov sb, r3 ldr r4, _0802BA70 @ =gUnknown_081B0FE4 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 gOamBuffer _0802BA70: .4byte gUnknown_081B0FE4 _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 @ =gUnknown_020314E0 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 @ =gUnknown_08137E14 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802BB34: .4byte 0x000005F6 _0802BB38: .4byte gUnknown_08137E14 _0802BB3C: .4byte 0x05000220 _0802BB40: .4byte 0x80000010 _0802BB44: .4byte gOamBuffer _0802BB48: .4byte 0x0000132C _0802BB4C: ldr r1, _0802BB90 @ =gUnknown_020314E0 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 @ =gUnknown_02031520 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 gUnknown_020314E0 _0802BB94: .4byte 0x000005A6 _0802BB98: .4byte 0x040000D4 _0802BB9C: .4byte gUnknown_02031520 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_02031520 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 gUnknown_02031520 _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 @ =gUnknown_020314E0 ldr r0, [r1] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r2, _0802BDB4 @ =gUnknown_020314E0 ldr r0, [r2] adds r0, #0x70 movs r1, #1 _0802BC90: strb r1, [r0] _0802BC92: ldr r3, _0802BDB4 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802BE94: ldr r0, _0802BEAC @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802BEB0: .4byte 0x0000132C _0802BEB4: ldr r6, _0802BF00 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_03005C00 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 @ =gUnknown_020314E0 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 @ =gUnknown_03005C00 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802C20C: .4byte 0x0000132C _0802C210: .4byte 0x000005A6 _0802C214: .4byte gMain _0802C218: .4byte 0x000006C4 _0802C21C: .4byte gUnknown_03005C00 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802C27C: .4byte 0x00013880 _0802C280: .4byte 0x004C4B40 _0802C284: ldr r4, _0802C2B4 @ =gUnknown_020314E0 ldr r1, [r4] ldr r0, _0802C2B8 @ =0x000F4240 _0802C28A: str r0, [r1, #0x3c] _0802C28C: ldr r7, _0802C2B4 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r0, [r3] ldr r4, _0802C390 @ =0x000005F7 adds r0, r0, r4 movs r3, #0 strb r3, [r0] ldr r7, _0802C38C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802C478: .4byte 0x00000723 _0802C47C: .4byte 0x00000721 _0802C480: .4byte 0x00000722 _0802C484: .4byte 0x00000286 _0802C488: .4byte 0x0000062A _0802C48C: ldr r7, _0802C528 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0200E498 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 gUnknown_0200E498 _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 @ =gOamBuffer 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 @ =gUnknown_0200DD68 ldrh r0, [r6] cmp r0, #0 beq _0802C94E ldr r2, _0802C98C @ =gUnknown_020314E0 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 @ =gUnknown_0847DF0C 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 @ =gOamBuffer 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 gOamBuffer _0802C96C: .4byte 0x000001FF _0802C970: .4byte 0xFFFFFE00 _0802C974: .4byte 0x0000132C _0802C978: .4byte 0xFFFFFEE3 _0802C97C: .4byte 0x00002710 _0802C980: .4byte 0x0000FDA8 _0802C984: .4byte 0x0000FED4 _0802C988: .4byte gUnknown_0200DD68 _0802C98C: .4byte gUnknown_020314E0 _0802C990: .4byte 0x00000115 _0802C994: .4byte 0x040000D4 _0802C998: .4byte gUnknown_0847DF0C _0802C99C: .4byte 0x06013580 _0802C9A0: .4byte 0x80000180 thumb_func_start sub_2C9A4 sub_2C9A4: @ 0x0802C9A4 push {r4, r5, r6, lr} ldr r6, _0802C9E0 @ =gUnknown_0200E328 ldrh r0, [r6] cmp r0, #0 beq _0802CA7A ldr r0, _0802C9E4 @ =gUnknown_020314E0 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 gUnknown_0200E328 _0802C9E4: .4byte gUnknown_020314E0 _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 @ =gUnknown_084FEF0C 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 @ =gOamBuffer 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 gUnknown_084FEF0C _0802CA88: .4byte 0x06014B00 _0802CA8C: .4byte 0x80000040 _0802CA90: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_08455E8C 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 gUnknown_08455E8C _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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gOamBuffer _0802CB94: .4byte 0x000001FF _0802CB98: .4byte 0xFFFFFE00 _0802CB9C: .4byte gUnknown_020314E0 _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 SetMatrixScale ldr r0, _0802CCB0 @ =gUnknown_020314E0 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 @ =gUnknown_0845648C 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 gUnknown_020314E0 _0802CCB4: .4byte 0x00000286 _0802CCB8: .4byte 0x040000D4 _0802CCBC: .4byte gUnknown_0845648C _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE324 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 @ =gMPlayInfo_SE1 ldr r1, _0802CD90 @ =gUnknown_086A1ABC bl MPlayStart _0802CD2A: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x3a bne _0802CD50 ldr r0, _0802CD8C @ =gMPlayInfo_SE1 ldr r1, _0802CD94 @ =gUnknown_0869F2A0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802CD78: .4byte 0x00000286 _0802CD7C: .4byte 0x040000D4 _0802CD80: .4byte gUnknown_086AE324 _0802CD84: .4byte 0x05000380 _0802CD88: .4byte 0x80000010 _0802CD8C: .4byte gMPlayInfo_SE1 _0802CD90: .4byte gUnknown_086A1ABC _0802CD94: .4byte gUnknown_0869F2A0 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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 gUnknown_020314E0 _0802CE74: .4byte gOamBuffer _0802CE78: .4byte 0xFFFFFE00 _0802CE7C: .4byte 0x000001FF thumb_func_start sub_2CE80 sub_2CE80: @ 0x0802CE80 push {r4, r5, lr} ldr r0, _0802CEC0 @ =gUnknown_020314E0 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 @ =gUnknown_08137B3C 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 gUnknown_020314E0 _0802CEC4: .4byte 0x040000D4 _0802CEC8: .4byte gMain _0802CECC: .4byte gUnknown_08137B3C _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 @ =gUnknown_08137B5C 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 gUnknown_08137B5C _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 @ =gUnknown_086AE344 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 gUnknown_086AE344 _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 @ =gUnknown_086AE344 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 gUnknown_086AE344 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802D14C: ldr r1, _0802D1E4 @ =gUnknown_086AE344 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 @ =gUnknown_083C076C 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 @ =gOamBuffer 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 gUnknown_086AE344 _0802D1E8: .4byte 0x040000D4 _0802D1EC: .4byte gUnknown_083C076C _0802D1F0: .4byte 0x060120E0 _0802D1F4: .4byte 0x800000E0 _0802D1F8: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_08158284 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 @ =gUnknown_0815A6A4 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_03005C00 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802D360: .4byte 0x040000D4 _0802D364: .4byte 0x05000200 _0802D368: .4byte 0x0000111A _0802D36C: .4byte 0x80000100 _0802D370: .4byte 0x000006DB _0802D374: .4byte 0x000005FA _0802D378: .4byte gUnknown_08158284 _0802D37C: .4byte 0x06015800 _0802D380: .4byte 0x80001200 _0802D384: .4byte gUnknown_0815A6A4 _0802D388: .4byte 0x050003C0 _0802D38C: .4byte 0x80000010 _0802D390: .4byte gMain _0802D394: .4byte gUnknown_03005C00 _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 @ =gUnknown_03005C00 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 @ =gUnknown_020314E0 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 @ =gUnknown_020028A8 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 gUnknown_03005C00 _0802D488: .4byte 0x040000D4 _0802D48C: .4byte 0x06002000 _0802D490: .4byte 0x80000400 _0802D494: .4byte gUnknown_020314E0 _0802D498: .4byte 0xFFFFFEF2 _0802D49C: .4byte gUnknown_020028A8 _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 @ =gUnknown_020028A8 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 @ =gUnknown_020028A8 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 @ =gUnknown_020028AA 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020028A8 _0802D5BC: .4byte gUnknown_020028AA _0802D5C0: .4byte 0x040000D4 _0802D5C4: .4byte 0x050003A0 _0802D5C8: .4byte 0x80000010 _0802D5CC: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802D700: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802D840: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802D96C: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802DA94: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802DC80: .4byte gOamBuffer _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 @ =gOamBuffer mov sl, r2 ldr r3, _0802DE0C @ =gUnknown_086B4112 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 @ =gUnknown_020314E0 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 @ =gUnknown_03005C00 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 @ =gUnknown_020314E0 ldr r0, [r2] movs r3, #0xe0 lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0 strh r1, [r0] _0802DD84: ldr r4, _0802DE18 @ =gUnknown_020314E0 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 @ =gUnknown_083A562C 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 @ =gUnknown_083A6E4C 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 gOamBuffer _0802DE0C: .4byte gUnknown_086B4112 _0802DE10: .4byte 0xFFFFFE00 _0802DE14: .4byte 0x000001FF _0802DE18: .4byte gUnknown_020314E0 _0802DE1C: .4byte gUnknown_03005C00 _0802DE20: .4byte 0x0000033F _0802DE24: .4byte 0x040000D4 _0802DE28: .4byte 0x06002000 _0802DE2C: .4byte 0x80000400 _0802DE30: .4byte gMain _0802DE34: .4byte 0x000005A2 _0802DE38: .4byte gUnknown_083A562C _0802DE3C: .4byte 0x06015800 _0802DE40: .4byte 0x80000C00 _0802DE44: .4byte gUnknown_083A6E4C _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 @ =gMPlayInfo_BGM 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 @ =gUnknown_020314E0 ldr r1, [r0] movs r3, #0xa7 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0x8c strh r0, [r2] ldr r2, _0802DEE4 @ =gUnknown_086A3700 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 @ =gUnknown_020314E0 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 gMPlayInfo_BGM _0802DEDC: .4byte gMain _0802DEE0: .4byte gUnknown_020314E0 _0802DEE4: .4byte gUnknown_086A3700 _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 @ =gUnknown_086AE0D0 ldr r3, _0802DF24 @ =gUnknown_020314E0 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 gUnknown_086AE0D0 _0802DF24: .4byte gUnknown_020314E0 _0802DF28: .4byte 0x00000603 _0802DF2C: .4byte 0x00000604 _0802DF30: strh r4, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r3, _0802E068 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gOamBuffer mov sb, r3 ldr r4, _0802E088 @ =gUnknown_086B4E62 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 gUnknown_020314E0 _0802E06C: .4byte 0x00000603 _0802E070: .4byte gMain _0802E074: .4byte 0x040000D4 _0802E078: .4byte 0x0000111A _0802E07C: .4byte 0x05000200 _0802E080: .4byte 0x800000C0 _0802E084: .4byte gOamBuffer _0802E088: .4byte gUnknown_086B4E62 _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 @ =gUnknown_020314E0 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 @ =gUnknown_081BCAA4 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 @ =gUnknown_081BE2C4 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 @ =gUnknown_08483D8C b _0802E150 .align 2, 0 _0802E0FC: .4byte gUnknown_020314E0 _0802E100: .4byte gMain _0802E104: .4byte 0x0000060C _0802E108: .4byte 0x0000060E _0802E10C: .4byte 0x0000FDA8 _0802E110: .4byte 0x040000D4 _0802E114: .4byte gUnknown_081BCAA4 _0802E118: .4byte 0x06015800 _0802E11C: .4byte 0x80000C00 _0802E120: .4byte gUnknown_081BE2C4 _0802E124: .4byte 0x050003C0 _0802E128: .4byte 0x80000010 _0802E12C: .4byte gUnknown_08483D8C _0802E130: ldr r1, _0802E15C @ =0x040000D4 ldr r0, _0802E160 @ =gUnknown_081BE4C4 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 @ =gUnknown_081BFCE4 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 @ =gUnknown_08488A0C _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 gUnknown_081BE4C4 _0802E164: .4byte 0x06015800 _0802E168: .4byte 0x80000C00 _0802E16C: .4byte gUnknown_081BFCE4 _0802E170: .4byte 0x050003C0 _0802E174: .4byte 0x80000010 _0802E178: .4byte gUnknown_08488A0C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802E2C0: .4byte 0x00000612 _0802E2C4: .4byte 0x0000060C _0802E2C8: .4byte 0x0000060E _0802E2CC: .4byte 0x0000060A _0802E2D0: cmp r2, #0xbd bls _0802E2D6 b _0802E41C _0802E2D6: ldr r2, _0802E300 @ =gUnknown_086AE394 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 gUnknown_086AE394 _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 @ =gUnknown_08055A68 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 @ =gUnknown_08137928 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 @ =gUnknown_086AE394 ldr r0, _0802E3DC @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_08055A68 _0802E3CC: .4byte gMain _0802E3D0: .4byte gUnknown_08137928 _0802E3D4: .4byte 0x000006D9 _0802E3D8: .4byte gUnknown_086AE394 _0802E3DC: .4byte gUnknown_020314E0 _0802E3E0: .4byte 0x0000060C _0802E3E4: .4byte 0x0000FFB0 _0802E3E8: ldr r0, _0802E40C @ =gUnknown_020314E0 ldr r0, [r0] ldr r3, _0802E410 @ =0x0000060C adds r0, r0, r3 movs r1, #0 _0802E3F2: strh r1, [r0] ldr r0, _0802E40C @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_08483D8C b _0802E51E .align 2, 0 _0802E4F8: .4byte 0x000001E9 _0802E4FC: .4byte 0x00000612 _0802E500: .4byte 0x0000060C _0802E504: .4byte gMain _0802E508: .4byte 0x040000D4 _0802E50C: .4byte gUnknown_08483D8C _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 @ =gUnknown_08488A0C _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 @ =gUnknown_086AE394 ldr r5, _0802E654 @ =gUnknown_020314E0 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 @ =gOamBuffer mov r8, r3 ldr r5, _0802E66C @ =gUnknown_086B3FE6 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 gUnknown_08488A0C _0802E648: .4byte 0x06015800 _0802E64C: .4byte 0x80000240 _0802E650: .4byte gUnknown_086AE394 _0802E654: .4byte gUnknown_020314E0 _0802E658: .4byte 0x0000060A _0802E65C: .4byte gMain _0802E660: .4byte 0x0000060C _0802E664: .4byte 0x0000060E _0802E668: .4byte gOamBuffer _0802E66C: .4byte gUnknown_086B3FE6 _0802E670: .4byte 0xFFFFFE00 _0802E674: .4byte 0x000001FF _0802E678: .4byte 0x000001E9 thumb_func_start sub_2E67C sub_2E67C: @ 0x0802E67C ldr r0, _0802E6A0 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802E754: .4byte 0x0000030E _0802E758: .4byte 0x00000322 _0802E75C: ldr r5, _0802E7B8 @ =gUnknown_086AE45A ldr r3, _0802E7BC @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_086AE45A _0802E7BC: .4byte gUnknown_020314E0 _0802E7C0: .4byte 0x00000322 _0802E7C4: .4byte 0x00000307 _0802E7C8: .4byte 0x0000030A _0802E7CC: movs r7, #4 mov sl, r7 bl _0802EFFC _0802E7D4: ldr r0, _0802E83C @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 ldr r0, [r1] adds r0, r0, r4 strh r2, [r0] movs r2, #2 mov sl, r2 _0802E886: ldr r4, _0802E8D4 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802E8D8: .4byte 0x0000132C _0802E8DC: ldr r2, _0802E908 @ =gUnknown_086AE3DC ldr r5, _0802E90C @ =gUnknown_020314E0 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 gUnknown_086AE3DC _0802E90C: .4byte gUnknown_020314E0 _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 @ =gUnknown_086AE3DC ldr r0, _0802E998 @ =gUnknown_020314E0 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 gUnknown_086AE3DC _0802E998: .4byte gUnknown_020314E0 _0802E99C: ldr r3, _0802EABC @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_08137CBC 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802EAC0: .4byte 0x0000FE98 _0802EAC4: .4byte 0x00000322 _0802EAC8: .4byte gUnknown_08137CBC _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802EB2C: ldr r1, _0802EBC4 @ =gUnknown_020314E0 ldr r0, [r1] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, _0802EBC8 @ =gUnknown_08137CBC 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802EBC8: .4byte gUnknown_08137CBC _0802EBCC: .4byte gMain _0802EBD0: .4byte 0x00000282 _0802EBD4: .4byte 0x0000072E _0802EBD8: .4byte 0x0000073C _0802EBDC: .4byte 0x0000072F _0802EBE0: .4byte 0x0000073D _0802EBE4: ldr r7, _0802EC28 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802EC2C: .4byte 0x0000F8A8 _0802EC30: .4byte 0x00000322 _0802EC34: .4byte 0x0000FCE0 _0802EC38: .4byte 0x0000031E _0802EC3C: .4byte 0x00000306 _0802EC40: ldr r6, _0802ECCC @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 ldr r1, [r2] b _0802EFBC .align 2, 0 _0802EEE4: .4byte 0x00000316 _0802EEE8: .4byte 0x0000031A _0802EEEC: .4byte 0x0000132C _0802EEF0: .4byte 0x000005F7 _0802EEF4: .4byte gUnknown_020314E0 _0802EEF8: ldr r0, _0802EF64 @ =gUnknown_020314E0 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 @ =gUnknown_08137CBC 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 gUnknown_020314E0 _0802EF68: .4byte gUnknown_08137CBC _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 @ =gMPlayInfo_SE1 ldr r1, _0802EFD4 @ =gUnknown_086A11A4 bl MPlayStart _0802EF90: ldr r4, _0802EFD8 @ =gUnknown_020314E0 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 @ =gMPlayInfo_SE1 ldr r1, _0802EFD4 @ =gUnknown_086A11A4 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 gMPlayInfo_SE1 _0802EFD4: .4byte gUnknown_086A11A4 _0802EFD8: .4byte gUnknown_020314E0 _0802EFDC: ldr r4, _0802F10C @ =gUnknown_020314E0 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 @ =gUnknown_0200DED8 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 @ =gUnknown_084BB16C 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 @ =gUnknown_020314E0 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 @ =gUnknown_0200DED8 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 @ =gUnknown_0200DED8 strh r5, [r2, #4] movs r2, #0 ldr r3, [sp] lsls r1, r3, #0x10 ldr r4, _0802F130 @ =gUnknown_086B3EF6 mov sb, r4 ldr r6, _0802F134 @ =gOamBuffer 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 @ =gUnknown_0200DED8 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 @ =gUnknown_0200DED8 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 gUnknown_020314E0 _0802F110: .4byte 0x0000030E _0802F114: .4byte 0x00000306 _0802F118: .4byte gUnknown_0200DED8 _0802F11C: .4byte 0x040000D4 _0802F120: .4byte gUnknown_084BB16C _0802F124: .4byte 0x060122A0 _0802F128: .4byte 0x80000240 _0802F12C: .4byte 0x00000322 _0802F130: .4byte gUnknown_086B3EF6 _0802F134: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 @ =gUnknown_0200E9A0 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 @ =gUnknown_086AE462 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 @ =gUnknown_083FFD8C 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 @ =gUnknown_086B4A72 mov sb, r7 ldr r0, _0802F260 @ =gOamBuffer 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 gUnknown_020314E0 _0802F244: .4byte gUnknown_0200E9A0 _0802F248: .4byte gUnknown_086AE462 _0802F24C: .4byte 0x040000D4 _0802F250: .4byte gUnknown_083FFD8C _0802F254: .4byte 0x06012720 _0802F258: .4byte 0x80000180 _0802F25C: .4byte gUnknown_086B4A72 _0802F260: .4byte gOamBuffer _0802F264: .4byte 0xFFFFFE00 _0802F268: .4byte 0x000001FF thumb_func_start sub_2F26C sub_2F26C: @ 0x0802F26C push {r4, r5, r6, lr} ldr r1, _0802F290 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_08526DCC 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 gUnknown_08526DCC _0802F3FC: .4byte 0x06015800 _0802F400: .4byte 0x80000600 _0802F404: .4byte 0x00001388 _0802F408: ldr r3, _0802F434 @ =gUnknown_086AE496 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 gUnknown_086AE496 _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 @ =gUnknown_0200C668 ldrh r0, [r6] movs r1, #0xb8 adds r1, r1, r6 mov sl, r1 cmp r0, #0 beq _0802F5EC ldr r3, _0802F704 @ =gUnknown_020314E0 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 @ =gUnknown_08512C4C 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 @ =gUnknown_086B3CA4 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gUnknown_020314E0 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 @ =gUnknown_086B3B7E mov sb, r7 ldr r1, _0802F728 @ =gOamBuffer 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 @ =gUnknown_0200E608 ldrh r0, [r6] cmp r0, #0 beq _0802F780 ldr r2, _0802F704 @ =gUnknown_020314E0 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 @ =gUnknown_084ED6CC 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 gUnknown_0200C668 _0802F704: .4byte gUnknown_020314E0 _0802F708: .4byte 0x00000379 _0802F70C: .4byte 0x040000D4 _0802F710: .4byte gUnknown_08512C4C _0802F714: .4byte 0x06012A20 _0802F718: .4byte 0x800001C0 _0802F71C: .4byte 0x0000037A _0802F720: .4byte gUnknown_086B3CA4 _0802F724: .4byte 0xFFFFFE00 _0802F728: .4byte gOamBuffer _0802F72C: .4byte 0x000001FF _0802F730: .4byte 0x0000037B _0802F734: .4byte gUnknown_086B3B7E _0802F738: .4byte gUnknown_0200E608 _0802F73C: .4byte gUnknown_084ED6CC _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_086AE4FC 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 gUnknown_086AE4FC _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 @ =gUnknown_086AE4FC ldr r7, _0802F8B4 @ =gUnknown_020314E0 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 gUnknown_086AE4FC _0802F8B4: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0802F940: .4byte 0x00000376 _0802F944: ldr r1, _0802F978 @ =gUnknown_086AE4FC 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 gUnknown_086AE4FC _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 @ =gUnknown_086AE4FC 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 gUnknown_086AE4FC _0802FA94: .4byte 0x0000036E _0802FA98: .4byte 0x0000036A _0802FA9C: movs r0, #9 strb r0, [r1] b _0802FB16 _0802FAA2: ldr r1, _0802FAD4 @ =gUnknown_086AE4FC 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 gUnknown_086AE4FC _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 @ =gUnknown_08137CD6 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 gUnknown_08137CD6 _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 @ =gUnknown_0200DF90 ldrh r0, [r6] cmp r0, #0 bne _0802FCE4 b _080300B2 _0802FCE4: ldr r3, _0802FDD0 @ =gUnknown_020314E0 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 @ =gUnknown_086AE4FC 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 @ =gUnknown_0847A40C 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 @ =gOamBuffer 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 @ =gUnknown_0847D10C 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 gUnknown_0200DF90 _0802FDD0: .4byte gUnknown_020314E0 _0802FDD4: .4byte gUnknown_086AE4FC _0802FDD8: .4byte 0x040000D4 _0802FDDC: .4byte gUnknown_0847A40C _0802FDE0: .4byte 0x06012DA0 _0802FDE4: .4byte 0x80000140 _0802FDE8: .4byte gOamBuffer _0802FDEC: .4byte 0xFFFFFDD8 _0802FDF0: .4byte 0xFFFFFE00 _0802FDF4: .4byte 0x000001FF _0802FDF8: .4byte 0x00000372 _0802FDFC: .4byte gUnknown_0847D10C _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 @ =gUnknown_0200E048 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 @ =gUnknown_086AE4FC 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 @ =gUnknown_084C1E6C 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 @ =gUnknown_0200DE20 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 @ =gUnknown_084C4B6C 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 gUnknown_0200E048 _0802FF28: .4byte 0x0000036D _0802FF2C: .4byte gUnknown_086AE4FC _0802FF30: .4byte 0x040000D4 _0802FF34: .4byte gUnknown_084C1E6C _0802FF38: .4byte 0x060130A0 _0802FF3C: .4byte 0x80000140 _0802FF40: .4byte gUnknown_0200DE20 _0802FF44: .4byte gUnknown_084C4B6C _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 @ =gUnknown_0200EA58 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 gUnknown_0200EA58 _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 @ =gUnknown_084FEA0C 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 gUnknown_084FEA0C _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_0200E100 mov sl, r0 ldr r1, _080301E0 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_0200E100 _080301E0: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _0803031C: .4byte 0x00000625 _08030320: .4byte 0x000006C6 _08030324: .4byte gMain _08030328: .4byte 0x0000F63C _0803032C: .4byte 0x040000D4 _08030330: .4byte gUnknown_086ACEF8 _08030334: .4byte 0x06015800 _08030338: .4byte 0x80001200 _0803033C: .4byte gUnknown_086ACF18 _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 @ =gUnknown_0845690C 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 @ =gUnknown_020314E0 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 @ =gOamBuffer 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 @ =gOamBuffer 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 gUnknown_0845690C _08030468: .4byte 0x060133A0 _0803046C: .4byte 0x80000100 _08030470: .4byte gUnknown_020314E0 _08030474: .4byte gOamBuffer _08030478: .4byte 0x000001FF _0803047C: .4byte 0xFFFFFE00 thumb_func_start sub_30480 sub_30480: @ 0x08030480 ldr r2, _080304C4 @ =gUnknown_020314E0 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 gUnknown_020314E0 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 @ =gUnknown_0200D918 movs r1, #0 str r1, [sp] ldr r1, _08030508 @ =gUnknown_020314E0 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 gUnknown_0200D918 _08030508: .4byte gUnknown_020314E0 _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 @ =gUnknown_086AD2EE 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 @ =gUnknown_084FD18C 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 @ =gUnknown_086AD2EE 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 gUnknown_086AD2EE _080305E0: .4byte 0x040000D4 _080305E4: .4byte gUnknown_084FD18C _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 SaveFile_SetPokedexFlags _0803065E: ldr r5, _08030784 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 @ =gUnknown_086AD2EE ldr r1, _08030784 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08030788: .4byte 0x000001ED _0803078C: .4byte gUnknown_086AD2EE _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 @ =gOamBuffer 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 @ =gOamBuffer adds r2, r2, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r6, _08030878 @ =gUnknown_086B4D4E 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 @ =gOamBuffer 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 @ =gOamBuffer 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 @ =gUnknown_0200D860 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 gOamBuffer _08030874: .4byte 0xFFFFFE00 _08030878: .4byte gUnknown_086B4D4E _0803087C: .4byte 0x000001FF _08030880: .4byte gUnknown_0200D860 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE54A 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 gUnknown_020314E0 _08030D08: .4byte 0x00000326 _08030D0C: .4byte gUnknown_086AE54A _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 @ =gUnknown_086ACEF8 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 @ =gUnknown_086ACF18 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 gUnknown_086ACEF8 _08030E14: .4byte 0x06015800 _08030E18: .4byte 0x80001200 _08030E1C: .4byte gUnknown_086ACF18 _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 @ =gUnknown_0200E1B8 ldrh r0, [r6] cmp r0, #0 bne _08030EC8 b _0803110C _08030EC8: ldr r3, _08031010 @ =gUnknown_020314E0 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 @ =gUnknown_0844F20C 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 @ =gOamBuffer 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 @ =gUnknown_0200E498 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 @ =gUnknown_0200E270 adds r6, r0, r1 lsls r5, r2, #1 ldr r7, _08031038 @ =gUnknown_086AE544 adds r0, r5, r7 ldrh r1, [r0] subs r1, r1, r2 ldr r0, _08031010 @ =gUnknown_020314E0 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 gUnknown_0200E1B8 _08031010: .4byte gUnknown_020314E0 _08031014: .4byte 0x040000D4 _08031018: .4byte gUnknown_0844F20C _0803101C: .4byte 0x060139A0 _08031020: .4byte 0x80000140 _08031024: .4byte gOamBuffer _08031028: .4byte 0xFFFFFE00 _0803102C: .4byte 0x000001FF _08031030: .4byte gUnknown_0200E498 _08031034: .4byte gUnknown_0200E270 _08031038: .4byte gUnknown_086AE544 _0803103C: movs r0, #0xc8 strh r0, [r6, #4] _08031040: ldr r7, _0803111C @ =gUnknown_020314E0 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 @ =gUnknown_084FDF8C 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 @ =gOamBuffer adds r2, r2, r1 ldr r1, _08031138 @ =gUnknown_086B3E1E 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 @ =gOamBuffer 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 @ =gOamBuffer 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 gUnknown_020314E0 _08031120: .4byte 0x0000032F _08031124: .4byte gUnknown_084FDF8C _08031128: .4byte 0x06013C20 _0803112C: .4byte 0x800000B0 _08031130: .4byte 0x00000332 _08031134: .4byte gOamBuffer _08031138: .4byte gUnknown_086B3E1E _0803113C: .4byte 0x000001FF _08031140: .4byte 0xFFFFFE00 thumb_func_start sub_31144 sub_31144: @ 0x08031144 push {r4, r5, r6, r7, lr} ldr r1, _08031190 @ =gUnknown_020314E0 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 @ =gUnknown_08137CF6 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 gUnknown_020314E0 _08031194: .4byte 0x000001A5 _08031198: .4byte gUnknown_08137CF6 _0803119C: ldr r2, _080311C8 @ =gUnknown_08137CE2 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 gUnknown_08137CE2 _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 @ =gUnknown_08137CF6 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 gUnknown_08137CF6 _08031204: ldr r4, _08031230 @ =gUnknown_08137CE2 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 gUnknown_08137CE2 _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 @ =gUnknown_08137D06 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 gUnknown_08137D06 _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 @ =gUnknown_0200E550 ldrh r0, [r6] cmp r0, #0 beq _0803145C ldr r0, _08031468 @ =gUnknown_020314E0 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 @ =gUnknown_081BC984 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 @ =gUnknown_0848108C 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 @ =gOamBuffer 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 gUnknown_0200E550 _08031468: .4byte gUnknown_020314E0 _0803146C: .4byte 0x000001AD _08031470: .4byte 0x040000D4 _08031474: .4byte gUnknown_081BC984 _08031478: .4byte 0x05000300 _0803147C: .4byte 0x80000010 _08031480: .4byte gUnknown_0848108C _08031484: .4byte 0x06014B20 _08031488: .4byte 0x80000240 _0803148C: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gMPlayInfo_BGM 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 gMPlayInfo_BGM _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 @ =gUnknown_020314E0 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 @ =gUnknown_08490A4C 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 gUnknown_020314E0 _08031600: .4byte 0x040000D4 _08031604: .4byte gUnknown_08490A4C _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 @ =gUnknown_08490A4C 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 gUnknown_08490A4C _08031660: .4byte 0x0600D900 _08031664: .4byte 0x80000220 _08031668: ldr r1, _080316D8 @ =0x040000D4 movs r2, #0 ldr r0, _080316DC @ =gUnknown_08490A4C 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 gUnknown_08490A4C _080316E0: .4byte 0x0600D900 _080316E4: .4byte 0x80000220 _080316E8: .4byte 0x00000346 _080316EC: .4byte 0x00000345 _080316F0: .4byte 0x000001ED _080316F4: ldr r6, _0803171C @ =gUnknown_086AE5A0 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 gUnknown_086AE5A0 _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 @ =gUnknown_08490A4C 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 gUnknown_08490A4C _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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08031898: .4byte 0x00000343 _0803189C: .4byte gMain _080318A0: .4byte 0x00000346 _080318A4: .4byte 0x00000345 _080318A8: ldr r6, _080318D0 @ =gUnknown_086AE5A0 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 gUnknown_086AE5A0 _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 @ =gUnknown_08490A4C 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 @ =gUnknown_020314E0 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 @ =gUnknown_020314E0 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 gUnknown_08490A4C _08031978: .4byte 0x0600D900 _0803197C: .4byte 0x80000220 _08031980: .4byte gUnknown_020314E0 _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 @ =gUnknown_086AE554 mov sl, r2 _080319B6: lsls r1, r1, #0x10 asrs r4, r1, #0x10 movs r0, #0xb8 muls r0, r4, r0 ldr r3, _08031A08 @ =gUnknown_0200D580 adds r6, r0, r3 ldrh r0, [r6] mov r8, r1 cmp r0, #0 bne _080319CC b _08031AEA _080319CC: ldr r5, _08031A0C @ =gUnknown_020314E0 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 @ =gUnknown_086AE58A 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 gUnknown_086AE554 _08031A08: .4byte gUnknown_0200D580 _08031A0C: .4byte gUnknown_020314E0 _08031A10: .4byte 0x00000355 _08031A14: .4byte gUnknown_086AE58A _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 @ =gUnknown_020314E0 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 @ =gUnknown_086AE588 adds r0, r0, r2 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 ldr r1, _08031B14 @ =gUnknown_0845A08C 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 @ =gOamBuffer 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 gUnknown_020314E0 _08031B10: .4byte gUnknown_086AE588 _08031B14: .4byte gUnknown_0845A08C _08031B18: .4byte 0x060140A0 _08031B1C: .4byte 0x80000080 _08031B20: .4byte 0x00000359 _08031B24: .4byte gOamBuffer _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 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 @ =gOamBuffer 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 gOamBuffer _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 @ =gUnknown_020314E0 ldr r0, [r1] adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 ldr r5, _08031C44 @ =gUnknown_02031520 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 gUnknown_020314E0 _08031C44: .4byte gUnknown_02031520 _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 @ =gUnknown_08137B3C 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 gUnknown_08137B3C _08031CD0: ldrb r1, [r6, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031CF0 @ =gUnknown_08137B5C 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 gUnknown_08137B5C _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 @ =gUnknown_020314E0 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 SaveFile_SetPokedexFlags _08031D20: ldr r2, _08031D88 @ =gUnknown_086A3700 ldr r1, _08031D84 @ =gUnknown_020314E0 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 gUnknown_020314E0 _08031D88: .4byte gUnknown_086A3700 _08031D8C: .4byte 0x00000281 _08031D90: ldr r2, _08031E10 @ =gUnknown_020314E0 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 gUnknown_020314E0 _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 SaveFile_SetPokedexFlags _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 @ =gUnknown_086A3700 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 @ =gUnknown_020314E0 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 SaveFile_SetPokedexFlags _08031ECE: ldr r2, _08031F1C @ =gUnknown_086A3700 ldr r1, _08031F20 @ =gUnknown_020314E0 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 gUnknown_086A3700 _08031F20: .4byte gUnknown_020314E0 _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 @ =gUnknown_020314E0 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] @ number of "catch" arrows lit up lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08031F96 movs r1, #1 @ rare mons _08031F96: movs r2, #0 lsls r1, r1, #4 str r1, [sp] ldr r5, _08031FE8 @ =gMain+0x74 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] @ current area lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 ldr r5, _08031FEC @ =gWildMonLocations 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 gUnknown_020314E0 _08031FE4: .4byte 0x0000073D _08031FE8: .4byte gMain+0x74 _08031FEC: .4byte gWildMonLocations _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 @ =gUnknown_086AE5E0 ldr r3, _080320A4 @ =gMain+0x74 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 gUnknown_086AE5E0 _080320A4: .4byte gMain+0x74 _080320A8: ldr r0, _0803218C @ =gUnknown_086AE5E0 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 @ =gUnknown_086A3700 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 @ check if mon's evolution species is < SPECIES_NONE 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 @ =gWildMonLocations 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 gUnknown_086AE5E0 _08032190: .4byte gUnknown_086A3700 _08032194: .4byte gWildMonLocations _08032198: .4byte 0x0000059C