.include "asm/macros.inc" .syntax unified .text thumb_func_start HighScoresMain HighScoresMain: @ 0x0800CE48 push {lr} ldr r1, _0800CE60 @ =0x080793E8 ldr r0, _0800CE64 @ =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 _0800CE60: .4byte 0x080793E8 _0800CE64: .4byte gMain thumb_func_start sub_CE68_Main sub_CE68_Main: @ 0x0800CE68 push {lr} ldr r1, _0800CE80 @ =0x08079424 ldr r0, _0800CE84 @ =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 _0800CE80: .4byte 0x08079424 _0800CE84: .4byte gMain thumb_func_start sub_CE88 sub_CE88: @ 0x0800CE88 push {r4, r5, r6, r7, lr} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x84 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800CF68 @ =0x0400000C ldr r3, _0800CF6C @ =0x00004006 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #3 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800CF70 @ =0x0400000E ldr r3, _0800CF74 @ =0x0000420F adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r7, _0800CF78 @ =gMain ldrh r0, [r2] strh r0, [r7, #0x16] ldr r4, _0800CF7C @ =0x040000D4 ldr r0, _0800CF80 @ =0x0809DBE0 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0800CF84 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800CF88 @ =0x080957A0 str r0, [r4] ldr r0, _0800CF8C @ =0x06004000 str r0, [r4, #4] ldr r0, _0800CF90 @ =0x80002400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800CF94 @ =0x0809AFC0 str r0, [r4] ldr r0, _0800CF98 @ =0x0600C000 str r0, [r4, #4] ldr r0, _0800CF9C @ =0x80001600 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800CFA0 @ =0x080947A0 str r0, [r4] ldr r6, _0800CFA4 @ =0x03005C00 str r6, [r4, #4] ldr r5, _0800CFA8 @ =0x80000800 str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800CFAC @ =0x08099FC0 str r0, [r4] ldr r0, _0800CFB0 @ =0x06001000 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800CFB4 @ =0x0809DDE0 str r0, [r4] ldr r0, _0800CFB8 @ =0x05000200 str r0, [r4, #4] ldr r0, _0800CFBC @ =0x80000080 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800CFC0 @ =0x0809DFE0 str r0, [r4] ldr r0, _0800CFC4 @ =0x06010000 str r0, [r4, #4] ldr r0, _0800CFC8 @ =0x80002210 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_CFD4 bl sub_EE64 str r6, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r4, _0800CFCC @ =0x0202C588 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0 bne _0800CF50 movs r0, #9 bl m4aSongNumStart _0800CF50: movs r0, #0 strh r0, [r4] bl sub_CBC bl sub_24C ldr r0, _0800CFD0 @ =0x02002858 ldrb r0, [r0, #0xa] strb r0, [r7, #3] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800CF68: .4byte 0x0400000C _0800CF6C: .4byte 0x00004006 _0800CF70: .4byte 0x0400000E _0800CF74: .4byte 0x0000420F _0800CF78: .4byte gMain _0800CF7C: .4byte 0x040000D4 _0800CF80: .4byte 0x0809DBE0 _0800CF84: .4byte 0x80000100 _0800CF88: .4byte 0x080957A0 _0800CF8C: .4byte 0x06004000 _0800CF90: .4byte 0x80002400 _0800CF94: .4byte 0x0809AFC0 _0800CF98: .4byte 0x0600C000 _0800CF9C: .4byte 0x80001600 _0800CFA0: .4byte 0x080947A0 _0800CFA4: .4byte 0x03005C00 _0800CFA8: .4byte 0x80000800 _0800CFAC: .4byte 0x08099FC0 _0800CFB0: .4byte 0x06001000 _0800CFB4: .4byte 0x0809DDE0 _0800CFB8: .4byte 0x05000200 _0800CFBC: .4byte 0x80000080 _0800CFC0: .4byte 0x0809DFE0 _0800CFC4: .4byte 0x06010000 _0800CFC8: .4byte 0x80002210 _0800CFCC: .4byte 0x0202C588 _0800CFD0: .4byte 0x02002858 thumb_func_start sub_CFD4 sub_CFD4: @ 0x0800CFD4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r7, #0 ldr r0, _0800D0B0 @ =0x02002858 mov r8, r0 ldr r1, _0800D0B4 @ =0x0202C610 mov sl, r1 ldr r2, _0800D0B8 @ =0x0200B134 mov sb, r2 movs r3, #0 mov ip, r3 _0800CFF0: movs r3, #0 mov r4, ip movs r6, #0 _0800CFF6: adds r0, r4, #0 adds r0, #0xe4 adds r0, r6, r0 mov r1, sb adds r5, r0, r1 adds r0, r6, r4 mov r1, sl adds r2, r0, r1 movs r1, #5 _0800D008: ldm r5!, {r0} stm r2!, {r0} subs r1, #1 cmp r1, #0 bge _0800D008 adds r6, #0x18 adds r3, #1 cmp r3, #7 ble _0800CFF6 movs r2, #0xc0 add ip, r2 adds r7, #1 cmp r7, #1 ble _0800CFF0 movs r7, #0 ldr r6, _0800D0BC @ =0x0202C550 ldr r5, _0800D0B4 @ =0x0202C610 _0800D02A: lsls r0, r7, #1 adds r4, r7, #1 adds r0, r0, r7 lsls r1, r0, #3 lsls r0, r0, #6 adds r2, r0, r5 adds r1, r1, r6 movs r3, #5 _0800D03A: ldm r2!, {r0} stm r1!, {r0} subs r3, #1 cmp r3, #0 bge _0800D03A adds r7, r4, #0 cmp r7, #1 ble _0800D02A movs r3, #0 movs r2, #0 mov r4, r8 strh r2, [r4, #0x10] strh r2, [r4, #0x12] strh r2, [r4, #0x14] strh r2, [r4, #0x18] strh r2, [r4, #0x1a] strh r2, [r4, #0x1e] strh r2, [r4, #0x1c] strh r2, [r4, #0x20] strh r2, [r4, #0x22] mov r0, r8 adds r0, #0x25 strb r3, [r0] mov r1, r8 adds r1, #0x26 movs r0, #1 strb r0, [r1] ldr r1, _0800D0C0 @ =0x0201B178 strb r3, [r1] ldr r4, _0800D0C4 @ =0x0202BEBC strb r0, [r4] ldr r0, _0800D0C8 @ =0x0201C18C strb r3, [r0] ldr r1, _0800D0CC @ =0x02002884 strb r3, [r1] ldr r4, _0800D0D0 @ =0x02002885 strb r3, [r4] ldr r1, _0800D0D4 @ =0x0202C588 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #1 beq _0800D090 b _0800D1C0 _0800D090: ldr r0, _0800D0D8 @ =gMain ldr r1, [r0, #0x5c] mov r4, r8 str r1, [r4] ldr r1, [r0, #0x58] str r1, [r4, #4] ldrb r1, [r0, #4] cmp r1, #1 bne _0800D0E4 strb r1, [r4, #0xb] movs r0, #0xf0 ldr r2, _0800D0DC @ =0x02002882 strh r0, [r2] ldr r3, _0800D0E0 @ =0x02002880 strh r1, [r3] b _0800D0F6 .align 2, 0 _0800D0B0: .4byte 0x02002858 _0800D0B4: .4byte 0x0202C610 _0800D0B8: .4byte 0x0200B134 _0800D0BC: .4byte 0x0202C550 _0800D0C0: .4byte 0x0201B178 _0800D0C4: .4byte 0x0202BEBC _0800D0C8: .4byte 0x0201C18C _0800D0CC: .4byte 0x02002884 _0800D0D0: .4byte 0x02002885 _0800D0D4: .4byte 0x0202C588 _0800D0D8: .4byte gMain _0800D0DC: .4byte 0x02002882 _0800D0E0: .4byte 0x02002880 _0800D0E4: mov r4, r8 strb r3, [r4, #0xb] ldr r0, _0800D178 @ =0x02002882 strh r2, [r0] movs r1, #1 rsbs r1, r1, #0 adds r0, r1, #0 ldr r2, _0800D17C @ =0x02002880 strh r0, [r2] _0800D0F6: ldr r4, _0800D180 @ =0x02002858 ldr r0, [r4] ldr r1, [r4, #4] ldrb r2, [r4, #0xb] bl sub_F3DC adds r3, r0, #0 str r3, [r4, #0xc] movs r0, #1 rsbs r0, r0, #0 cmp r3, r0 beq _0800D14A ldr r0, [r4] ldr r1, [r4, #4] ldrb r2, [r4, #0xb] bl sub_F434 movs r7, #0 ldr r5, _0800D184 @ =0x0202C610 adds r3, r4, #0 ldr r6, _0800D188 @ =0x0201A500 adds r4, r6, #0 _0800D122: lsls r2, r7, #2 ldr r1, [r3, #0xc] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r2, r2, r0 ldrb r1, [r3, #0xb] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 adds r2, r2, r0 adds r2, r2, r5 ldm r4!, {r0} str r0, [r2] adds r7, #1 cmp r7, #3 ble _0800D122 ldr r1, _0800D180 @ =0x02002858 ldr r0, [r6] strh r0, [r1, #0x16] _0800D14A: bl sub_FD20 lsls r0, r0, #0x18 asrs r3, r0, #0x18 cmp r3, #1 bne _0800D1A8 ldr r0, _0800D18C @ =0x0202BEB0 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 bne _0800D1A0 ldr r0, _0800D190 @ =0x0201C18C strb r3, [r0] ldr r1, _0800D194 @ =0x0201A4B8 movs r0, #0xb8 strh r0, [r1] ldr r0, _0800D198 @ =0x0202C580 strb r2, [r0] ldr r0, _0800D19C @ =0x0202BED4 strb r2, [r0] ldr r0, _0800D180 @ =0x02002858 strb r3, [r0, #0xa] b _0800D1DA .align 2, 0 _0800D178: .4byte 0x02002882 _0800D17C: .4byte 0x02002880 _0800D180: .4byte 0x02002858 _0800D184: .4byte 0x0202C610 _0800D188: .4byte 0x0201A500 _0800D18C: .4byte 0x0202BEB0 _0800D190: .4byte 0x0201C18C _0800D194: .4byte 0x0201A4B8 _0800D198: .4byte 0x0202C580 _0800D19C: .4byte 0x0202BED4 _0800D1A0: ldr r1, _0800D1A4 @ =0x0201C18C b _0800D1AA .align 2, 0 _0800D1A4: .4byte 0x0201C18C _0800D1A8: ldr r1, _0800D1B8 @ =0x0202BEB0 _0800D1AA: movs r0, #0 strb r0, [r1] ldr r1, _0800D1BC @ =0x02002858 movs r0, #2 strb r0, [r1, #0xa] b _0800D1DA .align 2, 0 _0800D1B8: .4byte 0x0202BEB0 _0800D1BC: .4byte 0x02002858 _0800D1C0: mov r4, r8 strb r3, [r4, #0xb] ldr r0, _0800D200 @ =0x02002882 strh r2, [r0] movs r1, #1 rsbs r1, r1, #0 adds r0, r1, #0 ldr r2, _0800D204 @ =0x02002880 strh r0, [r2] bl sub_E464 movs r0, #3 strb r0, [r4, #0xa] _0800D1DA: ldr r2, _0800D208 @ =gMain ldr r0, _0800D200 @ =0x02002882 ldrh r1, [r0] movs r3, #0xbd lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] movs r4, #0xbc lsls r4, r4, #2 adds r0, r2, r4 strh r1, [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 _0800D200: .4byte 0x02002882 _0800D204: .4byte 0x02002880 _0800D208: .4byte gMain thumb_func_start sub_D20C sub_D20C: @ 0x0800D20C push {r4, r5, lr} ldr r4, _0800D224 @ =0x0202BED4 movs r0, #0 ldrsb r0, [r4, r0] adds r5, r4, #0 cmp r0, #1 beq _0800D248 cmp r0, #1 bgt _0800D228 cmp r0, #0 beq _0800D232 b _0800D2E0 .align 2, 0 _0800D224: .4byte 0x0202BED4 _0800D228: cmp r0, #2 beq _0800D290 cmp r0, #3 beq _0800D2B4 b _0800D2E0 _0800D232: ldr r0, _0800D244 @ =0x02002858 movs r1, #0x18 ldrsh r0, [r0, r1] cmp r0, #3 bne _0800D2E0 movs r0, #0x11 bl m4aSongNumStart b _0800D2A2 .align 2, 0 _0800D244: .4byte 0x02002858 _0800D248: ldr r1, _0800D284 @ =0x0201A4B8 ldrh r0, [r1] subs r0, #1 strh r0, [r1] ldr r0, _0800D288 @ =0x02002858 ldrh r2, [r0, #0x18] movs r0, #3 ands r2, r0 cmp r2, #0 bne _0800D26E ldr r3, _0800D28C @ =0x0202C580 ldrb r0, [r3] adds r0, #1 strb r0, [r3] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 ble _0800D26E strb r2, [r3] _0800D26E: movs r2, #0 ldrsh r0, [r1, r2] cmp r0, #0x50 bne _0800D2E0 ldr r1, _0800D28C @ =0x0202C580 movs r0, #0 strb r0, [r1] ldrb r0, [r5] adds r0, #1 strb r0, [r5] b _0800D2E0 .align 2, 0 _0800D284: .4byte 0x0201A4B8 _0800D288: .4byte 0x02002858 _0800D28C: .4byte 0x0202C580 _0800D290: ldr r0, _0800D2AC @ =gMain ldrh r1, [r0, #0x18] movs r0, #3 ands r0, r1 cmp r0, #0 beq _0800D2E0 ldr r1, _0800D2B0 @ =0x0202C580 movs r0, #0 strb r0, [r1] _0800D2A2: ldrb r0, [r4] adds r0, #1 strb r0, [r4] b _0800D2E0 .align 2, 0 _0800D2AC: .4byte gMain _0800D2B0: .4byte 0x0202C580 _0800D2B4: ldr r0, _0800D2F4 @ =0x0201A4B8 ldrh r1, [r0] subs r1, #4 strh r1, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 movs r0, #0x18 rsbs r0, r0, #0 cmp r1, r0 bge _0800D2E0 ldr r1, _0800D2F8 @ =0x02002858 movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] ldr r1, _0800D2FC @ =0x0202BEB0 movs r0, #1 strb r0, [r1] ldr r0, _0800D300 @ =0x0201C18C strb r2, [r0] ldr r1, _0800D304 @ =gMain movs r0, #2 strb r0, [r1, #3] _0800D2E0: ldr r1, _0800D2F8 @ =0x02002858 ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] bl sub_E860 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800D2F4: .4byte 0x0201A4B8 _0800D2F8: .4byte 0x02002858 _0800D2FC: .4byte 0x0202BEB0 _0800D300: .4byte 0x0201C18C _0800D304: .4byte gMain thumb_func_start sub_D308 sub_D308: @ 0x0800D308 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #8 ldr r4, _0800D32C @ =0x02002858 movs r0, #0x1a ldrsh r2, [r4, r0] cmp r2, #0 bne _0800D35E ldr r1, [r4, #0xc] cmp r1, #0 bne _0800D330 movs r0, #0xa5 lsls r0, r0, #1 bl m4aSongNumStart movs r0, #0xa0 b _0800D35C .align 2, 0 _0800D32C: .4byte 0x02002858 _0800D330: movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _0800D354 ldr r0, _0800D34C @ =0x000003E7 strh r0, [r4, #0x18] strh r2, [r4, #0x1a] movs r0, #9 bl m4aSongNumStart ldr r1, _0800D350 @ =gMain movs r0, #3 strb r0, [r1, #3] b _0800D35E .align 2, 0 _0800D34C: .4byte 0x000003E7 _0800D350: .4byte gMain _0800D354: ldr r0, _0800D3C8 @ =0x0000014B bl m4aSongNumStart movs r0, #0x5a _0800D35C: strh r0, [r4, #0x18] _0800D35E: ldr r7, _0800D3CC @ =0x02002858 ldrh r0, [r7, #0x14] adds r0, #1 movs r1, #0 strh r0, [r7, #0x14] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800D3FC strh r1, [r7, #0x14] movs r2, #0x12 ldrsh r0, [r7, r2] cmp r0, #0 bne _0800D3D4 movs r0, #1 strh r0, [r7, #0x12] ldrb r2, [r7, #0xb] lsls r0, r2, #1 movs r4, #6 subs r0, r4, r0 ldr r3, _0800D3D0 @ =0x08079870 mov r8, r3 ldr r1, [r7, #0xc] lsls r1, r1, #2 add r1, r8 lsls r2, r2, #5 ldr r1, [r1] adds r1, r1, r2 movs r6, #4 str r6, [sp] movs r5, #2 str r5, [sp, #4] movs r2, #0 movs r3, #0x15 bl sub_10618 ldrb r1, [r7, #0xb] lsls r0, r1, #1 subs r4, r4, r0 ldr r0, [r7, #0xc] lsls r0, r0, #2 add r0, r8 lsls r1, r1, #5 ldr r3, [r0] adds r3, r3, r1 str r6, [sp] str r5, [sp, #4] movs r0, #0 movs r1, #0x17 adds r2, r4, #0 bl sub_10618 b _0800D3FC .align 2, 0 _0800D3C8: .4byte 0x0000014B _0800D3CC: .4byte 0x02002858 _0800D3D0: .4byte 0x08079870 _0800D3D4: strh r1, [r7, #0x12] ldrb r1, [r7, #0xb] lsls r0, r1, #1 movs r2, #6 subs r2, r2, r0 ldr r3, _0800D4A0 @ =0x08079870 ldr r0, [r7, #0xc] lsls r0, r0, #2 adds r0, r0, r3 lsls r1, r1, #5 ldr r3, [r0] adds r3, r3, r1 movs r0, #4 str r0, [sp] movs r0, #2 str r0, [sp, #4] movs r0, #0 movs r1, #0x15 bl sub_10618 _0800D3FC: ldr r4, _0800D4A4 @ =0x02002858 ldrh r0, [r4, #0x1e] adds r0, #1 movs r5, #0 strh r0, [r4, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800D42C strh r5, [r4, #0x1e] ldrb r0, [r4, #0xb] ldr r1, [r4, #0xc] movs r3, #0x1c ldrsh r2, [r4, r3] bl sub_F8B0 ldrh r0, [r4, #0x1c] adds r0, #1 strh r0, [r4, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800D42C strh r5, [r4, #0x1c] _0800D42C: ldr r4, _0800D4A4 @ =0x02002858 ldrh r0, [r4, #0x1a] adds r0, #1 movs r2, #0 strh r0, [r4, #0x1a] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r3, #0x18 ldrsh r1, [r4, r3] cmp r0, r1 ble _0800D482 strh r2, [r4, #0x1a] movs r1, #0x12 ldrsh r0, [r4, r1] cmp r0, #1 bne _0800D476 strh r2, [r4, #0x12] strh r2, [r4, #0x14] ldrb r1, [r4, #0xb] lsls r0, r1, #1 movs r2, #6 subs r2, r2, r0 ldr r3, _0800D4A0 @ =0x08079870 ldr r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r3 lsls r1, r1, #5 ldr r3, [r0] adds r3, r3, r1 movs r0, #4 str r0, [sp] movs r0, #2 str r0, [sp, #4] movs r0, #0 movs r1, #0x15 bl sub_10618 _0800D476: movs r0, #9 bl m4aSongNumStart ldr r1, _0800D4A8 @ =gMain movs r0, #4 strb r0, [r1, #3] _0800D482: ldr r1, _0800D4AC @ =0x040000D4 ldr r0, _0800D4B0 @ =0x03005C00 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800D4B4 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] add sp, #8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800D4A0: .4byte 0x08079870 _0800D4A4: .4byte 0x02002858 _0800D4A8: .4byte gMain _0800D4AC: .4byte 0x040000D4 _0800D4B0: .4byte 0x03005C00 _0800D4B4: .4byte 0x80000800 thumb_func_start sub_D4B8 sub_D4B8: @ 0x0800D4B8 push {r4, lr} bl sub_E464 ldr r4, _0800D500 @ =gMain ldr r0, [r4, #0x4c] movs r1, #0xc bl __umodsi3 cmp r0, #0 bne _0800D4E0 ldr r1, _0800D504 @ =0x02002858 ldrh r2, [r1, #0x1a] movs r0, #1 subs r0, r0, r2 strh r0, [r1, #0x1a] adds r1, #0x25 ldrb r2, [r1] movs r0, #1 subs r0, r0, r2 strb r0, [r1] _0800D4E0: ldrh r1, [r4, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0800D50C ldr r0, _0800D508 @ =0x02002880 movs r2, #0 ldrsh r1, [r0, r2] movs r2, #1 rsbs r2, r2, #0 adds r3, r0, #0 cmp r1, r2 beq _0800D522 strh r2, [r3] b _0800D522 .align 2, 0 _0800D500: .4byte gMain _0800D504: .4byte 0x02002858 _0800D508: .4byte 0x02002880 _0800D50C: movs r0, #0x10 ands r0, r1 ldr r3, _0800D53C @ =0x02002880 cmp r0, #0 beq _0800D522 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #1 beq _0800D522 movs r0, #1 strh r0, [r3] _0800D522: movs r2, #0 ldrsh r0, [r3, r2] cmp r0, #0 ble _0800D544 ldr r1, _0800D540 @ =0x02002882 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0xef bgt _0800D55A adds r0, r2, #0 adds r0, #8 b _0800D558 .align 2, 0 _0800D53C: .4byte 0x02002880 _0800D540: .4byte 0x02002882 _0800D544: cmp r0, #0 bge _0800D55A ldr r1, _0800D608 @ =0x02002882 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _0800D55A adds r0, r2, #0 subs r0, #8 _0800D558: strh r0, [r1] _0800D55A: ldr r4, _0800D60C @ =gMain ldrh r1, [r4, #0x18] movs r0, #3 ands r0, r1 cmp r0, #0 beq _0800D570 movs r0, #0x66 bl m4aSongNumStart movs r0, #0xb strb r0, [r4, #3] _0800D570: ldrh r1, [r4, #0x18] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0800D59E ldr r0, _0800D608 @ =0x02002882 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 beq _0800D588 cmp r0, #0xf0 bne _0800D59E _0800D588: movs r0, #0x68 bl m4aSongNumStart ldr r1, _0800D610 @ =0x0201B178 movs r0, #1 strb r0, [r1] ldr r1, _0800D614 @ =0x0202BEBC movs r0, #0 strb r0, [r1] movs r0, #5 strb r0, [r4, #3] _0800D59E: ldr r3, _0800D60C @ =gMain ldrh r2, [r3, #0x1c] movs r1, #0x88 lsls r1, r1, #2 adds r0, r1, #0 ands r0, r2 adds r4, r3, #0 cmp r0, r1 bne _0800D620 ldrh r1, [r4, #0x18] movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _0800D63E ldr r0, _0800D608 @ =0x02002882 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 beq _0800D5CA cmp r0, #0xf0 bne _0800D5FC _0800D5CA: ldr r2, _0800D618 @ =0x02002884 movs r0, #0x28 strb r0, [r2] ldr r1, _0800D61C @ =0x02002885 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0800D5FC movs r0, #0 strb r0, [r1] strb r0, [r2] movs r0, #0x68 bl m4aSongNumStart ldr r1, _0800D610 @ =0x0201B178 movs r0, #1 strb r0, [r1] ldr r1, _0800D614 @ =0x0202BEBC movs r0, #4 strb r0, [r1] movs r0, #0xa strb r0, [r4, #3] _0800D5FC: ldr r2, _0800D618 @ =0x02002884 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] ldr r4, _0800D60C @ =gMain b _0800D628 .align 2, 0 _0800D608: .4byte 0x02002882 _0800D60C: .4byte gMain _0800D610: .4byte 0x0201B178 _0800D614: .4byte 0x0202BEBC _0800D618: .4byte 0x02002884 _0800D61C: .4byte 0x02002885 _0800D620: ldr r2, _0800D658 @ =0x02002884 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] _0800D628: cmp r0, #0 ble _0800D63E subs r0, r1, #1 strb r0, [r2] lsls r0, r0, #0x18 cmp r0, #0 bgt _0800D63E movs r1, #0 strb r1, [r2] ldr r0, _0800D65C @ =0x02002885 strb r1, [r0] _0800D63E: ldr r0, _0800D660 @ =0x02002882 ldrh r1, [r0] movs r3, #0xbd lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] movs r2, #0xbc lsls r2, r2, #2 adds r0, r4, r2 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800D658: .4byte 0x02002884 _0800D65C: .4byte 0x02002885 _0800D660: .4byte 0x02002882 thumb_func_start sub_D664 sub_D664: @ 0x0800D664 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} bl sub_E3A8 ldr r4, _0800D6E8 @ =0x02002858 ldrh r0, [r4, #0x14] adds r0, #1 movs r5, #0 strh r0, [r4, #0x14] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc ble _0800D68C strh r5, [r4, #0x14] ldrh r1, [r4, #0x12] movs r0, #1 subs r0, r0, r1 strh r0, [r4, #0x12] _0800D68C: ldrh r0, [r4, #0x1e] adds r0, #1 strh r0, [r4, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800D6B8 strh r5, [r4, #0x1e] ldrb r0, [r4, #0xb] ldr r1, [r4, #0xc] movs r3, #0x1c ldrsh r2, [r4, r3] bl sub_F8B0 ldrh r0, [r4, #0x1c] adds r0, #1 strh r0, [r4, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800D6B8 strh r5, [r4, #0x1c] _0800D6B8: ldr r0, _0800D6EC @ =gMain ldrh r1, [r0, #0x1c] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0800D6F0 ldr r4, _0800D6E8 @ =0x02002858 movs r7, #0x20 ldrsh r0, [r4, r7] cmp r0, #0 bne _0800D72C movs r0, #0x6b bl m4aSongNumStart ldrh r0, [r4, #0x16] subs r0, #1 strh r0, [r4, #0x16] lsls r0, r0, #0x10 cmp r0, #0 bge _0800D718 movs r0, #0x29 strh r0, [r4, #0x16] b _0800D718 .align 2, 0 _0800D6E8: .4byte 0x02002858 _0800D6EC: .4byte gMain _0800D6F0: movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0800D72C ldr r4, _0800D788 @ =0x02002858 movs r7, #0x20 ldrsh r5, [r4, r7] cmp r5, #0 bne _0800D72C movs r0, #0x6b bl m4aSongNumStart ldrh r0, [r4, #0x16] adds r0, #1 strh r0, [r4, #0x16] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x29 ble _0800D718 strh r5, [r4, #0x16] _0800D718: movs r1, #0x16 ldrsh r0, [r4, r1] ldr r1, [r4, #0xc] movs r3, #0x10 ldrsh r2, [r4, r3] ldrb r3, [r4, #0xb] bl sub_F670 movs r0, #9 strh r0, [r4, #0x20] _0800D72C: ldr r0, _0800D78C @ =gMain ldrh r1, [r0, #0x18] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0800D794 ldr r4, _0800D788 @ =0x02002858 movs r7, #0x10 ldrsh r0, [r4, r7] cmp r0, #3 beq _0800D7A6 movs r0, #0x67 bl m4aSongNumStart movs r0, #1 strh r0, [r4, #0x12] movs r1, #0x16 ldrsh r0, [r4, r1] ldr r1, [r4, #0xc] movs r3, #0x10 ldrsh r2, [r4, r3] ldrb r3, [r4, #0xb] bl sub_F670 ldr r3, _0800D790 @ =0x0202C610 movs r7, #0x10 ldrsh r1, [r4, r7] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r3 movs r2, #0x16 ldrsh r0, [r4, r2] str r0, [r1] ldrh r0, [r4, #0x10] adds r0, #1 b _0800D7F6 .align 2, 0 _0800D788: .4byte 0x02002858 _0800D78C: .4byte gMain _0800D790: .4byte 0x0202C610 _0800D794: movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0800D818 ldr r4, _0800D7B0 @ =0x02002858 movs r1, #0x10 ldrsh r0, [r4, r1] cmp r0, #0 bne _0800D7B4 _0800D7A6: movs r0, #0x8a bl m4aSongNumStart b _0800D818 .align 2, 0 _0800D7B0: .4byte 0x02002858 _0800D7B4: movs r0, #0x67 bl m4aSongNumStart movs r0, #1 strh r0, [r4, #0x12] movs r2, #0x16 ldrsh r0, [r4, r2] ldr r1, [r4, #0xc] movs r3, #0x10 ldrsh r2, [r4, r3] ldrb r3, [r4, #0xb] bl sub_F670 ldr r3, _0800D8F8 @ =0x0202C610 movs r7, #0x10 ldrsh r1, [r4, r7] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r3 movs r2, #0x16 ldrsh r0, [r4, r2] str r0, [r1] ldrh r0, [r4, #0x10] subs r0, #1 _0800D7F6: strh r0, [r4, #0x10] movs r7, #0x10 ldrsh r1, [r4, r7] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r3 ldr r0, [r1] strh r0, [r4, #0x16] _0800D818: ldr r0, _0800D8FC @ =gMain ldrh r1, [r0, #0x18] movs r5, #1 adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0800D828 b _0800D936 _0800D828: ldr r4, _0800D900 @ =0x02002858 strh r5, [r4, #0x12] movs r1, #0x16 ldrsh r0, [r4, r1] ldr r1, [r4, #0xc] movs r3, #0x10 ldrsh r2, [r4, r3] ldrb r3, [r4, #0xb] bl sub_F670 ldr r5, _0800D8F8 @ =0x0202C610 movs r7, #0x10 ldrsh r1, [r4, r7] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r5 movs r2, #0x16 ldrsh r0, [r4, r2] str r0, [r1] movs r3, #0x10 ldrsh r0, [r4, r3] cmp r0, #3 bne _0800D90C movs r0, #0x65 bl m4aSongNumStart ldrb r0, [r4, #0xb] ldr r1, [r4, #0xc] movs r7, #0x1c ldrsh r2, [r4, r7] bl sub_FAE8 movs r3, #0 adds r6, r5, #0 ldr r5, _0800D904 @ =0x0201A500 _0800D880: lsls r2, r3, #2 ldr r1, [r4, #0xc] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r2, r2, r0 ldrb r1, [r4, #0xb] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 adds r2, r2, r0 adds r2, r2, r6 ldr r0, [r2] stm r5!, {r0} adds r3, #1 cmp r3, #3 ble _0800D880 movs r3, #0 ldr r0, _0800D908 @ =0x0200B134 mov r8, r0 ldr r1, _0800D8F8 @ =0x0202C610 mov ip, r1 _0800D8AC: movs r1, #0 adds r2, r3, #1 mov sb, r2 lsls r0, r3, #1 adds r0, r0, r3 lsls r5, r0, #6 adds r6, r5, #0 adds r6, #0xe4 _0800D8BC: lsls r0, r1, #1 adds r4, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r1, r0, r6 mov r3, r8 adds r2, r1, r3 adds r3, r0, r5 movs r1, #5 _0800D8CE: mov r7, ip adds r0, r3, r7 ldr r0, [r0] stm r2!, {r0} adds r3, #4 subs r1, #1 cmp r1, #0 bge _0800D8CE adds r1, r4, #0 cmp r1, #7 ble _0800D8BC mov r3, sb cmp r3, #1 ble _0800D8AC bl sub_52B30 ldr r1, _0800D8FC @ =gMain movs r0, #3 strb r0, [r1, #3] b _0800D9B6 .align 2, 0 _0800D8F8: .4byte 0x0202C610 _0800D8FC: .4byte gMain _0800D900: .4byte 0x02002858 _0800D904: .4byte 0x0201A500 _0800D908: .4byte 0x0200B134 _0800D90C: movs r0, #0x6a bl m4aSongNumStart ldrh r0, [r4, #0x10] adds r0, #1 strh r0, [r4, #0x10] movs r0, #0x10 ldrsh r1, [r4, r0] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r5 b _0800D9B2 _0800D936: movs r0, #2 ands r0, r1 cmp r0, #0 beq _0800D9B6 ldr r4, _0800D950 @ =0x02002858 movs r1, #0x10 ldrsh r0, [r4, r1] cmp r0, #0 bne _0800D954 movs r0, #0x8a bl m4aSongNumStart b _0800D9B6 .align 2, 0 _0800D950: .4byte 0x02002858 _0800D954: movs r0, #0x6a bl m4aSongNumStart strh r5, [r4, #0x12] movs r2, #0x16 ldrsh r0, [r4, r2] ldr r1, [r4, #0xc] movs r3, #0x10 ldrsh r2, [r4, r3] ldrb r3, [r4, #0xb] bl sub_F670 ldr r3, _0800D9E4 @ =0x0202C610 movs r7, #0x10 ldrsh r1, [r4, r7] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r3 movs r2, #0x16 ldrsh r0, [r4, r2] str r0, [r1] ldrh r0, [r4, #0x10] subs r0, #1 strh r0, [r4, #0x10] movs r7, #0x10 ldrsh r1, [r4, r7] lsls r1, r1, #2 ldr r2, [r4, #0xc] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldrb r2, [r4, #0xb] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r1, r0 adds r1, r1, r3 _0800D9B2: ldr r0, [r1] strh r0, [r4, #0x16] _0800D9B6: ldr r1, _0800D9E8 @ =0x040000D4 ldr r0, _0800D9EC @ =0x03005C00 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800D9F0 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0800D9F4 @ =0x02002858 ldrh r2, [r1, #0x20] movs r3, #0x20 ldrsh r0, [r1, r3] cmp r0, #0 ble _0800D9D8 subs r0, r2, #1 strh r0, [r1, #0x20] _0800D9D8: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800D9E4: .4byte 0x0202C610 _0800D9E8: .4byte 0x040000D4 _0800D9EC: .4byte 0x03005C00 _0800D9F0: .4byte 0x80000800 _0800D9F4: .4byte 0x02002858 thumb_func_start sub_D9F8 sub_D9F8: @ 0x0800D9F8 push {lr} bl sub_19B4 bl sub_E908 ldr r1, _0800DA18 @ =0x0201B124 movs r0, #0 strb r0, [r1] bl sub_E464 ldr r1, _0800DA1C @ =gMain movs r0, #6 strb r0, [r1, #3] pop {r0} bx r0 .align 2, 0 _0800DA18: .4byte 0x0201B124 _0800DA1C: .4byte gMain thumb_func_start sub_DA20 sub_DA20: @ 0x0800DA20 push {r4, r5, lr} bl sub_E464 ldr r4, _0800DA4C @ =gMain ldrh r1, [r4, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0800DA58 movs r0, #0x66 bl m4aSongNumStart ldr r0, _0800DA50 @ =0x0201B178 movs r1, #0 strb r1, [r0] ldr r0, _0800DA54 @ =0x0202BEBC strb r1, [r0] bl sub_2568 movs r0, #3 strb r0, [r4, #3] b _0800DB2E .align 2, 0 _0800DA4C: .4byte gMain _0800DA50: .4byte 0x0201B178 _0800DA54: .4byte 0x0202BEBC _0800DA58: ldr r5, _0800DAB8 @ =0x0202ADD0 ldr r0, _0800DABC @ =0x0202BEC8 ldr r1, _0800DAC0 @ =0x0202C5F0 ldr r2, _0800DAC4 @ =0x0201A4D0 bl sub_1B04 str r0, [r5] ldr r1, _0800DAC8 @ =0x0202BDF0 movs r3, #3 ands r3, r0 str r3, [r1] ldr r2, _0800DACC @ =0x0201C1AC movs r1, #0x1c ands r1, r0 lsrs r1, r1, #2 strb r1, [r2] ldr r2, _0800DAD0 @ =0x0202ADDC movs r1, #0xe0 lsls r1, r1, #4 ands r1, r0 lsrs r1, r1, #9 strb r1, [r2] movs r1, #0x40 ands r1, r0 cmp r1, #0 beq _0800DB2E cmp r3, #1 bhi _0800DB2E bl sub_E970 ldr r0, [r5] movs r1, #0x80 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _0800DAE8 bl sub_E94C lsls r0, r0, #0x10 asrs r1, r0, #0x10 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _0800DAD4 movs r0, #8 strb r0, [r4, #3] b _0800DAE8 .align 2, 0 _0800DAB8: .4byte 0x0202ADD0 _0800DABC: .4byte 0x0202BEC8 _0800DAC0: .4byte 0x0202C5F0 _0800DAC4: .4byte 0x0201A4D0 _0800DAC8: .4byte 0x0202BDF0 _0800DACC: .4byte 0x0201C1AC _0800DAD0: .4byte 0x0202ADDC _0800DAD4: cmp r1, #1 bne _0800DAE8 ldr r0, _0800DB34 @ =0x0202BEBC movs r1, #2 strb r1, [r0] movs r0, #7 strb r0, [r4, #3] movs r0, #0x8a bl m4aSongNumStart _0800DAE8: ldr r1, _0800DB38 @ =0x0201A510 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r0, _0800DB3C @ =0x0202ADD0 ldr r0, [r0] movs r1, #0xfe lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 beq _0800DB2E ldr r0, _0800DB40 @ =0x0202ADE4 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _0800DB2E ldr r1, _0800DB44 @ =0x0201A444 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _0800DB2E ldr r1, _0800DB34 @ =0x0202BEBC movs r0, #2 strb r0, [r1] ldr r1, _0800DB48 @ =gMain movs r0, #7 strb r0, [r1, #3] movs r0, #0x8a bl m4aSongNumStart _0800DB2E: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800DB34: .4byte 0x0202BEBC _0800DB38: .4byte 0x0201A510 _0800DB3C: .4byte 0x0202ADD0 _0800DB40: .4byte 0x0202ADE4 _0800DB44: .4byte 0x0201A444 _0800DB48: .4byte gMain thumb_func_start sub_DB4C sub_DB4C: @ 0x0800DB4C ldr r1, _0800DB68 @ =0x0201A444 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800DB66 movs r0, #0 strh r0, [r1] ldr r1, _0800DB6C @ =gMain movs r0, #5 strb r0, [r1, #3] _0800DB66: bx lr .align 2, 0 _0800DB68: .4byte 0x0201A444 _0800DB6C: .4byte gMain thumb_func_start sub_DB70 sub_DB70: @ 0x0800DB70 push {r4, r5, r6, lr} bl sub_E464 ldr r1, _0800DBDC @ =0x02002858 ldrh r0, [r1, #0x22] adds r0, #1 movs r2, #0 strh r0, [r1, #0x22] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x5a ble _0800DBD4 movs r0, #0 strh r0, [r1, #0x22] ldr r0, _0800DBE0 @ =0x0201B178 strb r2, [r0] ldr r0, _0800DBE4 @ =0x0202BEBC strb r2, [r0] bl sub_2568 bl sub_1AA4 movs r1, #0 ldr r6, _0800DBE8 @ =0x0202C550 ldr r5, _0800DBEC @ =0x0202C610 _0800DBA2: lsls r0, r1, #1 adds r4, r1, #1 adds r0, r0, r1 lsls r1, r0, #3 lsls r0, r0, #6 adds r3, r0, r5 adds r1, r1, r6 movs r2, #5 _0800DBB2: ldm r3!, {r0} stm r1!, {r0} subs r2, #1 cmp r2, #0 bge _0800DBB2 adds r1, r4, #0 cmp r1, #1 ble _0800DBA2 movs r4, #0 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r0, _0800DBF0 @ =gMain strb r4, [r0, #3] _0800DBD4: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800DBDC: .4byte 0x02002858 _0800DBE0: .4byte 0x0201B178 _0800DBE4: .4byte 0x0202BEBC _0800DBE8: .4byte 0x0202C550 _0800DBEC: .4byte 0x0202C610 _0800DBF0: .4byte gMain thumb_func_start sub_DBF4 sub_DBF4: @ 0x0800DBF4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} bl sub_E464 ldr r2, _0800DC14 @ =0x02002858 movs r1, #0x22 ldrsh r0, [r2, r1] cmp r0, #0x82 beq _0800DC28 cmp r0, #0x82 bgt _0800DC18 cmp r0, #4 beq _0800DC1E b _0800DCBA .align 2, 0 _0800DC14: .4byte 0x02002858 _0800DC18: cmp r0, #0xfa beq _0800DC3C b _0800DCBA _0800DC1E: bl sub_2568 bl sub_1AA4 b _0800DCBA _0800DC28: ldr r1, _0800DC38 @ =0x0202BEBC movs r0, #3 strb r0, [r1] movs r0, #0x65 bl m4aSongNumStart b _0800DCBA .align 2, 0 _0800DC38: .4byte 0x0202BEBC _0800DC3C: movs r1, #0 movs r0, #0 strh r0, [r2, #0x22] ldr r0, _0800DCD0 @ =0x0201B178 strb r1, [r0] ldr r0, _0800DCD4 @ =0x0202BEBC strb r1, [r0] movs r0, #0 bl sub_F4FC ldr r1, _0800DCD8 @ =0x0202BED8 str r0, [r1] movs r0, #1 bl sub_F4FC ldr r1, _0800DCDC @ =0x0201B170 str r0, [r1] movs r2, #0 ldr r3, _0800DCE0 @ =0x0200B134 mov r8, r3 ldr r7, _0800DCE4 @ =0x0202C610 mov ip, r7 _0800DC68: movs r1, #0 lsls r0, r2, #1 adds r3, r2, #1 mov sb, r3 adds r0, r0, r2 lsls r5, r0, #6 adds r6, r5, #0 adds r6, #0xe4 _0800DC78: lsls r0, r1, #1 adds r4, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r1, r0, r6 add r1, r8 adds r2, r0, r5 movs r3, #5 _0800DC88: mov r7, ip adds r0, r2, r7 ldr r0, [r0] stm r1!, {r0} adds r2, #4 subs r3, #1 cmp r3, #0 bge _0800DC88 adds r1, r4, #0 cmp r1, #7 ble _0800DC78 mov r2, sb cmp r2, #1 ble _0800DC68 bl sub_52B30 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _0800DCE8 @ =gMain movs r0, #0xc strb r0, [r1, #3] _0800DCBA: ldr r1, _0800DCEC @ =0x02002858 ldrh r0, [r1, #0x22] adds r0, #1 strh r0, [r1, #0x22] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800DCD0: .4byte 0x0201B178 _0800DCD4: .4byte 0x0202BEBC _0800DCD8: .4byte 0x0202BED8 _0800DCDC: .4byte 0x0201B170 _0800DCE0: .4byte 0x0200B134 _0800DCE4: .4byte 0x0202C610 _0800DCE8: .4byte gMain _0800DCEC: .4byte 0x02002858 thumb_func_start sub_DCF0 sub_DCF0: @ 0x0800DCF0 push {r4, r5, lr} bl sub_E464 ldr r5, _0800DD20 @ =gMain ldrh r1, [r5, #0x18] movs r4, #1 ands r4, r1 cmp r4, #0 beq _0800DD24 movs r0, #0x65 bl m4aSongNumStart bl sub_F6E0 bl sub_52B30 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 movs r0, #0 b _0800DD3C .align 2, 0 _0800DD20: .4byte gMain _0800DD24: movs r0, #2 ands r0, r1 cmp r0, #0 beq _0800DD3E movs r0, #0x66 bl m4aSongNumStart ldr r0, _0800DD44 @ =0x0201B178 strb r4, [r0] ldr r0, _0800DD48 @ =0x0202BEBC strb r4, [r0] movs r0, #3 _0800DD3C: strb r0, [r5, #3] _0800DD3E: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800DD44: .4byte 0x0201B178 _0800DD48: .4byte 0x0202BEBC thumb_func_start sub_DD4C sub_DD4C: @ 0x0800DD4C push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _0800DD6C @ =gAutoDisplayTitlescreenMenu movs r0, #1 strb r0, [r1] movs r0, #1 bl sub_23C pop {r0} bx r0 .align 2, 0 _0800DD6C: .4byte gAutoDisplayTitlescreenMenu thumb_func_start sub_DD70 sub_DD70: @ 0x0800DD70 push {r4, r5, r6, lr} mov r6, r8 push {r6} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x84 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800DE50 @ =0x0400000C ldr r3, _0800DE54 @ =0x00004006 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #3 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800DE58 @ =0x0400000E ldr r3, _0800DE5C @ =0x0000420F adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r6, _0800DE60 @ =gMain ldrh r0, [r2] strh r0, [r6, #0x16] ldr r4, _0800DE64 @ =0x040000D4 ldr r0, _0800DE68 @ =0x0809DBE0 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0800DE6C @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800DE70 @ =0x080957A0 str r0, [r4] ldr r0, _0800DE74 @ =0x06004000 str r0, [r4, #4] ldr r0, _0800DE78 @ =0x80002400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800DE7C @ =0x0809AFC0 str r0, [r4] ldr r0, _0800DE80 @ =0x0600C000 str r0, [r4, #4] ldr r0, _0800DE84 @ =0x80001600 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800DE88 @ =0x080947A0 str r0, [r4] ldr r0, _0800DE8C @ =0x03005C00 mov r8, r0 str r0, [r4, #4] ldr r5, _0800DE90 @ =0x80000800 str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800DE94 @ =0x08099FC0 str r0, [r4] ldr r0, _0800DE98 @ =0x06001000 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800DE9C @ =0x0809DDE0 str r0, [r4] ldr r0, _0800DEA0 @ =0x05000200 str r0, [r4, #4] ldr r0, _0800DEA4 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800DEA8 @ =0x0809DFE0 str r0, [r4] ldr r0, _0800DEAC @ =0x06010000 str r0, [r4, #4] ldr r0, _0800DEB0 @ =0x80002210 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_DEB4 bl sub_EE64 mov r1, r8 str r1, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] movs r0, #9 bl m4aSongNumStart bl sub_CBC bl sub_24C ldrb r0, [r6, #3] adds r0, #1 strb r0, [r6, #3] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800DE50: .4byte 0x0400000C _0800DE54: .4byte 0x00004006 _0800DE58: .4byte 0x0400000E _0800DE5C: .4byte 0x0000420F _0800DE60: .4byte gMain _0800DE64: .4byte 0x040000D4 _0800DE68: .4byte 0x0809DBE0 _0800DE6C: .4byte 0x80000100 _0800DE70: .4byte 0x080957A0 _0800DE74: .4byte 0x06004000 _0800DE78: .4byte 0x80002400 _0800DE7C: .4byte 0x0809AFC0 _0800DE80: .4byte 0x0600C000 _0800DE84: .4byte 0x80001600 _0800DE88: .4byte 0x080947A0 _0800DE8C: .4byte 0x03005C00 _0800DE90: .4byte 0x80000800 _0800DE94: .4byte 0x08099FC0 _0800DE98: .4byte 0x06001000 _0800DE9C: .4byte 0x0809DDE0 _0800DEA0: .4byte 0x05000200 _0800DEA4: .4byte 0x80000010 _0800DEA8: .4byte 0x0809DFE0 _0800DEAC: .4byte 0x06010000 _0800DEB0: .4byte 0x80002210 thumb_func_start sub_DEB4 sub_DEB4: @ 0x0800DEB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r2, #0 ldr r0, _0800DF54 @ =0x02002858 mov r8, r0 ldr r0, _0800DF58 @ =gMain mov ip, r0 ldr r0, _0800DF5C @ =0x0202C610 mov sl, r0 movs r0, #0x74 add r0, ip mov sb, r0 _0800DED2: movs r1, #0 lsls r0, r2, #1 adds r7, r2, #1 adds r0, r0, r2 lsls r5, r0, #6 adds r6, r5, #0 adds r6, #0xe4 _0800DEE0: lsls r0, r1, #1 adds r4, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r1, r0, r6 add r1, sb adds r0, r0, r5 mov r2, sl adds r3, r0, r2 movs r2, #5 _0800DEF4: ldm r1!, {r0} stm r3!, {r0} subs r2, #1 cmp r2, #0 bge _0800DEF4 adds r1, r4, #0 cmp r1, #7 ble _0800DEE0 adds r2, r7, #0 cmp r2, #1 ble _0800DED2 movs r0, #0 movs r1, #0 mov r2, r8 strh r0, [r2, #8] strh r0, [r2, #0x1e] strh r0, [r2, #0x1c] strb r1, [r2, #0xb] ldr r2, _0800DF60 @ =0x02002882 strh r0, [r2] movs r2, #1 rsbs r2, r2, #0 adds r0, r2, #0 ldr r2, _0800DF64 @ =0x02002880 strh r0, [r2] mov r0, r8 adds r0, #0x24 strb r1, [r0] mov r0, r8 strb r1, [r0, #0xa] ldr r2, _0800DF60 @ =0x02002882 ldrh r1, [r2] movs r0, #0xbd lsls r0, r0, #2 add r0, ip strh r1, [r0] ldrh r1, [r2] movs r0, #0xbc lsls r0, r0, #2 add r0, ip strh r1, [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 _0800DF54: .4byte 0x02002858 _0800DF58: .4byte gMain _0800DF5C: .4byte 0x0202C610 _0800DF60: .4byte 0x02002882 _0800DF64: .4byte 0x02002880 thumb_func_start sub_DF68 sub_DF68: @ 0x0800DF68 push {r4, r5, lr} ldr r0, _0800DF80 @ =0x02002858 ldrb r4, [r0, #0xa] adds r5, r0, #0 cmp r4, #1 beq _0800DFE8 cmp r4, #1 bgt _0800DF88 cmp r4, #0 beq _0800DF94 ldr r4, _0800DF84 @ =gMain b _0800E072 .align 2, 0 _0800DF80: .4byte 0x02002858 _0800DF84: .4byte gMain _0800DF88: cmp r4, #2 beq _0800E020 ldr r4, _0800DF90 @ =gMain b _0800E072 .align 2, 0 _0800DF90: .4byte gMain _0800DF94: ldrh r0, [r5, #0x1e] adds r0, #1 strh r0, [r5, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800DFC0 strh r4, [r5, #0x1e] movs r0, #0x1c ldrsh r2, [r5, r0] movs r0, #0 movs r1, #0 bl sub_F8B0 ldrh r0, [r5, #0x1c] adds r0, #1 strh r0, [r5, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800DFC0 strh r4, [r5, #0x1c] _0800DFC0: ldr r0, _0800DFE0 @ =0x02002858 movs r1, #8 ldrsh r2, [r0, r1] movs r1, #0x96 lsls r1, r1, #2 adds r5, r0, #0 ldr r4, _0800DFE4 @ =gMain cmp r2, r1 ble _0800E072 movs r0, #0 strh r0, [r5, #8] strh r0, [r5, #0x1e] strh r0, [r5, #0x1c] movs r0, #1 strb r0, [r5, #0xa] b _0800E072 .align 2, 0 _0800DFE0: .4byte 0x02002858 _0800DFE4: .4byte gMain _0800DFE8: ldr r2, _0800E018 @ =0x02002882 ldrh r0, [r2] adds r0, #8 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xef ble _0800E000 movs r0, #0 strh r0, [r5, #8] movs r0, #2 strb r0, [r5, #0xa] _0800E000: ldr r1, _0800E01C @ =gMain ldrh r2, [r2] movs r3, #0xbd lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] subs r3, #4 adds r0, r1, r3 strh r2, [r0] adds r4, r1, #0 b _0800E072 .align 2, 0 _0800E018: .4byte 0x02002882 _0800E01C: .4byte gMain _0800E020: ldrh r0, [r5, #0x1e] adds r0, #1 movs r4, #0 strh r0, [r5, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800E04E strh r4, [r5, #0x1e] movs r0, #0x1c ldrsh r2, [r5, r0] movs r0, #1 movs r1, #0 bl sub_F8B0 ldrh r0, [r5, #0x1c] adds r0, #1 strh r0, [r5, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800E04E strh r4, [r5, #0x1c] _0800E04E: ldr r0, _0800E0B0 @ =0x02002858 movs r1, #8 ldrsh r2, [r0, r1] movs r1, #0x96 lsls r1, r1, #2 adds r5, r0, #0 ldr r4, _0800E0B4 @ =gMain cmp r2, r1 ble _0800E072 movs r1, #0 movs r0, #0 strh r0, [r5, #8] adds r0, r5, #0 adds r0, #0x24 strb r1, [r0] ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] _0800E072: ldrh r0, [r5, #8] adds r0, #1 strh r0, [r5, #8] ldr r1, _0800E0B8 @ =0x040000D4 ldr r0, _0800E0BC @ =0x03005C00 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800E0C0 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r1, [r4, #0x18] movs r0, #0xb ands r0, r1 cmp r0, #0 beq _0800E0A8 movs r0, #0x66 bl m4aSongNumStart adds r1, r5, #0 adds r1, #0x24 movs r0, #1 strb r0, [r1] ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] _0800E0A8: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800E0B0: .4byte 0x02002858 _0800E0B4: .4byte gMain _0800E0B8: .4byte 0x040000D4 _0800E0BC: .4byte 0x03005C00 _0800E0C0: .4byte 0x80000800 thumb_func_start sub_E0C4 sub_E0C4: @ 0x0800E0C4 push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r0, _0800E0E8 @ =0x02002858 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 bl sub_23C pop {r0} bx r0 .align 2, 0 _0800E0E8: .4byte 0x02002858 thumb_func_start sub_E0EC sub_E0EC: @ 0x0800E0EC push {r4, r5, r6, lr} mov r6, r8 push {r6} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x84 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800E1CC @ =0x0400000C ldr r3, _0800E1D0 @ =0x00004006 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #3 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800E1D4 @ =0x0400000E ldr r3, _0800E1D8 @ =0x0000420F adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r6, _0800E1DC @ =gMain ldrh r0, [r2] strh r0, [r6, #0x16] ldr r4, _0800E1E0 @ =0x040000D4 ldr r0, _0800E1E4 @ =0x0809DBE0 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0800E1E8 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800E1EC @ =0x080957A0 str r0, [r4] ldr r0, _0800E1F0 @ =0x06004000 str r0, [r4, #4] ldr r0, _0800E1F4 @ =0x80002400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800E1F8 @ =0x0809AFC0 str r0, [r4] ldr r0, _0800E1FC @ =0x0600C000 str r0, [r4, #4] ldr r0, _0800E200 @ =0x80001600 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800E204 @ =0x080947A0 str r0, [r4] ldr r0, _0800E208 @ =0x03005C00 mov r8, r0 str r0, [r4, #4] ldr r5, _0800E20C @ =0x80000800 str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800E210 @ =0x08099FC0 str r0, [r4] ldr r0, _0800E214 @ =0x06001000 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800E218 @ =0x0809DDE0 str r0, [r4] ldr r0, _0800E21C @ =0x05000200 str r0, [r4, #4] ldr r0, _0800E220 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800E224 @ =0x0809DFE0 str r0, [r4] ldr r0, _0800E228 @ =0x06010000 str r0, [r4, #4] ldr r0, _0800E22C @ =0x80002210 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_DEB4 bl sub_EE64 mov r1, r8 str r1, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] movs r0, #9 bl m4aSongNumStart bl sub_CBC bl sub_24C ldrb r0, [r6, #3] adds r0, #1 strb r0, [r6, #3] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800E1CC: .4byte 0x0400000C _0800E1D0: .4byte 0x00004006 _0800E1D4: .4byte 0x0400000E _0800E1D8: .4byte 0x0000420F _0800E1DC: .4byte gMain _0800E1E0: .4byte 0x040000D4 _0800E1E4: .4byte 0x0809DBE0 _0800E1E8: .4byte 0x80000100 _0800E1EC: .4byte 0x080957A0 _0800E1F0: .4byte 0x06004000 _0800E1F4: .4byte 0x80002400 _0800E1F8: .4byte 0x0809AFC0 _0800E1FC: .4byte 0x0600C000 _0800E200: .4byte 0x80001600 _0800E204: .4byte 0x080947A0 _0800E208: .4byte 0x03005C00 _0800E20C: .4byte 0x80000800 _0800E210: .4byte 0x08099FC0 _0800E214: .4byte 0x06001000 _0800E218: .4byte 0x0809DDE0 _0800E21C: .4byte 0x05000200 _0800E220: .4byte 0x80000010 _0800E224: .4byte 0x0809DFE0 _0800E228: .4byte 0x06010000 _0800E22C: .4byte 0x80002210 thumb_func_start sub_E230 sub_E230: @ 0x0800E230 push {r4, r5, lr} ldr r0, _0800E248 @ =0x02002858 ldrb r4, [r0, #0xa] adds r5, r0, #0 cmp r4, #1 beq _0800E2BC cmp r4, #1 bgt _0800E250 cmp r4, #0 beq _0800E25C ldr r4, _0800E24C @ =gMain b _0800E344 .align 2, 0 _0800E248: .4byte 0x02002858 _0800E24C: .4byte gMain _0800E250: cmp r4, #2 beq _0800E2F4 ldr r4, _0800E258 @ =gMain b _0800E344 .align 2, 0 _0800E258: .4byte gMain _0800E25C: ldr r0, _0800E2B0 @ =0x0202BED8 ldr r1, [r0] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _0800E292 ldrh r0, [r5, #0x1e] adds r0, #1 strh r0, [r5, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800E292 strh r4, [r5, #0x1e] movs r0, #0x1c ldrsh r2, [r5, r0] movs r0, #0 bl sub_F8B0 ldrh r0, [r5, #0x1c] adds r0, #1 strh r0, [r5, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800E292 strh r4, [r5, #0x1c] _0800E292: ldr r0, _0800E2B4 @ =0x02002858 movs r2, #8 ldrsh r1, [r0, r2] adds r5, r0, #0 ldr r4, _0800E2B8 @ =gMain cmp r1, #0x78 ble _0800E344 movs r0, #0 strh r0, [r5, #8] strh r0, [r5, #0x1e] strh r0, [r5, #0x1c] movs r0, #1 strb r0, [r5, #0xa] b _0800E344 .align 2, 0 _0800E2B0: .4byte 0x0202BED8 _0800E2B4: .4byte 0x02002858 _0800E2B8: .4byte gMain _0800E2BC: ldr r2, _0800E2EC @ =0x02002882 ldrh r0, [r2] adds r0, #8 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xef ble _0800E2D4 movs r0, #0 strh r0, [r5, #8] movs r0, #2 strb r0, [r5, #0xa] _0800E2D4: ldr r1, _0800E2F0 @ =gMain ldrh r2, [r2] movs r3, #0xbd lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] subs r3, #4 adds r0, r1, r3 strh r2, [r0] adds r4, r1, #0 b _0800E344 .align 2, 0 _0800E2EC: .4byte 0x02002882 _0800E2F0: .4byte gMain _0800E2F4: ldr r0, _0800E378 @ =0x0201B170 ldr r1, [r0] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _0800E32C ldrh r0, [r5, #0x1e] adds r0, #1 movs r4, #0 strh r0, [r5, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800E32C strh r4, [r5, #0x1e] movs r0, #0x1c ldrsh r2, [r5, r0] movs r0, #1 bl sub_F8B0 ldrh r0, [r5, #0x1c] adds r0, #1 strh r0, [r5, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0800E32C strh r4, [r5, #0x1c] _0800E32C: ldr r0, _0800E37C @ =0x02002858 movs r2, #8 ldrsh r1, [r0, r2] adds r5, r0, #0 ldr r4, _0800E380 @ =gMain cmp r1, #0x78 ble _0800E344 movs r0, #0 strh r0, [r5, #8] ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] _0800E344: ldrh r0, [r5, #8] adds r0, #1 strh r0, [r5, #8] ldr r1, _0800E384 @ =0x040000D4 ldr r0, _0800E388 @ =0x03005C00 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800E38C @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r1, [r4, #0x18] movs r0, #0xb ands r0, r1 cmp r0, #0 beq _0800E372 movs r0, #0x66 bl m4aSongNumStart ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] _0800E372: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800E378: .4byte 0x0201B170 _0800E37C: .4byte 0x02002858 _0800E380: .4byte gMain _0800E384: .4byte 0x040000D4 _0800E388: .4byte 0x03005C00 _0800E38C: .4byte 0x80000800 thumb_func_start sub_E390 sub_E390: @ 0x0800E390 push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 movs r0, #8 bl sub_23C pop {r0} bx r0 thumb_func_start sub_E3A8 sub_E3A8: @ 0x0800E3A8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _0800E448 @ =0x02002858 movs r0, #0x12 ldrsh r1, [r4, r0] movs r0, #0xb8 muls r0, r1, r0 ldr r2, _0800E44C @ =0x0200B3B8 adds r5, r0, r2 movs r0, #1 strh r0, [r5] ldr r0, _0800E450 @ =0x086A7DA8 movs r1, #2 bl sub_358 ldr r2, _0800E454 @ =0x080797F0 ldr r0, [r4, #0xc] lsls r0, r0, #3 ldrb r1, [r4, #0xb] lsls r1, r1, #6 adds r0, r0, r1 adds r0, r0, r2 ldr r1, [r0] movs r3, #0x10 ldrsh r0, [r4, r3] lsls r0, r0, #3 adds r1, r1, r0 strh r1, [r5, #2] ldr r1, [r4, #0xc] lsls r1, r1, #3 ldrb r0, [r4, #0xb] lsls r0, r0, #6 adds r1, r1, r0 adds r2, #4 adds r1, r1, r2 ldr r0, [r1] strh r0, [r5, #4] ldr r7, _0800E458 @ =0x03005000 ldr r0, _0800E45C @ =0xFFFFFE00 mov r8, r0 adds r4, r5, #0 adds r4, #8 ldr r2, _0800E460 @ =0x000001FF mov ip, r2 movs r6, #1 _0800E404: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 mov r0, ip 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, r7 ldrb r0, [r5, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _0800E404 movs r0, #0 strh r0, [r5] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800E448: .4byte 0x02002858 _0800E44C: .4byte 0x0200B3B8 _0800E450: .4byte 0x086A7DA8 _0800E454: .4byte 0x080797F0 _0800E458: .4byte 0x03005000 _0800E45C: .4byte 0xFFFFFE00 _0800E460: .4byte 0x000001FF thumb_func_start sub_E464 sub_E464: @ 0x0800E464 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0800E5CC @ =0x0200B3B8 adds r4, r6, #0 movs r0, #0xb8 adds r0, r0, r6 mov sl, r0 mov r5, sl ldr r0, _0800E5D0 @ =0x0202BEBC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r2, #0xb8 adds r1, r0, #0 muls r1, r2, r1 movs r3, #0xb8 lsls r3, r3, #1 adds r0, r6, r3 adds r7, r1, r0 ldr r0, _0800E5D4 @ =0x02002858 mov sb, r0 ldr r1, _0800E5D8 @ =0x0200287D movs r0, #0 ldrsb r0, [r1, r0] adds r1, r0, #0 muls r1, r2, r1 movs r2, #0xa1 lsls r2, r2, #3 adds r0, r6, r2 adds r1, r1, r0 mov r8, r1 ldr r0, _0800E5DC @ =0x02002882 movs r3, #0 ldrsh r1, [r0, r3] cmp r1, #0 beq _0800E4B4 b _0800E674 _0800E4B4: movs r0, #1 strh r0, [r6] strh r1, [r5] ldr r0, _0800E5E0 @ =0x0201B178 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r7] mov r0, sb adds r0, #0x26 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r1, r8 strh r0, [r1] ldr r0, _0800E5E4 @ =0x086A7DB0 movs r1, #9 adds r2, r6, #0 bl sub_358 movs r0, #0xdc strh r0, [r6, #2] movs r0, #0x90 strh r0, [r6, #4] adds r4, #8 ldr r2, _0800E5E8 @ =0x03005000 mov sl, r2 ldrh r2, [r4] lsls r2, r2, #3 add r2, sl mov r3, sb movs r5, #0x1a ldrsh r1, [r3, r5] lsls r1, r1, #1 adds r1, #2 ldr r3, _0800E5EC @ =0x000003FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #4] ldr r0, _0800E5F0 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] ldrh r2, [r4] lsls r2, r2, #3 add r2, sl movs r5, #2 ldrsh r1, [r4, r5] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r5, _0800E5F4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0800E5F8 @ =0xFFFFFE00 mov ip, r0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sl ldrb r0, [r6, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] mov r1, r8 ldrh r0, [r1] cmp r0, #1 bne _0800E5AA movs r0, #0x54 strh r0, [r1, #2] movs r0, #0x96 strh r0, [r1, #4] ldr r2, _0800E5D8 @ =0x0200287D movs r0, #0 ldrsb r0, [r2, r0] adds r0, #7 lsls r0, r0, #2 ldr r3, _0800E5E4 @ =0x086A7DB0 adds r0, r0, r3 ldr r6, [r0] movs r5, #0 ldrh r0, [r6] cmp r5, r0 bge _0800E5AA mov sb, sl mov sl, ip mov r4, r8 adds r4, #8 _0800E56A: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r2, #2 ldrsh r1, [r4, r2] mov ip, r1 mov r1, r8 movs r2, #2 ldrsh r0, [r1, r2] mov r2, ip adds r1, r2, r0 ldr r2, _0800E5F4 @ =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, [r4] lsls r1, r1, #3 add r1, sb mov r3, r8 ldrb r0, [r3, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r3, [r6] cmp r5, r3 blt _0800E56A _0800E5AA: ldrh r0, [r7] cmp r0, #1 beq _0800E5B2 b _0800E846 _0800E5B2: ldr r0, _0800E5D0 @ =0x0202BEBC movs r1, #0 ldrsb r1, [r0, r1] adds r2, r0, #0 cmp r1, #0 beq _0800E5C2 cmp r1, #4 bne _0800E5FC _0800E5C2: movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x64 b _0800E602 .align 2, 0 _0800E5CC: .4byte 0x0200B3B8 _0800E5D0: .4byte 0x0202BEBC _0800E5D4: .4byte 0x02002858 _0800E5D8: .4byte 0x0200287D _0800E5DC: .4byte 0x02002882 _0800E5E0: .4byte 0x0201B178 _0800E5E4: .4byte 0x086A7DB0 _0800E5E8: .4byte 0x03005000 _0800E5EC: .4byte 0x000003FF _0800E5F0: .4byte 0xFFFFFC00 _0800E5F4: .4byte 0x000001FF _0800E5F8: .4byte 0xFFFFFE00 _0800E5FC: movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x50 _0800E602: strh r0, [r7, #4] ldr r1, _0800E664 @ =0x086A7DB0 movs r0, #0 ldrsb r0, [r2, r0] adds r0, #2 lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r5, #0 ldrh r0, [r6] cmp r5, r0 blt _0800E61C b _0800E846 _0800E61C: ldr r1, _0800E668 @ =0x03005000 mov sb, r1 ldr r2, _0800E66C @ =0xFFFFFE00 mov sl, r2 adds r4, r7, #0 adds r4, #8 _0800E628: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0800E670 @ =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, [r4] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r0, [r6] cmp r5, r0 blt _0800E628 b _0800E846 .align 2, 0 _0800E664: .4byte 0x086A7DB0 _0800E668: .4byte 0x03005000 _0800E66C: .4byte 0xFFFFFE00 _0800E670: .4byte 0x000001FF _0800E674: cmp r1, #0xf0 beq _0800E67A b _0800E834 _0800E67A: movs r0, #0 strh r0, [r6] movs r0, #1 mov r1, sl strh r0, [r1] ldr r0, _0800E79C @ =0x0201B178 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r7] mov r0, sb adds r0, #0x26 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r2, r8 strh r0, [r2] ldr r0, _0800E7A0 @ =0x086A7DB0 movs r1, #9 adds r2, r6, #0 bl sub_358 movs r0, #4 mov r3, sl strh r0, [r3, #2] movs r0, #0x90 strh r0, [r3, #4] adds r4, r5, #0 adds r4, #8 ldr r5, _0800E7A4 @ =0x03005000 mov ip, r5 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip mov r0, sb movs r3, #0x1a ldrsh r1, [r0, r3] lsls r1, r1, #1 adds r1, #2 ldr r5, _0800E7A8 @ =0x000003FF adds r0, r5, #0 ands r1, r0 ldrh r3, [r2, #4] ldr r0, _0800E7AC @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip movs r0, #2 ldrsh r1, [r4, r0] mov r3, sl movs r5, #2 ldrsh r0, [r3, r5] adds r1, r1, r0 ldr r3, _0800E7B0 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0800E7B4 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r5, sl ldrb r0, [r5, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] mov r1, r8 ldrh r0, [r1] cmp r0, #1 bne _0800E77C movs r0, #0x54 strh r0, [r1, #2] movs r0, #0x96 strh r0, [r1, #4] ldr r2, _0800E7B8 @ =0x0200287D movs r0, #0 ldrsb r0, [r2, r0] adds r0, #7 lsls r0, r0, #2 ldr r3, _0800E7A0 @ =0x086A7DB0 adds r0, r0, r3 ldr r6, [r0] movs r5, #0 ldrh r0, [r6] cmp r5, r0 bge _0800E77C mov sb, ip ldr r1, _0800E7B4 @ =0xFFFFFE00 mov sl, r1 mov r4, r8 adds r4, #8 _0800E73C: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r4, r0] mov ip, r2 mov r1, r8 movs r2, #2 ldrsh r0, [r1, r2] mov r2, ip adds r1, r2, r0 ldr r2, _0800E7B0 @ =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, [r4] lsls r1, r1, #3 add r1, sb mov r3, r8 ldrb r0, [r3, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r3, [r6] cmp r5, r3 blt _0800E73C _0800E77C: ldrh r0, [r7] cmp r0, #1 bne _0800E846 ldr r0, _0800E7BC @ =0x0202BEBC movs r1, #0 ldrsb r1, [r0, r1] adds r2, r0, #0 cmp r1, #0 beq _0800E792 cmp r1, #4 bne _0800E7C0 _0800E792: movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x64 b _0800E7C6 .align 2, 0 _0800E79C: .4byte 0x0201B178 _0800E7A0: .4byte 0x086A7DB0 _0800E7A4: .4byte 0x03005000 _0800E7A8: .4byte 0x000003FF _0800E7AC: .4byte 0xFFFFFC00 _0800E7B0: .4byte 0x000001FF _0800E7B4: .4byte 0xFFFFFE00 _0800E7B8: .4byte 0x0200287D _0800E7BC: .4byte 0x0202BEBC _0800E7C0: movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x50 _0800E7C6: strh r0, [r7, #4] ldr r1, _0800E824 @ =0x086A7DB0 movs r0, #0 ldrsb r0, [r2, r0] adds r0, #2 lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r5, #0 ldrh r0, [r6] cmp r5, r0 bge _0800E846 ldr r1, _0800E828 @ =0x03005000 mov sb, r1 ldr r2, _0800E82C @ =0xFFFFFE00 mov sl, r2 adds r4, r7, #0 adds r4, #8 _0800E7EA: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0800E830 @ =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, [r4] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r0, [r6] cmp r5, r0 blt _0800E7EA b _0800E846 .align 2, 0 _0800E824: .4byte 0x086A7DB0 _0800E828: .4byte 0x03005000 _0800E82C: .4byte 0xFFFFFE00 _0800E830: .4byte 0x000001FF _0800E834: movs r0, #0 strh r0, [r6] mov r1, sl strh r0, [r1] ldr r0, _0800E85C @ =0x086A7DB0 movs r1, #9 adds r2, r6, #0 bl sub_358 _0800E846: movs r0, #0 strh r0, [r7] mov r2, r8 strh r0, [r2] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800E85C: .4byte 0x086A7DB0 thumb_func_start sub_E860 sub_E860: @ 0x0800E860 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _0800E8E8 @ =0x0202C580 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0xb8 muls r0, r1, r0 ldr r2, _0800E8EC @ =0x0200B3B8 adds r5, r0, r2 ldr r0, _0800E8F0 @ =0x0201C18C ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r5] ldr r0, _0800E8F4 @ =0x086A7DD4 movs r1, #5 bl sub_358 ldrh r0, [r5] cmp r0, #1 bne _0800E8DA movs r0, #0x78 strh r0, [r5, #2] ldr r0, _0800E8F8 @ =0x0201A4B8 ldrh r0, [r0] strh r0, [r5, #4] ldr r7, _0800E8FC @ =0x03005000 ldr r0, _0800E900 @ =0xFFFFFE00 mov r8, r0 adds r4, r5, #0 adds r4, #8 ldr r2, _0800E904 @ =0x000001FF mov ip, r2 movs r6, #3 _0800E8A6: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 mov r0, ip 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, r7 ldrb r0, [r5, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _0800E8A6 _0800E8DA: movs r0, #0 strh r0, [r5] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800E8E8: .4byte 0x0202C580 _0800E8EC: .4byte 0x0200B3B8 _0800E8F0: .4byte 0x0201C18C _0800E8F4: .4byte 0x086A7DD4 _0800E8F8: .4byte 0x0201A4B8 _0800E8FC: .4byte 0x03005000 _0800E900: .4byte 0xFFFFFE00 _0800E904: .4byte 0x000001FF thumb_func_start sub_E908 sub_E908: @ 0x0800E908 ldr r1, _0800E92C @ =0x0202C5F0 movs r2, #0 ldr r0, _0800E930 @ =0x0000CFCF strh r0, [r1] ldr r0, _0800E934 @ =0x0201C1B0 movs r1, #1 strh r1, [r0] ldr r0, _0800E938 @ =0x0202C59C strh r1, [r0] ldr r0, _0800E93C @ =0x0202ADE4 strb r2, [r0] ldr r0, _0800E940 @ =0x0201A4BC strb r2, [r0] ldr r0, _0800E944 @ =0x0202C598 strb r2, [r0] ldr r0, _0800E948 @ =0x0202C54C strb r2, [r0] bx lr .align 2, 0 _0800E92C: .4byte 0x0202C5F0 _0800E930: .4byte 0x0000CFCF _0800E934: .4byte 0x0201C1B0 _0800E938: .4byte 0x0202C59C _0800E93C: .4byte 0x0202ADE4 _0800E940: .4byte 0x0201A4BC _0800E944: .4byte 0x0202C598 _0800E948: .4byte 0x0202C54C thumb_func_start sub_E94C sub_E94C: @ 0x0800E94C push {lr} ldr r0, _0800E95C @ =0x0202BF20 ldrb r0, [r0] cmp r0, #0 beq _0800E960 bl sub_EBEC b _0800E964 .align 2, 0 _0800E95C: .4byte 0x0202BF20 _0800E960: bl sub_ED28 _0800E964: lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0x10 pop {r1} bx r1 thumb_func_start sub_E970 sub_E970: @ 0x0800E970 push {lr} ldr r0, _0800E980 @ =0x0202BF20 ldrb r0, [r0] cmp r0, #0 beq _0800E984 bl sub_E994 b _0800E988 .align 2, 0 _0800E980: .4byte 0x0202BF20 _0800E984: bl sub_EAC0 _0800E988: lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0x10 pop {r1} bx r1 thumb_func_start sub_E994 sub_E994: @ 0x0800E994 push {r4, r5, lr} ldr r0, _0800E9B4 @ =0x0202ADE4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0800EA04 ldr r0, _0800E9B8 @ =0x0201A4BC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0800E9BC cmp r0, #1 beq _0800E9F4 b _0800EAB2 .align 2, 0 _0800E9B4: .4byte 0x0202ADE4 _0800E9B8: .4byte 0x0201A4BC _0800E9BC: ldr r0, _0800E9D0 @ =gMain ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800E9DC ldr r1, _0800E9D4 @ =0x0202C5F0 ldr r0, _0800E9D8 @ =0x0000DEDE strh r0, [r1] b _0800EAB2 .align 2, 0 _0800E9D0: .4byte gMain _0800E9D4: .4byte 0x0202C5F0 _0800E9D8: .4byte 0x0000DEDE _0800E9DC: ldr r1, _0800E9F0 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _0800E9E4: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _0800E9E4 b _0800EAB2 .align 2, 0 _0800E9F0: .4byte 0x0202C5F0 _0800E9F4: ldr r1, _0800E9FC @ =0x0202C5F0 ldr r0, _0800EA00 @ =0x0000EDED strh r0, [r1] b _0800EAB2 .align 2, 0 _0800E9FC: .4byte 0x0202C5F0 _0800EA00: .4byte 0x0000EDED _0800EA04: ldr r0, _0800EA24 @ =0x0202C59C ldrh r2, [r0] adds r1, r2, #0 adds r5, r0, #0 cmp r1, #7 bhi _0800EA30 ldr r1, _0800EA28 @ =0x0202C5F0 ldr r2, _0800EA2C @ =0x0000CFCF adds r0, r1, #0 adds r0, #0xe _0800EA18: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _0800EA18 b _0800EAAC .align 2, 0 _0800EA24: .4byte 0x0202C59C _0800EA28: .4byte 0x0202C5F0 _0800EA2C: .4byte 0x0000CFCF _0800EA30: cmp r1, #9 bhi _0800EA9C adds r0, r2, #0 subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r3, _0800EA94 @ =0x0202C5F0 movs r4, #0 strh r2, [r3] ldr r1, _0800EA98 @ =0x0202C610 mov ip, r1 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #6 adds r0, r2, r1 ldr r1, [r0] lsls r1, r1, #8 mov r0, ip adds r0, #4 adds r0, r2, r0 ldr r0, [r0] orrs r0, r1 strh r0, [r3, #2] mov r0, ip adds r0, #8 adds r0, r2, r0 ldr r1, [r0] lsls r1, r1, #8 mov r0, ip adds r0, #0xc adds r0, r2, r0 ldr r0, [r0] orrs r0, r1 strh r0, [r3, #4] mov r0, ip adds r0, #0x10 adds r0, r2, r0 ldrh r1, [r0, #2] strh r1, [r3, #6] ldr r0, [r0] strh r0, [r3, #8] mov r0, ip adds r0, #0x14 adds r2, r2, r0 ldrh r0, [r2, #2] strh r0, [r3, #0xa] ldr r0, [r2] strh r0, [r3, #0xc] strh r4, [r3, #0xe] b _0800EAAC .align 2, 0 _0800EA94: .4byte 0x0202C5F0 _0800EA98: .4byte 0x0202C610 _0800EA9C: ldr r1, _0800EABC @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _0800EAA4: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _0800EAA4 _0800EAAC: ldrh r0, [r5] adds r0, #1 strh r0, [r5] _0800EAB2: movs r0, #0 pop {r4, r5} pop {r1} bx r1 .align 2, 0 _0800EABC: .4byte 0x0202C5F0 thumb_func_start sub_EAC0 sub_EAC0: @ 0x0800EAC0 push {r4, r5, lr} ldr r0, _0800EAE0 @ =0x0202ADE4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0800EB30 ldr r0, _0800EAE4 @ =0x0202C598 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0800EAE8 cmp r0, #1 beq _0800EB20 b _0800EBDE .align 2, 0 _0800EAE0: .4byte 0x0202ADE4 _0800EAE4: .4byte 0x0202C598 _0800EAE8: ldr r0, _0800EAFC @ =gMain ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800EB08 ldr r1, _0800EB00 @ =0x0202C5F0 ldr r0, _0800EB04 @ =0x0000DEDE strh r0, [r1] b _0800EBDE .align 2, 0 _0800EAFC: .4byte gMain _0800EB00: .4byte 0x0202C5F0 _0800EB04: .4byte 0x0000DEDE _0800EB08: ldr r1, _0800EB1C @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _0800EB10: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _0800EB10 b _0800EBDE .align 2, 0 _0800EB1C: .4byte 0x0202C5F0 _0800EB20: ldr r1, _0800EB28 @ =0x0202C5F0 ldr r0, _0800EB2C @ =0x0000EDED strh r0, [r1] b _0800EBDE .align 2, 0 _0800EB28: .4byte 0x0202C5F0 _0800EB2C: .4byte 0x0000EDED _0800EB30: ldr r0, _0800EB50 @ =0x0202C59C ldrh r2, [r0] adds r1, r2, #0 adds r5, r0, #0 cmp r1, #7 bhi _0800EB5C ldr r1, _0800EB54 @ =0x0202C5F0 ldr r2, _0800EB58 @ =0x0000CFCF adds r0, r1, #0 adds r0, #0xe _0800EB44: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _0800EB44 b _0800EBD8 .align 2, 0 _0800EB50: .4byte 0x0202C59C _0800EB54: .4byte 0x0202C5F0 _0800EB58: .4byte 0x0000CFCF _0800EB5C: cmp r1, #9 bhi _0800EBC8 adds r0, r2, #0 subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r3, _0800EBC0 @ =0x0202C5F0 movs r4, #0 strh r2, [r3] ldr r1, _0800EBC4 @ =0x0202C610 mov ip, r1 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #6 adds r0, r2, r1 ldr r1, [r0] lsls r1, r1, #8 mov r0, ip adds r0, #4 adds r0, r2, r0 ldr r0, [r0] orrs r0, r1 strh r0, [r3, #2] mov r0, ip adds r0, #8 adds r0, r2, r0 ldr r1, [r0] lsls r1, r1, #8 mov r0, ip adds r0, #0xc adds r0, r2, r0 ldr r0, [r0] orrs r0, r1 strh r0, [r3, #4] mov r0, ip adds r0, #0x10 adds r0, r2, r0 ldrh r1, [r0, #2] strh r1, [r3, #6] ldr r0, [r0] strh r0, [r3, #8] mov r0, ip adds r0, #0x14 adds r2, r2, r0 ldrh r0, [r2, #2] strh r0, [r3, #0xa] ldr r0, [r2] strh r0, [r3, #0xc] strh r4, [r3, #0xe] b _0800EBD8 .align 2, 0 _0800EBC0: .4byte 0x0202C5F0 _0800EBC4: .4byte 0x0202C610 _0800EBC8: ldr r1, _0800EBE8 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _0800EBD0: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _0800EBD0 _0800EBD8: ldrh r0, [r5] adds r0, #1 strh r0, [r5] _0800EBDE: movs r0, #0 pop {r4, r5} pop {r1} bx r1 .align 2, 0 _0800EBE8: .4byte 0x0202C5F0 thumb_func_start sub_EBEC sub_EBEC: @ 0x0800EBEC push {r4, r5, lr} ldr r4, _0800EC08 @ =0x0202ADE4 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _0800EC7C ldr r3, _0800EC0C @ =0x0201A4BC movs r1, #0 ldrsb r1, [r3, r1] cmp r1, #0 beq _0800EC10 cmp r1, #1 beq _0800EC30 b _0800ECFC .align 2, 0 _0800EC08: .4byte 0x0202ADE4 _0800EC0C: .4byte 0x0201A4BC _0800EC10: ldr r2, _0800EC28 @ =0x0201A4D0 ldrh r0, [r2] ldr r1, _0800EC2C @ =0x0000DEDE cmp r0, r1 beq _0800EC20 ldrh r0, [r2, #2] cmp r0, r1 bne _0800ECFC _0800EC20: movs r0, #1 strb r0, [r3] b _0800ECFC .align 2, 0 _0800EC28: .4byte 0x0201A4D0 _0800EC2C: .4byte 0x0000DEDE _0800EC30: ldr r3, _0800EC54 @ =0x0201A4D0 ldrh r2, [r3] ldr r0, _0800EC58 @ =0x0000EDED cmp r2, r0 bne _0800EC64 ldrh r0, [r3, #2] cmp r0, r2 bne _0800EC64 movs r2, #1 rsbs r2, r2, #0 adds r0, r2, #0 strb r0, [r4] ldr r0, _0800EC5C @ =0x0202BEBC strb r1, [r0] ldr r0, _0800EC60 @ =0x0202C59C strh r1, [r0] b _0800ECFC .align 2, 0 _0800EC54: .4byte 0x0201A4D0 _0800EC58: .4byte 0x0000EDED _0800EC5C: .4byte 0x0202BEBC _0800EC60: .4byte 0x0202C59C _0800EC64: ldr r1, _0800EC78 @ =0x0202C54C ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa ble _0800ECFC movs r0, #1 b _0800ED1E .align 2, 0 _0800EC78: .4byte 0x0202C54C _0800EC7C: ldr r4, _0800ECF0 @ =0x0201A4D0 ldrh r5, [r4, #2] adds r0, r5, #0 subs r0, #8 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 cmp r1, #1 bhi _0800ED1C ldr r0, _0800ECF4 @ =0x0201C1B0 strh r5, [r0] ldr r0, _0800ECF8 @ =0x0202C550 mov ip, r0 lsls r3, r1, #1 adds r3, r3, r1 lsls r3, r3, #3 adds r1, r3, r0 ldrh r0, [r4, #6] lsrs r0, r0, #8 str r0, [r1] mov r0, ip adds r0, #4 adds r0, r3, r0 ldrb r1, [r4, #6] str r1, [r0] mov r1, ip adds r1, #8 adds r1, r3, r1 ldrh r0, [r4, #0xa] lsrs r0, r0, #8 str r0, [r1] mov r0, ip adds r0, #0xc adds r0, r3, r0 ldrb r1, [r4, #0xa] str r1, [r0] mov r2, ip adds r2, #0x10 adds r2, r3, r2 ldrh r0, [r4, #0xe] lsls r0, r0, #0x10 ldrh r1, [r4, #0x12] orrs r0, r1 str r0, [r2] mov r0, ip adds r0, #0x14 adds r3, r3, r0 ldrh r0, [r4, #0x16] lsls r0, r0, #0x10 ldrh r1, [r4, #0x1a] orrs r0, r1 str r0, [r3] lsls r0, r5, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bne _0800ECFC movs r0, #1 rsbs r0, r0, #0 b _0800ED1E .align 2, 0 _0800ECF0: .4byte 0x0201A4D0 _0800ECF4: .4byte 0x0201C1B0 _0800ECF8: .4byte 0x0202C550 _0800ECFC: movs r1, #0 ldr r4, _0800ED24 @ =0x0201A4D0 movs r3, #0 _0800ED02: lsls r0, r1, #2 adds r2, r1, #1 movs r1, #1 adds r0, r0, r4 adds r0, #2 _0800ED0C: strh r3, [r0] subs r0, #2 subs r1, #1 cmp r1, #0 bge _0800ED0C adds r1, r2, #0 cmp r1, #7 ble _0800ED02 _0800ED1C: movs r0, #0 _0800ED1E: pop {r4, r5} pop {r1} bx r1 .align 2, 0 _0800ED24: .4byte 0x0201A4D0 thumb_func_start sub_ED28 sub_ED28: @ 0x0800ED28 push {r4, r5, lr} ldr r4, _0800ED44 @ =0x0202ADE4 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _0800EDB8 ldr r3, _0800ED48 @ =0x0202C598 movs r1, #0 ldrsb r1, [r3, r1] cmp r1, #0 beq _0800ED4C cmp r1, #1 beq _0800ED6C b _0800EE38 .align 2, 0 _0800ED44: .4byte 0x0202ADE4 _0800ED48: .4byte 0x0202C598 _0800ED4C: ldr r2, _0800ED64 @ =0x0201A4D0 ldrh r0, [r2] ldr r1, _0800ED68 @ =0x0000DEDE cmp r0, r1 beq _0800ED5C ldrh r0, [r2, #2] cmp r0, r1 bne _0800EE38 _0800ED5C: movs r0, #1 strb r0, [r3] b _0800EE38 .align 2, 0 _0800ED64: .4byte 0x0201A4D0 _0800ED68: .4byte 0x0000DEDE _0800ED6C: ldr r3, _0800ED90 @ =0x0201A4D0 ldrh r2, [r3] ldr r0, _0800ED94 @ =0x0000EDED cmp r2, r0 bne _0800EDA0 ldrh r0, [r3, #2] cmp r0, r2 bne _0800EDA0 movs r2, #1 rsbs r2, r2, #0 adds r0, r2, #0 strb r0, [r4] ldr r0, _0800ED98 @ =0x0202BEBC strb r1, [r0] ldr r0, _0800ED9C @ =0x0202C59C strh r1, [r0] b _0800EE38 .align 2, 0 _0800ED90: .4byte 0x0201A4D0 _0800ED94: .4byte 0x0000EDED _0800ED98: .4byte 0x0202BEBC _0800ED9C: .4byte 0x0202C59C _0800EDA0: ldr r1, _0800EDB4 @ =0x0202C54C ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa ble _0800EE38 movs r0, #1 b _0800EE5A .align 2, 0 _0800EDB4: .4byte 0x0202C54C _0800EDB8: ldr r4, _0800EE2C @ =0x0201A4D0 ldrh r5, [r4] adds r0, r5, #0 subs r0, #8 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 cmp r1, #1 bhi _0800EE58 ldr r0, _0800EE30 @ =0x0201C1B0 strh r5, [r0] ldr r0, _0800EE34 @ =0x0202C550 mov ip, r0 lsls r3, r1, #1 adds r3, r3, r1 lsls r3, r3, #3 adds r1, r3, r0 ldrh r0, [r4, #4] lsrs r0, r0, #8 str r0, [r1] mov r0, ip adds r0, #4 adds r0, r3, r0 ldrb r1, [r4, #4] str r1, [r0] mov r1, ip adds r1, #8 adds r1, r3, r1 ldrh r0, [r4, #8] lsrs r0, r0, #8 str r0, [r1] mov r0, ip adds r0, #0xc adds r0, r3, r0 ldrb r1, [r4, #8] str r1, [r0] mov r2, ip adds r2, #0x10 adds r2, r3, r2 ldrh r0, [r4, #0xc] lsls r0, r0, #0x10 ldrh r1, [r4, #0x10] orrs r0, r1 str r0, [r2] mov r0, ip adds r0, #0x14 adds r3, r3, r0 ldrh r0, [r4, #0x14] lsls r0, r0, #0x10 ldrh r1, [r4, #0x18] orrs r0, r1 str r0, [r3] lsls r0, r5, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bne _0800EE38 movs r0, #1 rsbs r0, r0, #0 b _0800EE5A .align 2, 0 _0800EE2C: .4byte 0x0201A4D0 _0800EE30: .4byte 0x0201C1B0 _0800EE34: .4byte 0x0202C550 _0800EE38: movs r1, #0 ldr r4, _0800EE60 @ =0x0201A4D0 movs r3, #0 _0800EE3E: lsls r0, r1, #2 adds r2, r1, #1 movs r1, #1 adds r0, r0, r4 adds r0, #2 _0800EE48: strh r3, [r0] subs r0, #2 subs r1, #1 cmp r1, #0 bge _0800EE48 adds r1, r2, #0 cmp r1, #7 ble _0800EE3E _0800EE58: movs r0, #0 _0800EE5A: pop {r4, r5} pop {r1} bx r1 .align 2, 0 _0800EE60: .4byte 0x0201A4D0 thumb_func_start sub_EE64 sub_EE64: @ 0x0800EE64 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 movs r6, #0 ldr r4, _0800EF20 @ =0x086A7FAC ldr r5, _0800EF24 @ =0x0202C610 _0800EE76: ldm r5!, {r0} lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] adds r0, #0x80 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #6 movs r1, #1 str r1, [sp] str r1, [sp, #4] movs r1, #8 movs r3, #3 bl sub_105A0 adds r6, #1 cmp r6, #3 ble _0800EE76 movs r5, #1 ldr r0, _0800EF20 @ =0x086A7FAC mov sb, r0 ldr r1, _0800EF24 @ =0x0202C610 mov sl, r1 _0800EEA4: movs r6, #0 lsls r7, r5, #1 adds r2, r5, #1 mov r8, r2 adds r4, r7, #0 adds r0, r4, r5 lsls r0, r0, #3 mov r1, sl adds r5, r0, r1 _0800EEB6: ldm r5!, {r0} lsls r0, r0, #1 add r0, sb ldrh r0, [r0] adds r0, #0xa0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #6 movs r1, #1 str r1, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #8 adds r3, r4, #3 bl sub_105A0 adds r6, #1 cmp r6, #3 ble _0800EEB6 mov r5, r8 cmp r5, #7 ble _0800EEA4 ldr r1, _0800EF24 @ =0x0202C610 ldr r0, [r1, #0x10] ldr r1, [r1, #0x14] bl sub_F21C movs r6, #0 movs r5, #0xc ldr r4, _0800EF28 @ =0x0202C5C0 movs r7, #1 _0800EEF4: adds r0, r6, #1 movs r1, #3 bl __modsi3 cmp r0, #0 bne _0800EF2C movs r2, #0x90 lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r4] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r7, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #9 adds r2, r5, #0 movs r3, #2 bl sub_105A0 b _0800EF44 .align 2, 0 _0800EF20: .4byte 0x086A7FAC _0800EF24: .4byte 0x0202C610 _0800EF28: .4byte 0x0202C5C0 _0800EF2C: ldrh r0, [r4] adds r0, #0xe0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r7, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #9 adds r2, r5, #0 movs r3, #2 bl sub_105A0 _0800EF44: adds r5, #1 adds r4, #2 adds r6, #1 cmp r6, #0xd ble _0800EEF4 ldr r4, _0800EFC8 @ =0x0202C5C0 ldrh r0, [r4, #0x1c] adds r0, #0xe0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #1 str r1, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #9 movs r2, #0x1a movs r3, #2 bl sub_105A0 movs r5, #1 ldr r2, _0800EFCC @ =0x0202C610 str r2, [sp, #8] mov sl, r5 movs r0, #2 mov sb, r0 _0800EF76: lsls r4, r5, #1 adds r1, r4, r5 lsls r1, r1, #3 ldr r0, [sp, #8] adds r0, #0x10 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0800EFD0 @ =0x0202C624 adds r1, r1, r2 ldr r1, [r1] bl sub_F21C movs r6, #0 adds r7, r4, #0 adds r5, #1 mov r8, r5 movs r5, #0xc ldr r4, _0800EFC8 @ =0x0202C5C0 _0800EF9A: adds r0, r6, #1 movs r1, #3 bl __modsi3 cmp r0, #0 bne _0800EFD4 movs r1, #0xd0 lsls r1, r1, #1 adds r0, r1, #0 ldrh r2, [r4] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r1, sl str r1, [sp] mov r2, sb str r2, [sp, #4] movs r1, #9 adds r2, r5, #0 adds r3, r7, #3 bl sub_105A0 b _0800EFF4 .align 2, 0 _0800EFC8: .4byte 0x0202C5C0 _0800EFCC: .4byte 0x0202C610 _0800EFD0: .4byte 0x0202C624 _0800EFD4: movs r1, #0xb0 lsls r1, r1, #1 adds r0, r1, #0 ldrh r2, [r4] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r1, sl str r1, [sp] mov r2, sb str r2, [sp, #4] movs r1, #9 adds r2, r5, #0 adds r3, r7, #3 bl sub_105A0 _0800EFF4: adds r5, #1 adds r4, #2 adds r6, #1 cmp r6, #0xd ble _0800EF9A movs r1, #0xb0 lsls r1, r1, #1 adds r0, r1, #0 ldr r2, _0800F0E4 @ =0x0202C5C0 ldrh r2, [r2, #0x1c] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r3, r7, #3 mov r1, sl str r1, [sp] mov r2, sb str r2, [sp, #4] movs r1, #9 movs r2, #0x1a bl sub_105A0 mov r5, r8 cmp r5, #7 ble _0800EF76 movs r6, #0 ldr r7, _0800F0E8 @ =0x086A7FAC ldr r0, _0800F0EC @ =0x0202C610 adds r5, r0, #0 adds r5, #0xc0 movs r4, #1 _0800F032: ldm r5!, {r0} lsls r0, r0, #1 adds r0, r0, r7 ldrh r0, [r0] adds r0, #0x80 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #4 str r4, [sp] str r4, [sp, #4] movs r1, #8 movs r3, #0x23 bl sub_105A0 adds r6, #1 cmp r6, #3 ble _0800F032 movs r5, #1 ldr r0, _0800F0E8 @ =0x086A7FAC mov sb, r0 ldr r1, _0800F0F0 @ =0x0202C6D0 mov sl, r1 _0800F05E: movs r6, #0 lsls r7, r5, #1 adds r2, r5, #1 mov r8, r2 adds r4, r7, #0 adds r0, r4, r5 lsls r0, r0, #3 mov r1, sl adds r5, r0, r1 _0800F070: ldm r5!, {r0} lsls r0, r0, #1 add r0, sb ldrh r0, [r0] adds r0, #0xa0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #4 movs r1, #1 str r1, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #8 adds r3, r4, #0 adds r3, #0x23 bl sub_105A0 adds r6, #1 cmp r6, #3 ble _0800F070 mov r5, r8 cmp r5, #7 ble _0800F05E ldr r1, _0800F0EC @ =0x0202C610 adds r0, r1, #0 adds r0, #0xd0 ldr r0, [r0] adds r1, #0xd4 ldr r1, [r1] bl sub_F21C movs r6, #0 movs r5, #0xa ldr r4, _0800F0E4 @ =0x0202C5C0 movs r7, #1 _0800F0B6: adds r0, r6, #1 movs r1, #3 bl __modsi3 cmp r0, #0 bne _0800F0F4 movs r2, #0x90 lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r4] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r7, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #9 adds r2, r5, #0 movs r3, #0x22 bl sub_105A0 b _0800F10C .align 2, 0 _0800F0E4: .4byte 0x0202C5C0 _0800F0E8: .4byte 0x086A7FAC _0800F0EC: .4byte 0x0202C610 _0800F0F0: .4byte 0x0202C6D0 _0800F0F4: ldrh r0, [r4] adds r0, #0xe0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r7, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #9 adds r2, r5, #0 movs r3, #0x22 bl sub_105A0 _0800F10C: adds r5, #1 adds r4, #2 adds r6, #1 cmp r6, #0xd ble _0800F0B6 ldr r4, _0800F19C @ =0x0202C5C0 lsls r0, r6, #1 adds r0, r0, r4 ldrh r0, [r0] adds r0, #0xe0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #1 str r1, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #9 movs r2, #0x18 movs r3, #0x22 bl sub_105A0 movs r5, #1 ldr r2, _0800F1A0 @ =0x0202C610 str r2, [sp, #0xc] mov sl, r5 movs r0, #2 mov sb, r0 _0800F142: lsls r4, r5, #1 adds r1, r4, r5 lsls r1, r1, #3 ldr r0, [sp, #0xc] adds r0, #0xd0 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0800F1A4 @ =0x0202C6E4 adds r1, r1, r2 ldr r1, [r1] bl sub_F21C movs r6, #0 adds r7, r4, #0 adds r5, #1 mov r8, r5 _0800F162: adds r4, r6, #1 adds r0, r4, #0 movs r1, #3 bl __modsi3 cmp r0, #0 bne _0800F1A8 lsls r1, r6, #1 ldr r0, _0800F19C @ =0x0202C5C0 adds r1, r1, r0 movs r2, #0xd0 lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r1] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #0 adds r2, #0xa mov r1, sl str r1, [sp] mov r1, sb str r1, [sp, #4] movs r1, #9 adds r3, r7, #0 adds r3, #0x23 bl sub_105A0 b _0800F1D2 .align 2, 0 _0800F19C: .4byte 0x0202C5C0 _0800F1A0: .4byte 0x0202C610 _0800F1A4: .4byte 0x0202C6E4 _0800F1A8: lsls r1, r6, #1 ldr r2, _0800F218 @ =0x0202C5C0 adds r1, r1, r2 movs r2, #0xb0 lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r1] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #0 adds r2, #0xa mov r1, sl str r1, [sp] mov r1, sb str r1, [sp, #4] movs r1, #9 adds r3, r7, #0 adds r3, #0x23 bl sub_105A0 _0800F1D2: adds r6, r4, #0 cmp r4, #0xd ble _0800F162 lsls r1, r4, #1 ldr r2, _0800F218 @ =0x0202C5C0 adds r1, r1, r2 movs r2, #0xb0 lsls r2, r2, #1 adds r0, r2, #0 ldrh r1, [r1] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r3, r7, #0 adds r3, #0x23 mov r1, sl str r1, [sp] mov r2, sb str r2, [sp, #4] movs r1, #9 movs r2, #0x18 bl sub_105A0 mov r5, r8 cmp r5, #7 ble _0800F142 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 _0800F218: .4byte 0x0202C5C0 thumb_func_start sub_F21C sub_F21C: @ 0x0800F21C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 adds r5, r0, #0 adds r7, r1, #0 cmp r5, #0 bne _0800F250 cmp r7, #0 bne _0800F250 ldr r4, _0800F24C @ =0x0202C5C0 adds r2, r4, #0 movs r1, #0xa adds r0, r4, #0 adds r0, #0x1a _0800F23E: strh r1, [r0] subs r0, #2 cmp r0, r2 bge _0800F23E movs r0, #0 strh r0, [r4, #0x1c] b _0800F392 .align 2, 0 _0800F24C: .4byte 0x0202C5C0 _0800F250: ldr r0, _0800F25C @ =0x0098967F cmp r5, r0 bls _0800F260 adds r5, r0, #0 b _0800F266 .align 2, 0 _0800F25C: .4byte 0x0098967F _0800F260: ldr r0, _0800F3A4 @ =0x05F5E0FF cmp r7, r0 bls _0800F268 _0800F266: ldr r7, _0800F3A4 @ =0x05F5E0FF _0800F268: ldr r4, _0800F3A8 @ =0x0202C5C0 ldr r0, _0800F3AC @ =0x000F4240 mov sl, r0 adds r0, r5, #0 mov r1, sl bl __udivsi3 str r0, [sp] mov r1, sp ldrh r1, [r1] strh r1, [r4] adds r0, r5, #0 mov r1, sl bl __umodsi3 adds r5, r0, #0 ldr r0, _0800F3B0 @ =0x000186A0 mov sb, r0 adds r0, r5, #0 mov r1, sb bl __udivsi3 strh r0, [r4, #2] adds r0, r5, #0 mov r1, sb bl __umodsi3 adds r5, r0, #0 ldr r1, _0800F3B4 @ =0x00002710 mov r8, r1 bl __udivsi3 strh r0, [r4, #4] adds r0, r5, #0 mov r1, r8 bl __umodsi3 adds r5, r0, #0 movs r6, #0xfa lsls r6, r6, #2 adds r1, r6, #0 bl __udivsi3 strh r0, [r4, #6] adds r0, r5, #0 adds r1, r6, #0 bl __umodsi3 adds r5, r0, #0 movs r1, #0x64 bl __udivsi3 strh r0, [r4, #8] adds r0, r5, #0 movs r1, #0x64 bl __umodsi3 adds r5, r0, #0 movs r1, #0xa bl __udivsi3 strh r0, [r4, #0xa] adds r0, r5, #0 movs r1, #0xa bl __umodsi3 strh r0, [r4, #0xc] ldr r5, _0800F3B8 @ =0x00989680 adds r0, r7, #0 adds r1, r5, #0 bl __udivsi3 strh r0, [r4, #0xe] adds r0, r7, #0 adds r1, r5, #0 bl __umodsi3 adds r5, r0, #0 mov r1, sl bl __udivsi3 strh r0, [r4, #0x10] adds r0, r5, #0 mov r1, sl bl __umodsi3 adds r5, r0, #0 mov r1, sb bl __udivsi3 strh r0, [r4, #0x12] adds r0, r5, #0 mov r1, sb bl __umodsi3 adds r5, r0, #0 mov r1, r8 bl __udivsi3 strh r0, [r4, #0x14] adds r0, r5, #0 mov r1, r8 bl __umodsi3 adds r5, r0, #0 adds r1, r6, #0 bl __udivsi3 strh r0, [r4, #0x16] adds r0, r5, #0 adds r1, r6, #0 bl __umodsi3 adds r5, r0, #0 movs r1, #0x64 bl __udivsi3 strh r0, [r4, #0x18] adds r0, r5, #0 movs r1, #0x64 bl __umodsi3 adds r5, r0, #0 movs r1, #0xa bl __udivsi3 strh r0, [r4, #0x1a] adds r0, r5, #0 movs r1, #0xa bl __umodsi3 strh r0, [r4, #0x1c] ldr r5, [sp] lsls r0, r5, #0x10 cmp r0, #0 bne _0800F392 movs r3, #0xa adds r1, r4, #0 adds r2, r4, #0 adds r2, #0x1c _0800F380: strh r3, [r1] adds r4, #2 adds r1, #2 cmp r1, r2 bgt _0800F392 movs r5, #0 ldrsh r0, [r4, r5] cmp r0, #0 beq _0800F380 _0800F392: 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 _0800F3A4: .4byte 0x05F5E0FF _0800F3A8: .4byte 0x0202C5C0 _0800F3AC: .4byte 0x000F4240 _0800F3B0: .4byte 0x000186A0 _0800F3B4: .4byte 0x00002710 _0800F3B8: .4byte 0x00989680 thumb_func_start sub_F3BC sub_F3BC: @ 0x0800F3BC cmp r0, r2 bhi _0800F3C8 cmp r0, r2 blo _0800F3D4 cmp r1, r3 bls _0800F3CC _0800F3C8: movs r0, #1 b _0800F3D8 _0800F3CC: cmp r1, r3 blo _0800F3D4 movs r0, #0 b _0800F3D8 _0800F3D4: movs r0, #1 rsbs r0, r0, #0 _0800F3D8: bx lr thumb_func_start sub_F3DC sub_F3DC: @ 0x0800F3DC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 mov r8, r1 movs r6, #0 ldr r7, _0800F414 @ =0x0202C610 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #6 adds r1, r7, #0 adds r1, #0x14 adds r5, r0, r1 adds r4, r0, #0 _0800F3FA: adds r0, r7, #0 adds r0, #0x10 adds r0, r4, r0 ldr r2, [r0] ldr r3, [r5] mov r0, sb mov r1, r8 bl sub_F3BC cmp r0, #0 blt _0800F418 adds r0, r6, #0 b _0800F426 .align 2, 0 _0800F414: .4byte 0x0202C610 _0800F418: adds r5, #0x18 adds r4, #0x18 adds r6, #1 cmp r6, #7 ble _0800F3FA movs r0, #1 rsbs r0, r0, #0 _0800F426: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_F434 sub_F434: @ 0x0800F434 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 str r0, [sp] str r1, [sp, #4] mov r8, r2 mov sb, r3 movs r5, #7 ldr r0, _0800F4F8 @ =0x0202C610 mov ip, r0 cmp r5, sb ble _0800F4A4 mov sl, ip lsls r0, r2, #1 add r0, r8 lsls r1, r0, #6 mov r2, ip adds r0, r2, r1 adds r3, r0, #0 adds r3, #0x90 adds r7, r1, #0 adds r7, #0x90 adds r6, r1, #0 adds r6, #0xa8 adds r0, r1, #0 adds r0, #0xac adds r4, r0, r2 subs r0, #0x18 adds r2, r0, r2 _0800F474: ldr r0, [r3] str r0, [r3, #0x18] ldr r0, [r2] str r0, [r4] ldr r0, [r2, #4] str r0, [r4, #4] ldr r0, [r2, #8] str r0, [r4, #8] mov r0, sl adds r0, #0x10 adds r1, r6, r0 adds r0, r7, r0 ldr r0, [r0] str r0, [r1] ldr r0, [r3, #0x14] str r0, [r3, #0x2c] subs r3, #0x18 subs r2, #0x18 subs r7, #0x18 subs r4, #0x18 subs r6, #0x18 subs r5, #1 cmp r5, sb bgt _0800F474 _0800F4A4: lsls r1, r5, #1 adds r1, r1, r5 lsls r1, r1, #3 mov r2, r8 lsls r0, r2, #1 add r0, r8 lsls r0, r0, #6 adds r1, r1, r0 mov r2, ip adds r0, r1, r2 movs r2, #0 str r2, [r0] mov r0, ip adds r0, #4 adds r0, r1, r0 str r2, [r0] mov r0, ip adds r0, #8 adds r0, r1, r0 str r2, [r0] mov r0, ip adds r0, #0xc adds r0, r1, r0 str r2, [r0] mov r0, ip adds r0, #0x10 adds r0, r1, r0 ldr r2, [sp] str r2, [r0] mov r0, ip adds r0, #0x14 adds r1, r1, r0 ldr r0, [sp, #4] str r0, [r1] 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 _0800F4F8: .4byte 0x0202C610 thumb_func_start sub_F4FC sub_F4FC: @ 0x0800F4FC 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, _0800F668 @ =0x0202C550 mov r8, r0 ldr r1, [sp] lsls r4, r1, #1 adds r4, r4, r1 lsls r0, r4, #3 mov sb, r0 mov r6, r8 adds r6, #0x10 add r6, sb ldr r0, [r6] mov r5, r8 adds r5, #0x14 add r5, sb ldr r1, [r5] ldr r2, [sp] bl sub_F3DC mov sl, r0 ldr r7, _0800F66C @ =0x0202C610 lsls r0, r0, #1 add r0, sl lsls r0, r0, #3 lsls r4, r4, #6 adds r4, r0, r4 adds r0, r7, #0 adds r0, #0x10 adds r0, r4, r0 ldr r0, [r0] adds r1, r7, #0 adds r1, #0x14 adds r1, r4, r1 ldr r1, [r1] ldr r2, [r6] ldr r3, [r5] bl sub_F3BC mov ip, r8 cmp r0, #0 bne _0800F5A2 adds r0, r4, r7 mov r1, sb add r1, ip ldr r2, [r0] ldr r0, [r1] cmp r2, r0 bne _0800F5A2 adds r1, r7, #4 adds r1, r4, r1 mov r0, ip adds r0, #4 add r0, sb ldr r1, [r1] ldr r0, [r0] cmp r1, r0 bne _0800F5A2 adds r1, r7, #0 adds r1, #8 adds r1, r4, r1 mov r0, ip adds r0, #8 add r0, sb ldr r1, [r1] ldr r0, [r0] cmp r1, r0 bne _0800F5A2 adds r1, r7, #0 adds r1, #0xc adds r1, r4, r1 mov r0, ip adds r0, #0xc add r0, sb ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _0800F656 _0800F5A2: movs r0, #1 rsbs r0, r0, #0 cmp sl, r0 beq _0800F656 movs r4, #7 ldr r1, _0800F668 @ =0x0202C550 mov ip, r1 ldr r0, [sp] lsls r3, r0, #1 ldr r1, _0800F66C @ =0x0202C610 mov r8, r1 cmp r4, sl ble _0800F5EA mov r7, r8 adds r0, r3, r0 lsls r6, r0, #6 _0800F5C2: movs r5, #0 lsls r0, r4, #1 subs r1, r4, #1 adds r0, r0, r4 lsls r0, r0, #3 adds r0, r0, r6 adds r2, r0, r7 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r6 adds r4, r0, r7 _0800F5DA: ldm r4!, {r0} stm r2!, {r0} adds r5, #1 cmp r5, #5 ble _0800F5DA adds r4, r1, #0 cmp r4, sl bgt _0800F5C2 _0800F5EA: lsls r2, r4, #1 adds r2, r2, r4 lsls r2, r2, #3 ldr r4, [sp] adds r3, r3, r4 lsls r0, r3, #6 adds r2, r2, r0 mov r0, r8 adds r1, r2, r0 lsls r3, r3, #3 mov r4, ip adds r0, r3, r4 ldr r0, [r0] str r0, [r1] mov r1, r8 adds r1, #4 adds r1, r2, r1 mov r0, ip adds r0, #4 adds r0, r3, r0 ldr r0, [r0] str r0, [r1] mov r1, r8 adds r1, #8 adds r1, r2, r1 mov r0, ip adds r0, #8 adds r0, r3, r0 ldr r0, [r0] str r0, [r1] mov r1, r8 adds r1, #0xc adds r1, r2, r1 mov r0, ip adds r0, #0xc adds r0, r3, r0 ldr r0, [r0] str r0, [r1] mov r1, r8 adds r1, #0x10 adds r1, r2, r1 mov r0, ip adds r0, #0x10 adds r0, r3, r0 ldr r0, [r0] str r0, [r1] mov r0, r8 adds r0, #0x14 adds r2, r2, r0 mov r0, ip adds r0, #0x14 adds r3, r3, r0 ldr r0, [r3] str r0, [r2] _0800F656: mov r0, sl add sp, #4 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 _0800F668: .4byte 0x0202C550 _0800F66C: .4byte 0x0202C610 thumb_func_start sub_F670 sub_F670: @ 0x0800F670 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #8 adds r7, r0, #0 mov r8, r2 ldr r2, _0800F6D8 @ =0x086A7FAC lsls r0, r7, #1 adds r0, r0, r2 ldrh r7, [r0] ldr r6, _0800F6DC @ =0x08079730 lsls r4, r1, #1 adds r4, r4, r1 lsls r4, r4, #2 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #5 adds r4, r4, r0 adds r0, r6, #0 adds r0, #8 adds r0, r4, r0 ldr r5, [r0] lsls r0, r5, #5 adds r1, r7, #0 adds r1, #0x80 adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r1, r4, r6 mov r2, r8 lsls r2, r2, #0x10 asrs r2, r2, #0x10 mov r8, r2 ldr r2, [r1] add r2, r8 adds r6, #4 adds r4, r4, r6 ldr r3, [r4] movs r1, #1 str r1, [sp] adds r5, #1 str r5, [sp, #4] movs r1, #8 bl sub_105A0 add sp, #8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800F6D8: .4byte 0x086A7FAC _0800F6DC: .4byte 0x08079730 thumb_func_start sub_F6E0 sub_F6E0: @ 0x0800F6E0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r1, _0800F740 @ =0x0202BEB0 movs r0, #0 strb r0, [r1] movs r2, #0 ldr r0, _0800F744 @ =0x0200B134 mov r8, r0 ldr r3, _0800F748 @ =0x08079430 mov ip, r3 _0800F6F8: movs r1, #0 lsls r0, r2, #1 adds r7, r2, #1 mov sb, r7 adds r0, r0, r2 lsls r5, r0, #6 adds r6, r5, #0 adds r6, #0xe4 _0800F708: lsls r0, r1, #1 adds r4, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r1, r0, r6 add r1, r8 adds r2, r0, r5 movs r3, #5 _0800F718: mov r7, ip adds r0, r2, r7 ldr r0, [r0] stm r1!, {r0} adds r2, #4 subs r3, #1 cmp r3, #0 bge _0800F718 adds r1, r4, #0 cmp r1, #7 ble _0800F708 mov r2, sb cmp r2, #1 ble _0800F6F8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800F740: .4byte 0x0202BEB0 _0800F744: .4byte 0x0200B134 _0800F748: .4byte 0x08079430 thumb_func_start sub_F74C sub_F74C: @ 0x0800F74C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 movs r0, #0 mov r8, r0 ldr r1, _0800F85C @ =0x0200B134 str r1, [sp] _0800F760: bl sub_C00 movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 mov r3, r8 lsls r2, r3, #1 adds r1, r2, r3 lsls r1, r1, #6 ldr r3, _0800F860 @ =0x0200B218 adds r0, r1, r3 str r4, [r0] mov sb, r2 mov r0, r8 adds r0, #1 str r0, [sp, #8] ldr r2, [sp] adds r1, r2, r1 adds r6, r1, #0 adds r6, #0xe8 movs r5, #2 _0800F78E: bl sub_C00 movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bhi _0800F7AE bl sub_C00 movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 _0800F7AE: stm r6!, {r4} subs r5, #1 cmp r5, #0 bge _0800F78E bl sub_C00 adds r7, r0, #0 bl sub_C00 adds r6, r0, #0 mov r0, sb add r0, r8 lsls r0, r0, #6 ldr r1, [sp] adds r1, #0xf4 adds r1, r0, r1 str r7, [r1] ldr r3, _0800F864 @ =0x0200B22C adds r1, r0, r3 str r6, [r1] movs r1, #1 mov r8, r1 ldr r2, [sp] str r2, [sp, #4] mov sl, r0 _0800F7E0: bl sub_C00 movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 mov r3, r8 lsls r2, r3, #1 adds r1, r2, r3 lsls r1, r1, #3 mov r3, sl adds r0, r1, r3 ldr r3, _0800F860 @ =0x0200B218 adds r0, r0, r3 str r4, [r0] str r2, [sp, #0x10] mov r0, r8 adds r0, #1 str r0, [sp, #0xc] adds r1, #4 movs r5, #2 adds r0, r3, #0 add r0, sl adds r1, r1, r0 mov sb, r1 _0800F814: bl sub_C00 movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bhi _0800F834 bl sub_C00 movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 _0800F834: mov r1, sb adds r1, #4 mov sb, r1 subs r1, #4 stm r1!, {r4} subs r5, #1 cmp r5, #0 bge _0800F814 bl sub_C00 adds r1, r7, #0 bl __umodsi3 adds r7, r0, #0 cmp r7, #0 beq _0800F868 bl sub_C00 b _0800F872 .align 2, 0 _0800F85C: .4byte 0x0200B134 _0800F860: .4byte 0x0200B218 _0800F864: .4byte 0x0200B22C _0800F868: bl sub_C00 adds r1, r6, #0 bl __umodsi3 _0800F872: adds r6, r0, #0 ldr r1, [sp, #0x10] add r1, r8 lsls r1, r1, #3 add r1, sl ldr r0, [sp, #4] adds r0, #0xf4 adds r0, r1, r0 str r7, [r0] ldr r2, _0800F8AC @ =0x0200B22C adds r1, r1, r2 str r6, [r1] ldr r3, [sp, #0xc] mov r8, r3 cmp r3, #7 ble _0800F7E0 ldr r0, [sp, #8] mov r8, r0 cmp r0, #1 bgt _0800F89C b _0800F760 _0800F89C: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800F8AC: .4byte 0x0200B22C thumb_func_start sub_F8B0 sub_F8B0: @ 0x0800F8B0 push {r4, r5, r6, r7, lr} lsls r2, r2, #0x10 lsrs r5, r2, #0x10 cmp r0, #0 beq _0800F8BC b _0800F9CC _0800F8BC: cmp r1, #0 bne _0800F93C ldr r0, _0800F924 @ =0x03005C00 ldr r7, _0800F928 @ =0x000090EA ldr r6, _0800F92C @ =0x0000912A ldr r1, _0800F930 @ =0x086A7FA4 adds r2, r0, #0 adds r2, #0x98 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r1 movs r4, #0xe _0800F8D4: ldrh r1, [r2] adds r0, r1, #0 cmp r0, r7 beq _0800F8E8 cmp r0, r6 beq _0800F8E8 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r1, r0 strh r0, [r2] _0800F8E8: adds r2, #2 subs r4, #1 cmp r4, #0 bge _0800F8D4 ldr r0, _0800F924 @ =0x03005C00 ldr r7, _0800F934 @ =0x0000910A ldr r6, _0800F938 @ =0x0000914A ldr r1, _0800F930 @ =0x086A7FA4 adds r3, r0, #0 adds r3, #0xd8 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r1 movs r4, #0xe _0800F904: ldrh r1, [r3] adds r0, r1, #0 cmp r0, r7 beq _0800F918 cmp r0, r6 beq _0800F918 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r1, r0 strh r0, [r3] _0800F918: adds r3, #2 subs r4, #1 cmp r4, #0 bge _0800F904 b _0800FAC2 .align 2, 0 _0800F924: .4byte 0x03005C00 _0800F928: .4byte 0x000090EA _0800F92C: .4byte 0x0000912A _0800F930: .4byte 0x086A7FA4 _0800F934: .4byte 0x0000910A _0800F938: .4byte 0x0000914A _0800F93C: lsls r1, r1, #1 adds r0, r1, #3 lsls r0, r0, #5 adds r3, r0, #0 adds r3, #0xc adds r6, r1, #0 ldr r1, _0800F9B4 @ =0x03005C00 ldr r0, _0800F9B8 @ =0x0000916A mov ip, r0 ldr r7, _0800F9BC @ =0x000091AA ldr r2, _0800F9C0 @ =0x086A7FA4 lsls r0, r3, #1 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r2 movs r4, #0xe _0800F95E: ldrh r2, [r1] adds r0, r2, #0 cmp r0, ip beq _0800F972 cmp r0, r7 beq _0800F972 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r2, r0 strh r0, [r1] _0800F972: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800F95E adds r0, r6, #4 lsls r0, r0, #5 adds r3, r0, #0 adds r3, #0xc ldr r1, _0800F9B4 @ =0x03005C00 ldr r7, _0800F9C4 @ =0x0000918A ldr r6, _0800F9C8 @ =0x000091CA ldr r2, _0800F9C0 @ =0x086A7FA4 lsls r0, r3, #1 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r2 movs r4, #0xe _0800F996: ldrh r3, [r1] adds r0, r3, #0 cmp r0, r7 beq _0800F9AA cmp r0, r6 beq _0800F9AA movs r0, #0 ldrsb r0, [r2, r0] adds r0, r3, r0 strh r0, [r1] _0800F9AA: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800F996 b _0800FAC2 .align 2, 0 _0800F9B4: .4byte 0x03005C00 _0800F9B8: .4byte 0x0000916A _0800F9BC: .4byte 0x000091AA _0800F9C0: .4byte 0x086A7FA4 _0800F9C4: .4byte 0x0000918A _0800F9C8: .4byte 0x000091CA _0800F9CC: cmp r1, #0 bne _0800FA54 ldr r0, _0800FA34 @ =0x03005C00 ldr r7, _0800FA38 @ =0x000090EA ldr r6, _0800FA3C @ =0x0000912A ldr r1, _0800FA40 @ =0x086A7FA4 ldr r3, _0800FA44 @ =0x00000894 adds r2, r0, r3 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r1 movs r4, #0xe _0800F9E4: ldrh r1, [r2] adds r0, r1, #0 cmp r0, r7 beq _0800F9F8 cmp r0, r6 beq _0800F9F8 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r1, r0 strh r0, [r2] _0800F9F8: adds r2, #2 subs r4, #1 cmp r4, #0 bge _0800F9E4 ldr r0, _0800FA34 @ =0x03005C00 ldr r7, _0800FA48 @ =0x0000910A ldr r6, _0800FA4C @ =0x0000914A ldr r1, _0800FA40 @ =0x086A7FA4 ldr r4, _0800FA50 @ =0x000008D4 adds r3, r0, r4 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r1 movs r4, #0xe _0800FA14: ldrh r1, [r3] adds r0, r1, #0 cmp r0, r7 beq _0800FA28 cmp r0, r6 beq _0800FA28 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r1, r0 strh r0, [r3] _0800FA28: adds r3, #2 subs r4, #1 cmp r4, #0 bge _0800FA14 b _0800FAC2 .align 2, 0 _0800FA34: .4byte 0x03005C00 _0800FA38: .4byte 0x000090EA _0800FA3C: .4byte 0x0000912A _0800FA40: .4byte 0x086A7FA4 _0800FA44: .4byte 0x00000894 _0800FA48: .4byte 0x0000910A _0800FA4C: .4byte 0x0000914A _0800FA50: .4byte 0x000008D4 _0800FA54: lsls r0, r1, #1 lsls r3, r0, #6 adds r6, r0, #0 ldr r1, _0800FAC8 @ =0x03005C00 ldr r0, _0800FACC @ =0x0000916A mov ip, r0 ldr r7, _0800FAD0 @ =0x000091AA ldr r2, _0800FAD4 @ =0x086A7FA4 ldr r4, _0800FAD8 @ =0x000008D4 adds r0, r3, r4 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r2 movs r4, #0xe _0800FA72: ldrh r2, [r1] adds r0, r2, #0 cmp r0, ip beq _0800FA86 cmp r0, r7 beq _0800FA86 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r2, r0 strh r0, [r1] _0800FA86: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800FA72 lsls r3, r6, #6 ldr r1, _0800FAC8 @ =0x03005C00 ldr r7, _0800FADC @ =0x0000918A ldr r6, _0800FAE0 @ =0x000091CA ldr r2, _0800FAD4 @ =0x086A7FA4 ldr r4, _0800FAE4 @ =0x00000914 adds r0, r3, r4 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r2 movs r4, #0xe _0800FAA6: ldrh r3, [r1] adds r0, r3, #0 cmp r0, r7 beq _0800FABA cmp r0, r6 beq _0800FABA movs r0, #0 ldrsb r0, [r2, r0] adds r0, r3, r0 strh r0, [r1] _0800FABA: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800FAA6 _0800FAC2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800FAC8: .4byte 0x03005C00 _0800FACC: .4byte 0x0000916A _0800FAD0: .4byte 0x000091AA _0800FAD4: .4byte 0x086A7FA4 _0800FAD8: .4byte 0x000008D4 _0800FADC: .4byte 0x0000918A _0800FAE0: .4byte 0x000091CA _0800FAE4: .4byte 0x00000914 thumb_func_start sub_FAE8 sub_FAE8: @ 0x0800FAE8 push {r4, r5, r6, r7, lr} lsls r2, r2, #0x10 lsrs r5, r2, #0x10 cmp r0, #0 beq _0800FAF4 b _0800FC04 _0800FAF4: cmp r1, #0 bne _0800FB74 ldr r0, _0800FB5C @ =0x03005C00 ldr r7, _0800FB60 @ =0x000090EA ldr r6, _0800FB64 @ =0x0000912A ldr r1, _0800FB68 @ =0x086A7FA8 adds r2, r0, #0 adds r2, #0x98 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r1 movs r4, #0xe _0800FB0C: ldrh r1, [r2] adds r0, r1, #0 cmp r0, r7 beq _0800FB20 cmp r0, r6 beq _0800FB20 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r1, r0 strh r0, [r2] _0800FB20: adds r2, #2 subs r4, #1 cmp r4, #0 bge _0800FB0C ldr r0, _0800FB5C @ =0x03005C00 ldr r7, _0800FB6C @ =0x0000910A ldr r6, _0800FB70 @ =0x0000914A ldr r1, _0800FB68 @ =0x086A7FA8 adds r3, r0, #0 adds r3, #0xd8 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r1 movs r4, #0xe _0800FB3C: ldrh r1, [r3] adds r0, r1, #0 cmp r0, r7 beq _0800FB50 cmp r0, r6 beq _0800FB50 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r1, r0 strh r0, [r3] _0800FB50: adds r3, #2 subs r4, #1 cmp r4, #0 bge _0800FB3C b _0800FCFA .align 2, 0 _0800FB5C: .4byte 0x03005C00 _0800FB60: .4byte 0x000090EA _0800FB64: .4byte 0x0000912A _0800FB68: .4byte 0x086A7FA8 _0800FB6C: .4byte 0x0000910A _0800FB70: .4byte 0x0000914A _0800FB74: lsls r1, r1, #1 adds r0, r1, #3 lsls r0, r0, #5 adds r3, r0, #0 adds r3, #0xc adds r6, r1, #0 ldr r1, _0800FBEC @ =0x03005C00 ldr r0, _0800FBF0 @ =0x0000916A mov ip, r0 ldr r7, _0800FBF4 @ =0x000091AA ldr r2, _0800FBF8 @ =0x086A7FA8 lsls r0, r3, #1 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r2 movs r4, #0xe _0800FB96: ldrh r2, [r1] adds r0, r2, #0 cmp r0, ip beq _0800FBAA cmp r0, r7 beq _0800FBAA movs r0, #0 ldrsb r0, [r3, r0] adds r0, r2, r0 strh r0, [r1] _0800FBAA: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800FB96 adds r0, r6, #4 lsls r0, r0, #5 adds r3, r0, #0 adds r3, #0xc ldr r1, _0800FBEC @ =0x03005C00 ldr r7, _0800FBFC @ =0x0000918A ldr r6, _0800FC00 @ =0x000091CA ldr r2, _0800FBF8 @ =0x086A7FA8 lsls r0, r3, #1 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r2 movs r4, #0xe _0800FBCE: ldrh r3, [r1] adds r0, r3, #0 cmp r0, r7 beq _0800FBE2 cmp r0, r6 beq _0800FBE2 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r3, r0 strh r0, [r1] _0800FBE2: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800FBCE b _0800FCFA .align 2, 0 _0800FBEC: .4byte 0x03005C00 _0800FBF0: .4byte 0x0000916A _0800FBF4: .4byte 0x000091AA _0800FBF8: .4byte 0x086A7FA8 _0800FBFC: .4byte 0x0000918A _0800FC00: .4byte 0x000091CA _0800FC04: cmp r1, #0 bne _0800FC8C ldr r0, _0800FC6C @ =0x03005C00 ldr r7, _0800FC70 @ =0x000090EA ldr r6, _0800FC74 @ =0x0000912A ldr r1, _0800FC78 @ =0x086A7FA8 ldr r3, _0800FC7C @ =0x00000894 adds r2, r0, r3 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r1 movs r4, #0xe _0800FC1C: ldrh r1, [r2] adds r0, r1, #0 cmp r0, r7 beq _0800FC30 cmp r0, r6 beq _0800FC30 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r1, r0 strh r0, [r2] _0800FC30: adds r2, #2 subs r4, #1 cmp r4, #0 bge _0800FC1C ldr r0, _0800FC6C @ =0x03005C00 ldr r7, _0800FC80 @ =0x0000910A ldr r6, _0800FC84 @ =0x0000914A ldr r1, _0800FC78 @ =0x086A7FA8 ldr r4, _0800FC88 @ =0x000008D4 adds r3, r0, r4 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r1 movs r4, #0xe _0800FC4C: ldrh r1, [r3] adds r0, r1, #0 cmp r0, r7 beq _0800FC60 cmp r0, r6 beq _0800FC60 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r1, r0 strh r0, [r3] _0800FC60: adds r3, #2 subs r4, #1 cmp r4, #0 bge _0800FC4C b _0800FCFA .align 2, 0 _0800FC6C: .4byte 0x03005C00 _0800FC70: .4byte 0x000090EA _0800FC74: .4byte 0x0000912A _0800FC78: .4byte 0x086A7FA8 _0800FC7C: .4byte 0x00000894 _0800FC80: .4byte 0x0000910A _0800FC84: .4byte 0x0000914A _0800FC88: .4byte 0x000008D4 _0800FC8C: lsls r0, r1, #1 lsls r3, r0, #6 adds r6, r0, #0 ldr r1, _0800FD00 @ =0x03005C00 ldr r0, _0800FD04 @ =0x0000916A mov ip, r0 ldr r7, _0800FD08 @ =0x000091AA ldr r2, _0800FD0C @ =0x086A7FA8 ldr r4, _0800FD10 @ =0x000008D4 adds r0, r3, r4 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r3, r0, r2 movs r4, #0xe _0800FCAA: ldrh r2, [r1] adds r0, r2, #0 cmp r0, ip beq _0800FCBE cmp r0, r7 beq _0800FCBE movs r0, #0 ldrsb r0, [r3, r0] adds r0, r2, r0 strh r0, [r1] _0800FCBE: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800FCAA lsls r3, r6, #6 ldr r1, _0800FD00 @ =0x03005C00 ldr r7, _0800FD14 @ =0x0000918A ldr r6, _0800FD18 @ =0x000091CA ldr r2, _0800FD0C @ =0x086A7FA8 ldr r4, _0800FD1C @ =0x00000914 adds r0, r3, r4 adds r1, r0, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r2, r0, r2 movs r4, #0xe _0800FCDE: ldrh r3, [r1] adds r0, r3, #0 cmp r0, r7 beq _0800FCF2 cmp r0, r6 beq _0800FCF2 movs r0, #0 ldrsb r0, [r2, r0] adds r0, r3, r0 strh r0, [r1] _0800FCF2: adds r1, #2 subs r4, #1 cmp r4, #0 bge _0800FCDE _0800FCFA: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800FD00: .4byte 0x03005C00 _0800FD04: .4byte 0x0000916A _0800FD08: .4byte 0x000091AA _0800FD0C: .4byte 0x086A7FA8 _0800FD10: .4byte 0x000008D4 _0800FD14: .4byte 0x0000918A _0800FD18: .4byte 0x000091CA _0800FD1C: .4byte 0x00000914 thumb_func_start sub_FD20 sub_FD20: @ 0x0800FD20 sub sp, #0x19c movs r2, #0 ldr r3, _0800FD48 @ =0x0200B134 mov r1, sp _0800FD28: adds r0, r2, r3 ldrb r0, [r0] strh r0, [r1] adds r1, #2 adds r2, #1 cmp r2, #0xcc ble _0800FD28 movs r2, #0 mov r1, sp _0800FD3A: movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #4 beq _0800FD4C movs r0, #0 b _0800FD56 .align 2, 0 _0800FD48: .4byte 0x0200B134 _0800FD4C: adds r1, #2 adds r2, #1 cmp r2, #0xc8 ble _0800FD3A movs r0, #1 _0800FD56: add sp, #0x19c bx lr thumb_func_start sub_FD5C sub_FD5C: @ 0x0800FD5C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 mov r8, r0 ldr r4, _0800FDC8 @ =0x040000D4 movs r6, #0xa0 lsls r6, r6, #0x13 str r6, [r4] ldr r2, _0800FDCC @ =0x0201A920 str r2, [r4, #4] ldr r5, _0800FDD0 @ =0x80000200 str r5, [r4, #8] ldr r0, [r4, #8] mov r1, sp ldr r3, _0800FDD4 @ =0x00007FFF adds r0, r3, #0 strh r0, [r1] str r1, [r4] ldr r0, _0800FDD8 @ =0xFFFFFC00 adds r1, r2, r0 str r1, [r4, #4] ldr r0, _0800FDDC @ =0x81000200 str r0, [r4, #8] ldr r0, [r4, #8] str r1, [r4] movs r3, #0x80 lsls r3, r3, #3 adds r2, r2, r3 str r2, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] str r2, [r4] str r6, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] bl sub_1050C movs r7, #0 _0800FDAA: mov r0, r8 cmp r0, #0 beq _0800FDB4 bl _call_via_r8 _0800FDB4: adds r0, r7, #0 bl sub_1001C bl sub_D74 cmp r7, #0x1f bne _0800FDE0 ldr r0, _0800FDCC @ =0x0201A920 b _0800FDE2 .align 2, 0 _0800FDC8: .4byte 0x040000D4 _0800FDCC: .4byte 0x0201A920 _0800FDD0: .4byte 0x80000200 _0800FDD4: .4byte 0x00007FFF _0800FDD8: .4byte 0xFFFFFC00 _0800FDDC: .4byte 0x81000200 _0800FDE0: ldr r0, _0800FE00 @ =0x0201AD20 _0800FDE2: str r0, [r4] str r6, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0x1f bls _0800FDAA add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800FE00: .4byte 0x0201AD20 thumb_func_start sub_FE04 sub_FE04: @ 0x0800FE04 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r5, r0, #0 ldr r1, _0800FE6C @ =0x040000D4 movs r0, #0xa0 lsls r0, r0, #0x13 mov r8, r0 str r0, [r1] ldr r3, _0800FE70 @ =0x0201A520 str r3, [r1, #4] ldr r4, _0800FE74 @ =0x80000200 str r4, [r1, #8] ldr r0, [r1, #8] mov r2, sp ldr r6, _0800FE78 @ =0x00007FFF adds r0, r6, #0 strh r0, [r2] str r2, [r1] movs r2, #0x80 lsls r2, r2, #3 adds r0, r3, r2 str r0, [r1, #4] ldr r0, _0800FE7C @ =0x81000200 str r0, [r1, #8] ldr r0, [r1, #8] str r3, [r1] movs r6, #0x80 lsls r6, r6, #4 adds r3, r3, r6 str r3, [r1, #4] str r4, [r1, #8] ldr r0, [r1, #8] movs r7, #0 adds r6, r1, #0 _0800FE4C: cmp r5, #0 beq _0800FE54 bl _call_via_r5 _0800FE54: adds r0, r7, #0 bl sub_1001C bl sub_D74 cmp r7, #0x1f bne _0800FE84 ldr r0, _0800FE80 @ =0x0201A920 str r0, [r6] mov r0, r8 str r0, [r6, #4] b _0800FE8C .align 2, 0 _0800FE6C: .4byte 0x040000D4 _0800FE70: .4byte 0x0201A520 _0800FE74: .4byte 0x80000200 _0800FE78: .4byte 0x00007FFF _0800FE7C: .4byte 0x81000200 _0800FE80: .4byte 0x0201A920 _0800FE84: ldr r0, _0800FEB4 @ =0x0201AD20 str r0, [r6] mov r2, r8 str r2, [r6, #4] _0800FE8C: str r4, [r6, #8] ldr r0, [r6, #8] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0x1f bls _0800FE4C bl sub_10528 bl sub_D74 bl sub_490 add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800FEB4: .4byte 0x0201AD20 thumb_func_start sub_FEB8 sub_FEB8: @ 0x0800FEB8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 mov r8, r2 ldr r4, _0800FF34 @ =0x040000D4 str r0, [r4] ldr r2, _0800FF38 @ =0x0201A920 str r2, [r4, #4] ldr r0, _0800FF3C @ =0x80000100 str r0, [r4, #8] ldr r3, [r4, #8] str r1, [r4] movs r1, #0x80 lsls r1, r1, #3 adds r3, r2, r1 str r3, [r4, #4] str r0, [r4, #8] ldr r0, [r4, #8] mov r1, sp movs r0, #0 strh r0, [r1] str r1, [r4] ldr r0, _0800FF40 @ =0xFFFFFC00 adds r2, r2, r0 str r2, [r4, #4] ldr r0, _0800FF44 @ =0x81000200 str r0, [r4, #8] ldr r0, [r4, #8] str r2, [r4] str r3, [r4, #4] ldr r5, _0800FF48 @ =0x80000200 str r5, [r4, #8] ldr r0, [r4, #8] str r3, [r4] movs r6, #0xa0 lsls r6, r6, #0x13 str r6, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] bl sub_1050C ldr r1, _0800FF4C @ =gMain movs r0, #0x80 lsls r0, r0, #0x13 ldrh r0, [r0] strh r0, [r1, #0x16] movs r7, #0 _0800FF18: mov r1, r8 cmp r1, #0 beq _0800FF22 bl _call_via_r8 _0800FF22: adds r0, r7, #0 bl sub_1001C bl sub_D74 cmp r7, #0x1f bne _0800FF50 ldr r0, _0800FF38 @ =0x0201A920 b _0800FF52 .align 2, 0 _0800FF34: .4byte 0x040000D4 _0800FF38: .4byte 0x0201A920 _0800FF3C: .4byte 0x80000100 _0800FF40: .4byte 0xFFFFFC00 _0800FF44: .4byte 0x81000200 _0800FF48: .4byte 0x80000200 _0800FF4C: .4byte gMain _0800FF50: ldr r0, _0800FF70 @ =0x0201AD20 _0800FF52: str r0, [r4] str r6, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0x1f bls _0800FF18 add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800FF70: .4byte 0x0201AD20 thumb_func_start sub_FF74 sub_FF74: @ 0x0800FF74 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r5, r0, #0 ldr r1, _0800FFDC @ =0x040000D4 movs r0, #0xa0 lsls r0, r0, #0x13 mov r8, r0 str r0, [r1] ldr r3, _0800FFE0 @ =0x0201A520 str r3, [r1, #4] ldr r4, _0800FFE4 @ =0x80000200 str r4, [r1, #8] ldr r0, [r1, #8] mov r2, sp movs r0, #0 strh r0, [r2] str r2, [r1] movs r2, #0x80 lsls r2, r2, #3 adds r0, r3, r2 str r0, [r1, #4] ldr r0, _0800FFE8 @ =0x81000200 str r0, [r1, #8] ldr r0, [r1, #8] str r3, [r1] movs r0, #0x80 lsls r0, r0, #4 adds r3, r3, r0 str r3, [r1, #4] str r4, [r1, #8] ldr r0, [r1, #8] movs r7, #0 adds r6, r1, #0 _0800FFBA: cmp r5, #0 beq _0800FFC2 bl _call_via_r5 _0800FFC2: adds r0, r7, #0 bl sub_1001C bl sub_D74 cmp r7, #0x1f bne _0800FFF0 ldr r0, _0800FFEC @ =0x0201A920 str r0, [r6] mov r2, r8 str r2, [r6, #4] b _0800FFF8 .align 2, 0 _0800FFDC: .4byte 0x040000D4 _0800FFE0: .4byte 0x0201A520 _0800FFE4: .4byte 0x80000200 _0800FFE8: .4byte 0x81000200 _0800FFEC: .4byte 0x0201A920 _0800FFF0: ldr r0, _08010018 @ =0x0201AD20 str r0, [r6] mov r0, r8 str r0, [r6, #4] _0800FFF8: str r4, [r6, #8] ldr r0, [r6, #8] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0x1f bls _0800FFBA bl sub_D74 add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08010018: .4byte 0x0201AD20 thumb_func_start sub_1001C sub_1001C: @ 0x0801001C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 add r1, sp, #0xc movs r0, #0 strh r0, [r1] movs r0, #2 strh r0, [r1, #2] movs r0, #1 strh r0, [r1, #4] movs r2, #3 strh r2, [r1, #6] adds r0, r7, #0 ands r0, r2 lsls r0, r0, #1 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #0x17 lsrs r1, r0, #0x10 mov ip, r1 movs r1, #0x80 lsls r1, r1, #0x10 adds r0, r0, r1 lsrs r0, r0, #0x10 mov r8, r0 ldr r0, _080100D8 @ =0x0000FFFC ands r7, r0 adds r0, r7, #4 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp ip, r8 bhs _08010160 add r5, sp, #8 ldr r0, _080100DC @ =0x0201A520 mov sb, r0 add r4, sp, #4 mov r6, sp movs r1, #0xf8 lsls r1, r1, #7 mov sl, r1 _08010076: mov r0, ip lsls r3, r0, #1 mov r1, sb adds r2, r3, r1 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r5] ldrh r1, [r2] movs r0, #0xf8 lsls r0, r0, #2 ands r0, r1 lsrs r0, r0, #5 strh r0, [r4] ldrh r1, [r2] mov r0, sl ands r0, r1 lsrs r0, r0, #0xa strh r0, [r6] movs r2, #0x80 lsls r2, r2, #3 add r2, sb adds r2, r3, r2 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r5, #2] ldrh r1, [r2] movs r0, #0xf8 lsls r0, r0, #2 ands r0, r1 lsrs r0, r0, #5 strh r0, [r4, #2] ldrh r1, [r2] mov r0, sl ands r0, r1 lsrs r0, r0, #0xa strh r0, [r6, #2] ldrh r1, [r6] cmp r1, r0 bhs _080100E0 ldrh r0, [r6, #2] subs r0, r0, r1 muls r0, r7, r0 asrs r0, r0, #5 adds r1, r1, r0 strh r1, [r6] b _080100EE .align 2, 0 _080100D8: .4byte 0x0000FFFC _080100DC: .4byte 0x0201A520 _080100E0: ldrh r0, [r6] ldrh r1, [r6, #2] subs r1, r0, r1 muls r1, r7, r1 asrs r1, r1, #5 subs r0, r0, r1 strh r0, [r6] _080100EE: ldrh r1, [r4, #2] ldrh r0, [r4] cmp r0, r1 bhs _08010106 ldrh r0, [r4, #2] ldrh r1, [r4] subs r0, r0, r1 muls r0, r7, r0 asrs r0, r0, #5 adds r1, r1, r0 strh r1, [r4] b _08010114 _08010106: ldrh r0, [r4] ldrh r1, [r4, #2] subs r1, r0, r1 muls r1, r7, r1 asrs r1, r1, #5 subs r0, r0, r1 strh r0, [r4] _08010114: ldrh r1, [r5, #2] ldrh r0, [r5] cmp r0, r1 bhs _0801012C ldrh r0, [r5, #2] ldrh r1, [r5] subs r0, r0, r1 muls r0, r7, r0 asrs r0, r0, #5 adds r1, r1, r0 strh r1, [r5] b _0801013A _0801012C: ldrh r0, [r5] ldrh r1, [r5, #2] subs r1, r0, r1 muls r1, r7, r1 asrs r1, r1, #5 subs r0, r0, r1 strh r0, [r5] _0801013A: movs r2, #0x80 lsls r2, r2, #4 add r2, sb adds r2, r3, r2 ldrh r1, [r6] lsls r1, r1, #0xa ldrh r0, [r4] lsls r0, r0, #5 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r2] mov r0, ip adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov ip, r0 cmp ip, r8 blo _08010076 _08010160: 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_10170 sub_10170: @ 0x08010170 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 str r1, [sp, #0x10] lsls r2, r2, #0x10 lsrs r1, r2, #0x10 mov r8, r1 lsls r3, r3, #0x10 lsrs r3, r3, #0x10 mov ip, r3 ldr r1, _08010298 @ =0x040000D4 str r0, [r1] ldr r4, _0801029C @ =0x0201A520 str r4, [r1, #4] lsrs r2, r2, #0x11 movs r0, #0x80 lsls r0, r0, #0x18 orrs r0, r2 str r0, [r1, #8] ldr r0, [r1, #8] add r3, sp, #0xc movs r0, #0 strh r0, [r3] str r3, [r1] movs r0, #0x80 lsls r0, r0, #3 adds r3, r4, r0 str r3, [r1, #4] movs r0, #0x81 lsls r0, r0, #0x18 orrs r2, r0 str r2, [r1, #8] ldr r0, [r1, #8] movs r7, #0 cmp r7, r8 bhs _08010270 add r5, sp, #8 add r4, sp, #4 movs r1, #0xf8 lsls r1, r1, #2 mov sl, r1 mov r6, sp movs r0, #0xf8 lsls r0, r0, #7 mov sb, r0 _080101D0: lsls r3, r7, #1 ldr r1, _0801029C @ =0x0201A520 adds r2, r3, r1 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r5] ldrh r1, [r2] mov r0, sl ands r0, r1 lsrs r0, r0, #5 strh r0, [r4] ldrh r1, [r2] mov r0, sb ands r0, r1 lsrs r0, r0, #0xa strh r0, [r6] ldr r0, _080102A0 @ =0x0201A920 adds r2, r3, r0 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r5, #2] ldrh r1, [r2] mov r0, sl ands r0, r1 lsrs r0, r0, #5 strh r0, [r4, #2] ldrh r1, [r2] mov r0, sb ands r0, r1 lsrs r1, r0, #0xa strh r1, [r6, #2] ldrh r0, [r6] cmp r0, r1 bls _08010222 adds r1, r0, #0 mov r0, ip muls r0, r1, r0 asrs r0, r0, #5 subs r1, r1, r0 _08010222: strh r1, [r6] ldrh r1, [r4, #2] ldrh r0, [r4] cmp r0, r1 bls _08010236 adds r1, r0, #0 mov r0, ip muls r0, r1, r0 asrs r0, r0, #5 subs r1, r1, r0 _08010236: strh r1, [r4] ldrh r1, [r5, #2] ldrh r0, [r5] cmp r0, r1 bls _0801024A adds r1, r0, #0 mov r0, ip muls r0, r1, r0 asrs r0, r0, #5 subs r1, r1, r0 _0801024A: strh r1, [r5] ldr r1, _0801029C @ =0x0201A520 movs r0, #0x80 lsls r0, r0, #4 adds r2, r1, r0 adds r2, r3, r2 ldrh r1, [r6] lsls r1, r1, #0xa ldrh r0, [r4] lsls r0, r0, #5 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r2] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, r8 blo _080101D0 _08010270: ldr r2, _08010298 @ =0x040000D4 ldr r1, _080102A4 @ =0x0201AD20 str r1, [r2] ldr r0, [sp, #0x10] str r0, [r2, #4] mov r1, r8 lsrs r0, r1, #1 movs r1, #0x80 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r2, #8] ldr r0, [r2, #8] add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08010298: .4byte 0x040000D4 _0801029C: .4byte 0x0201A520 _080102A0: .4byte 0x0201A920 _080102A4: .4byte 0x0201AD20 thumb_func_start sub_102A8 sub_102A8: @ 0x080102A8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 str r1, [sp, #0x10] lsls r2, r2, #0x10 lsrs r1, r2, #0x10 mov r8, r1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 ldr r1, _08010368 @ =0x040000D4 str r0, [r1] ldr r4, _0801036C @ =0x0201A520 str r4, [r1, #4] lsrs r2, r2, #0x11 movs r0, #0x80 lsls r0, r0, #0x18 orrs r0, r2 str r0, [r1, #8] ldr r0, [r1, #8] add r3, sp, #0xc ldr r5, _08010370 @ =0x00007FFF adds r0, r5, #0 strh r0, [r3] str r3, [r1] movs r3, #0x80 lsls r3, r3, #3 adds r0, r4, r3 str r0, [r1, #4] movs r0, #0x81 lsls r0, r0, #0x18 orrs r2, r0 str r2, [r1, #8] ldr r0, [r1, #8] movs r5, #0 mov ip, r5 cmp ip, r8 bhs _080103F4 add r5, sp, #8 mov sb, r4 add r4, sp, #4 mov r6, sp movs r0, #0xf8 lsls r0, r0, #7 mov sl, r0 _08010306: mov r1, ip lsls r3, r1, #1 mov r0, sb adds r2, r3, r0 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r5] ldrh r1, [r2] movs r0, #0xf8 lsls r0, r0, #2 ands r0, r1 lsrs r0, r0, #5 strh r0, [r4] ldrh r1, [r2] mov r0, sl ands r0, r1 lsrs r0, r0, #0xa strh r0, [r6] movs r2, #0x80 lsls r2, r2, #3 add r2, sb adds r2, r3, r2 ldrh r1, [r2] movs r0, #0x1f ands r0, r1 strh r0, [r5, #2] ldrh r1, [r2] movs r0, #0xf8 lsls r0, r0, #2 ands r0, r1 lsrs r0, r0, #5 strh r0, [r4, #2] ldrh r1, [r2] mov r0, sl ands r0, r1 lsrs r0, r0, #0xa strh r0, [r6, #2] ldrh r1, [r6] cmp r1, r0 bhs _08010374 ldrh r0, [r6, #2] subs r0, r0, r1 muls r0, r7, r0 asrs r0, r0, #5 adds r1, r1, r0 strh r1, [r6] b _08010382 .align 2, 0 _08010368: .4byte 0x040000D4 _0801036C: .4byte 0x0201A520 _08010370: .4byte 0x00007FFF _08010374: ldrh r0, [r6] ldrh r1, [r6, #2] subs r1, r0, r1 muls r1, r7, r1 asrs r1, r1, #5 subs r0, r0, r1 strh r0, [r6] _08010382: ldrh r1, [r4, #2] ldrh r0, [r4] cmp r0, r1 bhs _0801039A ldrh r0, [r4, #2] ldrh r1, [r4] subs r0, r0, r1 muls r0, r7, r0 asrs r0, r0, #5 adds r1, r1, r0 strh r1, [r4] b _080103A8 _0801039A: ldrh r0, [r4] ldrh r1, [r4, #2] subs r1, r0, r1 muls r1, r7, r1 asrs r1, r1, #5 subs r0, r0, r1 strh r0, [r4] _080103A8: ldrh r1, [r5, #2] ldrh r0, [r5] cmp r0, r1 bhs _080103C0 ldrh r0, [r5, #2] ldrh r1, [r5] subs r0, r0, r1 muls r0, r7, r0 asrs r0, r0, #5 adds r1, r1, r0 strh r1, [r5] b _080103CE _080103C0: ldrh r0, [r5] ldrh r1, [r5, #2] subs r1, r0, r1 muls r1, r7, r1 asrs r1, r1, #5 subs r0, r0, r1 strh r0, [r5] _080103CE: movs r2, #0x80 lsls r2, r2, #4 add r2, sb adds r2, r3, r2 ldrh r1, [r6] lsls r1, r1, #0xa ldrh r0, [r4] lsls r0, r0, #5 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r2] mov r0, ip adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov ip, r0 cmp ip, r8 blo _08010306 _080103F4: ldr r2, _0801041C @ =0x040000D4 ldr r1, _08010420 @ =0x0201AD20 str r1, [r2] ldr r3, [sp, #0x10] str r3, [r2, #4] mov r5, r8 lsrs r0, r5, #1 movs r1, #0x80 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r2, #8] ldr r0, [r2, #8] add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801041C: .4byte 0x040000D4 _08010420: .4byte 0x0201AD20 thumb_func_start sub_10424 sub_10424: @ 0x08010424 push {r4, r5, r6, lr} ldr r4, _08010470 @ =0x04000054 movs r3, #0x10 strh r3, [r4] ldr r6, _08010474 @ =0x04000050 movs r2, #0x80 lsls r2, r2, #0x13 ldrh r1, [r2] movs r0, #0xf8 lsls r0, r0, #5 ands r0, r1 lsrs r0, r0, #8 movs r1, #0xa0 orrs r0, r1 strh r0, [r6] ldrh r1, [r2] ldr r0, _08010478 @ =0x0000FF7F ands r0, r1 strh r0, [r2] ldr r1, _0801047C @ =gMain ldrh r0, [r2] movs r5, #0 strh r0, [r1, #0x16] strh r3, [r4] bl sub_D74 movs r0, #8 strh r0, [r4] bl sub_D74 strh r5, [r4] bl sub_D74 strh r5, [r6] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08010470: .4byte 0x04000054 _08010474: .4byte 0x04000050 _08010478: .4byte 0x0000FF7F _0801047C: .4byte gMain thumb_func_start sub_10480 sub_10480: @ 0x08010480 push {r4, r5, lr} sub sp, #4 ldr r5, _080104F8 @ =0x04000054 movs r4, #0 strh r4, [r5] ldr r2, _080104FC @ =0x04000050 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 orrs r0, r1 strh r0, [r2] strh r4, [r5] bl sub_D74 movs r0, #8 strh r0, [r5] bl sub_D74 movs r0, #0x10 strh r0, [r5] bl sub_D74 mov r0, sp strh r4, [r0] ldr r1, _08010500 @ =0x040000D4 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08010504 @ =0x8100C000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08010508 @ =0x04000010 strh r4, [r0] adds r0, #2 strh r4, [r0] adds r0, #2 strh r4, [r0] adds r0, #2 strh r4, [r0] adds r0, #2 strh r4, [r0] adds r0, #2 strh r4, [r0] adds r0, #2 strh r4, [r0] adds r0, #2 strh r4, [r0] bl sub_D74 add sp, #4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080104F8: .4byte 0x04000054 _080104FC: .4byte 0x04000050 _08010500: .4byte 0x040000D4 _08010504: .4byte 0x8100C000 _08010508: .4byte 0x04000010 thumb_func_start sub_1050C sub_1050C: @ 0x0801050C movs r1, #0x80 lsls r1, r1, #0x13 ldrh r2, [r1] ldr r0, _08010520 @ =0x0000FF7F ands r0, r2 strh r0, [r1] ldr r2, _08010524 @ =gMain ldrh r0, [r1] strh r0, [r2, #0x16] bx lr .align 2, 0 _08010520: .4byte 0x0000FF7F _08010524: .4byte gMain thumb_func_start sub_10528 sub_10528: @ 0x08010528 ldr r1, _08010540 @ =gMain ldrh r0, [r1, #0x16] movs r2, #0x80 orrs r0, r2 strh r0, [r1, #0x16] movs r1, #0x80 lsls r1, r1, #0x13 ldrh r0, [r1] orrs r0, r2 strh r0, [r1] bx lr .align 2, 0 _08010540: .4byte gMain thumb_func_start sub_10544 sub_10544: @ 0x08010544 ldr r1, _08010580 @ =0x04000004 ldrh r2, [r1] ldr r0, _08010584 @ =0x0000FFF7 ands r0, r2 strh r0, [r1] ldrh r2, [r1] ldr r0, _08010588 @ =0x0000FFDF ands r0, r2 strh r0, [r1] ldr r1, _0801058C @ =0x04000200 ldrh r2, [r1] ldr r0, _08010590 @ =0x00003FFF ands r0, r2 strh r0, [r1] ldrh r2, [r1] ldr r0, _08010594 @ =0x00003FFE ands r0, r2 strh r0, [r1] ldrh r0, [r1] adds r1, r0, #0 cmp r1, #0 bne _08010574 ldr r0, _08010598 @ =0x04000208 strh r1, [r0] _08010574: ldr r0, _0801059C @ =0x04000202 ldrh r1, [r0] movs r2, #1 orrs r1, r2 strh r1, [r0] bx lr .align 2, 0 _08010580: .4byte 0x04000004 _08010584: .4byte 0x0000FFF7 _08010588: .4byte 0x0000FFDF _0801058C: .4byte 0x04000200 _08010590: .4byte 0x00003FFF _08010594: .4byte 0x00003FFE _08010598: .4byte 0x04000208 _0801059C: .4byte 0x04000202 thumb_func_start sub_105A0 sub_105A0: @ 0x080105A0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, [sp, #0x24] mov ip, r4 ldr r4, [sp, #0x28] mov sb, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 movs r1, #0 cmp r1, sb bge _08010602 lsls r0, r3, #5 adds r0, r0, r2 mov r8, r0 _080105CC: movs r2, #0 adds r6, r1, #1 cmp r2, ip bge _080105FA ldr r7, _08010614 @ =0x03005C00 lsls r0, r1, #5 mov r1, r8 adds r5, r1, r0 ldr r1, [sp] adds r4, r1, r0 mov r0, sl lsls r3, r0, #0xc _080105E4: adds r0, r5, r2 lsls r0, r0, #1 adds r0, r0, r7 adds r1, r2, r4 orrs r1, r3 strh r1, [r0] adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 cmp r2, ip blt _080105E4 _080105FA: lsls r0, r6, #0x10 lsrs r1, r0, #0x10 cmp r1, sb blt _080105CC _08010602: 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 _08010614: .4byte 0x03005C00 thumb_func_start sub_10618 sub_10618: @ 0x08010618 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 adds r4, r1, #0 ldr r7, [sp, #0x20] ldr r0, [sp, #0x24] mov ip, r0 movs r1, #0 cmp r1, ip bge _08010678 ldr r0, _08010688 @ =0x03005C00 mov sl, r0 lsls r0, r3, #5 adds r0, r0, r2 mov sb, r0 lsls r0, r4, #5 adds r0, r0, r5 mov r8, r0 _08010642: movs r2, #0 adds r6, r1, #1 cmp r2, r7 bge _08010670 mov r4, sl lsls r0, r1, #5 mov r1, sb adds r5, r1, r0 mov r1, r8 adds r3, r1, r0 _08010656: adds r1, r5, r2 lsls r1, r1, #1 adds r1, r1, r4 adds r0, r3, r2 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 cmp r2, r7 blt _08010656 _08010670: lsls r0, r6, #0x10 lsrs r1, r0, #0x10 cmp r1, ip blt _08010642 _08010678: 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 _08010688: .4byte 0x03005C00