.include "asm/macros.inc" .syntax unified .text thumb_func_start sub_24C sub_24C: @ 0x0800024C push {r4, r5, r6, lr} ldr r3, _080002A4 @ =0x04000050 movs r0, #0 strh r0, [r3] ldr r4, _080002A8 @ =0x04000054 movs r0, #0x10 strh r0, [r4] 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, [r3] ldrh r1, [r2] ldr r0, _080002AC @ =0x0000FF7F ands r0, r1 strh r0, [r2] ldr r1, _080002B0 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r1, #0x16] movs r5, #0 adds r6, r4, #0 movs r4, #0xf _08000282: lsrs r0, r5, #1 subs r0, r4, r0 strh r0, [r6] bl sub_D74 adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r5, #0x1f bls _08000282 ldr r1, _080002A4 @ =0x04000050 movs r0, #0 strh r0, [r1] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080002A4: .4byte 0x04000050 _080002A8: .4byte 0x04000054 _080002AC: .4byte 0x0000FF7F _080002B0: .4byte 0x0200B0C0 thumb_func_start sub_2B4 sub_2B4: @ 0x080002B4 push {r4, r5, lr} sub sp, #4 ldr r3, _08000344 @ =0x04000050 movs r0, #0 strh r0, [r3] ldr r2, _08000348 @ =0x04000054 strh r0, [r2] 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, [r3] movs r4, #0 adds r5, r2, #0 _080002DA: adds r4, #1 strh r4, [r5] bl sub_D74 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0xf bls _080002DA ldr r1, _0800034C @ =0x0200B0C0 ldrh r0, [r1, #0x16] movs r3, #0x80 movs r2, #0 orrs r0, r3 strh r0, [r1, #0x16] movs r1, #0x80 lsls r1, r1, #0x13 ldrh r0, [r1] orrs r0, r3 strh r0, [r1] mov r0, sp strh r2, [r0] adds r1, #0xd4 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08000350 @ =0x8100C000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08000354 @ =0x04000010 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #0x32 strh r2, [r0] adds r0, #4 strh r2, [r0] add sp, #4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08000344: .4byte 0x04000050 _08000348: .4byte 0x04000054 _0800034C: .4byte 0x0200B0C0 _08000350: .4byte 0x8100C000 _08000354: .4byte 0x04000010 thumb_func_start sub_358 sub_358: @ 0x08000358 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 str r0, [sp] str r2, [sp, #8] lsls r1, r1, #0x10 lsrs r1, r1, #0x10 str r1, [sp, #4] ldr r4, _08000424 @ =0x03005000 movs r7, #0 ldr r2, _08000428 @ =0x040000D4 ldr r0, _0800042C @ =0x08057C46 str r0, [r2] str r4, [r2, #4] ldr r0, _08000430 @ =0x80000200 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r0, [sp, #4] cmp r7, r0 bhs _0800040E mov ip, r2 _0800038A: movs r0, #0xb8 muls r0, r1, r0 ldr r2, [sp, #8] adds r6, r2, r0 ldrh r0, [r6] adds r2, r1, #1 str r2, [sp, #0xc] cmp r0, #0 beq _08000402 lsls r0, r1, #2 ldr r1, [sp] adds r0, r0, r1 ldr r0, [r0] ldrh r5, [r0] adds r0, #2 mov r2, ip str r0, [r2] lsls r0, r7, #3 ldr r1, _08000424 @ =0x03005000 adds r0, r0, r1 str r0, [r2, #4] lsls r0, r5, #2 movs r1, #0x80 lsls r1, r1, #0x18 orrs r0, r1 str r0, [r2, #8] ldr r0, [r2, #8] movs r3, #0 cmp r3, r5 bhs _08000402 ldr r2, _08000424 @ =0x03005000 mov sb, r2 ldr r0, _08000434 @ =0x000001FF mov sl, r0 movs r1, #0xff mov r8, r1 _080003D2: adds r2, r7, #0 lsls r0, r2, #3 mov r1, sb adds r4, r0, r1 lsls r1, r3, #3 adds r1, #8 adds r1, r6, r1 adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 strh r2, [r1] ldrh r2, [r4, #2] mov r0, sl ands r0, r2 strh r0, [r1, #2] ldrh r2, [r4] mov r0, r8 ands r0, r2 strh r0, [r1, #4] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, r5 blo _080003D2 _08000402: ldr r2, [sp, #0xc] lsls r0, r2, #0x10 lsrs r1, r0, #0x10 ldr r0, [sp, #4] cmp r1, r0 blo _0800038A _0800040E: lsls r0, r7, #0x10 asrs r0, r0, #0x10 add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _08000424: .4byte 0x03005000 _08000428: .4byte 0x040000D4 _0800042C: .4byte 0x08057C46 _08000430: .4byte 0x80000200 _08000434: .4byte 0x000001FF thumb_func_start sub_438 sub_438: @ 0x08000438 push {r4, r5, r6, lr} ldr r4, _0800048C @ =0x0200B0C0 ldrh r0, [r4, #0x16] movs r2, #0x80 movs r6, #0 movs r5, #0 orrs r0, r2 strh r0, [r4, #0x16] movs r1, #0x80 lsls r1, r1, #0x13 ldrh r0, [r1] orrs r0, r2 strh r0, [r1] bl sub_490 bl sub_518 bl sub_578 strb r6, [r4, #0xf] strb r6, [r4, #0x10] str r5, [r4, #0x50] strb r6, [r4, #0x11] strh r5, [r4, #0x12] strh r5, [r4, #0x14] movs r0, #0x90 strh r0, [r4, #0x26] strh r5, [r4, #0x28] strh r5, [r4, #0x2a] adds r0, r4, #0 adds r0, #0x36 strb r6, [r0] ldrh r0, [r4, #0x38] strh r5, [r4, #0x38] ldrh r0, [r4, #0x3a] strh r5, [r4, #0x3a] ldrh r0, [r4, #0x3c] strh r5, [r4, #0x3c] strh r5, [r4, #0x2c] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800048C: .4byte 0x0200B0C0 thumb_func_start sub_490 sub_490: @ 0x08000490 sub sp, #8 mov r1, sp movs r0, #0 strh r0, [r1] ldr r1, _08000504 @ =0x040000D4 mov r0, sp str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08000508 @ =0x8100C000 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 str r2, [sp, #4] add r0, sp, #4 str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800050C @ =0x85000100 str r0, [r1, #8] ldr r0, [r1, #8] mov r0, sp strh r2, [r0] str r0, [r1] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08000510 @ =0x81000200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08000514 @ =0x04000010 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r2, [r0] adds r0, #0x32 strh r2, [r0] adds r0, #4 strh r2, [r0] subs r0, #0x50 strh r2, [r0] adds r0, #0x4e strh r2, [r0] add sp, #8 bx lr .align 2, 0 _08000504: .4byte 0x040000D4 _08000508: .4byte 0x8100C000 _0800050C: .4byte 0x85000100 _08000510: .4byte 0x81000200 _08000514: .4byte 0x04000010 thumb_func_start sub_518 sub_518: @ 0x08000518 push {r4, r5, r6, lr} sub sp, #4 mov r1, sp movs r0, #0 strh r0, [r1] ldr r1, _08000564 @ =0x040000D4 mov r0, sp str r0, [r1] ldr r0, _08000568 @ =0x03005C00 str r0, [r1, #4] ldr r0, _0800056C @ =0x81000600 str r0, [r1, #8] ldr r0, [r1, #8] movs r1, #0 ldr r6, _08000570 @ =0x0200B0C0 movs r5, #0xba lsls r5, r5, #2 movs r3, #0 ldr r4, _08000574 @ =0x000002EA _0800053E: lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r6 adds r2, r1, r5 strh r3, [r2] adds r1, r1, r4 strh r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0800053E add sp, #4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08000564: .4byte 0x040000D4 _08000568: .4byte 0x03005C00 _0800056C: .4byte 0x81000600 _08000570: .4byte 0x0200B0C0 _08000574: .4byte 0x000002EA thumb_func_start sub_578 sub_578: @ 0x08000578 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r5, #0 ldr r6, _08000660 @ =0x0200B0C0 movs r0, #0xb8 mov sb, r0 movs r4, #0 movs r1, #0xc0 lsls r1, r1, #2 mov r8, r1 ldr r3, _08000664 @ =0x00000302 mov ip, r3 movs r7, #0xc1 lsls r7, r7, #2 mov sl, r7 _0800059C: mov r2, sb muls r2, r5, r2 adds r1, r2, r6 movs r3, #0xbe lsls r3, r3, #2 adds r0, r1, r3 strh r4, [r0] ldr r7, _08000668 @ =0x000002FA adds r0, r1, r7 strh r4, [r0] movs r0, #0xbf lsls r0, r0, #2 adds r1, r1, r0 strh r4, [r1] movs r3, #0 _080005BA: lsls r0, r3, #3 adds r0, r0, r2 adds r0, r0, r6 mov r7, r8 adds r1, r0, r7 strh r4, [r1] mov r7, ip adds r1, r0, r7 strh r4, [r1] add r0, sl strh r4, [r0] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #0x15 bls _080005BA adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r5, #0x63 bls _0800059C movs r5, #0 mov sl, r5 movs r0, #0xd rsbs r0, r0, #0 mov ip, r0 movs r1, #0x11 rsbs r1, r1, #0 mov sb, r1 movs r3, #0x21 rsbs r3, r3, #0 mov r8, r3 movs r4, #0x3f ldr r6, _0800066C @ =0xFFFFFE00 adds r3, #0x12 _08000600: lsls r2, r5, #3 ldr r7, _08000670 @ =0x03005000 adds r2, r2, r7 movs r0, #0xf4 strb r0, [r2] movs r0, #0 strb r0, [r2, #1] ldrh r1, [r2, #2] adds r0, r6, #0 ands r0, r1 movs r7, #0xfa lsls r7, r7, #1 adds r1, r7, #0 orrs r0, r1 strh r0, [r2, #2] ldrb r1, [r2, #3] adds r0, r3, #0 ands r0, r1 mov r1, sb ands r0, r1 mov r7, r8 ands r0, r7 ands r0, r4 strb r0, [r2, #3] ldrh r1, [r2, #4] ldr r0, _08000674 @ =0xFFFFFC00 ands r0, r1 strh r0, [r2, #4] ldrb r1, [r2, #5] mov r0, ip ands r0, r1 movs r1, #0xf ands r0, r1 strb r0, [r2, #5] mov r0, sl strh r0, [r2, #6] adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r5, #0x7f bls _08000600 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 _08000660: .4byte 0x0200B0C0 _08000664: .4byte 0x00000302 _08000668: .4byte 0x000002FA _0800066C: .4byte 0xFFFFFE00 _08000670: .4byte 0x03005000 _08000674: .4byte 0xFFFFFC00 thumb_func_start sub_678 sub_678: @ 0x08000678 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 lsls r5, r5, #0x10 lsrs r5, r5, #0x10 bl sub_55A24 subs r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r4, r4, #0x10 asrs r4, r4, #0xb lsls r5, r5, #0x10 asrs r5, r5, #0x10 adds r4, r4, r5 lsls r4, r4, #1 ldr r0, _080006C4 @ =0x03005C00 adds r4, r4, r0 _080006A2: ldrb r0, [r6] subs r0, #0x20 strh r0, [r4] adds r6, #1 adds r4, #2 adds r1, r2, #0 lsls r0, r1, #0x10 ldr r2, _080006C8 @ =0xFFFF0000 adds r0, r0, r2 lsrs r2, r0, #0x10 lsls r1, r1, #0x10 cmp r1, #0 bgt _080006A2 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080006C4: .4byte 0x03005C00 _080006C8: .4byte 0xFFFF0000 thumb_func_start sub_6CC sub_6CC: @ 0x080006CC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r5, r1, #0 adds r4, r2, #0 lsls r3, r3, #0x10 lsrs r3, r3, #0x10 cmp r6, #0 bge _080006E8 movs r0, #0x2d strb r0, [r5] adds r5, #1 rsbs r6, r6, #0 _080006E8: lsls r7, r3, #0x10 movs r0, #0x30 mov r8, r0 _080006EE: cmp r4, #1 ble _08000708 subs r4, #1 movs r0, #0xa adds r1, r4, #0 bl sub_780 cmp r6, r0 bge _08000708 mov r0, r8 strb r0, [r5] adds r5, #1 b _080006EE _08000708: asrs r4, r7, #0x10 cmp r4, #0 beq _0800071A adds r0, r6, #0 adds r1, r5, #0 movs r2, #0xa bl sub_734 b _08000726 _0800071A: adds r0, r6, #0 adds r1, r5, #0 movs r2, #0xa bl sub_734 strb r4, [r0] _08000726: adds r0, r5, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_734 sub_734: @ 0x08000734 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r7, r1, #0 adds r6, r2, #0 adds r1, r6, #0 bl __umodsi3 lsls r0, r0, #0x18 lsrs r5, r0, #0x18 mov r8, r5 adds r0, r4, #0 adds r1, r6, #0 bl __udivsi3 cmp r0, #0 beq _08000762 adds r1, r7, #0 adds r2, r6, #0 bl sub_734 adds r7, r0, #0 _08000762: cmp r5, #9 bhi _0800076C adds r0, r5, #0 adds r0, #0x30 b _08000770 _0800076C: mov r0, r8 adds r0, #0x57 _08000770: strb r0, [r7] adds r0, r7, #1 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_780 sub_780: @ 0x08000780 push {r4, r5, lr} adds r3, r0, #0 adds r2, r1, #0 cmp r1, #0 bge _0800078C rsbs r2, r1, #0 _0800078C: movs r4, #1 cmp r2, #0 beq _080007AA movs r5, #1 _08000794: adds r0, r2, #0 ands r0, r5 cmp r0, #0 beq _0800079E muls r4, r3, r4 _0800079E: adds r0, r3, #0 muls r0, r3, r0 adds r3, r0, #0 asrs r2, r2, #1 cmp r2, #0 bne _08000794 _080007AA: cmp r1, #0 bge _080007B8 movs r0, #1 adds r1, r4, #0 bl __divsi3 b _080007BA _080007B8: adds r0, r4, #0 _080007BA: pop {r4, r5} pop {r1} bx r1 thumb_func_start sub_7C0 sub_7C0: @ 0x080007C0 push {r4, r5, r6, lr} mov r6, r8 push {r6} sub sp, #8 adds r3, r0, #0 adds r4, r1, #0 adds r5, r2, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 lsls r5, r5, #0x10 lsrs r5, r5, #0x10 lsls r3, r3, #0x10 asrs r3, r3, #0x10 movs r0, #0x80 lsls r0, r0, #9 mov r8, r0 adds r1, r3, #0 bl __divsi3 adds r6, r0, #0 lsls r6, r6, #0x10 lsrs r6, r6, #0x10 lsls r4, r4, #0x10 asrs r4, r4, #0x10 mov r0, r8 adds r1, r4, #0 bl __divsi3 mov r1, sp strh r6, [r1] mov r4, sp adds r4, #2 movs r1, #0 strh r1, [r4] add r6, sp, #4 strh r1, [r6] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r1, sp adds r1, #6 strh r0, [r1] ldr r3, _0800084C @ =0x03005000 lsls r5, r5, #0x10 asrs r5, r5, #0x10 lsls r1, r5, #5 adds r1, r1, r3 mov r2, sp ldrh r2, [r2] strh r2, [r1, #6] lsls r5, r5, #2 adds r1, r5, #1 lsls r1, r1, #3 adds r1, r1, r3 ldrh r2, [r4] strh r2, [r1, #6] adds r1, r5, #2 lsls r1, r1, #3 adds r1, r1, r3 ldrh r2, [r6] strh r2, [r1, #6] adds r5, #3 lsls r5, r5, #3 adds r5, r5, r3 strh r0, [r5, #6] add sp, #8 pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800084C: .4byte 0x03005000 thumb_func_start sub_850 sub_850: @ 0x08000850 ldr r0, _08000888 @ =0x04000208 ldrh r1, [r0] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08000894 ldr r0, _0800088C @ =0x04000004 ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08000894 ldr r0, _08000890 @ =0x04000200 ldrh r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08000894 movs r0, #0x80 lsls r0, r0, #0x13 ldrh r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08000894 movs r0, #1 b _08000896 .align 2, 0 _08000888: .4byte 0x04000208 _0800088C: .4byte 0x04000004 _08000890: .4byte 0x04000200 _08000894: movs r0, #0 _08000896: bx lr thumb_func_start sub_898 sub_898: @ 0x08000898 push {r4, lr} adds r4, r0, #0 ldr r0, _080008B4 @ =0x02017BD4 str r4, [r0] bl sub_850 lsls r0, r0, #0x10 cmp r0, #0 bne _080008AE ldr r0, _080008B8 @ =0x0200FB9C str r4, [r0] _080008AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080008B4: .4byte 0x02017BD4 _080008B8: .4byte 0x0200FB9C thumb_func_start sub_8BC sub_8BC: @ 0x080008BC ldr r0, _080008C8 @ =0x0200FB9C ldr r1, _080008CC @ =sub_DC4 + 1 str r1, [r0] ldr r0, _080008D0 @ =0x02017BD4 str r1, [r0] bx lr .align 2, 0 _080008C8: .4byte 0x0200FB9C _080008CC: .4byte sub_DC4 + 1 _080008D0: .4byte 0x02017BD4 thumb_func_start sub_8D4 sub_8D4: @ 0x080008D4 push {r4, lr} adds r4, r0, #0 ldr r0, _080008F4 @ =0x02017BD0 str r4, [r0] bl sub_850 lsls r0, r0, #0x10 cmp r0, #0 bne _080008EC ldr r0, _080008F8 @ =0x0200FB98 ldr r0, [r0] str r4, [r0] _080008EC: pop {r4} pop {r0} bx r0 .align 2, 0 _080008F4: .4byte 0x02017BD0 _080008F8: .4byte 0x0200FB98 thumb_func_start sub_8FC sub_8FC: @ 0x080008FC ldr r0, _0800090C @ =0x0200FB98 ldr r0, [r0] ldr r1, _08000910 @ =sub_A08 + 1 str r1, [r0] ldr r0, _08000914 @ =0x02017BD0 str r1, [r0] bx lr .align 2, 0 _0800090C: .4byte 0x0200FB98 _08000910: .4byte sub_A08 + 1 _08000914: .4byte 0x02017BD0 thumb_func_start sub_918 sub_918: @ 0x08000918 push {r4, lr} adds r4, r0, #0 ldr r0, _08000938 @ =0x0200FBA0 str r4, [r0] bl sub_850 lsls r0, r0, #0x10 cmp r0, #0 bne _08000930 ldr r0, _0800093C @ =0x02019BE0 ldr r0, [r0] str r4, [r0] _08000930: pop {r4} pop {r0} bx r0 .align 2, 0 _08000938: .4byte 0x0200FBA0 _0800093C: .4byte 0x02019BE0 thumb_func_start sub_940 sub_940: @ 0x08000940 ldr r0, _08000950 @ =0x02019BE0 ldr r0, [r0] ldr r1, _08000954 @ =sub_A20 + 1 str r1, [r0] ldr r0, _08000958 @ =0x0200FBA0 str r1, [r0] bx lr .align 2, 0 _08000950: .4byte 0x02019BE0 _08000954: .4byte sub_A20 + 1 _08000958: .4byte 0x0200FBA0 thumb_func_start AgbMain AgbMain: @ 0x0800095C push {r4, r5, lr} movs r0, #0xff bl RegisterRamReset bl sub_BBC ldr r1, _080009A0 @ =0x040000D4 ldr r0, _080009A4 @ =IntrMain str r0, [r1] ldr r2, _080009A8 @ =0x03005400 str r2, [r1, #4] ldr r0, _080009AC @ =0x84000200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080009B0 @ =0x03007FFC str r2, [r0] bl sub_B54 bl sub_FE8 ldr r5, _080009B4 @ =0x086A4AD8 ldr r4, _080009B8 @ =0x0200B0C0 _08000988: bl sub_C8C ldrb r0, [r4, #2] lsls r0, r0, #2 adds r0, r0, r5 ldr r0, [r0] bl _call_via_r0 bl sub_D74 b _08000988 .align 2, 0 _080009A0: .4byte 0x040000D4 _080009A4: .4byte IntrMain _080009A8: .4byte 0x03005400 _080009AC: .4byte 0x84000200 _080009B0: .4byte 0x03007FFC _080009B4: .4byte 0x086A4AD8 _080009B8: .4byte 0x0200B0C0 thumb_func_start sub_9BC sub_9BC: @ 0x080009BC push {r4, lr} ldr r4, _080009DC @ =0x0200B0C0 ldrb r0, [r4, #3] cmp r0, #0 beq _080009E0 cmp r0, #1 beq _080009EE bl sub_2B4 bl sub_D10 movs r0, #1 bl sub_23C b _080009FC .align 2, 0 _080009DC: .4byte 0x0200B0C0 _080009E0: bl sub_CBC bl sub_24C ldrb r0, [r4, #3] adds r0, #1 b _080009FA _080009EE: ldrh r1, [r4, #0x18] ldr r0, _08000A04 @ =0x000003FF ands r0, r1 cmp r0, #0 beq _080009FC movs r0, #2 _080009FA: strb r0, [r4, #3] _080009FC: pop {r4} pop {r0} bx r0 .align 2, 0 _08000A04: .4byte 0x000003FF thumb_func_start sub_A08 sub_A08: @ 0x08000A08 push {lr} bl m4aSoundVSync ldr r0, _08000A1C @ =0x03007FF8 ldrh r1, [r0] movs r2, #1 orrs r1, r2 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _08000A1C: .4byte 0x03007FF8 thumb_func_start sub_A20 sub_A20: @ 0x08000A20 push {r4, r5, lr} ldr r2, _08000A78 @ =0x03007FF8 ldrh r0, [r2] movs r1, #4 orrs r0, r1 strh r0, [r2] ldr r2, _08000A7C @ =0x04000004 ldrh r1, [r2] movs r0, #2 ands r0, r1 ldr r3, _08000A80 @ =0x0200B0C0 cmp r0, #0 bne _08000A46 movs r4, #2 _08000A3C: ldrh r1, [r2] adds r0, r4, #0 ands r0, r1 cmp r0, #0 beq _08000A3C _08000A46: adds r2, r3, #0 ldrb r0, [r2, #2] cmp r0, #2 bne _08000B2E ldr r0, _08000A84 @ =0x04000010 movs r4, #0 strh r4, [r0] movs r0, #0x28 ldrsh r1, [r2, r0] cmp r1, #0 beq _08000AA0 movs r1, #0x26 ldrsh r0, [r2, r1] cmp r0, #0x48 bne _08000A8C ldr r1, _08000A88 @ =0x04000012 movs r3, #0x2a ldrsh r0, [r2, r3] lsls r0, r0, #2 adds r0, #0x58 strh r0, [r1] movs r1, #0x90 strh r1, [r2, #0x26] b _08000B00 .align 2, 0 _08000A78: .4byte 0x03007FF8 _08000A7C: .4byte 0x04000004 _08000A80: .4byte 0x0200B0C0 _08000A84: .4byte 0x04000010 _08000A88: .4byte 0x04000012 _08000A8C: ldr r1, _08000A9C @ =0x04000012 movs r5, #0xb0 lsls r5, r5, #1 adds r0, r5, #0 strh r0, [r1] movs r1, #0x48 strh r1, [r2, #0x26] b _08000B00 .align 2, 0 _08000A9C: .4byte 0x04000012 _08000AA0: movs r5, #0x2c ldrsh r0, [r2, r5] cmp r0, #0 beq _08000B24 movs r5, #0x26 ldrsh r0, [r2, r5] cmp r0, #0x28 bne _08000ADC ldrh r0, [r2, #0x38] ldr r0, _08000AD0 @ =0x00001E41 strh r0, [r2, #0x38] ldrh r0, [r2, #0x3a] ldr r0, _08000AD4 @ =0x00000A06 strh r0, [r2, #0x3a] ldr r1, _08000AD8 @ =0x04000050 ldrh r0, [r2, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] movs r1, #0x90 strh r1, [r2, #0x26] b _08000B00 .align 2, 0 _08000AD0: .4byte 0x00001E41 _08000AD4: .4byte 0x00000A06 _08000AD8: .4byte 0x04000050 _08000ADC: ldrh r0, [r3, #0x38] ldr r0, _08000B18 @ =0x00001E01 strh r0, [r3, #0x38] ldrh r0, [r3, #0x3a] strh r1, [r3, #0x3a] ldr r1, _08000B1C @ =0x04000050 ldrh r0, [r3, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r3, #0x3a] strh r0, [r1] subs r1, #0x40 movs r2, #0xb0 lsls r2, r2, #1 adds r0, r2, #0 strh r0, [r1] movs r1, #0x28 strh r1, [r3, #0x26] _08000B00: ldr r2, _08000B20 @ =0x04000004 ldrh r3, [r2] movs r0, #0xff ands r0, r3 strh r0, [r2] lsls r1, r1, #8 adds r1, #0x20 ldrh r0, [r2] orrs r1, r0 strh r1, [r2] b _08000B2E .align 2, 0 _08000B18: .4byte 0x00001E01 _08000B1C: .4byte 0x04000050 _08000B20: .4byte 0x04000004 _08000B24: ldr r1, _08000B34 @ =0x04000012 movs r3, #0xb0 lsls r3, r3, #1 adds r0, r3, #0 strh r0, [r1] _08000B2E: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08000B34: .4byte 0x04000012 thumb_func_start sub_B38 sub_B38: @ 0x08000B38 push {lr} bl sub_1F5C pop {r0} bx r0 thumb_func_start sub_B44 sub_B44: @ 0x08000B44 push {lr} bl sub_1F4C pop {r0} bx r0 thumb_func_start sub_B50 sub_B50: @ 0x08000B50 bx lr thumb_func_start sub_B54 sub_B54: @ 0x08000B54 push {lr} ldr r1, _08000B84 @ =0x04000204 ldr r2, _08000B88 @ =0x000045B6 adds r0, r2, #0 strh r0, [r1] subs r1, #4 movs r2, #0x80 lsls r2, r2, #6 adds r0, r2, #0 strh r0, [r1] adds r1, #8 movs r0, #1 strh r0, [r1] bl sub_B8C bl m4aSoundInit bl m4aSoundVSyncOff bl sub_52A18 pop {r0} bx r0 .align 2, 0 _08000B84: .4byte 0x04000204 _08000B88: .4byte 0x000045B6 thumb_func_start sub_B8C sub_B8C: @ 0x08000B8C push {lr} ldr r0, _08000BB8 @ =0x0200B0C0 movs r1, #0 strb r1, [r0, #2] strb r1, [r0, #3] strh r1, [r0, #0x16] strh r1, [r0, #0x1c] strh r1, [r0, #0x18] strh r1, [r0, #0x20] str r1, [r0, #0x48] str r1, [r0, #0x4c] strh r1, [r0, #0x30] movs r2, #0x90 strh r2, [r0, #0x26] strh r1, [r0, #0x2c] bl sub_1090C bl sub_438 pop {r0} bx r0 .align 2, 0 _08000BB8: .4byte 0x0200B0C0 thumb_func_start sub_BBC sub_BBC: @ 0x08000BBC push {r4, r5, r6, lr} ldr r5, _08000BF0 @ =0x0200FB98 ldr r2, _08000BF4 @ =0x02003068 ldr r6, _08000BF8 @ =0x02019BE0 ldr r4, _08000BFC @ =0x086A4AA0 adds r3, r2, #0 subs r3, #8 movs r1, #0xd _08000BCC: ldm r4!, {r0} stm r3!, {r0} subs r1, #1 cmp r1, #0 bge _08000BCC str r2, [r5] adds r0, r2, #0 adds r0, #8 str r0, [r6] bl sub_8BC bl sub_8FC bl sub_940 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08000BF0: .4byte 0x0200FB98 _08000BF4: .4byte 0x02003068 _08000BF8: .4byte 0x02019BE0 _08000BFC: .4byte 0x086A4AA0 thumb_func_start sub_C00 sub_C00: @ 0x08000C00 ldr r2, _08000C14 @ =0x0200B0C0 ldr r1, [r2, #0x48] ldr r0, _08000C18 @ =0x41C64E6D muls r0, r1, r0 ldr r1, _08000C1C @ =0x00003039 adds r0, r0, r1 str r0, [r2, #0x48] ldr r1, _08000C20 @ =0x0000FFFF ands r0, r1 bx lr .align 2, 0 _08000C14: .4byte 0x0200B0C0 _08000C18: .4byte 0x41C64E6D _08000C1C: .4byte 0x00003039 _08000C20: .4byte 0x0000FFFF thumb_func_start sub_C24 sub_C24: @ 0x08000C24 lsls r0, r0, #0x10 lsrs r2, r0, #0x12 movs r3, #1 ldr r0, _08000C60 @ =0x00001FFF cmp r2, r0 bls _08000C3A ldr r1, _08000C64 @ =0xFFFFE000 adds r0, r2, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r3, _08000C68 @ =0x0000FFFF _08000C3A: ldr r0, _08000C6C @ =0x00000FFF cmp r2, r0 bls _08000C4C movs r1, #0x80 lsls r1, r1, #6 adds r0, r1, #0 subs r0, r0, r2 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _08000C4C: ldr r1, _08000C70 @ =0x08055C44 lsls r0, r2, #1 adds r0, r0, r1 ldrh r1, [r0] lsls r0, r3, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 bx lr .align 2, 0 _08000C60: .4byte 0x00001FFF _08000C64: .4byte 0xFFFFE000 _08000C68: .4byte 0x0000FFFF _08000C6C: .4byte 0x00000FFF _08000C70: .4byte 0x08055C44 thumb_func_start sub_C74 sub_C74: @ 0x08000C74 push {lr} lsls r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #0x17 adds r0, r0, r1 lsrs r0, r0, #0x10 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 pop {r1} bx r1 thumb_func_start sub_C8C sub_C8C: @ 0x08000C8C push {r4, lr} ldr r0, _08000CB4 @ =0x04000130 ldrh r2, [r0] mvns r2, r2 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 ldr r3, _08000CB8 @ =0x0200B0C0 ldrh r4, [r3, #0x1c] adds r1, r2, #0 eors r1, r4 adds r0, r2, #0 ands r0, r1 strh r0, [r3, #0x18] ands r1, r4 strh r1, [r3, #0x1a] strh r2, [r3, #0x1c] pop {r4} pop {r0} bx r0 .align 2, 0 _08000CB4: .4byte 0x04000130 _08000CB8: .4byte 0x0200B0C0 thumb_func_start sub_CBC sub_CBC: @ 0x08000CBC push {r4, lr} ldr r3, _08000CFC @ =0x04000200 ldrh r1, [r3] movs r4, #1 adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _08000CF6 ldr r1, _08000D00 @ =0x04000202 ldrh r0, [r1] movs r2, #5 orrs r0, r2 strh r0, [r1] ldrh r1, [r3] ldr r0, _08000D04 @ =0x00003FFF ands r0, r1 strh r0, [r3] ldr r0, _08000D08 @ =0x04000208 strh r4, [r0] ldrh r0, [r3] orrs r0, r2 strh r0, [r3] ldr r2, _08000D0C @ =0x04000004 ldrh r0, [r2] movs r1, #8 orrs r0, r1 strh r0, [r2] bl m4aSoundVSyncOn _08000CF6: pop {r4} pop {r0} bx r0 .align 2, 0 _08000CFC: .4byte 0x04000200 _08000D00: .4byte 0x04000202 _08000D04: .4byte 0x00003FFF _08000D08: .4byte 0x04000208 _08000D0C: .4byte 0x04000004 thumb_func_start sub_D10 sub_D10: @ 0x08000D10 push {lr} ldr r1, _08000D54 @ =0x04000004 ldrh r2, [r1] ldr r0, _08000D58 @ =0x0000FFF7 ands r0, r2 strh r0, [r1] ldrh r2, [r1] ldr r0, _08000D5C @ =0x0000FFDF ands r0, r2 strh r0, [r1] ldr r1, _08000D60 @ =0x04000200 ldrh r2, [r1] ldr r0, _08000D64 @ =0x00003FFF ands r0, r2 strh r0, [r1] ldrh r2, [r1] ldr r0, _08000D68 @ =0x00003FFE ands r0, r2 strh r0, [r1] ldrh r0, [r1] adds r1, r0, #0 cmp r1, #0 bne _08000D42 ldr r0, _08000D6C @ =0x04000208 strh r1, [r0] _08000D42: ldr r0, _08000D70 @ =0x04000202 ldrh r1, [r0] movs r2, #1 orrs r1, r2 strh r1, [r0] bl m4aSoundVSyncOff pop {r0} bx r0 .align 2, 0 _08000D54: .4byte 0x04000004 _08000D58: .4byte 0x0000FFF7 _08000D5C: .4byte 0x0000FFDF _08000D60: .4byte 0x04000200 _08000D64: .4byte 0x00003FFF _08000D68: .4byte 0x00003FFE _08000D6C: .4byte 0x04000208 _08000D70: .4byte 0x04000202 thumb_func_start sub_D74 sub_D74: @ 0x08000D74 push {lr} ldr r2, _08000DA8 @ =0x0200FB9C ldr r0, _08000DAC @ =0x02017BD4 ldr r0, [r0] str r0, [r2] ldr r0, _08000DB0 @ =0x0200FB98 ldr r1, [r0] ldr r0, _08000DB4 @ =0x02017BD0 ldr r0, [r0] str r0, [r1] ldr r0, _08000DB8 @ =0x02019BE0 ldr r1, [r0] ldr r0, _08000DBC @ =0x0200FBA0 ldr r0, [r0] str r0, [r1] ldr r2, [r2] cmp r2, #0 beq _08000D9C bl _call_via_r2 _08000D9C: ldr r1, _08000DC0 @ =0x0200B0C0 ldr r0, [r1, #0x4c] adds r0, #1 str r0, [r1, #0x4c] pop {r0} bx r0 .align 2, 0 _08000DA8: .4byte 0x0200FB9C _08000DAC: .4byte 0x02017BD4 _08000DB0: .4byte 0x0200FB98 _08000DB4: .4byte 0x02017BD0 _08000DB8: .4byte 0x02019BE0 _08000DBC: .4byte 0x0200FBA0 _08000DC0: .4byte 0x0200B0C0 thumb_func_start sub_DC4 sub_DC4: @ 0x08000DC4 push {r4, lr} ldr r4, _08000E7C @ =0x04000004 ldrh r1, [r4] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08000E76 bl VBlankIntrWait ldr r1, _08000E80 @ =0x040000D4 ldr r0, _08000E84 @ =0x03005000 str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08000E88 @ =0x84000100 str r0, [r1, #8] ldr r0, [r1, #8] subs r1, #0xd4 ldr r2, _08000E8C @ =0x0200B0C0 ldrh r0, [r2, #0x16] strh r0, [r1] adds r1, #0x10 movs r3, #0xba lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r2, #0 adds r0, #0x36 ldrb r0, [r0] cmp r0, #0 beq _08000E5E adds r1, #0x32 ldrh r0, [r2, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3c] strh r0, [r1] _08000E5E: ldrh r1, [r4] movs r0, #0xff ands r0, r1 strh r0, [r4] ldrh r0, [r2, #0x26] lsls r0, r0, #8 adds r0, #0x20 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] bl m4aSoundMain _08000E76: pop {r4} pop {r0} bx r0 .align 2, 0 _08000E7C: .4byte 0x04000004 _08000E80: .4byte 0x040000D4 _08000E84: .4byte 0x03005000 _08000E88: .4byte 0x84000100 _08000E8C: .4byte 0x0200B0C0 thumb_func_start sub_E90 sub_E90: @ 0x08000E90 ldr r0, _08000EA8 @ =0x04000130 ldrh r0, [r0] ldr r2, _08000EAC @ =0x000003FF adds r1, r2, #0 eors r1, r0 ldr r3, _08000EB0 @ =0x02002002 ldr r2, _08000EB4 @ =0x02002000 ldrh r0, [r2] strh r0, [r3] strh r1, [r2] bx lr .align 2, 0 _08000EA8: .4byte 0x04000130 _08000EAC: .4byte 0x000003FF _08000EB0: .4byte 0x02002002 _08000EB4: .4byte 0x02002000 thumb_func_start sub_EB8 sub_EB8: @ 0x08000EB8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r7, #0 movs r0, #0 mov sl, r0 mov sb, r0 mov r8, r0 bl VBlankIntrWait ldr r0, _08000F30 @ =0x040000D4 ldr r1, _08000F34 @ =0x08058248 str r1, [r0] ldr r1, _08000F38 @ =0x06008000 str r1, [r0, #4] ldr r1, _08000F3C @ =0x80002000 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08000F40 @ =0x08058048 str r1, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _08000F44 @ =0x80000100 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08000F48 @ =0x0805C248 str r1, [r0] ldr r2, _08000F4C @ =0x02002008 str r2, [r0, #4] ldr r1, _08000F50 @ =0x80000280 str r1, [r0, #8] ldr r1, [r0, #8] str r2, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _08000F54 @ =0x80000400 str r1, [r0, #8] ldr r0, [r0, #8] ldr r1, _08000F58 @ =0x04000008 movs r0, #0x88 strh r0, [r1] movs r4, #0 ldr r6, _08000F5C @ =0x04000054 movs r5, #0x10 _08000F18: bl VBlankIntrWait subs r0, r5, r4 strh r0, [r6] adds r4, #1 cmp r4, #0x10 bls _08000F18 ldr r6, _08000F60 @ =0x02002002 ldr r5, _08000F64 @ =0x02002000 ldr r4, _08000F30 @ =0x040000D4 b _08000FA4 .align 2, 0 _08000F30: .4byte 0x040000D4 _08000F34: .4byte 0x08058248 _08000F38: .4byte 0x06008000 _08000F3C: .4byte 0x80002000 _08000F40: .4byte 0x08058048 _08000F44: .4byte 0x80000100 _08000F48: .4byte 0x0805C248 _08000F4C: .4byte 0x02002008 _08000F50: .4byte 0x80000280 _08000F54: .4byte 0x80000400 _08000F58: .4byte 0x04000008 _08000F5C: .4byte 0x04000054 _08000F60: .4byte 0x02002002 _08000F64: .4byte 0x02002000 _08000F68: ldrh r0, [r6] ldrh r1, [r5] eors r0, r1 ands r0, r1 movs r1, #0xf0 ands r0, r1 cmp r0, #0xf0 bne _08000F7C mov r8, sb mov sb, r7 _08000F7C: mov r1, r8 cmp r1, #0 beq _08000F8E mov r2, sb subs r0, r2, r1 cmp r0, #3 bgt _08000F8E movs r0, #1 mov sl, r0 _08000F8E: adds r7, #1 bl VBlankIntrWait ldr r0, _08000FB0 @ =0x02002008 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08000FB4 @ =0x84000200 str r0, [r4, #8] ldr r0, [r4, #8] _08000FA4: cmp r7, #0x1d bgt _08000FB8 bl sub_E90 b _08000F68 .align 2, 0 _08000FB0: .4byte 0x02002008 _08000FB4: .4byte 0x84000200 _08000FB8: movs r4, #0 ldr r5, _08000FD4 @ =0x04000054 _08000FBC: bl VBlankIntrWait strh r4, [r5] adds r4, #1 cmp r4, #0x10 bls _08000FBC mov r1, sl cmp r1, #0 bne _08000FD8 movs r0, #0 b _08000FDA .align 2, 0 _08000FD4: .4byte 0x04000054 _08000FD8: movs r0, #1 _08000FDA: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_FE8 sub_FE8: @ 0x08000FE8 push {r4, r5, r6, lr} mov r6, r8 push {r6} sub sp, #4 ldr r2, _08001080 @ =0x04000200 ldrh r0, [r2] movs r1, #1 orrs r0, r1 strh r0, [r2] ldr r6, _08001084 @ =0x04000004 ldrh r0, [r6] movs r1, #8 orrs r0, r1 strh r0, [r6] ldr r1, _08001088 @ =0x04000050 ldr r3, _0800108C @ =0x00003FBF adds r0, r3, #0 strh r0, [r1] adds r1, #4 movs r0, #0x10 strh r0, [r1] movs r0, #0x80 lsls r0, r0, #0x13 mov r8, r0 movs r1, #0x88 lsls r1, r1, #5 adds r0, r1, #0 mov r3, r8 strh r0, [r3] ldr r0, _08001090 @ =0x02019C00 movs r4, #0 str r4, [r0] ldr r0, _08001094 @ =0x02019BEC str r4, [r0] ldr r0, _08001098 @ =0x02019BF4 str r4, [r0] ldr r0, _0800109C @ =0x02019BF0 str r4, [r0] ldr r5, _080010A0 @ =0x02019C0C str r2, [sp] bl sub_EB8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 str r0, [r5] ldr r2, [sp] ldrh r1, [r2] ldr r0, _080010A4 @ =0x0000FFFE ands r0, r1 strh r0, [r2] ldrh r1, [r6] ldr r0, _080010A8 @ =0x0000FFF7 ands r0, r1 strh r0, [r6] mov r0, r8 strh r4, [r0] ldr r1, _080010AC @ =0x02019BFC movs r0, #1 rsbs r0, r0, #0 str r0, [r1] ldr r0, _080010B0 @ =0x02019BE4 str r4, [r0] ldr r0, _080010B4 @ =0x02019BE8 str r4, [r0] ldr r0, _080010B8 @ =0x02019BF8 str r4, [r0] ldr r1, _080010BC @ =0x02019C08 movs r0, #2 str r0, [r1] add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08001080: .4byte 0x04000200 _08001084: .4byte 0x04000004 _08001088: .4byte 0x04000050 _0800108C: .4byte 0x00003FBF _08001090: .4byte 0x02019C00 _08001094: .4byte 0x02019BEC _08001098: .4byte 0x02019BF4 _0800109C: .4byte 0x02019BF0 _080010A0: .4byte 0x02019C0C _080010A4: .4byte 0x0000FFFE _080010A8: .4byte 0x0000FFF7 _080010AC: .4byte 0x02019BFC _080010B0: .4byte 0x02019BE4 _080010B4: .4byte 0x02019BE8 _080010B8: .4byte 0x02019BF8 _080010BC: .4byte 0x02019C08 thumb_func_start sub_10C0 sub_10C0: @ 0x080010C0 push {lr} ldr r0, _080010F8 @ =0x02019C0C ldr r2, [r0] cmp r2, #1 bne _080010DC ldr r1, _080010FC @ =0x02003060 ldr r0, _08001100 @ =sub_13FC + 1 str r0, [r1] ldr r0, _08001104 @ =sub_1828 + 1 str r0, [r1, #4] ldr r0, _08001108 @ =0x02019BF4 str r2, [r0] bl sub_1340 _080010DC: ldr r1, _0800110C @ =0x02019BFC movs r0, #1 rsbs r0, r0, #0 str r0, [r1] ldr r0, _08001110 @ =0x02019BE4 movs r2, #0 str r2, [r0] ldr r1, _08001114 @ =0x02019C08 movs r0, #2 str r0, [r1] ldr r0, _08001118 @ =0x02019C04 str r2, [r0] pop {r0} bx r0 .align 2, 0 _080010F8: .4byte 0x02019C0C _080010FC: .4byte 0x02003060 _08001100: .4byte sub_13FC + 1 _08001104: .4byte sub_1828 + 1 _08001108: .4byte 0x02019BF4 _0800110C: .4byte 0x02019BFC _08001110: .4byte 0x02019BE4 _08001114: .4byte 0x02019C08 _08001118: .4byte 0x02019C04 thumb_func_start sub_111C sub_111C: @ 0x0800111C ldr r2, _0800114C @ =0x02019BF4 movs r1, #0 ldr r0, _08001150 @ =0x02019C00 str r1, [r0] ldr r0, _08001154 @ =0x02019BEC str r1, [r0] str r1, [r2] ldr r0, _08001158 @ =0x02019BF0 str r1, [r0] ldr r2, _0800115C @ =0x02019BFC movs r0, #1 rsbs r0, r0, #0 str r0, [r2] ldr r0, _08001160 @ =0x02019BE4 str r1, [r0] ldr r0, _08001164 @ =0x02019BE8 str r1, [r0] ldr r0, _08001168 @ =0x02019BF8 str r1, [r0] ldr r1, _0800116C @ =0x02019C08 movs r0, #2 str r0, [r1] bx lr .align 2, 0 _0800114C: .4byte 0x02019BF4 _08001150: .4byte 0x02019C00 _08001154: .4byte 0x02019BEC _08001158: .4byte 0x02019BF0 _0800115C: .4byte 0x02019BFC _08001160: .4byte 0x02019BE4 _08001164: .4byte 0x02019BE8 _08001168: .4byte 0x02019BF8 _0800116C: .4byte 0x02019C08 thumb_func_start sub_1170 sub_1170: @ 0x08001170 ldr r0, _0800118C @ =0x02019C0C ldr r0, [r0] cmp r0, #1 bne _08001194 ldr r0, _08001190 @ =0x02019C10 ldrb r0, [r0] subs r0, #4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08001194 movs r0, #0 b _08001196 .align 2, 0 _0800118C: .4byte 0x02019C0C _08001190: .4byte 0x02019C10 _08001194: movs r0, #1 _08001196: bx lr thumb_func_start sub_1198 sub_1198: @ 0x08001198 ldr r0, _080011A4 @ =0x02003060 ldr r1, _080011A8 @ =sub_B38 + 1 str r1, [r0] ldr r1, _080011AC @ =sub_B44 + 1 str r1, [r0, #4] bx lr .align 2, 0 _080011A4: .4byte 0x02003060 _080011A8: .4byte sub_B38 + 1 _080011AC: .4byte sub_B44 + 1 thumb_func_start sub_11B0 sub_11B0: @ 0x080011B0 adds r1, r0, #0 ldr r0, _080011D0 @ =0x0200B134 adds r0, #0xcd ldrb r0, [r0] cmp r0, #0 beq _080011CE ldr r0, _080011D4 @ =0x02019BF8 str r1, [r0] ldr r0, _080011D8 @ =0x02019BFC movs r1, #0 str r1, [r0] ldr r0, _080011DC @ =0x02019BE4 str r1, [r0] ldr r0, _080011E0 @ =0x02019BE8 str r1, [r0] _080011CE: bx lr .align 2, 0 _080011D0: .4byte 0x0200B134 _080011D4: .4byte 0x02019BF8 _080011D8: .4byte 0x02019BFC _080011DC: .4byte 0x02019BE4 _080011E0: .4byte 0x02019BE8 thumb_func_start sub_11E4 sub_11E4: @ 0x080011E4 ldr r1, _080011EC @ =0x02019C08 str r0, [r1] bx lr .align 2, 0 _080011EC: .4byte 0x02019C08 thumb_func_start sub_11F0 sub_11F0: @ 0x080011F0 ldr r1, _080011F8 @ =0x02019C04 str r0, [r1] bx lr .align 2, 0 _080011F8: .4byte 0x02019C04 thumb_func_start sub_11FC sub_11FC: @ 0x080011FC push {r4, r5, r6, r7, lr} ldr r0, _0800121C @ =0x02019C0C ldr r0, [r0] cmp r0, #1 beq _08001208 b _08001324 _08001208: ldr r0, _08001220 @ =0x02019C10 ldrb r0, [r0] cmp r0, #5 bls _08001212 b _08001324 _08001212: lsls r0, r0, #2 ldr r1, _08001224 @ =_08001228 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800121C: .4byte 0x02019C0C _08001220: .4byte 0x02019C10 _08001224: .4byte _08001228 _08001228: @ jump table .4byte _08001324 @ case 0 .4byte _08001324 @ case 1 .4byte _08001324 @ case 2 .4byte _08001240 @ case 3 .4byte _08001240 @ case 4 .4byte _08001308 @ case 5 _08001240: ldr r0, _080012A8 @ =0x02019BFC ldr r1, [r0] mov ip, r0 cmp r1, #0 blt _080012FC ldr r0, _080012AC @ =0x02019C08 ldr r3, [r0] cmp r3, #0 beq _080012FC ldr r0, _080012B0 @ =0x02019C04 ldr r2, [r0] cmp r2, #0 bne _080012FC ldr r0, _080012B4 @ =0x02019BE8 ldr r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080012DC ldr r1, _080012B8 @ =0x086A4C44 ldr r0, _080012BC @ =0x02019BF8 ldr r0, [r0] lsls r0, r0, #2 adds r7, r0, r1 mov r5, ip movs r6, #1 rsbs r6, r6, #0 _08001276: ldr r2, [r5] ldr r0, [r7] lsls r1, r2, #2 adds r1, r1, r0 ldr r3, [r1] adds r2, #1 str r2, [r5] lsls r1, r2, #2 adds r1, r1, r0 ldr r4, [r1] cmp r3, r6 beq _080012F8 cmp r3, r6 bge _080012D0 ldr r1, _080012C0 @ =0x02019BE4 ldr r0, [r1] cmp r0, #0 beq _080012C4 subs r0, #1 str r0, [r1] cmp r0, #0 bne _080012C8 adds r0, r2, #1 str r0, [r5] b _08001276 .align 2, 0 _080012A8: .4byte 0x02019BFC _080012AC: .4byte 0x02019C08 _080012B0: .4byte 0x02019C04 _080012B4: .4byte 0x02019BE8 _080012B8: .4byte 0x086A4C44 _080012BC: .4byte 0x02019BF8 _080012C0: .4byte 0x02019BE4 _080012C4: mvns r0, r3 str r0, [r1] _080012C8: subs r0, r2, #1 subs r0, r0, r4 str r0, [r5] b _08001276 _080012D0: ldr r0, _080012D8 @ =0x02019C00 str r3, [r0] b _08001324 .align 2, 0 _080012D8: .4byte 0x02019C00 _080012DC: lsrs r0, r1, #0x1f adds r0, r1, r0 asrs r0, r0, #1 lsls r0, r0, #1 subs r0, r1, r0 cmp r0, #1 bne _08001324 cmp r3, #1 bne _08001324 ldr r0, _080012F4 @ =0x02019C00 str r2, [r0] b _08001324 .align 2, 0 _080012F4: .4byte 0x02019C00 _080012F8: mov r0, ip str r3, [r0] _080012FC: ldr r1, _08001304 @ =0x02019C00 movs r0, #0 str r0, [r1] b _08001324 .align 2, 0 _08001304: .4byte 0x02019C00 _08001308: ldr r4, _08001334 @ =0x02019BF0 ldr r0, [r4] adds r0, #1 str r0, [r4] cmp r0, #0x3c bls _08001324 ldr r0, _08001338 @ =0x02019BF4 ldr r0, [r0] cmp r0, #0 beq _08001320 bl sub_1340 _08001320: movs r0, #0 str r0, [r4] _08001324: ldr r1, _0800133C @ =0x02019BE8 ldr r0, [r1] adds r0, #1 str r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08001334: .4byte 0x02019BF0 _08001338: .4byte 0x02019BF4 _0800133C: .4byte 0x02019BE8 thumb_func_start sub_1340 sub_1340: @ 0x08001340 push {r4, r5, r6, lr} mov r6, r8 push {r6} sub sp, #4 ldr r6, _080013D0 @ =0x04000208 movs r3, #0 strh r3, [r6] ldr r2, _080013D4 @ =0x04000200 ldrh r1, [r2] ldr r0, _080013D8 @ =0x0000FF3F ands r0, r1 strh r0, [r2] movs r0, #1 mov r8, r0 strh r0, [r6] ldr r0, _080013DC @ =0x04000134 strh r3, [r0] ldr r4, _080013E0 @ =0x04000128 ldr r1, _080013E4 @ =0x00001008 adds r0, r1, #0 strh r0, [r4] ldrh r0, [r4] movs r5, #0x80 lsls r5, r5, #7 adds r1, r5, #0 orrs r0, r1 strh r0, [r4] ldr r0, _080013E8 @ =0x04000202 movs r1, #0xc0 strh r1, [r0] strh r3, [r6] ldrh r0, [r2] orrs r0, r1 strh r0, [r2] mov r0, r8 strh r0, [r6] ldrb r1, [r4] movs r0, #2 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4] ldr r0, _080013EC @ =0x02019C10 strb r3, [r0] movs r5, #0 str r5, [sp] ldr r1, _080013F0 @ =0x02002808 ldr r2, _080013F4 @ =0x05000003 mov r0, sp bl CpuSet strh r5, [r6] ldrh r0, [r4] movs r1, #0x80 orrs r0, r1 strh r0, [r4] mov r1, r8 strh r1, [r6] ldr r1, _080013F8 @ =0x0400010C movs r2, #0x80 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r1] adds r1, #2 movs r0, #0xc1 strh r0, [r1] add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080013D0: .4byte 0x04000208 _080013D4: .4byte 0x04000200 _080013D8: .4byte 0x0000FF3F _080013DC: .4byte 0x04000134 _080013E0: .4byte 0x04000128 _080013E4: .4byte 0x00001008 _080013E8: .4byte 0x04000202 _080013EC: .4byte 0x02019C10 _080013F0: .4byte 0x02002808 _080013F4: .4byte 0x05000003 _080013F8: .4byte 0x0400010C thumb_func_start sub_13FC sub_13FC: @ 0x080013FC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0xc ldr r1, _08001434 @ =0x02002818 ldr r0, _08001438 @ =0x04000120 ldr r0, [r0] str r0, [r1] ldr r1, _0800143C @ =0x0400010E movs r0, #0 strh r0, [r1] subs r1, #2 movs r2, #0x80 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r1] ldr r0, _08001440 @ =0x02019C10 ldrb r1, [r0] mov sb, r0 cmp r1, #5 bls _0800142A b _0800161C _0800142A: lsls r0, r1, #2 ldr r1, _08001444 @ =_08001448 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08001434: .4byte 0x02002818 _08001438: .4byte 0x04000120 _0800143C: .4byte 0x0400010E _08001440: .4byte 0x02019C10 _08001444: .4byte _08001448 _08001448: @ jump table .4byte _08001460 @ case 0 .4byte _08001520 @ case 1 .4byte _08001574 @ case 2 .4byte _080015C8 @ case 3 .4byte _0800161C @ case 4 .4byte _0800161C @ case 5 _08001460: ldr r0, _080014B0 @ =0x04000120 mov r8, r0 ldr r6, [r0] ldr r3, _080014B4 @ =0x02002808 ldrb r1, [r3] lsls r2, r1, #4 adds r0, r6, #0 lsls r0, r2 lsrs r0, r0, #0x10 movs r7, #1 subs r1, r7, r1 lsls r1, r1, #4 lsls r6, r1 adds r1, r6, #0 lsrs r6, r1, #0x10 ldrh r5, [r3, #0xa] adds r4, r3, #0 cmp r5, #0 bne _080014E4 ldrh r2, [r4, #6] adds r1, r0, #0 cmp r1, r2 bne _080014E2 ldrh r3, [r4, #2] cmp r3, #3 bhi _080014B8 ldrh r0, [r4, #4] mvns r0, r0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r1, r0 bne _080014E4 mvns r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r6, r0 bne _080014E4 adds r0, r3, #1 strh r0, [r4, #2] b _080014E4 .align 2, 0 _080014B0: .4byte 0x04000120 _080014B4: .4byte 0x02002808 _080014B8: strh r6, [r4, #0xa] ldr r0, _080014D8 @ =0x00008002 cmp r6, r0 bne _080014E0 mov r1, sb strb r7, [r1] movs r0, #1 bl sub_1748 ldr r1, _080014DC @ =0x02002814 str r0, [r1] mov r2, r8 str r0, [r2] strh r5, [r4, #2] b _08001640 .align 2, 0 _080014D8: .4byte 0x00008002 _080014DC: .4byte 0x02002814 _080014E0: strh r5, [r4, #0xa] _080014E2: strh r5, [r4, #2] _080014E4: ldrh r0, [r4, #2] cmp r0, #3 bhi _080014F8 lsls r0, r0, #1 ldr r1, _080014F4 @ =0x0805C748 adds r0, r0, r1 ldrh r0, [r0] b _080014FC .align 2, 0 _080014F4: .4byte 0x0805C748 _080014F8: movs r0, #0x80 lsls r0, r0, #8 _080014FC: strh r0, [r4, #4] mvns r0, r6 strh r0, [r4, #6] ldr r3, _0800151C @ =0x04000120 ldrh r2, [r4, #4] ldrb r1, [r4] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #4 lsls r2, r0 ldrh r0, [r4, #6] lsls r1, r1, #4 lsls r0, r1 adds r2, r2, r0 str r2, [r3] b _08001640 .align 2, 0 _0800151C: .4byte 0x04000120 _08001520: ldr r5, _08001544 @ =0x02019C10 ldrb r0, [r5] bl sub_16A0 cmp r0, #0 beq _08001550 ldr r1, _08001548 @ =0x02002808 movs r4, #0 movs r0, #0 strh r0, [r1, #2] str r0, [sp] ldr r2, _0800154C @ =0x05000003 mov r0, sp bl CpuSet strb r4, [r5] b _08001554 .align 2, 0 _08001544: .4byte 0x02019C10 _08001548: .4byte 0x02002808 _0800154C: .4byte 0x05000003 _08001550: movs r0, #2 strb r0, [r5] _08001554: ldr r0, _0800156C @ =0x02019BF4 ldr r0, [r0] ldr r1, _08001570 @ =0x02019C10 mov sb, r1 cmp r0, #0 bne _08001564 movs r0, #4 strb r0, [r1] _08001564: mov r2, sb ldrb r0, [r2] b _080015F8 .align 2, 0 _0800156C: .4byte 0x02019BF4 _08001570: .4byte 0x02019C10 _08001574: ldr r5, _08001598 @ =0x02019C10 ldrb r0, [r5] bl sub_16A0 cmp r0, #0 beq _080015A4 ldr r1, _0800159C @ =0x02002808 movs r4, #0 movs r0, #0 strh r0, [r1, #2] str r0, [sp, #4] add r0, sp, #4 ldr r2, _080015A0 @ =0x05000003 bl CpuSet strb r4, [r5] b _080015A8 .align 2, 0 _08001598: .4byte 0x02019C10 _0800159C: .4byte 0x02002808 _080015A0: .4byte 0x05000003 _080015A4: movs r0, #3 strb r0, [r5] _080015A8: ldr r0, _080015C0 @ =0x02019BF4 ldr r0, [r0] ldr r1, _080015C4 @ =0x02019C10 mov sb, r1 cmp r0, #0 bne _080015B8 movs r0, #4 strb r0, [r1] _080015B8: mov r2, sb ldrb r0, [r2] b _080015F8 .align 2, 0 _080015C0: .4byte 0x02019BF4 _080015C4: .4byte 0x02019C10 _080015C8: mov r5, sb ldrb r0, [r5] bl sub_16A0 cmp r0, #0 beq _080015E8 ldr r1, _08001608 @ =0x02002808 movs r4, #0 movs r0, #0 strh r0, [r1, #2] str r0, [sp, #8] add r0, sp, #8 ldr r2, _0800160C @ =0x05000003 bl CpuSet strb r4, [r5] _080015E8: ldr r0, _08001610 @ =0x02019BF4 ldr r0, [r0] cmp r0, #0 bne _080015F4 movs r0, #4 strb r0, [r5] _080015F4: mov r1, sb ldrb r0, [r1] _080015F8: bl sub_1748 ldr r1, _08001614 @ =0x02002814 str r0, [r1] ldr r1, _08001618 @ =0x04000120 str r0, [r1] b _08001640 .align 2, 0 _08001608: .4byte 0x02002808 _0800160C: .4byte 0x05000003 _08001610: .4byte 0x02019BF4 _08001614: .4byte 0x02002814 _08001618: .4byte 0x04000120 _0800161C: ldr r3, _08001634 @ =0x04000208 movs r0, #0 strh r0, [r3] ldr r2, _08001638 @ =0x04000200 ldrh r1, [r2] ldr r0, _0800163C @ =0x0000FF7F ands r0, r1 strh r0, [r2] movs r0, #1 strh r0, [r3] b _08001650 .align 2, 0 _08001634: .4byte 0x04000208 _08001638: .4byte 0x04000200 _0800163C: .4byte 0x0000FF7F _08001640: ldr r2, _08001660 @ =0x04000128 ldrh r0, [r2] movs r1, #0x80 orrs r0, r1 strh r0, [r2] ldr r1, _08001664 @ =0x0400010E movs r0, #0xc1 strh r0, [r1] _08001650: add sp, #0xc pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08001660: .4byte 0x04000128 _08001664: .4byte 0x0400010E thumb_func_start sub_1668 sub_1668: @ 0x08001668 push {r4, r5, lr} ldr r2, _0800169C @ =0x00FFFFFF ands r2, r0 lsls r4, r2, #4 lsls r1, r1, #0x1c orrs r4, r1 lsrs r3, r4, #0x1c movs r2, #6 movs r5, #0xf _0800167A: lsls r0, r2, #2 adds r1, r4, #0 lsrs r1, r0 ands r1, r5 eors r3, r1 subs r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 bne _0800167A movs r0, #0xf ands r3, r0 orrs r4, r3 adds r0, r4, #0 pop {r4, r5} pop {r1} bx r1 .align 2, 0 _0800169C: .4byte 0x00FFFFFF thumb_func_start sub_16A0 sub_16A0: @ 0x080016A0 push {r4, r5, r6, lr} lsls r0, r0, #0x18 lsrs r4, r0, #0x18 ldr r6, _080016C4 @ =0x02002818 ldr r0, [r6] lsrs r5, r0, #0x1c bl sub_170C lsls r0, r0, #0x18 cmp r0, #0 bne _080016DE cmp r4, #2 beq _080016E8 cmp r4, #2 bgt _080016C8 cmp r4, #1 beq _080016CE b _080016DE .align 2, 0 _080016C4: .4byte 0x02002818 _080016C8: cmp r4, #3 beq _08001700 b _080016DE _080016CE: ldr r1, _080016E4 @ =0x0200281C ldr r0, [r6] lsls r0, r0, #4 lsrs r0, r0, #8 ands r0, r4 str r0, [r1] cmp r5, #1 beq _08001704 _080016DE: movs r0, #1 b _08001706 .align 2, 0 _080016E4: .4byte 0x0200281C _080016E8: cmp r5, #2 bne _080016DE ldr r0, _080016FC @ =0x0200281C ldr r1, [r6] lsls r1, r1, #4 lsrs r1, r1, #8 ldr r0, [r0] cmp r0, r1 beq _08001704 b _080016DE .align 2, 0 _080016FC: .4byte 0x0200281C _08001700: cmp r5, #3 bne _080016DE _08001704: movs r0, #0 _08001706: pop {r4, r5, r6} pop {r1} bx r1 thumb_func_start sub_170C sub_170C: @ 0x0800170C push {r4, r5, r6, lr} ldr r0, _0800173C @ =0x02002818 ldr r0, [r0] lsrs r4, r0, #4 movs r5, #0xf ands r5, r0 lsrs r3, r4, #0x18 movs r0, #6 movs r6, #0xf _0800171E: subs r0, #1 lsls r2, r0, #2 adds r1, r4, #0 lsrs r1, r2 ands r1, r6 eors r3, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _0800171E cmp r3, r5 beq _08001740 movs r0, #1 b _08001742 .align 2, 0 _0800173C: .4byte 0x02002818 _08001740: movs r0, #0 _08001742: pop {r4, r5, r6} pop {r1} bx r1 thumb_func_start sub_1748 sub_1748: @ 0x08001748 push {r4, lr} lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #4 bhi _080017CE lsls r0, r0, #2 ldr r1, _08001760 @ =_08001764 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08001760: .4byte _08001764 _08001764: @ jump table .4byte _080017C4 @ case 0 .4byte _08001778 @ case 1 .4byte _08001784 @ case 2 .4byte _080017C4 @ case 3 .4byte _080017C4 @ case 4 _08001778: ldr r0, _08001780 @ =0x0200281C ldr r0, [r0] movs r1, #2 b _080017C8 .align 2, 0 _08001780: .4byte 0x0200281C _08001784: ldr r4, _080017C0 @ =0x02019C00 ldr r0, [r4] cmp r0, #0 bne _0800179A movs r0, #0 bl sub_17D8 movs r1, #4 bl sub_1668 adds r2, r0, #0 _0800179A: ldr r0, [r4] cmp r0, #1 bne _080017AE movs r0, #1 bl sub_17D8 movs r1, #4 bl sub_1668 adds r2, r0, #0 _080017AE: ldr r0, [r4] cmp r0, #2 bne _080017CE movs r0, #2 bl sub_17D8 movs r1, #4 b _080017C8 .align 2, 0 _080017C0: .4byte 0x02019C00 _080017C4: movs r0, #1 movs r1, #1 _080017C8: bl sub_1668 adds r2, r0, #0 _080017CE: adds r0, r2, #0 pop {r4} pop {r1} bx r1 thumb_func_start sub_17D8 sub_17D8: @ 0x080017D8 adds r2, r0, #0 ldr r0, _080017EC @ =0x02019BEC ldr r0, [r0] cmp r0, #4 bhi _08001824 lsls r0, r0, #2 ldr r1, _080017F0 @ =_080017F4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080017EC: .4byte 0x02019BEC _080017F0: .4byte _080017F4 _080017F4: @ jump table .4byte _08001808 @ case 0 .4byte _0800180C @ case 1 .4byte _08001810 @ case 2 .4byte _08001814 @ case 3 .4byte _08001818 @ case 4 _08001808: adds r1, r2, #0 b _08001824 _0800180C: lsls r1, r2, #2 b _08001824 _08001810: lsls r1, r2, #4 b _08001824 _08001814: lsls r1, r2, #6 b _08001824 _08001818: lsls r1, r2, #2 orrs r1, r2 lsls r0, r2, #4 orrs r1, r0 lsls r0, r2, #6 orrs r1, r0 _08001824: adds r0, r1, #0 bx lr thumb_func_start sub_1828 sub_1828: @ 0x08001828 push {r4, r5, lr} ldr r3, _08001868 @ =0x04000208 movs r4, #0 strh r4, [r3] ldr r2, _0800186C @ =0x04000200 ldrh r1, [r2] ldr r0, _08001870 @ =0x0000FFBF ands r0, r1 strh r0, [r2] movs r5, #1 strh r5, [r3] strh r4, [r3] subs r2, #0xd8 ldrh r1, [r2] ldr r0, _08001874 @ =0x0000FF7F ands r0, r1 strh r0, [r2] strh r5, [r3] ldr r0, _08001878 @ =0x0400010E strh r4, [r0] ldr r1, _0800187C @ =0x0400010C movs r2, #0x80 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r1] ldr r1, _08001880 @ =0x02019C10 movs r0, #5 strb r0, [r1] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08001868: .4byte 0x04000208 _0800186C: .4byte 0x04000200 _08001870: .4byte 0x0000FFBF _08001874: .4byte 0x0000FF7F _08001878: .4byte 0x0400010E _0800187C: .4byte 0x0400010C _08001880: .4byte 0x02019C10 thumb_func_start sub_1884 sub_1884: @ 0x08001884 push {r4, r5, r6, lr} mov r6, r8 push {r6} sub sp, #4 ldr r0, _08001944 @ =0x02002822 mov r8, r0 ldr r5, _08001948 @ =0x04000208 ldrh r2, [r5] movs r4, #0 strh r4, [r5] ldr r6, _0800194C @ =0x04000200 ldrh r1, [r6] ldr r0, _08001950 @ =0x0000FF3F ands r0, r1 strh r0, [r6] strh r2, [r5] ldr r0, _08001954 @ =0x04000134 strh r4, [r0] ldr r2, _08001958 @ =0x04000128 movs r1, #0x80 lsls r1, r1, #6 adds r0, r1, #0 strh r0, [r2] ldrh r0, [r2] ldr r3, _0800195C @ =0x00004003 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldrh r0, [r5] mov r1, r8 strh r0, [r1] ldr r0, _08001960 @ =sub_19CC + 1 bl sub_898 ldr r0, _08001964 @ =sub_1A78 + 1 bl sub_8D4 strh r4, [r5] ldrh r0, [r6] movs r1, #0x80 orrs r0, r1 strh r0, [r6] mov r3, r8 ldrh r0, [r3] strh r0, [r5] ldr r0, _08001968 @ =0x0400012A strh r4, [r0] ldr r2, _0800196C @ =0x04000120 movs r0, #0 movs r1, #0 str r0, [r2] str r1, [r2, #4] movs r5, #0 str r5, [sp] ldr r1, _08001970 @ =0x0202BF20 ldr r2, _08001974 @ =0x05000189 mov r0, sp bl CpuSet ldr r0, _08001978 @ =0x02002824 strb r4, [r0] ldr r0, _0800197C @ =0x02002825 strb r4, [r0] ldr r0, _08001980 @ =0x02002827 strb r4, [r0] ldr r0, _08001984 @ =0x02019C2C strb r4, [r0] ldr r0, _08001988 @ =0x0202A554 strb r4, [r0] ldr r0, _0800198C @ =0x0202C5E0 strb r4, [r0] ldr r0, _08001990 @ =0x0202ADD0 str r5, [r0] ldr r0, _08001994 @ =0x0201A444 strh r5, [r0] ldr r0, _08001998 @ =0x0202BDF0 str r5, [r0] ldr r0, _0800199C @ =0x0201C1AC strb r4, [r0] ldr r0, _080019A0 @ =0x0202ADDC strb r4, [r0] ldr r0, _080019A4 @ =0x0202BEC8 strb r4, [r0] ldr r0, _080019A8 @ =0x02002820 strb r4, [r0] ldr r0, _080019AC @ =0x02002828 strh r5, [r0] ldr r0, _080019B0 @ =0x0200282A strh r5, [r0] add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08001944: .4byte 0x02002822 _08001948: .4byte 0x04000208 _0800194C: .4byte 0x04000200 _08001950: .4byte 0x0000FF3F _08001954: .4byte 0x04000134 _08001958: .4byte 0x04000128 _0800195C: .4byte 0x00004003 _08001960: .4byte sub_19CC + 1 _08001964: .4byte sub_1A78 + 1 _08001968: .4byte 0x0400012A _0800196C: .4byte 0x04000120 _08001970: .4byte 0x0202BF20 _08001974: .4byte 0x05000189 _08001978: .4byte 0x02002824 _0800197C: .4byte 0x02002825 _08001980: .4byte 0x02002827 _08001984: .4byte 0x02019C2C _08001988: .4byte 0x0202A554 _0800198C: .4byte 0x0202C5E0 _08001990: .4byte 0x0202ADD0 _08001994: .4byte 0x0201A444 _08001998: .4byte 0x0202BDF0 _0800199C: .4byte 0x0201C1AC _080019A0: .4byte 0x0202ADDC _080019A4: .4byte 0x0202BEC8 _080019A8: .4byte 0x02002820 _080019AC: .4byte 0x02002828 _080019B0: .4byte 0x0200282A thumb_func_start sub_19B4 sub_19B4: @ 0x080019B4 push {lr} bl sub_24DC bl sub_250C bl sub_1884 bl sub_1AA4 pop {r0} bx r0 thumb_func_start sub_19CC sub_19CC: @ 0x080019CC push {lr} ldr r0, _08001A6C @ =0x04000004 ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08001A64 ldr r0, _08001A70 @ =0x03005000 movs r1, #0xe0 lsls r1, r1, #0x13 movs r2, #0x80 lsls r2, r2, #2 bl CpuSet movs r1, #0x80 lsls r1, r1, #0x13 ldr r2, _08001A74 @ =0x0200B0C0 ldrh r0, [r2, #0x16] strh r0, [r1] adds r1, #0x10 movs r3, #0xba lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r1, #2 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r2, #0 adds r0, #0x36 ldrb r0, [r0] cmp r0, #0 beq _08001A60 adds r1, #0x32 ldrh r0, [r2, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3c] strh r0, [r1] _08001A60: bl VBlankIntrWait _08001A64: bl m4aSoundMain pop {r0} bx r0 .align 2, 0 _08001A6C: .4byte 0x04000004 _08001A70: .4byte 0x03005000 _08001A74: .4byte 0x0200B0C0 thumb_func_start sub_1A78 sub_1A78: @ 0x08001A78 push {lr} bl sub_1EC0 bl m4aSoundVSync ldr r3, _08001A98 @ =0x04000208 movs r0, #0 strh r0, [r3] ldr r2, _08001A9C @ =0x03007FF8 ldrh r0, [r2] movs r1, #1 orrs r0, r1 strh r0, [r2] strh r1, [r3] pop {r0} bx r0 .align 2, 0 _08001A98: .4byte 0x04000208 _08001A9C: .4byte 0x03007FF8 thumb_func_start nullsub_15 nullsub_15: @ 0x08001AA0 bx lr thumb_func_start sub_1AA4 sub_1AA4: @ 0x08001AA4 push {r4, r5, lr} sub sp, #4 ldr r0, _08001AE4 @ =0x02002822 ldr r2, _08001AE8 @ =0x04000208 ldrh r5, [r2] strh r5, [r0] movs r4, #0 strh r4, [r2] ldr r3, _08001AEC @ =0x04000200 ldrh r1, [r3] ldr r0, _08001AF0 @ =0x0000FF3F ands r0, r1 strh r0, [r3] strh r5, [r2] ldr r0, _08001AF4 @ =0x04000128 strh r4, [r0] subs r0, #0x1a strh r4, [r0] ldr r1, _08001AF8 @ =0x04000202 movs r0, #0xc0 strh r0, [r1] movs r0, #0 str r0, [sp] ldr r1, _08001AFC @ =0x0202BF20 ldr r2, _08001B00 @ =0x05000189 mov r0, sp bl CpuSet add sp, #4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08001AE4: .4byte 0x02002822 _08001AE8: .4byte 0x04000208 _08001AEC: .4byte 0x04000200 _08001AF0: .4byte 0x0000FF3F _08001AF4: .4byte 0x04000128 _08001AF8: .4byte 0x04000202 _08001AFC: .4byte 0x0202BF20 _08001B00: .4byte 0x05000189 thumb_func_start sub_1B04 sub_1B04: @ 0x08001B04 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 ldr r0, _08001B20 @ =0x0202BF20 ldrb r0, [r0, #1] cmp r0, #4 bhi _08001BEE lsls r0, r0, #2 ldr r1, _08001B24 @ =_08001B28 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08001B20: .4byte 0x0202BF20 _08001B24: .4byte _08001B28 _08001B28: @ jump table .4byte _08001B3C @ case 0 .4byte _08001B4C @ case 1 .4byte _08001B5C @ case 2 .4byte _08001BD0 @ case 3 .4byte _08001BDA @ case 4 _08001B3C: bl sub_1AA4 ldr r1, _08001B48 @ =0x0202BF20 movs r0, #1 strb r0, [r1, #1] b _08001BEE .align 2, 0 _08001B48: .4byte 0x0202BF20 _08001B4C: bl sub_1884 ldr r1, _08001B58 @ =0x0202BF20 movs r0, #2 strb r0, [r1, #1] b _08001BEE .align 2, 0 _08001B58: .4byte 0x0202BF20 _08001B5C: ldrb r1, [r6] cmp r1, #1 beq _08001B98 cmp r1, #2 beq _08001BBC bl sub_1C5C ldr r2, _08001B90 @ =0x0202C5E0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 bne _08001BEE ldr r1, _08001B94 @ =0x0202BF20 ldrb r0, [r1] cmp r0, #0 beq _08001BEE ldrb r0, [r1, #3] cmp r0, #2 bne _08001BEE movs r0, #1 strb r0, [r1, #0x10] movs r1, #1 rsbs r1, r1, #0 adds r0, r1, #0 strb r0, [r2] b _08001BEE .align 2, 0 _08001B90: .4byte 0x0202C5E0 _08001B94: .4byte 0x0202BF20 _08001B98: ldr r2, _08001BB4 @ =0x0202BF20 ldrb r0, [r2] cmp r0, #0 beq _08001BA8 ldrb r0, [r2, #3] cmp r0, #2 bne _08001BA8 strb r1, [r2, #0x10] _08001BA8: ldr r1, _08001BB8 @ =0x0202C5E0 movs r2, #1 rsbs r2, r2, #0 adds r0, r2, #0 strb r0, [r1] b _08001BEE .align 2, 0 _08001BB4: .4byte 0x0202BF20 _08001BB8: .4byte 0x0202C5E0 _08001BBC: ldr r0, _08001BC8 @ =0x0202BF20 movs r1, #0 strb r1, [r0, #1] ldr r0, _08001BCC @ =0x0400012A strh r1, [r0] b _08001BEE .align 2, 0 _08001BC8: .4byte 0x0202BF20 _08001BCC: .4byte 0x0400012A _08001BD0: bl sub_1C84 ldr r1, _08001C30 @ =0x0202BF20 movs r0, #4 strb r0, [r1, #1] _08001BDA: ldr r0, _08001C30 @ =0x0202BF20 ldrb r0, [r0, #0xe] cmp r0, #0 bne _08001BE8 adds r0, r4, #0 bl sub_1CD4 _08001BE8: adds r0, r5, #0 bl sub_1DB8 _08001BEE: movs r0, #0 strb r0, [r6] ldr r1, _08001C30 @ =0x0202BF20 ldrb r2, [r1, #2] ldrb r0, [r1, #3] lsls r0, r0, #2 orrs r2, r0 ldrb r0, [r1] cmp r0, #8 bne _08001C06 movs r0, #0x20 orrs r2, r0 _08001C06: ldrb r0, [r1, #0xc] lsls r3, r0, #8 ldrb r0, [r1, #0x11] lsls r4, r0, #9 ldrb r0, [r1, #0x12] lsls r5, r0, #0x10 ldrb r0, [r1, #0x13] lsls r6, r0, #0x11 ldrb r0, [r1, #0x14] lsls r7, r0, #0x12 ldrb r0, [r1, #0x15] lsls r0, r0, #0x14 mov ip, r0 ldrb r0, [r1, #1] cmp r0, #4 bne _08001C34 movs r0, #0x40 orrs r0, r3 orrs r0, r2 b _08001C38 .align 2, 0 _08001C30: .4byte 0x0202BF20 _08001C34: adds r0, r2, #0 orrs r0, r3 _08001C38: orrs r0, r4 orrs r0, r5 orrs r0, r6 orrs r0, r7 mov r2, ip orrs r0, r2 adds r2, r0, #0 ldrb r0, [r1, #2] cmp r0, #1 bls _08001C52 movs r0, #0x80 lsls r0, r0, #0xf orrs r2, r0 _08001C52: adds r0, r2, #0 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_1C5C sub_1C5C: @ 0x08001C5C ldr r0, _08001C74 @ =0x04000128 ldr r1, [r0] movs r0, #0xc ands r1, r0 ldr r2, _08001C78 @ =0x0202BF20 cmp r1, #8 bne _08001C7C ldrb r0, [r2, #2] cmp r0, #0 bne _08001C7C strb r1, [r2] b _08001C80 .align 2, 0 _08001C74: .4byte 0x04000128 _08001C78: .4byte 0x0202BF20 _08001C7C: movs r0, #0 strb r0, [r2] _08001C80: bx lr thumb_func_start sub_1C84 sub_1C84: @ 0x08001C84 push {r4, lr} ldr r0, _08001CBC @ =0x0202BF20 ldrb r0, [r0] cmp r0, #0 beq _08001CB4 ldr r1, _08001CC0 @ =0x0400010C ldr r2, _08001CC4 @ =0x0000FF3B adds r0, r2, #0 strh r0, [r1] adds r1, #2 movs r0, #0x41 strh r0, [r1] ldr r0, _08001CC8 @ =0x02002822 ldr r2, _08001CCC @ =0x04000208 ldrh r4, [r2] strh r4, [r0] movs r0, #0 strh r0, [r2] ldr r3, _08001CD0 @ =0x04000200 ldrh r0, [r3] movs r1, #0x40 orrs r0, r1 strh r0, [r3] strh r4, [r2] _08001CB4: pop {r4} pop {r0} bx r0 .align 2, 0 _08001CBC: .4byte 0x0202BF20 _08001CC0: .4byte 0x0400010C _08001CC4: .4byte 0x0000FF3B _08001CC8: .4byte 0x02002822 _08001CCC: .4byte 0x04000208 _08001CD0: .4byte 0x04000200 thumb_func_start sub_1CD4 sub_1CD4: @ 0x08001CD4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r3, r0, #0 ldr r2, _08001D48 @ =0x02002822 ldr r1, _08001D4C @ =0x04000208 ldrh r0, [r1] strh r0, [r2] movs r0, #0 strh r0, [r1] ldr r1, _08001D50 @ =0x0202BF20 ldr r4, _08001D54 @ =0x0000021D adds r0, r1, r4 ldrb r4, [r0] mov sl, r2 adds r6, r1, #0 cmp r4, #0x1f bhi _08001D60 movs r1, #0x87 lsls r1, r1, #2 adds r0, r6, r1 ldrb r0, [r0] adds r0, r4, r0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bls _08001D14 subs r0, #0x20 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 _08001D14: movs r2, #0 ldr r4, _08001D58 @ =0x02002828 mov r8, r4 ldr r1, _08001D5C @ =0x02019C2C mov sb, r1 lsls r5, r0, #1 movs r0, #0x1c adds r0, r0, r6 mov ip, r0 movs r7, #0 _08001D28: ldrh r0, [r4] ldrh r1, [r3] orrs r0, r1 strh r0, [r4] lsls r0, r2, #6 adds r0, r5, r0 add r0, ip strh r1, [r0] strh r7, [r3] adds r3, #2 adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #7 bls _08001D28 b _08001D70 .align 2, 0 _08001D48: .4byte 0x02002822 _08001D4C: .4byte 0x04000208 _08001D50: .4byte 0x0202BF20 _08001D54: .4byte 0x0000021D _08001D58: .4byte 0x02002828 _08001D5C: .4byte 0x02019C2C _08001D60: ldrb r1, [r6, #0x14] movs r0, #1 orrs r0, r1 strb r0, [r6, #0x14] ldr r1, _08001DA8 @ =0x02002828 mov r8, r1 ldr r2, _08001DAC @ =0x02019C2C mov sb, r2 _08001D70: mov r4, r8 ldrh r0, [r4] cmp r0, #0 beq _08001D86 ldr r1, _08001DB0 @ =0x0000021D adds r0, r6, r1 ldrb r1, [r0] adds r1, #1 movs r2, #0 strb r1, [r0] strh r2, [r4] _08001D86: ldr r1, _08001DB4 @ =0x04000208 mov r2, sl ldrh r0, [r2] strh r0, [r1] ldr r4, _08001DB0 @ =0x0000021D adds r0, r6, r4 ldrb r0, [r0] mov r1, sb strb r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08001DA8: .4byte 0x02002828 _08001DAC: .4byte 0x02019C2C _08001DB0: .4byte 0x0000021D _08001DB4: .4byte 0x04000208 thumb_func_start sub_1DB8 sub_1DB8: @ 0x08001DB8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov ip, r0 ldr r2, _08001E18 @ =0x02002822 ldr r1, _08001E1C @ =0x04000208 ldrh r0, [r1] strh r0, [r2] movs r0, #0 strh r0, [r1] ldr r1, _08001E20 @ =0x0202BF20 ldr r3, _08001E24 @ =0x00000621 adds r0, r1, r3 ldrb r0, [r0] adds r7, r1, #0 cmp r0, #0 bne _08001E28 movs r1, #0 mov r8, r7 ldrb r6, [r7, #3] _08001DE4: movs r2, #0 adds r5, r1, #1 cmp r2, r6 bhs _08001E08 lsls r0, r1, #2 mov r3, ip adds r1, r0, r3 movs r4, #0 mov r0, r8 ldrb r3, [r0, #3] _08001DF8: lsls r0, r2, #1 adds r0, r0, r1 strh r4, [r0] adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, r3 blo _08001DF8 _08001E08: lsls r0, r5, #0x18 lsrs r1, r0, #0x18 cmp r1, #7 bls _08001DE4 movs r0, #1 strb r0, [r7, #0xc] b _08001E9A .align 2, 0 _08001E18: .4byte 0x02002822 _08001E1C: .4byte 0x04000208 _08001E20: .4byte 0x0202BF20 _08001E24: .4byte 0x00000621 _08001E28: movs r1, #0 ldrb r2, [r7, #3] mov sb, r2 movs r3, #0x88 lsls r3, r3, #2 adds r3, r3, r7 mov r8, r3 mov sl, r7 _08001E38: movs r2, #0 adds r5, r1, #1 cmp r2, sb bhs _08001E6C lsls r0, r1, #2 mov r3, ip adds r6, r0, r3 ldr r0, _08001EB0 @ =0x0202C540 ldrb r0, [r0] lsls r0, r0, #1 lsls r1, r1, #6 adds r4, r0, r1 mov r0, sl ldrb r3, [r0, #3] _08001E54: lsls r1, r2, #1 adds r1, r1, r6 lsls r0, r2, #9 adds r0, r4, r0 add r0, r8 ldrh r0, [r0] strh r0, [r1] adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, r3 blo _08001E54 _08001E6C: lsls r0, r5, #0x18 lsrs r1, r0, #0x18 cmp r1, #7 bls _08001E38 adds r2, r7, #0 ldr r3, _08001EB4 @ =0x00000621 adds r1, r2, r3 ldrb r0, [r1] subs r0, #1 movs r3, #0 strb r0, [r1] movs r0, #0xc4 lsls r0, r0, #3 adds r2, r2, r0 ldrb r0, [r2] adds r0, #1 strb r0, [r2] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bls _08001E98 strb r3, [r2] _08001E98: strb r3, [r7, #0xc] _08001E9A: ldr r1, _08001EB8 @ =0x04000208 ldr r2, _08001EBC @ =0x02002822 ldrh r0, [r2] strh r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08001EB0: .4byte 0x0202C540 _08001EB4: .4byte 0x00000621 _08001EB8: .4byte 0x04000208 _08001EBC: .4byte 0x02002822 thumb_func_start sub_1EC0 sub_1EC0: @ 0x08001EC0 push {r4, lr} ldr r4, _08001F00 @ =0x0202BF20 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08001EDC ldr r1, _08001F04 @ =0x02002826 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08001F42 strb r0, [r4, #0xe] _08001EDC: ldrb r3, [r4] cmp r3, #0 beq _08001F16 ldrb r0, [r4, #1] cmp r0, #2 beq _08001F10 cmp r0, #4 bne _08001F42 ldrb r0, [r4, #0xd] cmp r0, #8 bhi _08001F08 ldrb r0, [r4, #0x12] cmp r0, #0 bne _08001F10 movs r0, #1 strb r0, [r4, #0x15] b _08001F42 .align 2, 0 _08001F00: .4byte 0x0202BF20 _08001F04: .4byte 0x02002826 _08001F08: ldrb r0, [r4, #0x15] cmp r0, #0 bne _08001F42 strb r0, [r4, #0xd] _08001F10: bl sub_1FEC b _08001F42 _08001F16: ldrb r2, [r4, #1] cmp r2, #4 beq _08001F20 cmp r2, #2 bne _08001F42 _08001F20: ldr r1, _08001F48 @ =0x02002824 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #6 bls _08001F42 cmp r2, #4 bne _08001F38 movs r0, #2 strb r0, [r4, #0x15] _08001F38: cmp r2, #2 bne _08001F42 strb r3, [r4, #2] strb r3, [r4, #3] strb r3, [r4, #0x11] _08001F42: pop {r4} pop {r0} bx r0 .align 2, 0 _08001F48: .4byte 0x02002824 thumb_func_start sub_1F4C sub_1F4C: @ 0x08001F4C push {lr} bl sub_2308 bl sub_1FEC pop {r0} bx r0 thumb_func_start sub_1F5C sub_1F5C: @ 0x08001F5C push {r4, lr} ldr r0, _08001F90 @ =0x04000128 ldr r1, [r0] ldr r4, _08001F94 @ =0x0202BF20 lsls r0, r1, #0x1a lsrs r0, r0, #0x1e strb r0, [r4, #2] ldrb r0, [r4, #1] cmp r0, #2 beq _08001F98 cmp r0, #4 bne _08001FB6 movs r0, #0x40 ands r1, r0 cmp r1, #0 beq _08001F80 movs r0, #1 strb r0, [r4, #0x12] _08001F80: bl sub_20FC bl sub_223C bl sub_2338 b _08001FB6 .align 2, 0 _08001F90: .4byte 0x04000128 _08001F94: .4byte 0x0202BF20 _08001F98: bl sub_1FFC lsls r0, r0, #0x18 cmp r0, #0 beq _08001FB6 ldrb r0, [r4] cmp r0, #0 beq _08001FB2 movs r0, #3 strb r0, [r4, #1] movs r0, #8 strb r0, [r4, #0xd] b _08001FB6 _08001FB2: movs r0, #4 strb r0, [r4, #1] _08001FB6: ldr r3, _08001FDC @ =0x0202BF20 ldrb r0, [r3, #0xd] adds r0, #1 movs r2, #0 strb r0, [r3, #0xd] ldr r1, _08001FE0 @ =0x02002824 strb r2, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bne _08001FD6 ldr r0, _08001FE4 @ =0x0202A554 ldr r2, _08001FE8 @ =0x00000621 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] _08001FD6: pop {r4} pop {r0} bx r0 .align 2, 0 _08001FDC: .4byte 0x0202BF20 _08001FE0: .4byte 0x02002824 _08001FE4: .4byte 0x0202A554 _08001FE8: .4byte 0x00000621 thumb_func_start sub_1FEC sub_1FEC: @ 0x08001FEC ldr r0, _08001FF8 @ =0x04000128 ldrh r1, [r0] movs r2, #0x80 orrs r1, r2 strh r1, [r0] bx lr .align 2, 0 _08001FF8: .4byte 0x04000128 thumb_func_start sub_1FFC sub_1FFC: @ 0x08001FFC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r7, #0 ldr r5, _08002018 @ =0x0000FFFF ldr r0, _0800201C @ =0x0202BF20 ldrb r1, [r0, #0x10] adds r4, r0, #0 cmp r1, #1 bne _0800202C ldr r1, _08002020 @ =0x0400012A ldr r2, _08002024 @ =0x00008FFF b _08002030 .align 2, 0 _08002018: .4byte 0x0000FFFF _0800201C: .4byte 0x0202BF20 _08002020: .4byte 0x0400012A _08002024: .4byte 0x00008FFF _08002028: movs r7, #0 b _080020B2 _0800202C: ldr r1, _08002080 @ =0x0400012A ldr r2, _08002084 @ =0x0000D13B _08002030: adds r0, r2, #0 strh r0, [r1] movs r0, #0 strb r0, [r4, #0x10] ldr r0, _08002088 @ =0x04000120 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r4, #4] str r1, [r4, #8] movs r3, #0 ldr r0, _0800208C @ =0x02002827 mov sb, r0 adds r6, r4, #0 ldr r1, _08002090 @ =0x00008FFF mov r8, r1 ldr r2, _08002094 @ =0x0000FFFF mov ip, r2 _08002052: lsls r0, r3, #1 adds r1, r6, #4 adds r0, r0, r1 ldrh r2, [r0] movs r0, #4 rsbs r0, r0, #0 ands r0, r2 ldr r1, _08002098 @ =0x0000D138 cmp r0, r1 beq _0800206C adds r0, r2, #0 cmp r0, r8 bne _0800209C _0800206C: adds r0, r7, #1 lsls r0, r0, #0x18 lsrs r7, r0, #0x18 adds r0, r2, #0 cmp r5, r0 bls _080020A8 cmp r0, #0 beq _080020A8 adds r5, r2, #0 b _080020A8 .align 2, 0 _08002080: .4byte 0x0400012A _08002084: .4byte 0x0000D13B _08002088: .4byte 0x04000120 _0800208C: .4byte 0x02002827 _08002090: .4byte 0x00008FFF _08002094: .4byte 0x0000FFFF _08002098: .4byte 0x0000D138 _0800209C: cmp r0, ip bne _08002028 ldrb r0, [r6, #2] cmp r3, r0 bne _080020A8 movs r7, #0 _080020A8: adds r0, r3, #1 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 cmp r3, #1 bls _08002052 _080020B2: strb r7, [r4, #3] adds r0, r7, #0 cmp r0, #2 bne _080020E2 mov r1, sb ldrb r1, [r1] cmp r0, r1 bne _080020D4 ldrh r1, [r4, #4] ldr r0, _080020D0 @ =0x00008FFF cmp r1, r0 bne _080020D4 movs r0, #1 b _080020EE .align 2, 0 _080020D0: .4byte 0x00008FFF _080020D4: ldrb r0, [r4, #3] cmp r0, #2 bne _080020E2 movs r0, #3 ands r5, r0 adds r0, r5, #1 b _080020E4 _080020E2: movs r0, #0 _080020E4: strb r0, [r4, #0x11] ldrb r0, [r4, #3] mov r2, sb strb r0, [r2] movs r0, #0 _080020EE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_20FC sub_20FC: @ 0x080020FC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r0, _08002158 @ =0x04000120 ldr r1, [r0, #4] ldr r0, [r0] str r0, [sp] str r1, [sp, #4] ldr r0, _0800215C @ =0x0202BF20 ldrb r1, [r0, #0x18] adds r6, r0, #0 cmp r1, #0 bne _08002164 movs r3, #0 ldr r7, _08002160 @ =0x02002820 ldrb r0, [r6, #3] cmp r3, r0 bhs _0800214C adds r5, r6, #0 ldrh r1, [r6, #0x16] adds r4, r7, #0 adds r2, r6, #0 _0800212C: lsls r0, r3, #1 add r0, sp ldrh r0, [r0] cmp r1, r0 beq _08002140 ldrb r0, [r4] cmp r0, #0 beq _08002140 movs r0, #1 strb r0, [r5, #0x13] _08002140: adds r0, r3, #1 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 ldrb r0, [r2, #3] cmp r3, r0 blo _0800212C _0800214C: movs r0, #0 strh r0, [r6, #0x16] movs r0, #1 strb r0, [r7] b _08002224 .align 2, 0 _08002158: .4byte 0x04000120 _0800215C: .4byte 0x0202BF20 _08002160: .4byte 0x02002820 _08002164: movs r2, #0xc4 lsls r2, r2, #3 adds r1, r6, r2 adds r2, #1 adds r0, r6, r2 ldrb r2, [r0] ldrb r1, [r1] adds r0, r2, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bls _08002182 subs r0, #0x20 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 _08002182: cmp r2, #0x1f bhi _080021F8 movs r3, #0 ldrb r1, [r6, #3] cmp r3, r1 bhs _08002200 adds r5, r6, #0 ldr r7, _080021F0 @ =0x0200282A lsls r0, r0, #1 mov ip, r0 movs r2, #0x88 lsls r2, r2, #2 adds r2, r2, r6 mov sb, r2 ldr r0, _080021F4 @ =0x02002826 mov r8, r0 _080021A2: lsls r0, r3, #1 mov r1, sp adds r4, r1, r0 ldrh r2, [r4] ldrh r1, [r5, #0x16] adds r0, r2, r1 strh r0, [r5, #0x16] ldrh r0, [r7] orrs r0, r2 strh r0, [r7] ldrb r0, [r5, #0x19] lsls r0, r0, #6 add r0, ip lsls r1, r3, #9 adds r0, r0, r1 add r0, sb strh r2, [r0] ldrb r0, [r5, #0x18] cmp r0, #1 bne _080021E2 ldrb r0, [r6, #0xe] cmp r0, #0 bne _080021E2 ldrh r0, [r4] movs r1, #0xf ands r1, r0 cmp r1, #1 bne _080021E2 strb r1, [r5, #0xe] movs r0, #5 mov r2, r8 strb r0, [r2] _080021E2: adds r0, r3, #1 lsls r0, r0, #0x18 lsrs r3, r0, #0x18 ldrb r0, [r5, #3] cmp r3, r0 blo _080021A2 b _08002200 .align 2, 0 _080021F0: .4byte 0x0200282A _080021F4: .4byte 0x02002826 _080021F8: ldrb r1, [r6, #0x14] movs r0, #2 orrs r0, r1 strb r0, [r6, #0x14] _08002200: ldrb r0, [r6, #0x19] adds r0, #1 strb r0, [r6, #0x19] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #8 bne _08002224 ldr r2, _08002234 @ =0x0200282A ldrh r0, [r2] cmp r0, #0 beq _08002224 ldr r1, _08002238 @ =0x00000621 adds r0, r6, r1 ldrb r1, [r0] adds r1, #1 strb r1, [r0] movs r0, #0 strh r0, [r2] _08002224: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08002234: .4byte 0x0200282A _08002238: .4byte 0x00000621 thumb_func_start sub_223C sub_223C: @ 0x0800223C ldr r0, _08002278 @ =0x0202BF20 ldrb r2, [r0, #0x18] adds r3, r0, #0 cmp r2, #8 bne _0800228E ldr r1, _0800227C @ =0x0400012A ldrh r0, [r3, #0x16] strh r0, [r1] ldr r1, _08002280 @ =0x02002825 ldrb r2, [r1] cmp r2, #0 bne _08002288 ldr r0, _08002284 @ =0x0000021D adds r1, r3, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] movs r0, #0x87 lsls r0, r0, #2 adds r1, r3, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1f bls _080022FE strb r2, [r1] b _080022FE .align 2, 0 _08002278: .4byte 0x0202BF20 _0800227C: .4byte 0x0400012A _08002280: .4byte 0x02002825 _08002284: .4byte 0x0000021D _08002288: movs r0, #0 strb r0, [r1] b _080022FE _0800228E: ldr r1, _080022B0 @ =0x02002825 cmp r2, #0 bne _080022A2 ldr r2, _080022B4 @ =0x0000021D adds r0, r3, r2 ldrb r0, [r0] cmp r0, #0 bne _080022A2 movs r0, #1 strb r0, [r1] _080022A2: ldrb r0, [r1] cmp r0, #0 beq _080022BC ldr r1, _080022B8 @ =0x0400012A movs r0, #0 strh r0, [r1] b _080022D8 .align 2, 0 _080022B0: .4byte 0x02002825 _080022B4: .4byte 0x0000021D _080022B8: .4byte 0x0400012A _080022BC: ldr r2, _08002300 @ =0x0400012A movs r1, #0x87 lsls r1, r1, #2 adds r0, r3, r1 ldrb r1, [r0] lsls r1, r1, #1 ldrb r0, [r3, #0x18] lsls r0, r0, #6 adds r1, r1, r0 adds r0, r3, #0 adds r0, #0x1c adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] _080022D8: ldrb r0, [r3, #0xe] cmp r0, #0 bne _080022F8 ldrb r0, [r3, #0x18] cmp r0, #0 bne _080022F8 ldr r2, _08002304 @ =0x00000621 adds r0, r3, r2 ldrb r0, [r0] cmp r0, #3 bls _080022F8 ldr r0, _08002300 @ =0x0400012A ldrh r1, [r0] movs r2, #1 orrs r1, r2 strh r1, [r0] _080022F8: ldrb r0, [r3, #0x18] adds r0, #1 strb r0, [r3, #0x18] _080022FE: bx lr .align 2, 0 _08002300: .4byte 0x0400012A _08002304: .4byte 0x00000621 thumb_func_start sub_2308 sub_2308: @ 0x08002308 ldr r0, _08002324 @ =0x0202BF20 ldrb r0, [r0] cmp r0, #0 beq _08002322 ldr r2, _08002328 @ =0x0400010E ldrh r1, [r2] ldr r0, _0800232C @ =0x0000FF7F ands r0, r1 strh r0, [r2] ldr r1, _08002330 @ =0x0400010C ldr r2, _08002334 @ =0x0000FF3B adds r0, r2, #0 strh r0, [r1] _08002322: bx lr .align 2, 0 _08002324: .4byte 0x0202BF20 _08002328: .4byte 0x0400010E _0800232C: .4byte 0x0000FF7F _08002330: .4byte 0x0400010C _08002334: .4byte 0x0000FF3B thumb_func_start sub_2338 sub_2338: @ 0x08002338 ldr r1, _08002348 @ =0x0202BF20 ldrb r0, [r1, #0x19] cmp r0, #8 bne _0800234C movs r0, #0 strb r0, [r1, #0x18] strb r0, [r1, #0x19] b _0800235C .align 2, 0 _08002348: .4byte 0x0202BF20 _0800234C: ldrb r0, [r1] cmp r0, #0 beq _0800235C ldr r0, _08002360 @ =0x0400010E ldrh r1, [r0] movs r2, #0x80 orrs r1, r2 strh r1, [r0] _0800235C: bx lr .align 2, 0 _08002360: .4byte 0x0400010E thumb_func_start sub_2364 sub_2364: @ 0x08002364 push {r4, r5, lr} ldr r1, _080023A8 @ =0x0202BF20 ldr r2, _080023AC @ =0x0000021D adds r0, r1, r2 movs r2, #0 strb r2, [r0] movs r3, #0x87 lsls r3, r3, #2 adds r0, r1, r3 strb r2, [r0] movs r0, #0 adds r5, r1, #0 adds r5, #0x1c ldr r4, _080023B0 @ =0x0000EFFF _08002380: movs r2, #0 adds r1, r0, #1 lsls r3, r0, #6 _08002386: lsls r0, r2, #1 adds r0, r0, r3 adds r0, r0, r5 strh r4, [r0] adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0x1f bls _08002386 lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _08002380 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080023A8: .4byte 0x0202BF20 _080023AC: .4byte 0x0000021D _080023B0: .4byte 0x0000EFFF thumb_func_start sub_23B4 sub_23B4: @ 0x080023B4 push {r4, r5, r6, r7, lr} ldr r1, _08002408 @ =0x0202BF20 ldr r2, _0800240C @ =0x00000621 adds r0, r1, r2 movs r2, #0 strb r2, [r0] movs r3, #0xc4 lsls r3, r3, #3 adds r0, r1, r3 strb r2, [r0] movs r0, #0x88 lsls r0, r0, #2 adds r7, r1, r0 ldr r6, _08002410 @ =0x0000EFFF _080023D0: movs r0, #0 adds r5, r2, #1 lsls r4, r2, #9 _080023D6: movs r2, #0 adds r1, r0, #1 lsls r3, r0, #6 _080023DC: lsls r0, r2, #1 adds r0, r0, r3 adds r0, r0, r4 adds r0, r0, r7 strh r6, [r0] adds r0, r2, #1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0x1f bls _080023DC lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _080023D6 lsls r0, r5, #0x18 lsrs r2, r0, #0x18 cmp r2, #1 bls _080023D0 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08002408: .4byte 0x0202BF20 _0800240C: .4byte 0x00000621 _08002410: .4byte 0x0000EFFF thumb_func_start sub_2414 sub_2414: @ 0x08002414 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc str r0, [sp] str r2, [sp, #8] lsls r1, r1, #0x10 lsrs r1, r1, #0x10 str r1, [sp, #4] ldr r4, _080024CC @ =0x03005000 movs r7, #0 ldr r0, _080024D0 @ =0x08057C46 movs r2, #0x80 lsls r2, r2, #2 adds r1, r4, #0 bl CpuSet movs r1, #0 ldr r0, [sp, #4] cmp r7, r0 bhs _080024B8 _08002442: movs r0, #0xb8 muls r0, r1, r0 ldr r2, [sp, #8] adds r6, r2, r0 ldrh r0, [r6] adds r2, r1, #1 mov sl, r2 cmp r0, #0 beq _080024AC lsls r0, r1, #2 ldr r1, [sp] adds r0, r0, r1 ldr r0, [r0] ldrh r5, [r0] adds r0, #2 lsls r1, r7, #3 ldr r4, _080024CC @ =0x03005000 adds r1, r1, r4 lsls r2, r5, #2 bl CpuSet movs r3, #0 cmp r3, r5 bhs _080024AC mov r8, r4 ldr r2, _080024D4 @ =0x000001FF mov sb, r2 movs r0, #0xff mov ip, r0 _0800247C: adds r2, r7, #0 lsls r0, r2, #3 mov r1, r8 adds r4, r0, r1 lsls r1, r3, #3 adds r1, #8 adds r1, r6, r1 adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 strh r2, [r1] ldrh r2, [r4, #2] mov r0, sb ands r0, r2 strh r0, [r1, #2] ldrh r2, [r4] mov r0, ip ands r0, r2 strh r0, [r1, #4] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, r5 blo _0800247C _080024AC: mov r2, sl lsls r0, r2, #0x10 lsrs r1, r0, #0x10 ldr r0, [sp, #4] cmp r1, r0 blo _08002442 _080024B8: lsls r0, r7, #0x10 asrs r0, r0, #0x10 add sp, #0xc 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 _080024CC: .4byte 0x03005000 _080024D0: .4byte 0x08057C46 _080024D4: .4byte 0x000001FF thumb_func_start nullsub_16 nullsub_16: @ 0x080024D8 bx lr thumb_func_start sub_24DC sub_24DC: @ 0x080024DC ldr r1, _08002504 @ =0x04000134 movs r0, #0 strh r0, [r1] subs r1, #0xc strh r0, [r1] ldr r2, _08002508 @ =0x0400012A strh r0, [r2] subs r1, #8 strh r0, [r1] strh r0, [r2] strh r0, [r1] strh r0, [r1] adds r1, #2 strh r0, [r1] adds r1, #2 strh r0, [r1] adds r1, #2 strh r0, [r1] bx lr .align 2, 0 _08002504: .4byte 0x04000134 _08002508: .4byte 0x0400012A thumb_func_start sub_250C sub_250C: @ 0x0800250C ldr r2, _08002528 @ =0x04000208 movs r0, #0 strh r0, [r2] ldr r1, _0800252C @ =0x04000200 ldr r3, _08002530 @ =0x00002001 adds r0, r3, #0 strh r0, [r1] ldr r1, _08002534 @ =0x04000004 movs r0, #8 strh r0, [r1] movs r0, #1 strh r0, [r2] bx lr .align 2, 0 _08002528: .4byte 0x04000208 _0800252C: .4byte 0x04000200 _08002530: .4byte 0x00002001 _08002534: .4byte 0x04000004 thumb_func_start sub_2538 sub_2538: @ 0x08002538 ldr r0, _08002554 @ =0x0202ADD0 movs r1, #0 str r1, [r0] ldr r0, _08002558 @ =0x0201A444 movs r2, #0 strh r1, [r0] ldr r0, _0800255C @ =0x0202BDF0 str r1, [r0] ldr r0, _08002560 @ =0x0201C1AC strb r2, [r0] ldr r0, _08002564 @ =0x0202ADDC strb r2, [r0] bx lr .align 2, 0 _08002554: .4byte 0x0202ADD0 _08002558: .4byte 0x0201A444 _0800255C: .4byte 0x0202BDF0 _08002560: .4byte 0x0201C1AC _08002564: .4byte 0x0202ADDC thumb_func_start sub_2568 sub_2568: @ 0x08002568 push {r4, lr} bl sub_24DC ldr r4, _08002594 @ =0x04000208 movs r0, #0 strh r0, [r4] bl sub_8BC bl sub_8FC ldr r1, _08002598 @ =0x04000200 ldr r2, _0800259C @ =0x00002005 adds r0, r2, #0 strh r0, [r1] ldr r1, _080025A0 @ =0x04000004 movs r0, #0x28 strh r0, [r1] movs r0, #1 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08002594: .4byte 0x04000208 _08002598: .4byte 0x04000200 _0800259C: .4byte 0x00002005 _080025A0: .4byte 0x04000004 thumb_func_start sub_25A4 sub_25A4: @ 0x080025A4 push {lr} ldr r1, _080025BC @ =0x0805C750 ldr r0, _080025C0 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _080025BC: .4byte 0x0805C750 _080025C0: .4byte 0x0200B0C0 thumb_func_start sub_25C4 sub_25C4: @ 0x080025C4 push {r4, 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, _080026A8 @ =0x04000008 movs r0, #5 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _080026AC @ =0x0400000A adds r3, #6 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] adds r3, #0xfa adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _080026B0 @ =0x0400000C adds r3, #0xb 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 r4, _080026B4 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r4, #0x16] ldr r0, _080026B8 @ =0x040000D4 ldr r1, _080026BC @ =0x0807C2E0 str r1, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _080026C0 @ =0x80000100 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _080026C4 @ =0x080A2C00 str r1, [r0] ldr r1, _080026C8 @ =0x06004000 str r1, [r0, #4] ldr r1, _080026CC @ =0x80002000 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _080026D0 @ =0x0807C4E0 str r1, [r0] ldr r1, _080026D4 @ =0x06008000 str r1, [r0, #4] ldr r1, _080026D8 @ =0x80000C00 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _080026DC @ =0x0807AAE0 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _080026E0 @ =0x80000400 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _080026E4 @ =0x0807B2E0 str r1, [r0] ldr r1, _080026E8 @ =0x06000800 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _080026EC @ =0x0807BAE0 str r1, [r0] ldr r1, _080026F0 @ =0x06001000 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _080026F4 @ =0x080A8A40 str r1, [r0] ldr r1, _080026F8 @ =0x05000200 str r1, [r0, #4] ldr r1, _080026FC @ =0x80000030 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08002700 @ =0x080A8C40 str r1, [r0] ldr r1, _08002704 @ =0x06010000 str r1, [r0, #4] ldr r1, _08002708 @ =0x80002010 str r1, [r0, #8] ldr r0, [r0, #8] bl sub_CBC bl sub_2710 ldr r0, _0800270C @ =sub_29C8 + 1 bl sub_FD5C movs r0, #3 bl m4aSongNumStart ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] pop {r4} pop {r0} bx r0 .align 2, 0 _080026A8: .4byte 0x04000008 _080026AC: .4byte 0x0400000A _080026B0: .4byte 0x0400000C _080026B4: .4byte 0x0200B0C0 _080026B8: .4byte 0x040000D4 _080026BC: .4byte 0x0807C2E0 _080026C0: .4byte 0x80000100 _080026C4: .4byte 0x080A2C00 _080026C8: .4byte 0x06004000 _080026CC: .4byte 0x80002000 _080026D0: .4byte 0x0807C4E0 _080026D4: .4byte 0x06008000 _080026D8: .4byte 0x80000C00 _080026DC: .4byte 0x0807AAE0 _080026E0: .4byte 0x80000400 _080026E4: .4byte 0x0807B2E0 _080026E8: .4byte 0x06000800 _080026EC: .4byte 0x0807BAE0 _080026F0: .4byte 0x06001000 _080026F4: .4byte 0x080A8A40 _080026F8: .4byte 0x05000200 _080026FC: .4byte 0x80000030 _08002700: .4byte 0x080A8C40 _08002704: .4byte 0x06010000 _08002708: .4byte 0x80002010 _0800270C: .4byte sub_29C8 + 1 thumb_func_start sub_2710 sub_2710: @ 0x08002710 ldr r0, _08002740 @ =0x0201A4F8 movs r1, #0 strb r1, [r0] ldr r0, _08002744 @ =0x0202BED0 strb r1, [r0] ldr r0, _08002748 @ =0x0202A560 movs r1, #0 strh r1, [r0] ldr r0, _0800274C @ =0x0202BE1C strh r1, [r0] ldr r0, _08002750 @ =0x0202BEE8 strb r1, [r0] ldr r0, _08002754 @ =0x0201A4F4 strh r1, [r0] ldr r0, _08002758 @ =0x0201A4B0 strb r1, [r0] ldr r0, _0800275C @ =0x0202BEE4 strb r1, [r0] ldr r1, _08002760 @ =0x0201A4C0 ldr r0, _08002764 @ =0x0200B134 adds r0, #0xce ldrb r0, [r0] strb r0, [r1] bx lr .align 2, 0 _08002740: .4byte 0x0201A4F8 _08002744: .4byte 0x0202BED0 _08002748: .4byte 0x0202A560 _0800274C: .4byte 0x0202BE1C _08002750: .4byte 0x0202BEE8 _08002754: .4byte 0x0201A4F4 _08002758: .4byte 0x0201A4B0 _0800275C: .4byte 0x0202BEE4 _08002760: .4byte 0x0201A4C0 _08002764: .4byte 0x0200B134 thumb_func_start sub_2768 sub_2768: @ 0x08002768 push {r4, r5, r6, lr} bl sub_29C8 ldr r6, _08002784 @ =0x0202BED0 movs r4, #0 ldrsb r4, [r6, r4] cmp r4, #1 bne _0800277A b _08002884 _0800277A: cmp r4, #1 bgt _08002788 cmp r4, #0 beq _08002790 b _0800296E .align 2, 0 _08002784: .4byte 0x0202BED0 _08002788: cmp r4, #2 bne _0800278E b _0800291C _0800278E: b _0800296E _08002790: ldr r0, _080027B8 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080027C0 ldr r4, _080027BC @ =0x0201A4F8 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _080027E2 cmp r0, #3 beq _080027E2 movs r0, #0x6d bl m4aSongNumStart ldrb r0, [r4] subs r0, #1 b _080027E0 .align 2, 0 _080027B8: .4byte 0x0200B0C0 _080027BC: .4byte 0x0201A4F8 _080027C0: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080027E2 ldr r4, _08002804 @ =0x0201A4F8 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 beq _080027E2 cmp r0, #5 beq _080027E2 movs r0, #0x6d bl m4aSongNumStart ldrb r0, [r4] adds r0, #1 _080027E0: strb r0, [r4] _080027E2: ldr r0, _08002808 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0800280C ldr r4, _08002804 @ =0x0201A4F8 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 ble _0800282A movs r0, #0x6d bl m4aSongNumStart ldrb r0, [r4] subs r0, #3 b _08002828 .align 2, 0 _08002804: .4byte 0x0201A4F8 _08002808: .4byte 0x0200B0C0 _0800280C: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0800282A ldr r4, _0800286C @ =0x0201A4F8 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 bgt _0800282A movs r0, #0x6d bl m4aSongNumStart ldrb r0, [r4] adds r0, #3 _08002828: strb r0, [r4] _0800282A: ldr r4, _08002870 @ =0x0200B0C0 ldrh r1, [r4, #0x18] movs r5, #1 movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800284C movs r0, #0x65 bl m4aSongNumStart ldr r0, _08002874 @ =0x0202BED0 strb r5, [r0] ldr r0, _08002878 @ =0x0201A4B0 strb r5, [r0] ldr r1, _0800287C @ =0x0202A560 movs r0, #0 strh r0, [r1] _0800284C: ldrh r1, [r4, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08002858 b _0800296E _08002858: movs r0, #0x66 bl m4aSongNumStart ldr r0, _08002880 @ =0x0202BEE4 strb r5, [r0] ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] b _0800296E .align 2, 0 _0800286C: .4byte 0x0201A4F8 _08002870: .4byte 0x0200B0C0 _08002874: .4byte 0x0202BED0 _08002878: .4byte 0x0201A4B0 _0800287C: .4byte 0x0202A560 _08002880: .4byte 0x0202BEE4 _08002884: ldr r5, _08002904 @ =0x0200B0C0 ldrh r1, [r5, #0x18] movs r0, #0x30 ands r0, r1 cmp r0, #0 beq _080028A0 movs r0, #0x67 bl m4aSongNumStart ldr r2, _08002908 @ =0x0201A4C0 ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 strb r0, [r2] _080028A0: ldrh r0, [r5, #0x18] ands r4, r0 cmp r4, #0 beq _080028CC movs r0, #0x65 bl m4aSongNumStart ldr r0, _0800290C @ =0x0202A560 movs r1, #0 strh r1, [r0] ldr r0, _08002910 @ =0x0202BE1C strh r1, [r0] ldr r0, _08002908 @ =0x0201A4C0 ldrb r0, [r0] movs r2, #0xa1 lsls r2, r2, #1 adds r1, r5, r2 strb r0, [r1] bl sub_52B30 movs r0, #2 strb r0, [r6] _080028CC: ldrh r1, [r5, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080028E4 movs r0, #0x66 bl m4aSongNumStart ldr r1, _08002914 @ =0x0201A4B0 movs r0, #0 strb r0, [r1] strb r0, [r6] _080028E4: ldr r1, _0800290C @ =0x0202A560 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800296E movs r0, #0 strh r0, [r1] ldr r2, _08002918 @ =0x0201A4F4 ldrh r1, [r2] movs r0, #1 subs r0, r0, r1 strh r0, [r2] b _0800296E .align 2, 0 _08002904: .4byte 0x0200B0C0 _08002908: .4byte 0x0201A4C0 _0800290C: .4byte 0x0202A560 _08002910: .4byte 0x0202BE1C _08002914: .4byte 0x0201A4B0 _08002918: .4byte 0x0201A4F4 _0800291C: ldr r1, _08002974 @ =0x0202A560 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _0800296E movs r3, #0 strh r3, [r1] ldr r2, _08002978 @ =0x0202BEE8 ldrb r1, [r2] movs r0, #2 subs r0, r0, r1 strb r0, [r2] ldr r1, _0800297C @ =0x0202BE1C ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _0800296E ldr r1, _08002980 @ =0x0200B0C0 strb r3, [r1, #0xd] ldr r2, _08002984 @ =0x086A4CF0 ldr r0, _08002988 @ =0x0201A4F8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1, #4] strb r0, [r1, #5] movs r0, #1 strb r0, [r1, #6] ldr r0, _0800298C @ =0x0202BEE4 strb r4, [r0] ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0800296E: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08002974: .4byte 0x0202A560 _08002978: .4byte 0x0202BEE8 _0800297C: .4byte 0x0202BE1C _08002980: .4byte 0x0200B0C0 _08002984: .4byte 0x086A4CF0 _08002988: .4byte 0x0201A4F8 _0800298C: .4byte 0x0202BEE4 thumb_func_start sub_2990 sub_2990: @ 0x08002990 push {lr} ldr r0, _080029BC @ =sub_29C8 + 1 bl sub_FE04 bl m4aMPlayAllStop bl sub_D10 ldr r1, _080029C0 @ =0x0201A4B4 movs r0, #1 strb r0, [r1] ldr r0, _080029C4 @ =0x0202BEE4 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 _080029BC: .4byte sub_29C8 + 1 _080029C0: .4byte 0x0201A4B4 _080029C4: .4byte 0x0202BEE4 thumb_func_start sub_29C8 sub_29C8: @ 0x080029C8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 ldr r1, _08002C14 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _08002C18 @ =0x00000C14 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _08002C1C @ =0x00000808 strh r0, [r1, #0x3a] ldr r2, _08002C20 @ =0x04000050 ldrh r0, [r1, #0x38] strh r0, [r2] adds r2, #2 ldrh r0, [r1, #0x3a] strh r0, [r2] ldr r7, _08002C24 @ =0x0201A4F8 movs r0, #0xe9 lsls r0, r0, #3 adds r3, r1, r0 ldr r4, _08002C28 @ =0x0201A4C0 ldr r5, _08002C2C @ =0x0201A4F4 ldr r2, _08002C30 @ =0x0201A4B0 mov sb, r2 ldr r0, _08002C34 @ =0x086A4C80 mov ip, r0 movs r2, #0xd2 lsls r2, r2, #3 adds r1, r1, r2 add r0, sp, #0x14 _08002A0A: str r1, [r0] subs r1, #0xb8 subs r0, #4 cmp r0, sp @ warning: use of r13 is deprecated bge _08002A0A movs r0, #0 ldrsb r0, [r7, r0] movs r2, #0xb8 muls r0, r2, r0 adds r0, r0, r3 mov sl, r0 ldrb r1, [r4] lsls r1, r1, #1 movs r4, #0 ldrsh r0, [r5, r4] adds r0, #0xc adds r1, r1, r0 muls r1, r2, r1 ldr r2, _08002C38 @ =0xFFFFFBB0 adds r0, r3, r2 adds r1, r1, r0 mov r8, r1 movs r2, #1 mov r1, sp movs r6, #5 _08002A3C: ldm r1!, {r0} strh r2, [r0] subs r6, #1 cmp r6, #0 bge _08002A3C movs r0, #0 ldrsb r0, [r7, r0] lsls r0, r0, #2 add r0, sp ldr r1, [r0] movs r0, #0 strh r0, [r1] movs r0, #1 mov r3, sl strh r0, [r3] mov r4, sb movs r0, #0 ldrsb r0, [r4, r0] mov r7, r8 strh r0, [r7] mov r0, ip movs r1, #0x10 ldr r2, _08002C3C @ =0x0200B3B8 bl sub_358 movs r1, #0 _08002A70: lsls r2, r1, #2 mov r0, sp adds r4, r0, r2 ldr r3, [r4] ldrh r0, [r3] adds r1, #1 mov sb, r1 cmp r0, #1 bne _08002AEC ldr r1, _08002C40 @ =0x086A4CC0 adds r1, r2, r1 ldrh r0, [r1] strh r0, [r3, #2] ldr r2, [r4] ldrh r0, [r1, #2] strh r0, [r2, #4] adds r5, r4, #0 ldr r1, _08002C44 @ =0x03005000 mov ip, r1 movs r7, #8 movs r6, #3 _08002A9A: ldr r4, [r5] adds r4, r4, r7 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #1] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip movs r3, #2 ldrsh r1, [r4, r3] ldr r0, [r5] movs r3, #2 ldrsh r0, [r0, r3] adds r1, r1, r0 ldr r3, _08002C48 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08002C4C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip ldr r0, [r5] ldrb r0, [r0, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r7, #8 subs r6, #1 cmp r6, #0 bge _08002A9A _08002AEC: mov r1, sb cmp r1, #5 ble _08002A70 movs r0, #0x58 mov r4, sl strh r0, [r4, #2] movs r0, #0x85 strh r0, [r4, #4] ldr r5, _08002C44 @ =0x03005000 movs r7, #0xd rsbs r7, r7, #0 mov sb, r7 ldr r0, _08002C4C @ =0xFFFFFE00 mov ip, r0 adds r4, #8 movs r6, #1 _08002B0C: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldrb r2, [r1, #1] mov r0, sb ands r0, r2 strb r0, [r1, #1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r5 ldr r3, _08002C50 @ =0x0202BEE8 ldrb r1, [r3] lsls r1, r1, #4 ldrb r3, [r2, #5] movs r0, #0xf ands r0, r3 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r4, r7] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08002C48 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 mov r3, sl ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _08002B0C mov r1, r8 ldrh r0, [r1] cmp r0, #1 bne _08002BEA ldr r2, _08002C54 @ =0x086A4CD8 ldr r1, _08002C24 @ =0x0201A4F8 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] mov r3, r8 strh r0, [r3, #2] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] strh r0, [r3, #4] ldr r5, _08002C44 @ =0x03005000 movs r4, #0xd rsbs r4, r4, #0 mov sb, r4 ldr r7, _08002C4C @ =0xFFFFFE00 mov ip, r7 mov r4, r8 adds r4, #8 movs r6, #4 _08002BA2: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldrb r2, [r1, #1] mov r0, sb ands r0, r2 strb r0, [r1, #1] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r4, r0] mov r2, r8 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08002C48 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 mov r3, r8 ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _08002BA2 _08002BEA: movs r2, #0 mov r1, sp movs r6, #5 _08002BF0: ldm r1!, {r0} strh r2, [r0] subs r6, #1 cmp r6, #0 bge _08002BF0 movs r0, #0 mov r1, sl strh r0, [r1] mov r2, r8 strh r0, [r2] add sp, #0x18 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08002C14: .4byte 0x0200B0C0 _08002C18: .4byte 0x00000C14 _08002C1C: .4byte 0x00000808 _08002C20: .4byte 0x04000050 _08002C24: .4byte 0x0201A4F8 _08002C28: .4byte 0x0201A4C0 _08002C2C: .4byte 0x0201A4F4 _08002C30: .4byte 0x0201A4B0 _08002C34: .4byte 0x086A4C80 _08002C38: .4byte 0xFFFFFBB0 _08002C3C: .4byte 0x0200B3B8 _08002C40: .4byte 0x086A4CC0 _08002C44: .4byte 0x03005000 _08002C48: .4byte 0x000001FF _08002C4C: .4byte 0xFFFFFE00 _08002C50: .4byte 0x0202BEE8 _08002C54: .4byte 0x086A4CD8 thumb_func_start sub_2C58 sub_2C58: @ 0x08002C58 push {lr} ldr r1, _08002C70 @ =0x0805C75C ldr r0, _08002C74 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08002C70: .4byte 0x0805C75C _08002C74: .4byte 0x0200B0C0 thumb_func_start sub_2C78 sub_2C78: @ 0x08002C78 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x86 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _08002D80 @ =0x04000008 movs r0, #4 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08002D84 @ =0x0400000A adds r3, #5 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] adds r3, #0xfb adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r6, _08002D88 @ =0x0200B0C0 movs r0, #0xba lsls r0, r0, #2 adds r1, r6, r0 movs r5, #0 ldr r0, _08002D8C @ =0x0000FFE8 strh r0, [r1] adds r3, #0xea adds r1, r6, r3 subs r0, #0x48 strh r0, [r1] ldrh r0, [r2] strh r0, [r6, #0x16] ldr r4, _08002D90 @ =0x040000D4 ldr r0, _08002D94 @ =0x08081D20 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08002D98 @ =0x80000020 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08002D9C @ =0x080897E0 str r0, [r4] ldr r0, _08002DA0 @ =0x05000040 str r0, [r4, #4] ldr r0, _08002DA4 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08002DA8 @ =0x08080500 str r0, [r4] ldr r0, _08002DAC @ =0x03000000 mov r8, r0 str r0, [r4, #4] ldr r1, _08002DB0 @ =0x80001800 mov sb, r1 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08002DB4 @ =0x0807DD00 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08002DB8 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08002DBC @ =0x0807FD00 str r0, [r4] ldr r0, _08002DC0 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08002DC4 @ =0x08089960 str r0, [r4] ldr r0, _08002DC8 @ =0x05000200 str r0, [r4, #4] ldr r0, _08002DCC @ =0x80000060 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08002DD0 @ =0x08089B60 str r0, [r4] ldr r0, _08002DD4 @ =0x06010000 str r0, [r4, #4] ldr r0, _08002DD8 @ =0x80003610 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_2DF0 ldr r0, _08002DDC @ =0x0202C604 strb r5, [r0] ldr r0, _08002DE0 @ =0x0202A580 strb r5, [r0] ldr r0, _08002DE4 @ =0x0202C5A4 strb r5, [r0] ldr r0, _08002DE8 @ =0x0202AD90 strb r5, [r0] bl sub_377C mov r3, r8 str r3, [r4] ldr r0, _08002DEC @ =0x06004000 str r0, [r4, #4] mov r0, sb str r0, [r4, #8] ldr r0, [r4, #8] bl sub_394C movs r0, #5 bl m4aSongNumStart bl sub_CBC bl sub_24C movs r0, #1 strb r0, [r6, #3] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08002D80: .4byte 0x04000008 _08002D84: .4byte 0x0400000A _08002D88: .4byte 0x0200B0C0 _08002D8C: .4byte 0x0000FFE8 _08002D90: .4byte 0x040000D4 _08002D94: .4byte 0x08081D20 _08002D98: .4byte 0x80000020 _08002D9C: .4byte 0x080897E0 _08002DA0: .4byte 0x05000040 _08002DA4: .4byte 0x80000010 _08002DA8: .4byte 0x08080500 _08002DAC: .4byte 0x03000000 _08002DB0: .4byte 0x80001800 _08002DB4: .4byte 0x0807DD00 _08002DB8: .4byte 0x80000400 _08002DBC: .4byte 0x0807FD00 _08002DC0: .4byte 0x06000800 _08002DC4: .4byte 0x08089960 _08002DC8: .4byte 0x05000200 _08002DCC: .4byte 0x80000060 _08002DD0: .4byte 0x08089B60 _08002DD4: .4byte 0x06010000 _08002DD8: .4byte 0x80003610 _08002DDC: .4byte 0x0202C604 _08002DE0: .4byte 0x0202A580 _08002DE4: .4byte 0x0202C5A4 _08002DE8: .4byte 0x0202AD90 _08002DEC: .4byte 0x06004000 thumb_func_start sub_2DF0 sub_2DF0: @ 0x08002DF0 ldr r0, _08002E1C @ =0x0202A58C movs r1, #0 strb r1, [r0] ldr r0, _08002E20 @ =0x0202C584 strb r1, [r0] ldr r2, _08002E24 @ =0x0202BEC0 movs r0, #4 strb r0, [r2] ldr r0, _08002E28 @ =0x0201B174 strb r1, [r0] ldr r0, _08002E2C @ =0x0202C5A0 movs r1, #0 strh r1, [r0] ldr r0, _08002E30 @ =0x0201A44C strh r1, [r0] ldr r0, _08002E34 @ =0x0202BEF8 strb r1, [r0] ldr r0, _08002E38 @ =0x0200282C strb r1, [r0] ldr r0, _08002E3C @ =0x0200282D strb r1, [r0] bx lr .align 2, 0 _08002E1C: .4byte 0x0202A58C _08002E20: .4byte 0x0202C584 _08002E24: .4byte 0x0202BEC0 _08002E28: .4byte 0x0201B174 _08002E2C: .4byte 0x0202C5A0 _08002E30: .4byte 0x0201A44C _08002E34: .4byte 0x0202BEF8 _08002E38: .4byte 0x0200282C _08002E3C: .4byte 0x0200282D thumb_func_start sub_2E40 sub_2E40: @ 0x08002E40 push {r4, r5, r6, r7, lr} ldr r4, _08002E84 @ =0x0202C604 ldr r2, _08002E88 @ =0x086A551A ldr r3, _08002E8C @ =0x0202AD90 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bgt _08002E94 ldr r1, _08002E90 @ =0x0202A580 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08002EF0 movs r0, #0 strb r0, [r1] movs r0, #0 ldrsb r0, [r3, r0] movs r1, #0 ldrsb r1, [r4, r1] bl sub_3828 ldrb r0, [r4] adds r0, #1 strb r0, [r4] b _08002EF0 .align 2, 0 _08002E84: .4byte 0x0202C604 _08002E88: .4byte 0x086A551A _08002E8C: .4byte 0x0202AD90 _08002E90: .4byte 0x0202A580 _08002E94: ldr r1, _08002ECC @ =0x0202A580 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 ble _08002EF0 movs r0, #0 strb r0, [r1] ldr r0, _08002ED0 @ =0x0202C5A4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08002ED4 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0xea lsls r1, r1, #6 bl sub_38A0 b _08002EE6 .align 2, 0 _08002ECC: .4byte 0x0202A580 _08002ED0: .4byte 0x0202C5A4 _08002ED4: movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0 bl sub_38A0 _08002EE6: ldr r2, _08002F2C @ =0x0202C5A4 ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 strb r0, [r2] _08002EF0: ldr r7, _08002F30 @ =0x0200B0C0 ldrh r1, [r7, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08002F78 ldr r5, _08002F34 @ =0x0202C604 ldr r6, _08002F38 @ =0x086A551A ldr r4, _08002F3C @ =0x0202AD90 movs r2, #0 ldrsb r2, [r4, r2] adds r0, r2, r6 movs r1, #0 ldrsb r1, [r5, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bgt _08002F40 adds r0, r2, #0 bl sub_37B4 movs r0, #0 ldrsb r0, [r4, r0] adds r0, r0, r6 ldrb r0, [r0] adds r0, #1 strb r0, [r5] b _08002F90 .align 2, 0 _08002F2C: .4byte 0x0202C5A4 _08002F30: .4byte 0x0200B0C0 _08002F34: .4byte 0x0202C604 _08002F38: .4byte 0x086A551A _08002F3C: .4byte 0x0202AD90 _08002F40: ldr r0, _08002F54 @ =0x086A5528 adds r0, r2, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08002F58 movs r0, #2 b _08002F8E .align 2, 0 _08002F54: .4byte 0x086A5528 _08002F58: bl sub_377C movs r1, #0 strb r1, [r5] ldr r0, _08002F70 @ =0x0202A580 strb r1, [r0] ldr r0, _08002F74 @ =0x0202C5A4 strb r1, [r0] ldrb r0, [r4] adds r0, #1 strb r0, [r4] b _08002F90 .align 2, 0 _08002F70: .4byte 0x0202A580 _08002F74: .4byte 0x0202C5A4 _08002F78: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08002F90 movs r0, #0x66 bl m4aSongNumStart ldr r0, _08002FAC @ =0x0202BEF8 movs r1, #1 strb r1, [r0] movs r0, #8 _08002F8E: strb r0, [r7, #3] _08002F90: bl sub_394C ldr r1, _08002FB0 @ =0x040000D4 ldr r0, _08002FB4 @ =0x03000000 str r0, [r1] ldr r0, _08002FB8 @ =0x06004000 str r0, [r1, #4] ldr r0, _08002FBC @ =0x80001800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08002FAC: .4byte 0x0202BEF8 _08002FB0: .4byte 0x040000D4 _08002FB4: .4byte 0x03000000 _08002FB8: .4byte 0x06004000 _08002FBC: .4byte 0x80001800 thumb_func_start sub_2FC0 sub_2FC0: @ 0x08002FC0 push {r4, r5, lr} ldr r4, _0800302C @ =0x0202C5A0 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r2, _08003030 @ =0x086A550C ldr r3, _08003034 @ =0x0201B174 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #1 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0 ldrsh r1, [r1, r2] cmp r0, r1 ble _08003012 movs r5, #0 strh r5, [r4] ldrb r0, [r3] adds r0, #1 strb r0, [r3] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _08003012 bl sub_19B4 bl sub_3C1C ldr r0, _08003038 @ =0x0201B124 strb r5, [r0] ldr r1, _0800303C @ =0x0202C584 movs r0, #1 strb r0, [r1] movs r0, #0x76 bl m4aSongNumStart ldr r1, _08003040 @ =0x0200B0C0 movs r0, #3 strb r0, [r1, #3] _08003012: ldr r1, _08003044 @ =0x0202A58C movs r0, #0 strb r0, [r1] ldr r1, _08003048 @ =0x0202BEC0 ldr r0, _08003034 @ =0x0201B174 ldrb r0, [r0] adds r0, #4 strb r0, [r1] bl sub_3AB4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800302C: .4byte 0x0202C5A0 _08003030: .4byte 0x086A550C _08003034: .4byte 0x0201B174 _08003038: .4byte 0x0201B124 _0800303C: .4byte 0x0202C584 _08003040: .4byte 0x0200B0C0 _08003044: .4byte 0x0202A58C _08003048: .4byte 0x0202BEC0 thumb_func_start sub_304C sub_304C: @ 0x0800304C push {r4, r5, lr} bl sub_3AB4 ldr r5, _08003114 @ =0x0200B0C0 ldrh r1, [r5, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08003076 bl sub_2568 bl sub_1AA4 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 movs r0, #0 strb r0, [r5, #3] _08003076: ldr r4, _08003118 @ =0x0202ADD0 ldr r0, _0800311C @ =0x0202BEC8 ldr r1, _08003120 @ =0x0202C5F0 ldr r2, _08003124 @ =0x0201A4D0 bl sub_1B04 str r0, [r4] ldr r1, _08003128 @ =0x0202BDF0 movs r3, #3 ands r3, r0 str r3, [r1] ldr r2, _0800312C @ =0x0201C1AC movs r1, #0x1c ands r1, r0 lsrs r1, r1, #2 strb r1, [r2] ldr r2, _08003130 @ =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 bne _080030AC b _080031DC _080030AC: cmp r3, #1 bls _080030B2 b _080031DC _080030B2: bl sub_3C78 ldr r0, [r4] movs r1, #0x80 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _0800316C bl sub_3CD8 lsls r0, r0, #0x10 asrs r4, r0, #0x10 movs r0, #1 rsbs r0, r0, #0 cmp r4, r0 bne _0800316C bl sub_38F0 ldr r1, _08003134 @ =0x0201C184 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 beq _0800313C cmp r0, #4 bgt _0800313C adds r3, r5, #0 adds r4, r1, #0 ldr r5, _08003138 @ =0x0201A44C movs r2, #0 movs r1, #4 adds r0, r3, #0 adds r0, #0xb _080030F4: strb r2, [r0] subs r0, #1 subs r1, #1 cmp r1, #0 bge _080030F4 movs r0, #0 ldrsh r1, [r4, r0] adds r0, r3, #7 adds r1, r1, r0 movs r2, #0 movs r0, #1 strb r0, [r1] strh r2, [r5] movs r0, #5 strb r0, [r3, #3] b _0800316C .align 2, 0 _08003114: .4byte 0x0200B0C0 _08003118: .4byte 0x0202ADD0 _0800311C: .4byte 0x0202BEC8 _08003120: .4byte 0x0202C5F0 _08003124: .4byte 0x0201A4D0 _08003128: .4byte 0x0202BDF0 _0800312C: .4byte 0x0201C1AC _08003130: .4byte 0x0202ADDC _08003134: .4byte 0x0201C184 _08003138: .4byte 0x0201A44C _0800313C: ldr r0, _080031E4 @ =0x0201A44C movs r2, #0 strh r2, [r0] ldr r1, _080031E8 @ =0x0202A58C movs r0, #2 strb r0, [r1] ldr r1, _080031EC @ =0x0202BEC0 movs r0, #0xa strb r0, [r1] ldr r0, _080031F0 @ =0x0202C604 strb r2, [r0] ldr r0, _080031F4 @ =0x0202C5A4 strb r2, [r0] ldr r1, _080031F8 @ =0x0202AD90 movs r0, #0xd strb r0, [r1] bl sub_377C ldr r1, _080031FC @ =0x0200B0C0 movs r0, #4 strb r0, [r1, #3] movs r0, #0x8a bl m4aSongNumStart _0800316C: ldr r4, _080031E8 @ =0x0202A58C movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bne _080031DC ldr r3, _080031E4 @ =0x0201A44C ldrh r0, [r3] adds r0, #1 strh r0, [r3] ldrh r0, [r3] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08003192 ldr r2, _080031EC @ =0x0202BEC0 ldrb r1, [r2] movs r0, #0x15 subs r0, r0, r1 strb r0, [r2] _08003192: ldr r0, _08003200 @ =0x0202ADD0 ldr r0, [r0] movs r1, #0xfe lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 beq _080031DC ldr r1, _08003204 @ =0x0201A444 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _080031DC movs r2, #0 strh r2, [r3] movs r0, #2 strb r0, [r4] ldr r1, _080031EC @ =0x0202BEC0 movs r0, #0xa strb r0, [r1] ldr r0, _080031F0 @ =0x0202C604 strb r2, [r0] ldr r0, _080031F4 @ =0x0202C5A4 strb r2, [r0] ldr r1, _080031F8 @ =0x0202AD90 movs r0, #0xd strb r0, [r1] bl sub_377C ldr r1, _080031FC @ =0x0200B0C0 movs r0, #4 strb r0, [r1, #3] movs r0, #0x8a bl m4aSongNumStart _080031DC: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080031E4: .4byte 0x0201A44C _080031E8: .4byte 0x0202A58C _080031EC: .4byte 0x0202BEC0 _080031F0: .4byte 0x0202C604 _080031F4: .4byte 0x0202C5A4 _080031F8: .4byte 0x0202AD90 _080031FC: .4byte 0x0200B0C0 _08003200: .4byte 0x0202ADD0 _08003204: .4byte 0x0201A444 thumb_func_start sub_3208 sub_3208: @ 0x08003208 push {r4, r5, r6, r7, lr} ldr r1, _0800326C @ =0x0201A44C ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _08003228 movs r0, #0 strh r0, [r1] ldr r2, _08003270 @ =0x0202BEC0 ldrb r1, [r2] movs r0, #0x16 subs r0, r0, r1 strb r0, [r2] _08003228: ldr r4, _08003274 @ =0x0202C604 ldr r2, _08003278 @ =0x086A551A ldr r3, _0800327C @ =0x0202AD90 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bgt _08003284 ldr r1, _08003280 @ =0x0202A580 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _080032E0 movs r0, #0 strb r0, [r1] movs r0, #0 ldrsb r0, [r3, r0] movs r1, #0 ldrsb r1, [r4, r1] bl sub_3828 ldrb r0, [r4] adds r0, #1 strb r0, [r4] b _080032E0 .align 2, 0 _0800326C: .4byte 0x0201A44C _08003270: .4byte 0x0202BEC0 _08003274: .4byte 0x0202C604 _08003278: .4byte 0x086A551A _0800327C: .4byte 0x0202AD90 _08003280: .4byte 0x0202A580 _08003284: ldr r1, _080032BC @ =0x0202A580 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 ble _080032E0 movs r0, #0 strb r0, [r1] ldr r0, _080032C0 @ =0x0202C5A4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080032C4 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0xea lsls r1, r1, #6 bl sub_38A0 b _080032D6 .align 2, 0 _080032BC: .4byte 0x0202A580 _080032C0: .4byte 0x0202C5A4 _080032C4: movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0 bl sub_38A0 _080032D6: ldr r2, _0800331C @ =0x0202C5A4 ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 strb r0, [r2] _080032E0: ldr r7, _08003320 @ =0x0200B0C0 ldrh r1, [r7, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800336E ldr r6, _08003324 @ =0x0202C604 ldr r4, _08003328 @ =0x086A551A ldr r5, _0800332C @ =0x0202AD90 movs r2, #0 ldrsb r2, [r5, r2] adds r0, r2, r4 movs r1, #0 ldrsb r1, [r6, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bgt _08003330 adds r0, r2, #0 bl sub_37B4 movs r0, #0 ldrsb r0, [r5, r0] adds r0, r0, r4 ldrb r0, [r0] adds r0, #1 strb r0, [r6] b _0800336E .align 2, 0 _0800331C: .4byte 0x0202C5A4 _08003320: .4byte 0x0200B0C0 _08003324: .4byte 0x0202C604 _08003328: .4byte 0x086A551A _0800332C: .4byte 0x0202AD90 _08003330: ldr r0, _08003354 @ =0x086A5528 adds r0, r2, r0 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #0 bne _08003358 bl sub_2568 bl sub_1AA4 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 strb r4, [r7, #3] b _0800336E .align 2, 0 _08003354: .4byte 0x086A5528 _08003358: bl sub_377C movs r1, #0 strb r1, [r6] ldr r0, _08003388 @ =0x0202A580 strb r1, [r0] ldr r0, _0800338C @ =0x0202C5A4 strb r1, [r0] ldrb r0, [r5] adds r0, #1 strb r0, [r5] _0800336E: bl sub_394C ldr r1, _08003390 @ =0x040000D4 ldr r0, _08003394 @ =0x03000000 str r0, [r1] ldr r0, _08003398 @ =0x06004000 str r0, [r1, #4] ldr r0, _0800339C @ =0x80001800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08003388: .4byte 0x0202A580 _0800338C: .4byte 0x0202C5A4 _08003390: .4byte 0x040000D4 _08003394: .4byte 0x03000000 _08003398: .4byte 0x06004000 _0800339C: .4byte 0x80001800 thumb_func_start sub_33A0 sub_33A0: @ 0x080033A0 push {lr} bl sub_3AB4 ldr r2, _080033BC @ =0x0201A44C movs r0, #0 ldrsh r1, [r2, r0] cmp r1, #0x96 beq _080033D4 cmp r1, #0x96 bgt _080033C0 cmp r1, #4 beq _080033CA b _080033FE .align 2, 0 _080033BC: .4byte 0x0201A44C _080033C0: movs r0, #0x87 lsls r0, r0, #1 cmp r1, r0 beq _080033E8 b _080033FE _080033CA: bl sub_2568 bl sub_1AA4 b _080033FE _080033D4: ldr r1, _080033E4 @ =0x0202A58C movs r0, #3 strb r0, [r1] movs r0, #0x65 bl m4aSongNumStart b _080033FE .align 2, 0 _080033E4: .4byte 0x0202A58C _080033E8: movs r0, #0 strh r0, [r2] bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _0800342C @ =0x0200B0C0 movs r0, #6 strb r0, [r1, #3] _080033FE: ldr r0, _08003430 @ =0x0202A58C ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r3, _08003434 @ =0x0201A44C cmp r0, #1 bne _08003420 ldrh r0, [r3] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08003420 ldr r2, _08003438 @ =0x0202BEC0 ldrb r1, [r2] movs r0, #0x15 subs r0, r0, r1 strb r0, [r2] _08003420: ldrh r0, [r3] adds r0, #1 strh r0, [r3] pop {r0} bx r0 .align 2, 0 _0800342C: .4byte 0x0200B0C0 _08003430: .4byte 0x0202A58C _08003434: .4byte 0x0201A44C _08003438: .4byte 0x0202BEC0 thumb_func_start sub_343C sub_343C: @ 0x0800343C push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x86 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _08003550 @ =0x04000008 movs r0, #4 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08003554 @ =0x0400000A adds r3, #5 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] adds r3, #0xfb adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r6, _08003558 @ =0x0200B0C0 movs r0, #0xba lsls r0, r0, #2 adds r1, r6, r0 movs r5, #0 ldr r0, _0800355C @ =0x0000FFE8 strh r0, [r1] adds r3, #0xea adds r1, r6, r3 subs r0, #0x48 strh r0, [r1] ldrh r0, [r2] strh r0, [r6, #0x16] ldr r4, _08003560 @ =0x040000D4 ldr r0, _08003564 @ =0x08081D20 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08003568 @ =0x80000020 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800356C @ =0x080897E0 str r0, [r4] ldr r0, _08003570 @ =0x05000040 str r0, [r4, #4] ldr r0, _08003574 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003578 @ =0x08080500 str r0, [r4] ldr r0, _0800357C @ =0x03000000 mov r8, r0 str r0, [r4, #4] ldr r1, _08003580 @ =0x80001800 mov sb, r1 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003584 @ =0x0807DD00 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08003588 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800358C @ =0x0807FD00 str r0, [r4] ldr r0, _08003590 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003594 @ =0x08089960 str r0, [r4] ldr r0, _08003598 @ =0x05000200 str r0, [r4, #4] ldr r0, _0800359C @ =0x80000060 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _080035A0 @ =0x08089B60 str r0, [r4] ldr r0, _080035A4 @ =0x06010000 str r0, [r4, #4] ldr r0, _080035A8 @ =0x80003610 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_2DF0 ldr r0, _080035AC @ =0x0202C604 strb r5, [r0] ldr r0, _080035B0 @ =0x0202A580 strb r5, [r0] ldr r0, _080035B4 @ =0x0202C5A4 strb r5, [r0] ldr r2, _080035B8 @ =0x0202AD90 ldr r1, _080035BC @ =0x086A5536 ldr r0, _080035C0 @ =0x0201C184 movs r3, #0 ldrsh r0, [r0, r3] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] bl sub_377C mov r0, r8 str r0, [r4] ldr r0, _080035C4 @ =0x06004000 str r0, [r4, #4] mov r1, sb str r1, [r4, #8] ldr r0, [r4, #8] bl sub_394C movs r0, #5 bl m4aSongNumStart bl sub_CBC bl sub_24C movs r0, #7 strb r0, [r6, #3] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08003550: .4byte 0x04000008 _08003554: .4byte 0x0400000A _08003558: .4byte 0x0200B0C0 _0800355C: .4byte 0x0000FFE8 _08003560: .4byte 0x040000D4 _08003564: .4byte 0x08081D20 _08003568: .4byte 0x80000020 _0800356C: .4byte 0x080897E0 _08003570: .4byte 0x05000040 _08003574: .4byte 0x80000010 _08003578: .4byte 0x08080500 _0800357C: .4byte 0x03000000 _08003580: .4byte 0x80001800 _08003584: .4byte 0x0807DD00 _08003588: .4byte 0x80000400 _0800358C: .4byte 0x0807FD00 _08003590: .4byte 0x06000800 _08003594: .4byte 0x08089960 _08003598: .4byte 0x05000200 _0800359C: .4byte 0x80000060 _080035A0: .4byte 0x08089B60 _080035A4: .4byte 0x06010000 _080035A8: .4byte 0x80003610 _080035AC: .4byte 0x0202C604 _080035B0: .4byte 0x0202A580 _080035B4: .4byte 0x0202C5A4 _080035B8: .4byte 0x0202AD90 _080035BC: .4byte 0x086A5536 _080035C0: .4byte 0x0201C184 _080035C4: .4byte 0x06004000 thumb_func_start sub_35C8 sub_35C8: @ 0x080035C8 push {r4, r5, r6, lr} ldr r4, _0800360C @ =0x0202C604 ldr r2, _08003610 @ =0x086A551A ldr r3, _08003614 @ =0x0202AD90 movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bgt _0800361C ldr r1, _08003618 @ =0x0202A580 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08003678 movs r0, #0 strb r0, [r1] movs r0, #0 ldrsb r0, [r3, r0] movs r1, #0 ldrsb r1, [r4, r1] bl sub_3828 ldrb r0, [r4] adds r0, #1 strb r0, [r4] b _08003678 .align 2, 0 _0800360C: .4byte 0x0202C604 _08003610: .4byte 0x086A551A _08003614: .4byte 0x0202AD90 _08003618: .4byte 0x0202A580 _0800361C: ldr r1, _08003654 @ =0x0202A580 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 ble _08003678 movs r0, #0 strb r0, [r1] ldr r0, _08003658 @ =0x0202C5A4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0800365C movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0xea lsls r1, r1, #6 bl sub_38A0 b _0800366E .align 2, 0 _08003654: .4byte 0x0202A580 _08003658: .4byte 0x0202C5A4 _0800365C: movs r0, #0 ldrsb r0, [r3, r0] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0 bl sub_38A0 _0800366E: ldr r2, _080036B4 @ =0x0202C5A4 ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 strb r0, [r2] _08003678: ldr r2, _080036B8 @ =0x0200B0C0 ldrh r1, [r2, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800371A ldr r5, _080036BC @ =0x0202C604 ldr r6, _080036C0 @ =0x086A551A ldr r4, _080036C4 @ =0x0202AD90 movs r3, #0 ldrsb r3, [r4, r3] adds r0, r3, r6 movs r1, #0 ldrsb r1, [r5, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bgt _080036C8 adds r0, r3, #0 bl sub_37B4 movs r0, #0 ldrsb r0, [r4, r0] adds r0, r0, r6 ldrb r0, [r0] adds r0, #1 strb r0, [r5] b _0800371A .align 2, 0 _080036B4: .4byte 0x0202C5A4 _080036B8: .4byte 0x0200B0C0 _080036BC: .4byte 0x0202C604 _080036C0: .4byte 0x086A551A _080036C4: .4byte 0x0202AD90 _080036C8: ldr r0, _080036E8 @ =0x086A5528 adds r0, r3, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08003704 ldr r0, _080036EC @ =0x0201C184 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #4 bne _080036F4 ldr r1, _080036F0 @ =0x0202BEF8 movs r0, #0xb b _080036F8 .align 2, 0 _080036E8: .4byte 0x086A5528 _080036EC: .4byte 0x0201C184 _080036F0: .4byte 0x0202BEF8 _080036F4: ldr r1, _08003700 @ =0x0202BEF8 movs r0, #1 _080036F8: strb r0, [r1] movs r0, #8 strb r0, [r2, #3] b _0800371A .align 2, 0 _08003700: .4byte 0x0202BEF8 _08003704: bl sub_377C movs r1, #0 strb r1, [r5] ldr r0, _08003734 @ =0x0202A580 strb r1, [r0] ldr r0, _08003738 @ =0x0202C5A4 strb r1, [r0] ldrb r0, [r4] adds r0, #1 strb r0, [r4] _0800371A: bl sub_394C ldr r1, _0800373C @ =0x040000D4 ldr r0, _08003740 @ =0x03000000 str r0, [r1] ldr r0, _08003744 @ =0x06004000 str r0, [r1, #4] ldr r0, _08003748 @ =0x80001800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08003734: .4byte 0x0202A580 _08003738: .4byte 0x0202C5A4 _0800373C: .4byte 0x040000D4 _08003740: .4byte 0x03000000 _08003744: .4byte 0x06004000 _08003748: .4byte 0x80001800 thumb_func_start sub_374C sub_374C: @ 0x0800374C push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08003774 @ =0x0201A4B4 movs r0, #1 strb r0, [r1] ldr r0, _08003778 @ =0x0202BEF8 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 _08003774: .4byte 0x0201A4B4 _08003778: .4byte 0x0202BEF8 thumb_func_start sub_377C sub_377C: @ 0x0800377C push {r4, r5, r6, r7, lr} movs r1, #0 ldr r7, _080037AC @ =0x03001800 _08003782: movs r5, #0 lsls r0, r1, #0xb adds r6, r1, #1 adds r4, r7, r0 _0800378A: ldr r0, _080037B0 @ =0x080ACC60 adds r1, r4, #0 movs r2, #1 movs r3, #2 bl sub_10708 adds r4, #0x20 adds r5, #1 cmp r5, #0x17 ble _0800378A adds r1, r6, #0 cmp r1, #2 ble _08003782 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080037AC: .4byte 0x03001800 _080037B0: .4byte 0x080ACC60 thumb_func_start sub_37B4 sub_37B4: @ 0x080037B4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r2, #0 lsls r0, r0, #0x18 ldr r1, _08003818 @ =0x086A4CF8 mov sb, r1 asrs r0, r0, #0x18 lsls r1, r0, #3 adds r1, r1, r0 lsls r1, r1, #4 mov r8, r1 _080037CE: movs r5, #0 lsls r1, r2, #1 lsls r6, r2, #0xb adds r7, r2, #1 adds r1, r1, r2 lsls r1, r1, #4 mov r0, r8 add r0, sb adds r4, r1, r0 _080037E0: ldrh r1, [r4] ldr r2, _0800381C @ =0x0000FFF0 adds r0, r2, #0 ands r0, r1 ldr r1, _08003820 @ =0x080ACC60 adds r0, r0, r1 lsls r1, r5, #5 ldr r2, _08003824 @ =0x03001800 adds r1, r1, r2 adds r1, r6, r1 movs r2, #1 movs r3, #2 bl sub_10708 adds r4, #2 adds r5, #1 cmp r5, #0x17 ble _080037E0 adds r2, r7, #0 cmp r2, #2 ble _080037CE pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08003818: .4byte 0x086A4CF8 _0800381C: .4byte 0x0000FFF0 _08003820: .4byte 0x080ACC60 _08003824: .4byte 0x03001800 thumb_func_start sub_3828 sub_3828: @ 0x08003828 push {r4, r5, r6, lr} adds r5, r0, #0 adds r4, r1, #0 lsls r5, r5, #0x18 lsrs r5, r5, #0x18 lsls r4, r4, #0x18 asrs r4, r4, #0x18 adds r0, r4, #0 movs r1, #0x18 bl __divsi3 adds r6, r0, #0 lsls r6, r6, #0x18 asrs r6, r6, #0x18 adds r0, r4, #0 movs r1, #0x18 bl __modsi3 adds r2, r0, #0 lsls r2, r2, #0x18 asrs r2, r2, #0x18 ldr r3, _08003890 @ =0x086A4CF8 lsls r1, r6, #1 adds r1, r1, r6 lsls r1, r1, #3 adds r1, r1, r2 lsls r1, r1, #1 lsls r5, r5, #0x18 asrs r5, r5, #0x18 lsls r0, r5, #3 adds r0, r0, r5 lsls r0, r0, #4 adds r1, r1, r0 adds r1, r1, r3 ldrh r1, [r1] ldr r0, _08003894 @ =0x0000FFF0 ands r0, r1 ldr r1, _08003898 @ =0x080ACC60 adds r0, r0, r1 lsls r6, r6, #0xb lsls r2, r2, #5 ldr r1, _0800389C @ =0x03001800 adds r2, r2, r1 adds r6, r6, r2 adds r1, r6, #0 movs r2, #1 movs r3, #2 bl sub_10708 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08003890: .4byte 0x086A4CF8 _08003894: .4byte 0x0000FFF0 _08003898: .4byte 0x080ACC60 _0800389C: .4byte 0x03001800 thumb_func_start sub_38A0 sub_38A0: @ 0x080038A0 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 lsls r6, r6, #0x10 lsrs r6, r6, #0x10 lsls r5, r5, #0x18 asrs r5, r5, #0x18 adds r0, r5, #0 movs r1, #0x18 bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #0x18 adds r0, r5, #0 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 ldr r1, _080038E8 @ =0x080ACC60 adds r6, r6, r1 lsls r4, r4, #0xb asrs r0, r0, #0x13 ldr r1, _080038EC @ =0x03001800 adds r0, r0, r1 adds r4, r4, r0 adds r0, r6, #0 adds r1, r4, #0 movs r2, #1 movs r3, #2 bl sub_10708 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080038E8: .4byte 0x080ACC60 _080038EC: .4byte 0x03001800 thumb_func_start sub_38F0 sub_38F0: @ 0x080038F0 ldr r0, _08003900 @ =0x0202BEEC movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _08003904 @ =0x00001F52 cmp r1, r0 bne _08003908 movs r0, #0 b _0800394A .align 2, 0 _08003900: .4byte 0x0202BEEC _08003904: .4byte 0x00001F52 _08003908: ldr r0, _08003914 @ =0x00003E1A cmp r1, r0 bne _08003918 movs r0, #1 b _0800394A .align 2, 0 _08003914: .4byte 0x00003E1A _08003918: ldr r0, _08003924 @ =0x000025AF cmp r1, r0 bne _08003928 movs r0, #2 b _0800394A .align 2, 0 _08003924: .4byte 0x000025AF _08003928: ldr r0, _08003934 @ =0x00004A09 cmp r1, r0 bne _08003938 movs r0, #3 b _0800394A .align 2, 0 _08003934: .4byte 0x00004A09 _08003938: ldr r0, _08003944 @ =0x00006B12 cmp r1, r0 beq _08003948 movs r0, #1 rsbs r0, r0, #0 b _0800394A .align 2, 0 _08003944: .4byte 0x00006B12 _08003948: movs r0, #4 _0800394A: bx lr thumb_func_start sub_394C sub_394C: @ 0x0800394C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _080039A0 @ =0x0202A58C movs r0, #0 ldrsb r0, [r4, r0] movs r1, #0xb8 muls r0, r1, r0 ldr r2, _080039A4 @ =0x0200B3B8 adds r7, r0, r2 ldr r0, _080039A8 @ =0x0202BEC0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 muls r0, r1, r0 adds r0, r0, r2 mov r8, r0 ldr r0, _080039AC @ =0x0202C584 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r7] movs r0, #1 mov r1, r8 strh r0, [r1] ldr r0, _080039B0 @ =0x086A54D8 movs r1, #0xd bl sub_358 ldrh r0, [r7] cmp r0, #1 bne _08003A18 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _080039B4 movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x64 b _080039BA .align 2, 0 _080039A0: .4byte 0x0202A58C _080039A4: .4byte 0x0200B3B8 _080039A8: .4byte 0x0202BEC0 _080039AC: .4byte 0x0202C584 _080039B0: .4byte 0x086A54D8 _080039B4: movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x50 _080039BA: strh r0, [r7, #4] ldr r1, _08003A9C @ =0x086A54D8 ldr r0, _08003AA0 @ =0x0202A58C ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r5, #0 ldrh r2, [r6] cmp r5, r2 bge _08003A18 ldr r0, _08003AA4 @ =0x03005000 mov ip, r0 ldr r1, _08003AA8 @ =0xFFFFFE00 mov sb, r1 adds r4, r7, #0 adds r4, #8 _080039E0: ldrh r3, [r4] lsls r3, r3, #3 add r3, ip movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08003AAC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r0, [r6] cmp r5, r0 blt _080039E0 _08003A18: movs r0, #0x78 mov r1, r8 strh r0, [r1, #2] movs r0, #0x18 strh r0, [r1, #4] ldr r1, _08003A9C @ =0x086A54D8 ldr r0, _08003AB0 @ =0x0202BEC0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r5, #0 ldrh r2, [r6] cmp r5, r2 bge _08003A86 ldr r0, _08003AA4 @ =0x03005000 mov ip, r0 ldr r1, _08003AA8 @ =0xFFFFFE00 mov sb, r1 mov r4, r8 adds r4, #8 _08003A46: ldrh r3, [r4] lsls r3, r3, #3 add r3, ip movs r0, #2 ldrsh r2, [r4, r0] mov sl, r2 mov r1, r8 movs r2, #2 ldrsh r0, [r1, r2] mov r2, sl adds r1, r2, r0 ldr r2, _08003AAC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r2, r8 ldrb r0, [r2, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r0, [r6] cmp r5, r0 blt _08003A46 _08003A86: movs r0, #0 strh r0, [r7] mov r1, r8 strh r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08003A9C: .4byte 0x086A54D8 _08003AA0: .4byte 0x0202A58C _08003AA4: .4byte 0x03005000 _08003AA8: .4byte 0xFFFFFE00 _08003AAC: .4byte 0x000001FF _08003AB0: .4byte 0x0202BEC0 thumb_func_start sub_3AB4 sub_3AB4: @ 0x08003AB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _08003B08 @ =0x0202A58C movs r0, #0 ldrsb r0, [r4, r0] movs r1, #0xb8 muls r0, r1, r0 ldr r2, _08003B0C @ =0x0200B3B8 adds r7, r0, r2 ldr r0, _08003B10 @ =0x0202BEC0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 muls r0, r1, r0 adds r0, r0, r2 mov r8, r0 ldr r0, _08003B14 @ =0x0202C584 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r7] movs r0, #1 mov r1, r8 strh r0, [r1] ldr r0, _08003B18 @ =0x086A54D8 movs r1, #0xd bl sub_2414 ldrh r0, [r7] cmp r0, #1 bne _08003B80 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _08003B1C movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x64 b _08003B22 .align 2, 0 _08003B08: .4byte 0x0202A58C _08003B0C: .4byte 0x0200B3B8 _08003B10: .4byte 0x0202BEC0 _08003B14: .4byte 0x0202C584 _08003B18: .4byte 0x086A54D8 _08003B1C: movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x50 _08003B22: strh r0, [r7, #4] ldr r1, _08003C04 @ =0x086A54D8 ldr r0, _08003C08 @ =0x0202A58C ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r5, #0 ldrh r2, [r6] cmp r5, r2 bge _08003B80 ldr r0, _08003C0C @ =0x03005000 mov ip, r0 ldr r1, _08003C10 @ =0xFFFFFE00 mov sb, r1 adds r4, r7, #0 adds r4, #8 _08003B48: ldrh r3, [r4] lsls r3, r3, #3 add r3, ip movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08003C14 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r0, [r6] cmp r5, r0 blt _08003B48 _08003B80: movs r0, #0x78 mov r1, r8 strh r0, [r1, #2] movs r0, #0x18 strh r0, [r1, #4] ldr r1, _08003C04 @ =0x086A54D8 ldr r0, _08003C18 @ =0x0202BEC0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r6, [r0] movs r5, #0 ldrh r2, [r6] cmp r5, r2 bge _08003BEE ldr r0, _08003C0C @ =0x03005000 mov ip, r0 ldr r1, _08003C10 @ =0xFFFFFE00 mov sb, r1 mov r4, r8 adds r4, #8 _08003BAE: ldrh r3, [r4] lsls r3, r3, #3 add r3, ip movs r0, #2 ldrsh r2, [r4, r0] mov sl, r2 mov r1, r8 movs r2, #2 ldrsh r0, [r1, r2] mov r2, sl adds r1, r2, r0 ldr r2, _08003C14 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r2, r8 ldrb r0, [r2, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldrh r0, [r6] cmp r5, r0 blt _08003BAE _08003BEE: movs r0, #0 strh r0, [r7] mov r1, r8 strh r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08003C04: .4byte 0x086A54D8 _08003C08: .4byte 0x0202A58C _08003C0C: .4byte 0x03005000 _08003C10: .4byte 0xFFFFFE00 _08003C14: .4byte 0x000001FF _08003C18: .4byte 0x0202BEC0 thumb_func_start sub_3C1C sub_3C1C: @ 0x08003C1C push {r4, lr} ldr r0, _08003C64 @ =0x0202A564 movs r1, #0 strb r1, [r0] ldr r0, _08003C68 @ =0x02019C20 strb r1, [r0] ldr r0, _08003C6C @ =0x0202ADE8 strb r1, [r0] ldr r1, _08003C70 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _08003C34: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08003C34 movs r1, #0 ldr r4, _08003C74 @ =0x0201A4D0 movs r3, #0 _08003C42: lsls r0, r1, #1 adds r2, r1, #1 movs r1, #7 adds r0, r0, r4 adds r0, #0x1c _08003C4C: strh r3, [r0] subs r0, #4 subs r1, #1 cmp r1, #0 bge _08003C4C adds r1, r2, #0 cmp r1, #1 ble _08003C42 pop {r4} pop {r0} bx r0 .align 2, 0 _08003C64: .4byte 0x0202A564 _08003C68: .4byte 0x02019C20 _08003C6C: .4byte 0x0202ADE8 _08003C70: .4byte 0x0202C5F0 _08003C74: .4byte 0x0201A4D0 thumb_func_start sub_3C78 sub_3C78: @ 0x08003C78 ldr r0, _08003C8C @ =0x02019C20 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08003C98 ldr r1, _08003C90 @ =0x0202C5F0 ldr r0, _08003C94 @ =0x0000DFDF strh r0, [r1] b _08003CD0 .align 2, 0 _08003C8C: .4byte 0x02019C20 _08003C90: .4byte 0x0202C5F0 _08003C94: .4byte 0x0000DFDF _08003C98: ldr r3, _08003CB4 @ =0x0202ADE8 movs r1, #0 ldrsb r1, [r3, r1] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _08003CC0 ldr r0, _08003CB8 @ =0x0202C5F0 movs r2, #0 ldr r1, _08003CBC @ =0x0000CDFE strh r1, [r0] strb r2, [r3] b _08003CD0 .align 2, 0 _08003CB4: .4byte 0x0202ADE8 _08003CB8: .4byte 0x0202C5F0 _08003CBC: .4byte 0x0000CDFE _08003CC0: ldr r1, _08003CD4 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _08003CC8: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08003CC8 _08003CD0: movs r0, #0 bx lr .align 2, 0 _08003CD4: .4byte 0x0202C5F0 thumb_func_start sub_3CD8 sub_3CD8: @ 0x08003CD8 push {r4, lr} ldr r0, _08003D24 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 ldr r2, _08003D28 @ =0x0202A564 cmp r0, #0 beq _08003D02 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 bne _08003D0A movs r0, #1 rsbs r0, r0, #0 adds r1, r0, #0 strb r1, [r2] ldr r0, _08003D2C @ =0x0202ADE8 strb r1, [r0] ldr r1, _08003D30 @ =0x0202A58C movs r0, #1 strb r0, [r1] _08003D02: movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08003D7A _08003D0A: ldr r3, _08003D34 @ =0x02019C20 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 bne _08003D66 ldr r1, _08003D38 @ =0x0201A4D0 ldrh r0, [r1] ldr r2, _08003D3C @ =0x0000FEDC cmp r0, r2 bne _08003D44 ldr r0, _08003D40 @ =0x0202BEEC ldrh r1, [r1, #4] b _08003D4E .align 2, 0 _08003D24: .4byte 0x0200B0C0 _08003D28: .4byte 0x0202A564 _08003D2C: .4byte 0x0202ADE8 _08003D30: .4byte 0x0202A58C _08003D34: .4byte 0x02019C20 _08003D38: .4byte 0x0201A4D0 _08003D3C: .4byte 0x0000FEDC _08003D40: .4byte 0x0202BEEC _08003D44: ldrh r0, [r1, #2] cmp r0, r2 bne _08003D7A ldr r0, _08003D5C @ =0x0202BEEC ldrh r1, [r1, #6] _08003D4E: strh r1, [r0] movs r1, #1 rsbs r1, r1, #0 adds r0, r1, #0 strb r0, [r3] b _08003D7A .align 2, 0 _08003D5C: .4byte 0x0202BEEC _08003D60: movs r0, #1 rsbs r0, r0, #0 b _08003D9C _08003D66: movs r1, #0 ldr r3, _08003DA4 @ =0x0000DFDF ldr r2, _08003DA8 @ =0x0201A4D0 _08003D6C: ldrh r0, [r2] cmp r0, r3 beq _08003D60 adds r2, #2 adds r1, #1 cmp r1, #1 ble _08003D6C _08003D7A: movs r1, #0 ldr r4, _08003DA8 @ =0x0201A4D0 movs r3, #0 _08003D80: lsls r0, r1, #1 adds r2, r1, #1 movs r1, #7 adds r0, r0, r4 adds r0, #0x1c _08003D8A: strh r3, [r0] subs r0, #4 subs r1, #1 cmp r1, #0 bge _08003D8A adds r1, r2, #0 cmp r1, #1 ble _08003D80 movs r0, #0 _08003D9C: pop {r4} pop {r1} bx r1 .align 2, 0 _08003DA4: .4byte 0x0000DFDF _08003DA8: .4byte 0x0201A4D0 thumb_func_start sub_3DAC sub_3DAC: @ 0x08003DAC push {lr} ldr r1, _08003DC4 @ =0x0805C880 ldr r0, _08003DC8 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08003DC4: .4byte 0x0805C880 _08003DC8: .4byte 0x0200B0C0 thumb_func_start sub_3DCC sub_3DCC: @ 0x08003DCC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x86 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _08003F30 @ =0x0400000A movs r0, #5 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #2 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08003F34 @ =0x0400000C subs r3, #0xf2 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, _08003F38 @ =0x0400000E ldr r3, _08003F3C @ =0x0000020F 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, _08003F40 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r7, #0x16] ldr r4, _08003F44 @ =0x040000D4 ldr r0, _08003F48 @ =0x08082720 str r0, [r4] ldr r0, _08003F4C @ =0x06004000 str r0, [r4, #4] ldr r0, _08003F50 @ =0x80002200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F54 @ =0x08087B40 str r0, [r4] ldr r0, _08003F58 @ =0x0600C000 str r0, [r4, #4] ldr r0, _08003F5C @ =0x80000A00 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F60 @ =0x08089760 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08003F64 @ =0x80000100 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F68 @ =0x08081F20 str r0, [r4] ldr r0, _08003F6C @ =0x03005C00 mov sl, r0 str r0, [r4, #4] ldr r2, _08003F70 @ =0x80000400 mov r8, r2 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F74 @ =0x08087340 str r0, [r4] ldr r3, _08003F78 @ =0x02019C40 mov sb, r3 str r3, [r4, #4] str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F7C @ =0x08088F60 str r0, [r4] ldr r0, _08003F80 @ =0x06001000 str r0, [r4, #4] str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F84 @ =0x08089960 str r0, [r4] ldr r0, _08003F88 @ =0x05000200 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08003F8C @ =0x08089B60 str r0, [r4] ldr r0, _08003F90 @ =0x06010000 str r0, [r4, #4] ldr r0, _08003F94 @ =0x80003610 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_3FAC ldr r0, _08003F98 @ =0x0202BEB8 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _08003F9C @ =0x0201A514 movs r2, #0 ldrsh r1, [r1, r2] bl sub_6BEC ldr r6, _08003FA0 @ =0x0202ADE0 movs r3, #0 ldrsh r0, [r6, r3] bl sub_681C ldr r5, _08003FA4 @ =0x0202C5B0 movs r1, #0 ldrsh r0, [r5, r1] bl sub_6CA0 movs r2, #0 ldrsh r0, [r5, r2] bl sub_6F30 movs r3, #0 ldrsh r0, [r6, r3] bl sub_6F78 movs r1, #0 ldrsh r0, [r6, r1] bl sub_8974 movs r2, #0 ldrsh r0, [r6, r2] bl sub_8A78 movs r1, #0x9a lsls r1, r1, #2 add r1, sb movs r0, #0x59 strh r0, [r1] mov r3, sl str r3, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] mov r0, r8 str r0, [r4, #8] ldr r0, [r4, #8] mov r1, sb str r1, [r4] ldr r0, _08003FA8 @ =0x06000800 str r0, [r4, #4] mov r2, r8 str r2, [r4, #8] ldr r0, [r4, #8] bl sub_51FC bl sub_CBC bl sub_24C movs r0, #1 strb r0, [r7, #3] movs r0, #0x2e bl m4aSongNumStart 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 _08003F30: .4byte 0x0400000A _08003F34: .4byte 0x0400000C _08003F38: .4byte 0x0400000E _08003F3C: .4byte 0x0000020F _08003F40: .4byte 0x0200B0C0 _08003F44: .4byte 0x040000D4 _08003F48: .4byte 0x08082720 _08003F4C: .4byte 0x06004000 _08003F50: .4byte 0x80002200 _08003F54: .4byte 0x08087B40 _08003F58: .4byte 0x0600C000 _08003F5C: .4byte 0x80000A00 _08003F60: .4byte 0x08089760 _08003F64: .4byte 0x80000100 _08003F68: .4byte 0x08081F20 _08003F6C: .4byte 0x03005C00 _08003F70: .4byte 0x80000400 _08003F74: .4byte 0x08087340 _08003F78: .4byte 0x02019C40 _08003F7C: .4byte 0x08088F60 _08003F80: .4byte 0x06001000 _08003F84: .4byte 0x08089960 _08003F88: .4byte 0x05000200 _08003F8C: .4byte 0x08089B60 _08003F90: .4byte 0x06010000 _08003F94: .4byte 0x80003610 _08003F98: .4byte 0x0202BEB8 _08003F9C: .4byte 0x0201A514 _08003FA0: .4byte 0x0202ADE0 _08003FA4: .4byte 0x0202C5B0 _08003FA8: .4byte 0x06000800 thumb_func_start sub_3FAC sub_3FAC: @ 0x08003FAC push {r4, r5, lr} ldr r0, _0800401C @ =0x0202ADE0 movs r4, #0 strh r4, [r0] ldr r0, _08004020 @ =0x0202C5B0 strh r4, [r0] ldr r0, _08004024 @ =0x0201A448 strh r4, [r0] ldr r0, _08004028 @ =0x0202BF00 strh r4, [r0] ldr r0, _0800402C @ =0x0202A57C strh r4, [r0] ldr r0, _08004030 @ =0x0201A4F0 strh r4, [r0] ldr r0, _08004034 @ =0x0202BE20 strh r4, [r0] ldr r0, _08004038 @ =0x0202C58C strh r4, [r0] ldr r0, _0800403C @ =0x02019C24 strb r4, [r0] ldr r0, _08004040 @ =0x0202BF0C strh r4, [r0] ldr r0, _08004044 @ =0x0201A440 strh r4, [r0] ldr r0, _08004048 @ =0x0202C5E8 strh r4, [r0] ldr r0, _0800404C @ =0x0202BEF4 strh r4, [r0] ldr r0, _08004050 @ =0x0202A588 movs r5, #1 strh r5, [r0] ldr r0, _08004054 @ =0x0202A55C strh r5, [r0] ldr r0, _08004058 @ =0x0202A568 movs r1, #0 strh r1, [r0] strh r1, [r0, #2] ldr r0, _0800405C @ =0x0202BF14 strh r1, [r0] ldr r0, _08004060 @ =0x0202A558 strh r1, [r0] ldr r0, _08004064 @ =0x0202BEE0 strb r4, [r0] ldr r0, _08004068 @ =0x0202BF04 strb r5, [r0] bl sub_88E4 bl sub_FD20 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08004070 ldr r0, _0800406C @ =0x0202C590 strb r5, [r0] b _08004074 .align 2, 0 _0800401C: .4byte 0x0202ADE0 _08004020: .4byte 0x0202C5B0 _08004024: .4byte 0x0201A448 _08004028: .4byte 0x0202BF00 _0800402C: .4byte 0x0202A57C _08004030: .4byte 0x0201A4F0 _08004034: .4byte 0x0202BE20 _08004038: .4byte 0x0202C58C _0800403C: .4byte 0x02019C24 _08004040: .4byte 0x0202BF0C _08004044: .4byte 0x0201A440 _08004048: .4byte 0x0202C5E8 _0800404C: .4byte 0x0202BEF4 _08004050: .4byte 0x0202A588 _08004054: .4byte 0x0202A55C _08004058: .4byte 0x0202A568 _0800405C: .4byte 0x0202BF14 _08004060: .4byte 0x0202A558 _08004064: .4byte 0x0202BEE0 _08004068: .4byte 0x0202BF04 _0800406C: .4byte 0x0202C590 _08004070: ldr r0, _080040C8 @ =0x0202C590 strb r4, [r0] _08004074: ldr r0, _080040CC @ =0x0202BEC4 movs r1, #0 strb r1, [r0] ldr r0, _080040D0 @ =0x0202BEFC strb r1, [r0] ldr r0, _080040D4 @ =0x0201B120 movs r1, #0 strh r1, [r0] ldr r0, _080040D8 @ =0x02002830 strb r1, [r0] ldr r0, _080040DC @ =0x02002831 strb r1, [r0] ldr r0, _080040E0 @ =0x0202C794 strb r1, [r0] ldr r0, _080040E4 @ =0x0201C1B4 strb r1, [r0] ldr r0, _080040E8 @ =0x0202C5AC strb r1, [r0] ldr r0, _080040EC @ =0x02019C28 strb r1, [r0] ldr r5, _080040F0 @ =0x0202A1C0 ldr r4, _080040F4 @ =0x0202A574 adds r3, r5, #0 ldr r2, _080040F8 @ =0x0202A390 movs r1, #0xe0 _080040A6: ldrh r0, [r3] strh r0, [r2] adds r3, #2 adds r2, #2 subs r1, #1 cmp r1, #0 bge _080040A6 adds r1, r5, #0 movs r2, #0xcc lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 beq _080040FC movs r0, #0xcd b _08004146 .align 2, 0 _080040C8: .4byte 0x0202C590 _080040CC: .4byte 0x0202BEC4 _080040D0: .4byte 0x0202BEFC _080040D4: .4byte 0x0201B120 _080040D8: .4byte 0x02002830 _080040DC: .4byte 0x02002831 _080040E0: .4byte 0x0202C794 _080040E4: .4byte 0x0201C1B4 _080040E8: .4byte 0x0202C5AC _080040EC: .4byte 0x02019C28 _080040F0: .4byte 0x0202A1C0 _080040F4: .4byte 0x0202A574 _080040F8: .4byte 0x0202A390 _080040FC: movs r2, #0xcb lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 beq _0800410E movs r0, #0xcc b _08004146 _0800410E: movs r2, #0xca lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 beq _08004120 movs r0, #0xcb b _08004146 _08004120: movs r2, #0xc9 lsls r2, r2, #1 adds r0, r1, r2 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 beq _08004132 movs r0, #0xca b _08004146 _08004132: movs r2, #0xc8 lsls r2, r2, #1 adds r0, r5, r2 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 beq _08004144 movs r0, #0xc9 b _08004146 _08004144: movs r0, #0xc8 _08004146: strh r0, [r4] pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_4150 sub_4150: @ 0x08004150 push {r4, r5, r6, r7, lr} ldr r4, _08004174 @ =0x0200B0C0 ldrh r2, [r4, #0x1c] movs r0, #4 ands r0, r2 cmp r0, #0 beq _08004230 ldr r1, _08004178 @ =0x0202BF04 movs r0, #0 strb r0, [r1] movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _0800417C bl sub_4D74 b _080041A8 .align 2, 0 _08004174: .4byte 0x0200B0C0 _08004178: .4byte 0x0202BF04 _0800417C: movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _0800418A bl sub_4E34 b _080041A8 _0800418A: movs r0, #0x20 ands r0, r2 cmp r0, #0 beq _08004198 bl sub_4EF0 b _080041A8 _08004198: movs r0, #0x10 ands r0, r2 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 cmp r1, #0 beq _080041B6 bl sub_4F50 _080041A8: bl sub_5064 bl sub_51CC movs r0, #2 strb r0, [r4, #3] b _080041BE _080041B6: ldr r0, _08004200 @ =0x02019C24 strb r1, [r0] bl sub_5064 _080041BE: ldr r3, _08004204 @ =0x0200B0C0 ldrh r1, [r3, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080041CC b _08004388 _080041CC: ldr r0, _08004208 @ =0x0202C5E8 movs r2, #0 strh r2, [r0] ldr r1, _0800420C @ =0x0202A1C0 ldr r0, _08004210 @ =0x0202ADE0 movs r4, #0 ldrsh r0, [r0, r4] lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #1 ble _08004228 ldr r0, _08004214 @ =0x0202BF04 strb r2, [r0] ldr r1, _08004218 @ =0x040000D4 ldr r0, _0800421C @ =0x06000280 str r0, [r1] ldr r0, _08004220 @ =0x0202A590 str r0, [r1, #4] ldr r0, _08004224 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #3 strb r0, [r3, #3] b _08004388 .align 2, 0 _08004200: .4byte 0x02019C24 _08004204: .4byte 0x0200B0C0 _08004208: .4byte 0x0202C5E8 _0800420C: .4byte 0x0202A1C0 _08004210: .4byte 0x0202ADE0 _08004214: .4byte 0x0202BF04 _08004218: .4byte 0x040000D4 _0800421C: .4byte 0x06000280 _08004220: .4byte 0x0202A590 _08004224: .4byte 0x80000100 _08004228: movs r0, #0x8a bl m4aSongNumStart b _08004388 _08004230: ldr r1, _08004248 @ =0x0202BF04 movs r0, #1 strb r0, [r1] movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _0800424C bl sub_4D74 bl sub_5174 b _0800428A .align 2, 0 _08004248: .4byte 0x0202BF04 _0800424C: movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _0800425E bl sub_4E34 bl sub_5174 b _0800428A _0800425E: movs r0, #0x20 ands r0, r2 cmp r0, #0 beq _08004270 bl sub_4EF0 bl sub_5174 b _0800428A _08004270: movs r0, #0x10 ands r0, r2 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 cmp r1, #0 beq _08004286 bl sub_4F50 bl sub_5174 b _0800428A _08004286: ldr r0, _080042A4 @ =0x02019C24 strb r1, [r0] _0800428A: ldr r0, _080042A8 @ =0x0202ADE0 movs r2, #0 ldrsh r0, [r0, r2] bl sub_8A78 lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #1 bne _080042B0 ldr r0, _080042AC @ =0x0202A588 strh r1, [r0] b _080042B6 .align 2, 0 _080042A4: .4byte 0x02019C24 _080042A8: .4byte 0x0202ADE0 _080042AC: .4byte 0x0202A588 _080042B0: ldr r1, _0800430C @ =0x0202A588 movs r0, #0 strh r0, [r1] _080042B6: ldr r0, _08004310 @ =0x0202A55C movs r7, #1 strh r7, [r0] ldr r0, _08004314 @ =0x0202A568 movs r6, #0 movs r2, #0 strh r2, [r0] strh r2, [r0, #2] ldr r0, _08004318 @ =0x0201A440 strh r2, [r0] ldr r0, _0800431C @ =0x0202BF0C strh r2, [r0] ldr r5, _08004320 @ =0x0200B0C0 ldrh r1, [r5, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800434C ldr r0, _08004324 @ =0x0202C5E8 strh r2, [r0] ldr r1, _08004328 @ =0x0202A1C0 ldr r0, _0800432C @ =0x0202ADE0 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #1 ble _08004344 ldr r0, _08004330 @ =0x0202BF04 strb r6, [r0] ldr r1, _08004334 @ =0x040000D4 ldr r0, _08004338 @ =0x06000280 str r0, [r1] ldr r0, _0800433C @ =0x0202A590 str r0, [r1, #4] ldr r0, _08004340 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #3 b _08004382 .align 2, 0 _0800430C: .4byte 0x0202A588 _08004310: .4byte 0x0202A55C _08004314: .4byte 0x0202A568 _08004318: .4byte 0x0201A440 _0800431C: .4byte 0x0202BF0C _08004320: .4byte 0x0200B0C0 _08004324: .4byte 0x0202C5E8 _08004328: .4byte 0x0202A1C0 _0800432C: .4byte 0x0202ADE0 _08004330: .4byte 0x0202BF04 _08004334: .4byte 0x040000D4 _08004338: .4byte 0x06000280 _0800433C: .4byte 0x0202A590 _08004340: .4byte 0x80000100 _08004344: movs r0, #0x8a bl m4aSongNumStart b _08004384 _0800434C: movs r0, #2 ands r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0 beq _08004362 movs r0, #0x66 bl m4aSongNumStart movs r0, #0xc b _08004382 _08004362: movs r0, #8 ands r0, r1 cmp r0, #0 beq _08004384 movs r0, #0x68 bl m4aSongNumStart ldr r0, _080043B4 @ =0x0202BEC4 strb r7, [r0] ldr r0, _080043B8 @ =0x0202BEFC strb r6, [r0] ldr r0, _080043BC @ =0x0202BF04 strb r6, [r0] ldr r0, _080043C0 @ =0x0202A588 strh r4, [r0] movs r0, #6 _08004382: strb r0, [r5, #3] _08004384: bl sub_4FC8 _08004388: ldr r1, _080043C4 @ =0x0202C58C ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _08004398 subs r0, r2, #1 strh r0, [r1] _08004398: bl sub_51FC ldr r1, _080043C8 @ =0x040000D4 ldr r0, _080043CC @ =0x03005C00 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _080043D0 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080043B4: .4byte 0x0202BEC4 _080043B8: .4byte 0x0202BEFC _080043BC: .4byte 0x0202BF04 _080043C0: .4byte 0x0202A588 _080043C4: .4byte 0x0202C58C _080043C8: .4byte 0x040000D4 _080043CC: .4byte 0x03005C00 _080043D0: .4byte 0x80000400 thumb_func_start sub_43D4 sub_43D4: @ 0x080043D4 push {lr} bl sub_5174 ldr r0, _08004410 @ =0x0202A588 movs r1, #0 strh r1, [r0] ldr r1, _08004414 @ =0x0202C58C ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _080043F0 subs r0, r2, #1 strh r0, [r1] _080043F0: bl sub_51FC ldr r1, _08004418 @ =0x040000D4 ldr r0, _0800441C @ =0x03005C00 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08004420 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _08004424 @ =0x0200B0C0 movs r0, #1 strb r0, [r1, #3] pop {r0} bx r0 .align 2, 0 _08004410: .4byte 0x0202A588 _08004414: .4byte 0x0202C58C _08004418: .4byte 0x040000D4 _0800441C: .4byte 0x03005C00 _08004420: .4byte 0x80000400 _08004424: .4byte 0x0200B0C0 thumb_func_start sub_4428 sub_4428: @ 0x08004428 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r3, #0 ldr r7, _08004548 @ =0x0202A558 ldr r0, _0800454C @ =0x02019C40 mov ip, r0 ldr r1, _08004550 @ =0x0805C780 mov sl, r1 ldr r6, _08004554 @ =0x0805C7C0 mov sb, r6 ldr r0, _08004558 @ =0x03005C00 mov r8, r0 adds r5, r7, #0 ldr r4, _0800455C @ =0x0805C840 _0800444A: movs r1, #0 ldrsh r0, [r5, r1] adds r0, #0xa lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 add r0, r8 lsls r2, r3, #1 ldrh r1, [r4] strh r1, [r0] movs r6, #0 ldrsh r0, [r5, r6] adds r0, #9 lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0800454C @ =0x02019C40 adds r0, r0, r1 mov r6, sl adds r1, r2, r6 ldrh r1, [r1] strh r1, [r0] movs r1, #0 ldrsh r0, [r5, r1] adds r0, #0xa lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 ldr r6, _0800454C @ =0x02019C40 adds r0, r0, r6 add r2, sb ldrh r1, [r2] strh r1, [r0] adds r4, #2 adds r3, #1 cmp r3, #0x1f ble _0800444A ldrh r0, [r7] adds r0, #1 strh r0, [r7] movs r1, #0x9a lsls r1, r1, #2 add r1, ip movs r4, #0 movs r3, #0 movs r0, #0x59 strh r0, [r1] ldr r2, _08004560 @ =0x040000D4 ldr r0, _08004558 @ =0x03005C00 str r0, [r2] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r1, _08004564 @ =0x80000400 str r1, [r2, #8] ldr r0, [r2, #8] mov r6, ip str r6, [r2] ldr r0, _08004568 @ =0x06000800 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldrsh r0, [r7, r1] cmp r0, #7 ble _08004538 strh r3, [r7] ldr r0, _0800456C @ =0x0202C5E8 strh r3, [r0] ldr r0, _08004570 @ =0x0202BEF4 strh r3, [r0] ldr r0, _08004574 @ =0x02019C28 strb r4, [r0] ldr r0, _08004578 @ =0x0202C5AC strb r4, [r0] ldr r4, _0800457C @ =0x0202ADE0 movs r6, #0 ldrsh r0, [r4, r6] cmp r0, #0xc8 bgt _080044F0 ldr r1, _08004580 @ =0x0201C1B4 movs r0, #1 strb r0, [r1] _080044F0: ldr r0, _08004584 @ =0x08086B40 str r0, [r2] ldr r0, _08004588 @ =0x06000280 str r0, [r2, #4] ldr r0, _0800458C @ =0x800000E0 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _08004590 @ =0x0202C794 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 bl sub_70E0 ldr r0, _08004594 @ =0x02032EE0 ldr r1, _08004598 @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl ldr r2, _0800459C @ =0x086A3700 movs r6, #0 ldrsh r1, [r4, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 movs r2, #0x7f movs r3, #0xa bl sub_5291C ldr r1, _080045A0 @ =0x0200B0C0 movs r0, #5 strb r0, [r1, #3] _08004538: 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 _08004548: .4byte 0x0202A558 _0800454C: .4byte 0x02019C40 _08004550: .4byte 0x0805C780 _08004554: .4byte 0x0805C7C0 _08004558: .4byte 0x03005C00 _0800455C: .4byte 0x0805C840 _08004560: .4byte 0x040000D4 _08004564: .4byte 0x80000400 _08004568: .4byte 0x06000800 _0800456C: .4byte 0x0202C5E8 _08004570: .4byte 0x0202BEF4 _08004574: .4byte 0x02019C28 _08004578: .4byte 0x0202C5AC _0800457C: .4byte 0x0202ADE0 _08004580: .4byte 0x0201C1B4 _08004584: .4byte 0x08086B40 _08004588: .4byte 0x06000280 _0800458C: .4byte 0x800000E0 _08004590: .4byte 0x0202C794 _08004594: .4byte 0x02032EE0 _08004598: .4byte 0x0000FFFF _0800459C: .4byte 0x086A3700 _080045A0: .4byte 0x0200B0C0 thumb_func_start sub_45A4 sub_45A4: @ 0x080045A4 push {r4, r5, r6, lr} ldr r1, _08004620 @ =0x0202C5E8 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x50 bgt _080045CA adds r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x50 bne _080045CA ldr r0, _08004624 @ =0x02032EE0 ldr r1, _08004628 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _080045CA: ldr r1, _0800462C @ =0x0202BEF4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1e ble _080045E8 movs r0, #0 strh r0, [r1] ldr r2, _08004630 @ =0x0202C5AC ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 strb r0, [r2] _080045E8: ldr r0, _08004634 @ =0x0202BE20 movs r6, #0 strh r6, [r0] ldr r0, _08004638 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08004644 ldr r5, _0800463C @ =0x0202ADE0 movs r1, #0 ldrsh r0, [r5, r1] cmp r0, #0xc8 bgt _0800467A ldr r4, _08004640 @ =0x0202C794 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bne _0800467A movs r0, #0x6d bl m4aSongNumStart strb r6, [r4] movs r2, #0 ldrsh r0, [r5, r2] movs r1, #0 b _08004670 .align 2, 0 _08004620: .4byte 0x0202C5E8 _08004624: .4byte 0x02032EE0 _08004628: .4byte 0x0000FFFF _0800462C: .4byte 0x0202BEF4 _08004630: .4byte 0x0202C5AC _08004634: .4byte 0x0202BE20 _08004638: .4byte 0x0200B0C0 _0800463C: .4byte 0x0202ADE0 _08004640: .4byte 0x0202C794 _08004644: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0800467A ldr r5, _080046BC @ =0x0202ADE0 movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0xc8 bgt _0800467A ldr r4, _080046C0 @ =0x0202C794 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _0800467A movs r0, #0x6d bl m4aSongNumStart movs r0, #1 strb r0, [r4] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #1 _08004670: bl sub_70E0 ldr r1, _080046C4 @ =0x02019C28 ldrb r0, [r4] strb r0, [r1] _0800467A: ldr r6, _080046C8 @ =0x0200B0C0 ldrh r1, [r6, #0x18] movs r4, #1 ands r4, r1 cmp r4, #0 beq _08004700 ldr r5, _080046BC @ =0x0202ADE0 movs r2, #0 ldrsh r0, [r5, r2] cmp r0, #0xc8 bgt _08004730 ldr r4, _080046C0 @ =0x0202C794 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _080046CC movs r0, #0x6d bl m4aSongNumStart ldrb r1, [r4] movs r0, #1 subs r0, r0, r1 strb r0, [r4] movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0 ldrsb r1, [r4, r1] bl sub_70E0 ldr r1, _080046C4 @ =0x02019C28 ldrb r0, [r4] strb r0, [r1] b _08004730 .align 2, 0 _080046BC: .4byte 0x0202ADE0 _080046C0: .4byte 0x0202C794 _080046C4: .4byte 0x02019C28 _080046C8: .4byte 0x0200B0C0 _080046CC: movs r0, #0x69 bl m4aSongNumStart ldr r0, _080046F0 @ =0x02032EE0 ldr r1, _080046F4 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl movs r0, #0 strb r0, [r4] ldr r0, _080046F8 @ =0x0202C5E8 movs r1, #0 strh r1, [r0] ldr r0, _080046FC @ =0x0202BEF4 strh r1, [r0] b _08004728 .align 2, 0 _080046F0: .4byte 0x02032EE0 _080046F4: .4byte 0x0000FFFF _080046F8: .4byte 0x0202C5E8 _080046FC: .4byte 0x0202BEF4 _08004700: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08004730 movs r0, #0x69 bl m4aSongNumStart ldr r0, _0800476C @ =0x02032EE0 ldr r1, _08004770 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl ldr r0, _08004774 @ =0x0202C794 strb r4, [r0] ldr r0, _08004778 @ =0x0202C5E8 movs r1, #0 strh r4, [r0] ldr r0, _0800477C @ =0x0202BEF4 strh r4, [r0] _08004728: ldr r0, _08004780 @ =0x0201C1B4 strb r1, [r0] movs r0, #4 strb r0, [r6, #3] _08004730: ldr r0, _08004784 @ =0x0200B0C0 ldrh r1, [r0, #0x1c] movs r0, #4 ands r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0 beq _08004808 ldr r1, _08004788 @ =0x0202A1C0 ldr r0, _0800478C @ =0x0202ADE0 movs r2, #0 ldrsh r0, [r0, r2] lsls r2, r0, #1 adds r1, r2, r1 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #4 bne _080047E4 ldr r0, _08004790 @ =0x086A61BC adds r0, r2, r0 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _08004798 ldr r1, _08004794 @ =0x0202A588 movs r0, #0 strh r0, [r1] b _0800482C .align 2, 0 _0800476C: .4byte 0x02032EE0 _08004770: .4byte 0x0000FFFF _08004774: .4byte 0x0202C794 _08004778: .4byte 0x0202C5E8 _0800477C: .4byte 0x0202BEF4 _08004780: .4byte 0x0201C1B4 _08004784: .4byte 0x0200B0C0 _08004788: .4byte 0x0202A1C0 _0800478C: .4byte 0x0202ADE0 _08004790: .4byte 0x086A61BC _08004794: .4byte 0x0202A588 _08004798: cmp r1, #0x63 bgt _080047C0 ldr r0, _080047B4 @ =0x0202A588 movs r1, #0 strh r1, [r0] ldr r0, _080047B8 @ =0x0202A55C strh r1, [r0] ldr r1, _080047BC @ =0x0202A568 movs r2, #0 movs r0, #1 strh r0, [r1] strh r2, [r1, #2] b _08004842 .align 2, 0 _080047B4: .4byte 0x0202A588 _080047B8: .4byte 0x0202A55C _080047BC: .4byte 0x0202A568 _080047C0: ldr r0, _080047D8 @ =0x0202A588 movs r1, #0 strh r1, [r0] ldr r0, _080047DC @ =0x0202A55C strh r1, [r0] ldr r1, _080047E0 @ =0x0202A568 movs r0, #0 strh r0, [r1] movs r0, #1 strh r0, [r1, #2] b _08004842 .align 2, 0 _080047D8: .4byte 0x0202A588 _080047DC: .4byte 0x0202A55C _080047E0: .4byte 0x0202A568 _080047E4: ldr r1, _080047FC @ =0x0202A588 movs r0, #0 strh r0, [r1] ldr r1, _08004800 @ =0x0202A55C movs r0, #1 strh r0, [r1] ldr r1, _08004804 @ =0x0202A568 movs r0, #0 strh r0, [r1] strh r0, [r1, #2] b _08004842 .align 2, 0 _080047FC: .4byte 0x0202A588 _08004800: .4byte 0x0202A55C _08004804: .4byte 0x0202A568 _08004808: ldr r0, _08004820 @ =0x0202ADE0 movs r3, #0 ldrsh r0, [r0, r3] bl sub_8A78 lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #1 bne _08004828 ldr r0, _08004824 @ =0x0202A588 strh r1, [r0] b _0800482C .align 2, 0 _08004820: .4byte 0x0202ADE0 _08004824: .4byte 0x0202A588 _08004828: ldr r0, _0800484C @ =0x0202A588 strh r4, [r0] _0800482C: ldr r1, _08004850 @ =0x0202A55C movs r0, #1 strh r0, [r1] ldr r0, _08004854 @ =0x0202A568 movs r1, #0 strh r1, [r0] strh r1, [r0, #2] ldr r0, _08004858 @ =0x0201A440 strh r1, [r0] ldr r0, _0800485C @ =0x0202BF0C strh r1, [r0] _08004842: bl sub_51FC pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800484C: .4byte 0x0202A588 _08004850: .4byte 0x0202A55C _08004854: .4byte 0x0202A568 _08004858: .4byte 0x0201A440 _0800485C: .4byte 0x0202BF0C thumb_func_start sub_4860 sub_4860: @ 0x08004860 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r3, #0 ldr r0, _0800496C @ =0x02019C40 mov r8, r0 ldr r7, _08004970 @ =0x0202A558 ldr r1, _08004974 @ =0x0805C800 mov sb, r1 ldr r0, _08004978 @ =0x03005C00 mov sl, r0 mov r6, r8 adds r5, r7, #0 ldr r4, _0800497C @ =0x0805C7C0 movs r1, #0x11 mov ip, r1 _08004886: movs r1, #0 ldrsh r0, [r5, r1] mov r1, ip subs r0, r1, r0 lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 lsls r2, r3, #1 ldrh r1, [r4] strh r1, [r0] movs r0, #0 ldrsh r1, [r5, r0] movs r0, #0x12 subs r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 add r2, sb ldrh r1, [r2] strh r1, [r0] adds r4, #2 adds r3, #1 cmp r3, #0x1f ble _08004886 movs r1, #0 ldrsh r0, [r7, r1] cmp r0, #7 bgt _080048F2 movs r3, #0 ldr r0, _08004978 @ =0x03005C00 mov ip, r0 adds r6, r7, #0 ldr r5, _08004980 @ =0x0202A590 movs r4, #0x11 movs r2, #7 _080048D0: movs r1, #0 ldrsh r0, [r6, r1] subs r1, r4, r0 lsls r1, r1, #5 adds r1, r1, r3 lsls r1, r1, #1 add r1, ip subs r0, r2, r0 lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r1] adds r3, #1 cmp r3, #0x1f ble _080048D0 _080048F2: ldrh r0, [r7] adds r0, #1 strh r0, [r7] movs r1, #0x9a lsls r1, r1, #2 add r1, r8 movs r3, #0 movs r0, #0x59 strh r0, [r1] ldr r2, _08004984 @ =0x040000D4 mov r0, r8 str r0, [r2] ldr r0, _08004988 @ =0x06000800 str r0, [r2, #4] ldr r1, _0800498C @ =0x80000400 str r1, [r2, #8] ldr r0, [r2, #8] mov r0, sl str r0, [r2] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldrsh r0, [r7, r1] cmp r0, #8 ble _0800495A strh r3, [r7] ldr r0, _08004990 @ =0x0202A588 strh r3, [r0] ldr r1, _08004994 @ =0x0202BF04 movs r0, #1 strb r0, [r1] mov r0, sp strh r3, [r0] str r0, [r2] ldr r0, _08004998 @ =0x03000000 str r0, [r2, #4] ldr r1, _0800499C @ =0x81000C00 str r1, [r2, #8] ldr r0, [r2, #8] mov r0, sp strh r3, [r0] str r0, [r2] ldr r0, _080049A0 @ =0x06005C00 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r1, _080049A4 @ =0x0200B0C0 movs r0, #1 strb r0, [r1, #3] _0800495A: 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 _0800496C: .4byte 0x02019C40 _08004970: .4byte 0x0202A558 _08004974: .4byte 0x0805C800 _08004978: .4byte 0x03005C00 _0800497C: .4byte 0x0805C7C0 _08004980: .4byte 0x0202A590 _08004984: .4byte 0x040000D4 _08004988: .4byte 0x06000800 _0800498C: .4byte 0x80000400 _08004990: .4byte 0x0202A588 _08004994: .4byte 0x0202BF04 _08004998: .4byte 0x03000000 _0800499C: .4byte 0x81000C00 _080049A0: .4byte 0x06005C00 _080049A4: .4byte 0x0200B0C0 thumb_func_start sub_49A8 sub_49A8: @ 0x080049A8 push {lr} bl sub_19B4 bl sub_5E60 ldr r1, _080049C8 @ =0x0201B124 movs r0, #0 strb r0, [r1] bl sub_599C ldr r1, _080049CC @ =0x0200B0C0 movs r0, #7 strb r0, [r1, #3] pop {r0} bx r0 .align 2, 0 _080049C8: .4byte 0x0201B124 _080049CC: .4byte 0x0200B0C0 thumb_func_start sub_49D0 sub_49D0: @ 0x080049D0 push {r4, r5, lr} bl sub_599C ldr r5, _08004A08 @ =0x0200B0C0 ldrh r1, [r5, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08004A1C movs r0, #0x66 bl m4aSongNumStart ldr r0, _08004A0C @ =0x0202BEC4 movs r1, #0 strb r1, [r0] ldr r0, _08004A10 @ =0x0202BEFC strb r1, [r0] ldr r1, _08004A14 @ =0x0202BF04 movs r0, #1 strb r0, [r1] ldr r0, _08004A18 @ =0x0202A588 movs r4, #1 strh r4, [r0] bl sub_2568 strb r4, [r5, #3] b _08004AF2 .align 2, 0 _08004A08: .4byte 0x0200B0C0 _08004A0C: .4byte 0x0202BEC4 _08004A10: .4byte 0x0202BEFC _08004A14: .4byte 0x0202BF04 _08004A18: .4byte 0x0202A588 _08004A1C: ldr r4, _08004A7C @ =0x0202ADD0 ldr r0, _08004A80 @ =0x0202BEC8 ldr r1, _08004A84 @ =0x0202C5F0 ldr r2, _08004A88 @ =0x0201A4D0 bl sub_1B04 str r0, [r4] ldr r1, _08004A8C @ =0x0202BDF0 movs r3, #3 ands r3, r0 str r3, [r1] ldr r2, _08004A90 @ =0x0201C1AC movs r1, #0x1c ands r1, r0 lsrs r1, r1, #2 strb r1, [r2] ldr r2, _08004A94 @ =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 _08004AF2 cmp r3, #1 bhi _08004AF2 bl sub_5EC8 ldr r0, [r4] movs r1, #0x80 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _08004AAC bl sub_5EA4 lsls r0, r0, #0x10 asrs r1, r0, #0x10 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _08004A98 movs r0, #9 strb r0, [r5, #3] b _08004AAC .align 2, 0 _08004A7C: .4byte 0x0202ADD0 _08004A80: .4byte 0x0202BEC8 _08004A84: .4byte 0x0202C5F0 _08004A88: .4byte 0x0201A4D0 _08004A8C: .4byte 0x0202BDF0 _08004A90: .4byte 0x0201C1AC _08004A94: .4byte 0x0202ADDC _08004A98: cmp r1, #1 bne _08004AAC ldr r0, _08004AF8 @ =0x0202BEFC movs r1, #2 strb r1, [r0] movs r0, #8 strb r0, [r5, #3] movs r0, #0x8a bl m4aSongNumStart _08004AAC: ldr r1, _08004AFC @ =0x0201A510 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r0, _08004B00 @ =0x0202ADD0 ldr r0, [r0] movs r1, #0xfe lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 beq _08004AF2 ldr r0, _08004B04 @ =0x0201B128 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _08004AF2 ldr r1, _08004B08 @ =0x0201A444 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08004AF2 ldr r1, _08004AF8 @ =0x0202BEFC movs r0, #2 strb r0, [r1] ldr r1, _08004B0C @ =0x0200B0C0 movs r0, #8 strb r0, [r1, #3] movs r0, #0x8a bl m4aSongNumStart _08004AF2: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08004AF8: .4byte 0x0202BEFC _08004AFC: .4byte 0x0201A510 _08004B00: .4byte 0x0202ADD0 _08004B04: .4byte 0x0201B128 _08004B08: .4byte 0x0201A444 _08004B0C: .4byte 0x0200B0C0 thumb_func_start sub_4B10 sub_4B10: @ 0x08004B10 ldr r1, _08004B2C @ =0x0201A444 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08004B2A movs r0, #0 strh r0, [r1] ldr r1, _08004B30 @ =0x0200B0C0 movs r0, #6 strb r0, [r1, #3] _08004B2A: bx lr .align 2, 0 _08004B2C: .4byte 0x0201A444 _08004B30: .4byte 0x0200B0C0 thumb_func_start sub_4B34 sub_4B34: @ 0x08004B34 push {lr} bl sub_599C ldr r2, _08004B94 @ =0x0201B120 ldrh r0, [r2] adds r0, #1 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x5a ble _08004B90 movs r1, #0 strh r1, [r2] ldr r0, _08004B98 @ =0x0202BEC4 strb r1, [r0] ldr r0, _08004B9C @ =0x0202BEFC strb r1, [r0] ldr r1, _08004BA0 @ =0x0202BF04 movs r0, #1 strb r0, [r1] ldr r1, _08004BA4 @ =0x0202A588 movs r0, #1 strh r0, [r1] bl sub_2568 bl sub_1AA4 ldr r3, _08004BA8 @ =0x0202A1C0 ldr r2, _08004BAC @ =0x0202A390 movs r1, #0xe0 _08004B70: ldrh r0, [r3] strh r0, [r2] adds r3, #2 adds r2, #2 subs r1, #1 cmp r1, #0 bge _08004B70 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08004BB0 @ =0x0200B0C0 movs r0, #0 strb r0, [r1, #3] _08004B90: pop {r0} bx r0 .align 2, 0 _08004B94: .4byte 0x0201B120 _08004B98: .4byte 0x0202BEC4 _08004B9C: .4byte 0x0202BEFC _08004BA0: .4byte 0x0202BF04 _08004BA4: .4byte 0x0202A588 _08004BA8: .4byte 0x0202A1C0 _08004BAC: .4byte 0x0202A390 _08004BB0: .4byte 0x0200B0C0 thumb_func_start sub_4BB4 sub_4BB4: @ 0x08004BB4 push {r4, lr} bl sub_599C ldr r2, _08004BD0 @ =0x0201B120 movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x82 beq _08004BE4 cmp r0, #0x82 bgt _08004BD4 cmp r0, #4 beq _08004BDA b _08004C4E .align 2, 0 _08004BD0: .4byte 0x0201B120 _08004BD4: cmp r0, #0xfa beq _08004BF8 b _08004C4E _08004BDA: bl sub_2568 bl sub_1AA4 b _08004C4E _08004BE4: ldr r1, _08004BF4 @ =0x0202BEFC movs r0, #3 strb r0, [r1] movs r0, #0x65 bl m4aSongNumStart b _08004C4E .align 2, 0 _08004BF4: .4byte 0x0202BEFC _08004BF8: movs r1, #0 strh r1, [r2] ldr r0, _08004C5C @ =0x0202BEC4 strb r1, [r0] ldr r0, _08004C60 @ =0x0202BEFC strb r1, [r0] ldr r1, _08004C64 @ =0x0202BF04 movs r0, #1 strb r0, [r1] ldr r1, _08004C68 @ =0x0202A588 movs r0, #1 strh r0, [r1] ldr r3, _08004C6C @ =0x0202A390 ldr r1, _08004C70 @ =0x0202A1C0 movs r2, #0xe0 _08004C16: ldrh r0, [r3] strh r0, [r1] adds r3, #2 adds r1, #2 subs r2, #1 cmp r2, #0 bge _08004C16 movs r2, #0 ldr r4, _08004C74 @ =0x0200B134 ldr r3, _08004C70 @ =0x0202A1C0 _08004C2A: adds r1, r2, r4 ldrh r0, [r3] strb r0, [r1] adds r3, #2 adds r2, #1 cmp r2, #0xcc ble _08004C2A bl sub_52B30 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08004C78 @ =0x0200B0C0 movs r0, #0 strb r0, [r1, #3] _08004C4E: ldr r1, _08004C7C @ =0x0201B120 ldrh r0, [r1] adds r0, #1 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08004C5C: .4byte 0x0202BEC4 _08004C60: .4byte 0x0202BEFC _08004C64: .4byte 0x0202BF04 _08004C68: .4byte 0x0202A588 _08004C6C: .4byte 0x0202A390 _08004C70: .4byte 0x0202A1C0 _08004C74: .4byte 0x0200B134 _08004C78: .4byte 0x0200B0C0 _08004C7C: .4byte 0x0201B120 thumb_func_start sub_4C80 sub_4C80: @ 0x08004C80 push {r4, r5, r6, r7, lr} bl sub_51FC ldr r7, _08004CF8 @ =0x0200B0C0 ldrh r1, [r7, #0x18] movs r6, #1 movs r5, #1 adds r4, r5, #0 ands r4, r1 cmp r4, #0 beq _08004D18 movs r0, #0x65 bl m4aSongNumStart movs r3, #0 ldr r1, _08004CFC @ =0x0202A1C0 ldr r0, _08004D00 @ =0x0202A390 movs r2, #0xe0 _08004CA4: strh r3, [r0] strh r3, [r1] adds r1, #2 adds r0, #2 subs r2, #1 cmp r2, #0 bge _08004CA4 movs r2, #0 ldr r5, _08004D04 @ =0x0202BEC4 ldr r6, _08004D08 @ =0x0202BEFC ldr r7, _08004D0C @ =0x0202BF04 ldr r0, _08004D10 @ =0x0202A588 mov ip, r0 ldr r4, _08004D14 @ =0x0200B134 ldr r3, _08004CFC @ =0x0202A1C0 _08004CC2: adds r1, r2, r4 ldrh r0, [r3] strb r0, [r1] adds r3, #2 adds r2, #1 cmp r2, #0xcc ble _08004CC2 movs r0, #0 strb r0, [r5] strb r0, [r6] movs r0, #1 strb r0, [r7] movs r0, #1 mov r1, ip strh r0, [r1] bl sub_52B30 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08004CF8 @ =0x0200B0C0 movs r0, #0 strb r0, [r1, #3] b _08004D38 .align 2, 0 _08004CF8: .4byte 0x0200B0C0 _08004CFC: .4byte 0x0202A1C0 _08004D00: .4byte 0x0202A390 _08004D04: .4byte 0x0202BEC4 _08004D08: .4byte 0x0202BEFC _08004D0C: .4byte 0x0202BF04 _08004D10: .4byte 0x0202A588 _08004D14: .4byte 0x0200B134 _08004D18: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08004D38 movs r0, #0x66 bl m4aSongNumStart ldr r0, _08004D40 @ =0x0202BEC4 strb r4, [r0] ldr r0, _08004D44 @ =0x0202BEFC strb r4, [r0] ldr r0, _08004D48 @ =0x0202BF04 strb r6, [r0] ldr r0, _08004D4C @ =0x0202A588 strh r5, [r0] strb r6, [r7, #3] _08004D38: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08004D40: .4byte 0x0202BEC4 _08004D44: .4byte 0x0202BEFC _08004D48: .4byte 0x0202BF04 _08004D4C: .4byte 0x0202A588 thumb_func_start sub_4D50 sub_4D50: @ 0x08004D50 push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08004D70 @ =0x0201A4B4 movs r0, #1 strb r0, [r1] movs r0, #1 bl sub_23C pop {r0} bx r0 .align 2, 0 _08004D70: .4byte 0x0201A4B4 thumb_func_start sub_4D74 sub_4D74: @ 0x08004D74 push {r4, r5, lr} ldr r5, _08004DC4 @ =0x0202C58C movs r0, #0 ldrsh r1, [r5, r0] cmp r1, #0 bne _08004E26 ldr r0, _08004DC8 @ =0x0201A440 strh r1, [r0] ldr r0, _08004DCC @ =0x0202BF0C strh r1, [r0] ldr r4, _08004DD0 @ =0x0202A57C movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0 bne _08004E08 ldr r2, _08004DD4 @ =0x0202C5B0 ldrh r1, [r2] movs r3, #0 ldrsh r0, [r2, r3] cmp r0, #0 bne _08004DE4 ldr r0, _08004DD8 @ =0x02019C24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08004DF6 ldr r0, _08004DDC @ =0x0202A574 ldrh r0, [r0] subs r1, r0, #5 strh r1, [r2] ldr r1, _08004DE0 @ =0x0202ADE0 subs r0, #1 strh r0, [r1] movs r0, #4 strh r0, [r4] movs r0, #0x67 bl m4aSongNumStart b _08004DF6 .align 2, 0 _08004DC4: .4byte 0x0202C58C _08004DC8: .4byte 0x0201A440 _08004DCC: .4byte 0x0202BF0C _08004DD0: .4byte 0x0202A57C _08004DD4: .4byte 0x0202C5B0 _08004DD8: .4byte 0x02019C24 _08004DDC: .4byte 0x0202A574 _08004DE0: .4byte 0x0202ADE0 _08004DE4: subs r0, r1, #1 strh r0, [r2] ldr r1, _08004E00 @ =0x0202ADE0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] movs r0, #0x67 bl m4aSongNumStart _08004DF6: ldr r1, _08004E04 @ =0x0202C58C movs r0, #9 strh r0, [r1] b _08004E20 .align 2, 0 _08004E00: .4byte 0x0202ADE0 _08004E04: .4byte 0x0202C58C _08004E08: movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4] subs r0, #1 strh r0, [r4] ldr r1, _08004E2C @ =0x0202ADE0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] movs r0, #9 strh r0, [r5] _08004E20: ldr r1, _08004E30 @ =0x02019C24 movs r0, #1 strb r0, [r1] _08004E26: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08004E2C: .4byte 0x0202ADE0 _08004E30: .4byte 0x02019C24 thumb_func_start sub_4E34 sub_4E34: @ 0x08004E34 push {r4, r5, lr} ldr r5, _08004E80 @ =0x0202C58C movs r0, #0 ldrsh r1, [r5, r0] cmp r1, #0 bne _08004EE2 ldr r0, _08004E84 @ =0x0201A440 strh r1, [r0] ldr r0, _08004E88 @ =0x0202BF0C strh r1, [r0] ldr r4, _08004E8C @ =0x0202A57C movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #4 bne _08004EC4 ldr r2, _08004E90 @ =0x0202C5B0 movs r3, #0 ldrsh r1, [r2, r3] ldr r0, _08004E94 @ =0x0202A574 movs r3, #0 ldrsh r0, [r0, r3] subs r0, #5 cmp r1, r0 bne _08004EA0 ldr r0, _08004E98 @ =0x02019C24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _08004EB4 strh r1, [r2] ldr r0, _08004E9C @ =0x0202ADE0 strh r1, [r0] strh r1, [r4] movs r0, #0x67 bl m4aSongNumStart b _08004EB4 .align 2, 0 _08004E80: .4byte 0x0202C58C _08004E84: .4byte 0x0201A440 _08004E88: .4byte 0x0202BF0C _08004E8C: .4byte 0x0202A57C _08004E90: .4byte 0x0202C5B0 _08004E94: .4byte 0x0202A574 _08004E98: .4byte 0x02019C24 _08004E9C: .4byte 0x0202ADE0 _08004EA0: ldrh r0, [r2] adds r0, #1 strh r0, [r2] ldr r1, _08004EBC @ =0x0202ADE0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] movs r0, #0x67 bl m4aSongNumStart _08004EB4: ldr r1, _08004EC0 @ =0x0202C58C movs r0, #9 strh r0, [r1] b _08004EDC .align 2, 0 _08004EBC: .4byte 0x0202ADE0 _08004EC0: .4byte 0x0202C58C _08004EC4: movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r1, _08004EE8 @ =0x0202ADE0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] movs r0, #9 strh r0, [r5] _08004EDC: ldr r1, _08004EEC @ =0x02019C24 movs r0, #1 strb r0, [r1] _08004EE2: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08004EE8: .4byte 0x0202ADE0 _08004EEC: .4byte 0x02019C24 thumb_func_start sub_4EF0 sub_4EF0: @ 0x08004EF0 push {r4, r5, r6, lr} ldr r6, _08004F38 @ =0x0202C58C movs r0, #0 ldrsh r4, [r6, r0] cmp r4, #0 bne _08004F32 ldr r0, _08004F3C @ =0x0201A440 strh r4, [r0] ldr r0, _08004F40 @ =0x0202BF0C strh r4, [r0] ldr r5, _08004F44 @ =0x0202C5B0 movs r1, #0 ldrsh r0, [r5, r1] cmp r0, #0 beq _08004F32 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r5] subs r0, #5 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 bge _08004F22 strh r4, [r5] _08004F22: ldr r1, _08004F48 @ =0x0202ADE0 ldr r0, _08004F4C @ =0x0202A57C ldrh r0, [r0] ldrh r5, [r5] adds r0, r0, r5 strh r0, [r1] movs r0, #9 strh r0, [r6] _08004F32: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08004F38: .4byte 0x0202C58C _08004F3C: .4byte 0x0201A440 _08004F40: .4byte 0x0202BF0C _08004F44: .4byte 0x0202C5B0 _08004F48: .4byte 0x0202ADE0 _08004F4C: .4byte 0x0202A57C thumb_func_start sub_4F50 sub_4F50: @ 0x08004F50 push {r4, r5, r6, lr} ldr r6, _08004FAC @ =0x0202C58C movs r0, #0 ldrsh r1, [r6, r0] cmp r1, #0 bne _08004FA6 ldr r0, _08004FB0 @ =0x0201A440 strh r1, [r0] ldr r0, _08004FB4 @ =0x0202BF0C strh r1, [r0] ldr r4, _08004FB8 @ =0x0202C5B0 movs r2, #0 ldrsh r1, [r4, r2] ldr r5, _08004FBC @ =0x0202A574 movs r2, #0 ldrsh r0, [r5, r2] subs r0, #5 cmp r1, r0 beq _08004FA6 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4] adds r0, #5 strh r0, [r4] movs r0, #0 ldrsh r1, [r4, r0] movs r2, #0 ldrsh r0, [r5, r2] subs r0, #5 cmp r1, r0 ble _08004F96 ldrh r0, [r5] subs r0, #5 strh r0, [r4] _08004F96: ldr r1, _08004FC0 @ =0x0202ADE0 ldr r0, _08004FC4 @ =0x0202A57C ldrh r0, [r0] ldrh r4, [r4] adds r0, r0, r4 strh r0, [r1] movs r0, #9 strh r0, [r6] _08004FA6: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08004FAC: .4byte 0x0202C58C _08004FB0: .4byte 0x0201A440 _08004FB4: .4byte 0x0202BF0C _08004FB8: .4byte 0x0202C5B0 _08004FBC: .4byte 0x0202A574 _08004FC0: .4byte 0x0202ADE0 _08004FC4: .4byte 0x0202A57C thumb_func_start sub_4FC8 sub_4FC8: @ 0x08004FC8 push {r4, r5, lr} ldr r5, _08005048 @ =0x0200B0C0 ldrh r2, [r5, #0x1c] movs r1, #0x88 lsls r1, r1, #2 adds r0, r1, #0 ands r0, r2 cmp r0, r1 bne _08005022 ldrh r1, [r5, #0x18] movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _08005022 ldr r2, _0800504C @ =0x02002830 movs r0, #0x28 strb r0, [r2] ldr r1, _08005050 @ =0x02002831 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08005022 movs r4, #0 strb r4, [r1] strb r4, [r2] movs r0, #0x68 bl m4aSongNumStart ldr r1, _08005054 @ =0x0202BEC4 movs r0, #1 strb r0, [r1] ldr r1, _08005058 @ =0x0202BEFC movs r0, #4 strb r0, [r1] ldr r0, _0800505C @ =0x0202BF04 strb r4, [r0] ldr r1, _08005060 @ =0x0202A588 movs r0, #0 strh r0, [r1] movs r0, #0xb strb r0, [r5, #3] _08005022: ldr r2, _0800504C @ =0x02002830 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _08005040 subs r0, r1, #1 strb r0, [r2] lsls r0, r0, #0x18 cmp r0, #0 bgt _08005040 movs r1, #0 strb r1, [r2] ldr r0, _08005050 @ =0x02002831 strb r1, [r0] _08005040: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08005048: .4byte 0x0200B0C0 _0800504C: .4byte 0x02002830 _08005050: .4byte 0x02002831 _08005054: .4byte 0x0202BEC4 _08005058: .4byte 0x0202BEFC _0800505C: .4byte 0x0202BF04 _08005060: .4byte 0x0202A588 thumb_func_start sub_5064 sub_5064: @ 0x08005064 ldr r1, _080050A8 @ =0x0202A1C0 ldr r0, _080050AC @ =0x0202ADE0 movs r2, #0 ldrsh r0, [r0, r2] lsls r2, r0, #1 adds r1, r2, r1 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #4 bne _08005110 ldr r0, _080050B0 @ =0x086A61BC adds r0, r2, r0 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _080050C8 ldr r1, _080050B4 @ =0x0202A588 movs r0, #0 strh r0, [r1] ldr r1, _080050B8 @ =0x0202A55C movs r0, #1 strh r0, [r1] ldr r0, _080050BC @ =0x0202A568 movs r1, #0 strh r1, [r0] strh r1, [r0, #2] ldr r0, _080050C0 @ =0x0201A440 strh r1, [r0] ldr r0, _080050C4 @ =0x0202BF0C strh r1, [r0] b _08005124 .align 2, 0 _080050A8: .4byte 0x0202A1C0 _080050AC: .4byte 0x0202ADE0 _080050B0: .4byte 0x086A61BC _080050B4: .4byte 0x0202A588 _080050B8: .4byte 0x0202A55C _080050BC: .4byte 0x0202A568 _080050C0: .4byte 0x0201A440 _080050C4: .4byte 0x0202BF0C _080050C8: cmp r1, #0x63 bgt _080050F0 ldr r0, _080050E4 @ =0x0202A588 movs r1, #0 strh r1, [r0] ldr r0, _080050E8 @ =0x0202A55C strh r1, [r0] ldr r1, _080050EC @ =0x0202A568 movs r2, #0 movs r0, #1 strh r0, [r1] strh r2, [r1, #2] b _08005124 .align 2, 0 _080050E4: .4byte 0x0202A588 _080050E8: .4byte 0x0202A55C _080050EC: .4byte 0x0202A568 _080050F0: ldr r0, _08005104 @ =0x0202A588 movs r1, #0 strh r1, [r0] ldr r0, _08005108 @ =0x0202A55C strh r1, [r0] ldr r1, _0800510C @ =0x0202A568 movs r0, #0 strh r0, [r1] movs r0, #1 b _08005122 .align 2, 0 _08005104: .4byte 0x0202A588 _08005108: .4byte 0x0202A55C _0800510C: .4byte 0x0202A568 _08005110: ldr r1, _08005128 @ =0x0202A588 movs r0, #0 strh r0, [r1] ldr r1, _0800512C @ =0x0202A55C movs r0, #1 strh r0, [r1] ldr r1, _08005130 @ =0x0202A568 movs r0, #0 strh r0, [r1] _08005122: strh r0, [r1, #2] _08005124: bx lr .align 2, 0 _08005128: .4byte 0x0202A588 _0800512C: .4byte 0x0202A55C _08005130: .4byte 0x0202A568 thumb_func_start sub_5134 sub_5134: @ 0x08005134 ldr r1, _08005160 @ =0x0202A1C0 ldr r0, _08005164 @ =0x0202ADE0 movs r2, #0 ldrsh r0, [r0, r2] lsls r2, r0, #1 adds r1, r2, r1 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #4 bne _08005170 ldr r0, _08005168 @ =0x086A61BC adds r0, r2, r0 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _08005170 cmp r1, #0x63 bgt _0800516C movs r0, #1 b _08005172 .align 2, 0 _08005160: .4byte 0x0202A1C0 _08005164: .4byte 0x0202ADE0 _08005168: .4byte 0x086A61BC _0800516C: movs r0, #2 b _08005172 _08005170: movs r0, #0 _08005172: bx lr thumb_func_start sub_5174 sub_5174: @ 0x08005174 push {r4, lr} ldr r4, _080051BC @ =0x0202C5B0 movs r1, #0 ldrsh r0, [r4, r1] bl sub_6CA0 movs r1, #0 ldrsh r0, [r4, r1] bl sub_6F30 ldr r4, _080051C0 @ =0x0202ADE0 movs r1, #0 ldrsh r0, [r4, r1] bl sub_681C movs r1, #0 ldrsh r0, [r4, r1] bl sub_6F78 movs r1, #0 ldrsh r0, [r4, r1] bl sub_8974 movs r1, #0 ldrsh r0, [r4, r1] bl sub_8A78 ldr r0, _080051C4 @ =0x0202BF00 movs r1, #0 strh r1, [r0] ldr r0, _080051C8 @ =0x0201A448 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080051BC: .4byte 0x0202C5B0 _080051C0: .4byte 0x0202ADE0 _080051C4: .4byte 0x0202BF00 _080051C8: .4byte 0x0201A448 thumb_func_start sub_51CC sub_51CC: @ 0x080051CC push {lr} bl sub_5134 lsls r0, r0, #0x18 cmp r0, #0 bne _080051E8 ldr r0, _080051E4 @ =0x0202ADE0 movs r1, #0 ldrsh r0, [r0, r1] bl sub_6F78 b _080051F2 .align 2, 0 _080051E4: .4byte 0x0202ADE0 _080051E8: ldr r0, _080051F8 @ =0x0202ADE0 movs r1, #0 ldrsh r0, [r0, r1] bl sub_8974 _080051F2: pop {r0} bx r0 .align 2, 0 _080051F8: .4byte 0x0202ADE0 thumb_func_start sub_51FC sub_51FC: @ 0x080051FC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 ldr r4, _08005348 @ =0x0200B3B8 adds r7, r4, #0 adds r7, #0xb8 movs r0, #0xb8 lsls r0, r0, #1 adds r0, r0, r4 mov r8, r0 movs r1, #0x8a lsls r1, r1, #2 adds r1, r1, r4 mov sl, r1 ldr r0, _0800534C @ =0x0201A448 movs r2, #0 ldrsh r0, [r0, r2] movs r2, #0xb8 adds r1, r0, #0 muls r1, r2, r1 movs r3, #0xe6 lsls r3, r3, #2 adds r0, r4, r3 adds r1, r1, r0 str r1, [sp] ldr r0, _08005350 @ =0x0202BEFC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r0, #0 muls r1, r2, r1 ldr r3, _08005354 @ =0x00000C38 adds r0, r4, r3 adds r1, r1, r0 mov sb, r1 ldr r0, _08005358 @ =0x0202BEE0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r0, #0 muls r1, r2, r1 movs r3, #0xfd lsls r3, r3, #4 adds r0, r4, r3 adds r1, r1, r0 str r1, [sp, #4] ldr r0, _0800535C @ =0x02019C28 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #1 ldr r0, _08005360 @ =0x0202C5AC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #0x19 adds r1, r1, r0 adds r0, r1, #0 muls r0, r2, r0 adds r0, r0, r4 str r0, [sp, #8] movs r0, #1 strh r0, [r4] strh r0, [r7] ldr r0, _08005364 @ =0x0202A55C ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r1, _08005368 @ =0x0202A568 ldrh r0, [r1] mov r2, sl strh r0, [r2] ldrh r0, [r1, #2] ldr r3, _0800536C @ =0x0200B698 strh r0, [r3] ldr r0, _08005370 @ =0x0202A588 ldrh r0, [r0] ldr r1, [sp] strh r0, [r1] ldr r0, _08005374 @ =0x0202BEC4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r2, sb strh r0, [r2] ldr r0, _08005378 @ =0x0202BF04 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r3, [sp, #4] strh r0, [r3] ldr r0, _0800537C @ =0x0202C590 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, _08005380 @ =0x0200C4F8 strh r0, [r1] ldr r0, _08005384 @ =0x0201C1B4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r2, [sp, #8] strh r0, [r2] ldr r0, _08005388 @ =0x086A6148 movs r1, #0x1d adds r2, r4, #0 bl sub_358 ldr r0, _0800538C @ =0x0201A4F0 ldrh r0, [r0] adds r0, #0x14 strh r0, [r4, #2] ldr r0, _08005390 @ =0x0202A57C movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #4 adds r0, #0x54 strh r0, [r4, #4] adds r6, r4, #0 adds r6, #8 ldr r5, _08005394 @ =0x03005000 ldrh r1, [r4, #8] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r1, #5] movs r2, #0xc orrs r0, r2 strb r0, [r1, #5] ldrh r2, [r4, #8] lsls r2, r2, #3 adds r2, r2, r5 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r4, r3] adds r1, r1, r0 ldr r3, _08005398 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0800539C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] ldr r1, _080053A0 @ =0x0202ADE0 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0xc7 bgt _080053A8 ldr r4, _080053A4 @ =0x0202BF08 movs r1, #3 bl __divsi3 adds r0, #0x56 strh r0, [r4] adds r1, r4, #0 b _080053AE .align 2, 0 _08005348: .4byte 0x0200B3B8 _0800534C: .4byte 0x0201A448 _08005350: .4byte 0x0202BEFC _08005354: .4byte 0x00000C38 _08005358: .4byte 0x0202BEE0 _0800535C: .4byte 0x02019C28 _08005360: .4byte 0x0202C5AC _08005364: .4byte 0x0202A55C _08005368: .4byte 0x0202A568 _0800536C: .4byte 0x0200B698 _08005370: .4byte 0x0202A588 _08005374: .4byte 0x0202BEC4 _08005378: .4byte 0x0202BF04 _0800537C: .4byte 0x0202C590 _08005380: .4byte 0x0200C4F8 _08005384: .4byte 0x0201C1B4 _08005388: .4byte 0x086A6148 _0800538C: .4byte 0x0201A4F0 _08005390: .4byte 0x0202A57C _08005394: .4byte 0x03005000 _08005398: .4byte 0x000001FF _0800539C: .4byte 0xFFFFFE00 _080053A0: .4byte 0x0202ADE0 _080053A4: .4byte 0x0202BF08 _080053A8: ldr r1, _08005564 @ =0x0202BF08 movs r0, #0x98 strh r0, [r1] _080053AE: movs r0, #0xd strh r0, [r7, #2] ldrh r0, [r1] strh r0, [r7, #4] adds r6, r7, #0 adds r6, #8 ldr r4, _08005568 @ =0x03005000 ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r1, #5] movs r2, #0xc orrs r0, r2 strb r0, [r1, #5] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r6, r3] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r3, _0800556C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08005570 @ =0xFFFFFE00 mov ip, r0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] mov r1, r8 ldrh r0, [r1] cmp r0, #1 bne _0800545E movs r0, #0x24 strh r0, [r1, #2] strh r0, [r1, #4] adds r5, r4, #0 mov r4, r8 adds r4, #8 movs r6, #5 _08005410: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r4, r2] mov r7, r8 movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0800556C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 mov r2, r8 ldrb r0, [r2, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _08005410 _0800545E: mov r4, sl ldrh r0, [r4] cmp r0, #1 bne _08005536 movs r0, #0x24 strh r0, [r4, #2] movs r0, #0x1c strh r0, [r4, #4] movs r6, #0 ldr r7, _08005574 @ =0x0202BF0C mov r8, r7 ldr r7, _08005568 @ =0x03005000 mov r5, sl adds r5, #8 ldr r0, _08005570 @ =0xFFFFFE00 mov ip, r0 _0800547E: ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r4, [r5] lsls r4, r4, #3 adds r4, r4, r7 lsls r3, r6, #1 ldr r1, _08005578 @ =0x0202BF14 movs r0, #0 ldrsh r2, [r1, r0] lsls r0, r2, #3 adds r3, r3, r0 ldr r1, _0800557C @ =0x086A5DDA adds r3, r3, r1 str r3, [sp, #0x14] mov r3, r8 movs r0, #0 ldrsh r1, [r3, r0] lsls r1, r1, #1 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 ldr r2, _08005580 @ =0x086A5DF2 adds r1, r1, r2 ldrh r1, [r1] ldr r3, [sp, #0x14] ldrh r3, [r3] adds r1, r1, r3 ldr r2, _08005584 @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #4] ldr r0, _08005588 @ =0xFFFFFC00 ands r0, r2 orrs r0, r1 strh r0, [r4, #4] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r4, #2 ldrsh r1, [r5, r4] mov r2, sl movs r4, #2 ldrsh r0, [r2, r4] adds r1, r1, r0 ldr r2, _0800556C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 mov r3, sl ldrb r0, [r3, #4] ldrb r4, [r5, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #8 adds r6, #1 cmp r6, #3 ble _0800547E ldr r7, _0800558C @ =0x0201A440 ldrh r0, [r7] adds r0, #1 strh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _08005536 movs r1, #0 strh r1, [r7] mov r2, r8 ldrh r0, [r2] adds r0, #1 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _08005536 strh r1, [r2] _08005536: ldr r3, _08005590 @ =0x0200B698 ldrh r0, [r3] cmp r0, #1 beq _08005540 b _0800568A _08005540: ldr r1, _08005594 @ =0x086A6356 ldr r0, _08005598 @ =0x0202ADE0 movs r4, #0 ldrsh r0, [r0, r4] lsls r0, r0, #1 adds r0, r0, r1 movs r7, #0 ldrsh r1, [r0, r7] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _0800559C movs r0, #1 str r0, [sp, #0x10] movs r1, #0x24 str r1, [sp, #0xc] b _080055A4 .align 2, 0 _08005564: .4byte 0x0202BF08 _08005568: .4byte 0x03005000 _0800556C: .4byte 0x000001FF _08005570: .4byte 0xFFFFFE00 _08005574: .4byte 0x0202BF0C _08005578: .4byte 0x0202BF14 _0800557C: .4byte 0x086A5DDA _08005580: .4byte 0x086A5DF2 _08005584: .4byte 0x000003FF _08005588: .4byte 0xFFFFFC00 _0800558C: .4byte 0x0201A440 _08005590: .4byte 0x0200B698 _08005594: .4byte 0x086A6356 _08005598: .4byte 0x0202ADE0 _0800559C: movs r2, #2 str r2, [sp, #0x10] movs r3, #0x30 str r3, [sp, #0xc] _080055A4: movs r0, #0x30 ldr r4, _08005760 @ =0x0200B698 strh r0, [r4, #2] movs r0, #0x28 strh r0, [r4, #4] movs r6, #0 ldr r7, _08005764 @ =0x0202BF0C mov r8, r7 ldr r0, [sp, #0x10] lsls r0, r0, #3 mov sl, r0 ldr r5, _08005768 @ =0x03005000 adds r4, #8 movs r0, #0x66 ldr r2, [sp, #0x10] adds r1, r2, #0 muls r1, r0, r1 mov ip, r1 _080055C8: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 lsls r2, r6, #1 add r2, sl ldr r7, _0800576C @ =0x086A5DDA adds r2, r2, r7 mov r1, r8 movs r7, #0 ldrsh r0, [r1, r7] lsls r0, r0, #1 add r0, ip ldr r1, _08005770 @ =0x086A5EE2 adds r0, r0, r1 ldrh r1, [r0] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _08005774 @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #4] ldr r0, _08005778 @ =0xFFFFFC00 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r4, r7] ldr r2, _08005760 @ =0x0200B698 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800577C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08005780 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, _08005760 @ =0x0200B698 ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 adds r6, #1 cmp r6, #3 ble _080055C8 ldr r0, _08005784 @ =0x0201A440 ldrh r1, [r0] adds r1, #1 strh r1, [r0] mov r2, r8 movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #1 movs r2, #0x66 ldr r4, [sp, #0x10] muls r2, r4, r2 adds r0, r0, r2 ldr r7, _08005788 @ =0x086A6014 adds r0, r0, r7 lsls r1, r1, #0x10 asrs r1, r1, #0x10 movs r2, #0 ldrsh r0, [r0, r2] cmp r1, r0 ble _0800568A movs r1, #0 ldr r3, _08005784 @ =0x0201A440 strh r1, [r3] mov r4, r8 ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r7, [sp, #0xc] cmp r0, r7 ble _0800568A strh r1, [r4] _0800568A: ldr r1, [sp] ldrh r0, [r1] cmp r0, #1 bne _0800573C movs r0, #0x24 strh r0, [r1, #2] movs r0, #0x40 strh r0, [r1, #4] ldr r2, _0800578C @ =0x086A6148 ldr r1, _08005790 @ =0x0201A448 movs r3, #0 ldrsh r0, [r1, r3] adds r0, #5 lsls r0, r0, #2 adds r0, r0, r2 ldr r5, [r0] movs r6, #0 mov r8, r1 ldr r4, _08005794 @ =0x0202BF00 mov ip, r4 ldrh r7, [r5] cmp r6, r7 bge _08005716 ldr r0, _08005780 @ =0xFFFFFE00 mov sl, r0 ldr r4, [sp] adds r4, #8 _080056C0: ldrh r2, [r4] lsls r2, r2, #3 ldr r1, _08005768 @ =0x03005000 adds r2, r2, r1 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 ldr r2, _08005768 @ =0x03005000 adds r3, r3, r2 movs r7, #2 ldrsh r1, [r4, r7] ldr r2, [sp] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800577C @ =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 ldr r3, _08005768 @ =0x03005000 adds r1, r1, r3 ldr r7, [sp] ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r6, #1 ldrh r3, [r5] cmp r6, r3 blt _080056C0 _08005716: mov r4, ip ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0800573C movs r1, #0 strh r1, [r4] mov r7, r8 ldrh r0, [r7] adds r0, #1 strh r0, [r7] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb ble _0800573C strh r1, [r7] _0800573C: mov r1, sb ldrh r0, [r1] cmp r0, #1 bne _08005818 ldr r0, _08005798 @ =0x0202BEFC movs r1, #0 ldrsb r1, [r0, r1] adds r2, r0, #0 cmp r1, #0 beq _08005754 cmp r1, #4 bne _0800579C _08005754: movs r0, #0x78 mov r3, sb strh r0, [r3, #2] movs r0, #0x64 strh r0, [r3, #4] b _080057A6 .align 2, 0 _08005760: .4byte 0x0200B698 _08005764: .4byte 0x0202BF0C _08005768: .4byte 0x03005000 _0800576C: .4byte 0x086A5DDA _08005770: .4byte 0x086A5EE2 _08005774: .4byte 0x000003FF _08005778: .4byte 0xFFFFFC00 _0800577C: .4byte 0x000001FF _08005780: .4byte 0xFFFFFE00 _08005784: .4byte 0x0201A440 _08005788: .4byte 0x086A6014 _0800578C: .4byte 0x086A6148 _08005790: .4byte 0x0201A448 _08005794: .4byte 0x0202BF00 _08005798: .4byte 0x0202BEFC _0800579C: movs r0, #0x78 mov r4, sb strh r0, [r4, #2] movs r0, #0x50 strh r0, [r4, #4] _080057A6: ldr r1, _0800597C @ =0x086A6148 movs r0, #0 ldrsb r0, [r2, r0] adds r0, #0x11 lsls r0, r0, #2 adds r0, r0, r1 ldr r5, [r0] movs r6, #0 ldrh r7, [r5] cmp r6, r7 bge _08005818 ldr r0, _08005980 @ =0x03005000 mov ip, r0 movs r1, #0xd rsbs r1, r1, #0 mov sl, r1 ldr r2, _08005984 @ =0xFFFFFE00 mov r8, r2 mov r4, sb adds r4, #8 _080057CE: ldrh r1, [r4] lsls r1, r1, #3 add r1, ip ldrb r2, [r1, #5] mov r0, sl ands r0, r2 strb r0, [r1, #5] ldrh r3, [r4] lsls r3, r3, #3 add r3, ip movs r7, #2 ldrsh r1, [r4, r7] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08005988 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r3, sb ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 adds r6, #1 ldrh r0, [r5] cmp r6, r0 blt _080057CE _08005818: ldr r1, [sp, #4] ldrh r0, [r1] cmp r0, #1 bne _0800588A movs r0, #0x9e strh r0, [r1, #2] movs r0, #0x94 strh r0, [r1, #4] ldr r1, _0800597C @ =0x086A6148 ldr r0, _0800598C @ =0x0202BEE0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #0x16 lsls r0, r0, #2 adds r0, r0, r1 ldr r5, [r0] movs r6, #0 ldrh r2, [r5] cmp r6, r2 bge _0800588A ldr r3, _08005980 @ =0x03005000 mov sl, r3 ldr r4, _08005984 @ =0xFFFFFE00 mov r8, r4 ldr r4, [sp, #4] adds r4, #8 _0800584E: ldrh r3, [r4] lsls r3, r3, #3 add r3, sl movs r7, #2 ldrsh r1, [r4, r7] ldr r2, [sp, #4] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08005988 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sl ldr r3, [sp, #4] ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 adds r6, #1 ldrh r0, [r5] cmp r6, r0 blt _0800584E _0800588A: ldr r1, _08005990 @ =0x0200C4F8 ldrh r0, [r1] cmp r0, #1 bne _080058EE movs r0, #0xa8 strh r0, [r1, #2] movs r0, #0x54 strh r0, [r1, #4] ldr r5, _08005980 @ =0x03005000 ldr r2, _08005984 @ =0xFFFFFE00 mov r8, r2 adds r4, r1, #0 adds r4, #8 movs r6, #2 _080058A6: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r5 ldrb r0, [r2, #5] movs r1, #0xc orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r4, r7] ldr r2, _08005990 @ =0x0200C4F8 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08005988 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, _08005990 @ =0x0200C4F8 ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _080058A6 _080058EE: ldr r1, [sp, #8] ldrh r0, [r1] cmp r0, #1 bne _08005932 movs r0, #0x78 strh r0, [r1, #2] movs r0, #0x84 strh r0, [r1, #4] adds r6, r1, #0 adds r6, #8 ldrh r2, [r1, #8] lsls r2, r2, #3 ldr r3, _08005980 @ =0x03005000 adds r2, r2, r3 movs r4, #2 ldrsh r1, [r6, r4] adds r1, #0x78 ldr r7, _08005988 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08005984 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldr r0, [sp, #8] ldrh r1, [r0, #8] lsls r1, r1, #3 ldr r2, _08005980 @ =0x03005000 adds r1, r1, r2 ldrb r0, [r0, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _08005932: ldr r3, _08005994 @ =0x0202BE20 ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc ble _0800595A movs r0, #0 strh r0, [r3] ldr r2, _08005998 @ =0x0201A4F0 ldrh r1, [r2] movs r0, #1 subs r0, r0, r1 strh r0, [r2] ldr r2, _0800598C @ =0x0202BEE0 ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 strb r0, [r2] _0800595A: movs r0, #0 ldr r4, [sp] strh r0, [r4] mov r7, sb strh r0, [r7] ldr r1, [sp, #4] strh r0, [r1] ldr r2, [sp, #8] strh r0, [r2] add sp, #0x18 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800597C: .4byte 0x086A6148 _08005980: .4byte 0x03005000 _08005984: .4byte 0xFFFFFE00 _08005988: .4byte 0x000001FF _0800598C: .4byte 0x0202BEE0 _08005990: .4byte 0x0200C4F8 _08005994: .4byte 0x0202BE20 _08005998: .4byte 0x0201A4F0 thumb_func_start sub_599C sub_599C: @ 0x0800599C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r7, _08005CFC @ =0x0200B3B8 adds r6, r7, #0 adds r6, #0xb8 ldr r0, _08005D00 @ =0x0201A448 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0xb8 adds r1, r0, #0 muls r1, r2, r1 movs r3, #0xe6 lsls r3, r3, #2 adds r0, r7, r3 adds r1, r1, r0 str r1, [sp] ldr r0, _08005D04 @ =0x0202BEFC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r1, r0, #0 muls r1, r2, r1 ldr r4, _08005D08 @ =0x00000C38 adds r0, r7, r4 adds r1, r1, r0 str r1, [sp, #4] movs r2, #0 movs r0, #1 strh r0, [r7] strh r0, [r6] ldr r0, _08005D0C @ =0x0202A55C ldrh r0, [r0] ldr r5, _08005D10 @ =0x0200B528 strh r0, [r5] ldr r1, _08005D14 @ =0x0202A568 ldrh r0, [r1] ldr r3, _08005D18 @ =0x0200B5E0 strh r0, [r3] ldrh r0, [r1, #2] ldr r4, _08005D1C @ =0x0200B698 strh r0, [r4] ldr r5, [sp] strh r2, [r5] ldr r0, _08005D20 @ =0x0202BEC4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, [sp, #4] strh r0, [r1] ldr r0, _08005D24 @ =0x0202C590 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r2, _08005D28 @ =0x0200C4F8 strh r0, [r2] ldr r0, _08005D2C @ =0x086A6148 movs r1, #0x1d adds r2, r7, #0 bl sub_2414 ldr r0, _08005D30 @ =0x0201A4F0 ldrh r0, [r0] adds r0, #0x14 strh r0, [r7, #2] ldr r0, _08005D34 @ =0x0202A57C movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #4 adds r0, #0x54 strh r0, [r7, #4] adds r5, r7, #0 adds r5, #8 ldr r4, _08005D38 @ =0x03005000 mov sl, r4 ldrh r1, [r7, #8] lsls r1, r1, #3 add r1, sl ldrb r2, [r1, #5] movs r4, #0xd rsbs r4, r4, #0 adds r0, r4, #0 ands r0, r2 movs r2, #8 mov sb, r2 mov r3, sb orrs r0, r3 strb r0, [r1, #5] ldrh r2, [r7, #8] lsls r2, r2, #3 add r2, sl movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r0, _08005D3C @ =0x000001FF mov r8, r0 mov r3, r8 ands r1, r3 ldrh r3, [r2, #2] ldr r0, _08005D40 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r5, _08005D44 @ =0x0202BF08 ldr r0, _08005D48 @ =0x0202ADE0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #3 bl __divsi3 adds r0, #0x56 strh r0, [r5] movs r1, #0xd strh r1, [r6, #2] strh r0, [r6, #4] adds r5, r7, #0 adds r5, #0xc0 ldrh r0, [r5] lsls r0, r0, #3 add r0, sl ldrb r1, [r0, #5] ands r4, r1 mov r2, sb orrs r4, r2 strb r4, [r0, #5] ldrh r2, [r5] lsls r2, r2, #3 add r2, sl movs r3, #2 ldrsh r1, [r5, r3] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08005D40 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sl ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r1, _08005D10 @ =0x0200B528 ldrh r0, [r1] cmp r0, #1 bne _08005B30 movs r0, #0x24 strh r0, [r1, #2] strh r0, [r1, #4] mov r4, sl ldr r2, _08005D40 @ =0xFFFFFE00 mov r8, r2 movs r3, #0xbc lsls r3, r3, #1 adds r6, r7, r3 movs r7, #5 _08005AF6: ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r4 movs r5, #2 ldrsh r1, [r6, r5] ldr r2, _08005D10 @ =0x0200B528 movs r5, #2 ldrsh r0, [r2, r5] adds r1, r1, r0 ldr r2, _08005D3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldr r3, _08005D10 @ =0x0200B528 ldrb r0, [r3, #4] ldrb r5, [r6, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #8 subs r7, #1 cmp r7, #0 bge _08005AF6 _08005B30: ldr r6, _08005D18 @ =0x0200B5E0 ldrh r0, [r6] cmp r0, #1 bne _08005BD4 movs r0, #0x24 strh r0, [r6, #2] movs r0, #0x1c strh r0, [r6, #4] movs r7, #0 ldr r0, _08005D4C @ =0x0202BF0C mov ip, r0 ldr r6, _08005D38 @ =0x03005000 ldr r1, _08005D50 @ =0x086A5DF2 mov sb, r1 ldr r2, _08005D54 @ =0xFFFFFC00 mov sl, r2 ldr r5, _08005D18 @ =0x0200B5E0 adds r5, #8 ldr r3, _08005D40 @ =0xFFFFFE00 mov r8, r3 _08005B58: ldrh r4, [r5] lsls r4, r4, #3 adds r4, r4, r6 lsls r3, r7, #1 ldr r0, _08005D58 @ =0x0202BF14 movs r1, #0 ldrsh r2, [r0, r1] lsls r0, r2, #3 adds r3, r3, r0 ldr r0, _08005D5C @ =0x086A5DDA adds r3, r3, r0 str r3, [sp, #8] mov r3, ip movs r0, #0 ldrsh r1, [r3, r0] lsls r1, r1, #1 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #3 adds r1, r1, r0 add r1, sb ldrh r1, [r1] ldr r2, [sp, #8] ldrh r2, [r2] adds r1, r1, r2 ldr r3, _08005D60 @ =0x000003FF adds r0, r3, #0 ands r1, r0 ldrh r2, [r4, #4] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r4, #4] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r4, #2 ldrsh r1, [r5, r4] ldr r2, _08005D18 @ =0x0200B5E0 movs r4, #2 ldrsh r0, [r2, r4] adds r1, r1, r0 ldr r2, _08005D3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldr r3, _08005D18 @ =0x0200B5E0 ldrb r0, [r3, #4] ldrb r4, [r5, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #8 adds r7, #1 cmp r7, #3 ble _08005B58 _08005BD4: ldr r5, _08005D1C @ =0x0200B698 ldrh r0, [r5] cmp r0, #1 bne _08005C68 movs r0, #0x30 strh r0, [r5, #2] movs r0, #0x28 strh r0, [r5, #4] ldr r6, _08005D4C @ =0x0202BF0C mov ip, r6 ldr r0, _08005D5C @ =0x086A5DDA ldr r1, _08005D64 @ =0x086A5E1A mov sl, r1 adds r4, r5, #0 adds r4, #8 adds r5, r0, #0 adds r5, #8 ldr r2, _08005D54 @ =0xFFFFFC00 mov sb, r2 ldr r3, _08005D40 @ =0xFFFFFE00 mov r8, r3 movs r7, #3 _08005C00: ldrh r3, [r4] lsls r3, r3, #3 ldr r6, _08005D38 @ =0x03005000 adds r3, r3, r6 mov r1, ip movs r2, #0 ldrsh r0, [r1, r2] lsls r0, r0, #1 add r0, sl ldrh r1, [r0] ldrh r6, [r5] adds r1, r1, r6 ldr r2, _08005D60 @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] ldrh r3, [r4] lsls r3, r3, #3 ldr r6, _08005D38 @ =0x03005000 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] ldr r2, _08005D1C @ =0x0200B698 movs r6, #2 ldrsh r0, [r2, r6] adds r1, r1, r0 ldr r2, _08005D3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 ldr r3, _08005D38 @ =0x03005000 adds r1, r1, r3 ldr r6, _08005D1C @ =0x0200B698 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #2 subs r7, #1 cmp r7, #0 bge _08005C00 _08005C68: ldr r3, [sp] ldrh r0, [r3] cmp r0, #1 bne _08005CD8 movs r0, #0x24 strh r0, [r3, #2] movs r0, #0x40 strh r0, [r3, #4] ldr r1, _08005D2C @ =0x086A6148 ldr r0, _08005D00 @ =0x0201A448 movs r4, #0 ldrsh r0, [r0, r4] adds r0, #5 lsls r0, r0, #2 adds r0, r0, r1 ldr r5, [r0] movs r7, #0 ldrh r6, [r5] cmp r7, r6 bge _08005CD8 ldr r0, _08005D38 @ =0x03005000 mov sb, r0 ldr r1, _08005D40 @ =0xFFFFFE00 mov r8, r1 adds r4, r3, #0 adds r4, #8 _08005C9C: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r2, #2 ldrsh r1, [r4, r2] ldr r6, [sp] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r6, _08005D3C @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sb ldr r2, [sp] ldrb r0, [r2, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 adds r7, #1 ldrh r6, [r5] cmp r7, r6 blt _08005C9C _08005CD8: ldr r1, [sp, #4] ldrh r0, [r1] cmp r0, #1 bne _08005DD0 ldr r0, _08005D04 @ =0x0202BEFC movs r1, #0 ldrsb r1, [r0, r1] adds r2, r0, #0 cmp r1, #0 beq _08005CF0 cmp r1, #4 bne _08005D68 _08005CF0: movs r0, #0x78 ldr r3, [sp, #4] strh r0, [r3, #2] movs r0, #0x64 strh r0, [r3, #4] b _08005D72 .align 2, 0 _08005CFC: .4byte 0x0200B3B8 _08005D00: .4byte 0x0201A448 _08005D04: .4byte 0x0202BEFC _08005D08: .4byte 0x00000C38 _08005D0C: .4byte 0x0202A55C _08005D10: .4byte 0x0200B528 _08005D14: .4byte 0x0202A568 _08005D18: .4byte 0x0200B5E0 _08005D1C: .4byte 0x0200B698 _08005D20: .4byte 0x0202BEC4 _08005D24: .4byte 0x0202C590 _08005D28: .4byte 0x0200C4F8 _08005D2C: .4byte 0x086A6148 _08005D30: .4byte 0x0201A4F0 _08005D34: .4byte 0x0202A57C _08005D38: .4byte 0x03005000 _08005D3C: .4byte 0x000001FF _08005D40: .4byte 0xFFFFFE00 _08005D44: .4byte 0x0202BF08 _08005D48: .4byte 0x0202ADE0 _08005D4C: .4byte 0x0202BF0C _08005D50: .4byte 0x086A5DF2 _08005D54: .4byte 0xFFFFFC00 _08005D58: .4byte 0x0202BF14 _08005D5C: .4byte 0x086A5DDA _08005D60: .4byte 0x000003FF _08005D64: .4byte 0x086A5E1A _08005D68: movs r0, #0x78 ldr r4, [sp, #4] strh r0, [r4, #2] movs r0, #0x50 strh r0, [r4, #4] _08005D72: ldr r1, _08005E4C @ =0x086A6148 movs r0, #0 ldrsb r0, [r2, r0] adds r0, #0x11 lsls r0, r0, #2 adds r0, r0, r1 ldr r5, [r0] movs r7, #0 ldrh r6, [r5] cmp r7, r6 bge _08005DD0 ldr r0, _08005E50 @ =0x03005000 mov sb, r0 ldr r1, _08005E54 @ =0xFFFFFE00 mov r8, r1 ldr r4, [sp, #4] adds r4, #8 _08005D94: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r2, #2 ldrsh r1, [r4, r2] ldr r6, [sp, #4] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r6, _08005E58 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sb ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 adds r7, #1 ldrh r6, [r5] cmp r7, r6 blt _08005D94 _08005DD0: ldr r1, _08005E5C @ =0x0200C4F8 ldrh r0, [r1] cmp r0, #1 bne _08005E34 movs r0, #0xa8 strh r0, [r1, #2] movs r0, #0x54 strh r0, [r1, #4] ldr r5, _08005E50 @ =0x03005000 ldr r2, _08005E54 @ =0xFFFFFE00 mov r8, r2 adds r4, r1, #0 adds r4, #8 movs r7, #2 _08005DEC: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r5 ldrb r0, [r2, #5] movs r1, #0xc orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r6, #2 ldrsh r1, [r4, r6] ldr r2, _08005E5C @ =0x0200C4F8 movs r6, #2 ldrsh r0, [r2, r6] adds r1, r1, r0 ldr r2, _08005E58 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, _08005E5C @ =0x0200C4F8 ldrb r0, [r3, #4] ldrb r6, [r4, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #8 subs r7, #1 cmp r7, #0 bge _08005DEC _08005E34: movs r0, #0 ldr r1, [sp, #4] strh r0, [r1] add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08005E4C: .4byte 0x086A6148 _08005E50: .4byte 0x03005000 _08005E54: .4byte 0xFFFFFE00 _08005E58: .4byte 0x000001FF _08005E5C: .4byte 0x0200C4F8 thumb_func_start sub_5E60 sub_5E60: @ 0x08005E60 ldr r1, _08005E84 @ =0x0202C5F0 movs r2, #0 ldr r0, _08005E88 @ =0x0000DDDD strh r0, [r1] ldr r0, _08005E8C @ =0x0202C5B4 movs r1, #1 strh r1, [r0] ldr r0, _08005E90 @ =0x0201C180 strh r1, [r0] ldr r0, _08005E94 @ =0x0201B128 strb r2, [r0] ldr r0, _08005E98 @ =0x0201C1BC strb r2, [r0] ldr r0, _08005E9C @ =0x0202C544 strb r2, [r0] ldr r0, _08005EA0 @ =0x0202BECC strb r2, [r0] bx lr .align 2, 0 _08005E84: .4byte 0x0202C5F0 _08005E88: .4byte 0x0000DDDD _08005E8C: .4byte 0x0202C5B4 _08005E90: .4byte 0x0201C180 _08005E94: .4byte 0x0201B128 _08005E98: .4byte 0x0201C1BC _08005E9C: .4byte 0x0202C544 _08005EA0: .4byte 0x0202BECC thumb_func_start sub_5EA4 sub_5EA4: @ 0x08005EA4 push {lr} ldr r0, _08005EB4 @ =0x0202BF20 ldrb r0, [r0] cmp r0, #0 beq _08005EB8 bl sub_639C b _08005EBC .align 2, 0 _08005EB4: .4byte 0x0202BF20 _08005EB8: bl sub_65DC _08005EBC: lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0x10 pop {r1} bx r1 thumb_func_start sub_5EC8 sub_5EC8: @ 0x08005EC8 push {lr} ldr r0, _08005ED8 @ =0x0202BF20 ldrb r0, [r0] cmp r0, #0 beq _08005EDC bl sub_5EEC b _08005EE0 .align 2, 0 _08005ED8: .4byte 0x0202BF20 _08005EDC: bl sub_6144 _08005EE0: lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0x10 pop {r1} bx r1 thumb_func_start sub_5EEC sub_5EEC: @ 0x08005EEC push {r4, r5, lr} ldr r0, _08005F0C @ =0x0201B128 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08005F5C ldr r0, _08005F10 @ =0x0201C1BC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08005F14 cmp r0, #1 beq _08005F4C b _08006136 .align 2, 0 _08005F0C: .4byte 0x0201B128 _08005F10: .4byte 0x0201C1BC _08005F14: ldr r0, _08005F28 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08005F34 ldr r1, _08005F2C @ =0x0202C5F0 ldr r0, _08005F30 @ =0x0000FEFE strh r0, [r1] b _08006136 .align 2, 0 _08005F28: .4byte 0x0200B0C0 _08005F2C: .4byte 0x0202C5F0 _08005F30: .4byte 0x0000FEFE _08005F34: ldr r1, _08005F48 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _08005F3C: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08005F3C b _08006136 .align 2, 0 _08005F48: .4byte 0x0202C5F0 _08005F4C: ldr r1, _08005F54 @ =0x0202C5F0 ldr r0, _08005F58 @ =0x0000ECEC strh r0, [r1] b _08006136 .align 2, 0 _08005F54: .4byte 0x0202C5F0 _08005F58: .4byte 0x0000ECEC _08005F5C: ldr r0, _08005F78 @ =0x0201C180 ldrh r1, [r0] adds r5, r0, #0 cmp r1, #7 bhi _08005F84 ldr r1, _08005F7C @ =0x0202C5F0 ldr r2, _08005F80 @ =0x0000DDDD adds r0, r1, #0 adds r0, #0xe _08005F6E: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08005F6E b _08006130 .align 2, 0 _08005F78: .4byte 0x0201C180 _08005F7C: .4byte 0x0202C5F0 _08005F80: .4byte 0x0000DDDD _08005F84: cmp r1, #0xf bls _08005F8A b _08006120 _08005F8A: ldrh r2, [r5] adds r1, r2, #0 subs r1, #8 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #0x12 lsrs r0, r0, #0x10 mov ip, r0 ldr r4, _08006118 @ =0x0202C5F0 strh r2, [r4] ldr r3, _0800611C @ =0x0202A1C0 lsls r2, r0, #1 adds r2, r2, r3 adds r0, #1 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #2 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #2] mov r2, ip adds r2, #4 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #5 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #6 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #7 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #4] mov r2, ip adds r2, #8 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #9 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0xa lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0xb lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #6] mov r2, ip adds r2, #0xc lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0xd lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0xe lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0xf lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #8] mov r2, ip adds r2, #0x10 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0x11 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0x12 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0x13 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #0xa] mov r2, ip adds r2, #0x14 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0x15 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0x16 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0x17 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #0xc] mov r2, ip adds r2, #0x18 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0x19 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0x1a lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0x1b lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #0xe] b _08006130 .align 2, 0 _08006118: .4byte 0x0202C5F0 _0800611C: .4byte 0x0202A1C0 _08006120: ldr r1, _08006140 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _08006128: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08006128 _08006130: ldrh r0, [r5] adds r0, #1 strh r0, [r5] _08006136: movs r0, #0 pop {r4, r5} pop {r1} bx r1 .align 2, 0 _08006140: .4byte 0x0202C5F0 thumb_func_start sub_6144 sub_6144: @ 0x08006144 push {r4, r5, lr} ldr r0, _08006164 @ =0x0201B128 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080061B4 ldr r0, _08006168 @ =0x0202C544 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0800616C cmp r0, #1 beq _080061A4 b _0800638E .align 2, 0 _08006164: .4byte 0x0201B128 _08006168: .4byte 0x0202C544 _0800616C: ldr r0, _08006180 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800618C ldr r1, _08006184 @ =0x0202C5F0 ldr r0, _08006188 @ =0x0000FEFE strh r0, [r1] b _0800638E .align 2, 0 _08006180: .4byte 0x0200B0C0 _08006184: .4byte 0x0202C5F0 _08006188: .4byte 0x0000FEFE _0800618C: ldr r1, _080061A0 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _08006194: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08006194 b _0800638E .align 2, 0 _080061A0: .4byte 0x0202C5F0 _080061A4: ldr r1, _080061AC @ =0x0202C5F0 ldr r0, _080061B0 @ =0x0000ECEC strh r0, [r1] b _0800638E .align 2, 0 _080061AC: .4byte 0x0202C5F0 _080061B0: .4byte 0x0000ECEC _080061B4: ldr r0, _080061D0 @ =0x0201C180 ldrh r1, [r0] adds r5, r0, #0 cmp r1, #7 bhi _080061DC ldr r1, _080061D4 @ =0x0202C5F0 ldr r2, _080061D8 @ =0x0000DDDD adds r0, r1, #0 adds r0, #0xe _080061C6: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _080061C6 b _08006388 .align 2, 0 _080061D0: .4byte 0x0201C180 _080061D4: .4byte 0x0202C5F0 _080061D8: .4byte 0x0000DDDD _080061DC: cmp r1, #0xf bls _080061E2 b _08006378 _080061E2: ldrh r2, [r5] adds r1, r2, #0 subs r1, #8 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #0x12 lsrs r0, r0, #0x10 mov ip, r0 ldr r4, _08006370 @ =0x0202C5F0 strh r2, [r4] ldr r3, _08006374 @ =0x0202A1C0 lsls r2, r0, #1 adds r2, r2, r3 adds r0, #1 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #2 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #2] mov r2, ip adds r2, #4 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #5 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #6 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #7 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #4] mov r2, ip adds r2, #8 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #9 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0xa lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0xb lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #6] mov r2, ip adds r2, #0xc lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0xd lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0xe lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0xf lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #8] mov r2, ip adds r2, #0x10 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0x11 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0x12 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0x13 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #0xa] mov r2, ip adds r2, #0x14 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0x15 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0x16 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0x17 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #0xc] mov r2, ip adds r2, #0x18 lsls r2, r2, #1 adds r2, r2, r3 mov r0, ip adds r0, #0x19 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] lsls r1, r1, #4 ldrh r0, [r2] orrs r1, r0 mov r0, ip adds r0, #0x1a lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #8 orrs r1, r0 mov r0, ip adds r0, #0x1b lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] lsls r0, r0, #0xc orrs r1, r0 strh r1, [r4, #0xe] b _08006388 .align 2, 0 _08006370: .4byte 0x0202C5F0 _08006374: .4byte 0x0202A1C0 _08006378: ldr r1, _08006398 @ =0x0202C5F0 movs r2, #0 adds r0, r1, #0 adds r0, #0xe _08006380: strh r2, [r0] subs r0, #2 cmp r0, r1 bge _08006380 _08006388: ldrh r0, [r5] adds r0, #1 strh r0, [r5] _0800638E: movs r0, #0 pop {r4, r5} pop {r1} bx r1 .align 2, 0 _08006398: .4byte 0x0202C5F0 thumb_func_start sub_639C sub_639C: @ 0x0800639C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0x38 ldr r4, _080063C0 @ =0x0201B128 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _08006438 ldr r3, _080063C4 @ =0x0201C1BC movs r1, #0 ldrsb r1, [r3, r1] cmp r1, #0 beq _080063C8 cmp r1, #1 beq _080063E8 b _080065AA .align 2, 0 _080063C0: .4byte 0x0201B128 _080063C4: .4byte 0x0201C1BC _080063C8: ldr r2, _080063E0 @ =0x0201A4D0 ldrh r0, [r2] ldr r1, _080063E4 @ =0x0000FEFE cmp r0, r1 beq _080063DA ldrh r0, [r2, #2] cmp r0, r1 beq _080063DA b _080065AA _080063DA: movs r0, #1 strb r0, [r3] b _080065AA .align 2, 0 _080063E0: .4byte 0x0201A4D0 _080063E4: .4byte 0x0000FEFE _080063E8: ldr r3, _0800640C @ =0x0201A4D0 ldrh r2, [r3] ldr r0, _08006410 @ =0x0000ECEC cmp r2, r0 bne _0800641C ldrh r0, [r3, #2] cmp r0, r2 bne _0800641C movs r2, #1 rsbs r2, r2, #0 adds r0, r2, #0 strb r0, [r4] ldr r0, _08006414 @ =0x0202BEFC strb r1, [r0] ldr r0, _08006418 @ =0x0201C180 strh r1, [r0] b _080065AA .align 2, 0 _0800640C: .4byte 0x0201A4D0 _08006410: .4byte 0x0000ECEC _08006414: .4byte 0x0202BEFC _08006418: .4byte 0x0201C180 _0800641C: ldr r1, _08006434 @ =0x0202BECC ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bgt _0800642E b _080065AA _0800642E: movs r0, #1 b _080065CC .align 2, 0 _08006434: .4byte 0x0202BECC _08006438: ldr r7, _0800656C @ =0x0201A4D0 ldrh r1, [r7, #2] adds r0, r1, #0 subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bls _0800644A b _080065CA _0800644A: ldr r0, _08006570 @ =0x0202C5B4 mov r8, r0 strh r1, [r0] mov r2, sp ldrh r1, [r7, #6] movs r6, #0xf adds r0, r6, #0 ands r0, r1 strh r0, [r2] movs r5, #0xf0 adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #2] movs r4, #0xf0 lsls r4, r4, #4 adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #4] movs r3, #0xf0 lsls r3, r3, #8 adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #6] ldrh r1, [r7, #0xa] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #8] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0xa] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0xc] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0xe] ldrh r1, [r7, #0xe] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x10] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x12] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x14] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x16] ldrh r1, [r7, #0x12] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x18] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x1a] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x1c] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x1e] ldrh r1, [r7, #0x16] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x20] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x22] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x24] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x26] ldrh r1, [r7, #0x1a] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x28] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x2a] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x2c] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x2e] mov r1, sp ldrh r0, [r7, #0x1e] ands r6, r0 strh r6, [r1, #0x30] ands r5, r0 lsrs r5, r5, #4 strh r5, [r1, #0x32] ands r4, r0 lsrs r4, r4, #8 strh r4, [r1, #0x34] ands r3, r0 lsrs r3, r3, #0xc strh r3, [r1, #0x36] movs r3, #0 ldr r6, _08006574 @ =0x0202A1C0 ldr r5, _08006578 @ =0x0202A390 mov r4, sp _08006540: mov r2, r8 ldrh r1, [r2] subs r1, #8 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r1, r2, #1 adds r0, r1, r6 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0 bne _0800657C ldrh r0, [r4] cmp r0, #4 bne _0800657C adds r1, r1, r5 movs r0, #2 b _08006592 .align 2, 0 _0800656C: .4byte 0x0201A4D0 _08006570: .4byte 0x0202C5B4 _08006574: .4byte 0x0202A1C0 _08006578: .4byte 0x0202A390 _0800657C: lsls r1, r2, #1 adds r0, r1, r6 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #1 bne _08006594 ldrh r0, [r4] cmp r0, #4 bne _08006594 adds r1, r1, r5 movs r0, #3 _08006592: strh r0, [r1] _08006594: adds r4, #2 adds r3, #1 cmp r3, #0x1b ble _08006540 mov r7, r8 ldrh r0, [r7] cmp r0, #0xf bne _080065AA movs r0, #1 rsbs r0, r0, #0 b _080065CC _080065AA: movs r3, #0 ldr r5, _080065D8 @ =0x0201A4D0 movs r4, #0 _080065B0: adds r2, r3, #1 lsls r0, r3, #2 movs r1, #1 adds r0, r0, r5 adds r0, #2 _080065BA: strh r4, [r0] subs r0, #2 subs r1, #1 cmp r1, #0 bge _080065BA adds r3, r2, #0 cmp r3, #7 ble _080065B0 _080065CA: movs r0, #0 _080065CC: add sp, #0x38 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _080065D8: .4byte 0x0201A4D0 thumb_func_start sub_65DC sub_65DC: @ 0x080065DC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0x38 ldr r4, _08006600 @ =0x0201B128 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _08006678 ldr r3, _08006604 @ =0x0202C544 movs r1, #0 ldrsb r1, [r3, r1] cmp r1, #0 beq _08006608 cmp r1, #1 beq _08006628 b _080067EA .align 2, 0 _08006600: .4byte 0x0201B128 _08006604: .4byte 0x0202C544 _08006608: ldr r2, _08006620 @ =0x0201A4D0 ldrh r0, [r2] ldr r1, _08006624 @ =0x0000FEFE cmp r0, r1 beq _0800661A ldrh r0, [r2, #2] cmp r0, r1 beq _0800661A b _080067EA _0800661A: movs r0, #1 strb r0, [r3] b _080067EA .align 2, 0 _08006620: .4byte 0x0201A4D0 _08006624: .4byte 0x0000FEFE _08006628: ldr r3, _0800664C @ =0x0201A4D0 ldrh r2, [r3] ldr r0, _08006650 @ =0x0000ECEC cmp r2, r0 bne _0800665C ldrh r0, [r3, #2] cmp r0, r2 bne _0800665C movs r2, #1 rsbs r2, r2, #0 adds r0, r2, #0 strb r0, [r4] ldr r0, _08006654 @ =0x0202BEFC strb r1, [r0] ldr r0, _08006658 @ =0x0201C180 strh r1, [r0] b _080067EA .align 2, 0 _0800664C: .4byte 0x0201A4D0 _08006650: .4byte 0x0000ECEC _08006654: .4byte 0x0202BEFC _08006658: .4byte 0x0201C180 _0800665C: ldr r1, _08006674 @ =0x0202BECC ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bgt _0800666E b _080067EA _0800666E: movs r0, #1 b _0800680C .align 2, 0 _08006674: .4byte 0x0202BECC _08006678: ldr r7, _080067AC @ =0x0201A4D0 ldrh r1, [r7] adds r0, r1, #0 subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bls _0800668A b _0800680A _0800668A: ldr r0, _080067B0 @ =0x0202C5B4 mov r8, r0 strh r1, [r0] mov r2, sp ldrh r1, [r7, #4] movs r6, #0xf adds r0, r6, #0 ands r0, r1 strh r0, [r2] movs r5, #0xf0 adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #2] movs r4, #0xf0 lsls r4, r4, #4 adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #4] movs r3, #0xf0 lsls r3, r3, #8 adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #6] ldrh r1, [r7, #8] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #8] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0xa] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0xc] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0xe] ldrh r1, [r7, #0xc] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x10] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x12] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x14] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x16] ldrh r1, [r7, #0x10] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x18] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x1a] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x1c] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x1e] ldrh r1, [r7, #0x14] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x20] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x22] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x24] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x26] ldrh r1, [r7, #0x18] adds r0, r6, #0 ands r0, r1 strh r0, [r2, #0x28] adds r0, r5, #0 ands r0, r1 lsrs r0, r0, #4 strh r0, [r2, #0x2a] adds r0, r4, #0 ands r0, r1 lsrs r0, r0, #8 strh r0, [r2, #0x2c] adds r0, r3, #0 ands r0, r1 lsrs r0, r0, #0xc strh r0, [r2, #0x2e] mov r1, sp ldrh r0, [r7, #0x1c] ands r6, r0 strh r6, [r1, #0x30] ands r5, r0 lsrs r5, r5, #4 strh r5, [r1, #0x32] ands r4, r0 lsrs r4, r4, #8 strh r4, [r1, #0x34] ands r3, r0 lsrs r3, r3, #0xc strh r3, [r1, #0x36] movs r3, #0 ldr r6, _080067B4 @ =0x0202A1C0 ldr r5, _080067B8 @ =0x0202A390 mov r4, sp _08006780: mov r2, r8 ldrh r1, [r2] subs r1, #8 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r1, r2, #1 adds r0, r1, r6 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0 bne _080067BC ldrh r0, [r4] cmp r0, #4 bne _080067BC adds r1, r1, r5 movs r0, #2 b _080067D2 .align 2, 0 _080067AC: .4byte 0x0201A4D0 _080067B0: .4byte 0x0202C5B4 _080067B4: .4byte 0x0202A1C0 _080067B8: .4byte 0x0202A390 _080067BC: lsls r1, r2, #1 adds r0, r1, r6 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #1 bne _080067D4 ldrh r0, [r4] cmp r0, #4 bne _080067D4 adds r1, r1, r5 movs r0, #3 _080067D2: strh r0, [r1] _080067D4: adds r4, #2 adds r3, #1 cmp r3, #0x1b ble _08006780 mov r7, r8 ldrh r0, [r7] cmp r0, #0xf bne _080067EA movs r0, #1 rsbs r0, r0, #0 b _0800680C _080067EA: movs r3, #0 ldr r5, _08006818 @ =0x0201A4D0 movs r4, #0 _080067F0: adds r2, r3, #1 lsls r0, r3, #2 movs r1, #1 adds r0, r0, r5 adds r0, #2 _080067FA: strh r4, [r0] subs r0, #2 subs r1, #1 cmp r1, #0 bge _080067FA adds r3, r2, #0 cmp r3, #7 ble _080067F0 _0800680A: movs r0, #0 _0800680C: add sp, #0x38 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _08006818: .4byte 0x0201A4D0 thumb_func_start sub_681C sub_681C: @ 0x0800681C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0xc add r2, sp, #8 movs r1, #0 strh r1, [r2] ldr r2, _08006884 @ =0x040000D4 add r1, sp, #8 str r1, [r2] ldr r1, _08006888 @ =0x03000000 str r1, [r2, #4] ldr r1, _0800688C @ =0x81000400 str r1, [r2, #8] ldr r1, [r2, #8] movs r2, #0 mov r8, r2 lsls r7, r0, #0x10 asrs r2, r7, #0x10 cmp r2, #0xc8 bne _080068CC ldr r0, _08006890 @ =0x0202A1C0 movs r3, #0xc8 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 beq _08006894 movs r5, #1 str r5, [sp] movs r4, #2 str r4, [sp, #4] movs r0, #0x22 movs r1, #1 movs r2, #5 movs r3, #2 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x20 movs r1, #1 movs r2, #6 movs r3, #2 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x21 b _080068BE .align 2, 0 _08006884: .4byte 0x040000D4 _08006888: .4byte 0x03000000 _0800688C: .4byte 0x81000400 _08006890: .4byte 0x0202A1C0 _08006894: movs r5, #1 str r5, [sp] movs r4, #2 str r4, [sp, #4] movs r0, #0x2a movs r1, #1 movs r2, #5 movs r3, #2 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x2a movs r1, #1 movs r2, #6 movs r3, #2 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x2a _080068BE: movs r1, #1 movs r2, #7 movs r3, #2 bl sub_105A0 mov sb, r7 b _08006900 _080068CC: movs r6, #0 mov sb, r7 ldr r1, _08006998 @ =0x0805C8B4 lsls r0, r2, #3 adds r0, r0, r2 lsls r0, r0, #4 subs r0, r0, r2 lsls r0, r0, #2 adds r4, r0, r1 _080068DE: ldrh r0, [r4] adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #5 movs r1, #1 str r1, [sp] movs r1, #2 str r1, [sp, #4] movs r1, #1 movs r3, #2 bl sub_105A0 adds r4, #2 adds r6, #1 cmp r6, #2 ble _080068DE _08006900: ldr r0, _0800699C @ =0x0202A1C0 mov r3, sb asrs r2, r3, #0x10 lsls r1, r2, #1 adds r1, r1, r0 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _080069C4 movs r6, #0 ldr r1, _080069A0 @ =0x0805C8CC ldr r5, _080069A4 @ =0x040000D4 lsls r0, r2, #3 adds r0, r0, r2 lsls r0, r0, #4 subs r0, r0, r2 lsls r0, r0, #2 adds r7, r0, r1 _08006924: ldrh r1, [r7] movs r2, #0x10 rsbs r2, r2, #0 adds r0, r2, #0 adds r3, r0, #0 ands r3, r1 movs r4, #0xf ands r4, r1 cmp r4, #0 bne _0800693A movs r4, #4 _0800693A: ldr r1, _080069A8 @ =0x08090780 adds r0, r3, r1 str r0, [r5] ldr r0, _080069AC @ =0x0202BE30 str r0, [r5, #4] ldr r2, _080069B0 @ =0x80000010 str r2, [r5, #8] ldr r0, [r5, #8] movs r0, #0x80 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r3, r1 str r1, [r5] ldr r0, _080069B4 @ =0x0201B130 str r0, [r5, #4] str r2, [r5, #8] ldr r0, [r5, #8] adds r0, r4, #0 mov r1, r8 movs r2, #0 bl sub_71DC add r8, r4 adds r7, #2 adds r6, #1 cmp r6, #9 ble _08006924 ldr r4, _080069B8 @ =0x03000000 ldr r1, _080069BC @ =0x06004C00 adds r0, r4, #0 movs r2, #8 movs r3, #2 bl sub_10708 add r1, sp, #8 movs r0, #0 strh r0, [r1] ldr r0, _080069A4 @ =0x040000D4 str r1, [r0] str r4, [r0, #4] ldr r1, _080069C0 @ =0x81000400 str r1, [r0, #8] ldr r0, [r0, #8] movs r1, #0 mov r8, r1 b _080069DC .align 2, 0 _08006998: .4byte 0x0805C8B4 _0800699C: .4byte 0x0202A1C0 _080069A0: .4byte 0x0805C8CC _080069A4: .4byte 0x040000D4 _080069A8: .4byte 0x08090780 _080069AC: .4byte 0x0202BE30 _080069B0: .4byte 0x80000010 _080069B4: .4byte 0x0201B130 _080069B8: .4byte 0x03000000 _080069BC: .4byte 0x06004C00 _080069C0: .4byte 0x81000400 _080069C4: ldr r4, _08006A74 @ =0x06004C00 movs r6, #9 _080069C8: ldr r0, _08006A78 @ =0x08092FA0 adds r1, r4, #0 movs r2, #1 movs r3, #2 bl sub_10708 adds r4, #0x20 subs r6, #1 cmp r6, #0 bge _080069C8 _080069DC: ldr r1, _08006A7C @ =0x0202A1C0 mov r3, sb asrs r2, r3, #0x10 lsls r0, r2, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #1 beq _080069F2 cmp r0, #2 ble _08006AA4 _080069F2: movs r6, #0 ldr r1, _08006A80 @ =0x0805C8E0 ldr r5, _08006A84 @ =0x040000D4 lsls r0, r2, #3 adds r0, r0, r2 lsls r0, r0, #4 subs r0, r0, r2 lsls r0, r0, #2 adds r7, r0, r1 _08006A04: ldrh r1, [r7] movs r2, #0x10 rsbs r2, r2, #0 adds r0, r2, #0 adds r3, r0, #0 ands r3, r1 movs r4, #0xf ands r4, r1 cmp r4, #0 bne _08006A1A movs r4, #6 _08006A1A: ldr r1, _08006A88 @ =0x08090780 adds r0, r3, r1 str r0, [r5] ldr r0, _08006A8C @ =0x0202BE30 str r0, [r5, #4] ldr r2, _08006A90 @ =0x80000010 str r2, [r5, #8] ldr r0, [r5, #8] movs r0, #0x80 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r3, r1 str r1, [r5] ldr r0, _08006A94 @ =0x0201B130 str r0, [r5, #4] str r2, [r5, #8] ldr r0, [r5, #8] adds r0, r4, #0 mov r1, r8 movs r2, #0 bl sub_71DC add r8, r4 adds r7, #2 adds r6, #1 cmp r6, #0xa ble _08006A04 ldr r4, _08006A98 @ =0x03000000 ldr r1, _08006A9C @ =0x06004D00 adds r0, r4, #0 movs r2, #9 movs r3, #2 bl sub_10708 add r1, sp, #8 movs r0, #0 strh r0, [r1] ldr r0, _08006A84 @ =0x040000D4 str r1, [r0] str r4, [r0, #4] ldr r1, _08006AA0 @ =0x81000400 str r1, [r0, #8] ldr r0, [r0, #8] b _08006ABC .align 2, 0 _08006A74: .4byte 0x06004C00 _08006A78: .4byte 0x08092FA0 _08006A7C: .4byte 0x0202A1C0 _08006A80: .4byte 0x0805C8E0 _08006A84: .4byte 0x040000D4 _08006A88: .4byte 0x08090780 _08006A8C: .4byte 0x0202BE30 _08006A90: .4byte 0x80000010 _08006A94: .4byte 0x0201B130 _08006A98: .4byte 0x03000000 _08006A9C: .4byte 0x06004D00 _08006AA0: .4byte 0x81000400 _08006AA4: ldr r4, _08006B6C @ =0x06004D00 movs r6, #8 _08006AA8: ldr r0, _08006B70 @ =0x08092FA0 adds r1, r4, #0 movs r2, #1 movs r3, #2 bl sub_10708 adds r4, #0x20 subs r6, #1 cmp r6, #0 bge _08006AA8 _08006ABC: ldr r0, _08006B74 @ =0x0202A1C0 mov r1, sb asrs r2, r1, #0x10 lsls r1, r2, #1 adds r1, r1, r0 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #4 bne _08006B7C ldr r0, _08006B78 @ =0x0805C8B4 mov sb, r0 lsls r4, r2, #3 adds r4, r4, r2 lsls r4, r4, #4 subs r4, r4, r2 lsls r4, r4, #2 adds r1, r4, #0 add r1, sb mov r8, r1 ldrh r0, [r1, #6] adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r6, #1 str r6, [sp] movs r5, #2 str r5, [sp, #4] movs r1, #1 movs r2, #0x10 movs r3, #6 bl sub_105A0 mov r2, r8 ldrh r0, [r2, #8] adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r6, [sp] str r5, [sp, #4] movs r1, #1 movs r2, #0x11 movs r3, #6 bl sub_105A0 mov r3, r8 ldrh r0, [r3, #0xa] adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r6, [sp] str r5, [sp, #4] movs r1, #1 movs r2, #0x13 movs r3, #6 bl sub_105A0 mov r1, r8 ldrh r0, [r1, #0xc] adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r6, [sp] str r5, [sp, #4] movs r1, #1 movs r2, #0x14 movs r3, #6 bl sub_105A0 movs r6, #0 movs r2, #0xe add sb, r2 add r4, sb movs r5, #1 _08006B4E: ldrh r0, [r4] adds r2, r6, #0 adds r2, #0x10 str r5, [sp] str r5, [sp, #4] movs r1, #1 movs r3, #8 bl sub_105A0 adds r4, #2 adds r6, #1 cmp r6, #4 ble _08006B4E b _08006BDC .align 2, 0 _08006B6C: .4byte 0x06004D00 _08006B70: .4byte 0x08092FA0 _08006B74: .4byte 0x0202A1C0 _08006B78: .4byte 0x0805C8B4 _08006B7C: movs r5, #1 str r5, [sp] movs r4, #2 str r4, [sp, #4] movs r0, #0x2b movs r1, #1 movs r2, #0x10 movs r3, #6 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x2b movs r1, #1 movs r2, #0x11 movs r3, #6 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x2b movs r1, #1 movs r2, #0x13 movs r3, #6 bl sub_105A0 str r5, [sp] str r4, [sp, #4] movs r0, #0x2b movs r1, #1 movs r2, #0x14 movs r3, #6 bl sub_105A0 movs r6, #0 movs r4, #1 _08006BC4: adds r2, r6, #0 adds r2, #0x10 str r4, [sp] str r4, [sp, #4] movs r0, #0xb movs r1, #1 movs r3, #8 bl sub_105A0 adds r6, #1 cmp r6, #4 ble _08006BC4 _08006BDC: add sp, #0xc pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_6BEC sub_6BEC: @ 0x08006BEC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0x20 adds r4, r1, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 lsls r0, r0, #0x10 asrs r6, r0, #0x10 adds r0, r6, #0 movs r1, #0x64 bl __divsi3 str r0, [sp, #8] adds r0, r6, #0 movs r1, #0x64 bl __modsi3 adds r5, r0, #0 movs r1, #0xa bl __divsi3 str r0, [sp, #0xc] adds r0, r5, #0 movs r1, #0xa bl __modsi3 str r0, [sp, #0x10] lsls r4, r4, #0x10 asrs r6, r4, #0x10 add r5, sp, #0x14 adds r0, r6, #0 movs r1, #0x64 bl __divsi3 str r0, [sp, #0x14] adds r0, r6, #0 movs r1, #0x64 bl __modsi3 adds r4, r0, #0 movs r1, #0xa bl __divsi3 str r0, [r5, #4] adds r0, r4, #0 movs r1, #0xa bl __modsi3 str r0, [r5, #8] movs r6, #0 movs r7, #1 mov r8, r5 add r5, sp, #8 _08006C58: ldm r5!, {r0} lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r4, r6, #0 adds r4, #0x19 str r7, [sp] str r7, [sp, #4] movs r1, #2 adds r2, r4, #0 movs r3, #0xf bl sub_105A0 mov r1, r8 adds r1, #4 mov r8, r1 subs r1, #4 ldm r1!, {r0} adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r7, [sp] movs r1, #2 str r1, [sp, #4] adds r2, r4, #0 movs r3, #0x10 bl sub_105A0 adds r6, #1 cmp r6, #2 ble _08006C58 add sp, #0x20 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_6CA0 sub_6CA0: @ 0x08006CA0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #0xc] add r1, sp, #8 movs r0, #0 strh r0, [r1] ldr r1, _08006D2C @ =0x040000D4 add r0, sp, #8 str r0, [r1] ldr r0, _08006D30 @ =0x03000000 str r0, [r1, #4] ldr r0, _08006D34 @ =0x81000400 str r0, [r1, #8] ldr r0, [r1, #8] movs r1, #0 str r1, [sp, #0x10] mov r8, r1 ldr r2, [sp, #0xc] lsls r2, r2, #0x10 str r2, [sp, #0x14] movs r3, #1 mov sb, r3 movs r5, #2 movs r4, #0 str r4, [sp, #0x18] movs r4, #0xa _08006CE0: ldr r1, [sp, #0xc] lsls r0, r1, #0x10 asrs r0, r0, #0x10 add r0, r8 cmp r0, #0xc8 bne _08006D74 ldr r0, _08006D38 @ =0x0202A1C0 movs r2, #0xc8 lsls r2, r2, #1 adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 beq _08006D3C mov r0, sb str r0, [sp] str r5, [sp, #4] movs r0, #0x22 movs r1, #2 movs r2, #8 adds r3, r4, #0 bl sub_105A0 mov r1, sb str r1, [sp] str r5, [sp, #4] movs r0, #0x20 movs r1, #2 movs r2, #9 adds r3, r4, #0 bl sub_105A0 mov r2, sb str r2, [sp] str r5, [sp, #4] movs r0, #0x21 b _08006D68 .align 2, 0 _08006D2C: .4byte 0x040000D4 _08006D30: .4byte 0x03000000 _08006D34: .4byte 0x81000400 _08006D38: .4byte 0x0202A1C0 _08006D3C: mov r3, sb str r3, [sp] str r5, [sp, #4] movs r0, #0x2a movs r1, #2 movs r2, #8 adds r3, r4, #0 bl sub_105A0 mov r0, sb str r0, [sp] str r5, [sp, #4] movs r0, #0x2a movs r1, #2 movs r2, #9 adds r3, r4, #0 bl sub_105A0 mov r1, sb str r1, [sp] str r5, [sp, #4] movs r0, #0x2a _08006D68: movs r1, #2 movs r2, #0xa adds r3, r4, #0 bl sub_105A0 b _08006DB6 _08006D74: movs r6, #0 ldr r7, [sp, #0x18] ldr r2, _08006E94 @ =0x0805C8B4 mov sl, r2 _08006D7C: lsls r2, r6, #1 ldr r0, _08006E98 @ =0x0202C5B0 movs r3, #0 ldrsh r1, [r0, r3] add r1, r8 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, sl ldrh r0, [r2] adds r0, #0x20 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r2, r6, #0 adds r2, #8 mov r1, sb str r1, [sp] str r5, [sp, #4] movs r1, #2 adds r3, r7, #0 adds r3, #0xa bl sub_105A0 adds r6, #1 cmp r6, #2 ble _08006D7C _08006DB6: ldr r2, [sp, #0x18] adds r2, #2 str r2, [sp, #0x18] adds r4, #2 movs r3, #1 add r8, r3 mov r0, r8 cmp r0, #4 ble _08006CE0 movs r1, #0 mov r8, r1 _08006DCC: ldr r0, _08006E9C @ =0x0202A1C0 ldr r2, [sp, #0x14] asrs r1, r2, #0x10 add r1, r8 lsls r1, r1, #1 adds r1, r1, r0 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _08006EC4 movs r6, #0 mov r4, r8 lsls r7, r4, #1 movs r0, #1 add r0, r8 mov sb, r0 ldr r5, _08006EA0 @ =0x040000D4 ldr r3, _08006EA4 @ =0x08090780 movs r1, #0x80 lsls r1, r1, #3 adds r1, r1, r3 mov sl, r1 _08006DF8: lsls r2, r6, #1 ldr r0, _08006E98 @ =0x0202C5B0 movs r4, #0 ldrsh r1, [r0, r4] add r1, r8 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 ldr r0, _08006EA8 @ =0x0805C8CC adds r2, r2, r0 ldrh r1, [r2] movs r2, #0x10 rsbs r2, r2, #0 adds r0, r2, #0 adds r2, r1, #0 ands r2, r0 movs r4, #0xf ands r4, r1 cmp r4, #0 bne _08006E28 movs r4, #4 _08006E28: adds r0, r2, r3 str r0, [r5] ldr r0, _08006EAC @ =0x0202BE30 str r0, [r5, #4] ldr r0, _08006EB0 @ =0x80000010 str r0, [r5, #8] ldr r0, [r5, #8] mov r1, sl adds r0, r2, r1 str r0, [r5] ldr r0, _08006EB4 @ =0x0201B130 str r0, [r5, #4] ldr r2, _08006EB0 @ =0x80000010 str r2, [r5, #8] ldr r0, [r5, #8] adds r0, r4, #0 ldr r1, [sp, #0x10] movs r2, #0 str r3, [sp, #0x1c] bl sub_71DC ldr r0, [sp, #0x10] adds r0, r0, r4 str r0, [sp, #0x10] adds r6, #1 ldr r3, [sp, #0x1c] cmp r6, #9 ble _08006DF8 ldr r1, _08006EB8 @ =0x086A64F0 adds r0, r7, r1 movs r2, #0 ldrsh r1, [r0, r2] movs r3, #0xc0 lsls r3, r3, #0x13 adds r1, r1, r3 ldr r0, _08006EBC @ =0x03000000 movs r2, #8 movs r3, #2 bl sub_10708 add r1, sp, #8 movs r0, #0 strh r0, [r1] ldr r1, _08006EA0 @ =0x040000D4 add r4, sp, #8 str r4, [r1] ldr r0, _08006EBC @ =0x03000000 str r0, [r1, #4] ldr r0, _08006EC0 @ =0x81000400 str r0, [r1, #8] ldr r0, [r1, #8] movs r1, #0 str r1, [sp, #0x10] b _08006F06 .align 2, 0 _08006E94: .4byte 0x0805C8B4 _08006E98: .4byte 0x0202C5B0 _08006E9C: .4byte 0x0202A1C0 _08006EA0: .4byte 0x040000D4 _08006EA4: .4byte 0x08090780 _08006EA8: .4byte 0x0805C8CC _08006EAC: .4byte 0x0202BE30 _08006EB0: .4byte 0x80000010 _08006EB4: .4byte 0x0201B130 _08006EB8: .4byte 0x086A64F0 _08006EBC: .4byte 0x03000000 _08006EC0: .4byte 0x81000400 _08006EC4: mov r2, r8 lsls r7, r2, #1 movs r3, #1 add r3, r8 mov sb, r3 ldr r4, _08006F20 @ =0x086A64F0 adds r5, r7, r4 movs r4, #0xc0 lsls r4, r4, #0x13 movs r6, #6 _08006ED8: movs r0, #0 ldrsh r1, [r5, r0] adds r1, r1, r4 ldr r0, _08006F24 @ =0x08092FA0 movs r2, #1 movs r3, #2 bl sub_10708 adds r4, #0x20 subs r6, #1 cmp r6, #0 bge _08006ED8 ldr r1, _08006F20 @ =0x086A64F0 adds r0, r7, r1 movs r2, #0 ldrsh r1, [r0, r2] ldr r3, _08006F28 @ =0x060000E0 adds r1, r1, r3 ldr r0, _08006F2C @ =0x08090780 movs r2, #1 movs r3, #2 bl sub_10708 _08006F06: mov r8, sb mov r4, r8 cmp r4, #4 bgt _08006F10 b _08006DCC _08006F10: add sp, #0x20 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 _08006F20: .4byte 0x086A64F0 _08006F24: .4byte 0x08092FA0 _08006F28: .4byte 0x060000E0 _08006F2C: .4byte 0x08090780 thumb_func_start sub_6F30 sub_6F30: @ 0x08006F30 push {r4, r5, r6, r7, lr} sub sp, #8 ldr r1, _08006F74 @ =0x0202A1C0 lsls r0, r0, #0x10 movs r6, #0xa asrs r0, r0, #0xf adds r4, r0, r1 movs r7, #2 movs r5, #4 _08006F42: movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xdc lsls r1, r1, #1 cmp r0, #4 bne _08006F50 adds r1, #2 _08006F50: adds r0, r1, #0 str r7, [sp] str r7, [sp, #4] movs r1, #1 movs r2, #4 adds r3, r6, #0 bl sub_105A0 adds r6, #2 adds r4, #2 subs r5, #1 cmp r5, #0 bge _08006F42 add sp, #8 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08006F74: .4byte 0x0202A1C0 thumb_func_start sub_6F78 sub_6F78: @ 0x08006F78 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r1, _08006FBC @ =0x0202A1C0 ldr r0, _08006FC0 @ =0x0202ADE0 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r5, [r0] lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #0xf bl __divsi3 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r4, #0 movs r1, #0xf bl __modsi3 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r5, #0x10 asrs r0, r5, #0x10 cmp r0, #4 bls _08006FB0 b _080070C0 _08006FB0: lsls r0, r0, #2 ldr r1, _08006FC4 @ =_08006FC8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08006FBC: .4byte 0x0202A1C0 _08006FC0: .4byte 0x0202ADE0 _08006FC4: .4byte _08006FC8 _08006FC8: @ jump table .4byte _08006FDC @ case 0 .4byte _08007000 @ case 1 .4byte _08007040 @ case 2 .4byte _08007040 @ case 3 .4byte _08007088 @ case 4 _08006FDC: ldr r0, _08006FF0 @ =0x0808F760 ldr r1, _08006FF4 @ =0x06013400 movs r2, #0x18 movs r3, #1 bl sub_10708 ldr r1, _08006FF8 @ =0x040000D4 ldr r0, _08006FFC @ =0x08089960 b _080070B4 .align 2, 0 _08006FF0: .4byte 0x0808F760 _08006FF4: .4byte 0x06013400 _08006FF8: .4byte 0x040000D4 _08006FFC: .4byte 0x08089960 _08007000: ldr r0, _08007030 @ =0x086BB738 lsls r2, r6, #0x10 asrs r2, r2, #0xe adds r2, r2, r0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r2] adds r0, r0, r1 ldr r1, _08007034 @ =0x06013400 movs r2, #0x18 movs r3, #1 bl sub_10708 ldr r1, _08007038 @ =0x040000D4 ldr r0, _0800703C @ =0x086BB6A4 ldr r0, [r0] movs r2, #0xf0 lsls r2, r2, #1 adds r0, r0, r2 b _080070B4 .align 2, 0 _08007030: .4byte 0x086BB738 _08007034: .4byte 0x06013400 _08007038: .4byte 0x040000D4 _0800703C: .4byte 0x086BB6A4 _08007040: ldr r0, _08007078 @ =0x086BB738 lsls r5, r6, #0x10 asrs r5, r5, #0xe adds r0, r5, r0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r1, r4, #1 adds r1, r1, r4 lsls r1, r1, #8 ldr r0, [r0] adds r0, r0, r1 ldr r1, _0800707C @ =0x06013400 movs r2, #0x18 movs r3, #1 bl sub_10708 ldr r0, _08007080 @ =0x086BB6A4 adds r5, r5, r0 lsls r4, r4, #5 ldr r0, [r5] adds r0, r0, r4 ldr r1, _08007084 @ =0x05000220 movs r2, #0x20 movs r3, #0xe bl sub_10170 b _080070C0 .align 2, 0 _08007078: .4byte 0x086BB738 _0800707C: .4byte 0x06013400 _08007080: .4byte 0x086BB6A4 _08007084: .4byte 0x05000220 _08007088: ldr r0, _080070C8 @ =0x086BB738 lsls r5, r6, #0x10 asrs r5, r5, #0xe adds r0, r5, r0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r1, r4, #1 adds r1, r1, r4 lsls r1, r1, #8 ldr r0, [r0] adds r0, r0, r1 ldr r1, _080070CC @ =0x06013400 movs r2, #0x18 movs r3, #1 bl sub_10708 ldr r1, _080070D0 @ =0x040000D4 ldr r0, _080070D4 @ =0x086BB6A4 adds r5, r5, r0 lsls r4, r4, #5 ldr r0, [r5] adds r0, r0, r4 _080070B4: str r0, [r1] ldr r0, _080070D8 @ =0x05000220 str r0, [r1, #4] ldr r0, _080070DC @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _080070C0: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080070C8: .4byte 0x086BB738 _080070CC: .4byte 0x06013400 _080070D0: .4byte 0x040000D4 _080070D4: .4byte 0x086BB6A4 _080070D8: .4byte 0x05000220 _080070DC: .4byte 0x80000010 thumb_func_start sub_70E0 sub_70E0: @ 0x080070E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc movs r2, #0 mov r8, r2 mov r2, sp mov r3, r8 strh r3, [r2] ldr r3, _080071B4 @ =0x040000D4 str r2, [r3] ldr r2, _080071B8 @ =0x03000000 str r2, [r3, #4] ldr r2, _080071BC @ =0x81000C00 str r2, [r3, #8] ldr r2, [r3, #8] movs r7, #0 lsls r2, r1, #6 lsls r0, r0, #0x10 str r0, [sp, #8] subs r2, r2, r1 lsls r2, r2, #1 str r2, [sp, #4] adds r5, r3, #0 _08007114: movs r6, #0 adds r0, r7, #1 mov sl, r0 movs r1, #0x2a adds r0, r7, #0 muls r0, r1, r0 ldr r2, [sp, #4] adds r2, r2, r0 mov sb, r2 _08007126: mov r3, sb adds r1, r3, r6 lsls r1, r1, #1 ldr r0, [sp, #8] asrs r2, r0, #0x10 lsls r0, r2, #3 adds r0, r0, r2 lsls r0, r0, #4 subs r0, r0, r2 lsls r0, r0, #2 adds r1, r1, r0 ldr r2, _080071C0 @ =0x0805C8F6 adds r1, r1, r2 ldrh r1, [r1] movs r3, #0x10 rsbs r3, r3, #0 adds r0, r3, #0 adds r3, r1, #0 ands r3, r0 movs r4, #0xf ands r4, r1 cmp r4, #0 bne _08007156 movs r4, #4 _08007156: ldr r1, _080071C4 @ =0x08090780 adds r0, r3, r1 str r0, [r5] ldr r0, _080071C8 @ =0x0202BE30 str r0, [r5, #4] ldr r2, _080071CC @ =0x80000010 str r2, [r5, #8] ldr r0, [r5, #8] movs r0, #0x80 lsls r0, r0, #3 adds r1, r1, r0 adds r1, r3, r1 str r1, [r5] ldr r0, _080071D0 @ =0x0201B130 str r0, [r5, #4] str r2, [r5, #8] ldr r0, [r5, #8] adds r0, r4, #0 mov r1, r8 adds r2, r7, #0 bl sub_71DC add r8, r4 adds r6, #1 cmp r6, #0x29 ble _08007126 movs r1, #0 mov r8, r1 mov r7, sl cmp r7, #2 ble _08007114 ldr r1, _080071B4 @ =0x040000D4 ldr r0, _080071B8 @ =0x03000000 str r0, [r1] ldr r0, _080071D4 @ =0x06005C00 str r0, [r1, #4] ldr r0, _080071D8 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080071B4: .4byte 0x040000D4 _080071B8: .4byte 0x03000000 _080071BC: .4byte 0x81000C00 _080071C0: .4byte 0x0805C8F6 _080071C4: .4byte 0x08090780 _080071C8: .4byte 0x0202BE30 _080071CC: .4byte 0x80000010 _080071D0: .4byte 0x0201B130 _080071D4: .4byte 0x06005C00 _080071D8: .4byte 0x80000C00 thumb_func_start sub_71DC sub_71DC: @ 0x080071DC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 adds r4, r0, #0 adds r3, r1, #0 adds r0, r3, #0 cmp r3, #0 bge _080071F4 adds r0, r3, #7 _080071F4: asrs r0, r0, #3 lsls r0, r0, #4 lsls r1, r2, #0xa adds r2, r0, r1 subs r0, r4, #2 cmp r0, #4 bls _08007206 bl _080088C8 _08007206: lsls r0, r0, #2 ldr r1, _08007210 @ =_08007214 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08007210: .4byte _08007214 _08007214: @ jump table .4byte _08008580 @ case 0 .4byte _0800819C @ case 1 .4byte _08007D50 @ case 2 .4byte _0800780C @ case 3 .4byte _08007228 @ case 4 _08007228: adds r0, r3, #0 cmp r3, #0 bge _08007230 adds r0, r3, #7 _08007230: asrs r0, r0, #3 lsls r0, r0, #3 subs r0, r3, r0 cmp r0, #7 bls _0800723E bl _080088C8 _0800723E: lsls r0, r0, #2 ldr r1, _08007248 @ =_0800724C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08007248: .4byte _0800724C _0800724C: @ jump table .4byte _0800726C @ case 0 .4byte _080072EC @ case 1 .4byte _08007398 @ case 2 .4byte _0800744C @ case 3 .4byte _08007548 @ case 4 .4byte _080075C0 @ case 5 .4byte _0800766C @ case 6 .4byte _08007714 @ case 7 _0800726C: movs r7, #0 adds r0, r2, #1 mov ip, r0 ldr r1, _080072E0 @ =0x03000000 mov sb, r1 movs r0, #0xff mov sl, r0 ldr r1, _080072E4 @ =0x0201B130 mov r8, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r5, r0, r2 ldr r6, _080072E8 @ =0x0202BE30 lsls r1, r1, #1 adds r4, r1, r2 _08007290: lsls r3, r7, #1 ldrh r0, [r5] ldrh r1, [r6] orrs r0, r1 strh r0, [r5] add r3, ip lsls r2, r3, #1 add r2, sb ldrh r1, [r6, #2] mov r0, sl ands r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldrh r0, [r4] mov r2, r8 ldrh r1, [r2] orrs r0, r1 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #2 adds r3, r3, r0 lsls r3, r3, #1 add r3, sb ldrh r1, [r2, #2] mov r0, sl ands r0, r1 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r1, #4 add r8, r1 adds r4, #4 adds r5, #4 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007290 bl _080088C8 .align 2, 0 _080072E0: .4byte 0x03000000 _080072E4: .4byte 0x0201B130 _080072E8: .4byte 0x0202BE30 _080072EC: movs r7, #0 adds r0, r2, #1 mov ip, r0 ldr r1, _08007388 @ =0x03000000 mov sl, r1 ldr r0, _0800738C @ =0x0201B130 mov sb, r0 ldr r1, _08007390 @ =0x0202BE30 mov r8, r1 lsls r0, r2, #1 mov r2, sl adds r6, r0, r2 movs r1, #0x80 lsls r1, r1, #3 adds r0, r0, r1 adds r5, r0, r2 _0800730C: lsls r4, r7, #1 mov r2, r8 ldrh r1, [r2] ldr r0, _08007394 @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r4, ip lsls r3, r4, #1 add r3, sl ldrh r0, [r2] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc ldrh r2, [r2, #2] movs r0, #0xff ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] mov r0, sb ldrh r1, [r0] ldr r0, _08007394 @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r1, #0x80 lsls r1, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 add r4, sl mov r2, sb ldrh r0, [r2] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc ldrh r2, [r2, #2] movs r0, #0xff ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r0, #4 add sb, r0 add r8, r0 adds r6, #4 adds r5, #4 adds r7, #1 cmp r7, #7 ble _0800730C bl _080088C8 .align 2, 0 _08007388: .4byte 0x03000000 _0800738C: .4byte 0x0201B130 _08007390: .4byte 0x0202BE30 _08007394: .4byte 0x00000FFF _08007398: movs r7, #0 adds r1, r2, #1 mov ip, r1 movs r0, #0xff mov sl, r0 ldr r1, _08007440 @ =0x0201B130 mov sb, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08007444 @ =0x0202BE30 mov r8, r0 lsls r0, r2, #1 ldr r2, _08007448 @ =0x03000000 adds r6, r0, r2 lsls r1, r1, #1 adds r5, r1, r2 _080073BA: lsls r4, r7, #1 mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsls r0, r0, #8 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r4, ip lsls r3, r4, #1 ldr r1, _08007448 @ =0x03000000 adds r3, r3, r1 mov r2, r8 ldrh r0, [r2] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 ldrh r2, [r2, #2] mov r0, sl ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] mov r0, sb ldrh r1, [r0] mov r0, sl ands r0, r1 lsls r0, r0, #8 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r1, #0x80 lsls r1, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 ldr r2, _08007448 @ =0x03000000 adds r4, r4, r2 mov r1, sb ldrh r0, [r1] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 mov r0, sb ldrh r2, [r0, #2] mov r0, sl ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #4 add sb, r1 adds r5, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _080073BA bl _080088C8 .align 2, 0 _08007440: .4byte 0x0201B130 _08007444: .4byte 0x0202BE30 _08007448: .4byte 0x03000000 _0800744C: movs r7, #0 adds r0, r2, #1 mov ip, r0 movs r1, #0x10 adds r1, r1, r2 mov sb, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #2 str r0, [sp, #8] ldr r0, _08007538 @ =0x0202BE30 mov sl, r0 lsls r0, r2, #1 ldr r2, _0800753C @ =0x03000000 adds r0, r0, r2 mov r8, r0 ldr r0, _08007540 @ =0x0201B130 str r0, [sp, #0x10] lsls r1, r1, #1 adds r6, r1, r2 _08007476: lsls r5, r7, #1 mov r2, sl ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc mov r2, r8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] mov r0, ip adds r4, r5, r0 lsls r3, r4, #1 ldr r1, _0800753C @ =0x03000000 adds r3, r3, r1 mov r2, sl ldrh r0, [r2] ldr r1, _08007544 @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] add r5, sb lsls r2, r5, #1 ldr r0, _0800753C @ =0x03000000 adds r2, r2, r0 mov r0, sl ldrh r1, [r0, #2] movs r0, #0xf0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r2, [sp, #0x10] ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r6] orrs r0, r1 strh r0, [r6] movs r0, #0x80 lsls r0, r0, #2 adds r4, r4, r0 lsls r4, r4, #1 ldr r1, _0800753C @ =0x03000000 adds r4, r4, r1 ldrh r0, [r2] ldr r1, _08007544 @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldr r2, [sp, #8] ldr r0, _08007540 @ =0x0201B130 adds r3, r2, r0 ldrh r2, [r3] movs r0, #0xf ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #0x80 lsls r1, r1, #2 adds r5, r5, r1 lsls r5, r5, #1 ldr r2, _0800753C @ =0x03000000 adds r5, r5, r2 ldrh r1, [r3] movs r0, #0xf0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] adds r6, #4 ldr r0, [sp, #8] adds r0, #4 str r0, [sp, #8] movs r1, #4 add sl, r1 add r8, r1 ldr r2, [sp, #0x10] adds r2, #4 str r2, [sp, #0x10] adds r7, #1 cmp r7, #7 ble _08007476 bl _080088C8 .align 2, 0 _08007538: .4byte 0x0202BE30 _0800753C: .4byte 0x03000000 _08007540: .4byte 0x0201B130 _08007544: .4byte 0x0000FFF0 _08007548: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _080075B4 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _080075B8 @ =0x0201B130 ldr r5, _080075BC @ =0x0202BE30 _08007560: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 ldrh r0, [r2] ldrh r1, [r5] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r5, #2] movs r0, #0xff ands r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldrh r0, [r3] ldrh r1, [r6] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r6, #2] movs r0, #0xff ands r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r5, #4 adds r7, #1 cmp r7, #7 ble _08007560 bl _080088C8 .align 2, 0 _080075B4: .4byte 0x03000000 _080075B8: .4byte 0x0201B130 _080075BC: .4byte 0x0202BE30 _080075C0: movs r7, #0 adds r1, r2, #1 mov ip, r1 adds r2, #0x10 mov sb, r2 ldr r2, _0800765C @ =0x03000000 mov sl, r2 ldr r0, _08007660 @ =0x0201B130 mov r8, r0 ldr r6, _08007664 @ =0x0202BE30 _080075D4: lsls r5, r7, #1 mov r1, ip adds r3, r5, r1 lsls r2, r3, #1 add r2, sl ldrh r1, [r6] ldr r0, _08007668 @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r5, sb lsls r4, r5, #1 add r4, sl ldrh r0, [r6] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc ldrh r2, [r6, #2] movs r0, #0xff ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sl mov r0, r8 ldrh r1, [r0] ldr r0, _08007668 @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, r5, r2 lsls r5, r5, #1 add r5, sl mov r1, r8 ldrh r0, [r1] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc mov r0, r8 ldrh r2, [r0, #2] movs r0, #0xff ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] movs r1, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _080075D4 bl _080088C8 .align 2, 0 _0800765C: .4byte 0x03000000 _08007660: .4byte 0x0201B130 _08007664: .4byte 0x0202BE30 _08007668: .4byte 0x00000FFF _0800766C: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08007708 @ =0x03000000 mov sl, r1 ldr r2, _0800770C @ =0x0201B130 mov r8, r2 ldr r6, _08007710 @ =0x0202BE30 _08007680: lsls r5, r7, #1 mov r0, ip adds r3, r5, r0 lsls r2, r3, #1 add r2, sl ldrh r1, [r6] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r5, sb lsls r4, r5, #1 add r4, sl ldrh r0, [r6] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 ldrh r2, [r6, #2] movs r0, #0xff ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #0x80 lsls r1, r1, #2 adds r3, r3, r1 lsls r3, r3, #1 add r3, sl mov r2, r8 ldrh r1, [r2] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #2 adds r5, r5, r0 lsls r5, r5, #1 add r5, sl ldrh r0, [r2] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 ldrh r2, [r2, #2] movs r0, #0xff ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] movs r1, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007680 bl _080088C8 .align 2, 0 _08007708: .4byte 0x03000000 _0800770C: .4byte 0x0201B130 _08007710: .4byte 0x0202BE30 _08007714: movs r7, #0 adds r0, r2, #1 mov ip, r0 movs r1, #0x10 adds r1, r1, r2 mov sb, r1 adds r2, #0x11 str r2, [sp] ldr r2, _080077FC @ =0x03000000 mov sl, r2 movs r0, #2 str r0, [sp, #4] ldr r1, _08007800 @ =0x0202BE30 mov r8, r1 ldr r2, _08007804 @ =0x0201B130 str r2, [sp, #0xc] _08007734: lsls r6, r7, #1 mov r0, ip adds r4, r6, r0 lsls r2, r4, #1 add r2, sl mov r0, r8 ldrh r1, [r0] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] mov r1, sb adds r5, r6, r1 lsls r3, r5, #1 add r3, sl mov r2, r8 ldrh r0, [r2] ldr r1, _08007808 @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] ldr r0, [sp] adds r6, r6, r0 lsls r2, r6, #1 add r2, sl mov r0, r8 ldrh r1, [r0, #2] movs r0, #0xf0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] movs r1, #0x80 lsls r1, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 add r4, sl ldr r2, [sp, #0xc] ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r4] orrs r0, r1 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #2 adds r5, r5, r0 lsls r5, r5, #1 add r5, sl ldrh r0, [r2] ldr r1, _08007808 @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldr r2, [sp, #4] ldr r0, _08007804 @ =0x0201B130 adds r3, r2, r0 ldrh r2, [r3] movs r0, #0xf ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] movs r1, #0x80 lsls r1, r1, #2 adds r6, r6, r1 lsls r6, r6, #1 add r6, sl ldrh r1, [r3] movs r0, #0xf0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] ldr r2, [sp, #4] adds r2, #4 str r2, [sp, #4] movs r0, #4 add r8, r0 ldr r1, [sp, #0xc] adds r1, #4 str r1, [sp, #0xc] adds r7, #1 cmp r7, #7 ble _08007734 bl _080088C8 .align 2, 0 _080077FC: .4byte 0x03000000 _08007800: .4byte 0x0202BE30 _08007804: .4byte 0x0201B130 _08007808: .4byte 0x0000FFF0 _0800780C: adds r0, r3, #0 cmp r3, #0 bge _08007814 adds r0, r3, #7 _08007814: asrs r0, r0, #3 lsls r0, r0, #3 subs r0, r3, r0 cmp r0, #7 bls _08007822 bl _080088C8 _08007822: lsls r0, r0, #2 ldr r1, _0800782C @ =_08007830 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800782C: .4byte _08007830 _08007830: @ jump table .4byte _08007850 @ case 0 .4byte _080078D0 @ case 1 .4byte _0800797C @ case 2 .4byte _08007A28 @ case 3 .4byte _08007ADC @ case 4 .4byte _08007B54 @ case 5 .4byte _08007C00 @ case 6 .4byte _08007CA8 @ case 7 _08007850: movs r7, #0 adds r0, r2, #1 mov ip, r0 ldr r1, _080078C4 @ =0x03000000 mov sb, r1 movs r0, #0xf mov sl, r0 ldr r1, _080078C8 @ =0x0201B130 mov r8, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r5, r0, r2 ldr r6, _080078CC @ =0x0202BE30 lsls r1, r1, #1 adds r4, r1, r2 _08007874: lsls r3, r7, #1 ldrh r0, [r5] ldrh r1, [r6] orrs r0, r1 strh r0, [r5] add r3, ip lsls r2, r3, #1 add r2, sb ldrh r1, [r6, #2] mov r0, sl ands r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldrh r0, [r4] mov r2, r8 ldrh r1, [r2] orrs r0, r1 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #2 adds r3, r3, r0 lsls r3, r3, #1 add r3, sb ldrh r1, [r2, #2] mov r0, sl ands r0, r1 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r1, #4 add r8, r1 adds r4, #4 adds r5, #4 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007874 bl _080088C8 .align 2, 0 _080078C4: .4byte 0x03000000 _080078C8: .4byte 0x0201B130 _080078CC: .4byte 0x0202BE30 _080078D0: movs r7, #0 adds r0, r2, #1 mov ip, r0 ldr r1, _0800796C @ =0x03000000 mov sl, r1 ldr r0, _08007970 @ =0x0201B130 mov sb, r0 ldr r1, _08007974 @ =0x0202BE30 mov r8, r1 lsls r0, r2, #1 mov r2, sl adds r6, r0, r2 movs r1, #0x80 lsls r1, r1, #3 adds r0, r0, r1 adds r5, r0, r2 _080078F0: lsls r4, r7, #1 mov r2, r8 ldrh r1, [r2] ldr r0, _08007978 @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r4, ip lsls r3, r4, #1 add r3, sl ldrh r0, [r2] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] mov r0, sb ldrh r1, [r0] ldr r0, _08007978 @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r1, #0x80 lsls r1, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 add r4, sl mov r2, sb ldrh r0, [r2] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r0, #4 add sb, r0 add r8, r0 adds r6, #4 adds r5, #4 adds r7, #1 cmp r7, #7 ble _080078F0 bl _080088C8 .align 2, 0 _0800796C: .4byte 0x03000000 _08007970: .4byte 0x0201B130 _08007974: .4byte 0x0202BE30 _08007978: .4byte 0x00000FFF _0800797C: movs r7, #0 adds r1, r2, #1 mov ip, r1 ldr r0, _08007A1C @ =0x03000000 mov sl, r0 ldr r1, _08007A20 @ =0x0201B130 mov sb, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08007A24 @ =0x0202BE30 mov r8, r0 lsls r0, r2, #1 mov r2, sl adds r6, r0, r2 lsls r1, r1, #1 adds r5, r1, r2 _0800799E: lsls r4, r7, #1 mov r0, r8 ldrh r1, [r0] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r4, ip lsls r3, r4, #1 add r3, sl mov r1, r8 ldrh r0, [r1] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 mov r0, r8 ldrh r2, [r0, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] mov r2, sb ldrh r1, [r2] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r0, #0x80 lsls r0, r0, #2 adds r4, r4, r0 lsls r4, r4, #1 add r4, sl ldrh r0, [r2] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #4 add sb, r1 adds r5, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _0800799E bl _080088C8 .align 2, 0 _08007A1C: .4byte 0x03000000 _08007A20: .4byte 0x0201B130 _08007A24: .4byte 0x0202BE30 _08007A28: movs r7, #0 adds r0, r2, #1 mov ip, r0 movs r1, #0xf mov sl, r1 ldr r0, _08007ACC @ =0x0201B130 mov sb, r0 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08007AD0 @ =0x0202BE30 mov r8, r0 lsls r0, r2, #1 ldr r2, _08007AD4 @ =0x03000000 adds r6, r0, r2 lsls r1, r1, #1 adds r5, r1, r2 _08007A4A: lsls r4, r7, #1 mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r4, ip lsls r3, r4, #1 ldr r1, _08007AD4 @ =0x03000000 adds r3, r3, r1 mov r2, r8 ldrh r0, [r2] ldr r1, _08007AD8 @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldrh r2, [r2, #2] mov r0, sl ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r3] orrs r1, r0 strh r1, [r3] mov r0, sb ldrh r1, [r0] mov r0, sl ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r1, #0x80 lsls r1, r1, #2 adds r4, r4, r1 lsls r4, r4, #1 ldr r2, _08007AD4 @ =0x03000000 adds r4, r4, r2 mov r1, sb ldrh r0, [r1] ldr r1, _08007AD8 @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 mov r0, sb ldrh r2, [r0, #2] mov r0, sl ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #4 add sb, r1 adds r5, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007A4A bl _080088C8 .align 2, 0 _08007ACC: .4byte 0x0201B130 _08007AD0: .4byte 0x0202BE30 _08007AD4: .4byte 0x03000000 _08007AD8: .4byte 0x0000FFF0 _08007ADC: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08007B48 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _08007B4C @ =0x0201B130 ldr r5, _08007B50 @ =0x0202BE30 _08007AF4: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 ldrh r0, [r2] ldrh r1, [r5] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r5, #2] movs r0, #0xf ands r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldrh r0, [r3] ldrh r1, [r6] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r6, #2] movs r0, #0xf ands r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r5, #4 adds r7, #1 cmp r7, #7 ble _08007AF4 bl _080088C8 .align 2, 0 _08007B48: .4byte 0x03000000 _08007B4C: .4byte 0x0201B130 _08007B50: .4byte 0x0202BE30 _08007B54: movs r7, #0 adds r1, r2, #1 mov ip, r1 adds r2, #0x10 mov sb, r2 ldr r2, _08007BF0 @ =0x03000000 mov sl, r2 ldr r0, _08007BF4 @ =0x0201B130 mov r8, r0 ldr r6, _08007BF8 @ =0x0202BE30 _08007B68: lsls r5, r7, #1 mov r1, ip adds r3, r5, r1 lsls r2, r3, #1 add r2, sl ldrh r1, [r6] ldr r0, _08007BFC @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r5, sb lsls r4, r5, #1 add r4, sl ldrh r0, [r6] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc ldrh r2, [r6, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sl mov r0, r8 ldrh r1, [r0] ldr r0, _08007BFC @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, r5, r2 lsls r5, r5, #1 add r5, sl mov r1, r8 ldrh r0, [r1] movs r1, #0xf0 lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #0xc mov r0, r8 ldrh r2, [r0, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #4 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] movs r1, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007B68 bl _080088C8 .align 2, 0 _08007BF0: .4byte 0x03000000 _08007BF4: .4byte 0x0201B130 _08007BF8: .4byte 0x0202BE30 _08007BFC: .4byte 0x00000FFF _08007C00: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08007C9C @ =0x03000000 mov sl, r1 ldr r2, _08007CA0 @ =0x0201B130 mov r8, r2 ldr r6, _08007CA4 @ =0x0202BE30 _08007C14: lsls r5, r7, #1 mov r0, ip adds r3, r5, r0 lsls r2, r3, #1 add r2, sl ldrh r1, [r6] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r5, sb lsls r4, r5, #1 add r4, sl ldrh r0, [r6] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 ldrh r2, [r6, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #0x80 lsls r1, r1, #2 adds r3, r3, r1 lsls r3, r3, #1 add r3, sl mov r2, r8 ldrh r1, [r2] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #2 adds r5, r5, r0 lsls r5, r5, #1 add r5, sl ldrh r0, [r2] movs r1, #0xff lsls r1, r1, #8 ands r1, r0 lsrs r1, r1, #8 ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] movs r1, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007C14 bl _080088C8 .align 2, 0 _08007C9C: .4byte 0x03000000 _08007CA0: .4byte 0x0201B130 _08007CA4: .4byte 0x0202BE30 _08007CA8: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08007D40 @ =0x03000000 mov sl, r1 ldr r2, _08007D44 @ =0x0201B130 mov r8, r2 ldr r6, _08007D48 @ =0x0202BE30 _08007CBC: lsls r5, r7, #1 mov r0, ip adds r3, r5, r0 lsls r2, r3, #1 add r2, sl ldrh r1, [r6] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r5, sb lsls r4, r5, #1 add r4, sl ldrh r0, [r6] ldr r1, _08007D4C @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldrh r2, [r6, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r4] orrs r1, r0 strh r1, [r4] movs r1, #0x80 lsls r1, r1, #2 adds r3, r3, r1 lsls r3, r3, #1 add r3, sl mov r2, r8 ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #2 adds r5, r5, r0 lsls r5, r5, #1 add r5, sl ldrh r0, [r2] ldr r1, _08007D4C @ =0x0000FFF0 ands r1, r0 lsrs r1, r1, #4 ldrh r2, [r2, #2] movs r0, #0xf ands r0, r2 lsls r0, r0, #0xc orrs r1, r0 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] movs r1, #4 add r8, r1 adds r6, #4 adds r7, #1 cmp r7, #7 ble _08007CBC bl _080088C8 .align 2, 0 _08007D40: .4byte 0x03000000 _08007D44: .4byte 0x0201B130 _08007D48: .4byte 0x0202BE30 _08007D4C: .4byte 0x0000FFF0 _08007D50: adds r0, r3, #0 cmp r3, #0 bge _08007D58 adds r0, r3, #7 _08007D58: asrs r0, r0, #3 lsls r0, r0, #3 subs r0, r3, r0 cmp r0, #7 bls _08007D66 bl _080088C8 _08007D66: lsls r0, r0, #2 ldr r1, _08007D70 @ =_08007D74 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08007D70: .4byte _08007D74 _08007D74: @ jump table .4byte _08007D94 @ case 0 .4byte _08007DD8 @ case 1 .4byte _08007E74 @ case 2 .4byte _08007F0C @ case 3 .4byte _08007FA4 @ case 4 .4byte _08007FF4 @ case 5 .4byte _08008084 @ case 6 .4byte _08008110 @ case 7 _08007D94: movs r7, #0 ldr r1, _08007DCC @ =0x03000000 lsls r0, r2, #1 adds r3, r0, r1 ldr r5, _08007DD0 @ =0x0202BE30 ldr r4, _08007DD4 @ =0x0201B130 movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 adds r2, r0, r1 _08007DA8: ldrh r0, [r3] ldrh r1, [r5] orrs r0, r1 strh r0, [r3] ldrh r0, [r2] ldrh r1, [r4] orrs r0, r1 strh r0, [r2] adds r3, #4 adds r5, #4 adds r2, #4 adds r4, #4 adds r7, #1 cmp r7, #7 ble _08007DA8 bl _080088C8 .align 2, 0 _08007DCC: .4byte 0x03000000 _08007DD0: .4byte 0x0202BE30 _08007DD4: .4byte 0x0201B130 _08007DD8: movs r7, #0 adds r0, r2, #1 mov ip, r0 ldr r1, _08007E64 @ =0x03000000 mov sb, r1 movs r0, #0xf0 lsls r0, r0, #8 mov sl, r0 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r6, r0, r2 ldr r0, _08007E68 @ =0x0202BE30 mov r8, r0 lsls r1, r1, #1 adds r5, r1, r2 _08007DFC: lsls r3, r7, #1 lsls r4, r7, #2 mov r2, r8 ldrh r1, [r2] ldr r0, _08007E6C @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r3, ip lsls r2, r3, #1 add r2, sb mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsrs r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r1, _08007E70 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] ldr r0, _08007E6C @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sb ldrh r1, [r4] mov r0, sl ands r0, r1 lsrs r0, r0, #0xc ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, #4 adds r6, #4 movs r0, #4 add r8, r0 adds r7, #1 cmp r7, #7 ble _08007DFC bl _080088C8 .align 2, 0 _08007E64: .4byte 0x03000000 _08007E68: .4byte 0x0202BE30 _08007E6C: .4byte 0x00000FFF _08007E70: .4byte 0x0201B130 _08007E74: movs r7, #0 adds r1, r2, #1 mov ip, r1 ldr r0, _08007F00 @ =0x03000000 mov sb, r0 movs r1, #0xff lsls r1, r1, #8 mov sl, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r6, r0, r2 ldr r0, _08007F04 @ =0x0202BE30 mov r8, r0 lsls r1, r1, #1 adds r5, r1, r2 _08007E98: lsls r3, r7, #1 lsls r4, r7, #2 mov r2, r8 ldrh r1, [r2] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r3, ip lsls r2, r3, #1 add r2, sb mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r1, _08007F08 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sb ldrh r1, [r4] mov r0, sl ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, #4 adds r6, #4 movs r0, #4 add r8, r0 adds r7, #1 cmp r7, #7 ble _08007E98 bl _080088C8 .align 2, 0 _08007F00: .4byte 0x03000000 _08007F04: .4byte 0x0202BE30 _08007F08: .4byte 0x0201B130 _08007F0C: movs r7, #0 adds r1, r2, #1 mov ip, r1 ldr r0, _08007F94 @ =0x03000000 mov sb, r0 ldr r1, _08007F98 @ =0x0000FFF0 mov sl, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r6, r0, r2 ldr r0, _08007F9C @ =0x0202BE30 mov r8, r0 lsls r1, r1, #1 adds r5, r1, r2 _08007F2E: lsls r3, r7, #1 lsls r4, r7, #2 mov r2, r8 ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r3, ip lsls r2, r3, #1 add r2, sb mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r1, _08007FA0 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sb ldrh r1, [r4] mov r0, sl ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, #4 adds r6, #4 movs r0, #4 add r8, r0 adds r7, #1 cmp r7, #7 ble _08007F2E bl _080088C8 .align 2, 0 _08007F94: .4byte 0x03000000 _08007F98: .4byte 0x0000FFF0 _08007F9C: .4byte 0x0202BE30 _08007FA0: .4byte 0x0201B130 _08007FA4: movs r7, #0 adds r2, #1 mov ip, r2 ldr r1, _08007FE8 @ =0x03000000 mov r8, r1 ldr r6, _08007FEC @ =0x0202BE30 lsls r0, r2, #1 adds r4, r0, r1 mov r5, ip _08007FB6: lsls r3, r7, #2 ldrh r0, [r4] ldrh r1, [r6] orrs r0, r1 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #2 adds r2, r5, r0 lsls r2, r2, #1 add r2, r8 ldr r1, _08007FF0 @ =0x0201B130 adds r3, r3, r1 ldrh r0, [r2] ldrh r1, [r3] orrs r0, r1 strh r0, [r2] adds r6, #4 adds r4, #4 adds r5, #2 adds r7, #1 cmp r7, #7 ble _08007FB6 bl _080088C8 .align 2, 0 _08007FE8: .4byte 0x03000000 _08007FEC: .4byte 0x0202BE30 _08007FF0: .4byte 0x0201B130 _08007FF4: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08008074 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _08008078 @ =0x0202BE30 _0800800A: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 lsls r5, r7, #2 ldrh r1, [r6] ldr r0, _0800807C @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r6] movs r0, #0xf0 lsls r0, r0, #8 ands r0, r1 lsrs r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldr r1, _08008080 @ =0x0201B130 adds r5, r5, r1 ldrh r1, [r5] ldr r0, _0800807C @ =0x00000FFF ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r5] movs r0, #0xf0 lsls r0, r0, #8 ands r0, r1 lsrs r0, r0, #0xc ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r7, #1 cmp r7, #7 ble _0800800A bl _080088C8 .align 2, 0 _08008074: .4byte 0x03000000 _08008078: .4byte 0x0202BE30 _0800807C: .4byte 0x00000FFF _08008080: .4byte 0x0201B130 _08008084: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08008104 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _08008108 @ =0x0202BE30 _0800809A: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 lsls r5, r7, #2 ldrh r1, [r6] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r6] movs r0, #0xff lsls r0, r0, #8 ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldr r1, _0800810C @ =0x0201B130 adds r5, r5, r1 ldrh r1, [r5] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r5] movs r0, #0xff lsls r0, r0, #8 ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r7, #1 cmp r7, #7 ble _0800809A bl _080088C8 .align 2, 0 _08008104: .4byte 0x03000000 _08008108: .4byte 0x0202BE30 _0800810C: .4byte 0x0201B130 _08008110: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _0800818C @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _08008190 @ =0x0202BE30 _08008126: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 lsls r5, r7, #2 ldrh r1, [r6] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r6] ldr r0, _08008194 @ =0x0000FFF0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldr r1, _08008198 @ =0x0201B130 adds r5, r5, r1 ldrh r1, [r5] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r3] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r5] ldr r0, _08008194 @ =0x0000FFF0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r7, #1 cmp r7, #7 ble _08008126 b _080088C8 .align 2, 0 _0800818C: .4byte 0x03000000 _08008190: .4byte 0x0202BE30 _08008194: .4byte 0x0000FFF0 _08008198: .4byte 0x0201B130 _0800819C: adds r0, r3, #0 cmp r3, #0 bge _080081A4 adds r0, r3, #7 _080081A4: asrs r0, r0, #3 lsls r0, r0, #3 subs r0, r3, r0 cmp r0, #7 bls _080081B0 b _080088C8 _080081B0: lsls r0, r0, #2 ldr r1, _080081BC @ =_080081C0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080081BC: .4byte _080081C0 _080081C0: @ jump table .4byte _080081E0 @ case 0 .4byte _08008230 @ case 1 .4byte _08008284 @ case 2 .4byte _08008318 @ case 3 .4byte _080083AC @ case 4 .4byte _0800840C @ case 5 .4byte _08008468 @ case 6 .4byte _080084F4 @ case 7 _080081E0: movs r7, #0 ldr r1, _08008220 @ =0x03000000 ldr r6, _08008224 @ =0x00000FFF lsls r0, r2, #1 adds r4, r0, r1 ldr r5, _08008228 @ =0x0202BE30 movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 adds r3, r0, r1 _080081F4: lsls r2, r7, #2 ldrh r1, [r5] adds r0, r6, #0 ands r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] ldr r0, _0800822C @ =0x0201B130 adds r2, r2, r0 ldrh r1, [r2] adds r0, r6, #0 ands r0, r1 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r4, #4 adds r5, #4 adds r3, #4 adds r7, #1 cmp r7, #7 ble _080081F4 b _080088C8 .align 2, 0 _08008220: .4byte 0x03000000 _08008224: .4byte 0x00000FFF _08008228: .4byte 0x0202BE30 _0800822C: .4byte 0x0201B130 _08008230: movs r7, #0 ldr r1, _08008274 @ =0x03000000 ldr r6, _08008278 @ =0x00000FFF lsls r0, r2, #1 adds r4, r0, r1 ldr r5, _0800827C @ =0x0202BE30 movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 adds r3, r0, r1 _08008244: lsls r2, r7, #2 ldrh r1, [r5] adds r0, r6, #0 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] ldr r0, _08008280 @ =0x0201B130 adds r2, r2, r0 ldrh r1, [r2] adds r0, r6, #0 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r4, #4 adds r5, #4 adds r3, #4 adds r7, #1 cmp r7, #7 ble _08008244 b _080088C8 .align 2, 0 _08008274: .4byte 0x03000000 _08008278: .4byte 0x00000FFF _0800827C: .4byte 0x0202BE30 _08008280: .4byte 0x0201B130 _08008284: movs r7, #0 adds r1, r2, #1 mov ip, r1 ldr r0, _0800830C @ =0x03000000 mov sb, r0 movs r1, #0xf0 lsls r1, r1, #4 mov sl, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r6, r0, r2 ldr r0, _08008310 @ =0x0202BE30 mov r8, r0 lsls r1, r1, #1 adds r5, r1, r2 _080082A8: lsls r3, r7, #1 lsls r4, r7, #2 mov r2, r8 ldrh r1, [r2] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r3, ip lsls r2, r3, #1 add r2, sb mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r1, _08008314 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sb ldrh r1, [r4] mov r0, sl ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, #4 adds r6, #4 movs r0, #4 add r8, r0 adds r7, #1 cmp r7, #7 ble _080082A8 b _080088C8 .align 2, 0 _0800830C: .4byte 0x03000000 _08008310: .4byte 0x0202BE30 _08008314: .4byte 0x0201B130 _08008318: movs r7, #0 adds r1, r2, #1 mov ip, r1 ldr r0, _080083A0 @ =0x03000000 mov sb, r0 movs r1, #0xff lsls r1, r1, #4 mov sl, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r6, r0, r2 ldr r0, _080083A4 @ =0x0202BE30 mov r8, r0 lsls r1, r1, #1 adds r5, r1, r2 _0800833C: lsls r3, r7, #1 lsls r4, r7, #2 mov r2, r8 ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r3, ip lsls r2, r3, #1 add r2, sb mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r1, _080083A8 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sb ldrh r1, [r4] mov r0, sl ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, #4 adds r6, #4 movs r0, #4 add r8, r0 adds r7, #1 cmp r7, #7 ble _0800833C b _080088C8 .align 2, 0 _080083A0: .4byte 0x03000000 _080083A4: .4byte 0x0202BE30 _080083A8: .4byte 0x0201B130 _080083AC: movs r7, #0 adds r2, #1 mov ip, r2 ldr r1, _080083FC @ =0x03000000 mov sb, r1 ldr r2, _08008400 @ =0x00000FFF mov r8, r2 ldr r6, _08008404 @ =0x0202BE30 mov r1, ip lsls r0, r1, #1 mov r2, sb adds r4, r0, r2 mov r5, ip _080083C6: lsls r3, r7, #2 ldrh r1, [r6] mov r0, r8 ands r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #2 adds r2, r5, r0 lsls r2, r2, #1 add r2, sb ldr r1, _08008408 @ =0x0201B130 adds r3, r3, r1 ldrh r1, [r3] mov r0, r8 ands r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] adds r6, #4 adds r4, #4 adds r5, #2 adds r7, #1 cmp r7, #7 ble _080083C6 b _080088C8 .align 2, 0 _080083FC: .4byte 0x03000000 _08008400: .4byte 0x00000FFF _08008404: .4byte 0x0202BE30 _08008408: .4byte 0x0201B130 _0800840C: movs r7, #0 adds r2, #1 mov ip, r2 ldr r6, _08008458 @ =0x03000000 ldr r2, _0800845C @ =0x00000FFF mov r8, r2 ldr r5, _08008460 @ =0x0202BE30 _0800841A: lsls r2, r7, #1 add r2, ip lsls r3, r2, #1 adds r3, r3, r6 lsls r4, r7, #2 ldrh r1, [r5] mov r0, r8 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #2 adds r2, r2, r0 lsls r2, r2, #1 adds r2, r2, r6 ldr r1, _08008464 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] mov r0, r8 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] adds r5, #4 adds r7, #1 cmp r7, #7 ble _0800841A b _080088C8 .align 2, 0 _08008458: .4byte 0x03000000 _0800845C: .4byte 0x00000FFF _08008460: .4byte 0x0202BE30 _08008464: .4byte 0x0201B130 _08008468: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _080084E8 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _080084EC @ =0x0202BE30 _0800847E: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 lsls r5, r7, #2 ldrh r1, [r6] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r6] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldr r1, _080084F0 @ =0x0201B130 adds r5, r5, r1 ldrh r1, [r5] movs r0, #0xff ands r0, r1 lsls r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r5] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #8 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r7, #1 cmp r7, #7 ble _0800847E b _080088C8 .align 2, 0 _080084E8: .4byte 0x03000000 _080084EC: .4byte 0x0202BE30 _080084F0: .4byte 0x0201B130 _080084F4: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _08008574 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _08008578 @ =0x0202BE30 _0800850A: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 lsls r5, r7, #2 ldrh r1, [r6] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r6] movs r0, #0xff lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldr r1, _0800857C @ =0x0201B130 adds r5, r5, r1 ldrh r1, [r5] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r3] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r5] movs r0, #0xff lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r7, #1 cmp r7, #7 ble _0800850A b _080088C8 .align 2, 0 _08008574: .4byte 0x03000000 _08008578: .4byte 0x0202BE30 _0800857C: .4byte 0x0201B130 _08008580: adds r0, r3, #0 cmp r3, #0 bge _08008588 adds r0, r3, #7 _08008588: asrs r0, r0, #3 lsls r0, r0, #3 subs r0, r3, r0 cmp r0, #7 bls _08008594 b _080088C8 _08008594: lsls r0, r0, #2 ldr r1, _080085A0 @ =_080085A4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080085A0: .4byte _080085A4 _080085A4: @ jump table .4byte _080085C4 @ case 0 .4byte _08008610 @ case 1 .4byte _08008660 @ case 2 .4byte _080086B0 @ case 3 .4byte _08008744 @ case 4 .4byte _080087A0 @ case 5 .4byte _080087F8 @ case 6 .4byte _08008850 @ case 7 _080085C4: movs r7, #0 ldr r1, _08008604 @ =0x03000000 movs r6, #0xff lsls r0, r2, #1 adds r4, r0, r1 ldr r5, _08008608 @ =0x0202BE30 movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 adds r3, r0, r1 _080085D8: lsls r2, r7, #2 ldrh r1, [r5] adds r0, r6, #0 ands r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] ldr r0, _0800860C @ =0x0201B130 adds r2, r2, r0 ldrh r1, [r2] adds r0, r6, #0 ands r0, r1 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r4, #4 adds r5, #4 adds r3, #4 adds r7, #1 cmp r7, #7 ble _080085D8 b _080088C8 .align 2, 0 _08008604: .4byte 0x03000000 _08008608: .4byte 0x0202BE30 _0800860C: .4byte 0x0201B130 _08008610: movs r7, #0 ldr r1, _08008654 @ =0x03000000 movs r6, #0xff lsls r0, r2, #1 adds r4, r0, r1 ldr r5, _08008658 @ =0x0202BE30 movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 adds r3, r0, r1 _08008624: lsls r2, r7, #2 ldrh r1, [r5] adds r0, r6, #0 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] ldr r0, _0800865C @ =0x0201B130 adds r2, r2, r0 ldrh r1, [r2] adds r0, r6, #0 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r4, #4 adds r5, #4 adds r3, #4 adds r7, #1 cmp r7, #7 ble _08008624 b _080088C8 .align 2, 0 _08008654: .4byte 0x03000000 _08008658: .4byte 0x0202BE30 _0800865C: .4byte 0x0201B130 _08008660: movs r7, #0 ldr r1, _080086A4 @ =0x03000000 movs r6, #0xff lsls r0, r2, #1 adds r4, r0, r1 ldr r5, _080086A8 @ =0x0202BE30 movs r2, #0x80 lsls r2, r2, #3 adds r0, r0, r2 adds r3, r0, r1 _08008674: lsls r2, r7, #2 ldrh r1, [r5] adds r0, r6, #0 ands r0, r1 lsls r0, r0, #8 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] ldr r0, _080086AC @ =0x0201B130 adds r2, r2, r0 ldrh r1, [r2] adds r0, r6, #0 ands r0, r1 lsls r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r4, #4 adds r5, #4 adds r3, #4 adds r7, #1 cmp r7, #7 ble _08008674 b _080088C8 .align 2, 0 _080086A4: .4byte 0x03000000 _080086A8: .4byte 0x0202BE30 _080086AC: .4byte 0x0201B130 _080086B0: movs r7, #0 adds r1, r2, #1 mov ip, r1 ldr r0, _08008738 @ =0x03000000 mov sb, r0 movs r1, #0xf0 mov sl, r1 movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 lsls r0, r2, #1 mov r2, sb adds r6, r0, r2 ldr r0, _0800873C @ =0x0202BE30 mov r8, r0 lsls r1, r1, #1 adds r5, r1, r2 _080086D2: lsls r3, r7, #1 lsls r4, r7, #2 mov r2, r8 ldrh r1, [r2] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r6] orrs r0, r1 strh r0, [r6] add r3, ip lsls r2, r3, #1 add r2, sb mov r0, r8 ldrh r1, [r0] mov r0, sl ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldr r1, _08008740 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r5] orrs r0, r1 strh r0, [r5] movs r2, #0x80 lsls r2, r2, #2 adds r3, r3, r2 lsls r3, r3, #1 add r3, sb ldrh r1, [r4] mov r0, sl ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] adds r5, #4 adds r6, #4 movs r0, #4 add r8, r0 adds r7, #1 cmp r7, #7 ble _080086D2 b _080088C8 .align 2, 0 _08008738: .4byte 0x03000000 _0800873C: .4byte 0x0202BE30 _08008740: .4byte 0x0201B130 _08008744: movs r7, #0 adds r2, #1 mov ip, r2 ldr r1, _08008794 @ =0x03000000 mov sb, r1 movs r2, #0xff mov r8, r2 ldr r6, _08008798 @ =0x0202BE30 mov r1, ip lsls r0, r1, #1 mov r2, sb adds r4, r0, r2 mov r5, ip _0800875E: lsls r3, r7, #2 ldrh r1, [r6] mov r0, r8 ands r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] movs r0, #0x80 lsls r0, r0, #2 adds r2, r5, r0 lsls r2, r2, #1 add r2, sb ldr r1, _0800879C @ =0x0201B130 adds r3, r3, r1 ldrh r1, [r3] mov r0, r8 ands r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] adds r6, #4 adds r4, #4 adds r5, #2 adds r7, #1 cmp r7, #7 ble _0800875E b _080088C8 .align 2, 0 _08008794: .4byte 0x03000000 _08008798: .4byte 0x0202BE30 _0800879C: .4byte 0x0201B130 _080087A0: movs r7, #0 adds r2, #1 mov ip, r2 ldr r6, _080087EC @ =0x03000000 movs r2, #0xff mov r8, r2 ldr r5, _080087F0 @ =0x0202BE30 _080087AE: lsls r2, r7, #1 add r2, ip lsls r3, r2, #1 adds r3, r3, r6 lsls r4, r7, #2 ldrh r1, [r5] mov r0, r8 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #2 adds r2, r2, r0 lsls r2, r2, #1 adds r2, r2, r6 ldr r1, _080087F4 @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] mov r0, r8 ands r0, r1 lsls r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] adds r5, #4 adds r7, #1 cmp r7, #7 ble _080087AE b _080088C8 .align 2, 0 _080087EC: .4byte 0x03000000 _080087F0: .4byte 0x0202BE30 _080087F4: .4byte 0x0201B130 _080087F8: movs r7, #0 adds r2, #1 mov ip, r2 ldr r6, _08008844 @ =0x03000000 movs r2, #0xff mov r8, r2 ldr r5, _08008848 @ =0x0202BE30 _08008806: lsls r2, r7, #1 add r2, ip lsls r3, r2, #1 adds r3, r3, r6 lsls r4, r7, #2 ldrh r1, [r5] mov r0, r8 ands r0, r1 lsls r0, r0, #8 ldrh r1, [r3] orrs r0, r1 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #2 adds r2, r2, r0 lsls r2, r2, #1 adds r2, r2, r6 ldr r1, _0800884C @ =0x0201B130 adds r4, r4, r1 ldrh r1, [r4] mov r0, r8 ands r0, r1 lsls r0, r0, #8 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] adds r5, #4 adds r7, #1 cmp r7, #7 ble _08008806 b _080088C8 .align 2, 0 _08008844: .4byte 0x03000000 _08008848: .4byte 0x0202BE30 _0800884C: .4byte 0x0201B130 _08008850: movs r7, #0 adds r0, r2, #1 mov ip, r0 adds r2, #0x10 mov sb, r2 ldr r1, _080088D8 @ =0x03000000 mov r8, r1 movs r2, #0x80 lsls r2, r2, #2 mov sl, r2 ldr r6, _080088DC @ =0x0202BE30 _08008866: lsls r4, r7, #1 mov r0, ip adds r3, r4, r0 lsls r2, r3, #1 add r2, r8 lsls r5, r7, #2 ldrh r1, [r6] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r4, sb lsls r2, r4, #1 add r2, r8 ldrh r1, [r6] movs r0, #0xf0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] add r3, sl lsls r3, r3, #1 add r3, r8 ldr r1, _080088E0 @ =0x0201B130 adds r5, r5, r1 ldrh r1, [r5] movs r0, #0xf ands r0, r1 lsls r0, r0, #0xc ldrh r1, [r3] orrs r0, r1 strh r0, [r3] add r4, sl lsls r4, r4, #1 add r4, r8 ldrh r1, [r5] movs r0, #0xf0 ands r0, r1 lsrs r0, r0, #4 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r6, #4 adds r7, #1 cmp r7, #7 ble _08008866 _080088C8: 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 _080088D8: .4byte 0x03000000 _080088DC: .4byte 0x0202BE30 _080088E0: .4byte 0x0201B130 thumb_func_start sub_88E4 sub_88E4: @ 0x080088E4 push {r4, r5, r6, lr} movs r2, #0 ldr r6, _08008934 @ =0x0202A1C0 ldr r5, _08008938 @ =0x0201A514 ldr r4, _0800893C @ =0x0202BEB8 ldr r3, _08008940 @ =0x0200B134 adds r1, r6, #0 _080088F2: adds r0, r2, r3 ldrb r0, [r0] strh r0, [r1] adds r1, #2 adds r2, #1 cmp r2, #0xcc ble _080088F2 ldr r0, _08008934 @ =0x0202A1C0 movs r1, #0 movs r2, #0xcd lsls r2, r2, #1 adds r0, r0, r2 movs r2, #0x13 _0800890C: strh r1, [r0] adds r0, #2 subs r2, #1 cmp r2, #0 bge _0800890C movs r0, #0 strh r0, [r5] strh r0, [r4] movs r2, #0 _0800891E: lsls r0, r2, #1 adds r0, r0, r6 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #4 bhi _08008968 lsls r0, r0, #2 ldr r1, _08008944 @ =_08008948 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08008934: .4byte 0x0202A1C0 _08008938: .4byte 0x0201A514 _0800893C: .4byte 0x0202BEB8 _08008940: .4byte 0x0200B134 _08008944: .4byte _08008948 _08008948: @ jump table .4byte _08008968 @ case 0 .4byte _08008962 @ case 1 .4byte _08008968 @ case 2 .4byte _08008962 @ case 3 .4byte _0800895C @ case 4 _0800895C: ldrh r0, [r5] adds r0, #1 strh r0, [r5] _08008962: ldrh r0, [r4] adds r0, #1 strh r0, [r4] _08008968: adds r2, #1 cmp r2, #0xcc ble _0800891E pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_8974 sub_8974: @ 0x08008974 push {r4, r5, lr} ldr r1, _080089E0 @ =0x086A61BC lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r1 movs r1, #0 ldrsh r4, [r0, r1] movs r0, #1 rsbs r0, r0, #0 cmp r4, r0 beq _08008A56 cmp r4, #0x63 bgt _080089FC ldr r1, _080089E4 @ =0x0202BF14 movs r0, #0 strh r0, [r1] adds r0, r4, #0 movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r0, r4, #0 movs r1, #5 bl __modsi3 adds r4, r0, #0 ldr r0, _080089E8 @ =0x086BB6F4 lsls r5, r5, #0x10 asrs r5, r5, #0xe adds r0, r5, r0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r1, r4, #3 subs r1, r1, r4 lsls r1, r1, #2 subs r1, r1, r4 lsls r1, r1, #7 ldr r0, [r0] adds r0, r0, r1 ldr r1, _080089EC @ =0x06013800 movs r2, #0x6c movs r3, #1 bl sub_10708 ldr r1, _080089F0 @ =0x040000D4 ldr r0, _080089F4 @ =0x086B15B4 adds r5, r5, r0 lsls r4, r4, #5 ldr r0, [r5] adds r0, r0, r4 str r0, [r1] ldr r0, _080089F8 @ =0x05000240 b _08008A4E .align 2, 0 _080089E0: .4byte 0x086A61BC _080089E4: .4byte 0x0202BF14 _080089E8: .4byte 0x086BB6F4 _080089EC: .4byte 0x06013800 _080089F0: .4byte 0x040000D4 _080089F4: .4byte 0x086B15B4 _080089F8: .4byte 0x05000240 _080089FC: ldr r1, _08008A5C @ =0x0202BF14 movs r0, #1 strh r0, [r1] subs r4, #0x64 adds r0, r4, #0 movs r1, #6 bl __divsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r0, r4, #0 movs r1, #6 bl __modsi3 adds r4, r0, #0 ldr r0, _08008A60 @ =0x086BB6DC lsls r5, r5, #0x10 asrs r5, r5, #0xe adds r0, r5, r0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r1, r4, #4 adds r1, r1, r4 lsls r1, r1, #3 subs r1, r1, r4 lsls r1, r1, #5 ldr r0, [r0] adds r0, r0, r1 ldr r1, _08008A64 @ =0x06014800 movs r2, #0x87 movs r3, #1 bl sub_10708 ldr r1, _08008A68 @ =0x040000D4 ldr r0, _08008A6C @ =0x086B159C adds r5, r5, r0 lsls r4, r4, #5 ldr r0, [r5] adds r0, r0, r4 str r0, [r1] ldr r0, _08008A70 @ =0x05000260 _08008A4E: str r0, [r1, #4] ldr r0, _08008A74 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _08008A56: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08008A5C: .4byte 0x0202BF14 _08008A60: .4byte 0x086BB6DC _08008A64: .4byte 0x06014800 _08008A68: .4byte 0x040000D4 _08008A6C: .4byte 0x086B159C _08008A70: .4byte 0x05000260 _08008A74: .4byte 0x80000010 thumb_func_start sub_8A78 sub_8A78: @ 0x08008A78 ldr r1, _08008AA0 @ =0x0202A1C0 lsls r0, r0, #0x10 asrs r2, r0, #0xf adds r1, r2, r1 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #4 bne _08008AAC ldr r0, _08008AA4 @ =0x086A61BC adds r0, r2, r0 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _08008AAC ldr r1, _08008AA8 @ =0x0202A588 movs r0, #1 b _08008AB0 .align 2, 0 _08008AA0: .4byte 0x0202A1C0 _08008AA4: .4byte 0x086A61BC _08008AA8: .4byte 0x0202A588 _08008AAC: ldr r1, _08008AB8 @ =0x0202A588 movs r0, #0 _08008AB0: strh r0, [r1] movs r3, #0 ldrsh r0, [r1, r3] bx lr .align 2, 0 _08008AB8: .4byte 0x0202A588 thumb_func_start sub_8ABC sub_8ABC: @ 0x08008ABC ldr r1, _08008AD0 @ =0x0200B134 movs r2, #0 adds r0, r1, #0 adds r0, #0xcc _08008AC4: strb r2, [r0] subs r0, #1 cmp r0, r1 bge _08008AC4 bx lr .align 2, 0 _08008AD0: .4byte 0x0200B134 thumb_func_start sub_8AD4 sub_8AD4: @ 0x08008AD4 push {lr} ldr r1, _08008AEC @ =0x080792C0 ldr r0, _08008AF0 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08008AEC: .4byte 0x080792C0 _08008AF0: .4byte 0x0200B0C0 thumb_func_start sub_8AF4 sub_8AF4: @ 0x08008AF4 push {r4, 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, _08008BD4 @ =0x04000008 movs r0, #4 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08008BD8 @ =0x0400000A adds r3, #5 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] adds r3, #0xfb adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08008BDC @ =0x0400000C adds r3, #0xa 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 r4, _08008BE0 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r4, #0x16] ldr r0, _08008BE4 @ =0x040000D4 ldr r1, _08008BE8 @ =0x080A8840 str r1, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r3, _08008BEC @ =0x80000100 str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008BF0 @ =0x080A2C00 str r1, [r0] ldr r1, _08008BF4 @ =0x06004000 str r1, [r0, #4] ldr r1, _08008BF8 @ =0x80000A00 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008BFC @ =0x080A4820 str r1, [r0] ldr r1, _08008C00 @ =0x06008000 str r1, [r0, #4] ldr r1, _08008C04 @ =0x80001C00 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008C08 @ =0x080A2400 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _08008C0C @ =0x80000400 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008C10 @ =0x080A4020 str r1, [r0] ldr r1, _08008C14 @ =0x06000800 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008C18 @ =0x080A8040 str r1, [r0] ldr r1, _08008C1C @ =0x06001000 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008C20 @ =0x080A8A40 str r1, [r0] ldr r1, _08008C24 @ =0x05000200 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _08008C28 @ =0x080A8C40 str r1, [r0] ldr r1, _08008C2C @ =0x06010000 str r1, [r0, #4] ldr r1, _08008C30 @ =0x80002010 str r1, [r0, #8] ldr r0, [r0, #8] bl sub_CBC bl sub_8C38 ldr r0, _08008C34 @ =sub_8F94 + 1 bl sub_FD5C ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] movs r0, #3 bl m4aSongNumStart pop {r4} pop {r0} bx r0 .align 2, 0 _08008BD4: .4byte 0x04000008 _08008BD8: .4byte 0x0400000A _08008BDC: .4byte 0x0400000C _08008BE0: .4byte 0x0200B0C0 _08008BE4: .4byte 0x040000D4 _08008BE8: .4byte 0x080A8840 _08008BEC: .4byte 0x80000100 _08008BF0: .4byte 0x080A2C00 _08008BF4: .4byte 0x06004000 _08008BF8: .4byte 0x80000A00 _08008BFC: .4byte 0x080A4820 _08008C00: .4byte 0x06008000 _08008C04: .4byte 0x80001C00 _08008C08: .4byte 0x080A2400 _08008C0C: .4byte 0x80000400 _08008C10: .4byte 0x080A4020 _08008C14: .4byte 0x06000800 _08008C18: .4byte 0x080A8040 _08008C1C: .4byte 0x06001000 _08008C20: .4byte 0x080A8A40 _08008C24: .4byte 0x05000200 _08008C28: .4byte 0x080A8C40 _08008C2C: .4byte 0x06010000 _08008C30: .4byte 0x80002010 _08008C34: .4byte sub_8F94 + 1 thumb_func_start sub_8C38 sub_8C38: @ 0x08008C38 ldr r2, _08008C70 @ =0x02002838 movs r3, #0 movs r1, #0 movs r0, #2 strh r0, [r2] movs r0, #3 strh r0, [r2, #2] strh r1, [r2, #4] movs r0, #1 strh r0, [r2, #6] strh r1, [r2, #8] strh r1, [r2, #0xa] strh r1, [r2, #0xc] strh r1, [r2, #0xe] strh r1, [r2, #0x16] strh r1, [r2, #0x12] strb r3, [r2, #0x14] ldr r0, _08008C74 @ =0x0200B134 adds r1, r0, #0 adds r1, #0xce ldrb r1, [r1] strb r1, [r2, #0x10] subs r0, #0x74 strb r3, [r0, #4] ldr r0, _08008C78 @ =0x02002850 strb r3, [r0] bx lr .align 2, 0 _08008C70: .4byte 0x02002838 _08008C74: .4byte 0x0200B134 _08008C78: .4byte 0x02002850 thumb_func_start sub_8C7C sub_8C7C: @ 0x08008C7C push {r4, r5, r6, r7, lr} bl sub_8F94 ldr r7, _08008CC4 @ =0x0200B0C0 ldrh r1, [r7, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0xf bne _08008CA0 ldr r1, _08008CC8 @ =0x02002850 movs r0, #1 strb r0, [r1] ldr r1, _08008CCC @ =0x02002838 movs r0, #0 strh r0, [r1, #0x16] ldrb r0, [r7, #3] adds r0, #1 strb r0, [r7, #3] _08008CA0: ldr r0, _08008CC8 @ =0x02002850 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _08008CAC b _08008F56 _08008CAC: ldr r5, _08008CCC @ =0x02002838 ldrh r4, [r5, #0xa] adds r3, r5, #0 cmp r4, #1 bne _08008CB8 b _08008E2E _08008CB8: cmp r4, #1 bgt _08008CD0 cmp r4, #0 beq _08008CDC b _08008F4C .align 2, 0 _08008CC4: .4byte 0x0200B0C0 _08008CC8: .4byte 0x02002850 _08008CCC: .4byte 0x02002838 _08008CD0: cmp r4, #2 beq _08008DC2 cmp r4, #3 bne _08008CDA b _08008F08 _08008CDA: b _08008F4C _08008CDC: ldrh r1, [r7, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08008CFC ldrh r4, [r5, #8] cmp r4, #1 bne _08008D1A movs r0, #0x6d bl m4aSongNumStart strh r6, [r5, #8] strh r6, [r5, #4] strh r4, [r5, #6] strh r4, [r5, #0xa] b _08008D1A _08008CFC: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08008D1A ldrh r0, [r5, #8] cmp r0, #0 bne _08008D1A movs r0, #0x6d bl m4aSongNumStart movs r0, #1 strh r0, [r5, #8] strh r0, [r5, #4] strh r6, [r5, #6] strh r0, [r5, #0xa] _08008D1A: ldr r2, _08008D50 @ =0x0200B0C0 ldrh r1, [r2, #0x18] movs r4, #1 adds r0, r4, #0 ands r0, r1 adds r5, r2, #0 cmp r0, #0 beq _08008D66 movs r0, #0x65 bl m4aSongNumStart ldr r1, _08008D54 @ =0x02002838 movs r2, #0 movs r3, #2 strh r3, [r1, #0xa] movs r0, #1 strb r0, [r1, #0x14] strh r2, [r1, #0xe] ldrh r0, [r1, #8] cmp r0, #0 bne _08008D58 strh r2, [r1, #4] strh r4, [r1, #6] strh r3, [r1] movs r0, #3 b _08008D62 .align 2, 0 _08008D50: .4byte 0x0200B0C0 _08008D54: .4byte 0x02002838 _08008D58: strh r4, [r1, #4] strh r2, [r1, #6] movs r0, #7 strh r0, [r1] movs r0, #0xb _08008D62: strh r0, [r1, #2] strh r2, [r1, #0xc] _08008D66: ldrh r1, [r5, #0x18] movs r4, #2 adds r0, r4, #0 ands r0, r1 cmp r0, #0 beq _08008DAA movs r0, #0x66 bl m4aSongNumStart ldrb r0, [r5, #3] adds r0, #1 movs r3, #0 strb r0, [r5, #3] ldr r1, _08008D98 @ =0x02002838 movs r2, #1 strh r2, [r1, #0x16] ldrh r0, [r1, #8] cmp r0, #0 bne _08008D9C strh r3, [r1, #4] strh r2, [r1, #6] strh r4, [r1] movs r0, #3 b _08008DA6 .align 2, 0 _08008D98: .4byte 0x02002838 _08008D9C: strh r2, [r1, #4] strh r3, [r1, #6] movs r0, #7 strh r0, [r1] movs r0, #0xb _08008DA6: strh r0, [r1, #2] strh r3, [r1, #0xc] _08008DAA: ldr r1, _08008DB8 @ =0x0200B0C0 ldrb r0, [r1, #4] cmp r0, #1 bhi _08008DBC movs r0, #0 strb r0, [r1, #6] b _08008F4C .align 2, 0 _08008DB8: .4byte 0x0200B0C0 _08008DBC: movs r0, #1 strb r0, [r1, #6] b _08008F4C _08008DC2: ldrh r1, [r7, #0x18] movs r0, #0x30 ands r0, r1 cmp r0, #0 beq _08008DDA movs r0, #0x67 bl m4aSongNumStart ldrb r1, [r5, #0x10] movs r0, #1 subs r0, r0, r1 strb r0, [r5, #0x10] _08008DDA: ldrh r1, [r7, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08008E00 movs r0, #0x65 bl m4aSongNumStart strh r6, [r5, #0xe] strh r6, [r5, #0xc] ldrb r0, [r5, #0x10] movs r2, #0xa1 lsls r2, r2, #1 adds r1, r7, r2 strb r0, [r1] bl sub_52B30 movs r0, #3 strh r0, [r5, #0xa] _08008E00: ldrh r0, [r7, #0x18] ands r4, r0 cmp r4, #0 beq _08008E12 movs r0, #0x66 bl m4aSongNumStart strb r6, [r5, #0x14] strh r6, [r5, #0xa] _08008E12: ldrh r0, [r5, #0xe] adds r0, #1 strh r0, [r5, #0xe] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _08008E22 b _08008F4C _08008E22: strh r6, [r5, #0xe] ldrh r1, [r5, #0x12] movs r0, #1 subs r0, r0, r1 strh r0, [r5, #0x12] b _08008F4C _08008E2E: ldrh r0, [r5, #8] cmp r0, #0 bne _08008E5C ldr r2, _08008E58 @ =0x086A6B14 movs r4, #0xc ldrsh r0, [r5, r4] movs r1, #4 subs r0, r1, r0 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r5] movs r4, #0xc ldrsh r0, [r5, r4] subs r1, r1, r0 lsls r1, r1, #1 adds r2, #0xa adds r1, r1, r2 ldrh r0, [r1] b _08008E76 .align 2, 0 _08008E58: .4byte 0x086A6B14 _08008E5C: ldr r1, _08008E94 @ =0x086A6B14 movs r2, #0xc ldrsh r0, [r5, r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r5] movs r4, #0xc ldrsh r0, [r5, r4] lsls r0, r0, #1 adds r1, #0xa adds r0, r0, r1 ldrh r0, [r0] _08008E76: strh r0, [r5, #2] ldr r0, _08008E98 @ =0x0200B0C0 ldr r1, [r0, #0x4c] movs r0, #1 ands r1, r0 cmp r1, #0 bne _08008EA0 ldrh r2, [r3, #0xc] movs r4, #0xc ldrsh r0, [r3, r4] cmp r0, #3 bgt _08008E9C adds r0, r2, #1 strh r0, [r3, #0xc] b _08008EA0 .align 2, 0 _08008E94: .4byte 0x086A6B14 _08008E98: .4byte 0x0200B0C0 _08008E9C: strh r1, [r3, #0xc] strh r1, [r3, #0xa] _08008EA0: ldr r0, _08008ED0 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08008ED8 ldr r4, _08008ED4 @ =0x02002838 ldrh r5, [r4, #8] cmp r5, #1 bne _08008F4C movs r0, #0x6d bl m4aSongNumStart movs r0, #0 strh r0, [r4, #8] strh r0, [r4, #4] strh r5, [r4, #6] movs r1, #2 strh r1, [r4] movs r1, #3 strh r1, [r4, #2] strh r0, [r4, #0xc] strh r0, [r4, #0xa] b _08008F4C .align 2, 0 _08008ED0: .4byte 0x0200B0C0 _08008ED4: .4byte 0x02002838 _08008ED8: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08008F4C ldr r4, _08008F04 @ =0x02002838 ldrh r5, [r4, #8] cmp r5, #0 bne _08008F4C movs r0, #0x6d bl m4aSongNumStart movs r0, #1 strh r0, [r4, #8] strh r0, [r4, #4] strh r5, [r4, #6] movs r0, #7 strh r0, [r4] movs r0, #0xb strh r0, [r4, #2] strh r5, [r4, #0xc] strh r5, [r4, #0xa] b _08008F4C .align 2, 0 _08008F04: .4byte 0x02002838 _08008F08: ldrh r0, [r5, #0xe] adds r0, #1 strh r0, [r5, #0xe] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _08008F4C strh r6, [r5, #0xe] ldrh r0, [r5, #8] cmp r0, #0 bne _08008F28 ldrh r1, [r5, #4] movs r0, #1 subs r0, r0, r1 strh r0, [r5, #4] b _08008F30 _08008F28: ldrh r1, [r5, #6] movs r0, #1 subs r0, r0, r1 strh r0, [r5, #6] _08008F30: ldr r1, _08008F5C @ =0x02002838 ldrh r0, [r1, #0xc] adds r0, #1 strh r0, [r1, #0xc] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08008F4C movs r0, #2 strh r0, [r1, #0x16] ldr r1, _08008F60 @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _08008F4C: ldr r0, _08008F60 @ =0x0200B0C0 ldr r1, _08008F5C @ =0x02002838 ldrh r1, [r1, #8] strb r1, [r0, #4] strb r1, [r0, #5] _08008F56: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08008F5C: .4byte 0x02002838 _08008F60: .4byte 0x0200B0C0 thumb_func_start sub_8F64 sub_8F64: @ 0x08008F64 push {lr} ldr r0, _08008F88 @ =sub_8F94 + 1 bl sub_FE04 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08008F8C @ =0x0201A4B4 movs r0, #1 strb r0, [r1] ldr r0, _08008F90 @ =0x02002838 ldrh r0, [r0, #0x16] bl sub_23C pop {r0} bx r0 .align 2, 0 _08008F88: .4byte sub_8F94 + 1 _08008F8C: .4byte 0x0201A4B4 _08008F90: .4byte 0x02002838 thumb_func_start sub_8F94 sub_8F94: @ 0x08008F94 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r5, _08009254 @ =0x0200B0C0 ldrh r0, [r5, #0x38] ldr r0, _08009258 @ =0x00000642 strh r0, [r5, #0x38] ldrh r0, [r5, #0x3a] ldr r0, _0800925C @ =0x00000808 strh r0, [r5, #0x3a] ldr r1, _08009260 @ =0x04000050 ldrh r0, [r5, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r5, #0x3a] strh r0, [r1] movs r0, #0xbe lsls r0, r0, #2 adds r6, r5, r0 movs r1, #0xec lsls r1, r1, #2 adds r1, r1, r5 mov sb, r1 ldr r4, _08009264 @ =0x02002838 ldrh r0, [r4] movs r2, #0xb8 muls r0, r2, r0 adds r0, r0, r6 str r0, [sp] ldrh r0, [r4, #2] muls r0, r2, r0 adds r0, r0, r6 mov sl, r0 ldrb r1, [r4, #0x10] lsls r1, r1, #1 movs r3, #0x12 ldrsh r0, [r4, r3] adds r0, #0xc adds r1, r1, r0 adds r0, r1, #0 muls r0, r2, r0 adds r0, r0, r6 mov r8, r0 ldrh r0, [r4, #4] strh r0, [r6] ldrh r0, [r4, #6] mov r7, sb strh r0, [r7] movs r0, #1 ldr r1, [sp] strh r0, [r1] mov r2, sl strh r0, [r2] movs r0, #0x14 ldrsb r0, [r4, r0] mov r3, r8 strh r0, [r3] ldr r0, _08009268 @ =0x086A6AD4 movs r1, #0x10 adds r2, r6, #0 bl sub_358 ldrh r0, [r4, #4] cmp r0, #1 bne _08009066 movs r0, #0x25 strh r0, [r6, #2] movs r0, #0x18 strh r0, [r6, #4] ldr r7, _0800926C @ =0x03005000 movs r0, #0xc0 lsls r0, r0, #2 adds r4, r5, r0 ldr r1, _08009270 @ =0x000001FF mov ip, r1 movs r5, #1 _08009032: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 mov r0, ip ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08009274 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _08009032 _08009066: ldr r0, _08009264 @ =0x02002838 ldrh r1, [r0, #6] cmp r1, #1 bne _080090BC movs r0, #0x8d mov r3, sb strh r0, [r3, #2] movs r0, #0x18 strh r0, [r3, #4] ldr r6, _0800926C @ =0x03005000 ldr r7, _08009274 @ =0xFFFFFE00 mov ip, r7 mov r4, sb adds r4, #8 movs r5, #1 _08009084: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r0, _08009270 @ =0x000001FF ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _08009084 _080090BC: movs r0, #0x20 ldr r7, [sp] strh r0, [r7, #2] strh r0, [r7, #4] ldr r1, _08009264 @ =0x02002838 ldrh r0, [r1] lsls r0, r0, #2 ldr r2, _08009268 @ =0x086A6AD4 adds r0, r0, r2 ldr r6, [r0] movs r5, #0 ldrh r3, [r6] cmp r5, r3 bge _0800913A movs r7, #0xd rsbs r7, r7, #0 mov ip, r7 ldr r0, _08009274 @ =0xFFFFFE00 mov sb, r0 ldr r4, [sp] adds r4, #8 _080090E6: ldrh r2, [r4] lsls r2, r2, #3 ldr r1, _0800926C @ =0x03005000 adds r2, r2, r1 ldrb r1, [r2, #1] mov r0, ip ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r4] lsls r3, r3, #3 ldr r2, _0800926C @ =0x03005000 adds r3, r3, r2 movs r7, #2 ldrsh r1, [r4, r7] ldr r2, [sp] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08009270 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 ldr r3, _0800926C @ =0x03005000 adds r1, r1, r3 ldr r7, [sp] ldrb r0, [r7, #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 _080090E6 _0800913A: movs r0, #0x88 mov r7, sl strh r0, [r7, #2] movs r0, #0x20 strh r0, [r7, #4] ldr r1, _08009264 @ =0x02002838 ldrh r0, [r1, #2] lsls r0, r0, #2 ldr r2, _08009268 @ =0x086A6AD4 adds r0, r0, r2 ldr r6, [r0] movs r5, #0 ldrh r3, [r6] cmp r5, r3 bge _080091BA movs r7, #0xd rsbs r7, r7, #0 mov ip, r7 ldr r0, _08009274 @ =0xFFFFFE00 mov sb, r0 mov r4, sl adds r4, #8 _08009166: ldrh r2, [r4] lsls r2, r2, #3 ldr r1, _0800926C @ =0x03005000 adds r2, r2, r1 ldrb r1, [r2, #1] mov r0, ip ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r4] lsls r3, r3, #3 ldr r2, _0800926C @ =0x03005000 adds r3, r3, r2 movs r7, #2 ldrsh r1, [r4, r7] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08009270 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 ldr r3, _0800926C @ =0x03005000 adds r1, r1, r3 mov r7, sl ldrb r0, [r7, #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 _08009166 _080091BA: mov r7, r8 ldrh r0, [r7] cmp r0, #1 bne _08009234 ldr r1, _08009278 @ =0x086A6B28 ldr r2, _08009264 @ =0x02002838 ldrh r0, [r2, #8] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r7, #2] ldrh r0, [r2, #8] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0, #2] strh r0, [r7, #4] ldr r6, _0800926C @ =0x03005000 movs r3, #0xd rsbs r3, r3, #0 mov sb, r3 ldr r7, _08009274 @ =0xFFFFFE00 mov ip, r7 mov r4, r8 adds r4, #8 movs r5, #4 _080091EC: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] mov r0, sb ands r0, r2 strb r0, [r1, #1] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, r8 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08009270 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r3, r8 ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _080091EC _08009234: movs r0, #0 ldr r1, [sp] strh r0, [r1] mov r2, sl strh r0, [r2] mov r3, r8 strh r0, [r3] 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 _08009254: .4byte 0x0200B0C0 _08009258: .4byte 0x00000642 _0800925C: .4byte 0x00000808 _08009260: .4byte 0x04000050 _08009264: .4byte 0x02002838 _08009268: .4byte 0x086A6AD4 _0800926C: .4byte 0x03005000 _08009270: .4byte 0x000001FF _08009274: .4byte 0xFFFFFE00 _08009278: .4byte 0x086A6B28 thumb_func_start sub_927C sub_927C: @ 0x0800927C push {lr} ldr r1, _08009294 @ =0x080792CC ldr r0, _08009298 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08009294: .4byte 0x080792CC _08009298: .4byte 0x0200B0C0 thumb_func_start sub_929C sub_929C: @ 0x0800929C push {r4, lr} bl sub_438 movs r3, #0x80 lsls r3, r3, #0x13 movs r0, #0x80 strh r0, [r3] ldr r1, _08009318 @ =0x0400000A movs r0, #5 strh r0, [r1] ldrh r0, [r3] movs r2, #0x80 lsls r2, r2, #2 adds r1, r2, #0 orrs r0, r1 strh r0, [r3] ldr r1, _0800931C @ =0x040000D4 ldr r0, _08009320 @ =0x080798C0 str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r2, _08009324 @ =0x80000400 str r2, [r1, #8] ldr r0, [r1, #8] ldr r0, _08009328 @ =0x0807A0C0 str r0, [r1] ldr r0, _0800932C @ =0x06004000 str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] ldr r0, _08009330 @ =gIntroCopyright_Pal str r0, [r1] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08009334 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r4, _08009338 @ =0x0200B0C0 ldrh r0, [r3] movs r2, #0 movs r1, #0 strh r0, [r4, #0x16] ldr r0, _0800933C @ =0x0202BF10 strh r1, [r0] ldr r0, _08009340 @ =0x0202C790 strb r2, [r0] ldr r0, _08009344 @ =sub_93F8 + 1 bl sub_898 bl sub_CBC bl sub_24C ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] pop {r4} pop {r0} bx r0 .align 2, 0 _08009318: .4byte 0x0400000A _0800931C: .4byte 0x040000D4 _08009320: .4byte 0x080798C0 _08009324: .4byte 0x80000400 _08009328: .4byte 0x0807A0C0 _0800932C: .4byte 0x06004000 _08009330: .4byte gIntroCopyright_Pal _08009334: .4byte 0x80000100 _08009338: .4byte 0x0200B0C0 _0800933C: .4byte 0x0202BF10 _08009340: .4byte 0x0202C790 _08009344: .4byte sub_93F8 + 1 thumb_func_start sub_9348 sub_9348: @ 0x08009348 ldr r1, _08009368 @ =0x0202BF10 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x78 ble _08009364 movs r0, #0 strh r0, [r1] ldr r1, _0800936C @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _08009364: bx lr .align 2, 0 _08009368: .4byte 0x0202BF10 _0800936C: .4byte 0x0200B0C0 thumb_func_start sub_9370 sub_9370: @ 0x08009370 push {lr} movs r0, #0 bl sub_FF74 bl sub_D10 ldr r1, _08009388 @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] pop {r0} bx r0 .align 2, 0 _08009388: .4byte 0x0200B0C0 thumb_func_start sub_938C sub_938C: @ 0x0800938C push {lr} ldr r1, _080093C0 @ =0x080792E0 ldr r0, _080093C4 @ =0x0202C790 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, _080093C8 @ =0x0202BF10 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r2, _080093CC @ =0x0200B0C0 ldrh r1, [r2, #0x18] movs r0, #9 ands r0, r1 cmp r0, #0 beq _080093BA movs r0, #4 strb r0, [r2, #3] _080093BA: pop {r0} bx r0 .align 2, 0 _080093C0: .4byte 0x080792E0 _080093C4: .4byte 0x0202C790 _080093C8: .4byte 0x0202BF10 _080093CC: .4byte 0x0200B0C0 thumb_func_start sub_93D0 sub_93D0: @ 0x080093D0 push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 bl sub_8BC ldr r1, _080093F4 @ =0x0201A4B4 movs r0, #0 strb r0, [r1] movs r0, #1 bl sub_23C pop {r0} bx r0 .align 2, 0 _080093F4: .4byte 0x0201A4B4 thumb_func_start sub_93F8 sub_93F8: @ 0x080093F8 push {lr} ldr r0, _08009480 @ =0x04000004 ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0800947C bl m4aSoundMain bl VBlankIntrWait ldr r1, _08009484 @ =0x040000D4 ldr r0, _08009488 @ =0x03005000 str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800948C @ =0x84000100 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0x80 lsls r2, r2, #0x13 ldr r1, _08009490 @ =0x0200B0C0 ldrh r0, [r1, #0x16] strh r0, [r2] adds r2, #0x10 movs r3, #0xba lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r3, #2 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 ldr r0, _08009494 @ =0x000002F6 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] _0800947C: pop {r0} bx r0 .align 2, 0 _08009480: .4byte 0x04000004 _08009484: .4byte 0x040000D4 _08009488: .4byte 0x03005000 _0800948C: .4byte 0x84000100 _08009490: .4byte 0x0200B0C0 _08009494: .4byte 0x000002F6 thumb_func_start sub_9498 sub_9498: @ 0x08009498 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} bl sub_490 bl sub_518 bl sub_578 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800961C @ =0x04000008 movs r3, #0xd0 lsls r3, r3, #5 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r7, #0x80 lsls r7, r7, #1 adds r1, r7, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08009620 @ =0x0400000A ldr r3, _08009624 @ =0x00005B01 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r7, #0x80 lsls r7, r7, #2 adds r1, r7, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08009628 @ =0x0400000C ldr r3, _0800962C @ =0x00005D02 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r7, #0x80 lsls r7, r7, #3 adds r1, r7, #0 orrs r0, r1 strh r0, [r2] ldr r1, _08009630 @ =0x0400000E ldr r3, _08009634 @ =0x00001F03 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r7, #0x80 lsls r7, r7, #4 adds r1, r7, #0 orrs r0, r1 strh r0, [r2] ldr r4, _08009638 @ =0x040000D4 ldr r0, _0800963C @ =0x080B9CC0 str r0, [r4] ldr r0, _08009640 @ =0x0600D000 str r0, [r4, #4] ldr r2, _08009644 @ =0x80000400 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08009648 @ =0x080BC4C0 str r0, [r4] ldr r0, _0800964C @ =0x0600D800 str r0, [r4, #4] ldr r1, _08009650 @ =0x80000800 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08009654 @ =0x080BB4C0 str r0, [r4] ldr r0, _08009658 @ =0x0600E800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800965C @ =0x080B3CA0 str r0, [r4] ldr r0, _08009660 @ =0x0600F800 str r0, [r4, #4] str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08009664 @ =0x080B44A0 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08009668 @ =0x80002C00 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0800966C @ =0x080BD4C0 str r0, [r4] ldr r0, _08009670 @ =0x0201C1C0 str r0, [r4, #4] ldr r0, _08009674 @ =0x80003400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r6, _08009678 @ =0x080B3AA0 movs r0, #0xa0 lsls r0, r0, #0x13 mov sl, r0 movs r2, #0x80 lsls r2, r2, #2 adds r0, r6, #0 mov r1, sl movs r3, #0x20 bl sub_10170 ldr r0, _0800967C @ =0x080C3CE0 str r0, [r4] ldr r0, _08009680 @ =0x06010000 str r0, [r4, #4] ldr r0, _08009684 @ =0x80004000 str r0, [r4, #8] ldr r0, [r4, #8] str r6, [r4] ldr r5, _08009688 @ =0x05000200 str r5, [r4, #4] ldr r1, _0800968C @ =0x80000100 mov r8, r1 str r1, [r4, #8] ldr r0, [r4, #8] bl sub_96A8 ldr r1, _08009690 @ =0x0200B0C0 ldr r2, _08009694 @ =0x0202ADA0 ldrh r3, [r2] movs r7, #0xba lsls r7, r7, #2 adds r0, r1, r7 movs r7, #0 mov sb, r7 strh r3, [r0] ldrh r3, [r2, #2] ldr r7, _08009698 @ =0x000002EA adds r0, r1, r7 strh r3, [r0] ldrh r3, [r2, #0x24] adds r7, #2 adds r0, r1, r7 strh r3, [r0] ldrh r3, [r2, #0x26] adds r7, #2 adds r0, r1, r7 strh r3, [r0] ldrh r3, [r2, #0xc] adds r7, #2 adds r0, r1, r7 strh r3, [r0] ldrh r3, [r2, #0xe] adds r7, #2 adds r0, r1, r7 strh r3, [r0] ldrh r3, [r2, #0x18] adds r7, #2 adds r0, r1, r7 strh r3, [r0] ldrh r0, [r2, #0x1a] ldr r2, _0800969C @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_CBC mov r0, sl adds r1, r6, #0 movs r2, #0 bl sub_FEB8 str r6, [r4] str r5, [r4, #4] mov r3, r8 str r3, [r4, #8] ldr r0, [r4, #8] mov r7, sb str r7, [r4] str r5, [r4, #4] ldr r0, _080096A0 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] ldr r1, _080096A4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800961C: .4byte 0x04000008 _08009620: .4byte 0x0400000A _08009624: .4byte 0x00005B01 _08009628: .4byte 0x0400000C _0800962C: .4byte 0x00005D02 _08009630: .4byte 0x0400000E _08009634: .4byte 0x00001F03 _08009638: .4byte 0x040000D4 _0800963C: .4byte 0x080B9CC0 _08009640: .4byte 0x0600D000 _08009644: .4byte 0x80000400 _08009648: .4byte 0x080BC4C0 _0800964C: .4byte 0x0600D800 _08009650: .4byte 0x80000800 _08009654: .4byte 0x080BB4C0 _08009658: .4byte 0x0600E800 _0800965C: .4byte 0x080B3CA0 _08009660: .4byte 0x0600F800 _08009664: .4byte 0x080B44A0 _08009668: .4byte 0x80002C00 _0800966C: .4byte 0x080BD4C0 _08009670: .4byte 0x0201C1C0 _08009674: .4byte 0x80003400 _08009678: .4byte 0x080B3AA0 _0800967C: .4byte 0x080C3CE0 _08009680: .4byte 0x06010000 _08009684: .4byte 0x80004000 _08009688: .4byte 0x05000200 _0800968C: .4byte 0x80000100 _08009690: .4byte 0x0200B0C0 _08009694: .4byte 0x0202ADA0 _08009698: .4byte 0x000002EA _0800969C: .4byte 0x000002F6 _080096A0: .4byte 0x80000010 _080096A4: .4byte 0x0202C790 thumb_func_start sub_96A8 sub_96A8: @ 0x080096A8 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r0, _0800975C @ =0x0201A450 mov ip, r0 movs r5, #0 movs r2, #0 movs r1, #0x78 mov r8, r1 mov r1, r8 strh r1, [r0, #0x10] movs r6, #0x50 strh r6, [r0, #0x12] strh r2, [r0, #0x18] movs r4, #1 strb r4, [r0, #0x1c] movs r0, #0x9c mov r1, ip strh r0, [r1, #0x30] movs r0, #0x92 strh r0, [r1, #0x32] mov r0, ip adds r0, #0x3c strb r5, [r0] strh r2, [r1, #0x3a] movs r0, #0x9d strh r0, [r1, #0x20] movs r0, #0x93 strh r0, [r1, #0x22] mov r0, ip adds r0, #0x2c strb r5, [r0] adds r0, #0x14 movs r1, #0x80 strh r1, [r0] adds r0, #2 strh r1, [r0] adds r0, #0xa strb r4, [r0] ldr r0, _08009760 @ =0x0202ADA0 ldr r1, _08009764 @ =0x0000FFA8 strh r1, [r0] adds r1, #0x22 strh r1, [r0, #2] strh r2, [r0, #8] strh r2, [r0, #0xa] movs r3, #0x80 lsls r3, r3, #1 strh r3, [r0, #0xc] strh r2, [r0, #0xe] strh r2, [r0, #0x14] movs r1, #0xfb strh r1, [r0, #0x24] strh r2, [r0, #0x26] strh r2, [r0, #0x2c] strh r2, [r0, #0x18] strh r2, [r0, #0x1a] mov r1, r8 mov r0, ip strh r1, [r0] strh r6, [r0, #2] strh r2, [r0, #8] strh r2, [r0, #0xa] strb r4, [r0, #0xc] ldr r0, _08009768 @ =0x0201C1B8 strb r5, [r0] ldr r1, _0800976C @ =0x0202ADD4 movs r0, #0x10 strb r0, [r1] ldr r0, _08009770 @ =0x0202C594 strh r2, [r0] ldr r0, _08009774 @ =0x02019C30 str r3, [r0] ldr r0, _08009778 @ =0x0201C188 str r3, [r0] ldr r0, _0800977C @ =0x0202BF10 strh r2, [r0] ldr r0, _08009780 @ =0x0202A578 strh r2, [r0] ldr r1, _08009784 @ =0x0202BEF0 movs r0, #0x20 str r0, [r1] ldr r1, _08009788 @ =0x0202C5A8 movs r0, #8 strb r0, [r1] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800975C: .4byte 0x0201A450 _08009760: .4byte 0x0202ADA0 _08009764: .4byte 0x0000FFA8 _08009768: .4byte 0x0201C1B8 _0800976C: .4byte 0x0202ADD4 _08009770: .4byte 0x0202C594 _08009774: .4byte 0x02019C30 _08009778: .4byte 0x0201C188 _0800977C: .4byte 0x0202BF10 _08009780: .4byte 0x0202A578 _08009784: .4byte 0x0202BEF0 _08009788: .4byte 0x0202C5A8 thumb_func_start sub_978C sub_978C: @ 0x0800978C push {r4, r5, r6, lr} bl sub_9CB8 ldr r1, _080097C0 @ =0x0201A450 ldrh r2, [r1, #8] movs r3, #8 ldrsh r0, [r1, r3] cmp r0, #0x24 bne _080097CC ldrh r0, [r1, #0xa] adds r0, #1 movs r2, #0 strh r0, [r1, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1b ble _0800981A strh r2, [r1, #0xa] ldr r0, _080097C4 @ =0x0202A578 strh r2, [r0] ldr r1, _080097C8 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0800981A .align 2, 0 _080097C0: .4byte 0x0201A450 _080097C4: .4byte 0x0202A578 _080097C8: .4byte 0x0202C790 _080097CC: ldrh r0, [r1, #0xa] adds r0, #1 strh r0, [r1, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080097E2 movs r0, #0 strh r0, [r1, #0xa] adds r0, r2, #1 strh r0, [r1, #8] _080097E2: ldr r3, _08009820 @ =0x0202BF10 ldr r5, _08009824 @ =0x086A77A8 ldr r4, _08009828 @ =0x0202A578 movs r6, #0 ldrsh r2, [r4, r6] lsls r2, r2, #2 ldr r0, _0800982C @ =0x0202C5A8 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 adds r2, r2, r0 adds r0, r5, #2 adds r0, r2, r0 movs r6, #0 ldrsh r1, [r3, r6] movs r3, #0 ldrsh r0, [r0, r3] cmp r1, r0 blt _0800981A adds r0, r2, r5 ldrh r0, [r0] bl m4aSongNumStart ldrh r0, [r4] adds r0, #1 strh r0, [r4] _0800981A: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08009820: .4byte 0x0202BF10 _08009824: .4byte 0x086A77A8 _08009828: .4byte 0x0202A578 _0800982C: .4byte 0x0202C5A8 thumb_func_start sub_9830 sub_9830: @ 0x08009830 push {lr} ldr r0, _08009868 @ =0x02019C30 ldr r2, [r0] subs r2, #0x10 str r2, [r0] ldr r1, _0800986C @ =0x0201C188 ldr r0, [r1] subs r0, #0x10 str r0, [r1] ldr r1, _08009870 @ =0x0201A450 ldrh r0, [r1] subs r0, #1 strh r0, [r1] cmp r2, #0x1f bgt _0800985E movs r0, #0 strh r0, [r1, #0xa] movs r0, #0x25 strh r0, [r1, #8] ldr r1, _08009874 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800985E: bl sub_9D70 pop {r0} bx r0 .align 2, 0 _08009868: .4byte 0x02019C30 _0800986C: .4byte 0x0201C188 _08009870: .4byte 0x0201A450 _08009874: .4byte 0x0202C790 thumb_func_start sub_9878 sub_9878: @ 0x08009878 push {lr} ldr r1, _080098AC @ =0x0201A450 ldrh r0, [r1, #0xa] adds r0, #1 strh r0, [r1, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080098A8 movs r0, #0 strh r0, [r1, #0xa] movs r0, #0x78 strh r0, [r1] movs r0, #0x58 strh r0, [r1, #2] movs r0, #1 strb r0, [r1, #0xc] movs r0, #0xd8 bl m4aSongNumStart ldr r1, _080098B0 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _080098A8: pop {r0} bx r0 .align 2, 0 _080098AC: .4byte 0x0201A450 _080098B0: .4byte 0x0202C790 thumb_func_start sub_98B4 sub_98B4: @ 0x080098B4 push {lr} ldr r1, _080098F0 @ =0x0201A450 ldrh r2, [r1, #8] movs r3, #8 ldrsh r0, [r1, r3] cmp r0, #0x2b bne _08009900 ldrh r0, [r1, #0xa] adds r0, #1 strh r0, [r1, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08009916 movs r0, #0 strb r0, [r1, #0xc] ldr r0, _080098F4 @ =0x080B3C60 ldr r1, _080098F8 @ =0x050000E0 movs r2, #0x20 movs r3, #0 bl sub_10170 movs r0, #8 bl m4aSongNumStart ldr r1, _080098FC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08009916 .align 2, 0 _080098F0: .4byte 0x0201A450 _080098F4: .4byte 0x080B3C60 _080098F8: .4byte 0x050000E0 _080098FC: .4byte 0x0202C790 _08009900: ldrh r0, [r1, #0xa] adds r0, #1 strh r0, [r1, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08009916 movs r0, #0 strh r0, [r1, #0xa] adds r0, r2, #1 strh r0, [r1, #8] _08009916: bl sub_9CB8 pop {r0} bx r0 thumb_func_start sub_9920 sub_9920: @ 0x08009920 push {lr} ldr r0, _08009954 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08009982 ldr r1, _08009958 @ =0x0202C594 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #7 bgt _08009964 adds r0, r2, #1 strh r0, [r1] ldr r1, _0800995C @ =0x0201C1B8 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, _08009960 @ =0x0202ADD4 ldrb r0, [r1] subs r0, #1 b _08009976 .align 2, 0 _08009954: .4byte 0x0202BF10 _08009958: .4byte 0x0202C594 _0800995C: .4byte 0x0201C1B8 _08009960: .4byte 0x0202ADD4 _08009964: ldr r0, _0800998C @ =0x0201C1C0 ldr r1, _08009990 @ =0x060036E0 movs r2, #8 movs r3, #8 bl sub_10708 ldr r1, _08009994 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 _08009976: strb r0, [r1] ldr r2, _08009998 @ =0x0201A450 ldrh r1, [r2, #0x18] movs r0, #1 subs r0, r0, r1 strh r0, [r2, #0x18] _08009982: bl sub_9E90 pop {r0} bx r0 .align 2, 0 _0800998C: .4byte 0x0201C1C0 _08009990: .4byte 0x060036E0 _08009994: .4byte 0x0202C790 _08009998: .4byte 0x0201A450 thumb_func_start sub_999C sub_999C: @ 0x0800999C push {r4, r5, lr} ldr r5, _08009A84 @ =0x0202BEF0 ldr r0, [r5] cmp r0, #0 ble _080099D0 subs r0, #2 str r0, [r5] cmp r0, #0 bgt _080099B2 movs r0, #0 str r0, [r5] _080099B2: ldr r4, _08009A88 @ =0x080B3AA0 movs r1, #0xa0 lsls r1, r1, #0x13 movs r2, #0x80 lsls r2, r2, #2 ldrh r3, [r5] adds r0, r4, #0 bl sub_10170 ldr r1, _08009A8C @ =0x05000200 ldrh r3, [r5] adds r0, r4, #0 movs r2, #0x20 bl sub_10170 _080099D0: ldr r5, _08009A90 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _080099EC ldr r2, _08009A94 @ =0x0201A450 ldrh r1, [r2, #0x18] movs r0, #1 subs r0, r0, r1 strh r0, [r2, #0x18] _080099EC: ldr r4, _08009A98 @ =0x0202ADA0 ldrh r0, [r4] subs r0, #1 strh r0, [r4] ldrh r0, [r5] movs r5, #1 ands r0, r5 cmp r0, #0 bne _08009A04 ldrh r0, [r4, #2] subs r0, #1 strh r0, [r4, #2] _08009A04: ldr r1, _08009A9C @ =0x0200B0C0 ldrh r2, [r4] movs r3, #0xba lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #2] ldr r2, _08009AA0 @ =0x000002EA adds r1, r1, r2 strh r0, [r1] ldrh r0, [r4, #0xa] adds r0, #1 strh r0, [r4, #0xa] ldr r2, _08009AA4 @ =0x086A7768 movs r1, #8 ldrsh r3, [r4, r1] lsls r1, r3, #2 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #2 ldrsh r1, [r1, r2] cmp r0, r1 ble _08009A78 ldr r1, _08009AA8 @ =0x086A7788 lsls r0, r3, #1 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 ldr r1, _08009AAC @ =0x0201C1C0 adds r0, r0, r1 ldr r1, _08009AB0 @ =0x060036E0 movs r2, #8 movs r3, #8 bl sub_10708 ldrh r0, [r4, #8] adds r0, #1 strh r0, [r4, #8] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _08009A78 ldr r1, _08009A94 @ =0x0201A450 adds r0, r1, #0 adds r0, #0x3c strb r5, [r0] subs r0, #0x10 strb r5, [r0] movs r0, #0 strb r0, [r1, #0x1c] movs r0, #0 strh r0, [r4, #0x14] ldr r1, _08009AB4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08009A78: bl sub_9E90 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08009A84: .4byte 0x0202BEF0 _08009A88: .4byte 0x080B3AA0 _08009A8C: .4byte 0x05000200 _08009A90: .4byte 0x0202BF10 _08009A94: .4byte 0x0201A450 _08009A98: .4byte 0x0202ADA0 _08009A9C: .4byte 0x0200B0C0 _08009AA0: .4byte 0x000002EA _08009AA4: .4byte 0x086A7768 _08009AA8: .4byte 0x086A7788 _08009AAC: .4byte 0x0201C1C0 _08009AB0: .4byte 0x060036E0 _08009AB4: .4byte 0x0202C790 thumb_func_start sub_9AB8 sub_9AB8: @ 0x08009AB8 push {r4, lr} ldr r1, _08009B54 @ =0x0201A450 ldrh r0, [r1, #0x30] subs r0, #0xe strh r0, [r1, #0x30] ldrh r0, [r1, #0x32] subs r0, #0xd strh r0, [r1, #0x32] ldr r3, _08009B58 @ =0x0202ADA0 ldrh r0, [r3, #0x24] subs r0, #0x10 strh r0, [r3, #0x24] ldrh r0, [r3, #0x26] adds r0, #1 strh r0, [r3, #0x26] ldrh r0, [r3, #0xc] subs r0, #0x10 strh r0, [r3, #0xc] ldrh r0, [r1, #0x20] subs r0, #0xe strh r0, [r1, #0x20] ldrh r0, [r1, #0x22] subs r0, #0xd strh r0, [r1, #0x22] adds r2, r1, #0 adds r2, #0x40 ldrh r0, [r2] adds r0, #0xb strh r0, [r2] adds r1, #0x42 ldrh r0, [r1] subs r0, #2 strh r0, [r1] ldr r0, _08009B5C @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 adds r4, r3, #0 cmp r0, #0 bne _08009B14 ldrh r0, [r4] subs r0, #1 strh r0, [r4] ldrh r0, [r4, #2] subs r0, #1 strh r0, [r4, #2] _08009B14: ldrh r0, [r4, #0xa] adds r0, #1 strh r0, [r4, #0xa] ldr r2, _08009B60 @ =0x086A7768 movs r1, #8 ldrsh r3, [r4, r1] lsls r1, r3, #2 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #2 ldrsh r1, [r1, r2] cmp r0, r1 ble _08009B94 adds r0, r3, #0 cmp r0, #6 bgt _08009B70 ldr r1, _08009B64 @ =0x086A7788 lsls r0, r3, #1 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 ldr r1, _08009B68 @ =0x0201C1C0 adds r0, r0, r1 ldr r1, _08009B6C @ =0x060036E0 movs r2, #8 movs r3, #8 bl sub_10708 b _08009B8A .align 2, 0 _08009B54: .4byte 0x0201A450 _08009B58: .4byte 0x0202ADA0 _08009B5C: .4byte 0x0202BF10 _08009B60: .4byte 0x086A7768 _08009B64: .4byte 0x086A7788 _08009B68: .4byte 0x0201C1C0 _08009B6C: .4byte 0x060036E0 _08009B70: ldr r1, _08009BF0 @ =0x086A7788 lsls r0, r3, #1 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 ldr r1, _08009BF4 @ =0x0201C1C0 adds r0, r0, r1 ldr r1, _08009BF8 @ =0x060032C0 movs r2, #0xa movs r3, #0xa bl sub_10708 _08009B8A: ldr r1, _08009BFC @ =0x0202ADA0 ldrh r0, [r1, #8] adds r0, #1 strh r0, [r1, #8] adds r4, r1, #0 _08009B94: adds r1, r4, #0 ldrh r0, [r1, #0x14] adds r0, #1 strh r0, [r1, #0x14] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08009BB0 movs r0, #0 strh r0, [r1, #0x14] ldr r1, _08009C00 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] _08009BB0: bl sub_9E90 ldr r1, _08009C04 @ =0x0200B0C0 ldrh r2, [r4] movs r3, #0xba lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #2] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x24] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x26] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xc] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0xe] ldr r2, _08009C08 @ =0x000002F2 adds r1, r1, r2 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08009BF0: .4byte 0x086A7788 _08009BF4: .4byte 0x0201C1C0 _08009BF8: .4byte 0x060032C0 _08009BFC: .4byte 0x0202ADA0 _08009C00: .4byte 0x0202C790 _08009C04: .4byte 0x0200B0C0 _08009C08: .4byte 0x000002F2 thumb_func_start nullsub_4 nullsub_4: @ 0x08009C0C bx lr thumb_func_start sub_9C10 sub_9C10: @ 0x08009C10 push {r4, lr} ldr r4, _08009C7C @ =0x0202ADA0 ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] ldr r0, _08009C80 @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08009C40 ldr r1, _08009C84 @ =0x0201A450 ldrh r0, [r1, #0x30] subs r0, #1 strh r0, [r1, #0x30] ldrh r0, [r1, #0x32] subs r0, #1 strh r0, [r1, #0x32] ldrh r0, [r1, #0x20] subs r0, #2 strh r0, [r1, #0x20] ldrh r0, [r1, #0x22] subs r0, #2 strh r0, [r1, #0x22] _08009C40: bl sub_9E90 ldr r1, _08009C88 @ =0x0200B0C0 ldrh r2, [r4, #0x18] movs r3, #0xbd lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x1a] ldr r2, _08009C8C @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] ldr r1, _08009C84 @ =0x0201A450 ldrh r0, [r1, #0x3a] adds r0, #1 strh r0, [r1, #0x3a] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x14 ble _08009C74 movs r0, #0 strh r0, [r1, #0x3a] ldr r1, _08009C90 @ =0x0202C790 ldrb r0, [r1] adds r0, #3 strb r0, [r1] _08009C74: pop {r4} pop {r0} bx r0 .align 2, 0 _08009C7C: .4byte 0x0202ADA0 _08009C80: .4byte 0x0202BF10 _08009C84: .4byte 0x0201A450 _08009C88: .4byte 0x0200B0C0 _08009C8C: .4byte 0x000002F6 _08009C90: .4byte 0x0202C790 thumb_func_start nullsub_5 nullsub_5: @ 0x08009C94 bx lr thumb_func_start nullsub_17 nullsub_17: @ 0x08009C98 bx lr thumb_func_start sub_9C9C sub_9C9C: @ 0x08009C9C push {lr} bl sub_10480 bl sub_10544 ldr r1, _08009CB4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08009CB4: .4byte 0x0202C790 thumb_func_start sub_9CB8 sub_9CB8: @ 0x08009CB8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _08009D54 @ =0x0201A450 movs r0, #8 ldrsh r1, [r4, r0] movs r0, #0xb8 muls r0, r1, r0 ldr r2, _08009D58 @ =0x0200B698 adds r5, r0, r2 movs r0, #0xc ldrsb r0, [r4, r0] strh r0, [r5] ldr r6, _08009D5C @ =0x086A769C ldr r1, _08009D60 @ =0xFFFFFD20 adds r2, r2, r1 adds r0, r6, #0 movs r1, #0x31 bl sub_358 ldrh r0, [r5] cmp r0, #1 bne _08009D46 ldrh r0, [r4] strh r0, [r5, #2] ldrh r0, [r4, #2] strh r0, [r5, #4] movs r2, #8 ldrsh r0, [r4, r2] adds r0, #4 lsls r0, r0, #2 adds r0, r0, r6 ldr r7, [r0] movs r6, #0 ldrh r0, [r7] cmp r6, r0 bge _08009D46 ldr r1, _08009D64 @ =0x03005000 mov ip, r1 ldr r2, _08009D68 @ =0xFFFFFE00 mov r8, r2 adds r4, r5, #0 adds r4, #8 _08009D0E: ldrh r3, [r4] lsls r3, r3, #3 add r3, ip movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _08009D6C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip ldrb r0, [r5, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r6, #1 ldrh r0, [r7] cmp r6, r0 blt _08009D0E _08009D46: movs r0, #0 strh r0, [r5] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08009D54: .4byte 0x0201A450 _08009D58: .4byte 0x0200B698 _08009D5C: .4byte 0x086A769C _08009D60: .4byte 0xFFFFFD20 _08009D64: .4byte 0x03005000 _08009D68: .4byte 0xFFFFFE00 _08009D6C: .4byte 0x000001FF thumb_func_start sub_9D70 sub_9D70: @ 0x08009D70 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _08009E68 @ =0x0200D078 mov r8, r0 ldr r6, _08009E6C @ =0x0201A450 movs r0, #0xc ldrsb r0, [r6, r0] mov r1, r8 strh r0, [r1] ldr r0, _08009E70 @ =0x086A769C ldr r2, _08009E74 @ =0xFFFFE340 add r2, r8 movs r1, #0x31 bl sub_358 mov r2, r8 ldrh r0, [r2] cmp r0, #1 bne _08009E50 ldr r5, _08009E78 @ =0x02019C30 movs r3, #0 ldrsh r0, [r5, r3] ldr r4, _08009E7C @ =0x0201C188 movs r2, #0 ldrsh r1, [r4, r2] movs r2, #0 bl sub_7C0 ldrh r0, [r6] mov r3, r8 strh r0, [r3, #2] ldrh r0, [r6, #2] strh r0, [r3, #4] movs r7, #0 ldr r6, _08009E80 @ =0x03005000 mov sl, r5 mov sb, r4 mov r5, r8 adds r5, #8 movs r0, #0xf rsbs r0, r0, #0 mov ip, r0 _08009DCC: ldrh r0, [r5] lsls r0, r0, #3 adds r3, r0, r6 lsls r0, r7, #2 ldr r1, _08009E84 @ =0x086A7798 adds r4, r0, r1 movs r2, #0 ldrsh r1, [r4, r2] mov r2, sl ldr r0, [r2] muls r1, r0, r1 cmp r1, #0 bge _08009DE8 adds r1, #0xff _08009DE8: asrs r1, r1, #8 str r1, [sp] mov r1, r8 movs r2, #2 ldrsh r0, [r1, r2] ldr r2, [sp] adds r1, r2, r0 ldr r2, _08009E88 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08009E8C @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r6 movs r3, #2 ldrsh r1, [r4, r3] mov r3, sb ldr r0, [r3] muls r0, r1, r0 cmp r0, #0 bge _08009E1C adds r0, #0xff _08009E1C: asrs r0, r0, #8 mov r1, r8 ldrb r1, [r1, #4] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #1] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #3] mov r0, ip ands r0, r2 strb r0, [r1, #3] adds r5, #8 adds r7, #1 cmp r7, #3 ble _08009DCC _08009E50: movs r0, #0 mov r2, r8 strh r0, [r2] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08009E68: .4byte 0x0200D078 _08009E6C: .4byte 0x0201A450 _08009E70: .4byte 0x086A769C _08009E74: .4byte 0xFFFFE340 _08009E78: .4byte 0x02019C30 _08009E7C: .4byte 0x0201C188 _08009E80: .4byte 0x03005000 _08009E84: .4byte 0x086A7798 _08009E88: .4byte 0x000001FF _08009E8C: .4byte 0xFFFFFE00 thumb_func_start sub_9E90 sub_9E90: @ 0x08009E90 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r3, _0800A12C @ =0x0200B0C0 ldrh r0, [r3, #0x38] movs r0, #0xf1 lsls r0, r0, #4 strh r0, [r3, #0x38] ldr r0, _0800A130 @ =0x0201C1B8 ldrb r1, [r0] ldr r0, _0800A134 @ =0x0202ADD4 ldrb r0, [r0] lsls r0, r0, #8 orrs r1, r0 ldrh r0, [r3, #0x3a] strh r1, [r3, #0x3a] ldr r1, _0800A138 @ =0x04000050 ldrh r0, [r3, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r3, #0x3a] strh r0, [r1] ldr r4, _0800A13C @ =0x0201A450 movs r0, #0x18 ldrsh r1, [r4, r0] movs r0, #0xb8 muls r0, r1, r0 movs r1, #0xbe lsls r1, r1, #2 adds r2, r3, r1 adds r0, r0, r2 mov r8, r0 movs r6, #0xa4 lsls r6, r6, #3 adds r6, r6, r3 mov sb, r6 movs r7, #0x8d lsls r7, r7, #3 adds r7, r7, r3 mov sl, r7 movs r0, #0x1c ldrsb r0, [r4, r0] mov r1, r8 strh r0, [r1] adds r0, r4, #0 adds r0, #0x2c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r6] adds r0, r4, #0 adds r0, #0x3c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r7] adds r0, r4, #0 adds r0, #0x4c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r6, _0800A140 @ =0x0200D638 strh r0, [r6] ldr r5, _0800A144 @ =0x086A769C adds r0, r5, #0 movs r1, #0x31 bl sub_358 mov r7, r8 ldrh r0, [r7] cmp r0, #1 bne _08009F9E ldrh r0, [r4, #0x10] strh r0, [r7, #2] ldrh r0, [r4, #0x12] strh r0, [r7, #4] movs r1, #0x18 ldrsh r0, [r4, r1] lsls r0, r0, #2 adds r0, r0, r5 ldr r0, [r0] str r0, [sp] movs r5, #0 ldrh r2, [r0] cmp r5, r2 bge _08009F9E ldr r7, _0800A148 @ =0x03005000 ldr r6, _0800A14C @ =0xFFFFFE00 mov ip, r6 mov r4, r8 adds r4, #8 _08009F4C: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #1] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r4, r0] mov r2, r8 movs r6, #2 ldrsh r0, [r2, r6] adds r1, r1, r0 ldr r2, _0800A150 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 mov r6, r8 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 ldr r6, [sp] ldrh r6, [r6] cmp r5, r6 blt _08009F4C _08009F9E: mov r7, sb ldrh r0, [r7] cmp r0, #1 bne _0800A01C ldr r0, _0800A13C @ =0x0201A450 ldrh r1, [r0, #0x20] strh r1, [r7, #2] ldrh r0, [r0, #0x22] strh r0, [r7, #4] ldr r6, _0800A148 @ =0x03005000 movs r0, #0xd rsbs r0, r0, #0 mov ip, r0 mov r4, sb adds r4, #8 movs r5, #3 _08009FBE: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] mov r0, ip ands r0, r2 movs r2, #4 orrs r0, r2 strb r0, [r1, #1] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, ip ands r0, r2 movs r7, #4 orrs r0, r7 strb r0, [r1, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800A150 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0800A14C @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r7, sb ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _08009FBE _0800A01C: mov r6, sl ldrh r0, [r6] cmp r0, #1 bne _0800A098 ldr r0, _0800A13C @ =0x0201A450 ldrh r1, [r0, #0x30] strh r1, [r6, #2] ldrh r0, [r0, #0x32] strh r0, [r6, #4] ldr r6, _0800A148 @ =0x03005000 ldr r7, _0800A14C @ =0xFFFFFE00 mov ip, r7 mov r4, sl adds r4, #8 movs r5, #3 _0800A03A: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800A150 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r7, sl ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _0800A03A _0800A098: ldr r6, _0800A140 @ =0x0200D638 ldrh r0, [r6] cmp r0, #1 bne _0800A10A ldr r0, _0800A13C @ =0x0201A450 adds r1, r0, #0 adds r1, #0x40 ldrh r1, [r1] strh r1, [r6, #2] adds r0, #0x42 ldrh r0, [r0] strh r0, [r6, #4] ldr r6, _0800A148 @ =0x03005000 movs r7, #0xd rsbs r7, r7, #0 mov ip, r7 ldr r4, _0800A140 @ =0x0200D638 adds r4, #8 movs r5, #7 _0800A0BE: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] mov r0, ip ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] ldr r2, _0800A140 @ =0x0200D638 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800A150 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0800A14C @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldr r7, _0800A140 @ =0x0200D638 ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _0800A0BE _0800A10A: movs r0, #0 mov r6, r8 strh r0, [r6] mov r7, sb strh r0, [r7] mov r1, sl strh r0, [r1] ldr r2, _0800A140 @ =0x0200D638 strh r0, [r2] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800A12C: .4byte 0x0200B0C0 _0800A130: .4byte 0x0201C1B8 _0800A134: .4byte 0x0202ADD4 _0800A138: .4byte 0x04000050 _0800A13C: .4byte 0x0201A450 _0800A140: .4byte 0x0200D638 _0800A144: .4byte 0x086A769C _0800A148: .4byte 0x03005000 _0800A14C: .4byte 0xFFFFFE00 _0800A150: .4byte 0x000001FF thumb_func_start sub_A154 sub_A154: @ 0x0800A154 push {lr} bl sub_518 ldr r1, _0800A168 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800A168: .4byte 0x0202C790 thumb_func_start sub_A16C sub_A16C: @ 0x0800A16C push {r4, lr} movs r2, #0x80 lsls r2, r2, #0x13 movs r0, #0 strh r0, [r2] ldr r1, _0800A250 @ =0x04000008 movs r3, #0xcc lsls r3, r3, #8 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800A254 @ =0x0400000A ldr r3, _0800A258 @ =0x0000DA01 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #2 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800A25C @ =0x0400000E ldr r3, _0800A260 @ =0x00001E03 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r0, _0800A264 @ =0x040000D4 ldr r1, _0800A268 @ =0x080D0700 str r1, [r0] ldr r1, _0800A26C @ =0x06006000 str r1, [r0, #4] ldr r2, _0800A270 @ =0x80001000 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A274 @ =0x080D2700 str r1, [r0] ldr r1, _0800A278 @ =0x0600D000 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A27C @ =0x080CBEE0 str r1, [r0] ldr r1, _0800A280 @ =0x0600F000 str r1, [r0, #4] ldr r1, _0800A284 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A288 @ =0x080CC6E0 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800A28C @ =0x80001E00 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A290 @ =0x080CBCE0 str r1, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800A294 @ =0x80000040 str r1, [r0, #8] ldr r0, [r0, #8] bl sub_A2A8 ldr r1, _0800A298 @ =0x0200B0C0 ldr r3, _0800A29C @ =0x0202ADA0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0x18] adds r4, #6 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x1a] ldr r2, _0800A2A0 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_CBC bl sub_10424 ldr r1, _0800A2A4 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A250: .4byte 0x04000008 _0800A254: .4byte 0x0400000A _0800A258: .4byte 0x0000DA01 _0800A25C: .4byte 0x0400000E _0800A260: .4byte 0x00001E03 _0800A264: .4byte 0x040000D4 _0800A268: .4byte 0x080D0700 _0800A26C: .4byte 0x06006000 _0800A270: .4byte 0x80001000 _0800A274: .4byte 0x080D2700 _0800A278: .4byte 0x0600D000 _0800A27C: .4byte 0x080CBEE0 _0800A280: .4byte 0x0600F000 _0800A284: .4byte 0x80000400 _0800A288: .4byte 0x080CC6E0 _0800A28C: .4byte 0x80001E00 _0800A290: .4byte 0x080CBCE0 _0800A294: .4byte 0x80000040 _0800A298: .4byte 0x0200B0C0 _0800A29C: .4byte 0x0202ADA0 _0800A2A0: .4byte 0x000002F6 _0800A2A4: .4byte 0x0202C790 thumb_func_start sub_A2A8 sub_A2A8: @ 0x0800A2A8 ldr r0, _0800A2D8 @ =0x0202ADA0 movs r2, #0 movs r1, #0x1c strh r1, [r0] ldr r1, _0800A2DC @ =0x0000FF2C strh r1, [r0, #2] strh r2, [r0, #4] movs r1, #0xe strh r1, [r0, #6] ldr r1, _0800A2E0 @ =0x0000FF5C strh r1, [r0, #0xc] subs r1, #0x54 strh r1, [r0, #0xe] strh r2, [r0, #0x10] movs r1, #0x10 strh r1, [r0, #0x12] strh r2, [r0, #0x18] strh r2, [r0, #0x1a] strh r2, [r0, #0x20] ldr r0, _0800A2E4 @ =0x0202BF10 strh r2, [r0] ldr r0, _0800A2E8 @ =0x0202A578 strh r2, [r0] bx lr .align 2, 0 _0800A2D8: .4byte 0x0202ADA0 _0800A2DC: .4byte 0x0000FF2C _0800A2E0: .4byte 0x0000FF5C _0800A2E4: .4byte 0x0202BF10 _0800A2E8: .4byte 0x0202A578 thumb_func_start nullsub_6 nullsub_6: @ 0x0800A2EC bx lr thumb_func_start sub_A2F0 sub_A2F0: @ 0x0800A2F0 push {r4, lr} ldr r3, _0800A384 @ =0x0202ADA0 ldrh r4, [r3, #6] ldrh r1, [r3, #2] adds r0, r4, r1 strh r0, [r3, #2] ldrh r2, [r3, #0x12] ldrh r1, [r3, #0xe] adds r0, r2, r1 strh r0, [r3, #0xe] ldrh r0, [r3, #0x18] subs r0, #1 strh r0, [r3, #0x18] ldrh r0, [r3, #0x1a] subs r0, #1 strh r0, [r3, #0x1a] ldrh r0, [r3] subs r0, #1 strh r0, [r3] ldrh r0, [r3, #0xc] adds r0, #1 strh r0, [r3, #0xc] ldr r0, _0800A388 @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800A330 subs r0, r4, #1 strh r0, [r3, #6] subs r0, r2, #1 strh r0, [r3, #0x12] _0800A330: ldr r1, _0800A38C @ =0x0200B0C0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0x18] adds r4, #6 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x1a] ldr r2, _0800A390 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] ldrh r0, [r3, #0x20] adds r0, #1 strh r0, [r3, #0x20] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x27 ble _0800A37E movs r0, #0 strh r0, [r3, #0x20] ldr r1, _0800A394 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] _0800A37E: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A384: .4byte 0x0202ADA0 _0800A388: .4byte 0x0202BF10 _0800A38C: .4byte 0x0200B0C0 _0800A390: .4byte 0x000002F6 _0800A394: .4byte 0x0202C790 thumb_func_start nullsub_7 nullsub_7: @ 0x0800A398 bx lr thumb_func_start sub_A39C sub_A39C: @ 0x0800A39C push {r4, lr} ldr r3, _0800A428 @ =0x0202ADA0 ldrh r0, [r3, #2] adds r0, #1 strh r0, [r3, #2] ldrh r0, [r3, #0xe] adds r0, #1 strh r0, [r3, #0xe] ldrh r0, [r3, #0x18] subs r0, #1 strh r0, [r3, #0x18] ldrh r0, [r3, #0x1a] subs r0, #1 strh r0, [r3, #0x1a] ldrh r0, [r3] subs r0, #1 strh r0, [r3] ldrh r0, [r3, #0xc] adds r0, #1 strh r0, [r3, #0xc] ldr r0, _0800A42C @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800A3DC ldrh r0, [r3, #6] subs r0, #1 strh r0, [r3, #6] ldrh r0, [r3, #0x12] subs r0, #1 strh r0, [r3, #0x12] _0800A3DC: ldr r1, _0800A430 @ =0x0200B0C0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0x18] adds r4, #6 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x1a] ldr r2, _0800A434 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_10480 bl sub_10544 ldr r1, _0800A438 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A428: .4byte 0x0202ADA0 _0800A42C: .4byte 0x0202BF10 _0800A430: .4byte 0x0200B0C0 _0800A434: .4byte 0x000002F6 _0800A438: .4byte 0x0202C790 thumb_func_start sub_A43C sub_A43C: @ 0x0800A43C push {lr} bl sub_518 ldr r1, _0800A450 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800A450: .4byte 0x0202C790 thumb_func_start sub_A454 sub_A454: @ 0x0800A454 push {r4, lr} movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800A5A0 @ =0x04000008 movs r3, #0xb4 lsls r3, r3, #7 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800A5A4 @ =0x0400000A ldr r3, _0800A5A8 @ =0x00001C01 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #2 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800A5AC @ =0x0400000C ldr r3, _0800A5B0 @ =0x00005D02 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800A5B4 @ =0x0400000E ldr r3, _0800A5B8 @ =0x00001F03 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r0, _0800A5BC @ =0x040000D4 ldr r1, _0800A5C0 @ =0x080DE520 str r1, [r0] ldr r1, _0800A5C4 @ =0x0600D000 str r1, [r0, #4] ldr r3, _0800A5C8 @ =0x80000800 str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A5CC @ =0x080DCD20 str r1, [r0] ldr r1, _0800A5D0 @ =0x0600E000 str r1, [r0, #4] ldr r2, _0800A5D4 @ =0x80000400 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A5D8 @ =0x080D4900 str r1, [r0] ldr r1, _0800A5DC @ =0x0600E800 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A5E0 @ =0x080D5900 str r1, [r0] ldr r1, _0800A5E4 @ =0x0600F800 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A5E8 @ =0x080DD520 str r1, [r0] ldr r1, _0800A5EC @ =0x03005C00 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A5F0 @ =0x080DDD20 str r1, [r0] ldr r1, _0800A5F4 @ =0x0201B180 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A5F8 @ =0x080D6100 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800A5FC @ =0x80003600 str r1, [r0, #8] ldr r1, [r0, #8] ldr r3, _0800A600 @ =0x080D4700 str r3, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _0800A604 @ =0x80000070 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800A608 @ =0x080DF520 str r1, [r0] ldr r1, _0800A60C @ =0x06010000 str r1, [r0, #4] ldr r1, _0800A610 @ =0x80001000 str r1, [r0, #8] ldr r1, [r0, #8] str r3, [r0] ldr r1, _0800A614 @ =0x05000200 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] bl sub_A628 bl sub_A87C ldr r1, _0800A618 @ =0x0200B0C0 ldr r2, _0800A61C @ =0x0202ADA0 ldrh r3, [r2] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #2] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0xc] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0xe] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x18] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x1a] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x24] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r0, [r2, #0x26] ldr r2, _0800A620 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_CBC bl sub_10424 ldr r1, _0800A624 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A5A0: .4byte 0x04000008 _0800A5A4: .4byte 0x0400000A _0800A5A8: .4byte 0x00001C01 _0800A5AC: .4byte 0x0400000C _0800A5B0: .4byte 0x00005D02 _0800A5B4: .4byte 0x0400000E _0800A5B8: .4byte 0x00001F03 _0800A5BC: .4byte 0x040000D4 _0800A5C0: .4byte 0x080DE520 _0800A5C4: .4byte 0x0600D000 _0800A5C8: .4byte 0x80000800 _0800A5CC: .4byte 0x080DCD20 _0800A5D0: .4byte 0x0600E000 _0800A5D4: .4byte 0x80000400 _0800A5D8: .4byte 0x080D4900 _0800A5DC: .4byte 0x0600E800 _0800A5E0: .4byte 0x080D5900 _0800A5E4: .4byte 0x0600F800 _0800A5E8: .4byte 0x080DD520 _0800A5EC: .4byte 0x03005C00 _0800A5F0: .4byte 0x080DDD20 _0800A5F4: .4byte 0x0201B180 _0800A5F8: .4byte 0x080D6100 _0800A5FC: .4byte 0x80003600 _0800A600: .4byte 0x080D4700 _0800A604: .4byte 0x80000070 _0800A608: .4byte 0x080DF520 _0800A60C: .4byte 0x06010000 _0800A610: .4byte 0x80001000 _0800A614: .4byte 0x05000200 _0800A618: .4byte 0x0200B0C0 _0800A61C: .4byte 0x0202ADA0 _0800A620: .4byte 0x000002F6 _0800A624: .4byte 0x0202C790 thumb_func_start sub_A628 sub_A628: @ 0x0800A628 ldr r1, _0800A65C @ =0x0202ADA0 movs r2, #0 movs r0, #0x2c strh r0, [r1] ldr r0, _0800A660 @ =0x0000FF8E strh r0, [r1, #2] ldr r3, _0800A664 @ =0x0201A450 adds r0, #0x46 strh r0, [r3] movs r0, #0x72 strh r0, [r3, #2] ldr r0, _0800A668 @ =0x0000FFCE strh r0, [r1, #0xc] movs r0, #0x1e strh r0, [r1, #0xe] strh r2, [r1, #0x18] strh r2, [r1, #0x1a] strh r2, [r1, #0x20] strh r2, [r1, #0x24] strh r2, [r1, #0x26] ldr r0, _0800A66C @ =0x0202BF10 strh r2, [r0] ldr r0, _0800A670 @ =0x0202A578 strh r2, [r0] bx lr .align 2, 0 _0800A65C: .4byte 0x0202ADA0 _0800A660: .4byte 0x0000FF8E _0800A664: .4byte 0x0201A450 _0800A668: .4byte 0x0000FFCE _0800A66C: .4byte 0x0202BF10 _0800A670: .4byte 0x0202A578 thumb_func_start sub_A674 sub_A674: @ 0x0800A674 push {r4, lr} ldr r4, _0800A6FC @ =0x0202ADA0 ldrh r0, [r4] subs r0, #0x11 strh r0, [r4] ldrh r0, [r4, #2] adds r0, #0xa strh r0, [r4, #2] ldr r1, _0800A700 @ =0x0201A450 ldrh r0, [r1] adds r0, #0x11 strh r0, [r1] ldrh r0, [r1, #2] subs r0, #0xa strh r0, [r1, #2] ldrh r0, [r4, #0x18] adds r0, #0x10 strh r0, [r4, #0x18] ldrh r0, [r4, #0xc] adds r0, #4 strh r0, [r4, #0xc] ldrh r0, [r4, #0xe] subs r0, #8 strh r0, [r4, #0xe] ldrh r0, [r4, #0x20] adds r0, #1 strh r0, [r4, #0x20] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0800A6BE movs r0, #0 strh r0, [r4, #0x20] ldr r1, _0800A704 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800A6BE: bl sub_A87C ldr r1, _0800A708 @ =0x0200B0C0 ldrh r2, [r4] movs r3, #0xba lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #2] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xc] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xe] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x18] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x1a] ldr r2, _0800A70C @ =0x000002F2 adds r1, r1, r2 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A6FC: .4byte 0x0202ADA0 _0800A700: .4byte 0x0201A450 _0800A704: .4byte 0x0202C790 _0800A708: .4byte 0x0200B0C0 _0800A70C: .4byte 0x000002F2 thumb_func_start sub_A710 sub_A710: @ 0x0800A710 push {r4, r5, r6, lr} ldr r5, _0800A7C8 @ =0x0202ADA0 ldrh r0, [r5, #0x24] subs r0, #1 movs r6, #0 strh r0, [r5, #0x24] ldr r2, _0800A7CC @ =0x0202BF10 ldrh r0, [r2] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800A742 ldrh r0, [r5] subs r0, #1 strh r0, [r5] ldrh r0, [r5, #2] adds r0, #1 strh r0, [r5, #2] ldr r1, _0800A7D0 @ =0x0201A450 ldrh r0, [r1] adds r0, #2 strh r0, [r1] ldrh r0, [r1, #2] subs r0, #2 strh r0, [r1, #2] _0800A742: movs r1, #0 ldrsh r0, [r2, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800A776 ldr r0, _0800A7D4 @ =0x040000D4 movs r3, #0xa0 lsls r3, r3, #0x13 str r3, [r0] ldr r4, _0800A7D8 @ =0x0202BE70 str r4, [r0, #4] ldr r1, _0800A7DC @ =0x80000010 str r1, [r0, #8] ldr r2, [r0, #8] ldr r2, _0800A7E0 @ =0x05000040 str r2, [r0] str r3, [r0, #4] str r1, [r0, #8] ldr r3, [r0, #8] str r4, [r0] str r2, [r0, #4] str r1, [r0, #8] ldr r0, [r0, #8] _0800A776: ldr r4, _0800A7E4 @ =0x0200B0C0 ldrh r1, [r5] movs r2, #0xba lsls r2, r2, #2 adds r0, r4, r2 strh r1, [r0] ldrh r1, [r5, #2] adds r2, #2 adds r0, r4, r2 strh r1, [r0] ldrh r1, [r5, #0x24] adds r2, #0xa adds r0, r4, r2 strh r1, [r0] ldrh r1, [r5, #0x26] adds r2, #2 adds r0, r4, r2 strh r1, [r0] bl sub_A87C movs r1, #0x20 ldrsh r0, [r5, r1] cmp r0, #2 bne _0800A7F4 ldr r1, _0800A7D4 @ =0x040000D4 ldr r0, _0800A7E8 @ =0x03005C00 str r0, [r1] ldr r0, _0800A7EC @ =0x0600E000 str r0, [r1, #4] ldr r0, _0800A7F0 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] strh r6, [r5, #0xc] strh r6, [r5, #0xe] movs r2, #0xbb lsls r2, r2, #2 adds r0, r4, r2 strh r6, [r0] movs r1, #0 adds r2, #2 b _0800A818 .align 2, 0 _0800A7C8: .4byte 0x0202ADA0 _0800A7CC: .4byte 0x0202BF10 _0800A7D0: .4byte 0x0201A450 _0800A7D4: .4byte 0x040000D4 _0800A7D8: .4byte 0x0202BE70 _0800A7DC: .4byte 0x80000010 _0800A7E0: .4byte 0x05000040 _0800A7E4: .4byte 0x0200B0C0 _0800A7E8: .4byte 0x03005C00 _0800A7EC: .4byte 0x0600E000 _0800A7F0: .4byte 0x80000400 _0800A7F4: cmp r0, #4 bne _0800A81C ldr r1, _0800A840 @ =0x040000D4 ldr r0, _0800A844 @ =0x0201B180 str r0, [r1] ldr r0, _0800A848 @ =0x0600E000 str r0, [r1, #4] ldr r0, _0800A84C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] strh r6, [r5, #0xc] strh r6, [r5, #0xe] movs r1, #0xbb lsls r1, r1, #2 adds r0, r4, r1 strh r6, [r0] movs r1, #0 ldr r2, _0800A850 @ =0x000002EE _0800A818: adds r0, r4, r2 strh r1, [r0] _0800A81C: ldr r1, _0800A854 @ =0x0202ADA0 ldrh r0, [r1, #0x20] adds r0, #1 strh r0, [r1, #0x20] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1d ble _0800A838 movs r0, #0 strh r0, [r1, #0x20] ldr r1, _0800A858 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] _0800A838: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800A840: .4byte 0x040000D4 _0800A844: .4byte 0x0201B180 _0800A848: .4byte 0x0600E000 _0800A84C: .4byte 0x80000400 _0800A850: .4byte 0x000002EE _0800A854: .4byte 0x0202ADA0 _0800A858: .4byte 0x0202C790 thumb_func_start nullsub_8 nullsub_8: @ 0x0800A85C bx lr thumb_func_start sub_A860 sub_A860: @ 0x0800A860 push {lr} bl sub_10480 bl sub_10544 ldr r1, _0800A878 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800A878: .4byte 0x0202C790 thumb_func_start sub_A87C sub_A87C: @ 0x0800A87C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _0800A92C @ =0x0200B0C0 ldrh r0, [r4, #0x38] ldr r0, _0800A930 @ =0x00001F50 strh r0, [r4, #0x38] ldrh r0, [r4, #0x3a] ldr r0, _0800A934 @ =0x00000808 strh r0, [r4, #0x3a] ldr r1, _0800A938 @ =0x04000050 ldrh r0, [r4, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r4, #0x3a] strh r0, [r1] movs r0, #0xbe lsls r0, r0, #2 adds r5, r4, r0 movs r0, #1 strh r0, [r5] ldr r0, _0800A93C @ =0x086A795C movs r1, #1 adds r2, r5, #0 bl sub_358 ldrh r0, [r5] cmp r0, #1 bne _0800A91C ldr r0, _0800A940 @ =0x0201A450 ldrh r1, [r0] strh r1, [r5, #2] ldrh r0, [r0, #2] strh r0, [r5, #4] ldr r7, _0800A944 @ =0x03005000 movs r2, #0xd rsbs r2, r2, #0 mov r8, r2 ldr r0, _0800A948 @ =0xFFFFFE00 mov ip, r0 movs r2, #0xc0 lsls r2, r2, #2 adds r4, r4, r2 movs r6, #3 _0800A8D4: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #5] mov r0, r8 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] 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 ldr r2, _0800A94C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r5, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _0800A8D4 _0800A91C: movs r0, #0 strh r0, [r5] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800A92C: .4byte 0x0200B0C0 _0800A930: .4byte 0x00001F50 _0800A934: .4byte 0x00000808 _0800A938: .4byte 0x04000050 _0800A93C: .4byte 0x086A795C _0800A940: .4byte 0x0201A450 _0800A944: .4byte 0x03005000 _0800A948: .4byte 0xFFFFFE00 _0800A94C: .4byte 0x000001FF thumb_func_start sub_A950 sub_A950: @ 0x0800A950 push {lr} bl sub_518 ldr r1, _0800A964 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800A964: .4byte 0x0202C790 thumb_func_start sub_A968 sub_A968: @ 0x0800A968 push {r4, lr} movs r2, #0x80 lsls r2, r2, #0x13 movs r0, #0 strh r0, [r2] ldr r1, _0800AA50 @ =0x04000008 movs r3, #0xcc lsls r3, r3, #8 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800AA54 @ =0x0400000A ldr r3, _0800AA58 @ =0x0000DA01 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #2 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800AA5C @ =0x0400000E ldr r3, _0800AA60 @ =0x00001E03 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 r0, _0800AA64 @ =0x040000D4 ldr r1, _0800AA68 @ =0x080E5F60 str r1, [r0] ldr r1, _0800AA6C @ =0x06006000 str r1, [r0, #4] ldr r3, _0800AA70 @ =0x80001000 str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800AA74 @ =0x080E7F60 str r1, [r0] ldr r1, _0800AA78 @ =0x0600D000 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800AA7C @ =0x080E1740 str r1, [r0] ldr r1, _0800AA80 @ =0x0600F000 str r1, [r0, #4] ldr r1, _0800AA84 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800AA88 @ =0x080E1F40 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800AA8C @ =0x80002000 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800AA90 @ =0x080E1540 str r1, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800AA94 @ =0x80000030 str r1, [r0, #8] ldr r0, [r0, #8] ldr r4, _0800AA98 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r4, #0x16] bl sub_AAA8 ldr r2, _0800AA9C @ =0x0202ADA0 ldrh r1, [r2] movs r3, #0xba lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] ldrh r1, [r2, #2] adds r3, #2 adds r0, r4, r3 strh r1, [r0] ldrh r1, [r2, #0xc] adds r3, #2 adds r0, r4, r3 strh r1, [r0] ldrh r1, [r2, #0xe] adds r3, #2 adds r0, r4, r3 strh r1, [r0] ldrh r1, [r2, #0x18] adds r3, #6 adds r0, r4, r3 strh r1, [r0] ldrh r0, [r2, #0x1a] ldr r1, _0800AAA0 @ =0x000002F6 adds r4, r4, r1 strh r0, [r4] bl sub_CBC bl sub_10424 ldr r1, _0800AAA4 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800AA50: .4byte 0x04000008 _0800AA54: .4byte 0x0400000A _0800AA58: .4byte 0x0000DA01 _0800AA5C: .4byte 0x0400000E _0800AA60: .4byte 0x00001E03 _0800AA64: .4byte 0x040000D4 _0800AA68: .4byte 0x080E5F60 _0800AA6C: .4byte 0x06006000 _0800AA70: .4byte 0x80001000 _0800AA74: .4byte 0x080E7F60 _0800AA78: .4byte 0x0600D000 _0800AA7C: .4byte 0x080E1740 _0800AA80: .4byte 0x0600F000 _0800AA84: .4byte 0x80000400 _0800AA88: .4byte 0x080E1F40 _0800AA8C: .4byte 0x80002000 _0800AA90: .4byte 0x080E1540 _0800AA94: .4byte 0x80000030 _0800AA98: .4byte 0x0200B0C0 _0800AA9C: .4byte 0x0202ADA0 _0800AAA0: .4byte 0x000002F6 _0800AAA4: .4byte 0x0202C790 thumb_func_start sub_AAA8 sub_AAA8: @ 0x0800AAA8 ldr r0, _0800AAD8 @ =0x0202ADA0 movs r2, #0 movs r1, #0x1c strh r1, [r0] ldr r1, _0800AADC @ =0x0000FF20 strh r1, [r0, #2] strh r2, [r0, #4] movs r1, #0xf strh r1, [r0, #6] ldr r1, _0800AAE0 @ =0x0000FF64 strh r1, [r0, #0xc] movs r1, #0xe0 strh r1, [r0, #0xe] strh r2, [r0, #0x10] ldr r1, _0800AAE4 @ =0x0000FFF1 strh r1, [r0, #0x12] strh r2, [r0, #0x18] strh r2, [r0, #0x1a] strh r2, [r0, #0x20] ldr r0, _0800AAE8 @ =0x0202BF10 strh r2, [r0] ldr r0, _0800AAEC @ =0x0202A578 strh r2, [r0] bx lr .align 2, 0 _0800AAD8: .4byte 0x0202ADA0 _0800AADC: .4byte 0x0000FF20 _0800AAE0: .4byte 0x0000FF64 _0800AAE4: .4byte 0x0000FFF1 _0800AAE8: .4byte 0x0202BF10 _0800AAEC: .4byte 0x0202A578 thumb_func_start nullsub_9 nullsub_9: @ 0x0800AAF0 bx lr thumb_func_start sub_AAF4 sub_AAF4: @ 0x0800AAF4 push {r4, lr} ldr r3, _0800AB7C @ =0x0202ADA0 ldrh r4, [r3, #6] ldrh r1, [r3, #2] adds r0, r4, r1 strh r0, [r3, #2] ldrh r2, [r3, #0x12] ldrh r1, [r3, #0xe] adds r0, r2, r1 strh r0, [r3, #0xe] ldrh r0, [r3, #0x18] subs r0, #1 strh r0, [r3, #0x18] ldrh r0, [r3] subs r0, #1 strh r0, [r3] ldrh r0, [r3, #0xc] adds r0, #1 strh r0, [r3, #0xc] ldr r0, _0800AB80 @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800AB2E subs r0, r4, #1 strh r0, [r3, #6] adds r0, r2, #1 strh r0, [r3, #0x12] _0800AB2E: ldr r1, _0800AB84 @ =0x0200B0C0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x18] movs r2, #0xbd lsls r2, r2, #2 adds r1, r1, r2 strh r0, [r1] ldrh r0, [r3, #0x20] adds r0, #1 strh r0, [r3, #0x20] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x27 ble _0800AB76 movs r0, #0 strh r0, [r3, #0x20] ldr r1, _0800AB88 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] _0800AB76: pop {r4} pop {r0} bx r0 .align 2, 0 _0800AB7C: .4byte 0x0202ADA0 _0800AB80: .4byte 0x0202BF10 _0800AB84: .4byte 0x0200B0C0 _0800AB88: .4byte 0x0202C790 thumb_func_start nullsub_10 nullsub_10: @ 0x0800AB8C bx lr thumb_func_start sub_AB90 sub_AB90: @ 0x0800AB8E push {r4, lr} ldr r3, _0800AC10 @ =0x0202ADA0 ldrh r4, [r3, #6] ldrh r1, [r3, #2] adds r0, r4, r1 strh r0, [r3, #2] ldrh r2, [r3, #0x12] ldrh r1, [r3, #0xe] adds r0, r2, r1 strh r0, [r3, #0xe] ldrh r0, [r3, #0x18] subs r0, #1 strh r0, [r3, #0x18] ldrh r0, [r3] subs r0, #1 strh r0, [r3] ldrh r0, [r3, #0xc] adds r0, #1 strh r0, [r3, #0xc] ldr r0, _0800AC14 @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800ABCA subs r0, r4, #1 strh r0, [r3, #6] adds r0, r2, #1 strh r0, [r3, #0x12] _0800ABCA: ldr r1, _0800AC18 @ =0x0200B0C0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x18] movs r2, #0xbd lsls r2, r2, #2 adds r1, r1, r2 strh r0, [r1] bl sub_10480 bl sub_10544 ldr r1, _0800AC1C @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800AC10: .4byte 0x0202ADA0 _0800AC14: .4byte 0x0202BF10 _0800AC18: .4byte 0x0200B0C0 _0800AC1C: .4byte 0x0202C790 thumb_func_start sub_AC20 sub_AC20: @ 0x0800AC20 push {lr} bl sub_518 ldr r1, _0800AC34 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800AC34: .4byte 0x0202C790 thumb_func_start sub_AC38 sub_AC38: @ 0x0800AC38 push {r4, lr} movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800AD78 @ =0x04000008 movs r3, #0xc0 lsls r3, r3, #4 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800AD7C @ =0x0400000A ldr r3, _0800AD80 @ =0x00004E01 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #2 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800AD84 @ =0x0400000C ldr r3, _0800AD88 @ =0x00005C02 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800AD8C @ =0x0400000E ldr r3, _0800AD90 @ =0x00001E03 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r0, _0800AD94 @ =0x040000D4 ldr r1, _0800AD98 @ =0x080F1980 str r1, [r0] ldr r1, _0800AD9C @ =0x06006000 str r1, [r0, #4] ldr r3, _0800ADA0 @ =0x80000400 str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800ADA4 @ =0x080EB160 str r1, [r0] ldr r1, _0800ADA8 @ =0x06007000 str r1, [r0, #4] ldr r2, _0800ADAC @ =0x80000800 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800ADB0 @ =0x080EA160 str r1, [r0] ldr r1, _0800ADB4 @ =0x0600E000 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800ADB8 @ =0x080EC160 str r1, [r0] ldr r1, _0800ADBC @ =0x0600F000 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800ADC0 @ =0x080EC960 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800ADC4 @ =0x80001400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800ADC8 @ =0x080BD4C0 str r1, [r0] ldr r1, _0800ADCC @ =0x03000000 str r1, [r0, #4] ldr r1, _0800ADD0 @ =0x80002000 str r1, [r0, #8] ldr r1, [r0, #8] ldr r3, _0800ADD4 @ =0x080E9F60 str r3, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _0800ADD8 @ =0x800000C0 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800ADDC @ =0x080F2180 str r1, [r0] ldr r1, _0800ADE0 @ =0x06010000 str r1, [r0, #4] ldr r1, _0800ADE4 @ =0x80001800 str r1, [r0, #8] ldr r1, [r0, #8] str r3, [r0] ldr r1, _0800ADE8 @ =0x05000200 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] bl sub_ADFC bl sub_B0E8 ldr r1, _0800ADEC @ =0x0200B0C0 ldr r2, _0800ADF0 @ =0x0202ADA0 ldrh r3, [r2] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #2] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0xc] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0xe] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x18] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x1a] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x24] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r0, [r2, #0x26] ldr r2, _0800ADF4 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_CBC bl sub_10424 ldr r1, _0800ADF8 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800AD78: .4byte 0x04000008 _0800AD7C: .4byte 0x0400000A _0800AD80: .4byte 0x00004E01 _0800AD84: .4byte 0x0400000C _0800AD88: .4byte 0x00005C02 _0800AD8C: .4byte 0x0400000E _0800AD90: .4byte 0x00001E03 _0800AD94: .4byte 0x040000D4 _0800AD98: .4byte 0x080F1980 _0800AD9C: .4byte 0x06006000 _0800ADA0: .4byte 0x80000400 _0800ADA4: .4byte 0x080EB160 _0800ADA8: .4byte 0x06007000 _0800ADAC: .4byte 0x80000800 _0800ADB0: .4byte 0x080EA160 _0800ADB4: .4byte 0x0600E000 _0800ADB8: .4byte 0x080EC160 _0800ADBC: .4byte 0x0600F000 _0800ADC0: .4byte 0x080EC960 _0800ADC4: .4byte 0x80001400 _0800ADC8: .4byte 0x080BD4C0 _0800ADCC: .4byte 0x03000000 _0800ADD0: .4byte 0x80002000 _0800ADD4: .4byte 0x080E9F60 _0800ADD8: .4byte 0x800000C0 _0800ADDC: .4byte 0x080F2180 _0800ADE0: .4byte 0x06010000 _0800ADE4: .4byte 0x80001800 _0800ADE8: .4byte 0x05000200 _0800ADEC: .4byte 0x0200B0C0 _0800ADF0: .4byte 0x0202ADA0 _0800ADF4: .4byte 0x000002F6 _0800ADF8: .4byte 0x0202C790 thumb_func_start sub_ADFC sub_ADFC: @ 0x0800ADFC push {r4, r5, lr} ldr r1, _0800AE54 @ =0x0201A450 movs r5, #0 movs r2, #0xb4 strh r2, [r1, #0x10] ldr r0, _0800AE58 @ =0x0000FFBC strh r0, [r1, #0x12] strh r2, [r1] strh r0, [r1, #2] movs r0, #0x80 strh r0, [r1, #0x20] movs r0, #0x88 strh r0, [r1, #0x22] ldr r4, _0800AE5C @ =0x0202ADA0 ldr r0, _0800AE60 @ =0x0000FF58 strh r0, [r4] adds r0, #0x40 strh r0, [r4, #2] strh r5, [r4, #8] strh r5, [r4, #0xa] strh r5, [r4, #4] ldr r0, _0800AE64 @ =0x03002300 ldr r1, _0800AE68 @ =0x06002EE0 movs r2, #8 movs r3, #8 bl sub_10708 movs r0, #0xa5 strh r0, [r4, #0xc] strh r5, [r4, #0xe] strh r5, [r4, #0x14] movs r0, #0xa0 strh r0, [r4, #0x18] strh r5, [r4, #0x1a] strh r5, [r4, #0x20] strh r5, [r4, #0x24] strh r5, [r4, #0x26] ldr r0, _0800AE6C @ =0x0202BF10 strh r5, [r0] ldr r0, _0800AE70 @ =0x0202A578 strh r5, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800AE54: .4byte 0x0201A450 _0800AE58: .4byte 0x0000FFBC _0800AE5C: .4byte 0x0202ADA0 _0800AE60: .4byte 0x0000FF58 _0800AE64: .4byte 0x03002300 _0800AE68: .4byte 0x06002EE0 _0800AE6C: .4byte 0x0202BF10 _0800AE70: .4byte 0x0202A578 thumb_func_start sub_AE74 sub_AE74: @ 0x0800AE74 push {r4, lr} ldr r1, _0800AF5C @ =0x0201A450 ldrh r0, [r1, #0x10] subs r0, #0x10 strh r0, [r1, #0x10] ldrh r0, [r1, #0x12] adds r0, #0xa strh r0, [r1, #0x12] ldrh r0, [r1] subs r0, #0x10 strh r0, [r1] ldrh r0, [r1, #2] adds r0, #0xa strh r0, [r1, #2] ldrh r0, [r1, #0x20] adds r0, #5 strh r0, [r1, #0x20] ldrh r0, [r1, #0x22] subs r0, #3 strh r0, [r1, #0x22] ldr r4, _0800AF60 @ =0x0202ADA0 ldrh r0, [r4, #0xc] subs r0, #0x10 strh r0, [r4, #0xc] ldrh r0, [r4, #0xe] adds r0, #1 strh r0, [r4, #0xe] ldrh r0, [r4, #0x18] subs r0, #0x10 strh r0, [r4, #0x18] ldrh r1, [r4, #4] ldrh r2, [r4] adds r0, r1, r2 strh r0, [r4] ldrh r0, [r4, #2] adds r0, #9 strh r0, [r4, #2] adds r1, #1 strh r1, [r4, #4] ldrh r0, [r4, #0xa] adds r0, #1 strh r0, [r4, #0xa] ldr r2, _0800AF64 @ =0x086A79FC movs r3, #8 ldrsh r1, [r4, r3] lsls r1, r1, #2 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #2 ldrsh r1, [r1, r2] cmp r0, r1 ble _0800AF02 ldrh r0, [r4, #8] adds r0, #1 strh r0, [r4, #8] ldr r1, _0800AF68 @ =0x086A7A1C movs r3, #8 ldrsh r0, [r4, r3] lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #1 ldr r1, _0800AF6C @ =0x03000000 adds r0, r0, r1 ldr r1, _0800AF70 @ =0x06002EE0 movs r2, #8 movs r3, #8 bl sub_10708 _0800AF02: bl sub_B0E8 ldr r1, _0800AF74 @ =0x0200B0C0 ldrh r2, [r4] movs r3, #0xba lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #2] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xc] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xe] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x18] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x1a] ldr r2, _0800AF78 @ =0x000002F2 adds r1, r1, r2 strh r0, [r1] ldrh r0, [r4, #0x20] adds r0, #1 strh r0, [r4, #0x20] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0800AF54 movs r0, #0 strh r0, [r4, #0x20] ldr r1, _0800AF7C @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800AF54: pop {r4} pop {r0} bx r0 .align 2, 0 _0800AF5C: .4byte 0x0201A450 _0800AF60: .4byte 0x0202ADA0 _0800AF64: .4byte 0x086A79FC _0800AF68: .4byte 0x086A7A1C _0800AF6C: .4byte 0x03000000 _0800AF70: .4byte 0x06002EE0 _0800AF74: .4byte 0x0200B0C0 _0800AF78: .4byte 0x000002F2 _0800AF7C: .4byte 0x0202C790 thumb_func_start sub_AF80 sub_AF80: @ 0x0800AF80 push {r4, lr} ldr r3, _0800B064 @ =0x0202ADA0 ldrh r0, [r3, #0xa] adds r0, #1 strh r0, [r3, #0xa] ldr r2, _0800B068 @ =0x086A79FC movs r4, #8 ldrsh r1, [r3, r4] lsls r1, r1, #2 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #2 ldrsh r1, [r1, r2] cmp r0, r1 ble _0800AFCC ldrh r1, [r3, #8] movs r4, #8 ldrsh r0, [r3, r4] cmp r0, #6 bgt _0800AFCC adds r0, r1, #1 strh r0, [r3, #8] ldr r1, _0800B06C @ =0x086A7A1C movs r2, #8 ldrsh r0, [r3, r2] lsls r0, r0, #1 adds r0, r0, r1 movs r4, #0 ldrsh r0, [r0, r4] lsls r0, r0, #1 ldr r1, _0800B070 @ =0x03000000 adds r0, r0, r1 ldr r1, _0800B074 @ =0x06002EE0 movs r2, #8 movs r3, #8 bl sub_10708 _0800AFCC: bl sub_B0E8 ldr r3, _0800B064 @ =0x0202ADA0 ldrh r0, [r3, #0x24] adds r0, #1 strh r0, [r3, #0x24] ldr r0, _0800B078 @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800AFFE ldr r1, _0800B07C @ =0x0201A450 ldrh r0, [r1, #0x10] subs r0, #1 strh r0, [r1, #0x10] ldrh r0, [r1, #0x12] adds r0, #1 strh r0, [r1, #0x12] ldrh r0, [r1] subs r0, #2 strh r0, [r1] ldrh r0, [r1, #2] adds r0, #2 strh r0, [r1, #2] _0800AFFE: ldr r1, _0800B080 @ =0x0200B0C0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0x18] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0x1a] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0x24] adds r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x26] ldr r2, _0800B084 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] ldrh r0, [r3, #0x2c] adds r0, #1 strh r0, [r3, #0x2c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1d ble _0800B05C movs r0, #0 strh r0, [r3, #0x2c] ldr r1, _0800B088 @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] _0800B05C: pop {r4} pop {r0} bx r0 .align 2, 0 _0800B064: .4byte 0x0202ADA0 _0800B068: .4byte 0x086A79FC _0800B06C: .4byte 0x086A7A1C _0800B070: .4byte 0x03000000 _0800B074: .4byte 0x06002EE0 _0800B078: .4byte 0x0202BF10 _0800B07C: .4byte 0x0201A450 _0800B080: .4byte 0x0200B0C0 _0800B084: .4byte 0x000002F6 _0800B088: .4byte 0x0202C790 thumb_func_start nullsub_11 nullsub_11: @ 0x0800B08C bx lr thumb_func_start sub_B090 sub_B090: @ 0x0800B090 push {lr} sub sp, #8 bl sub_10480 bl sub_578 movs r2, #0 str r2, [sp] ldr r1, _0800B0D4 @ =0x040000D4 mov r0, sp str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800B0D8 @ =0x85000100 str r0, [r1, #8] ldr r0, [r1, #8] add r0, sp, #4 strh r2, [r0] str r0, [r1] ldr r0, _0800B0DC @ =0x06010000 str r0, [r1, #4] ldr r0, _0800B0E0 @ =0x81002800 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_10544 ldr r1, _0800B0E4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] add sp, #8 pop {r0} bx r0 .align 2, 0 _0800B0D4: .4byte 0x040000D4 _0800B0D8: .4byte 0x85000100 _0800B0DC: .4byte 0x06010000 _0800B0E0: .4byte 0x81002800 _0800B0E4: .4byte 0x0202C790 thumb_func_start sub_B0E8 sub_B0E8: @ 0x0800B0E8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0800B2C0 @ =0x0200B0C0 ldrh r0, [r4, #0x38] movs r0, #0xf1 lsls r0, r0, #4 strh r0, [r4, #0x38] ldrh r0, [r4, #0x3a] ldr r0, _0800B2C4 @ =0x00000808 strh r0, [r4, #0x3a] ldr r1, _0800B2C8 @ =0x04000050 ldrh r0, [r4, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r4, #0x3a] strh r0, [r1] movs r0, #0xec lsls r0, r0, #2 adds r0, r0, r4 mov sl, r0 movs r1, #0xbe lsls r1, r1, #2 adds r1, r1, r4 mov r8, r1 movs r2, #0x8d lsls r2, r2, #3 adds r2, r2, r4 mov sb, r2 movs r0, #1 mov r7, sl strh r0, [r7] strh r0, [r1] strh r0, [r2] ldr r0, _0800B2CC @ =0x086A79EC movs r1, #3 mov r2, r8 bl sub_358 ldrh r0, [r7] cmp r0, #1 bne _0800B1B8 ldr r0, _0800B2D0 @ =0x0201A450 ldrh r1, [r0] strh r1, [r7, #2] ldrh r0, [r0, #2] strh r0, [r7, #4] ldr r6, _0800B2D4 @ =0x03005000 movs r0, #0xd rsbs r0, r0, #0 mov ip, r0 movs r1, #0xee lsls r1, r1, #2 adds r4, r4, r1 movs r5, #3 _0800B15A: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] mov r0, ip ands r0, r2 movs r2, #4 orrs r0, r2 strb r0, [r1, #1] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, ip ands r0, r2 movs r7, #4 orrs r0, r7 strb r0, [r1, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800B2D8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0800B2DC @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r7, sl ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _0800B15A _0800B1B8: mov r7, r8 ldrh r0, [r7] cmp r0, #1 bne _0800B234 ldr r0, _0800B2D0 @ =0x0201A450 ldrh r1, [r0, #0x10] strh r1, [r7, #2] ldrh r0, [r0, #0x12] strh r0, [r7, #4] ldr r6, _0800B2D4 @ =0x03005000 ldr r0, _0800B2DC @ =0xFFFFFE00 mov ip, r0 mov r4, r8 adds r4, #8 movs r5, #3 _0800B1D6: ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r4, r2] mov r7, r8 movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0800B2D8 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r2, r8 ldrb r0, [r2, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _0800B1D6 _0800B234: mov r1, sb ldrh r0, [r1] cmp r0, #1 bne _0800B2A2 ldr r0, _0800B2D0 @ =0x0201A450 ldrh r1, [r0, #0x20] mov r2, sb strh r1, [r2, #2] ldrh r0, [r0, #0x22] strh r0, [r2, #4] ldr r6, _0800B2D4 @ =0x03005000 movs r7, #0xd rsbs r7, r7, #0 mov ip, r7 mov r4, sb adds r4, #8 movs r5, #7 _0800B256: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] mov r0, ip ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800B2D8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0800B2DC @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r7, sb ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _0800B256 _0800B2A2: movs r0, #0 mov r7, sl strh r0, [r7] mov r1, r8 strh r0, [r1] mov r2, sb 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 _0800B2C0: .4byte 0x0200B0C0 _0800B2C4: .4byte 0x00000808 _0800B2C8: .4byte 0x04000050 _0800B2CC: .4byte 0x086A79EC _0800B2D0: .4byte 0x0201A450 _0800B2D4: .4byte 0x03005000 _0800B2D8: .4byte 0x000001FF _0800B2DC: .4byte 0xFFFFFE00 thumb_func_start sub_B2E0 sub_B2E0: @ 0x0800B2E0 push {lr} bl sub_518 ldr r1, _0800B2F4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800B2F4: .4byte 0x0202C790 thumb_func_start sub_B2F8 sub_B2F8: @ 0x0800B2F8 push {r4, lr} movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800B428 @ =0x04000008 movs r3, #0xf0 lsls r3, r3, #4 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800B42C @ =0x0400000A ldr r3, _0800B430 @ =0x0000DA01 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #2 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800B434 @ =0x0400000C ldr r3, _0800B438 @ =0x00001E02 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800B43C @ =0x0400000E ldr r3, _0800B440 @ =0x00001F03 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r0, _0800B444 @ =0x040000D4 ldr r1, _0800B448 @ =0x080FD7C0 str r1, [r0] ldr r1, _0800B44C @ =0x06007800 str r1, [r0, #4] ldr r2, _0800B450 @ =0x80000400 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800B454 @ =0x080FDFC0 str r1, [r0] ldr r1, _0800B458 @ =0x0600D000 str r1, [r0, #4] ldr r1, _0800B45C @ =0x80001000 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800B460 @ =0x080FCFC0 str r1, [r0] ldr r1, _0800B464 @ =0x0600F000 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800B468 @ =0x080F63A0 str r1, [r0] ldr r1, _0800B46C @ =0x0600F800 str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800B470 @ =0x080F6BA0 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800B474 @ =0x80003200 str r1, [r0, #8] ldr r1, [r0, #8] ldr r3, _0800B478 @ =0x080F61A0 str r3, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _0800B47C @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800B480 @ =0x080FFFC0 str r1, [r0] ldr r1, _0800B484 @ =0x06010000 str r1, [r0, #4] ldr r1, _0800B488 @ =0x80000800 str r1, [r0, #8] ldr r1, [r0, #8] str r3, [r0] ldr r1, _0800B48C @ =0x05000200 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] bl sub_B4A0 ldr r1, _0800B490 @ =0x0200B0C0 ldr r2, _0800B494 @ =0x0202ADA0 ldrh r3, [r2] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #2] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0xc] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0xe] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x18] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x1a] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r3, [r2, #0x24] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldrh r0, [r2, #0x26] ldr r2, _0800B498 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_CBC bl sub_10424 ldr r1, _0800B49C @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800B428: .4byte 0x04000008 _0800B42C: .4byte 0x0400000A _0800B430: .4byte 0x0000DA01 _0800B434: .4byte 0x0400000C _0800B438: .4byte 0x00001E02 _0800B43C: .4byte 0x0400000E _0800B440: .4byte 0x00001F03 _0800B444: .4byte 0x040000D4 _0800B448: .4byte 0x080FD7C0 _0800B44C: .4byte 0x06007800 _0800B450: .4byte 0x80000400 _0800B454: .4byte 0x080FDFC0 _0800B458: .4byte 0x0600D000 _0800B45C: .4byte 0x80001000 _0800B460: .4byte 0x080FCFC0 _0800B464: .4byte 0x0600F000 _0800B468: .4byte 0x080F63A0 _0800B46C: .4byte 0x0600F800 _0800B470: .4byte 0x080F6BA0 _0800B474: .4byte 0x80003200 _0800B478: .4byte 0x080F61A0 _0800B47C: .4byte 0x80000040 _0800B480: .4byte 0x080FFFC0 _0800B484: .4byte 0x06010000 _0800B488: .4byte 0x80000800 _0800B48C: .4byte 0x05000200 _0800B490: .4byte 0x0200B0C0 _0800B494: .4byte 0x0202ADA0 _0800B498: .4byte 0x000002F6 _0800B49C: .4byte 0x0202C790 thumb_func_start sub_B4A0 sub_B4A0: @ 0x0800B4A0 push {r4, r5, r6, r7, lr} ldr r1, _0800B540 @ =0x0202ADA0 movs r3, #0 movs r4, #0x1e strh r4, [r1, #0xc] ldr r0, _0800B544 @ =0x0000FF6A strh r0, [r1, #0xe] movs r0, #1 strh r0, [r1, #0x14] ldr r0, _0800B548 @ =0x0000FFFE strh r0, [r1] subs r0, #3 strh r0, [r1, #2] strh r3, [r1, #4] movs r2, #8 strh r2, [r1, #6] subs r0, #0x6b strh r0, [r1, #0x18] adds r0, #0x44 strh r0, [r1, #0x1a] strh r2, [r1, #0x1c] strh r3, [r1, #0x1e] strh r3, [r1, #0x24] strh r3, [r1, #0x26] ldr r3, _0800B54C @ =0x0201A450 movs r0, #0x32 strh r0, [r3] movs r1, #0x3c strh r1, [r3, #2] movs r0, #0x50 strh r0, [r3, #0x10] strh r1, [r3, #0x12] movs r0, #0x8c strh r0, [r3, #0x20] movs r2, #0x64 strh r2, [r3, #0x22] movs r0, #0xc8 strh r0, [r3, #0x30] movs r0, #0x5a strh r0, [r3, #0x32] adds r0, r3, #0 adds r0, #0x40 strh r1, [r0] adds r0, #2 strh r4, [r0] adds r1, r3, #0 adds r1, #0x50 movs r0, #0x96 strh r0, [r1] adds r0, r3, #0 adds r0, #0x52 strh r2, [r0] ldr r5, _0800B550 @ =0x0202C548 ldr r6, _0800B554 @ =0x0202BF10 ldr r7, _0800B558 @ =0x0202A578 ldr r0, _0800B55C @ =0x0202BEB4 mov ip, r0 movs r4, #0 movs r2, #0 adds r0, r3, #0 adds r0, #8 movs r1, #5 _0800B51C: strh r2, [r0] strh r2, [r0, #2] strb r4, [r0, #4] adds r0, #0x10 subs r1, #1 cmp r1, #0 bge _0800B51C movs r0, #0 strb r0, [r5] movs r0, #0 strh r0, [r6] strh r0, [r7] mov r1, ip strb r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800B540: .4byte 0x0202ADA0 _0800B544: .4byte 0x0000FF6A _0800B548: .4byte 0x0000FFFE _0800B54C: .4byte 0x0201A450 _0800B550: .4byte 0x0202C548 _0800B554: .4byte 0x0202BF10 _0800B558: .4byte 0x0202A578 _0800B55C: .4byte 0x0202BEB4 thumb_func_start sub_B560 sub_B560: @ 0x0800B560 push {r4, r5, lr} ldr r2, _0800B694 @ =0x0202ADA0 ldr r3, _0800B698 @ =0x086A7AC0 ldr r1, _0800B69C @ =0x0202C548 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r4, [r2, #0xc] adds r0, r0, r4 strh r0, [r2, #0xc] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r3 ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r5, [r2, #0xe] adds r0, r0, r5 strh r0, [r2, #0xe] ldr r3, _0800B6A0 @ =0x086A7AE4 ldr r4, _0800B6A4 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r4, r1] adds r0, r0, r3 ldrb r1, [r0] movs r0, #0x10 ands r0, r1 adds r5, r2, #0 cmp r0, #0 beq _0800B5C2 ldrh r0, [r5, #6] ldrh r2, [r5, #2] adds r1, r0, r2 strh r1, [r5, #2] subs r0, #2 strh r0, [r5, #6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xa rsbs r1, r1, #0 cmp r0, r1 bgt _0800B5C2 movs r0, #8 strh r0, [r5, #6] _0800B5C2: movs r1, #0 ldrsh r0, [r4, r1] adds r0, r0, r3 ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800B5EE ldrh r0, [r5, #0x1c] ldrh r2, [r5, #0x18] adds r1, r0, r2 strh r1, [r5, #0x18] subs r0, #2 strh r0, [r5, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xa rsbs r1, r1, #0 cmp r0, r1 bgt _0800B5EE movs r0, #8 strh r0, [r5, #0x1c] _0800B5EE: ldr r1, _0800B6A8 @ =0x0200B0C0 ldrh r2, [r5] movs r3, #0xba lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, #2] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, #0xc] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, #0xe] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, #0x18] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r5, #0x1a] ldr r5, _0800B6AC @ =0x000002F2 adds r1, r1, r5 strh r0, [r1] ldr r1, _0800B6B0 @ =0x086A7B34 ldr r3, _0800B6B4 @ =0x0202BEB4 movs r2, #0 ldrsb r2, [r3, r2] lsls r0, r2, #2 adds r0, r0, r1 movs r5, #0 ldrsh r1, [r4, r5] ldrb r0, [r0, #2] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _0800B64C ldr r1, _0800B6B8 @ =0x0201A450 lsls r0, r2, #4 adds r0, r0, r1 movs r1, #1 strb r1, [r0, #0xc] ldrb r0, [r3] adds r0, #1 strb r0, [r3] _0800B64C: bl sub_B7F8 ldr r4, _0800B6BC @ =0x0202A578 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r2, _0800B698 @ =0x086A7AC0 ldr r3, _0800B69C @ =0x0202C548 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #2 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1, #2] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 ble _0800B68C movs r0, #0 strh r0, [r4] ldrb r0, [r3] adds r0, #1 strb r0, [r3] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 ble _0800B68C ldr r1, _0800B6C0 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800B68C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800B694: .4byte 0x0202ADA0 _0800B698: .4byte 0x086A7AC0 _0800B69C: .4byte 0x0202C548 _0800B6A0: .4byte 0x086A7AE4 _0800B6A4: .4byte 0x0202BF10 _0800B6A8: .4byte 0x0200B0C0 _0800B6AC: .4byte 0x000002F2 _0800B6B0: .4byte 0x086A7B34 _0800B6B4: .4byte 0x0202BEB4 _0800B6B8: .4byte 0x0201A450 _0800B6BC: .4byte 0x0202A578 _0800B6C0: .4byte 0x0202C790 thumb_func_start sub_B6C4 sub_B6C4: @ 0x0800B6C4 push {r4, r5, lr} ldr r2, _0800B784 @ =0x086A7AE4 ldr r3, _0800B788 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r3, r1] adds r0, r0, r2 ldrb r1, [r0] movs r0, #0x10 ands r0, r1 adds r4, r2, #0 adds r2, r3, #0 ldr r3, _0800B78C @ =0x0202ADA0 cmp r0, #0 beq _0800B6FC ldrh r0, [r3, #6] ldrh r5, [r3, #2] adds r1, r0, r5 strh r1, [r3, #2] subs r0, #2 strh r0, [r3, #6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xa rsbs r1, r1, #0 cmp r0, r1 bgt _0800B6FC movs r0, #8 strh r0, [r3, #6] _0800B6FC: movs r1, #0 ldrsh r0, [r2, r1] adds r0, r0, r4 ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0800B728 ldrh r0, [r3, #0x1c] ldrh r2, [r3, #0x18] adds r1, r0, r2 strh r1, [r3, #0x18] subs r0, #2 strh r0, [r3, #0x1c] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xa rsbs r1, r1, #0 cmp r0, r1 bgt _0800B728 movs r0, #8 strh r0, [r3, #0x1c] _0800B728: ldr r1, _0800B790 @ =0x0200B0C0 ldrh r2, [r3] movs r4, #0xba lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #2] ldr r5, _0800B794 @ =0x000002EA adds r0, r1, r5 strh r2, [r0] ldrh r2, [r3, #0xc] adds r4, #4 adds r0, r1, r4 strh r2, [r0] ldrh r2, [r3, #0xe] adds r5, #4 adds r0, r1, r5 strh r2, [r0] ldrh r2, [r3, #0x18] adds r4, #4 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #0x1a] adds r5, #4 adds r1, r1, r5 strh r0, [r1] bl sub_B7F8 ldr r1, _0800B798 @ =0x0202A578 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x10 ble _0800B77C movs r0, #0 strh r0, [r1] ldr r1, _0800B79C @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800B77C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800B784: .4byte 0x086A7AE4 _0800B788: .4byte 0x0202BF10 _0800B78C: .4byte 0x0202ADA0 _0800B790: .4byte 0x0200B0C0 _0800B794: .4byte 0x000002EA _0800B798: .4byte 0x0202A578 _0800B79C: .4byte 0x0202C790 thumb_func_start sub_B7A0 sub_B7A0: @ 0x0800B7A0 push {lr} sub sp, #8 bl sub_578 movs r2, #0 str r2, [sp] ldr r1, _0800B7E4 @ =0x040000D4 mov r0, sp str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800B7E8 @ =0x85000100 str r0, [r1, #8] ldr r0, [r1, #8] add r0, sp, #4 strh r2, [r0] str r0, [r1] ldr r0, _0800B7EC @ =0x06010000 str r0, [r1, #4] ldr r0, _0800B7F0 @ =0x81002800 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_10480 bl sub_10544 ldr r1, _0800B7F4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] add sp, #8 pop {r0} bx r0 .align 2, 0 _0800B7E4: .4byte 0x040000D4 _0800B7E8: .4byte 0x85000100 _0800B7EC: .4byte 0x06010000 _0800B7F0: .4byte 0x81002800 _0800B7F4: .4byte 0x0202C790 thumb_func_start sub_B7F8 sub_B7F8: @ 0x0800B7F8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x24 ldr r6, _0800BA0C @ =0x0201A450 movs r1, #8 ldrsh r0, [r6, r1] lsls r2, r0, #4 adds r2, r2, r0 lsls r2, r2, #2 adds r2, r2, r0 lsls r2, r2, #4 ldr r3, _0800BA10 @ =0x0200B3B8 adds r2, r2, r3 str r2, [sp] movs r4, #0x18 ldrsh r1, [r6, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #4 adds r1, r3, #0 adds r1, #0xb8 adds r0, r0, r1 str r0, [sp, #4] movs r0, #0x28 ldrsh r1, [r6, r0] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #4 movs r4, #0xb8 lsls r4, r4, #1 adds r1, r3, r4 adds r0, r0, r1 str r0, [sp, #8] movs r0, #0x38 ldrsh r1, [r6, r0] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #4 adds r4, #0xb8 adds r1, r3, r4 adds r0, r0, r1 str r0, [sp, #0xc] adds r0, r6, #0 adds r0, #0x48 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #4 movs r4, #0xb8 lsls r4, r4, #2 adds r1, r3, r4 adds r0, r0, r1 str r0, [sp, #0x10] adds r0, r6, #0 adds r0, #0x58 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #4 movs r4, #0xe6 lsls r4, r4, #2 adds r1, r3, r4 adds r0, r0, r1 str r0, [sp, #0x14] movs r0, #0xc ldrsb r0, [r6, r0] strh r0, [r2] ldr r1, [sp, #4] movs r0, #0x1c ldrsb r0, [r6, r0] strh r0, [r1] ldr r1, [sp, #8] adds r0, r6, #0 adds r0, #0x2c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r1, [sp, #0xc] adds r0, r6, #0 adds r0, #0x3c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r1, [sp, #0x10] adds r0, r6, #0 adds r0, #0x4c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r1, [sp, #0x14] adds r0, r6, #0 adds r0, #0x5c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r4, _0800BA14 @ =0x086A7A78 adds r0, r4, #0 movs r1, #0x12 adds r2, r3, #0 bl sub_358 movs r5, #0 str r6, [sp, #0x18] _0800B8EC: lsls r0, r5, #2 mov r6, sp adds r4, r6, r0 ldr r1, [r4] ldrh r1, [r1] str r0, [sp, #0x20] adds r0, r5, #1 str r0, [sp, #0x1c] cmp r1, #1 bne _0800B9DA lsls r3, r5, #4 ldr r1, [sp, #0x18] adds r2, r3, r1 ldr r6, [sp, #0x20] ldr r1, _0800BA18 @ =0x086A7B34 adds r0, r6, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r6, [r2] adds r1, r1, r6 strh r1, [r2] ldrb r0, [r0, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r6, [r2, #2] adds r0, r0, r6 strh r0, [r2, #2] ldr r0, [r4] strh r1, [r0, #2] ldr r1, [r4] ldrh r0, [r2, #2] strh r0, [r1, #4] movs r0, #8 ldrsh r1, [r2, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r5, r0 lsls r0, r0, #2 ldr r1, _0800BA14 @ =0x086A7A78 adds r0, r0, r1 ldr r0, [r0] mov r8, r0 movs r7, #0 mov sb, r3 ldrh r2, [r0] cmp r7, r2 bge _0800B998 adds r5, r4, #0 ldr r3, _0800BA1C @ =0x03005000 mov ip, r3 ldr r4, _0800BA20 @ =0xFFFFFE00 mov sl, r4 movs r6, #8 _0800B958: ldr r0, [r5] adds r4, r0, r6 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip movs r3, #2 ldrsh r1, [r4, r3] movs r3, #2 ldrsh r0, [r0, r3] adds r1, r1, r0 ldr r3, _0800BA24 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip ldr r0, [r5] ldrb r0, [r0, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r6, #8 adds r7, #1 mov r4, r8 ldrh r4, [r4] cmp r7, r4 blt _0800B958 _0800B998: ldr r1, [sp, #0x18] add r1, sb ldrh r0, [r1, #0xa] adds r0, #1 movs r2, #0 strh r0, [r1, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800B9BC strh r2, [r1, #0xa] ldrh r2, [r1, #8] movs r6, #8 ldrsh r0, [r1, r6] cmp r0, #1 bgt _0800B9BC adds r0, r2, #1 strh r0, [r1, #8] _0800B9BC: ldr r1, [sp, #0x20] ldr r2, _0800BA18 @ =0x086A7B34 adds r0, r1, r2 ldr r3, _0800BA28 @ =0x0202BF10 movs r4, #0 ldrsh r1, [r3, r4] ldrb r0, [r0, #3] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _0800B9DA ldr r1, [sp, #0x18] add r1, sb movs r0, #0 strb r0, [r1, #0xc] _0800B9DA: ldr r5, [sp, #0x1c] cmp r5, #5 ble _0800B8EC ldr r0, [sp] movs r1, #0 strh r1, [r0] ldr r0, [sp, #4] strh r1, [r0] ldr r0, [sp, #8] strh r1, [r0] ldr r0, [sp, #0xc] strh r1, [r0] ldr r0, [sp, #0x10] strh r1, [r0] ldr r0, [sp, #0x14] strh r1, [r0] add sp, #0x24 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800BA0C: .4byte 0x0201A450 _0800BA10: .4byte 0x0200B3B8 _0800BA14: .4byte 0x086A7A78 _0800BA18: .4byte 0x086A7B34 _0800BA1C: .4byte 0x03005000 _0800BA20: .4byte 0xFFFFFE00 _0800BA24: .4byte 0x000001FF _0800BA28: .4byte 0x0202BF10 thumb_func_start sub_BA2C sub_BA2C: @ 0x0800BA2C ldr r1, _0800BA38 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] bx lr .align 2, 0 _0800BA38: .4byte 0x0202C790 thumb_func_start sub_BA3C sub_BA3C: @ 0x0800BA3C push {r4, r5, lr} movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _0800BB6C @ =0x04000008 movs r3, #0xd4 lsls r3, r3, #8 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800BB70 @ =0x0400000A ldr r3, _0800BB74 @ =0x0000D801 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #2 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0800BB78 @ =0x0400000C ldr r3, _0800BB7C @ =0x0000DC02 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, _0800BB80 @ =0x0400000E ldr r3, _0800BB84 @ =0x00000F03 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 r0, _0800BB88 @ =0x040000D4 ldr r1, _0800BB8C @ =0x08108A00 str r1, [r0] ldr r1, _0800BB90 @ =0x0600A000 str r1, [r0, #4] ldr r3, _0800BB94 @ =0x80001000 str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800BB98 @ =0x0810AA00 str r1, [r0] ldr r1, _0800BB9C @ =0x0600C000 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800BBA0 @ =0x08106A00 str r1, [r0] ldr r1, _0800BBA4 @ =0x0600E000 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800BBA8 @ =0x081011E0 str r1, [r0] ldr r1, _0800BBAC @ =0x06007800 str r1, [r0, #4] ldr r1, _0800BBB0 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800BBB4 @ =0x081019E0 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800BBB8 @ =0x80002800 str r1, [r0, #8] ldr r1, [r0, #8] ldr r5, _0800BBBC @ =0x08100FE0 str r5, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r4, _0800BBC0 @ =0x800000B0 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800BBC4 @ =0x0810CA00 str r1, [r0] ldr r1, _0800BBC8 @ =0x06010000 str r1, [r0, #4] str r3, [r0, #8] ldr r1, [r0, #8] str r5, [r0] ldr r1, _0800BBCC @ =0x05000200 str r1, [r0, #4] str r4, [r0, #8] ldr r0, [r0, #8] ldr r4, _0800BBD0 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r4, #0x16] bl sub_BBE0 ldr r1, _0800BBD4 @ =0x0202ADA0 ldrh r2, [r1] movs r3, #0xba lsls r3, r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r2, [r1, #2] adds r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r2, [r1, #0xc] adds r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r2, [r1, #0xe] adds r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r2, [r1, #0x18] adds r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r2, [r1, #0x1a] adds r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r2, [r1, #0x24] adds r3, #2 adds r0, r4, r3 strh r2, [r0] ldrh r0, [r1, #0x26] ldr r1, _0800BBD8 @ =0x000002F6 adds r4, r4, r1 strh r0, [r4] bl sub_CBC bl sub_10424 ldr r1, _0800BBDC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800BB6C: .4byte 0x04000008 _0800BB70: .4byte 0x0400000A _0800BB74: .4byte 0x0000D801 _0800BB78: .4byte 0x0400000C _0800BB7C: .4byte 0x0000DC02 _0800BB80: .4byte 0x0400000E _0800BB84: .4byte 0x00000F03 _0800BB88: .4byte 0x040000D4 _0800BB8C: .4byte 0x08108A00 _0800BB90: .4byte 0x0600A000 _0800BB94: .4byte 0x80001000 _0800BB98: .4byte 0x0810AA00 _0800BB9C: .4byte 0x0600C000 _0800BBA0: .4byte 0x08106A00 _0800BBA4: .4byte 0x0600E000 _0800BBA8: .4byte 0x081011E0 _0800BBAC: .4byte 0x06007800 _0800BBB0: .4byte 0x80000400 _0800BBB4: .4byte 0x081019E0 _0800BBB8: .4byte 0x80002800 _0800BBBC: .4byte 0x08100FE0 _0800BBC0: .4byte 0x800000B0 _0800BBC4: .4byte 0x0810CA00 _0800BBC8: .4byte 0x06010000 _0800BBCC: .4byte 0x05000200 _0800BBD0: .4byte 0x0200B0C0 _0800BBD4: .4byte 0x0202ADA0 _0800BBD8: .4byte 0x000002F6 _0800BBDC: .4byte 0x0202C790 thumb_func_start sub_BBE0 sub_BBE0: @ 0x0800BBE0 ldr r1, _0800BC30 @ =0x0202ADA0 movs r2, #0 ldr r0, _0800BC34 @ =0x0000FEFC strh r0, [r1] movs r0, #0x46 strh r0, [r1, #2] strh r2, [r1, #6] ldr r0, _0800BC38 @ =0x0000FEE8 strh r0, [r1, #0xc] movs r0, #0x5a strh r0, [r1, #0xe] strh r2, [r1, #0x12] ldr r0, _0800BC3C @ =0x0000FF10 strh r0, [r1, #0x18] adds r0, #0xbe strh r0, [r1, #0x1a] adds r0, #0x2f strh r0, [r1, #0x1e] strh r2, [r1, #0x24] strh r2, [r1, #0x26] ldr r1, _0800BC40 @ =0x0201A450 movs r0, #0x94 lsls r0, r0, #1 strh r0, [r1] movs r0, #0x2c strh r0, [r1, #2] strh r2, [r1, #4] strh r2, [r1, #6] ldr r0, _0800BC44 @ =0x0202BF10 strh r2, [r0] ldr r0, _0800BC48 @ =0x0202A578 strh r2, [r0] ldr r0, _0800BC4C @ =0x0202C5E4 movs r2, #0x80 lsls r2, r2, #1 adds r1, r2, #0 strh r1, [r0] ldr r0, _0800BC50 @ =0x0202ADD8 strh r1, [r0] bx lr .align 2, 0 _0800BC30: .4byte 0x0202ADA0 _0800BC34: .4byte 0x0000FEFC _0800BC38: .4byte 0x0000FEE8 _0800BC3C: .4byte 0x0000FF10 _0800BC40: .4byte 0x0201A450 _0800BC44: .4byte 0x0202BF10 _0800BC48: .4byte 0x0202A578 _0800BC4C: .4byte 0x0202C5E4 _0800BC50: .4byte 0x0202ADD8 thumb_func_start sub_BC54 sub_BC54: @ 0x0800BC54 push {r4, r5, r6, lr} ldr r4, _0800BCD0 @ =0x0202ADA0 ldrh r0, [r4, #0x18] adds r0, #2 strh r0, [r4, #0x18] ldrh r0, [r4, #0x1a] ldrh r6, [r4, #0x1e] subs r0, r0, r6 strh r0, [r4, #0x1a] ldr r5, _0800BCD4 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800BC88 adds r0, r6, #1 strh r0, [r4, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800BC88 ldr r0, _0800BCD8 @ =0x0000FFFD strh r0, [r4, #0x1e] _0800BC88: ldrh r0, [r4, #0x24] subs r0, #1 strh r0, [r4, #0x24] ldrh r0, [r4, #0x26] subs r0, #1 strh r0, [r4, #0x26] ldr r1, _0800BCDC @ =0x0200B0C0 ldrh r2, [r4, #0x18] movs r3, #0xbc lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x1a] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x24] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x26] ldr r2, _0800BCE0 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x20 ble _0800BCC8 ldr r1, _0800BCE4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800BCC8: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800BCD0: .4byte 0x0202ADA0 _0800BCD4: .4byte 0x0202BF10 _0800BCD8: .4byte 0x0000FFFD _0800BCDC: .4byte 0x0200B0C0 _0800BCE0: .4byte 0x000002F6 _0800BCE4: .4byte 0x0202C790 thumb_func_start sub_BCE8 sub_BCE8: @ 0x0800BCE8 push {r4, r5, r6, r7, lr} ldr r4, _0800BDA4 @ =0x0202ADA0 ldrh r0, [r4, #0x18] adds r0, #2 strh r0, [r4, #0x18] ldrh r0, [r4, #0x1a] ldrh r6, [r4, #0x1e] subs r0, r0, r6 strh r0, [r4, #0x1a] ldr r5, _0800BDA8 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 adds r7, r5, #0 cmp r0, #0 bne _0800BD1E adds r0, r6, #1 strh r0, [r4, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800BD1E ldr r0, _0800BDAC @ =0x0000FFFD strh r0, [r4, #0x1e] _0800BD1E: ldrh r0, [r4, #0xc] adds r0, #3 strh r0, [r4, #0xc] ldrh r0, [r4, #0xe] ldrh r5, [r4, #0x12] subs r0, r0, r5 strh r0, [r4, #0xe] movs r2, #0 ldrsh r0, [r7, r2] movs r1, #5 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800BD4C adds r0, r5, #1 strh r0, [r4, #0x12] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0800BD4C ldr r0, _0800BDB0 @ =0x0000FFFA strh r0, [r4, #0x12] _0800BD4C: ldrh r0, [r4, #0x24] subs r0, #1 strh r0, [r4, #0x24] ldrh r0, [r4, #0x26] subs r0, #1 strh r0, [r4, #0x26] ldr r1, _0800BDB4 @ =0x0200B0C0 ldrh r2, [r4, #0x18] movs r3, #0xbc lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x1a] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xc] subs r3, #6 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xe] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x24] adds r3, #6 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x26] ldr r2, _0800BDB8 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r7, r3] cmp r0, #0x50 ble _0800BD9C ldr r1, _0800BDBC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800BD9C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800BDA4: .4byte 0x0202ADA0 _0800BDA8: .4byte 0x0202BF10 _0800BDAC: .4byte 0x0000FFFD _0800BDB0: .4byte 0x0000FFFA _0800BDB4: .4byte 0x0200B0C0 _0800BDB8: .4byte 0x000002F6 _0800BDBC: .4byte 0x0202C790 thumb_func_start sub_BDC0 sub_BDC0: @ 0x0800BDC0 push {r4, r5, r6, r7, lr} ldr r4, _0800BEB4 @ =0x0202ADA0 ldrh r0, [r4, #0x18] adds r0, #2 strh r0, [r4, #0x18] ldrh r0, [r4, #0x1a] ldrh r6, [r4, #0x1e] subs r0, r0, r6 strh r0, [r4, #0x1a] ldr r5, _0800BEB8 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 adds r7, r5, #0 cmp r0, #0 bne _0800BDF6 adds r0, r6, #1 strh r0, [r4, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800BDF6 ldr r0, _0800BEBC @ =0x0000FFFD strh r0, [r4, #0x1e] _0800BDF6: ldrh r0, [r4, #0xc] adds r0, #3 strh r0, [r4, #0xc] ldrh r0, [r4, #0xe] ldrh r5, [r4, #0x12] subs r0, r0, r5 strh r0, [r4, #0xe] movs r2, #0 ldrsh r0, [r7, r2] movs r1, #5 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800BE24 adds r0, r5, #1 strh r0, [r4, #0x12] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0800BE24 ldr r0, _0800BEC0 @ =0x0000FFFA strh r0, [r4, #0x12] _0800BE24: ldrh r0, [r4] adds r0, #4 strh r0, [r4] ldrh r0, [r4, #2] ldrh r2, [r4, #6] subs r0, r0, r2 strh r0, [r4, #2] ldrh r0, [r7] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0800BE4C adds r0, r2, #1 strh r0, [r4, #6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0800BE4C ldr r0, _0800BEBC @ =0x0000FFFD strh r0, [r4, #6] _0800BE4C: ldrh r0, [r4, #0x24] subs r0, #1 strh r0, [r4, #0x24] ldrh r0, [r4, #0x26] subs r0, #1 strh r0, [r4, #0x26] ldr r1, _0800BEC4 @ =0x0200B0C0 ldrh r2, [r4, #0x18] movs r3, #0xbc lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x1a] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xc] subs r3, #6 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xe] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4] subs r3, #6 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #2] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x24] adds r3, #0xa adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x26] ldr r2, _0800BEC8 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r7, r3] cmp r0, #0x64 ble _0800BEAC ldr r1, _0800BECC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800BEAC: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800BEB4: .4byte 0x0202ADA0 _0800BEB8: .4byte 0x0202BF10 _0800BEBC: .4byte 0x0000FFFD _0800BEC0: .4byte 0x0000FFFA _0800BEC4: .4byte 0x0200B0C0 _0800BEC8: .4byte 0x000002F6 _0800BECC: .4byte 0x0202C790 thumb_func_start sub_BED0 sub_BED0: @ 0x0800BED0 push {r4, r5, r6, r7, lr} ldr r4, _0800BFF4 @ =0x0202ADA0 ldrh r0, [r4, #0x18] adds r0, #2 strh r0, [r4, #0x18] ldrh r0, [r4, #0x1a] ldrh r6, [r4, #0x1e] subs r0, r0, r6 strh r0, [r4, #0x1a] ldr r5, _0800BFF8 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 adds r7, r5, #0 cmp r0, #0 bne _0800BF06 adds r0, r6, #1 strh r0, [r4, #0x1e] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800BF06 ldr r0, _0800BFFC @ =0x0000FFFD strh r0, [r4, #0x1e] _0800BF06: ldrh r0, [r4, #0xc] adds r0, #3 strh r0, [r4, #0xc] ldrh r0, [r4, #0xe] ldrh r5, [r4, #0x12] subs r0, r0, r5 strh r0, [r4, #0xe] movs r2, #0 ldrsh r0, [r7, r2] movs r1, #5 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800BF34 adds r0, r5, #1 strh r0, [r4, #0x12] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0800BF34 ldr r0, _0800C000 @ =0x0000FFFA strh r0, [r4, #0x12] _0800BF34: ldrh r0, [r4] adds r0, #4 strh r0, [r4] ldrh r0, [r4, #2] ldrh r2, [r4, #6] subs r0, r0, r2 strh r0, [r4, #2] ldrh r0, [r7] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0800BF5C adds r0, r2, #1 strh r0, [r4, #6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0800BF5C ldr r0, _0800BFFC @ =0x0000FFFD strh r0, [r4, #6] _0800BF5C: ldr r2, _0800C004 @ =0x0201A450 ldrh r0, [r2] subs r0, #2 strh r0, [r2] ldrh r3, [r2, #6] ldrh r1, [r2, #2] adds r0, r3, r1 strh r0, [r2, #2] ldrh r0, [r7] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0800BF86 adds r0, r3, #1 strh r0, [r2, #6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800BF86 ldr r0, _0800C008 @ =0x0000FFFC strh r0, [r2, #6] _0800BF86: ldrh r0, [r4, #0x24] subs r0, #1 strh r0, [r4, #0x24] ldrh r0, [r4, #0x26] subs r0, #1 strh r0, [r4, #0x26] ldr r1, _0800C00C @ =0x0200B0C0 ldrh r2, [r4, #0x18] movs r3, #0xbc lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x1a] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xc] subs r3, #6 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0xe] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4] subs r3, #6 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #2] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r4, #0x24] adds r3, #0xa adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x26] ldr r2, _0800C010 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_C0D8 ldr r0, _0800BFF8 @ =0x0202BF10 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xc0 ble _0800BFEC ldr r1, _0800C014 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800BFEC: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800BFF4: .4byte 0x0202ADA0 _0800BFF8: .4byte 0x0202BF10 _0800BFFC: .4byte 0x0000FFFD _0800C000: .4byte 0x0000FFFA _0800C004: .4byte 0x0201A450 _0800C008: .4byte 0x0000FFFC _0800C00C: .4byte 0x0200B0C0 _0800C010: .4byte 0x000002F6 _0800C014: .4byte 0x0202C790 thumb_func_start sub_C018 sub_C018: @ 0x0800C018 push {r4, r5, lr} ldr r4, _0800C044 @ =0x0202ADA0 ldrh r0, [r4, #0x24] subs r0, #1 strh r0, [r4, #0x24] ldrh r0, [r4, #0x26] subs r0, #1 strh r0, [r4, #0x26] ldr r5, _0800C048 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #6 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bne _0800C050 ldr r1, _0800C04C @ =0x0201A450 ldrh r0, [r1] subs r0, #3 b _0800C05A .align 2, 0 _0800C044: .4byte 0x0202ADA0 _0800C048: .4byte 0x0202BF10 _0800C04C: .4byte 0x0201A450 _0800C050: cmp r0, #3 bne _0800C05C ldr r1, _0800C0A4 @ =0x0201A450 ldrh r0, [r1] adds r0, #3 _0800C05A: strh r0, [r1] _0800C05C: movs r2, #0 ldrsh r0, [r5, r2] cmp r0, #0xca ble _0800C074 ldr r1, _0800C0A8 @ =0x0202C5E4 ldrh r0, [r1] subs r0, #1 strh r0, [r1] ldr r1, _0800C0AC @ =0x0202ADD8 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _0800C074: ldr r1, _0800C0B0 @ =0x0200B0C0 ldrh r2, [r4, #0x24] movs r3, #0xbd lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, #0x26] ldr r2, _0800C0B4 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] bl sub_C0D8 movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0xde ble _0800C09C ldr r1, _0800C0B8 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800C09C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800C0A4: .4byte 0x0201A450 _0800C0A8: .4byte 0x0202C5E4 _0800C0AC: .4byte 0x0202ADD8 _0800C0B0: .4byte 0x0200B0C0 _0800C0B4: .4byte 0x000002F6 _0800C0B8: .4byte 0x0202C790 thumb_func_start sub_C0BC sub_C0BC: @ 0x0800C0BC push {lr} bl sub_10480 bl sub_10544 ldr r1, _0800C0D4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800C0D4: .4byte 0x0202C790 thumb_func_start sub_C0D8 sub_C0D8: @ 0x0800C0D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _0800C1EC @ =0x0200B3B8 mov r8, r0 movs r0, #1 mov r1, r8 strh r0, [r1] ldr r0, _0800C1F0 @ =0x086A7B74 movs r1, #1 mov r2, r8 bl sub_358 mov r2, r8 ldrh r0, [r2] cmp r0, #1 bne _0800C1D4 ldr r5, _0800C1F4 @ =0x0202C5E4 movs r3, #0 ldrsh r0, [r5, r3] ldr r4, _0800C1F8 @ =0x0202ADD8 movs r2, #0 ldrsh r1, [r4, r2] movs r2, #0 bl sub_7C0 ldr r1, _0800C1FC @ =0x0201A450 ldrh r0, [r1] mov r3, r8 strh r0, [r3, #2] ldrh r0, [r1, #2] strh r0, [r3, #4] movs r7, #0 ldr r6, _0800C200 @ =0x03005000 mov sl, r4 mov r5, r8 adds r5, #8 ldr r4, _0800C204 @ =0xFFFFFE00 mov sb, r4 movs r0, #4 rsbs r0, r0, #0 mov ip, r0 _0800C132: ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r0, [r5] lsls r0, r0, #3 adds r3, r0, r6 lsls r0, r7, #2 ldr r1, _0800C208 @ =0x086A7B7C adds r4, r0, r1 movs r0, #0 ldrsh r2, [r4, r0] str r2, [sp] ldr r1, _0800C1F4 @ =0x0202C5E4 movs r2, #0 ldrsh r0, [r1, r2] ldr r2, [sp] adds r1, r2, #0 muls r1, r0, r1 cmp r1, #0 bge _0800C16A adds r1, #0xff _0800C16A: asrs r1, r1, #8 str r1, [sp] mov r1, r8 movs r2, #2 ldrsh r0, [r1, r2] ldr r2, [sp] adds r1, r2, r0 ldr r2, _0800C20C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r6 movs r3, #2 ldrsh r1, [r4, r3] mov r4, sl movs r3, #0 ldrsh r0, [r4, r3] muls r0, r1, r0 cmp r0, #0 bge _0800C1A0 adds r0, #0xff _0800C1A0: asrs r0, r0, #8 mov r4, r8 ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #1] mov r0, ip ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #3] adds r5, #8 adds r7, #1 cmp r7, #3 ble _0800C132 _0800C1D4: movs r0, #0 mov r1, r8 strh r0, [r1] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800C1EC: .4byte 0x0200B3B8 _0800C1F0: .4byte 0x086A7B74 _0800C1F4: .4byte 0x0202C5E4 _0800C1F8: .4byte 0x0202ADD8 _0800C1FC: .4byte 0x0201A450 _0800C200: .4byte 0x03005000 _0800C204: .4byte 0xFFFFFE00 _0800C208: .4byte 0x086A7B7C _0800C20C: .4byte 0x000001FF thumb_func_start sub_C210 sub_C210: @ 0x0800C210 push {lr} bl sub_518 ldr r1, _0800C224 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0800C224: .4byte 0x0202C790 thumb_func_start sub_C228 sub_C228: @ 0x0800C228 push {r4, lr} movs r3, #0x80 lsls r3, r3, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r3] ldr r1, _0800C2B4 @ =0x0400000C movs r0, #7 strh r0, [r1] ldrh r0, [r3] movs r2, #0x80 lsls r2, r2, #3 adds r1, r2, #0 orrs r0, r1 strh r0, [r3] ldr r0, _0800C2B8 @ =0x040000D4 ldr r1, _0800C2BC @ =0x0810EC20 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800C2C0 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800C2C4 @ =0x0810F420 str r1, [r0] ldr r1, _0800C2C8 @ =0x06004000 str r1, [r0, #4] ldr r1, _0800C2CC @ =0x80001A00 str r1, [r0, #8] ldr r1, [r0, #8] ldr r4, _0800C2D0 @ =0x0810EA20 str r4, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _0800C2D4 @ =0x800000A0 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800C2D8 @ =0x08112840 str r1, [r0] ldr r1, _0800C2DC @ =0x06010000 str r1, [r0, #4] ldr r1, _0800C2E0 @ =0x80001600 str r1, [r0, #8] ldr r1, [r0, #8] str r4, [r0] ldr r1, _0800C2E4 @ =0x05000200 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] ldr r1, _0800C2E8 @ =0x0200B0C0 ldrh r0, [r3] strh r0, [r1, #0x16] bl sub_C2F0 bl sub_C4F0 bl sub_CBC bl sub_10424 ldr r1, _0800C2EC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800C2B4: .4byte 0x0400000C _0800C2B8: .4byte 0x040000D4 _0800C2BC: .4byte 0x0810EC20 _0800C2C0: .4byte 0x80000400 _0800C2C4: .4byte 0x0810F420 _0800C2C8: .4byte 0x06004000 _0800C2CC: .4byte 0x80001A00 _0800C2D0: .4byte 0x0810EA20 _0800C2D4: .4byte 0x800000A0 _0800C2D8: .4byte 0x08112840 _0800C2DC: .4byte 0x06010000 _0800C2E0: .4byte 0x80001600 _0800C2E4: .4byte 0x05000200 _0800C2E8: .4byte 0x0200B0C0 _0800C2EC: .4byte 0x0202C790 thumb_func_start sub_C2F0 sub_C2F0: @ 0x0800C2F0 push {r4, r5, r6, lr} ldr r0, _0800C380 @ =0x0201A450 mov ip, r0 movs r4, #0 movs r1, #0 movs r5, #0x78 strh r5, [r0, #0x10] movs r2, #0x50 strh r2, [r0, #0x12] movs r0, #4 mov r3, ip strh r0, [r3, #0x14] strh r0, [r3, #0x16] strh r1, [r3, #0x18] strh r5, [r3] strh r2, [r3, #2] strb r4, [r3, #0xc] movs r2, #0x80 strh r2, [r3, #0x20] movs r3, #0x58 mov r0, ip strh r3, [r0, #0x22] strh r1, [r0, #0x28] strh r1, [r0, #0x2a] adds r0, #0x2c strb r4, [r0] mov r0, ip strh r2, [r0, #0x30] movs r6, #0x48 strh r6, [r0, #0x32] strh r1, [r0, #0x38] strh r1, [r0, #0x3a] adds r0, #0x3c strb r4, [r0] adds r0, #4 movs r2, #0x70 strh r2, [r0] adds r0, #2 strh r3, [r0] adds r0, #6 strh r1, [r0] adds r0, #2 strh r1, [r0] adds r0, #2 strb r4, [r0] adds r0, #4 strh r5, [r0] adds r0, #2 strh r3, [r0] adds r0, #6 strh r1, [r0] adds r0, #2 strh r1, [r0] adds r0, #2 strb r4, [r0] adds r0, #4 strh r2, [r0] adds r0, #2 strh r6, [r0] adds r0, #6 strh r1, [r0] adds r0, #2 strh r1, [r0] adds r0, #2 strb r4, [r0] ldr r0, _0800C384 @ =0x0202BF10 strh r1, [r0] ldr r0, _0800C388 @ =0x0202A578 strh r1, [r0] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800C380: .4byte 0x0201A450 _0800C384: .4byte 0x0202BF10 _0800C388: .4byte 0x0202A578 thumb_func_start sub_C38C sub_C38C: @ 0x0800C38C push {lr} bl sub_C4F0 ldr r0, _0800C3C4 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #1 ble _0800C3C0 ldr r2, _0800C3C8 @ =0x0201A450 movs r1, #1 strb r1, [r2, #0xc] adds r0, r2, #0 adds r0, #0x2c strb r1, [r0] adds r0, #0x10 strb r1, [r0] adds r0, #0x10 strb r1, [r0] adds r0, #0x10 strb r1, [r0] adds r0, #0x10 strb r1, [r0] ldr r1, _0800C3CC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800C3C0: pop {r0} bx r0 .align 2, 0 _0800C3C4: .4byte 0x0202BF10 _0800C3C8: .4byte 0x0201A450 _0800C3CC: .4byte 0x0202C790 thumb_func_start sub_C3D0 sub_C3D0: @ 0x0800C3D0 push {r4, lr} ldr r3, _0800C408 @ =0x0201A450 ldrh r0, [r3] subs r0, #9 strh r0, [r3] ldrh r0, [r3, #2] subs r0, #6 strh r0, [r3, #2] ldrh r0, [r3, #0x18] adds r0, #1 strh r0, [r3, #0x18] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _0800C40C ldrh r2, [r3, #0x14] ldrh r1, [r3, #0x10] adds r0, r2, r1 strh r0, [r3, #0x10] ldrh r1, [r3, #0x16] ldrh r4, [r3, #0x12] adds r0, r1, r4 strh r0, [r3, #0x12] subs r2, #1 strh r2, [r3, #0x14] subs r1, #1 strh r1, [r3, #0x16] b _0800C424 .align 2, 0 _0800C408: .4byte 0x0201A450 _0800C40C: ldr r0, _0800C444 @ =0x0202BF10 ldrh r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800C424 ldrh r0, [r3, #0x10] adds r0, #1 strh r0, [r3, #0x10] ldrh r0, [r3, #0x12] adds r0, #1 strh r0, [r3, #0x12] _0800C424: bl sub_C4F0 ldr r0, _0800C448 @ =0x0201A450 movs r2, #2 ldrsh r1, [r0, r2] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 bge _0800C43E ldr r1, _0800C44C @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800C43E: pop {r4} pop {r0} bx r0 .align 2, 0 _0800C444: .4byte 0x0202BF10 _0800C448: .4byte 0x0201A450 _0800C44C: .4byte 0x0202C790 thumb_func_start sub_C450 sub_C450: @ 0x0800C450 push {lr} bl sub_C4F0 ldr r2, _0800C484 @ =0x0202BF10 ldrh r0, [r2] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800C470 ldr r0, _0800C488 @ =0x0201A450 ldrh r1, [r0, #0x10] adds r1, #1 strh r1, [r0, #0x10] ldrh r1, [r0, #0x12] adds r1, #1 strh r1, [r0, #0x12] _0800C470: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x14 ble _0800C480 ldr r1, _0800C48C @ =0x0202C790 ldrb r0, [r1] adds r0, #3 strb r0, [r1] _0800C480: pop {r0} bx r0 .align 2, 0 _0800C484: .4byte 0x0202BF10 _0800C488: .4byte 0x0201A450 _0800C48C: .4byte 0x0202C790 thumb_func_start nullsub_12 nullsub_12: @ 0x0800C490 bx lr thumb_func_start nullsub_13 nullsub_13: @ 0x0800C494 bx lr thumb_func_start sub_C498 sub_C498: @ 0x0800C498 push {lr} sub sp, #8 bl sub_10480 bl sub_578 movs r2, #0 str r2, [sp] ldr r1, _0800C4DC @ =0x040000D4 mov r0, sp str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800C4E0 @ =0x85000100 str r0, [r1, #8] ldr r0, [r1, #8] add r0, sp, #4 strh r2, [r0] str r0, [r1] ldr r0, _0800C4E4 @ =0x06010000 str r0, [r1, #4] ldr r0, _0800C4E8 @ =0x81002800 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_10544 ldr r1, _0800C4EC @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] add sp, #8 pop {r0} bx r0 .align 2, 0 _0800C4DC: .4byte 0x040000D4 _0800C4E0: .4byte 0x85000100 _0800C4E4: .4byte 0x06010000 _0800C4E8: .4byte 0x81002800 _0800C4EC: .4byte 0x0202C790 thumb_func_start sub_C4F0 sub_C4F0: @ 0x0800C4F0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x20 ldr r0, _0800C64C @ =0x0200B3B8 mov r8, r0 ldr r6, _0800C650 @ =0x0201A450 movs r1, #0x28 ldrsh r0, [r6, r1] movs r2, #0xe6 lsls r2, r2, #2 adds r3, r0, #0 muls r3, r2, r3 movs r0, #0xb8 lsls r0, r0, #1 add r0, r8 adds r3, r3, r0 str r3, [sp] movs r7, #0x38 ldrsh r0, [r6, r7] muls r0, r2, r0 movs r1, #0x8a lsls r1, r1, #2 add r1, r8 adds r0, r0, r1 str r0, [sp, #4] adds r0, r6, #0 adds r0, #0x48 movs r1, #0 ldrsh r0, [r0, r1] muls r0, r2, r0 movs r1, #0xb8 lsls r1, r1, #2 add r1, r8 adds r0, r0, r1 str r0, [sp, #8] adds r0, r6, #0 adds r0, #0x58 movs r7, #0 ldrsh r0, [r0, r7] muls r0, r2, r0 adds r1, r2, #0 add r1, r8 adds r0, r0, r1 str r0, [sp, #0xc] adds r0, r6, #0 adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] muls r0, r2, r0 movs r1, #0x8a lsls r1, r1, #3 add r1, r8 adds r0, r0, r1 str r0, [sp, #0x10] movs r0, #0xc ldrsb r0, [r6, r0] mov r2, r8 strh r0, [r2] movs r0, #1 ldr r7, _0800C654 @ =0x0200B470 strh r0, [r7] adds r0, r6, #0 adds r0, #0x2c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r3] ldr r1, [sp, #4] adds r0, r6, #0 adds r0, #0x3c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r1, [sp, #8] adds r0, r6, #0 adds r0, #0x4c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r1, [sp, #0xc] adds r0, r6, #0 adds r0, #0x5c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r1, [sp, #0x10] adds r0, r6, #0 adds r0, #0x6c ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r0, _0800C658 @ =0x086A7C24 movs r1, #0x11 bl sub_358 mov r1, r8 ldrh r0, [r1] cmp r0, #1 bne _0800C614 ldrh r0, [r6] strh r0, [r1, #2] ldrh r0, [r6, #2] strh r0, [r1, #4] mov r5, r8 adds r5, #8 ldr r4, _0800C65C @ =0x03005000 ldrh r1, [r1, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] mov r3, r8 ldrh r2, [r3, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r7, #2 ldrsh r1, [r5, r7] movs r7, #2 ldrsh r0, [r3, r7] adds r1, r1, r0 ldr r3, _0800C660 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0800C664 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] mov r7, r8 ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _0800C614: movs r5, #0 str r6, [sp, #0x14] _0800C618: lsls r1, r5, #2 mov r2, sp adds r0, r2, r1 ldr r0, [r0] ldrh r0, [r0] adds r4, r1, #0 adds r3, r5, #1 str r3, [sp, #0x18] cmp r0, #1 beq _0800C62E b _0800C75A _0800C62E: ldr r1, _0800C668 @ =0x0202A578 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _0800C670 lsls r1, r5, #3 ldr r6, _0800C66C @ =0x086A7C68 adds r0, r1, r6 ldrb r2, [r0, #2] ldrb r0, [r0, #3] b _0800C67A .align 2, 0 _0800C64C: .4byte 0x0200B3B8 _0800C650: .4byte 0x0201A450 _0800C654: .4byte 0x0200B470 _0800C658: .4byte 0x086A7C24 _0800C65C: .4byte 0x03005000 _0800C660: .4byte 0x000001FF _0800C664: .4byte 0xFFFFFE00 _0800C668: .4byte 0x0202A578 _0800C66C: .4byte 0x086A7C68 _0800C670: lsls r1, r5, #3 ldr r7, _0800C7F8 @ =0x086A7C68 adds r0, r1, r7 ldrb r2, [r0] ldrb r0, [r0, #1] _0800C67A: adds r7, r1, #0 adds r3, r5, #2 lsls r1, r3, #4 ldr r6, [sp, #0x14] adds r1, r1, r6 lsls r2, r2, #0x18 asrs r2, r2, #0x18 ldrh r6, [r1] adds r2, r2, r6 strh r2, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r6, [r1, #2] adds r0, r0, r6 strh r0, [r1, #2] add r4, sp ldr r0, [r4] strh r2, [r0, #2] ldr r2, [r4] ldrh r0, [r1, #2] strh r0, [r2, #4] movs r0, #8 ldrsh r1, [r1, r0] lsls r0, r1, #2 adds r0, r0, r1 adds r0, #2 adds r0, r5, r0 lsls r0, r0, #2 ldr r1, _0800C7FC @ =0x086A7C24 adds r0, r0, r1 ldr r0, [r0] mov sb, r0 movs r6, #0 str r3, [sp, #0x1c] adds r5, #1 str r5, [sp, #0x18] ldrh r2, [r0] cmp r6, r2 bge _0800C732 ldr r3, _0800C800 @ =0x03005000 mov ip, r3 ldr r0, _0800C7F8 @ =0x086A7C68 adds r7, r7, r0 mov sl, r7 movs r7, #8 _0800C6D4: ldr r0, [r4] adds r5, r0, r7 ldrh r2, [r5] lsls r2, r2, #3 add r2, ip mov r0, sl ldrb r1, [r0, #5] movs r3, #3 ands r1, r3 lsls r1, r1, #2 ldrb r3, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r2, #5] ldrh r2, [r5] lsls r2, r2, #3 add r2, ip movs r0, #2 ldrsh r1, [r5, r0] ldr r0, [r4] movs r3, #2 ldrsh r0, [r0, r3] adds r1, r1, r0 ldr r3, _0800C804 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0800C808 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, ip ldr r0, [r4] ldrb r0, [r0, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r7, #8 adds r6, #1 mov r0, sb ldrh r0, [r0] cmp r6, r0 blt _0800C6D4 _0800C732: ldr r1, [sp, #0x1c] lsls r0, r1, #4 ldr r2, [sp, #0x14] adds r3, r0, r2 ldrh r0, [r3, #0xa] adds r0, #1 movs r1, #0 strh r0, [r3, #0xa] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0800C75A strh r1, [r3, #0xa] ldrh r1, [r3, #8] movs r6, #8 ldrsh r0, [r3, r6] cmp r0, #1 bgt _0800C75A adds r0, r1, #1 strh r0, [r3, #8] _0800C75A: ldr r5, [sp, #0x18] cmp r5, #4 bgt _0800C762 b _0800C618 _0800C762: ldr r7, _0800C80C @ =0x0200B470 ldrh r0, [r7] cmp r0, #1 bne _0800C7C8 ldr r0, _0800C810 @ =0x0201A450 ldrh r1, [r0, #0x10] strh r1, [r7, #2] ldrh r0, [r0, #0x12] strh r0, [r7, #4] ldr r5, _0800C800 @ =0x03005000 ldr r0, _0800C808 @ =0xFFFFFE00 mov sb, r0 adds r4, r7, #0 adds r4, #8 movs r6, #3 _0800C780: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r5 ldrb r0, [r2, #5] movs r1, #0xc orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r4, r2] ldr r7, _0800C80C @ =0x0200B470 movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0800C804 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, _0800C80C @ =0x0200B470 ldrb r0, [r2, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _0800C780 _0800C7C8: movs r0, #0 ldr r6, _0800C80C @ =0x0200B470 strh r0, [r6] mov r7, r8 strh r0, [r7] ldr r1, [sp] strh r0, [r1] ldr r1, [sp, #4] strh r0, [r1] ldr r1, [sp, #8] strh r0, [r1] ldr r1, [sp, #0xc] strh r0, [r1] ldr r1, [sp, #0x10] strh r0, [r1] add sp, #0x20 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 _0800C7F8: .4byte 0x086A7C68 _0800C7FC: .4byte 0x086A7C24 _0800C800: .4byte 0x03005000 _0800C804: .4byte 0x000001FF _0800C808: .4byte 0xFFFFFE00 _0800C80C: .4byte 0x0200B470 _0800C810: .4byte 0x0201A450 thumb_func_start sub_C814 sub_C814: @ 0x0800C814 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 bl sub_518 movs r0, #0 str r0, [sp] ldr r1, _0800C924 @ =0x040000D4 mov r0, sp str r0, [r1] movs r0, #0xe0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _0800C928 @ =0x85000100 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0 ldr r6, _0800C92C @ =0x0200B0C0 movs r1, #0xb8 mov sb, r1 movs r4, #0 movs r3, #0xc0 lsls r3, r3, #2 mov r8, r3 ldr r7, _0800C930 @ =0x00000302 mov ip, r7 movs r0, #0xc1 lsls r0, r0, #2 mov sl, r0 _0800C854: mov r2, sb muls r2, r5, r2 adds r1, r2, r6 movs r3, #0xbe lsls r3, r3, #2 adds r0, r1, r3 strh r4, [r0] ldr r7, _0800C934 @ =0x000002FA adds r0, r1, r7 strh r4, [r0] movs r0, #0xbf lsls r0, r0, #2 adds r1, r1, r0 strh r4, [r1] movs r3, #0 _0800C872: lsls r0, r3, #3 adds r0, r0, r2 adds r0, r0, r6 mov r7, r8 adds r1, r0, r7 strh r4, [r1] mov r7, ip adds r1, r0, r7 strh r4, [r1] add r0, sl strh r4, [r0] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #0x15 bls _0800C872 adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r5, #0x13 bls _0800C854 movs r5, #0 mov sl, r5 movs r0, #0xd rsbs r0, r0, #0 mov ip, r0 movs r1, #0x11 rsbs r1, r1, #0 mov sb, r1 movs r3, #0x21 rsbs r3, r3, #0 mov r8, r3 movs r4, #0x3f ldr r6, _0800C938 @ =0xFFFFFE00 adds r3, #0x12 _0800C8B8: lsls r2, r5, #3 ldr r7, _0800C93C @ =0x03005000 adds r2, r2, r7 movs r0, #0xf4 strb r0, [r2] movs r0, #0 strb r0, [r2, #1] ldrh r1, [r2, #2] adds r0, r6, #0 ands r0, r1 movs r7, #0xfa lsls r7, r7, #1 adds r1, r7, #0 orrs r0, r1 strh r0, [r2, #2] ldrb r1, [r2, #3] adds r0, r3, #0 ands r0, r1 mov r1, sb ands r0, r1 mov r7, r8 ands r0, r7 ands r0, r4 strb r0, [r2, #3] ldrh r1, [r2, #4] ldr r0, _0800C940 @ =0xFFFFFC00 ands r0, r1 strh r0, [r2, #4] ldrb r1, [r2, #5] mov r0, ip ands r0, r1 movs r1, #0xf ands r0, r1 strb r0, [r2, #5] mov r0, sl strh r0, [r2, #6] adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r5, #0x13 bls _0800C8B8 ldr r1, _0800C944 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800C924: .4byte 0x040000D4 _0800C928: .4byte 0x85000100 _0800C92C: .4byte 0x0200B0C0 _0800C930: .4byte 0x00000302 _0800C934: .4byte 0x000002FA _0800C938: .4byte 0xFFFFFE00 _0800C93C: .4byte 0x03005000 _0800C940: .4byte 0xFFFFFC00 _0800C944: .4byte 0x0202C790 thumb_func_start sub_C948 sub_C948: @ 0x0800C948 push {r4, lr} movs r3, #0x80 lsls r3, r3, #0x13 movs r1, #0x80 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r3] ldr r1, _0800C9E4 @ =0x0400000E movs r0, #7 strh r0, [r1] ldrh r0, [r3] movs r2, #0x80 lsls r2, r2, #4 adds r1, r2, #0 orrs r0, r1 strh r0, [r3] ldr r0, _0800C9E8 @ =0x040000D4 ldr r1, _0800C9EC @ =0x08115A60 str r1, [r0] movs r1, #0xc0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r1, _0800C9F0 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800C9F4 @ =0x08116260 str r1, [r0] ldr r1, _0800C9F8 @ =0x06004000 str r1, [r0, #4] ldr r1, _0800C9FC @ =0x80001200 str r1, [r0, #8] ldr r1, [r0, #8] ldr r4, _0800CA00 @ =0x08115860 str r4, [r0] movs r1, #0xa0 lsls r1, r1, #0x13 str r1, [r0, #4] ldr r2, _0800CA04 @ =0x80000020 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0800CA08 @ =0x08118680 str r1, [r0] ldr r1, _0800CA0C @ =0x06010000 str r1, [r0, #4] ldr r1, _0800CA10 @ =0x80003800 str r1, [r0, #8] ldr r1, [r0, #8] str r4, [r0] ldr r1, _0800CA14 @ =0x05000200 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] ldr r4, _0800CA18 @ =0x0200B0C0 ldrh r0, [r3] strh r0, [r4, #0x16] bl sub_CA28 ldr r2, _0800CA1C @ =0x0202ADA0 ldrh r1, [r2] movs r3, #0xbd lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] ldrh r0, [r2, #2] ldr r1, _0800CA20 @ =0x000002F6 adds r4, r4, r1 strh r0, [r4] bl sub_CBC bl sub_10424 ldr r1, _0800CA24 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800C9E4: .4byte 0x0400000E _0800C9E8: .4byte 0x040000D4 _0800C9EC: .4byte 0x08115A60 _0800C9F0: .4byte 0x80000400 _0800C9F4: .4byte 0x08116260 _0800C9F8: .4byte 0x06004000 _0800C9FC: .4byte 0x80001200 _0800CA00: .4byte 0x08115860 _0800CA04: .4byte 0x80000020 _0800CA08: .4byte 0x08118680 _0800CA0C: .4byte 0x06010000 _0800CA10: .4byte 0x80003800 _0800CA14: .4byte 0x05000200 _0800CA18: .4byte 0x0200B0C0 _0800CA1C: .4byte 0x0202ADA0 _0800CA20: .4byte 0x000002F6 _0800CA24: .4byte 0x0202C790 thumb_func_start sub_CA28 sub_CA28: @ 0x0800CA28 push {r4, lr} ldr r0, _0800CA80 @ =0x0202ADA0 movs r4, #0 movs r3, #0 strh r3, [r0] strh r3, [r0, #2] ldr r1, _0800CA84 @ =0x0201A450 movs r0, #0xf0 strh r0, [r1] movs r0, #0x1e strh r0, [r1, #2] movs r0, #0xe strh r0, [r1, #4] movs r2, #1 movs r0, #1 strh r0, [r1, #8] strb r2, [r1, #0xc] movs r0, #0x84 lsls r0, r0, #1 strh r0, [r1, #0x10] movs r0, #0x50 strh r0, [r1, #0x12] movs r0, #6 strh r0, [r1, #0x14] strb r4, [r1, #0x1c] ldr r0, _0800CA88 @ =0x0202BF10 strh r3, [r0] ldr r0, _0800CA8C @ =0x0202A578 strh r3, [r0] ldr r0, _0800CA90 @ =0x0202C5E4 movs r2, #0x80 lsls r2, r2, #1 adds r1, r2, #0 strh r1, [r0] ldr r0, _0800CA94 @ =0x0202ADD8 strh r1, [r0] ldr r0, _0800CA98 @ =0x0202BEDC strb r4, [r0] ldr r0, _0800CA9C @ =0x0202A56C strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800CA80: .4byte 0x0202ADA0 _0800CA84: .4byte 0x0201A450 _0800CA88: .4byte 0x0202BF10 _0800CA8C: .4byte 0x0202A578 _0800CA90: .4byte 0x0202C5E4 _0800CA94: .4byte 0x0202ADD8 _0800CA98: .4byte 0x0202BEDC _0800CA9C: .4byte 0x0202A56C thumb_func_start sub_CAA0 sub_CAA0: @ 0x0800CAA0 push {r4, r5, lr} ldr r4, _0800CB48 @ =0x0202ADA0 ldrh r0, [r4] subs r0, #0x24 strh r0, [r4] ldr r5, _0800CB4C @ =0x0201A450 ldr r1, _0800CB50 @ =0x086A7D4C ldr r2, _0800CB54 @ =0x0202A578 movs r3, #0 ldrsh r0, [r2, r3] adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r0, [r5] subs r0, r0, r1 strh r0, [r5] ldrh r0, [r2] adds r0, #1 strh r0, [r2] ldr r0, _0800CB58 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #5 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800CAEA ldrh r0, [r5, #8] adds r0, #1 strh r0, [r5, #8] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xa ble _0800CAEA movs r0, #1 strh r0, [r5, #8] _0800CAEA: ldr r0, _0800CB5C @ =0x0200B0C0 ldrh r1, [r4] movs r2, #0xbd lsls r2, r2, #2 adds r0, r0, r2 strh r1, [r0] bl sub_CD18 ldr r2, _0800CB58 @ =0x0202BF10 movs r3, #0 ldrsh r0, [r2, r3] cmp r0, #0x28 ble _0800CB26 ldr r1, _0800CB60 @ =0x0202C5E4 ldrh r0, [r1] adds r0, #6 strh r0, [r1] ldr r1, _0800CB64 @ =0x0202ADD8 ldrh r0, [r1] adds r0, #6 strh r0, [r1] ldrh r0, [r2] movs r1, #1 ands r0, r1 cmp r0, #0 bne _0800CB26 ldr r1, _0800CB4C @ =0x0201A450 ldrh r0, [r1, #2] adds r0, #1 strh r0, [r1, #2] _0800CB26: ldr r0, _0800CB58 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x5a ble _0800CB42 ldr r1, _0800CB4C @ =0x0201A450 movs r0, #0 strb r0, [r1, #0xc] movs r0, #1 strb r0, [r1, #0x1c] ldr r1, _0800CB68 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800CB42: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0800CB48: .4byte 0x0202ADA0 _0800CB4C: .4byte 0x0201A450 _0800CB50: .4byte 0x086A7D4C _0800CB54: .4byte 0x0202A578 _0800CB58: .4byte 0x0202BF10 _0800CB5C: .4byte 0x0200B0C0 _0800CB60: .4byte 0x0202C5E4 _0800CB64: .4byte 0x0202ADD8 _0800CB68: .4byte 0x0202C790 thumb_func_start sub_CB6C sub_CB6C: @ 0x0800CB6C ldr r0, _0800CB94 @ =0x0202ADA0 ldrh r1, [r0] subs r1, #0x24 strh r1, [r0] ldr r0, _0800CB98 @ =0x0200B0C0 movs r2, #0xbd lsls r2, r2, #2 adds r0, r0, r2 strh r1, [r0] ldr r0, _0800CB9C @ =0x0202BF10 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x78 ble _0800CB90 ldr r1, _0800CBA0 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800CB90: bx lr .align 2, 0 _0800CB94: .4byte 0x0202ADA0 _0800CB98: .4byte 0x0200B0C0 _0800CB9C: .4byte 0x0202BF10 _0800CBA0: .4byte 0x0202C790 thumb_func_start sub_CBA4 sub_CBA4: @ 0x0800CBA4 push {r4, lr} ldr r0, _0800CBBC @ =0x0202BF10 movs r2, #0 ldrsh r1, [r0, r2] adds r2, r0, #0 cmp r1, #0x86 bgt _0800CBC4 ldr r1, _0800CBC0 @ =0x0201A450 ldrh r0, [r1, #0x10] subs r0, #0xc b _0800CBCA .align 2, 0 _0800CBBC: .4byte 0x0202BF10 _0800CBC0: .4byte 0x0201A450 _0800CBC4: ldr r1, _0800CC68 @ =0x0201A450 ldrh r0, [r1, #0x10] subs r0, #1 _0800CBCA: strh r0, [r1, #0x10] ldrh r0, [r2] movs r1, #1 ands r0, r1 ldr r2, _0800CC6C @ =0x0202BEDC cmp r0, #0 bne _0800CBEA ldrb r0, [r2] adds r0, #3 strb r0, [r2] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 ble _0800CBEA movs r0, #0x20 strb r0, [r2] _0800CBEA: ldr r4, _0800CC70 @ =0x08115860 ldr r1, _0800CC74 @ =0x05000200 movs r3, #0 ldrsb r3, [r2, r3] lsls r3, r3, #0x10 lsrs r3, r3, #0x10 adds r0, r4, #0 movs r2, #0x20 bl sub_102A8 ldr r0, _0800CC78 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x88 ble _0800CC30 ldr r2, _0800CC7C @ =0x0202A56C ldrb r0, [r2] adds r0, #2 strb r0, [r2] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 ble _0800CC1C movs r0, #0x20 strb r0, [r2] _0800CC1C: movs r1, #0xa0 lsls r1, r1, #0x13 movs r3, #0 ldrsb r3, [r2, r3] lsls r3, r3, #0x10 lsrs r3, r3, #0x10 adds r0, r4, #0 movs r2, #0x40 bl sub_102A8 _0800CC30: ldr r0, _0800CC80 @ =0x0202ADA0 ldrh r1, [r0] subs r1, #0x24 strh r1, [r0] ldr r0, _0800CC84 @ =0x0200B0C0 movs r2, #0xbd lsls r2, r2, #2 adds r0, r0, r2 strh r1, [r0] bl sub_CD18 ldr r1, _0800CC78 @ =0x0202BF10 movs r2, #0 ldrsh r0, [r1, r2] cmp r0, #0x98 ble _0800CC62 movs r0, #0 strh r0, [r1] ldr r1, _0800CC88 @ =0x0202A578 movs r0, #1 strh r0, [r1] ldr r1, _0800CC8C @ =0x0202C790 ldrb r0, [r1] adds r0, #2 strb r0, [r1] _0800CC62: pop {r4} pop {r0} bx r0 .align 2, 0 _0800CC68: .4byte 0x0201A450 _0800CC6C: .4byte 0x0202BEDC _0800CC70: .4byte 0x08115860 _0800CC74: .4byte 0x05000200 _0800CC78: .4byte 0x0202BF10 _0800CC7C: .4byte 0x0202A56C _0800CC80: .4byte 0x0202ADA0 _0800CC84: .4byte 0x0200B0C0 _0800CC88: .4byte 0x0202A578 _0800CC8C: .4byte 0x0202C790 thumb_func_start nullsub_14 nullsub_14: @ 0x0800CC90 bx lr thumb_func_start sub_CC94 sub_CC94: @ 0x0800CC94 push {r4, r5, r6, lr} ldr r6, _0800CCE4 @ =0x0202BF10 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0800CCCE ldr r1, _0800CCE8 @ =0x0202A578 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r4, _0800CCEC @ =0x02032EE0 ldr r5, _0800CCF0 @ =0x0000FFFF movs r0, #0 ldrsh r1, [r1, r0] movs r0, #0x80 lsls r0, r0, #1 bl __divsi3 adds r2, r0, #0 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl m4aMPlayVolumeControl _0800CCCE: movs r1, #0 ldrsh r0, [r6, r1] cmp r0, #0x2d ble _0800CCDE ldr r1, _0800CCF4 @ =0x0202C790 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0800CCDE: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0800CCE4: .4byte 0x0202BF10 _0800CCE8: .4byte 0x0202A578 _0800CCEC: .4byte 0x02032EE0 _0800CCF0: .4byte 0x0000FFFF _0800CCF4: .4byte 0x0202C790 thumb_func_start sub_CCF8 sub_CCF8: @ 0x0800CCF8 push {lr} bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _0800CD14 @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] pop {r0} bx r0 .align 2, 0 _0800CD14: .4byte 0x0200B0C0 thumb_func_start sub_CD18 sub_CD18: @ 0x0800CD18 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r7, _0800CE28 @ =0x0201A450 movs r0, #8 ldrsh r1, [r7, r0] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _0800CE2C @ =0x0200B3B8 adds r6, r1, r0 mov r8, r0 movs r0, #0xc ldrsb r0, [r7, r0] strh r0, [r6] movs r0, #0x1c ldrsb r0, [r7, r0] mov r1, r8 strh r0, [r1] ldr r0, _0800CE30 @ =0x086A7D20 movs r1, #0xb mov r2, r8 bl sub_358 ldrh r0, [r6] cmp r0, #1 bne _0800CDBA ldr r0, _0800CE34 @ =0x0202C5E4 movs r2, #0 ldrsh r0, [r0, r2] ldr r1, _0800CE38 @ =0x0202ADD8 movs r3, #0 ldrsh r1, [r1, r3] movs r2, #0 bl sub_7C0 ldrh r0, [r7] strh r0, [r6, #2] ldrh r0, [r7, #2] strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldr r4, _0800CE3C @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0800CE40 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0800CE44 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r1, #1] movs r2, #3 orrs r0, r2 strb r0, [r1, #1] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #3] _0800CDBA: mov r1, r8 ldrh r0, [r1] cmp r0, #1 bne _0800CE12 ldrh r0, [r7, #0x10] strh r0, [r1, #2] ldrh r0, [r7, #0x12] strh r0, [r1, #4] ldr r2, _0800CE3C @ =0x03005000 mov sb, r2 ldr r3, _0800CE44 @ =0xFFFFFE00 mov ip, r3 mov r4, r8 adds r4, #8 movs r5, #3 _0800CDD8: ldrh r3, [r4] lsls r3, r3, #3 add r3, sb movs r7, #2 ldrsh r1, [r4, r7] mov r2, r8 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0800CE40 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sb mov r3, r8 ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _0800CDD8 _0800CE12: movs r0, #0 strh r0, [r6] mov r1, r8 strh r0, [r1] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0800CE28: .4byte 0x0201A450 _0800CE2C: .4byte 0x0200B3B8 _0800CE30: .4byte 0x086A7D20 _0800CE34: .4byte 0x0202C5E4 _0800CE38: .4byte 0x0202ADD8 _0800CE3C: .4byte 0x03005000 _0800CE40: .4byte 0x000001FF _0800CE44: .4byte 0xFFFFFE00 thumb_func_start sub_CE48 sub_CE48: @ 0x0800CE48 push {lr} ldr r1, _0800CE60 @ =0x080793E8 ldr r0, _0800CE64 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0800CE60: .4byte 0x080793E8 _0800CE64: .4byte 0x0200B0C0 thumb_func_start sub_CE68 sub_CE68: @ 0x0800CE68 push {lr} ldr r1, _0800CE80 @ =0x08079424 ldr r0, _0800CE84 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0800CE80: .4byte 0x08079424 _0800CE84: .4byte 0x0200B0C0 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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 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 @ =0x0200B0C0 movs r0, #3 strb r0, [r1, #3] b _0800D35E .align 2, 0 _0800D34C: .4byte 0x000003E7 _0800D350: .4byte 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 @ =0x0200B0C0 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 @ =0x0200B0C0 b _0800D628 .align 2, 0 _0800D608: .4byte 0x02002882 _0800D60C: .4byte 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 @ =0x0200B0C0 movs r0, #3 strb r0, [r1, #3] b _0800D9B6 .align 2, 0 _0800D8F8: .4byte 0x0202C610 _0800D8FC: .4byte 0x0200B0C0 _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 @ =0x0200B0C0 movs r0, #6 strb r0, [r1, #3] pop {r0} bx r0 .align 2, 0 _0800DA18: .4byte 0x0201B124 _0800DA1C: .4byte 0x0200B0C0 thumb_func_start sub_DA20 sub_DA20: @ 0x0800DA20 push {r4, r5, lr} bl sub_E464 ldr r4, _0800DA4C @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 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 @ =0x0200B0C0 movs r0, #5 strb r0, [r1, #3] _0800DB66: bx lr .align 2, 0 _0800DB68: .4byte 0x0201A444 _0800DB6C: .4byte 0x0200B0C0 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 @ =0x0200B0C0 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 0x0200B0C0 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 @ =0x0200B0C0 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 0x0200B0C0 _0800DCEC: .4byte 0x02002858 thumb_func_start sub_DCF0 sub_DCF0: @ 0x0800DCF0 push {r4, r5, lr} bl sub_E464 ldr r5, _0800DD20 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0201A4B4 movs r0, #1 strb r0, [r1] movs r0, #1 bl sub_23C pop {r0} bx r0 .align 2, 0 _0800DD6C: .4byte 0x0201A4B4 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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 b _0800E072 .align 2, 0 _0800DF80: .4byte 0x02002858 _0800DF84: .4byte 0x0200B0C0 _0800DF88: cmp r4, #2 beq _0800E020 ldr r4, _0800DF90 @ =0x0200B0C0 b _0800E072 .align 2, 0 _0800DF90: .4byte 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 b _0800E344 .align 2, 0 _0800E248: .4byte 0x02002858 _0800E24C: .4byte 0x0200B0C0 _0800E250: cmp r4, #2 beq _0800E2F4 ldr r4, _0800E258 @ =0x0200B0C0 b _0800E344 .align 2, 0 _0800E258: .4byte 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 _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 @ =0x0200B0C0 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 0x0200B0C0 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 @ =0x0200B0C0 ldrh r0, [r1] strh r0, [r2, #0x16] bx lr .align 2, 0 _08010520: .4byte 0x0000FF7F _08010524: .4byte 0x0200B0C0 thumb_func_start sub_10528 sub_10528: @ 0x08010528 ldr r1, _08010540 @ =0x0200B0C0 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 0x0200B0C0 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 thumb_func_start sub_1068C sub_1068C: @ 0x0801068C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 adds r4, r0, #0 adds r7, r2, #0 mov sb, r3 ldr r0, [sp, #0x24] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] movs r2, #0 cmp r2, sb bge _080106F0 lsls r0, r1, #5 adds r0, r0, r4 mov sl, r0 _080106B2: movs r3, #0 adds r6, r2, #1 cmp r3, r7 bge _080106E8 lsls r0, r2, #5 mov r1, sl adds r5, r1, r0 ldr r0, _08010700 @ =0x03005C00 mov ip, r0 ldr r1, _08010704 @ =0x00000FFF mov r8, r1 ldr r0, [sp] lsls r4, r0, #0xc _080106CC: adds r1, r3, r5 lsls r1, r1, #0x10 lsrs r1, r1, #0xf add r1, ip ldrh r2, [r1] mov r0, r8 ands r0, r2 orrs r0, r4 strh r0, [r1] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, r7 blt _080106CC _080106E8: lsls r0, r6, #0x10 lsrs r2, r0, #0x10 cmp r2, sb blt _080106B2 _080106F0: 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 _08010700: .4byte 0x03005C00 _08010704: .4byte 0x00000FFF thumb_func_start sub_10708 sub_10708: @ 0x08010708 push {r4, r5, lr} sub sp, #8 str r0, [sp] str r1, [sp, #4] lsls r2, r2, #0x10 lsrs r0, r2, #0x10 movs r4, #0 lsls r3, r3, #0x10 asrs r1, r3, #0x10 cmp r4, r1 bge _08010744 ldr r2, _0801074C @ =0x040000D4 lsls r0, r0, #0x10 asrs r3, r0, #0xc movs r0, #0x80 lsls r0, r0, #0x18 orrs r3, r0 adds r5, r1, #0 _0801072C: lsls r1, r4, #0xa ldr r0, [sp] adds r0, r0, r1 str r0, [r2] ldr r0, [sp, #4] adds r0, r0, r1 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] adds r4, #1 cmp r4, r5 blt _0801072C _08010744: add sp, #8 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0801074C: .4byte 0x040000D4 thumb_func_start sub_10750 sub_10750: @ 0x08010750 push {r4, r5, lr} sub sp, #8 str r0, [sp] str r1, [sp, #4] lsls r2, r2, #0x10 lsrs r0, r2, #0x10 movs r4, #0 lsls r3, r3, #0x10 asrs r1, r3, #0x10 cmp r4, r1 bge _0801078C ldr r2, _08010794 @ =0x040000D4 lsls r0, r0, #0x10 asrs r3, r0, #0x10 movs r0, #0x80 lsls r0, r0, #0x18 orrs r3, r0 adds r5, r1, #0 _08010774: lsls r1, r4, #6 ldr r0, [sp] adds r0, r0, r1 str r0, [r2] ldr r0, [sp, #4] adds r0, r0, r1 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] adds r4, #1 cmp r4, r5 blt _08010774 _0801078C: add sp, #8 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08010794: .4byte 0x040000D4 thumb_func_start sub_10798 sub_10798: @ 0x08010798 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 mov r8, r2 ldr r4, _08010818 @ =0x040000D4 str r0, [r4] ldr r2, _0801081C @ =0x0201A920 str r2, [r4, #4] ldr r0, _08010820 @ =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 ldr r5, _08010824 @ =0x00007FFF adds r0, r5, #0 strh r0, [r1] str r1, [r4] ldr r0, _08010828 @ =0xFFFFFC00 adds r2, r2, r0 str r2, [r4, #4] ldr r0, _0801082C @ =0x81000200 str r0, [r4, #8] ldr r0, [r4, #8] str r2, [r4] str r3, [r4, #4] ldr r5, _08010830 @ =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, _08010834 @ =0x0200B0C0 movs r0, #0x80 lsls r0, r0, #0x13 ldrh r0, [r0] strh r0, [r1, #0x16] movs r7, #0 _080107FA: mov r1, r8 cmp r1, #0 beq _08010804 bl _call_via_r8 _08010804: adds r0, r7, #0 bl sub_1001C bl sub_D74 cmp r7, #0x20 bne _08010838 ldr r0, _0801081C @ =0x0201A920 b _0801083A .align 2, 0 _08010818: .4byte 0x040000D4 _0801081C: .4byte 0x0201A920 _08010820: .4byte 0x80000100 _08010824: .4byte 0x00007FFF _08010828: .4byte 0xFFFFFC00 _0801082C: .4byte 0x81000200 _08010830: .4byte 0x80000200 _08010834: .4byte 0x0200B0C0 _08010838: ldr r0, _0801085C @ =0x0201AD20 _0801083A: str r0, [r4] str r6, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r0, r7, #0 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0x20 bls _080107FA add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801085C: .4byte 0x0201AD20 thumb_func_start sub_10860 sub_10860: @ 0x08010860 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r5, r0, #0 ldr r1, _080108C8 @ =0x040000D4 movs r0, #0xa0 lsls r0, r0, #0x13 mov r8, r0 str r0, [r1] ldr r3, _080108CC @ =0x0201A520 str r3, [r1, #4] ldr r4, _080108D0 @ =0x80000200 str r4, [r1, #8] ldr r0, [r1, #8] mov r2, sp ldr r6, _080108D4 @ =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, _080108D8 @ =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 _080108A8: cmp r5, #0 beq _080108B0 bl _call_via_r5 _080108B0: adds r0, r7, #0 bl sub_1001C bl sub_D74 cmp r7, #0x20 bne _080108E0 ldr r0, _080108DC @ =0x0201A920 str r0, [r6] mov r0, r8 str r0, [r6, #4] b _080108E8 .align 2, 0 _080108C8: .4byte 0x040000D4 _080108CC: .4byte 0x0201A520 _080108D0: .4byte 0x80000200 _080108D4: .4byte 0x00007FFF _080108D8: .4byte 0x81000200 _080108DC: .4byte 0x0201A920 _080108E0: ldr r0, _08010908 @ =0x0201AD20 str r0, [r6] mov r2, r8 str r2, [r6, #4] _080108E8: str r4, [r6, #8] ldr r0, [r6, #8] adds r0, r7, #0 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #0x20 bls _080108A8 bl sub_D74 add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08010908: .4byte 0x0201AD20 thumb_func_start sub_1090C sub_1090C: @ 0x0801090C ldr r1, _08010920 @ =0x0201A500 movs r2, #0 adds r0, r1, #0 adds r0, #0xc _08010914: str r2, [r0] subs r0, #4 cmp r0, r1 bge _08010914 bx lr .align 2, 0 _08010920: .4byte 0x0201A500 thumb_func_start sub_10924 sub_10924: @ 0x08010924 push {lr} ldr r1, _0801093C @ =0x08079890 ldr r0, _08010940 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0801093C: .4byte 0x08079890 _08010940: .4byte 0x0200B0C0 thumb_func_start sub_10944 sub_10944: @ 0x08010944 push {r4, r5, lr} bl sub_438 movs r2, #0x80 lsls r2, r2, #0x13 movs r1, #0x84 lsls r1, r1, #5 adds r0, r1, #0 strh r0, [r2] ldr r1, _080109BC @ =0x0400000A movs r0, #0x85 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #2 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r4, _080109C0 @ =0x0200B0C0 ldrh r0, [r2] strh r0, [r4, #0x16] ldr r5, _080109C4 @ =0x040000D4 ldr r0, _080109C8 @ =0x081216C0 str r0, [r5] ldr r0, _080109CC @ =0x06004000 str r0, [r5, #4] ldr r0, _080109D0 @ =0x80005000 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _080109D4 @ =0x081214C0 str r0, [r5] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r5, #4] ldr r0, _080109D8 @ =0x80000100 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _080109DC @ =0x08120CC0 str r0, [r5] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r5, #4] ldr r0, _080109E0 @ =0x80000400 str r0, [r5, #8] ldr r0, [r5, #8] bl sub_52C44 ldr r0, [r4, #0x40] cmp r0, #1 bne _080109F4 ldr r0, _080109E4 @ =0x08137700 str r0, [r5] ldr r0, _080109E8 @ =0x05000200 str r0, [r5, #4] ldr r0, _080109EC @ =0x80000050 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _080109F0 @ =0x081306E0 b _08010A04 .align 2, 0 _080109BC: .4byte 0x0400000A _080109C0: .4byte 0x0200B0C0 _080109C4: .4byte 0x040000D4 _080109C8: .4byte 0x081216C0 _080109CC: .4byte 0x06004000 _080109D0: .4byte 0x80005000 _080109D4: .4byte 0x081214C0 _080109D8: .4byte 0x80000100 _080109DC: .4byte 0x08120CC0 _080109E0: .4byte 0x80000400 _080109E4: .4byte 0x08137700 _080109E8: .4byte 0x05000200 _080109EC: .4byte 0x80000050 _080109F0: .4byte 0x081306E0 _080109F4: ldr r0, _08010A5C @ =0x08137700 str r0, [r5] ldr r0, _08010A60 @ =0x05000200 str r0, [r5, #4] ldr r0, _08010A64 @ =0x80000050 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _08010A68 @ =0x081296C0 _08010A04: str r0, [r5] ldr r0, _08010A6C @ =0x06010000 str r0, [r5, #4] ldr r0, _08010A70 @ =0x80003800 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _08010A74 @ =0x0852B668 str r0, [r5] ldr r0, _08010A78 @ =0x050002A0 str r0, [r5, #4] ldr r0, _08010A7C @ =0x80000020 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _08010A80 @ =0x0852B868 str r0, [r5] ldr r0, _08010A84 @ =0x06017000 str r0, [r5, #4] ldr r0, _08010A88 @ =0x80000200 str r0, [r5, #8] ldr r0, [r5, #8] bl sub_10AC0 ldr r0, _08010A8C @ =0x0201A4B4 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 bne _08010A9C ldr r1, _08010A90 @ =0x0202BE24 movs r0, #0 strb r0, [r1] ldr r1, _08010A94 @ =0x02002888 movs r0, #0 strb r0, [r1, #9] strb r2, [r1, #0xb] ldr r1, _08010A98 @ =0x0200B0C0 movs r0, #3 strb r0, [r1, #3] bl sub_CBC movs r0, #0 bl sub_FD5C b _08010AAC .align 2, 0 _08010A5C: .4byte 0x08137700 _08010A60: .4byte 0x05000200 _08010A64: .4byte 0x80000050 _08010A68: .4byte 0x081296C0 _08010A6C: .4byte 0x06010000 _08010A70: .4byte 0x80003800 _08010A74: .4byte 0x0852B668 _08010A78: .4byte 0x050002A0 _08010A7C: .4byte 0x80000020 _08010A80: .4byte 0x0852B868 _08010A84: .4byte 0x06017000 _08010A88: .4byte 0x80000200 _08010A8C: .4byte 0x0201A4B4 _08010A90: .4byte 0x0202BE24 _08010A94: .4byte 0x02002888 _08010A98: .4byte 0x0200B0C0 _08010A9C: ldr r0, _08010AB8 @ =0x0200B0C0 movs r1, #1 strb r1, [r0, #3] bl sub_CBC ldr r0, _08010ABC @ =sub_11640 + 1 bl sub_FD5C _08010AAC: movs r0, #1 bl m4aSongNumStart pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08010AB8: .4byte 0x0200B0C0 _08010ABC: .4byte sub_11640 + 1 thumb_func_start sub_10AC0 sub_10AC0: @ 0x08010AC0 push {r4, r5, r6, r7, lr} ldr r1, _08010B28 @ =0x02002888 movs r2, #0 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #2] strb r2, [r1, #6] strb r2, [r1, #8] movs r0, #4 strb r0, [r1, #0x10] movs r3, #1 strb r3, [r1, #9] strb r2, [r1, #0x11] movs r0, #6 strb r0, [r1, #0xa] strb r2, [r1, #0xc] movs r0, #3 strb r0, [r1, #0xe] strb r2, [r1, #0xb] strb r2, [r1, #0xd] strb r2, [r1, #0xf] ldr r0, _08010B2C @ =0x0202C588 strh r3, [r0] ldr r0, _08010B30 @ =0x020028A0 strb r2, [r0] ldr r0, _08010B34 @ =0x020028A1 strb r2, [r0] ldr r0, _08010B38 @ =0x020028A2 strb r2, [r0] ldr r0, _08010B3C @ =0x020028A3 strb r2, [r0] ldr r0, _08010B40 @ =0x0200B0C0 ldr r2, [r0, #0x40] adds r6, r0, #0 cmp r2, #1 bne _08010B58 ldr r7, _08010B44 @ =0x020028A4 ldr r5, _08010B48 @ =0x020028A5 ldr r0, _08010B4C @ =0x0202BE24 mov ip, r0 ldr r4, _08010B50 @ =0x086A975C ldr r3, _08010B54 @ =0x0202BE00 movs r2, #6 _08010B16: ldm r4!, {r0} stm r3!, {r0} subs r2, #1 cmp r2, #0 bge _08010B16 movs r0, #1 strb r0, [r1] strb r0, [r1, #7] b _08010B78 .align 2, 0 _08010B28: .4byte 0x02002888 _08010B2C: .4byte 0x0202C588 _08010B30: .4byte 0x020028A0 _08010B34: .4byte 0x020028A1 _08010B38: .4byte 0x020028A2 _08010B3C: .4byte 0x020028A3 _08010B40: .4byte 0x0200B0C0 _08010B44: .4byte 0x020028A4 _08010B48: .4byte 0x020028A5 _08010B4C: .4byte 0x0202BE24 _08010B50: .4byte 0x086A975C _08010B54: .4byte 0x0202BE00 _08010B58: ldr r7, _08010B94 @ =0x020028A4 ldr r5, _08010B98 @ =0x020028A5 ldr r0, _08010B9C @ =0x0202BE24 mov ip, r0 ldr r4, _08010BA0 @ =0x086A96F8 ldr r3, _08010BA4 @ =0x0201C190 movs r2, #6 _08010B66: ldm r4!, {r0} stm r3!, {r0} subs r2, #1 cmp r2, #0 bge _08010B66 movs r0, #0 strb r0, [r1] strb r0, [r1, #7] strb r0, [r6, #0xd] _08010B78: movs r2, #0 movs r0, #0 strh r0, [r1, #0x14] movs r0, #1 strh r0, [r1, #0x12] strb r2, [r7] ldrh r1, [r6, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0xf bne _08010BA8 movs r0, #1 strb r0, [r5] b _08010BAA .align 2, 0 _08010B94: .4byte 0x020028A4 _08010B98: .4byte 0x020028A5 _08010B9C: .4byte 0x0202BE24 _08010BA0: .4byte 0x086A96F8 _08010BA4: .4byte 0x0201C190 _08010BA8: strb r2, [r5] _08010BAA: movs r0, #0 mov r1, ip strb r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_10BB8 sub_10BB8: @ 0x08010BB8 push {r4, r5, r6, r7, lr} ldr r2, _08010BE8 @ =0x0200B0C0 ldrh r1, [r2, #0x1c] movs r0, #0xf ands r0, r1 adds r7, r2, #0 cmp r0, #0xf bne _08010BF8 ldr r0, _08010BEC @ =0x020028A5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r2, _08010BF0 @ =0x020028A4 cmp r0, #0 bne _08010C00 movs r0, #1 strb r0, [r2] ldr r1, _08010BF4 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xb strb r0, [r7, #3] b _08010C00 .align 2, 0 _08010BE8: .4byte 0x0200B0C0 _08010BEC: .4byte 0x020028A5 _08010BF0: .4byte 0x020028A4 _08010BF4: .4byte 0x02002888 _08010BF8: ldr r1, _08010CD4 @ =0x020028A5 movs r0, #0 strb r0, [r1] ldr r2, _08010CD8 @ =0x020028A4 _08010C00: movs r4, #0 ldrsb r4, [r2, r4] cmp r4, #0 bne _08010CC8 ldr r2, _08010CDC @ =0x02002888 ldrh r0, [r2, #4] adds r0, #1 strh r0, [r2, #4] ldr r3, _08010CE0 @ =0x086A9662 movs r1, #8 ldrsb r1, [r2, r1] adds r1, r1, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _08010C3A strh r4, [r2, #4] ldrb r0, [r2, #8] adds r0, #1 strb r0, [r2, #8] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 ble _08010C3A movs r0, #0 strb r0, [r2, #8] _08010C3A: adds r4, r7, #0 ldrh r1, [r4, #0x1c] ldr r0, _08010CE4 @ =0x000003FF ands r0, r1 cmp r0, #0 beq _08010C4A movs r0, #0 strh r0, [r2, #0x14] _08010C4A: ldrh r1, [r4, #0x18] movs r0, #9 ands r0, r1 cmp r0, #0 beq _08010C66 movs r0, #0x65 bl m4aSongNumStart ldr r1, _08010CDC @ =0x02002888 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #2] movs r0, #2 strb r0, [r4, #3] _08010C66: bl sub_114FC bl sub_1157C ldr r6, _08010CDC @ =0x02002888 ldrh r0, [r6, #0x14] adds r0, #1 strh r0, [r6, #0x14] lsls r0, r0, #0x10 movs r1, #0xe1 lsls r1, r1, #0x13 cmp r0, r1 ble _08010CC8 movs r1, #0x14 ldrsh r0, [r6, r1] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08010CB4 ldrh r0, [r6, #0x12] adds r0, #1 strh r0, [r6, #0x12] ldr r4, _08010CE8 @ =0x02032EE0 ldr r5, _08010CEC @ =0x0000FFFF movs r0, #0x12 ldrsh r1, [r6, r0] movs r0, #0x80 lsls r0, r0, #1 bl __divsi3 adds r2, r0, #0 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 adds r0, r4, #0 adds r1, r5, #0 bl m4aMPlayVolumeControl _08010CB4: movs r1, #0x12 ldrsh r0, [r6, r1] cmp r0, #9 ble _08010CC8 movs r0, #0 strh r0, [r6, #0x14] movs r0, #7 strb r0, [r6, #6] movs r0, #0xb strb r0, [r7, #3] _08010CC8: bl sub_11640 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08010CD4: .4byte 0x020028A5 _08010CD8: .4byte 0x020028A4 _08010CDC: .4byte 0x02002888 _08010CE0: .4byte 0x086A9662 _08010CE4: .4byte 0x000003FF _08010CE8: .4byte 0x02032EE0 _08010CEC: .4byte 0x0000FFFF thumb_func_start sub_10CF0 sub_10CF0: @ 0x08010CF0 push {r4, r5, r6, r7, lr} ldr r6, _08010D70 @ =0x0200B0C0 ldrh r1, [r6, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _08010D74 @ =0x020028A4 cmp r0, #0xf bne _08010D0E movs r0, #1 strb r0, [r2] ldr r1, _08010D78 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xb strb r0, [r6, #3] _08010D0E: movs r4, #0 ldrsb r4, [r2, r4] cmp r4, #0 bne _08010D66 ldr r3, _08010D78 @ =0x02002888 ldrh r0, [r3, #4] adds r0, #1 movs r7, #0 strh r0, [r3, #4] ldr r5, _08010D7C @ =0x086A9666 movs r2, #2 ldrsh r1, [r3, r2] lsls r1, r1, #1 adds r2, r5, #1 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _08010D66 strh r4, [r3, #4] movs r1, #2 ldrsh r0, [r3, r1] lsls r0, r0, #1 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r3, #8] ldrh r0, [r3, #2] adds r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08010D66 strh r4, [r3, #2] ldr r0, _08010D80 @ =0x0202BE24 strb r7, [r0] strb r7, [r3, #9] movs r0, #1 strb r0, [r3, #0xb] movs r0, #3 strb r0, [r6, #3] _08010D66: bl sub_11640 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08010D70: .4byte 0x0200B0C0 _08010D74: .4byte 0x020028A4 _08010D78: .4byte 0x02002888 _08010D7C: .4byte 0x086A9666 _08010D80: .4byte 0x0202BE24 thumb_func_start sub_10D84 sub_10D84: @ 0x08010D84 push {r4, r5, r6, lr} ldr r6, _08010DD0 @ =0x0200B0C0 ldrh r1, [r6, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _08010DD4 @ =0x020028A4 cmp r0, #0xf bne _08010DA2 movs r0, #1 strb r0, [r2] ldr r1, _08010DD8 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xa strb r0, [r6, #3] _08010DA2: movs r5, #0 ldrsb r5, [r2, r5] cmp r5, #0 bne _08010DF2 ldrh r1, [r6, #0x18] movs r4, #1 ands r4, r1 cmp r4, #0 beq _08010DDC movs r0, #0x65 bl m4aSongNumStart bl sub_11B74 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 strb r5, [r6, #3] b _08010DF2 .align 2, 0 _08010DD0: .4byte 0x0200B0C0 _08010DD4: .4byte 0x020028A4 _08010DD8: .4byte 0x02002888 _08010DDC: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08010DF2 movs r0, #0x66 bl m4aSongNumStart ldr r0, _08010DFC @ =0x02002888 strb r4, [r0, #0x11] movs r0, #1 strb r0, [r6, #3] _08010DF2: bl sub_11640 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08010DFC: .4byte 0x02002888 thumb_func_start sub_10E00 sub_10E00: @ 0x08010E00 push {r4, r5, r6, lr} ldr r5, _08010E7C @ =0x0200B0C0 ldrh r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _08010E80 @ =0x020028A4 cmp r0, #0xf bne _08010E1E movs r0, #1 strb r0, [r2] ldr r1, _08010E84 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xb strb r0, [r5, #3] _08010E1E: movs r4, #0 ldrsb r4, [r2, r4] cmp r4, #0 bne _08010EE0 ldr r3, _08010E84 @ =0x02002888 ldrb r0, [r3, #7] cmp r0, #0 bne _08010E94 ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] ldr r2, _08010E88 @ =0x086A9748 movs r6, #2 ldrsh r1, [r3, r6] adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _08010E76 strh r4, [r3, #4] ldr r2, _08010E8C @ =0x0201C190 ldr r1, _08010E90 @ =0x086A9714 movs r6, #2 ldrsh r0, [r3, r6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x18] ldrh r0, [r3, #2] adds r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb ble _08010E76 strh r4, [r3, #2] movs r0, #1 strb r0, [r3, #0xd] strb r0, [r3, #0xf] movs r0, #4 strb r0, [r5, #3] _08010E76: bl sub_1175C b _08010EE0 .align 2, 0 _08010E7C: .4byte 0x0200B0C0 _08010E80: .4byte 0x020028A4 _08010E84: .4byte 0x02002888 _08010E88: .4byte 0x086A9748 _08010E8C: .4byte 0x0201C190 _08010E90: .4byte 0x086A9714 _08010E94: ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] ldr r2, _08010EE8 @ =0x086A9748 movs r6, #2 ldrsh r1, [r3, r6] adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _08010EDC strh r4, [r3, #4] ldr r2, _08010EEC @ =0x0202BE00 ldr r1, _08010EF0 @ =0x086A9778 movs r6, #2 ldrsh r0, [r3, r6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x18] ldrh r0, [r3, #2] adds r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb ble _08010EDC strh r4, [r3, #2] movs r0, #1 strb r0, [r3, #0xd] strb r0, [r3, #0xf] movs r0, #5 strb r0, [r5, #3] _08010EDC: bl sub_11968 _08010EE0: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08010EE8: .4byte 0x086A9748 _08010EEC: .4byte 0x0202BE00 _08010EF0: .4byte 0x086A9778 thumb_func_start sub_10EF4 sub_10EF4: @ 0x08010EF4 push {r4, r5, lr} ldr r3, _08010F94 @ =0x0200B0C0 ldrh r1, [r3, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _08010F98 @ =0x020028A4 cmp r0, #0xf bne _08010F12 movs r0, #1 strb r0, [r2] ldr r1, _08010F9C @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xa strb r0, [r3, #3] _08010F12: movs r4, #0 ldrsb r4, [r2, r4] cmp r4, #0 bne _08011010 ldr r3, _08010F9C @ =0x02002888 ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] ldr r5, _08010FA0 @ =0x086A9672 movs r2, #2 ldrsh r1, [r3, r2] lsls r1, r1, #1 adds r2, r5, #1 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _08010F68 strh r4, [r3, #4] ldrh r0, [r3, #2] adds r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #6 ble _08010F4E strh r4, [r3, #2] _08010F4E: movs r1, #2 ldrsh r0, [r3, r1] lsls r0, r0, #1 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r3, #0xc] movs r2, #2 ldrsh r0, [r3, r2] lsls r0, r0, #1 adds r0, r0, r5 ldrb r0, [r0] adds r0, #3 strb r0, [r3, #0xe] _08010F68: ldr r0, _08010F94 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0 beq _08010FA4 movs r0, #0x67 bl m4aSongNumStart ldr r1, _08010F9C @ =0x02002888 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bge _08010FC4 movs r0, #3 strb r0, [r1] b _08010FC4 .align 2, 0 _08010F94: .4byte 0x0200B0C0 _08010F98: .4byte 0x020028A4 _08010F9C: .4byte 0x02002888 _08010FA0: .4byte 0x086A9672 _08010FA4: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08010FC4 movs r0, #0x67 bl m4aSongNumStart ldr r1, _08010FE4 @ =0x02002888 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 ble _08010FC4 strb r4, [r1] _08010FC4: ldr r5, _08010FE8 @ =0x0200B0C0 ldrh r1, [r5, #0x18] movs r4, #9 ands r4, r1 cmp r4, #0 beq _08010FEC movs r0, #0x65 bl m4aSongNumStart ldr r1, _08010FE4 @ =0x02002888 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #2] movs r0, #7 b _0801100A .align 2, 0 _08010FE4: .4byte 0x02002888 _08010FE8: .4byte 0x0200B0C0 _08010FEC: movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801100C movs r0, #0x66 bl m4aSongNumStart ldr r1, _0801101C @ =0x02002888 movs r2, #0 strh r4, [r1, #4] movs r0, #0xc strh r0, [r1, #2] strb r2, [r1, #0xd] strb r2, [r1, #0xf] movs r0, #6 _0801100A: strb r0, [r5, #3] _0801100C: bl sub_1157C _08011010: bl sub_1175C pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0801101C: .4byte 0x02002888 thumb_func_start sub_11020 sub_11020: @ 0x08011020 push {r4, r5, lr} ldr r3, _08011088 @ =0x0200B0C0 ldrh r1, [r3, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _0801108C @ =0x020028A4 cmp r0, #0xf bne _0801103E movs r0, #1 strb r0, [r2] ldr r1, _08011090 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xb strb r0, [r3, #3] _0801103E: movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 bne _080110DE ldr r5, _08011090 @ =0x02002888 ldrh r1, [r5, #4] movs r0, #3 ands r1, r0 cmp r1, #0 bne _080110B6 movs r2, #2 ldrsh r0, [r5, r2] cmp r0, #0 bne _080110A0 movs r0, #1 strh r0, [r5, #2] movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #0xb ldr r4, _08011094 @ =0x060101E0 adds r0, r0, r4 ldr r1, _08011098 @ =0x03000000 movs r2, #8 movs r3, #2 bl sub_10708 ldr r0, _0801109C @ =0x060161E0 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #0xb adds r1, r1, r4 movs r2, #8 movs r3, #2 bl sub_10708 b _080110B6 .align 2, 0 _08011088: .4byte 0x0200B0C0 _0801108C: .4byte 0x020028A4 _08011090: .4byte 0x02002888 _08011094: .4byte 0x060101E0 _08011098: .4byte 0x03000000 _0801109C: .4byte 0x060161E0 _080110A0: strh r1, [r5, #2] ldr r0, _080110E8 @ =0x03000000 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #0xb ldr r2, _080110EC @ =0x060101E0 adds r1, r1, r2 movs r2, #8 movs r3, #2 bl sub_10708 _080110B6: ldr r3, _080110F0 @ =0x02002888 movs r1, #4 ldrsh r0, [r3, r1] cmp r0, #0x14 ble _080110D8 ldr r2, _080110F4 @ =0x0200B0C0 movs r0, #0 strb r0, [r2, #0xd] ldr r1, _080110F8 @ =0x086A96A4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r3, #6] movs r0, #0xa strb r0, [r2, #3] _080110D8: ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] _080110DE: bl sub_1175C pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080110E8: .4byte 0x03000000 _080110EC: .4byte 0x060101E0 _080110F0: .4byte 0x02002888 _080110F4: .4byte 0x0200B0C0 _080110F8: .4byte 0x086A96A4 thumb_func_start sub_110FC sub_110FC: @ 0x080110FC push {r4, r5, lr} ldr r3, _0801119C @ =0x0200B0C0 ldrh r1, [r3, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _080111A0 @ =0x020028A4 cmp r0, #0xf bne _0801111A movs r0, #1 strb r0, [r2] ldr r1, _080111A4 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xa strb r0, [r3, #3] _0801111A: movs r4, #0 ldrsb r4, [r2, r4] cmp r4, #0 bne _08011218 ldr r3, _080111A4 @ =0x02002888 ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] ldr r5, _080111A8 @ =0x086A9672 movs r2, #2 ldrsh r1, [r3, r2] lsls r1, r1, #1 adds r2, r5, #1 adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _08011170 strh r4, [r3, #4] ldrh r0, [r3, #2] adds r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #6 ble _08011156 strh r4, [r3, #2] _08011156: movs r1, #2 ldrsh r0, [r3, r1] lsls r0, r0, #1 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r3, #0xc] movs r2, #2 ldrsh r0, [r3, r2] lsls r0, r0, #1 adds r0, r0, r5 ldrb r0, [r0] adds r0, #3 strb r0, [r3, #0xe] _08011170: ldr r0, _0801119C @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0 beq _080111AC movs r0, #0x67 bl m4aSongNumStart ldr r1, _080111A4 @ =0x02002888 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 bge _080111CC movs r0, #4 strb r0, [r1] b _080111CC .align 2, 0 _0801119C: .4byte 0x0200B0C0 _080111A0: .4byte 0x020028A4 _080111A4: .4byte 0x02002888 _080111A8: .4byte 0x086A9672 _080111AC: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080111CC movs r0, #0x67 bl m4aSongNumStart ldr r1, _080111EC @ =0x02002888 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 ble _080111CC strb r4, [r1] _080111CC: ldr r5, _080111F0 @ =0x0200B0C0 ldrh r1, [r5, #0x18] movs r4, #9 ands r4, r1 cmp r4, #0 beq _080111F4 movs r0, #0x65 bl m4aSongNumStart ldr r1, _080111EC @ =0x02002888 movs r0, #0 strh r0, [r1, #4] strh r0, [r1, #2] movs r0, #8 b _08011212 .align 2, 0 _080111EC: .4byte 0x02002888 _080111F0: .4byte 0x0200B0C0 _080111F4: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08011214 movs r0, #0x66 bl m4aSongNumStart ldr r1, _08011224 @ =0x02002888 movs r2, #0 strh r4, [r1, #4] movs r0, #0xc strh r0, [r1, #2] strb r2, [r1, #0xd] strb r2, [r1, #0xf] movs r0, #6 _08011212: strb r0, [r5, #3] _08011214: bl sub_1157C _08011218: bl sub_11968 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08011224: .4byte 0x02002888 thumb_func_start sub_11228 sub_11228: @ 0x08011228 push {r4, r5, lr} ldr r3, _08011290 @ =0x0200B0C0 ldrh r1, [r3, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _08011294 @ =0x020028A4 cmp r0, #0xf bne _08011246 movs r0, #1 strb r0, [r2] ldr r1, _08011298 @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xb strb r0, [r3, #3] _08011246: movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 bne _0801130C ldr r5, _08011298 @ =0x02002888 ldrh r1, [r5, #4] movs r0, #3 ands r1, r0 cmp r1, #0 bne _080112BE movs r2, #2 ldrsh r0, [r5, r2] cmp r0, #0 bne _080112A8 movs r0, #1 strh r0, [r5, #2] movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #0xb ldr r4, _0801129C @ =0x060101E0 adds r0, r0, r4 ldr r1, _080112A0 @ =0x03000000 movs r2, #8 movs r3, #2 bl sub_10708 ldr r0, _080112A4 @ =0x060161E0 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #0xb adds r1, r1, r4 movs r2, #8 movs r3, #2 bl sub_10708 b _080112BE .align 2, 0 _08011290: .4byte 0x0200B0C0 _08011294: .4byte 0x020028A4 _08011298: .4byte 0x02002888 _0801129C: .4byte 0x060101E0 _080112A0: .4byte 0x03000000 _080112A4: .4byte 0x060161E0 _080112A8: strh r1, [r5, #2] ldr r0, _080112DC @ =0x03000000 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #0xb ldr r2, _080112E0 @ =0x060101E0 adds r1, r1, r2 movs r2, #8 movs r3, #2 bl sub_10708 _080112BE: ldr r0, _080112E4 @ =0x02002888 movs r2, #4 ldrsh r1, [r0, r2] adds r3, r0, #0 cmp r1, #0x14 ble _08011306 movs r2, #0 ldrsb r2, [r3, r2] cmp r2, #1 bne _080112EC ldr r0, _080112E8 @ =0x0200B0C0 strb r2, [r0, #0xd] adds r2, r0, #0 b _080112F4 .align 2, 0 _080112DC: .4byte 0x03000000 _080112E0: .4byte 0x060101E0 _080112E4: .4byte 0x02002888 _080112E8: .4byte 0x0200B0C0 _080112EC: ldr r1, _08011318 @ =0x0200B0C0 movs r0, #0 strb r0, [r1, #0xd] adds r2, r1, #0 _080112F4: ldr r1, _0801131C @ =0x086A96D4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r3, #6] movs r0, #0xa strb r0, [r2, #3] _08011306: ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] _0801130C: bl sub_11968 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08011318: .4byte 0x0200B0C0 _0801131C: .4byte 0x086A96D4 thumb_func_start sub_11320 sub_11320: @ 0x08011320 push {r4, r5, r6, r7, lr} ldr r5, _080113A4 @ =0x0200B0C0 ldrh r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 ldr r2, _080113A8 @ =0x020028A4 cmp r0, #0xf bne _0801133E movs r0, #1 strb r0, [r2] ldr r1, _080113AC @ =0x02002888 movs r0, #9 strb r0, [r1, #6] movs r0, #0xb strb r0, [r5, #3] _0801133E: movs r4, #0 ldrsb r4, [r2, r4] cmp r4, #0 bne _08011410 ldr r3, _080113AC @ =0x02002888 ldrb r0, [r3, #7] cmp r0, #0 bne _080113C0 ldrh r0, [r3, #4] adds r0, #1 movs r6, #0 strh r0, [r3, #4] ldr r2, _080113B0 @ =0x086A9748 movs r7, #2 ldrsh r1, [r3, r7] adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _0801139C strh r4, [r3, #4] ldrh r0, [r3, #2] subs r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 cmp r0, #0 bge _0801138C strh r4, [r3, #2] strb r6, [r3] ldr r0, _080113B4 @ =0x0202BE24 movs r1, #1 strb r1, [r0] movs r0, #1 strb r0, [r3, #9] strb r6, [r3, #0xb] strb r0, [r5, #3] _0801138C: ldr r2, _080113B8 @ =0x0201C190 ldr r1, _080113BC @ =0x086A9714 movs r4, #2 ldrsh r0, [r3, r4] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x18] _0801139C: bl sub_1175C b _08011410 .align 2, 0 _080113A4: .4byte 0x0200B0C0 _080113A8: .4byte 0x020028A4 _080113AC: .4byte 0x02002888 _080113B0: .4byte 0x086A9748 _080113B4: .4byte 0x0202BE24 _080113B8: .4byte 0x0201C190 _080113BC: .4byte 0x086A9714 _080113C0: ldrh r0, [r3, #4] adds r0, #1 strh r0, [r3, #4] ldr r2, _08011418 @ =0x086A9748 movs r6, #2 ldrsh r1, [r3, r6] adds r1, r1, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 blt _0801140C strh r4, [r3, #4] ldrh r0, [r3, #2] subs r0, #1 strh r0, [r3, #2] lsls r0, r0, #0x10 cmp r0, #0 bge _080113FC strh r4, [r3, #2] movs r0, #1 strb r0, [r3] ldr r1, _0801141C @ =0x0202BE24 strb r0, [r1] strb r0, [r3, #9] movs r1, #0 strb r1, [r3, #0xb] strb r0, [r5, #3] _080113FC: ldr r2, _08011420 @ =0x0202BE00 ldr r1, _08011424 @ =0x086A9778 movs r7, #2 ldrsh r0, [r3, r7] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2, #0x18] _0801140C: bl sub_11968 _08011410: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08011418: .4byte 0x086A9748 _0801141C: .4byte 0x0202BE24 _08011420: .4byte 0x0202BE00 _08011424: .4byte 0x086A9778 thumb_func_start sub_11428 sub_11428: @ 0x08011428 push {lr} ldr r0, _0801143C @ =0x02002888 ldrb r0, [r0, #7] cmp r0, #0 bne _08011444 ldr r0, _08011440 @ =sub_1175C + 1 bl sub_FE04 b _0801144A .align 2, 0 _0801143C: .4byte 0x02002888 _08011440: .4byte sub_1175C + 1 _08011444: ldr r0, _08011470 @ =sub_11968 + 1 bl sub_FE04 _0801144A: bl m4aMPlayAllStop bl sub_D10 ldr r1, _08011474 @ =0x086A964C ldr r0, _08011478 @ =0x02002888 ldrb r0, [r0, #6] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #8 bne _08011480 ldr r1, _0801147C @ =0x0202C588 movs r0, #0 b _08011484 .align 2, 0 _08011470: .4byte sub_11968 + 1 _08011474: .4byte 0x086A964C _08011478: .4byte 0x02002888 _0801147C: .4byte 0x0202C588 _08011480: ldr r1, _080114A4 @ =0x0202C588 movs r0, #1 _08011484: strh r0, [r1] ldr r1, _080114A8 @ =0x0201A4B4 movs r0, #0 strb r0, [r1] ldr r1, _080114AC @ =0x086A964C ldr r0, _080114B0 @ =0x02002888 ldrb r0, [r0, #6] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bl sub_23C pop {r0} bx r0 .align 2, 0 _080114A4: .4byte 0x0202C588 _080114A8: .4byte 0x0201A4B4 _080114AC: .4byte 0x086A964C _080114B0: .4byte 0x02002888 thumb_func_start sub_114B4 sub_114B4: @ 0x080114B4 push {lr} ldr r0, _080114E8 @ =sub_11640 + 1 bl sub_FE04 bl m4aMPlayAllStop bl sub_D10 ldr r1, _080114EC @ =0x0202C588 movs r0, #1 strh r0, [r1] ldr r1, _080114F0 @ =0x0201A4B4 movs r0, #0 strb r0, [r1] ldr r1, _080114F4 @ =0x086A964C ldr r0, _080114F8 @ =0x02002888 ldrb r0, [r0, #6] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] bl sub_23C pop {r0} bx r0 .align 2, 0 _080114E8: .4byte sub_11640 + 1 _080114EC: .4byte 0x0202C588 _080114F0: .4byte 0x0201A4B4 _080114F4: .4byte 0x086A964C _080114F8: .4byte 0x02002888 thumb_func_start sub_114FC sub_114FC: @ 0x080114FC push {r4, lr} ldr r4, _0801156C @ =0x0200B0C0 ldrh r2, [r4, #0x1c] movs r1, #0x88 lsls r1, r1, #2 adds r0, r1, #0 ands r0, r2 cmp r0, r1 bne _08011546 ldrh r1, [r4, #0x18] movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _08011546 ldr r2, _08011570 @ =0x020028A1 movs r0, #0x28 strb r0, [r2] ldr r1, _08011574 @ =0x020028A0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08011546 movs r0, #0 strb r0, [r1] strb r0, [r2] movs r0, #0x68 bl m4aSongNumStart ldr r1, _08011578 @ =0x02002888 movs r0, #1 strb r0, [r1, #0x11] movs r0, #9 strb r0, [r4, #3] _08011546: ldr r2, _08011570 @ =0x020028A1 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _08011564 subs r0, r1, #1 strb r0, [r2] lsls r0, r0, #0x18 cmp r0, #0 bgt _08011564 movs r1, #0 strb r1, [r2] ldr r0, _08011574 @ =0x020028A0 strb r1, [r0] _08011564: pop {r4} pop {r0} bx r0 .align 2, 0 _0801156C: .4byte 0x0200B0C0 _08011570: .4byte 0x020028A1 _08011574: .4byte 0x020028A0 _08011578: .4byte 0x02002888 thumb_func_start sub_1157C sub_1157C: @ 0x0801157C push {r4, r5, r6, r7, lr} ldr r6, _080115E4 @ =0x086A97AC ldr r3, _080115E8 @ =0x020028A2 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r6 ldrh r5, [r0] ldr r2, _080115EC @ =0x0200B0C0 ldrh r1, [r2, #0x1c] movs r0, #0x10 ands r0, r1 adds r4, r2, #0 ldr r7, _080115F0 @ =0x020028A3 cmp r0, #0 beq _080115FC ldrh r1, [r4, #0x18] lsls r0, r5, #0x10 asrs r0, r0, #0x10 ands r1, r0 cmp r1, r0 bne _080115FC movs r0, #0x28 strb r0, [r7] ldrb r0, [r3] adds r0, #1 strb r0, [r3] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r6 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _080115FC movs r0, #0 strb r0, [r3] strb r0, [r7] movs r0, #0x65 bl m4aSongNumStart ldr r1, _080115F4 @ =0x02002888 movs r0, #5 strb r0, [r1, #6] ldrb r0, [r4, #3] cmp r0, #1 bne _080115F8 movs r0, #0xb b _080115FA .align 2, 0 _080115E4: .4byte 0x086A97AC _080115E8: .4byte 0x020028A2 _080115EC: .4byte 0x0200B0C0 _080115F0: .4byte 0x020028A3 _080115F4: .4byte 0x02002888 _080115F8: movs r0, #0xa _080115FA: strb r0, [r4, #3] _080115FC: ldrh r0, [r4, #0x18] ldr r1, _08011638 @ =0x000003FF ands r0, r1 lsls r1, r5, #0x10 asrs r1, r1, #0x10 bics r0, r1 cmp r0, #0 beq _08011614 movs r1, #0 strb r1, [r7] ldr r0, _0801163C @ =0x020028A2 strb r1, [r0] _08011614: ldrb r1, [r7] movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0 ble _08011630 subs r0, r1, #1 strb r0, [r7] lsls r0, r0, #0x18 cmp r0, #0 bgt _08011630 movs r1, #0 strb r1, [r7] ldr r0, _0801163C @ =0x020028A2 strb r1, [r0] _08011630: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08011638: .4byte 0x000003FF _0801163C: .4byte 0x020028A2 thumb_func_start sub_11640 sub_11640: @ 0x08011640 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _08011744 @ =0x02002888 movs r0, #8 ldrsb r0, [r4, r0] movs r1, #0xb8 muls r0, r1, r0 ldr r2, _08011748 @ =0x0200B3B8 adds r7, r0, r2 movs r0, #0x10 ldrsb r0, [r4, r0] muls r0, r1, r0 adds r6, r0, r2 movs r0, #9 ldrsb r0, [r4, r0] strh r0, [r7] movs r0, #0x11 ldrsb r0, [r4, r0] strh r0, [r6] ldr r5, _0801174C @ =0x086A96E4 adds r0, r5, #0 movs r1, #5 bl sub_358 ldrh r0, [r7] cmp r0, #1 bne _080116DC movs r0, #0x78 strh r0, [r7, #2] movs r0, #0x66 strh r0, [r7, #4] movs r0, #8 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r5 ldr r0, [r0] mov ip, r0 movs r5, #0 ldrh r0, [r0] cmp r5, r0 bge _080116DC ldr r1, _08011750 @ =0x03005000 mov r8, r1 ldr r2, _08011754 @ =0xFFFFFE00 mov sb, r2 adds r4, r7, #0 adds r4, #8 _080116A2: ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08011758 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 adds r5, #1 mov r0, ip ldrh r0, [r0] cmp r5, r0 blt _080116A2 _080116DC: ldrh r0, [r6] cmp r0, #1 bne _08011730 movs r0, #0x78 strh r0, [r6, #2] movs r0, #0x50 strh r0, [r6, #4] ldr r1, _08011750 @ =0x03005000 mov r8, r1 ldr r2, _08011754 @ =0xFFFFFE00 mov sb, r2 adds r4, r6, #0 adds r4, #8 ldr r0, _08011758 @ =0x000001FF mov ip, r0 movs r5, #1 _080116FC: ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 mov r0, ip ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _080116FC _08011730: movs r0, #0 strh r0, [r7] strh r0, [r6] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08011744: .4byte 0x02002888 _08011748: .4byte 0x0200B3B8 _0801174C: .4byte 0x086A96E4 _08011750: .4byte 0x03005000 _08011754: .4byte 0xFFFFFE00 _08011758: .4byte 0x000001FF thumb_func_start sub_1175C sub_1175C: @ 0x0801175C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r2, _08011810 @ =0x0200B0C0 ldrh r0, [r2, #0x38] movs r0, #0x84 lsls r0, r0, #2 strh r0, [r2, #0x38] ldrh r0, [r2, #0x3a] ldr r0, _08011814 @ =0x00000808 strh r0, [r2, #0x3a] ldr r1, _08011818 @ =0x04000050 ldrh r0, [r2, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] ldr r3, _0801181C @ =0x02002888 movs r0, #0xa ldrsb r0, [r3, r0] movs r1, #0xb8 muls r0, r1, r0 movs r4, #0xbe lsls r4, r4, #2 adds r2, r2, r4 adds r0, r0, r2 mov sl, r0 movs r0, #0xc ldrsb r0, [r3, r0] muls r0, r1, r0 adds r0, r0, r2 mov sb, r0 movs r0, #0xe ldrsb r0, [r3, r0] muls r0, r1, r0 adds r0, r0, r2 mov r8, r0 movs r0, #0xb ldrsb r0, [r3, r0] mov r6, sl strh r0, [r6] movs r0, #0xd ldrsb r0, [r3, r0] mov r7, sb strh r0, [r7] movs r0, #0xf ldrsb r0, [r3, r0] mov r1, r8 strh r0, [r1] ldr r4, _08011820 @ =0x0201C190 adds r0, r4, #0 movs r1, #7 bl sub_358 ldrh r0, [r6] cmp r0, #1 bne _0801187C movs r0, #0x78 strh r0, [r6, #2] movs r0, #0x66 strh r0, [r6, #4] ldr r4, [r4, #0x18] mov ip, r4 movs r2, #0 str r2, [sp] ldrh r3, [r4] cmp r2, r3 bge _0801187C ldr r6, _08011824 @ =0x03005000 mov r4, sl adds r4, #8 mov r5, ip _080117F2: ldrh r0, [r5, #8] cmp r0, #1 bne _08011828 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #1] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #1] b _08011838 .align 2, 0 _08011810: .4byte 0x0200B0C0 _08011814: .4byte 0x00000808 _08011818: .4byte 0x04000050 _0801181C: .4byte 0x02002888 _08011820: .4byte 0x0201C190 _08011824: .4byte 0x03005000 _08011828: ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 ldrb r2, [r0, #1] movs r1, #0xd rsbs r1, r1, #0 ands r1, r2 strb r1, [r0, #1] _08011838: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r7, #2 ldrsh r1, [r4, r7] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08011950 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08011954 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sl ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 adds r5, #8 ldr r0, [sp] adds r0, #1 str r0, [sp] mov r1, ip ldrh r1, [r1] cmp r0, r1 blt _080117F2 _0801187C: mov r2, sb ldrh r0, [r2] cmp r0, #1 bne _080118D8 ldr r2, _08011958 @ =0x086A9684 ldr r1, _0801195C @ =0x02002888 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] mov r3, sb strh r0, [r3, #2] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] strh r0, [r3, #4] mov r5, sb adds r5, #8 ldr r4, _08011960 @ =0x03005000 ldrh r2, [r3, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r6, #2 ldrsh r1, [r5, r6] movs r7, #2 ldrsh r0, [r3, r7] adds r1, r1, r0 ldr r3, _08011950 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08011954 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] mov r6, sb ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _080118D8: mov r7, r8 ldrh r0, [r7] cmp r0, #1 bne _08011930 ldr r2, _08011964 @ =0x086A9694 ldr r1, _0801195C @ =0x02002888 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r7, #2] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] strh r0, [r7, #4] mov r5, r8 adds r5, #8 ldr r4, _08011960 @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r6, _08011950 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08011954 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08011930: movs r0, #0 mov r7, sl strh r0, [r7] mov r1, sb strh r0, [r1] mov r2, r8 strh r0, [r2] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08011950: .4byte 0x000001FF _08011954: .4byte 0xFFFFFE00 _08011958: .4byte 0x086A9684 _0801195C: .4byte 0x02002888 _08011960: .4byte 0x03005000 _08011964: .4byte 0x086A9694 thumb_func_start sub_11968 sub_11968: @ 0x08011968 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r2, _08011A1C @ =0x0200B0C0 ldrh r0, [r2, #0x38] movs r0, #0x84 lsls r0, r0, #2 strh r0, [r2, #0x38] ldrh r0, [r2, #0x3a] ldr r0, _08011A20 @ =0x00000808 strh r0, [r2, #0x3a] ldr r1, _08011A24 @ =0x04000050 ldrh r0, [r2, #0x38] strh r0, [r1] adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] ldr r3, _08011A28 @ =0x02002888 movs r0, #0xa ldrsb r0, [r3, r0] movs r1, #0xb8 muls r0, r1, r0 movs r4, #0xbe lsls r4, r4, #2 adds r2, r2, r4 adds r0, r0, r2 mov sl, r0 movs r0, #0xc ldrsb r0, [r3, r0] muls r0, r1, r0 adds r0, r0, r2 mov sb, r0 movs r0, #0xe ldrsb r0, [r3, r0] muls r0, r1, r0 adds r0, r0, r2 mov r8, r0 movs r0, #0xb ldrsb r0, [r3, r0] mov r6, sl strh r0, [r6] movs r0, #0xd ldrsb r0, [r3, r0] mov r7, sb strh r0, [r7] movs r0, #0xf ldrsb r0, [r3, r0] mov r1, r8 strh r0, [r1] ldr r4, _08011A2C @ =0x0202BE00 adds r0, r4, #0 movs r1, #7 bl sub_358 ldrh r0, [r6] cmp r0, #1 bne _08011A88 movs r0, #0x78 strh r0, [r6, #2] movs r0, #0x66 strh r0, [r6, #4] ldr r4, [r4, #0x18] mov ip, r4 movs r2, #0 str r2, [sp] ldrh r3, [r4] cmp r2, r3 bge _08011A88 ldr r6, _08011A30 @ =0x03005000 mov r4, sl adds r4, #8 mov r5, ip _080119FE: ldrh r0, [r5, #8] cmp r0, #1 bne _08011A34 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #1] movs r0, #0xd rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #1] b _08011A44 .align 2, 0 _08011A1C: .4byte 0x0200B0C0 _08011A20: .4byte 0x00000808 _08011A24: .4byte 0x04000050 _08011A28: .4byte 0x02002888 _08011A2C: .4byte 0x0202BE00 _08011A30: .4byte 0x03005000 _08011A34: ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 ldrb r2, [r0, #1] movs r1, #0xd rsbs r1, r1, #0 ands r1, r2 strb r1, [r0, #1] _08011A44: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r7, #2 ldrsh r1, [r4, r7] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08011B5C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08011B60 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sl ldrb r0, [r3, #4] ldrb r7, [r4, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #8 adds r5, #8 ldr r0, [sp] adds r0, #1 str r0, [sp] mov r1, ip ldrh r1, [r1] cmp r0, r1 blt _080119FE _08011A88: mov r2, sb ldrh r0, [r2] cmp r0, #1 bne _08011AE4 ldr r2, _08011B64 @ =0x086A96AC ldr r1, _08011B68 @ =0x02002888 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] mov r3, sb strh r0, [r3, #2] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] strh r0, [r3, #4] mov r5, sb adds r5, #8 ldr r4, _08011B6C @ =0x03005000 ldrh r2, [r3, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r6, #2 ldrsh r1, [r5, r6] movs r7, #2 ldrsh r0, [r3, r7] adds r1, r1, r0 ldr r3, _08011B5C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08011B60 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] mov r6, sb ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08011AE4: mov r7, r8 ldrh r0, [r7] cmp r0, #1 bne _08011B3C ldr r2, _08011B70 @ =0x086A96C0 ldr r1, _08011B68 @ =0x02002888 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r7, #2] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] strh r0, [r7, #4] mov r5, r8 adds r5, #8 ldr r4, _08011B6C @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r6, _08011B5C @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08011B60 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08011B3C: movs r0, #0 mov r7, sl strh r0, [r7] mov r1, sb strh r0, [r1] mov r2, r8 strh r0, [r2] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08011B5C: .4byte 0x000001FF _08011B60: .4byte 0xFFFFFE00 _08011B64: .4byte 0x086A96AC _08011B68: .4byte 0x02002888 _08011B6C: .4byte 0x03005000 _08011B70: .4byte 0x086A96C0 thumb_func_start sub_11B74 sub_11B74: @ 0x08011B74 push {lr} bl sub_52C64 bl sub_52B30 ldr r0, _08011B94 @ =0x0200B0C0 movs r1, #0 str r1, [r0, #0x40] adds r0, #0x40 ldr r1, _08011B98 @ =0x0E000544 movs r2, #4 bl sub_55654 pop {r0} bx r0 .align 2, 0 _08011B94: .4byte 0x0200B0C0 _08011B98: .4byte 0x0E000544 thumb_func_start sub_11B9C sub_11B9C: @ 0x08011B9C push {r4, lr} ldr r0, _08011BC0 @ =0x0200B0C0 ldrb r0, [r0, #6] cmp r0, #0 bne _08011BD0 ldr r0, _08011BC4 @ =0x020314E0 ldr r0, [r0] ldr r2, _08011BC8 @ =0x0000132C adds r1, r0, r2 ldr r3, _08011BCC @ =0x00001334 adds r0, r0, r3 str r0, [r1] movs r0, #0 bl sub_11C14 bl sub_12524 b _08011C02 .align 2, 0 _08011BC0: .4byte 0x0200B0C0 _08011BC4: .4byte 0x020314E0 _08011BC8: .4byte 0x0000132C _08011BCC: .4byte 0x00001334 _08011BD0: movs r3, #0 _08011BD2: ldr r0, _08011C08 @ =0x020314E0 ldr r1, [r0] ldr r0, _08011C0C @ =0x0000132C adds r2, r1, r0 lsls r4, r3, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #4 adds r0, r0, r4 lsls r0, r0, #2 ldr r3, _08011C10 @ =0x00001334 adds r0, r0, r3 adds r1, r1, r0 str r1, [r2] adds r0, r4, #0 bl sub_11C14 adds r4, #1 lsls r4, r4, #0x10 lsrs r3, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08011BD2 bl sub_12BF8 _08011C02: pop {r4} pop {r0} bx r0 .align 2, 0 _08011C08: .4byte 0x020314E0 _08011C0C: .4byte 0x0000132C _08011C10: .4byte 0x00001334 thumb_func_start sub_11C14 sub_11C14: @ 0x08011C14 push {r4, r5, lr} ldr r3, _08011C6C @ =0x020314E0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 adds r1, r1, r0 lsls r1, r1, #2 ldr r0, _08011C70 @ =0x00001334 adds r1, r1, r0 ldr r0, [r3] adds r4, r0, r1 ldr r1, _08011C74 @ =0x02031520 ldrh r0, [r1, #0x26] movs r2, #0 strh r0, [r4, #0x10] ldrh r0, [r1, #0x28] strh r0, [r4, #0x12] movs r5, #0x10 ldrsh r0, [r4, r5] lsls r0, r0, #8 str r0, [r4, #0x34] movs r5, #0x12 ldrsh r0, [r4, r5] lsls r0, r0, #8 str r0, [r4, #0x38] movs r5, #0x26 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r4, #0x28] movs r5, #0x28 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r4, #0x2a] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0xe] strh r2, [r4, #0x30] strh r2, [r4, #0x32] ldr r0, _08011C78 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _08011C7C movs r0, #3 b _08011C7E .align 2, 0 _08011C6C: .4byte 0x020314E0 _08011C70: .4byte 0x00001334 _08011C74: .4byte 0x02031520 _08011C78: .4byte 0x0200B0C0 _08011C7C: movs r0, #1 _08011C7E: strb r0, [r4, #1] movs r0, #0 strh r0, [r4, #6] ldr r0, [r3] ldr r1, _08011C94 @ =0x000005B2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08011C94: .4byte 0x000005B2 thumb_func_start sub_11C98 sub_11C98: @ 0x08011C98 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _08011CE0 @ =0x020314E0 ldr r2, [r0] ldr r1, _08011CE4 @ =0x0000132C adds r0, r2, r1 ldr r6, [r0] ldr r0, [r6, #0x34] ldr r1, [r6, #0x38] str r0, [r6, #0x3c] str r1, [r6, #0x40] ldr r1, _08011CE8 @ =0x000005A4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, #2 bne _08011CBE b _08011F48 _08011CBE: adds r0, r2, #0 adds r0, #0x31 ldrb r0, [r0] cmp r0, #0 bne _08011CCA b _08011E04 _08011CCA: ldrb r0, [r2, #0x1f] cmp r0, #0 bne _08011D0A ldrh r3, [r6, #0x32] movs r1, #0x32 ldrsh r0, [r6, r1] cmp r0, #0xa0 ble _08011CF0 ldr r0, _08011CEC @ =0x08137910 b _08011CFE .align 2, 0 _08011CE0: .4byte 0x020314E0 _08011CE4: .4byte 0x0000132C _08011CE8: .4byte 0x000005A4 _08011CEC: .4byte 0x08137910 _08011CF0: cmp r0, #0x50 ble _08011CFC ldr r0, _08011CF8 @ =0x08137908 b _08011CFE .align 2, 0 _08011CF8: .4byte 0x08137908 _08011CFC: ldr r0, _08011D8C @ =0x08137900 _08011CFE: ldrb r1, [r2, #0x1e] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r0, r3, r0 strh r0, [r6, #0x32] _08011D0A: movs r2, #0x30 ldrsh r0, [r6, r2] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r4, r7, #0 movs r1, #0x30 ldrsh r0, [r6, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r2, r1, r0 movs r0, #0x12 ldrsh r1, [r6, r0] ldr r0, _08011D90 @ =0x0000017B cmp r1, r0 bgt _08011DA4 movs r1, #0x88 lsls r1, r1, #1 mov r8, r1 ldr r0, _08011D94 @ =0x00012100 cmp r2, r0 bgt _08011D4C b _08011F2C _08011D4C: adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, r8 muls r2, r0, r2 adds r0, r2, #0 ldr r1, _08011D98 @ =0x00004E20 mov sb, r1 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011D9C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 adds r0, r7, #0 bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sb bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011DA0 @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011D8C: .4byte 0x08137900 _08011D90: .4byte 0x0000017B _08011D94: .4byte 0x00012100 _08011D98: .4byte 0x00004E20 _08011D9C: .4byte 0xFFFF0000 _08011DA0: .4byte 0x0000FFFF _08011DA4: movs r0, #0xc8 lsls r0, r0, #1 mov r8, r0 ldr r0, _08011DF4 @ =0x00027100 cmp r2, r0 bgt _08011DB2 b _08011F2C _08011DB2: adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 muls r1, r0, r1 adds r0, r1, #0 ldr r7, _08011DF8 @ =0x00004E20 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011DFC @ =0xFFFF0000 ands r5, r1 orrs r5, r0 adds r0, r4, #0 bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011E00 @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011DF4: .4byte 0x00027100 _08011DF8: .4byte 0x00004E20 _08011DFC: .4byte 0xFFFF0000 _08011E00: .4byte 0x0000FFFF _08011E04: ldrb r0, [r2, #0x1f] cmp r0, #0 bne _08011E36 ldrh r3, [r6, #0x32] movs r1, #0x32 ldrsh r0, [r6, r1] cmp r0, #0xc8 ble _08011E1C ldr r0, _08011E18 @ =0x08137910 b _08011E2A .align 2, 0 _08011E18: .4byte 0x08137910 _08011E1C: cmp r0, #0x64 ble _08011E28 ldr r0, _08011E24 @ =0x08137908 b _08011E2A .align 2, 0 _08011E24: .4byte 0x08137908 _08011E28: ldr r0, _08011EB8 @ =0x08137900 _08011E2A: ldrb r1, [r2, #0x1e] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r0, r3, r0 strh r0, [r6, #0x32] _08011E36: movs r2, #0x30 ldrsh r0, [r6, r2] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 mov sb, r7 movs r1, #0x30 ldrsh r0, [r6, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r2, r1, r0 movs r0, #0x12 ldrsh r1, [r6, r0] ldr r0, _08011EBC @ =0x0000017B cmp r1, r0 bgt _08011ED0 movs r1, #0xa8 lsls r1, r1, #1 mov r8, r1 ldr r0, _08011EC0 @ =0x0001B900 cmp r2, r0 ble _08011F2C adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, r8 muls r2, r0, r2 adds r0, r2, #0 ldr r1, _08011EC4 @ =0x00004E20 mov sb, r1 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011EC8 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 adds r0, r7, #0 bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sb bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011ECC @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011EB8: .4byte 0x08137900 _08011EBC: .4byte 0x0000017B _08011EC0: .4byte 0x0001B900 _08011EC4: .4byte 0x00004E20 _08011EC8: .4byte 0xFFFF0000 _08011ECC: .4byte 0x0000FFFF _08011ED0: movs r0, #0xc8 lsls r0, r0, #1 mov r8, r0 ldr r0, _08011F1C @ =0x00027100 cmp r2, r0 ble _08011F2C mov r0, sb bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 muls r1, r0, r1 adds r0, r1, #0 ldr r7, _08011F20 @ =0x00004E20 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08011F24 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, sb bl sub_C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08011F28 @ =0x0000FFFF ands r5, r1 b _08011F32 .align 2, 0 _08011F1C: .4byte 0x00027100 _08011F20: .4byte 0x00004E20 _08011F24: .4byte 0xFFFF0000 _08011F28: .4byte 0x0000FFFF _08011F2C: ldrh r0, [r6, #0x32] lsls r0, r0, #0x10 ldrh r5, [r6, #0x30] _08011F32: orrs r5, r0 lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r0, [r6, #0x34] adds r0, r0, r1 str r0, [r6, #0x34] asrs r1, r5, #0x10 ldr r0, [r6, #0x38] adds r0, r0, r1 str r0, [r6, #0x38] b _08011F4C _08011F48: bl sub_2AADC _08011F4C: ldr r0, [r6, #0x28] str r0, [r6, #0x2c] ldr r1, [r6, #0x34] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _08011F5C adds r0, #0x7f _08011F5C: asrs r0, r0, #7 strh r0, [r6, #0x28] ldr r1, [r6, #0x38] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _08011F6C adds r0, #0x7f _08011F6C: asrs r0, r0, #7 strh r0, [r6, #0x2a] ldrh r0, [r6, #6] strh r0, [r6, #8] ldrh r1, [r6, #0xa] adds r0, r0, r1 strh r0, [r6, #0xa] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_11F88 sub_11F88: @ 0x08011F88 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r2, _08011FD0 @ =0x020314E0 ldr r3, [r2] ldr r1, _08011FD4 @ =0x0000132C adds r0, r3, r1 ldr r6, [r0] ldr r0, [r6, #0x34] ldr r1, [r6, #0x38] str r0, [r6, #0x3c] str r1, [r6, #0x40] ldr r1, _08011FD8 @ =0x000005A4 adds r0, r3, r1 ldrb r0, [r0] cmp r0, #2 bne _08011FAE b _080124E4 _08011FAE: ldrb r0, [r3, #0x1f] cmp r0, #0 bne _08011FFE ldr r1, _08011FDC @ =0x00000383 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08011FFE ldrh r4, [r6, #0x32] movs r1, #0x32 ldrsh r0, [r6, r1] cmp r0, #0x96 ble _08011FE4 ldr r0, _08011FE0 @ =0x08137910 b _08011FF2 .align 2, 0 _08011FD0: .4byte 0x020314E0 _08011FD4: .4byte 0x0000132C _08011FD8: .4byte 0x000005A4 _08011FDC: .4byte 0x00000383 _08011FE0: .4byte 0x08137910 _08011FE4: cmp r0, #0x4b ble _08011FF0 ldr r0, _08011FEC @ =0x08137908 b _08011FF2 .align 2, 0 _08011FEC: .4byte 0x08137908 _08011FF0: ldr r0, _0801208C @ =0x08137900 _08011FF2: ldrb r1, [r3, #0x1e] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] adds r0, r4, r0 strh r0, [r6, #0x32] _08011FFE: ldr r0, [r2] adds r0, #0x31 ldrb r0, [r0] cmp r0, #0 bne _0801200A b _08012270 _0801200A: movs r2, #0x30 ldrsh r0, [r6, r2] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 mov sb, r8 movs r1, #0x30 ldrsh r0, [r6, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _08012090 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #3 bhi _080120FC movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0x95 bgt _080120A4 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _08012094 @ =0x00012100 cmp r1, r0 bgt _08012052 b _080124C8 _08012052: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012098 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801209C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080120A0 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _0801208C: .4byte 0x08137900 _08012090: .4byte 0x0200B0C0 _08012094: .4byte 0x00012100 _08012098: .4byte 0x00004E20 _0801209C: .4byte 0xFFFF0000 _080120A0: .4byte 0x0000FFFF _080120A4: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _080120EC @ =0x00027100 cmp r1, r0 bgt _080120B0 b _080124C8 _080120B0: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080120F0 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080120F4 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080120F8 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080120EC: .4byte 0x00027100 _080120F0: .4byte 0x00004E20 _080120F4: .4byte 0xFFFF0000 _080120F8: .4byte 0x0000FFFF _080120FC: cmp r0, #7 bne _080121B8 movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _08012160 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _08012150 @ =0x00012100 cmp r1, r0 bgt _08012114 b _080124C8 _08012114: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012154 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012158 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _0801215C @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012150: .4byte 0x00012100 _08012154: .4byte 0x00004E20 _08012158: .4byte 0xFFFF0000 _0801215C: .4byte 0x0000FFFF _08012160: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _080121A8 @ =0x00027100 cmp r1, r0 bgt _0801216C b _080124C8 _0801216C: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080121AC @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080121B0 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080121B4 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080121A8: .4byte 0x00027100 _080121AC: .4byte 0x00004E20 _080121B0: .4byte 0xFFFF0000 _080121B4: .4byte 0x0000FFFF _080121B8: movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _08012218 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _08012208 @ =0x00012100 cmp r1, r0 bgt _080121CC b _080124C8 _080121CC: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _0801220C @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012210 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012214 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012208: .4byte 0x00012100 _0801220C: .4byte 0x00004E20 _08012210: .4byte 0xFFFF0000 _08012214: .4byte 0x0000FFFF _08012218: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _08012260 @ =0x00027100 cmp r1, r0 bgt _08012224 b _080124C8 _08012224: mov r0, sb bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012264 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012268 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, sb bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _0801226C @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012260: .4byte 0x00027100 _08012264: .4byte 0x00004E20 _08012268: .4byte 0xFFFF0000 _0801226C: .4byte 0x0000FFFF _08012270: movs r1, #0x30 ldrsh r0, [r6, r1] ldrh r1, [r6, #0x32] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 movs r2, #0x30 ldrsh r0, [r6, r2] adds r1, r0, #0 muls r1, r0, r1 movs r2, #0x32 ldrsh r0, [r6, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _080122F0 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #3 bhi _0801235C movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0x95 bgt _08012304 movs r7, #0x98 lsls r7, r7, #1 ldr r0, _080122F4 @ =0x00016900 cmp r1, r0 bgt _080122B6 b _080124C8 _080122B6: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080122F8 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080122FC @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012300 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080122F0: .4byte 0x0200B0C0 _080122F4: .4byte 0x00016900 _080122F8: .4byte 0x00004E20 _080122FC: .4byte 0xFFFF0000 _08012300: .4byte 0x0000FFFF _08012304: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _0801234C @ =0x00027100 cmp r1, r0 bgt _08012310 b _080124C8 _08012310: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012350 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012354 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012358 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _0801234C: .4byte 0x00027100 _08012350: .4byte 0x00004E20 _08012354: .4byte 0xFFFF0000 _08012358: .4byte 0x0000FFFF _0801235C: cmp r0, #7 bne _08012418 movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _080123C0 movs r7, #0x88 lsls r7, r7, #1 ldr r0, _080123B0 @ =0x00012100 cmp r1, r0 bgt _08012374 b _080124C8 _08012374: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080123B4 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080123B8 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080123BC @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080123B0: .4byte 0x00012100 _080123B4: .4byte 0x00004E20 _080123B8: .4byte 0xFFFF0000 _080123BC: .4byte 0x0000FFFF _080123C0: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _08012408 @ =0x00027100 cmp r1, r0 bgt _080123CC b _080124C8 _080123CC: mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _0801240C @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08012410 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012414 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012408: .4byte 0x00027100 _0801240C: .4byte 0x00004E20 _08012410: .4byte 0xFFFF0000 _08012414: .4byte 0x0000FFFF _08012418: movs r2, #0x12 ldrsh r0, [r6, r2] cmp r0, #0xd9 bgt _08012474 movs r7, #0x98 lsls r7, r7, #1 ldr r0, _08012464 @ =0x00016900 cmp r1, r0 ble _080124C8 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _08012468 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801246C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08012470 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _08012464: .4byte 0x00016900 _08012468: .4byte 0x00004E20 _0801246C: .4byte 0xFFFF0000 _08012470: .4byte 0x0000FFFF _08012474: movs r7, #0xc8 lsls r7, r7, #1 ldr r0, _080124B8 @ =0x00027100 cmp r1, r0 ble _080124C8 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r4, _080124BC @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080124C0 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 mov r0, r8 bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080124C4 @ =0x0000FFFF ands r5, r1 b _080124CE .align 2, 0 _080124B8: .4byte 0x00027100 _080124BC: .4byte 0x00004E20 _080124C0: .4byte 0xFFFF0000 _080124C4: .4byte 0x0000FFFF _080124C8: ldrh r0, [r6, #0x32] lsls r0, r0, #0x10 ldrh r5, [r6, #0x30] _080124CE: orrs r5, r0 lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r0, [r6, #0x34] adds r0, r0, r1 str r0, [r6, #0x34] asrs r1, r5, #0x10 ldr r0, [r6, #0x38] adds r0, r0, r1 str r0, [r6, #0x38] b _080124E8 _080124E4: bl sub_2AADC _080124E8: ldr r0, [r6, #0x28] str r0, [r6, #0x2c] ldr r1, [r6, #0x34] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _080124F8 adds r0, #0x7f _080124F8: asrs r0, r0, #7 strh r0, [r6, #0x28] ldr r1, [r6, #0x38] adds r0, r1, #0 adds r0, #0x40 cmp r0, #0 bge _08012508 adds r0, #0x7f _08012508: asrs r0, r0, #7 strh r0, [r6, #0x2a] ldrh r0, [r6, #6] strh r0, [r6, #8] ldrh r1, [r6, #0xa] adds r0, r0, r1 strh r0, [r6, #0xa] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_12524 sub_12524: @ 0x08012524 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r2, _080125F0 @ =0x020314E0 ldr r0, [r2] ldr r1, _080125F4 @ =0x0000132C adds r0, r0, r1 ldr r7, [r0] ldrh r0, [r7, #0xa] lsrs r0, r0, #0xc mov r8, r0 movs r3, #0x12 ldrsh r1, [r7, r3] movs r0, #0xaa lsls r0, r0, #1 cmp r1, r0 bne _0801255A movs r4, #0x10 ldrsh r0, [r7, r4] cmp r0, #0x5a beq _08012556 cmp r0, #0x95 bne _0801255A _08012556: ldrh r0, [r7, #0xc] strh r0, [r7, #0xa] _0801255A: ldrh r0, [r7, #0xa] strh r0, [r7, #0xc] ldr r6, _080125F0 @ =0x020314E0 ldr r3, [r6] ldr r1, _080125F8 @ =0x000005F7 adds r0, r3, r1 ldrb r0, [r0] cmp r0, #0 bne _080125CE movs r4, #0xbf lsls r4, r4, #3 adds r2, r3, r4 ldrh r0, [r2] cmp r0, #0 beq _080125CE subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _080125CE ldr r6, _080125FC @ =0x000005F6 adds r2, r3, r6 ldrb r3, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080125AC subs r0, r3, #1 strb r0, [r2] ldr r0, _080125F0 @ =0x020314E0 ldr r1, [r0] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080125AC adds r1, r1, r4 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] _080125AC: ldr r2, _08012600 @ =0x040000D4 ldr r1, _080125F0 @ =0x020314E0 ldr r0, [r1] ldr r3, _080125FC @ =0x000005F6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _08012604 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08012608 @ =0x05000220 str r0, [r2, #4] ldr r0, _0801260C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _080125CE: movs r4, #0x12 ldrsh r0, [r7, r4] cmp r0, #0xf3 ble _08012614 ldr r6, _080125F0 @ =0x020314E0 ldr r0, [r6] ldr r1, _08012610 @ =0x000005B2 adds r0, r0, r1 movs r2, #0 movs r1, #1 strb r1, [r0] ldr r0, [r6] movs r3, #0xbb lsls r3, r3, #1 adds r0, r0, r3 strb r2, [r0] b _08012620 .align 2, 0 _080125F0: .4byte 0x020314E0 _080125F4: .4byte 0x0000132C _080125F8: .4byte 0x000005F7 _080125FC: .4byte 0x000005F6 _08012600: .4byte 0x040000D4 _08012604: .4byte 0x08137E14 _08012608: .4byte 0x05000220 _0801260C: .4byte 0x80000010 _08012610: .4byte 0x000005B2 _08012614: ldr r4, _080126C8 @ =0x020314E0 ldr r0, [r4] ldr r6, _080126CC @ =0x000005B2 adds r0, r0, r6 movs r1, #0 strb r1, [r0] _08012620: movs r1, #0x28 ldrsh r0, [r7, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r7, #0x10] movs r2, #0x2a ldrsh r0, [r7, r2] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r7, #0x12] ldr r1, _080126D0 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _08012646 b _08012792 _08012646: movs r3, #0xe ldrsh r1, [r7, r3] adds r0, r1, #0 movs r2, #0 bl sub_7C0 ldr r0, _080126C8 @ =0x020314E0 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x4c ldrh r0, [r0] adds r0, #7 ldrh r2, [r7, #0x10] subs r2, r2, r0 ldr r4, _080126D4 @ =0x000002AA adds r0, r3, r4 ldrh r0, [r0] subs r2, r2, r0 strh r2, [r6, #2] adds r0, r3, #0 adds r0, #0x4e ldrh r1, [r0] adds r1, #7 ldrh r0, [r7, #0x12] subs r0, r0, r1 ldr r4, _080126D8 @ =0x000005FC adds r1, r3, r4 ldrh r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrh r1, [r1] movs r4, #0xb3 lsls r4, r4, #1 adds r3, r3, r4 subs r0, r0, r1 ldrh r3, [r3] adds r0, r0, r3 strh r0, [r6, #4] strh r2, [r7, #0x24] ldrh r0, [r6, #4] strh r0, [r7, #0x26] movs r0, #8 adds r0, r0, r6 mov ip, r0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _080126DC @ =0x03005000 adds r5, r0, r1 movs r0, #1 ldrsb r0, [r7, r0] cmp r0, #3 bne _080126E6 movs r1, #0x12 ldrsh r0, [r7, r1] cmp r0, #0xf8 ble _080126E0 ldrb r0, [r5, #5] movs r1, #0xd rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r5, #5] b _080126FA .align 2, 0 _080126C8: .4byte 0x020314E0 _080126CC: .4byte 0x000005B2 _080126D0: .4byte 0x0200B0C0 _080126D4: .4byte 0x000002AA _080126D8: .4byte 0x000005FC _080126DC: .4byte 0x03005000 _080126E0: ldrb r0, [r5, #5] movs r1, #0xc b _080126F6 _080126E6: movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r5, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 _080126F6: orrs r0, r1 strb r0, [r5, #5] _080126FA: ldr r3, _08012768 @ =0x040000D4 mov r2, r8 lsls r1, r2, #0x10 asrs r1, r1, #0x10 ldr r4, _0801276C @ =0x020314E0 ldr r0, [r4] ldr r2, _08012770 @ =0x000005F6 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r0, r2, #4 adds r0, r0, r2 adds r1, r1, r0 lsls r1, r1, #7 ldr r0, _08012774 @ =0x083BB16C adds r1, r1, r0 str r1, [r3] ldr r0, _08012778 @ =0x06010400 str r0, [r3, #4] ldr r0, _0801277C @ =0x80000040 str r0, [r3, #8] ldr r0, [r3, #8] movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _08012732 movs r0, #0xc8 strh r0, [r6, #4] _08012732: movs r4, #4 ldrsh r0, [r6, r4] movs r1, #0x14 rsbs r1, r1, #0 cmp r0, r1 bge _08012740 strh r1, [r6, #4] _08012740: mov r0, ip movs r2, #2 ldrsh r1, [r0, r2] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r4, _08012780 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r2, [r5, #2] ldr r0, _08012784 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r5, #2] movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0 beq _08012788 movs r0, #0xc8 b _08012790 .align 2, 0 _08012768: .4byte 0x040000D4 _0801276C: .4byte 0x020314E0 _08012770: .4byte 0x000005F6 _08012774: .4byte 0x083BB16C _08012778: .4byte 0x06010400 _0801277C: .4byte 0x80000040 _08012780: .4byte 0x000001FF _08012784: .4byte 0xFFFFFE00 _08012788: ldrb r0, [r6, #4] mov r6, ip ldrb r6, [r6, #4] adds r0, r0, r6 _08012790: strb r0, [r5] _08012792: ldr r1, _08012824 @ =0x0200B0C0 ldr r0, [r1, #0x44] adds r0, #0xc4 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _080127A2 b _080128EA _080127A2: movs r2, #0xe ldrsh r1, [r7, r2] adds r0, r1, #0 movs r2, #0 bl sub_7C0 ldr r0, _08012828 @ =0x020314E0 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x4c ldrh r0, [r0] adds r0, #7 ldrh r2, [r7, #0x10] subs r2, r2, r0 ldr r4, _0801282C @ =0x000002AA adds r0, r3, r4 ldrh r0, [r0] subs r2, r2, r0 strh r2, [r6, #2] adds r0, r3, #0 adds r0, #0x4e ldrh r1, [r0] adds r1, #7 ldrh r0, [r7, #0x12] subs r0, r0, r1 ldr r4, _08012830 @ =0x000005FC adds r1, r3, r4 ldrh r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrh r1, [r1] movs r4, #0xb3 lsls r4, r4, #1 adds r3, r3, r4 subs r0, r0, r1 ldrh r3, [r3] adds r0, r0, r3 strh r0, [r6, #4] strh r2, [r7, #0x24] ldrh r0, [r6, #4] strh r0, [r7, #0x26] movs r0, #8 adds r0, r0, r6 mov ip, r0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08012834 @ =0x03005000 adds r5, r0, r1 movs r0, #1 ldrsb r0, [r7, r0] cmp r0, #3 bne _0801283E movs r1, #0x12 ldrsh r0, [r7, r1] cmp r0, #0xf8 ble _08012838 ldrb r0, [r5, #5] movs r1, #0xd rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r5, #5] b _08012852 .align 2, 0 _08012824: .4byte 0x0200B0C0 _08012828: .4byte 0x020314E0 _0801282C: .4byte 0x000002AA _08012830: .4byte 0x000005FC _08012834: .4byte 0x03005000 _08012838: ldrb r0, [r5, #5] movs r1, #0xc b _0801284E _0801283E: movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r5, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 _0801284E: orrs r0, r1 strb r0, [r5, #5] _08012852: ldr r3, _080128C0 @ =0x040000D4 mov r2, r8 lsls r1, r2, #0x10 asrs r1, r1, #0x10 ldr r4, _080128C4 @ =0x020314E0 ldr r0, [r4] ldr r2, _080128C8 @ =0x000005F6 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r0, r2, #4 adds r0, r0, r2 adds r1, r1, r0 lsls r1, r1, #7 ldr r0, _080128CC @ =0x083BB16C adds r1, r1, r0 str r1, [r3] ldr r0, _080128D0 @ =0x06010400 str r0, [r3, #4] ldr r0, _080128D4 @ =0x80000040 str r0, [r3, #8] ldr r0, [r3, #8] movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _0801288A movs r0, #0xc8 strh r0, [r6, #4] _0801288A: movs r4, #4 ldrsh r0, [r6, r4] movs r1, #0x14 rsbs r1, r1, #0 cmp r0, r1 bge _08012898 strh r1, [r6, #4] _08012898: mov r0, ip movs r2, #2 ldrsh r1, [r0, r2] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r4, _080128D8 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r2, [r5, #2] ldr r0, _080128DC @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r5, #2] movs r0, #0 ldrsb r0, [r7, r0] cmp r0, #0 beq _080128E0 movs r0, #0xc8 b _080128E8 .align 2, 0 _080128C0: .4byte 0x040000D4 _080128C4: .4byte 0x020314E0 _080128C8: .4byte 0x000005F6 _080128CC: .4byte 0x083BB16C _080128D0: .4byte 0x06010400 _080128D4: .4byte 0x80000040 _080128D8: .4byte 0x000001FF _080128DC: .4byte 0xFFFFFE00 _080128E0: ldrb r0, [r6, #4] mov r6, ip ldrb r6, [r6, #4] adds r0, r0, r6 _080128E8: strb r0, [r5] _080128EA: movs r3, #4 ldr r5, _080129D0 @ =0x020314E0 _080128EE: ldr r2, [r5] lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r4, r1, #2 adds r4, r2, r4 subs r1, #1 lsls r0, r1, #2 adds r2, r2, r0 adds r0, r2, #0 adds r0, #0xd0 ldrh r3, [r0] adds r0, r4, #0 adds r0, #0xd0 strh r3, [r0] adds r2, #0xd2 ldrh r0, [r2] adds r4, #0xd2 strh r0, [r4] lsls r1, r1, #0x10 lsrs r3, r1, #0x10 cmp r1, #0 bgt _080128EE ldr r0, _080129D0 @ =0x020314E0 ldr r2, [r0] ldrh r0, [r7, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd0 strh r0, [r1] ldrh r0, [r7, #0x12] subs r0, #7 adds r1, #2 strh r0, [r1] adds r0, r2, #0 adds r0, #0x71 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08012940 b _08012A44 _08012940: movs r3, #0 ldr r1, _080129D4 @ =0x0200B0C0 mov sb, r1 movs r2, #0xd rsbs r2, r2, #0 mov sl, r2 _0801294C: lsls r2, r3, #0x10 asrs r4, r2, #0x10 mov r3, sb ldr r1, [r3, #0x44] lsls r0, r4, #2 adds r0, r0, r1 ldr r6, [r0, #4] ldrh r0, [r6] mov r8, r2 cmp r0, #0 beq _08012A0C movs r0, #8 adds r0, r0, r6 mov ip, r0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _080129D8 @ =0x03005000 adds r5, r0, r1 movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r5, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r5, #5] mov r1, ip movs r3, #2 ldrsh r2, [r1, r3] ldr r6, _080129D0 @ =0x020314E0 ldr r3, [r6] adds r0, r4, #1 lsls r0, r0, #3 adds r0, r3, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r0, r3, #0 adds r0, #0x4c movs r6, #0 ldrsh r0, [r0, r6] subs r1, r1, r0 adds r2, r2, r1 ldr r1, _080129DC @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r5, #2] ldr r0, _080129E0 @ =0xFFFFFE00 ands r0, r1 orrs r0, r2 strh r0, [r5, #2] cmp r4, #0 bne _080129E4 adds r0, r3, #0 adds r0, #0xda ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 mov r2, ip ldrb r2, [r2, #4] adds r0, r0, r2 b _08012A0A .align 2, 0 _080129D0: .4byte 0x020314E0 _080129D4: .4byte 0x0200B0C0 _080129D8: .4byte 0x03005000 _080129DC: .4byte 0x000001FF _080129E0: .4byte 0xFFFFFE00 _080129E4: cmp r4, #1 bne _08012A0C mov r6, sb ldr r0, [r6, #0x4c] ands r0, r4 cmp r0, #0 bne _08012A08 adds r0, r3, #0 adds r0, #0xe2 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 mov r1, ip ldrb r1, [r1, #4] adds r0, r0, r1 b _08012A0A _08012A08: movs r0, #0xc8 _08012A0A: strb r0, [r5] _08012A0C: movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801294C ldr r2, _08012A40 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #4] movs r2, #0 movs r1, #1 strh r1, [r0] ldr r3, _08012A40 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r0, [r0, #8] strh r1, [r0] ldr r0, [r3, #0x44] adds r0, #0xc4 ldr r0, [r0] strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0] strh r2, [r0] b _08012AE4 .align 2, 0 _08012A40: .4byte 0x0200B0C0 _08012A44: movs r3, #0 ldr r4, _08012B14 @ =0x0200B0C0 mov sl, r4 movs r6, #3 mov sb, r6 movs r0, #0xd rsbs r0, r0, #0 mov ip, r0 ldr r1, _08012B18 @ =0xFFFFFE00 mov r8, r1 _08012A58: lsls r0, r3, #0x10 asrs r4, r0, #0x10 mov r2, sl ldr r1, [r2, #0x44] lsls r0, r4, #2 adds r0, r0, r1 ldr r6, [r0, #4] ldrh r0, [r6] cmp r0, #0 beq _08012AB8 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08012B1C @ =0x03005000 adds r5, r0, r1 ldrb r1, [r7, #1] mov r3, sb ands r1, r3 lsls r1, r1, #2 ldrb r2, [r5, #5] mov r0, ip ands r0, r2 orrs r0, r1 strb r0, [r5, #5] movs r0, #0xa ldrsh r3, [r6, r0] ldr r1, _08012B20 @ =0x020314E0 ldr r2, [r1] adds r0, r4, #1 lsls r0, r0, #3 adds r0, r2, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r2, #0x4c movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 adds r3, r3, r1 ldr r1, _08012B24 @ =0x000001FF adds r0, r1, #0 ands r3, r0 ldrh r1, [r5, #2] mov r0, r8 ands r0, r1 orrs r0, r3 strh r0, [r5, #2] movs r0, #0xc8 strb r0, [r5] _08012AB8: adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08012A58 ldr r2, _08012B14 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #4] movs r1, #0 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #8] strh r1, [r0] ldr r0, [r2, #0x44] adds r0, #0xc4 ldr r0, [r0] strh r1, [r0] ldr r0, [r2, #0x44] ldr r1, [r0] movs r0, #1 strh r0, [r1] _08012AE4: ldr r3, _08012B14 @ =0x0200B0C0 ldr r1, [r3, #0x44] adds r0, r1, #0 adds r0, #0xac ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 beq _08012BC2 ldr r4, _08012B20 @ =0x020314E0 ldr r0, [r4] ldr r2, _08012B28 @ =0x0000071C adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0x3a bhi _08012B2C ldr r0, [r1] ldrh r0, [r0, #2] subs r0, #8 strh r0, [r6, #2] ldr r0, [r3, #0x44] ldr r0, [r0] ldrh r0, [r0, #4] subs r0, #8 b _08012B32 .align 2, 0 _08012B14: .4byte 0x0200B0C0 _08012B18: .4byte 0xFFFFFE00 _08012B1C: .4byte 0x03005000 _08012B20: .4byte 0x020314E0 _08012B24: .4byte 0x000001FF _08012B28: .4byte 0x0000071C _08012B2C: movs r0, #0 strh r0, [r6, #2] movs r0, #0xb4 _08012B32: strh r0, [r6, #4] ldr r3, _08012BD0 @ =0x020314E0 ldr r0, [r3] adds r0, #0x6e ldr r2, _08012BD4 @ =0x040000D4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #9 ldr r1, _08012BD8 @ =0x083BD36C adds r0, r0, r1 str r0, [r2] ldr r0, _08012BDC @ =0x06011EE0 str r0, [r2, #4] ldr r0, _08012BE0 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] movs r4, #8 adds r4, r4, r6 mov ip, r4 ldr r4, _08012BE4 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 mov r0, ip movs r3, #2 ldrsh r1, [r0, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08012BE8 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08012BEC @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] mov r2, ip ldrb r2, [r2, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #3 ldrb r1, [r7, #1] ands r1, r0 lsls r1, r1, #2 ldrb r3, [r2, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r3 orrs r0, r1 strb r0, [r2, #5] ldr r3, _08012BD0 @ =0x020314E0 ldr r0, [r3] ldr r4, _08012BF0 @ =0x0000071C adds r0, r0, r4 ldrb r0, [r0] cmp r0, #0xd bhi _08012BC2 ldr r6, _08012BF4 @ =0x0200B0C0 ldr r0, [r6, #0x44] adds r0, #0xac ldr r1, [r0] movs r0, #0 strh r0, [r1] _08012BC2: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08012BD0: .4byte 0x020314E0 _08012BD4: .4byte 0x040000D4 _08012BD8: .4byte 0x083BD36C _08012BDC: .4byte 0x06011EE0 _08012BE0: .4byte 0x80000100 _08012BE4: .4byte 0x03005000 _08012BE8: .4byte 0x000001FF _08012BEC: .4byte 0xFFFFFE00 _08012BF0: .4byte 0x0000071C _08012BF4: .4byte 0x0200B0C0 thumb_func_start sub_12BF8 sub_12BF8: @ 0x08012BF8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r3, _08012C30 @ =0x020314E0 ldr r0, [r3] ldr r1, _08012C34 @ =0x00001330 adds r2, r0, r1 ldr r4, _08012C38 @ =0x00001334 adds r1, r0, r4 str r1, [r2] ldr r6, _08012C3C @ =0x0000132C adds r0, r0, r6 str r1, [r0] mov r8, r1 ldr r1, _08012C40 @ =0x0200B0C0 ldrb r0, [r1, #4] subs r0, #3 mov sl, r3 cmp r0, #4 bhi _08012CA0 lsls r0, r0, #2 ldr r1, _08012C44 @ =_08012C48 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08012C30: .4byte 0x020314E0 _08012C34: .4byte 0x00001330 _08012C38: .4byte 0x00001334 _08012C3C: .4byte 0x0000132C _08012C40: .4byte 0x0200B0C0 _08012C44: .4byte _08012C48 _08012C48: @ jump table .4byte _08012C5C @ case 0 .4byte _08012C78 @ case 1 .4byte _08012C78 @ case 2 .4byte _08012C88 @ case 3 .4byte _08012C78 @ case 4 _08012C5C: movs r0, #2 mov r1, r8 strb r0, [r1, #1] ldr r0, _08012C70 @ =0x02031590 ldrb r1, [r0, #0x16] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08012C74 @ =0x0200B3B8 adds r6, r1, r0 b _08012CAC .align 2, 0 _08012C70: .4byte 0x02031590 _08012C74: .4byte 0x0200B3B8 _08012C78: movs r0, #1 mov r2, r8 strb r0, [r2, #1] ldr r3, _08012C84 @ =0x0200B0C0 ldr r0, [r3, #0x44] b _08012CAA .align 2, 0 _08012C84: .4byte 0x0200B0C0 _08012C88: mov r4, r8 movs r0, #1 ldrsb r0, [r4, r0] cmp r0, #2 ble _08012C96 movs r0, #2 strb r0, [r4, #1] _08012C96: ldr r6, _08012C9C @ =0x0200B0C0 ldr r0, [r6, #0x44] b _08012CAA .align 2, 0 _08012C9C: .4byte 0x0200B0C0 _08012CA0: movs r0, #3 mov r1, r8 strb r0, [r1, #1] ldr r2, _08012DC0 @ =0x0200B0C0 ldr r0, [r2, #0x44] _08012CAA: ldr r6, [r0] _08012CAC: mov r3, sl ldr r1, [r3] ldr r4, _08012DC4 @ =0x0000132C adds r0, r1, r4 ldr r0, [r0] ldrh r0, [r0, #0xa] lsrs r5, r0, #0xc ldr r2, _08012DC8 @ =0x040000D4 ldr r0, _08012DCC @ =0x000005F6 adds r1, r1, r0 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r0, r1, #4 adds r0, r0, r1 adds r0, r5, r0 lsls r0, r0, #7 ldr r1, _08012DD0 @ =0x083BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _08012DD4 @ =0x06010400 str r0, [r2, #4] ldr r0, _08012DD8 @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, r8 movs r3, #0x28 ldrsh r1, [r2, r3] lsrs r0, r1, #0x1f adds r1, r1, r0 asrs r1, r1, #1 strh r1, [r2, #0x10] movs r4, #0x2a ldrsh r0, [r2, r4] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 mov r2, r8 strh r0, [r2, #0x12] mov r3, sl ldr r2, [r3] adds r0, r2, #0 adds r0, #0x4c ldrh r0, [r0] adds r0, #7 subs r1, r1, r0 ldr r4, _08012DDC @ =0x000002AA adds r0, r2, r4 ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #2] adds r0, r2, #0 adds r0, #0x4e ldrh r0, [r0] adds r0, #7 mov r1, r8 ldrh r4, [r1, #0x12] subs r4, r4, r0 ldr r3, _08012DE0 @ =0x000005FC adds r0, r2, r3 ldrh r0, [r0] subs r4, r4, r0 adds r0, r2, #0 adds r0, #0xe6 ldrh r0, [r0] subs r4, r4, r0 movs r1, #0xab lsls r1, r1, #2 adds r0, r2, r1 ldrh r0, [r0] subs r4, r4, r0 movs r3, #0xe3 lsls r3, r3, #2 adds r0, r2, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 subs r4, r4, r0 strh r4, [r6, #4] lsls r4, r4, #0x10 asrs r4, r4, #0x10 movs r0, #0x3c rsbs r0, r0, #0 cmp r4, r0 bge _08012D5E ldr r0, _08012DE4 @ =0x0000FFC4 strh r0, [r6, #4] _08012D5E: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xb4 ble _08012D6A movs r0, #0xb4 strh r0, [r6, #4] _08012D6A: ldrh r0, [r6, #2] mov r3, r8 strh r0, [r3, #0x24] ldrh r0, [r6, #4] strh r0, [r3, #0x26] adds r7, r6, #0 adds r7, #8 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r3, _08012DE8 @ =0x03005000 adds r4, r0, r3 movs r0, #3 mov r2, r8 ldrb r1, [r2, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r4, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #5] movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08012DEC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] ldr r0, _08012DF0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r4, #2] mov r1, r8 movs r0, #0 ldrsb r0, [r1, r0] mov sb, r3 cmp r0, #0 beq _08012DF4 movs r0, #0xc8 b _08012DFA .align 2, 0 _08012DC0: .4byte 0x0200B0C0 _08012DC4: .4byte 0x0000132C _08012DC8: .4byte 0x040000D4 _08012DCC: .4byte 0x000005F6 _08012DD0: .4byte 0x083BB16C _08012DD4: .4byte 0x06010400 _08012DD8: .4byte 0x80000040 _08012DDC: .4byte 0x000002AA _08012DE0: .4byte 0x000005FC _08012DE4: .4byte 0x0000FFC4 _08012DE8: .4byte 0x03005000 _08012DEC: .4byte 0x000001FF _08012DF0: .4byte 0xFFFFFE00 _08012DF4: ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 _08012DFA: strb r0, [r4] mov r2, sl ldr r3, [r2] movs r4, #0xe2 lsls r4, r4, #2 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08012E12 b _0801309C _08012E12: ldr r6, _08012F84 @ =0x0200B0C0 ldr r0, [r6, #0x44] ldr r6, [r0, #4] ldrh r0, [r6] cmp r0, #0 beq _08012E5E mov r1, r8 ldrh r0, [r1, #0x24] subs r0, #8 strh r0, [r6, #2] ldrh r0, [r1, #0x26] subs r0, #8 strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r3, #2 ldrsh r1, [r7, r3] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r3, _08012F88 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08012F8C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] _08012E5E: mov r4, sl ldr r2, [r4] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _08012E78 cmp r0, #3 beq _08012E78 b _08012FBC _08012E78: ldr r4, _08012F90 @ =0x00000392 adds r0, r2, r4 ldrh r1, [r0] cmp r1, #0 bne _08012E8E movs r0, #1 strb r0, [r2, #0x1f] mov r2, r8 strh r1, [r2, #0x30] strh r1, [r2, #0x32] strh r1, [r2, #6] _08012E8E: mov r3, sl ldr r0, [r3] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x96 bne _08012E9E movs r0, #1 strh r0, [r6] _08012E9E: mov r1, sl ldr r0, [r1] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x9a bne _08012EB0 movs r0, #0xf9 bl m4aSongNumStart _08012EB0: mov r2, sl ldr r0, [r2] adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0x95 bls _08012EEA subs r0, #0x96 movs r1, #0x42 bl __modsi3 movs r1, #6 bl __divsi3 lsls r0, r0, #0x10 ldr r2, _08012F94 @ =0x040000D4 lsrs r5, r0, #0x10 asrs r0, r0, #7 ldr r1, _08012F98 @ =0x083BF16C adds r0, r0, r1 str r0, [r2] ldr r0, _08012F9C @ =0x06010720 str r0, [r2, #4] ldr r0, _08012FA0 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] mov r3, r8 ldrh r0, [r3, #6] subs r0, #0x28 strh r0, [r3, #6] _08012EEA: ldr r1, _08012F84 @ =0x0200B0C0 ldrb r0, [r1, #0xf] movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 cmp r0, #0 bne _08012F30 mov r2, sl ldr r3, [r2] adds r0, r3, r4 ldrh r1, [r0] adds r1, #1 strh r1, [r0] lsls r0, r5, #0x10 ldr r4, _08012FA4 @ =0xFFF90000 adds r0, r0, r4 lsrs r0, r0, #0x10 cmp r0, #3 bhi _08012F30 ldr r2, _08012F94 @ =0x040000D4 ldr r1, _08012FA8 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _08012FAC @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08012FB0 @ =0x05000220 str r0, [r2, #4] ldr r0, _08012FB4 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _08012F30: ldr r3, _08012FB8 @ =0x020314E0 ldr r0, [r3] ldr r2, _08012F90 @ =0x00000392 adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0xba bne _08012F44 movs r0, #0 mov r4, r8 strb r0, [r4] _08012F44: ldr r1, [r3] adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xd7 bhi _08012F50 b _0801310A _08012F50: movs r2, #0xe2 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08012F6A movs r0, #0xa5 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #2 strb r0, [r1] _08012F6A: ldr r0, [r3] adds r0, r0, r2 movs r1, #0 strb r1, [r0] movs r2, #0 strh r1, [r6] ldr r0, [r3] strb r2, [r0, #0x1f] ldr r2, _08012F94 @ =0x040000D4 ldr r0, [r3] ldr r1, _08012FA8 @ =0x000005F6 adds r0, r0, r1 b _080130F2 .align 2, 0 _08012F84: .4byte 0x0200B0C0 _08012F88: .4byte 0x000001FF _08012F8C: .4byte 0xFFFFFE00 _08012F90: .4byte 0x00000392 _08012F94: .4byte 0x040000D4 _08012F98: .4byte 0x083BF16C _08012F9C: .4byte 0x06010720 _08012FA0: .4byte 0x80000100 _08012FA4: .4byte 0xFFF90000 _08012FA8: .4byte 0x000005F6 _08012FAC: .4byte 0x08137E14 _08012FB0: .4byte 0x05000220 _08012FB4: .4byte 0x80000010 _08012FB8: .4byte 0x020314E0 _08012FBC: ldr r4, _0801307C @ =0x00000392 adds r0, r2, r4 ldrh r1, [r0] cmp r1, #0 bne _08012FD2 movs r0, #1 strb r0, [r2, #0x1f] mov r2, r8 strh r1, [r2, #0x30] strh r1, [r2, #0x32] strh r1, [r2, #6] _08012FD2: mov r3, sl ldr r0, [r3] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #5 bne _08012FE2 movs r0, #1 strh r0, [r6] _08012FE2: mov r1, sl ldr r0, [r1] adds r1, r0, r4 ldrh r0, [r1] cmp r0, #4 bls _0801301A subs r0, #5 movs r1, #0x3f bl __modsi3 movs r1, #7 bl __divsi3 ldr r2, _08013080 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #7 ldr r1, _08013084 @ =0x083BDF6C adds r0, r0, r1 str r0, [r2] ldr r0, _08013088 @ =0x06010720 str r0, [r2, #4] ldr r0, _0801308C @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, r8 ldrh r0, [r2, #6] subs r0, #0x14 strh r0, [r2, #6] _0801301A: ldr r3, _08013090 @ =0x0200B0C0 ldrb r0, [r3, #0xf] movs r1, #0x81 rsbs r1, r1, #0 ands r0, r1 cmp r0, #0 bne _08013034 mov r0, sl ldr r1, [r0] adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08013034: mov r1, sl ldr r0, [r1] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x17 bne _08013046 movs r0, #0xf9 bl m4aSongNumStart _08013046: mov r2, sl ldr r0, [r2] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x14 bne _08013058 movs r0, #1 mov r3, r8 strb r0, [r3] _08013058: ldr r0, _08013094 @ =0x020314E0 ldr r1, [r0] adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x43 bls _0801310A movs r2, #0xe2 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #0 strb r0, [r1] strh r0, [r6] ldr r2, _08013080 @ =0x040000D4 ldr r3, _08013094 @ =0x020314E0 ldr r0, [r3] ldr r4, _08013098 @ =0x000005F6 adds r0, r0, r4 b _080130F2 .align 2, 0 _0801307C: .4byte 0x00000392 _08013080: .4byte 0x040000D4 _08013084: .4byte 0x083BDF6C _08013088: .4byte 0x06010720 _0801308C: .4byte 0x80000100 _08013090: .4byte 0x0200B0C0 _08013094: .4byte 0x020314E0 _08013098: .4byte 0x000005F6 _0801309C: ldr r6, _08013204 @ =0x000005F7 adds r0, r3, r6 ldrb r0, [r0] cmp r0, #0 bne _0801310A movs r4, #0xbf lsls r4, r4, #3 adds r2, r3, r4 ldrh r0, [r2] cmp r0, #0 beq _0801310A subs r0, #1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bne _0801310A ldr r0, _08013208 @ =0x000005F6 adds r2, r3, r0 ldrb r3, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080130E8 subs r0, r3, #1 strb r0, [r2] mov r2, sl ldr r1, [r2] ldr r3, _08013208 @ =0x000005F6 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080130E8 adds r1, r1, r4 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] _080130E8: ldr r2, _0801320C @ =0x040000D4 mov r4, sl ldr r0, [r4] ldr r6, _08013208 @ =0x000005F6 adds r0, r0, r6 _080130F2: ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _08013210 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08013214 @ =0x05000220 str r0, [r2, #4] ldr r0, _08013218 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0801310A: ldr r1, _0801321C @ =0x0200B0C0 ldrb r0, [r1, #4] cmp r0, #6 ble _08013114 b _0801330C _08013114: cmp r0, #4 bge _0801311A b _0801330C _0801311A: ldr r0, _08013220 @ =0x020314E0 ldr r1, [r0] adds r1, #0x71 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 bne _0801312E b _08013280 _0801312E: movs r3, #4 mov r5, sl _08013132: ldr r2, [r5] lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r4, r1, #2 adds r4, r2, r4 subs r1, #1 lsls r0, r1, #2 adds r2, r2, r0 adds r0, r2, #0 adds r0, #0xd0 ldrh r3, [r0] adds r0, r4, #0 adds r0, #0xd0 strh r3, [r0] adds r2, #0xd2 ldrh r0, [r2] adds r4, #0xd2 strh r0, [r4] lsls r1, r1, #0x10 lsrs r3, r1, #0x10 cmp r1, #0 bgt _08013132 mov r3, sl ldr r2, [r3] mov r4, r8 ldrh r0, [r4, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd0 strh r0, [r1] ldrh r0, [r4, #0x12] subs r0, #7 adds r2, #0xd2 strh r0, [r2] movs r3, #0 ldr r6, _0801321C @ =0x0200B0C0 mov sb, r6 _0801317C: lsls r2, r3, #0x10 asrs r5, r2, #0x10 mov r0, sb ldr r1, [r0, #0x44] lsls r0, r5, #2 adds r0, r0, r1 ldr r6, [r0, #0x18] ldrh r0, [r6] mov ip, r2 cmp r0, #0 beq _0801325E adds r7, r6, #0 adds r7, #8 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08013224 @ =0x03005000 adds r4, r0, r1 movs r0, #3 mov r2, r8 ldrb r1, [r2, #1] ands r1, r0 lsls r1, r1, #2 ldrb r2, [r4, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #5] movs r3, #2 ldrsh r2, [r7, r3] mov r6, sl ldr r3, [r6] adds r0, r5, #1 lsls r0, r0, #3 adds r0, r3, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r0, r3, #0 adds r0, #0x4c movs r6, #0 ldrsh r0, [r0, r6] subs r1, r1, r0 adds r2, r2, r1 ldr r1, _08013228 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] ldr r0, _0801322C @ =0xFFFFFE00 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] cmp r5, #0 bne _08013230 adds r0, r3, #0 adds r0, #0xda ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrb r1, [r1] subs r0, r0, r1 ldrb r7, [r7, #4] adds r0, r0, r7 b _0801325C .align 2, 0 _08013204: .4byte 0x000005F7 _08013208: .4byte 0x000005F6 _0801320C: .4byte 0x040000D4 _08013210: .4byte 0x08137E14 _08013214: .4byte 0x05000220 _08013218: .4byte 0x80000010 _0801321C: .4byte 0x0200B0C0 _08013220: .4byte 0x020314E0 _08013224: .4byte 0x03005000 _08013228: .4byte 0x000001FF _0801322C: .4byte 0xFFFFFE00 _08013230: cmp r5, #1 bne _0801325E mov r2, sb ldr r0, [r2, #0x4c] ands r0, r5 cmp r0, #0 bne _0801325A adds r0, r3, #0 adds r0, #0xe2 ldrb r0, [r0] adds r1, r3, #0 adds r1, #0x4e ldrb r1, [r1] subs r0, r0, r1 adds r1, r3, #0 adds r1, #0xe6 ldrb r1, [r1] subs r0, r0, r1 ldrb r7, [r7, #4] adds r0, r0, r7 b _0801325C _0801325A: movs r0, #0xc8 _0801325C: strb r0, [r4] _0801325E: movs r0, #0x80 lsls r0, r0, #9 add r0, ip lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801317C ldr r3, _0801327C @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r0, [r0, #0x18] movs r1, #1 strh r1, [r0] ldr r0, [r3, #0x44] b _08013308 .align 2, 0 _0801327C: .4byte 0x0200B0C0 _08013280: movs r3, #0 movs r4, #3 mov sb, r4 movs r6, #0xd rsbs r6, r6, #0 mov ip, r6 ldr r7, _0801331C @ =0xFFFFFE00 _0801328E: lsls r0, r3, #0x10 asrs r5, r0, #0x10 ldr r0, _08013320 @ =0x0200B0C0 ldr r1, [r0, #0x44] lsls r0, r5, #2 adds r0, r0, r1 ldr r6, [r0, #0x18] ldrh r0, [r6] cmp r0, #0 beq _080132F0 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r1, _08013324 @ =0x03005000 adds r4, r0, r1 mov r2, r8 ldrb r1, [r2, #1] mov r3, sb ands r1, r3 lsls r1, r1, #2 ldrb r2, [r4, #5] mov r0, ip ands r0, r2 orrs r0, r1 strb r0, [r4, #5] movs r0, #0xa ldrsh r3, [r6, r0] mov r1, sl ldr r2, [r1] adds r0, r5, #1 lsls r0, r0, #3 adds r0, r2, r0 adds r0, #0xd0 movs r6, #0 ldrsh r1, [r0, r6] adds r2, #0x4c movs r6, #0 ldrsh r0, [r2, r6] subs r1, r1, r0 adds r3, r3, r1 ldr r1, _08013328 @ =0x000001FF adds r0, r1, #0 ands r3, r0 ldrh r1, [r4, #2] adds r0, r7, #0 ands r0, r1 orrs r0, r3 strh r0, [r4, #2] movs r0, #0xc8 strb r0, [r4] _080132F0: adds r0, r5, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801328E ldr r2, _08013320 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #0x18] movs r1, #0 strh r1, [r0] ldr r0, [r2, #0x44] _08013308: ldr r0, [r0, #0x1c] strh r1, [r0] _0801330C: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801331C: .4byte 0xFFFFFE00 _08013320: .4byte 0x0200B0C0 _08013324: .4byte 0x03005000 _08013328: .4byte 0x000001FF thumb_func_start sub_1332C sub_1332C: @ 0x0801332C ldr r0, _08013338 @ =0x020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] bx lr .align 2, 0 _08013338: .4byte 0x020314E0 thumb_func_start sub_1333C sub_1333C: @ 0x0801333C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #0xc mov r0, sp bl sub_13824 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 ldr r0, _0801336C @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 ldrb r0, [r0] subs r0, #1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _08013362 b _08013758 _08013362: lsls r0, r0, #2 ldr r1, _08013370 @ =_08013374 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801336C: .4byte 0x020314E0 _08013370: .4byte _08013374 _08013374: @ jump table .4byte _080133C8 @ case 0 .4byte _08013488 @ case 1 .4byte _080134FC @ case 2 .4byte _08013614 @ case 3 .4byte _08013758 @ case 4 .4byte _08013428 @ case 5 .4byte _08013390 @ case 6 _08013390: ldr r0, _080133A4 @ =0x020314E0 ldr r0, [r0] ldr r1, _080133A8 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] movs r2, #0 strh r2, [r1, #0x30] ldr r0, [r0] strh r2, [r0, #0x32] b _080137CE .align 2, 0 _080133A4: .4byte 0x020314E0 _080133A8: .4byte 0x0000132C _080133AC: mov r1, sp movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _0801340C _080133C8: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _0801341C @ =0x020314E0 ldr r0, [r0] ldr r2, _08013420 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 movs r1, #0 mov r8, r5 adds r5, r4, #0 ldr r2, _08013424 @ =0x086ACD50 _080133F2: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _080133AC adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _080133F2 _0801340C: ldr r0, _0801341C @ =0x020314E0 ldr r1, [r0] ldr r3, _08013420 @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] mov r6, r8 ldrh r0, [r6] b _080134DA .align 2, 0 _0801341C: .4byte 0x020314E0 _08013420: .4byte 0x0000132C _08013424: .4byte 0x086ACD50 _08013428: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _08013464 @ =0x020314E0 mov r8, r0 ldr r0, [r0] ldr r6, _08013468 @ =0x0000132C adds r0, r0, r6 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 mov r2, r8 ldr r1, [r2] adds r1, r1, r6 ldr r2, [r1] ldrh r0, [r5] ldrh r3, [r4] adds r0, r0, r3 strh r0, [r2, #0x30] ldr r2, [r1] ldrh r0, [r4, #2] ldrh r1, [r5, #2] b _080134EA .align 2, 0 _08013464: .4byte 0x020314E0 _08013468: .4byte 0x0000132C _0801346C: mov r1, sp movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _080134CC _08013488: add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r0, _080134F0 @ =0x020314E0 ldr r0, [r0] ldr r6, _080134F4 @ =0x0000132C adds r0, r0, r6 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 movs r1, #0 mov r8, r5 adds r5, r4, #0 ldr r2, _080134F8 @ =0x086ACD50 _080134B2: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _0801346C adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _080134B2 _080134CC: ldr r0, _080134F0 @ =0x020314E0 ldr r1, [r0] ldr r0, _080134F4 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] mov r3, r8 ldrh r0, [r3] _080134DA: ldrh r5, [r5] adds r0, r0, r5 strh r0, [r2, #0x30] ldr r2, [r1] add r0, sp, #8 add r1, sp, #4 ldrh r0, [r0, #2] ldrh r1, [r1, #2] _080134EA: adds r0, r0, r1 strh r0, [r2, #0x32] b _080137CE .align 2, 0 _080134F0: .4byte 0x020314E0 _080134F4: .4byte 0x0000132C _080134F8: .4byte 0x086ACD50 _080134FC: mov r4, sp add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r2, _08013560 @ =0x02031520 movs r6, #0x22 ldrsh r1, [r2, r6] lsls r1, r1, #1 mov r0, sp ldrh r0, [r0] subs r0, r0, r1 mov r1, sp strh r0, [r1] movs r0, #0x20 ldrsh r1, [r2, r0] lsls r1, r1, #1 ldrh r0, [r4, #2] subs r0, r0, r1 strh r0, [r4, #2] ldr r6, _08013564 @ =0x020314E0 ldr r2, [r6] movs r1, #0x9e lsls r1, r1, #5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r5 cmp r0, #0 bne _08013588 ldr r3, _08013568 @ =0x0000132C adds r0, r2, r3 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 ldr r0, [r6] movs r6, #0x9e lsls r6, r6, #5 adds r0, r0, r6 movs r1, #1 strb r1, [r0] adds r5, r4, #0 b _0801359C .align 2, 0 _08013560: .4byte 0x02031520 _08013564: .4byte 0x020314E0 _08013568: .4byte 0x0000132C _0801356C: mov r1, sp movs r0, #0 ldrsb r0, [r3, r0] ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _080135F0 _08013588: ldr r0, _08013604 @ =0x0000132C adds r2, r2, r0 ldr r0, [r2] ldrh r0, [r0, #0x30] add r1, sp, #8 strh r0, [r1] ldr r0, [r2] ldrh r0, [r0, #0x32] strh r0, [r1, #2] adds r5, r1, #0 _0801359C: mov r0, sp adds r1, r5, #0 movs r2, #0 bl sub_13B28 ldr r0, _08013608 @ =0x020314E0 ldr r2, [r0] ldr r1, _08013604 @ =0x0000132C adds r3, r2, r1 ldr r4, [r3] add r1, sp, #8 mov r6, r8 ldrh r0, [r6] ldrh r1, [r1] adds r0, r0, r1 strh r0, [r4, #0x30] ldr r3, [r3] add r1, sp, #4 ldrh r0, [r5, #2] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r3, #0x32] adds r2, #0x22 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #5 bne _080135F0 movs r1, #0 ldr r2, _0801360C @ =0x086ACD74 _080135D6: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _0801356C adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080135D6 _080135F0: ldr r3, _08013610 @ =0x02031520 movs r1, #0x22 ldrsh r0, [r3, r1] mov r1, sp lsls r0, r0, #1 ldrh r1, [r1] adds r0, r0, r1 mov r1, sp strh r0, [r1] b _08013738 .align 2, 0 _08013604: .4byte 0x0000132C _08013608: .4byte 0x020314E0 _0801360C: .4byte 0x086ACD74 _08013610: .4byte 0x02031520 _08013614: mov r4, sp add r5, sp, #4 mov r0, sp adds r1, r5, #0 adds r2, r7, #0 bl sub_13934 ldr r2, _08013674 @ =0x02031520 movs r0, #0x24 ldrsh r1, [r2, r0] lsls r1, r1, #1 mov r0, sp ldrh r0, [r0] subs r0, r0, r1 mov r1, sp strh r0, [r1] movs r3, #0x20 ldrsh r1, [r2, r3] lsls r1, r1, #1 ldrh r0, [r4, #2] subs r0, r0, r1 strh r0, [r4, #2] ldr r6, _08013678 @ =0x020314E0 ldr r2, [r6] ldr r1, _0801367C @ =0x000013CC adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r5 cmp r0, #0 bne _080136A0 ldr r3, _08013680 @ =0x0000132C adds r0, r2, r3 ldr r1, [r0] adds r1, #0x30 add r4, sp, #8 adds r0, r7, #0 adds r2, r4, #0 bl sub_13D24 ldr r0, [r6] ldr r6, _0801367C @ =0x000013CC adds r0, r0, r6 movs r1, #1 strb r1, [r0] adds r5, r4, #0 b _080136B4 .align 2, 0 _08013674: .4byte 0x02031520 _08013678: .4byte 0x020314E0 _0801367C: .4byte 0x000013CC _08013680: .4byte 0x0000132C _08013684: movs r1, #0 ldrsb r1, [r3, r1] mov r0, sp ldrh r0, [r0] subs r0, r0, r1 mov r1, sp strh r0, [r1] mov r2, sp movs r1, #1 ldrsb r1, [r3, r1] ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _0801371E _080136A0: ldr r0, _08013748 @ =0x0000132C adds r2, r2, r0 ldr r0, [r2] ldrh r0, [r0, #0x30] add r1, sp, #8 strh r0, [r1] ldr r0, [r2] ldrh r0, [r0, #0x32] strh r0, [r1, #2] adds r5, r1, #0 _080136B4: mov r0, sp ldrh r1, [r0] movs r0, #0x5f subs r0, r0, r1 mov r1, sp strh r0, [r1] ldrh r0, [r5] rsbs r0, r0, #0 add r4, sp, #8 strh r0, [r4] mov r0, sp adds r1, r4, #0 movs r2, #1 bl sub_13B28 ldrh r1, [r4] rsbs r1, r1, #0 strh r1, [r4] ldr r0, _0801374C @ =0x020314E0 ldr r2, [r0] ldr r3, _08013748 @ =0x0000132C adds r5, r2, r3 ldr r3, [r5] mov r6, r8 ldrh r0, [r6] adds r1, r1, r0 strh r1, [r3, #0x30] ldr r3, [r5] add r1, sp, #4 ldrh r0, [r4, #2] ldrh r1, [r1, #2] adds r0, r0, r1 strh r0, [r3, #0x32] adds r2, #0x22 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #5 bne _0801371E movs r1, #0 ldr r2, _08013750 @ =0x086ACD74 _08013704: lsls r0, r1, #0x10 asrs r1, r0, #0x10 lsls r0, r1, #2 adds r3, r0, r2 ldrh r0, [r3, #2] cmp r0, r7 bls _08013684 adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _08013704 _0801371E: mov r0, sp ldrh r0, [r0] movs r1, #0x5f subs r1, r1, r0 mov r0, sp strh r1, [r0] ldr r3, _08013754 @ =0x02031520 movs r2, #0x24 ldrsh r0, [r3, r2] lsls r0, r0, #1 adds r1, r1, r0 mov r0, sp strh r1, [r0] _08013738: mov r2, sp movs r6, #0x20 ldrsh r1, [r3, r6] lsls r1, r1, #1 ldrh r0, [r2, #2] adds r0, r0, r1 strh r0, [r2, #2] b _080137CE .align 2, 0 _08013748: .4byte 0x0000132C _0801374C: .4byte 0x020314E0 _08013750: .4byte 0x086ACD74 _08013754: .4byte 0x02031520 _08013758: ldr r0, _08013788 @ =0x020314E0 ldr r2, [r0] movs r1, #0x91 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08013794 ldr r6, _0801378C @ =0x00000127 adds r3, r2, r6 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #1 beq _080137B8 ldr r1, _08013790 @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] ldrh r0, [r1, #0x30] subs r0, #4 strh r0, [r1, #0x30] movs r0, #1 b _080137B6 .align 2, 0 _08013788: .4byte 0x020314E0 _0801378C: .4byte 0x00000127 _08013790: .4byte 0x0000132C _08013794: cmp r0, #0 bge _080137B8 ldr r6, _08013814 @ =0x00000127 adds r3, r2, r6 movs r1, #0 ldrsb r1, [r3, r1] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _080137B8 ldr r1, _08013818 @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] ldrh r0, [r1, #0x30] adds r0, #4 strh r0, [r1, #0x30] movs r0, #0xff _080137B6: strb r0, [r3] _080137B8: ldr r0, _0801381C @ =0x020314E0 ldr r0, [r0] ldr r2, _08013820 @ =0x000005F3 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080137CE bl sub_1493C _080137CE: ldr r0, _0801381C @ =0x020314E0 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x22 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08013808 ldr r3, _08013818 @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] mov r0, sp ldrh r0, [r0] strh r0, [r1, #0x28] ldr r1, [r2] mov r0, sp ldrh r0, [r0, #2] strh r0, [r1, #0x2a] ldr r1, [r2] movs r6, #0x28 ldrsh r0, [r1, r6] lsls r0, r0, #7 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x2a ldrsh r0, [r1, r2] lsls r0, r0, #7 str r0, [r1, #0x38] _08013808: add sp, #0xc pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08013814: .4byte 0x00000127 _08013818: .4byte 0x0000132C _0801381C: .4byte 0x020314E0 _08013820: .4byte 0x000005F3 thumb_func_start sub_13824 sub_13824: @ 0x08013824 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r7, r0, #0 ldr r0, _0801391C @ =0x020314E0 mov r8, r0 ldr r3, [r0] ldr r1, _08013920 @ =0x0000132C mov sb, r1 add r3, sb ldr r1, [r3] ldrh r2, [r1, #0x28] ldrh r4, [r1, #0x2c] subs r2, r2, r4 lsls r2, r2, #0x10 ldrh r0, [r1, #0x2a] ldrh r1, [r1, #0x2e] subs r0, r0, r1 lsls r0, r0, #0x10 ldr r1, _08013924 @ =0x0000FFFF mov sl, r1 lsrs r6, r2, #0x10 orrs r6, r0 movs r5, #0 strh r4, [r7] ldr r0, [r3] ldrh r0, [r0, #0x2e] strh r0, [r7, #2] adds r0, r7, #0 adds r1, r6, #0 bl sub_14488 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 mov r3, r8 ldr r0, [r3] movs r1, #0x92 lsls r1, r1, #1 adds r0, r0, r1 strb r5, [r0] ldr r0, [r3] ldr r3, _08013928 @ =0x00000125 adds r0, r0, r3 strb r5, [r0] mov r0, r8 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x22 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801390A subs r1, #2 adds r3, r2, r1 ldrh r1, [r3] mov r0, sl ands r0, r1 cmp r0, #0 beq _0801390A mov r0, sb adds r1, r2, r0 ldr r0, [r1] ldrh r0, [r0, #0x28] strh r0, [r7] ldr r0, [r1] ldrh r0, [r0, #0x2a] strh r0, [r7, #2] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801392C @ =0xFFFF0000 ands r6, r1 orrs r6, r0 ldr r1, _08013930 @ =0x00000123 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 mov r3, sl ands r6, r3 orrs r6, r0 adds r0, r7, #0 adds r1, r6, #0 bl sub_14488 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 mov r0, r8 ldr r1, [r0] ldrb r2, [r7] mov r3, sb adds r0, r1, r3 ldr r0, [r0] ldrh r0, [r0, #0x28] subs r2, r2, r0 movs r0, #0x92 lsls r0, r0, #1 adds r1, r1, r0 strb r2, [r1] mov r3, r8 ldr r1, [r3] ldrb r2, [r7, #2] mov r3, sb adds r0, r1, r3 ldr r0, [r0] ldrh r0, [r0, #0x2a] subs r2, r2, r0 ldr r0, _08013928 @ =0x00000125 adds r1, r1, r0 strb r2, [r1] _0801390A: adds r0, r4, #0 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _0801391C: .4byte 0x020314E0 _08013920: .4byte 0x0000132C _08013924: .4byte 0x0000FFFF _08013928: .4byte 0x00000125 _0801392C: .4byte 0xFFFF0000 _08013930: .4byte 0x00000123 thumb_func_start sub_13934 sub_13934: @ 0x08013934 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r5, r1, #0 lsls r2, r2, #0x10 lsrs r4, r2, #0x10 movs r0, #0 strh r0, [r5] strh r0, [r5, #2] ldr r7, _0801399C @ =0x020314E0 ldr r1, [r7] movs r0, #0x91 lsls r0, r0, #1 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _080139D6 movs r3, #0x92 lsls r3, r3, #1 adds r0, r1, r3 movs r1, #0 ldrsb r1, [r0, r1] ldrh r0, [r6] subs r0, r0, r1 strh r0, [r6] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080139A4 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 cmp r0, #0 bge _080139D6 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x46 muls r0, r1, r0 ldr r1, _080139A0 @ =0x00004E20 bl __divsi3 strh r0, [r5] ldr r0, [r7] movs r2, #0x93 lsls r2, r2, #1 adds r1, r0, r2 b _080139D2 .align 2, 0 _0801399C: .4byte 0x020314E0 _080139A0: .4byte 0x00004E20 _080139A4: cmp r0, #0 bge _080139D6 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 cmp r0, #0 ble _080139D6 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x46 muls r0, r1, r0 ldr r1, _08013A30 @ =0x00004E20 bl __divsi3 strh r0, [r5] ldr r0, [r7] movs r3, #0x93 lsls r3, r3, #1 adds r1, r0, r3 _080139D2: movs r0, #1 strb r0, [r1] _080139D6: ldr r1, _08013A34 @ =0x020314E0 ldr r2, [r1] ldr r3, _08013A38 @ =0x00000123 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r1, #0 cmp r0, #0 bgt _080139EC b _08013AF4 _080139EC: ldr r1, _08013A3C @ =0x00000125 adds r0, r2, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r0, [r6, #2] subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _08013A40 @ =0x0000132C adds r0, r2, r3 ldr r0, [r0] movs r3, #0x12 ldrsh r1, [r0, r3] movs r0, #0xb6 lsls r0, r0, #1 cmp r1, r0 ble _08013A64 movs r1, #0x91 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08013A44 adds r0, r4, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #6 adds r0, r0, r1 lsls r0, r0, #1 b _08013A52 .align 2, 0 _08013A30: .4byte 0x00004E20 _08013A34: .4byte 0x020314E0 _08013A38: .4byte 0x00000123 _08013A3C: .4byte 0x00000125 _08013A40: .4byte 0x0000132C _08013A44: adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x64 muls r0, r1, r0 _08013A52: rsbs r0, r0, #0 ldr r1, _08013A60 @ =0x00004E20 bl __divsi3 strh r0, [r5, #2] b _08013AE4 .align 2, 0 _08013A60: .4byte 0x00004E20 _08013A64: movs r3, #0x91 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08013A8C adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x64 muls r0, r1, r0 rsbs r0, r0, #0 ldr r1, _08013A88 @ =0x00004E20 b _08013AA2 .align 2, 0 _08013A88: .4byte 0x00004E20 _08013A8C: adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 adds r2, r2, r0 lsls r0, r2, #4 subs r2, r2, r0 ldr r1, _08013ABC @ =0x00004E20 adds r0, r2, #0 _08013AA2: bl __divsi3 strh r0, [r5, #2] movs r0, #2 ldrsh r1, [r5, r0] cmp r1, #0x59 ble _08013AC8 ldr r0, _08013AC0 @ =0x020314E0 ldr r0, [r0] ldr r1, _08013AC4 @ =0x0000132C adds r0, r0, r1 b _08013AD4 .align 2, 0 _08013ABC: .4byte 0x00004E20 _08013AC0: .4byte 0x020314E0 _08013AC4: .4byte 0x0000132C _08013AC8: cmp r1, #0x45 ble _08013AE4 ldr r0, _08013B1C @ =0x020314E0 ldr r0, [r0] ldr r3, _08013B20 @ =0x0000132C adds r0, r0, r3 _08013AD4: ldr r1, [r0] movs r2, #0x30 ldrsh r0, [r1, r2] cmp r0, #0 bge _08013AE0 adds r0, #3 _08013AE0: asrs r0, r0, #2 strh r0, [r1, #0x30] _08013AE4: ldr r0, _08013B1C @ =0x020314E0 ldr r1, [r0] movs r3, #0x93 lsls r3, r3, #1 adds r2, r1, r3 movs r1, #1 strb r1, [r2] adds r3, r0, #0 _08013AF4: ldr r1, [r3] movs r2, #0x93 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08013B16 subs r2, #4 adds r0, r1, r2 movs r1, #0 strb r1, [r0] ldr r0, [r3] ldr r3, _08013B24 @ =0x00000123 adds r0, r0, r3 strb r1, [r0] _08013B16: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08013B1C: .4byte 0x020314E0 _08013B20: .4byte 0x0000132C _08013B24: .4byte 0x00000123 thumb_func_start sub_13B28 sub_13B28: @ 0x08013B28 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 mov r8, r0 str r1, [sp, #8] movs r3, #0 ldrsh r1, [r0, r3] lsls r1, r1, #0x17 movs r4, #2 ldrsh r0, [r0, r4] lsls r0, r0, #0x17 lsrs r5, r1, #0x10 orrs r5, r0 ldr r6, [sp, #8] ldrh r1, [r6, #2] lsls r1, r1, #0x10 ldrh r0, [r6] orrs r0, r1 str r0, [sp, #4] lsls r2, r2, #0x10 mov sb, r2 mov r0, sb asrs r0, r0, #0x10 mov sl, r0 b _08013C4E _08013B60: ldr r2, _08013C04 @ =0xFFFFF500 adds r1, r5, r2 lsls r1, r1, #0x10 asrs r0, r5, #0x10 ldr r3, _08013C08 @ =0xFFFFE800 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r7, r1, #0x10 orrs r7, r0 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r0, r1 asrs r0, r7, #0x10 adds r6, r0, #0 muls r6, r0, r6 adds r0, r6, #0 adds r1, r1, r0 ldr r2, _08013C0C @ =0xFFDC0000 adds r0, r1, r2 lsls r0, r0, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r0, r0, #0x11 mov r3, sb asrs r1, r3, #0x10 add r2, sp, #4 adds r3, r4, #0 bl sub_14B84 add r0, sp, #4 movs r4, #0 ldrsh r2, [r0, r4] movs r1, #0xe1 lsls r1, r1, #1 cmp r2, r1 bgt _08013BB2 ldr r1, _08013C10 @ =0xFFFFFE3E cmp r2, r1 bge _08013BB4 _08013BB2: strh r1, [r0] _08013BB4: ldrh r0, [r0] adds r0, r0, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08013C14 @ =0xFFFF0000 ands r5, r1 orrs r5, r0 asrs r2, r5, #0x10 add r0, sp, #4 ldrh r1, [r0, #2] adds r1, r1, r2 lsls r1, r1, #0x10 ldr r0, _08013C18 @ =0x0000FFFF ands r5, r0 orrs r5, r1 lsls r0, r5, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08013BDC adds r0, #0x7f _08013BDC: asrs r1, r0, #7 mov r6, r8 strh r1, [r6] asrs r0, r5, #0x10 cmp r0, #0 bge _08013BEA adds r0, #0x7f _08013BEA: asrs r0, r0, #7 mov r2, r8 strh r0, [r2, #2] movs r3, #0 str r3, [sp, #0x10] cmp r1, #0x31 bgt _08013BFA b _08013CF0 _08013BFA: ldr r0, _08013C1C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1e] b _08013C22 .align 2, 0 _08013C04: .4byte 0xFFFFF500 _08013C08: .4byte 0xFFFFE800 _08013C0C: .4byte 0xFFDC0000 _08013C10: .4byte 0xFFFFFE3E _08013C14: .4byte 0xFFFF0000 _08013C18: .4byte 0x0000FFFF _08013C1C: .4byte 0x020314E0 _08013C20: lsrs r0, r4, #0x10 _08013C22: lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #3 bgt _08013C48 mov r4, r8 ldr r0, [r4] adds r1, #1 lsls r4, r1, #0x10 asrs r1, r4, #0x10 mov r2, sp mov r6, sb asrs r3, r6, #0x10 bl sub_14AF4 lsls r0, r0, #0x10 cmp r0, #0 beq _08013C20 movs r0, #1 str r0, [sp, #0x10] _08013C48: ldr r1, [sp, #0x10] cmp r1, #0 beq _08013CF0 _08013C4E: ldr r0, _08013CAC @ =0x020314E0 ldr r1, [r0] mov r2, sl lsls r0, r2, #1 add r0, sl lsls r0, r0, #2 adds r3, r1, r0 ldr r4, _08013CB0 @ =0x000013BC adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] ldr r6, _08013CB4 @ =0x000013BD adds r0, r3, r6 movs r2, #0 ldrsb r2, [r0, r2] adds r4, #8 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r1, r1, r2 muls r0, r1, r0 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 str r6, [sp, #0xc] cmp r0, #0 ble _08013CF0 ldr r1, _08013CB8 @ =0x000013BE adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bgt _08013CC4 ldr r2, _08013CBC @ =0x000013C1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #2 ldr r3, _08013CC0 @ =0x086ACD84 adds r0, r0, r3 movs r4, #0x80 lsls r4, r4, #7 adds r1, r4, #0 b _08013CDC .align 2, 0 _08013CAC: .4byte 0x020314E0 _08013CB0: .4byte 0x000013BC _08013CB4: .4byte 0x000013BD _08013CB8: .4byte 0x000013BE _08013CBC: .4byte 0x000013C1 _08013CC0: .4byte 0x086ACD84 _08013CC4: ldr r6, _08013CE8 @ =0x000013C1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 lsls r0, r0, #2 ldr r1, _08013CEC @ =0x086ACD86 adds r0, r0, r1 movs r2, #0xc0 lsls r2, r2, #8 adds r1, r2, #0 _08013CDC: ldrh r0, [r0] adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 b _08013B60 .align 2, 0 _08013CE8: .4byte 0x000013C1 _08013CEC: .4byte 0x086ACD86 _08013CF0: ldr r3, [sp, #0xc] lsls r0, r3, #0x10 cmp r0, #0 bgt _08013D08 ldr r0, _08013D04 @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #5 strb r1, [r0] b _08013D14 .align 2, 0 _08013D04: .4byte 0x020314E0 _08013D08: add r0, sp, #4 ldrh r1, [r0] ldr r4, [sp, #8] strh r1, [r4] ldrh r0, [r0, #2] strh r0, [r4, #2] _08013D14: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_13D24 sub_13D24: @ 0x08013D24 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x24 adds r4, r1, #0 str r2, [sp, #0xc] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #8] ldrh r0, [r4] rsbs r0, r0, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #2 ldrsh r1, [r4, r2] bl ArcTan2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #0x10] movs r1, #0 ldrsh r0, [r4, r1] adds r1, r0, #0 muls r1, r0, r1 movs r2, #2 ldrsh r0, [r4, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 lsls r0, r1, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [sp, #0x18] ldr r0, [sp, #0x10] ldr r1, [sp, #8] cmp r0, r1 bls _08013D84 subs r4, r0, r1 ldr r1, _08013D80 @ =0x0000FFFF b _08013D8C .align 2, 0 _08013D80: .4byte 0x0000FFFF _08013D84: ldr r2, [sp, #8] ldr r0, [sp, #0x10] subs r4, r2, r0 movs r1, #1 _08013D8C: movs r0, #0x80 lsls r0, r0, #8 cmp r4, r0 ble _08013DA0 movs r0, #0x80 lsls r0, r0, #9 subs r4, r0, r4 lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08013DA0: lsls r1, r1, #0x10 asrs r0, r1, #2 ldr r2, [sp, #8] adds r0, r2, r0 str r0, [sp, #0x14] mov r8, r1 cmp r0, #0 bge _08013DB8 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 str r0, [sp, #0x14] _08013DB8: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x18] muls r0, r2, r0 ldr r5, _08013E40 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 str r0, [sp, #0x1c] adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, [sp, #0x18] muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 adds r7, r0, #0 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 ldr r1, _08013E44 @ =0x1F3F0000 cmp r0, r1 ble _08013E2A cmp r7, #0x46 ble _08013E02 movs r0, #0x77 bl m4aSongNumStart _08013E02: movs r0, #0x8c lsls r0, r0, #1 cmp r7, r0 ble _08013E2A ldr r0, _08013E48 @ =0x020314E0 ldr r0, [r0] ldr r2, _08013E4C @ =0x0000061C adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08013E2A ldr r0, _08013E50 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bhi _08013E2A movs r0, #6 bl sub_11B0 _08013E2A: ldr r0, _08013E48 @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r1, [r1] cmp r1, #0 beq _08013E54 lsls r0, r7, #2 adds r0, r0, r7 lsls r0, r0, #2 adds r0, r0, r7 b _08013E58 .align 2, 0 _08013E40: .4byte 0x00004E20 _08013E44: .4byte 0x1F3F0000 _08013E48: .4byte 0x020314E0 _08013E4C: .4byte 0x0000061C _08013E50: .4byte 0x0200B0C0 _08013E54: movs r0, #0x1a muls r0, r7, r0 _08013E58: movs r1, #0x64 bl __divsi3 adds r7, r0, #0 ldr r1, [sp, #0x1c] lsls r0, r1, #3 movs r1, #0xa bl __divsi3 adds r6, r0, #0 ldr r2, _08014004 @ =0x020314E0 ldr r0, [r2] ldr r1, _08014008 @ =0x0000132C adds r0, r0, r1 ldr r4, [r0] movs r2, #6 ldrsh r0, [r4, r2] ldr r5, _0801400C @ =0x00000EB8 muls r0, r5, r0 movs r1, #0xaf lsls r1, r1, #0xa bl __divsi3 mov sb, r0 mov r1, r8 asrs r0, r1, #0x10 rsbs r0, r0, #0 mov r8, r0 lsls r0, r0, #1 add r0, r8 lsls r0, r0, #3 add r0, r8 lsls r0, r0, #0xa muls r0, r6, r0 adds r1, r5, #0 bl __divsi3 ldrh r1, [r4, #4] adds r1, r1, r0 strh r1, [r4, #6] ldr r0, [sp, #8] bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 str r0, [sp] ldr r0, [sp, #8] bl sub_C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r2, sp str r2, [sp, #0x20] str r0, [sp, #4] ldr r1, [sp, #0x14] lsls r0, r1, #0x10 lsrs r5, r0, #0x10 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x1c] muls r0, r2, r0 ldr r1, [sp] adds r0, r0, r1 str r0, [sp] adds r0, r5, #0 bl sub_C24 ldr r2, [sp, #0x1c] rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r4, r1, #0 muls r4, r0, r4 ldr r0, [sp, #4] adds r4, r4, r0 str r4, [sp, #4] ldr r0, [sp] ldr r7, _08014010 @ =0x00004E20 adds r1, r7, #0 bl __divsi3 str r0, [sp] adds r0, r4, #0 adds r1, r7, #0 bl __divsi3 str r0, [sp, #4] movs r4, #1 mov r0, sb cmp r0, #0 bge _08013F20 subs r4, #2 rsbs r0, r0, #0 mov sb, r0 _08013F20: mov r1, r8 muls r1, r4, r1 adds r4, r1, #0 adds r0, r5, #0 bl sub_C74 mov r1, sb muls r1, r4, r1 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08014014 @ =0xFFFF0000 mov r2, sl ands r2, r1 orrs r2, r0 mov sl, r2 adds r0, r5, #0 bl sub_C24 rsbs r1, r4, #0 mov r2, sb muls r2, r1, r2 adds r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r7, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08014018 @ =0x0000FFFF mov r2, sl ands r2, r1 orrs r2, r0 mov sl, r2 ldr r0, [sp] adds r1, r0, #0 muls r1, r0, r1 ldr r0, [sp, #4] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r6, r1, r0 lsls r0, r6, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r6, r0, #0x11 mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 ldr r1, [sp] adds r0, r0, r1 str r0, [sp] mov r2, sl asrs r0, r2, #0x10 ldr r1, [sp, #4] adds r0, r0, r1 str r0, [sp, #4] mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] ldr r2, [sp, #0x20] ldrh r1, [r2, #4] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0801401C @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bne _08014020 ldr r0, _08014004 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08014020 ldr r2, _08014008 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r1, #0x12 ldrsh r0, [r0, r1] cmp r0, #0xd1 bgt _08014020 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x18] muls r0, r2, r0 adds r1, r7, #0 bl __divsi3 str r0, [sp] adds r0, r5, #0 bl sub_C24 ldr r2, [sp, #0x18] rsbs r1, r2, #0 b _0801403E .align 2, 0 _08014004: .4byte 0x020314E0 _08014008: .4byte 0x0000132C _0801400C: .4byte 0x00000EB8 _08014010: .4byte 0x00004E20 _08014014: .4byte 0xFFFF0000 _08014018: .4byte 0x0000FFFF _0801401C: .4byte 0x0200B0C0 _08014020: adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r6, r0 ldr r4, _08014070 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 str r0, [sp] adds r0, r5, #0 bl sub_C24 rsbs r1, r6, #0 _0801403E: lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 ldr r1, _08014070 @ =0x00004E20 bl __divsi3 str r0, [sp, #4] ldr r0, [sp, #8] mov r1, sp ldr r2, [sp, #0x10] bl sub_14074 ldr r0, [sp] ldr r1, [sp, #0xc] strh r0, [r1] ldr r0, [sp, #4] strh r0, [r1, #2] add sp, #0x24 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08014070: .4byte 0x00004E20 thumb_func_start sub_14074 sub_14074: @ 0x08014074 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov r8, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 adds r7, r5, #0 lsls r2, r2, #0x10 lsrs r4, r2, #0x10 mov ip, r4 ldr r0, _080140CC @ =0x020314E0 mov sl, r0 ldr r1, [r0] ldr r2, _080140D0 @ =0x0000132C adds r0, r1, r2 ldr r3, [r0] movs r2, #0x30 ldrsh r0, [r3, r2] adds r2, r0, #0 muls r2, r0, r2 mov sb, r2 movs r2, #0x32 ldrsh r0, [r3, r2] adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 add sb, r0 adds r1, #0x23 ldrb r0, [r1] cmp r0, #2 beq _080140B8 b _08014230 _080140B8: movs r1, #0x28 ldrsh r0, [r3, r1] cmp r0, #0xe0 ble _080140DC ldr r2, _080140D4 @ =0xFFFFD5E4 adds r0, r4, r2 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r7, _080140D8 @ =0x00006A1C b _080140E8 .align 2, 0 _080140CC: .4byte 0x020314E0 _080140D0: .4byte 0x0000132C _080140D4: .4byte 0xFFFFD5E4 _080140D8: .4byte 0x00006A1C _080140DC: ldr r0, _080140FC @ =0x000055E4 mov r1, ip subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 ldr r7, _08014100 @ =0x000015E4 _080140E8: movs r0, #0x90 lsls r0, r0, #5 cmp r2, r0 bhi _08014108 ldr r0, _08014104 @ =0x00003FFF cmp sb, r0 bgt _08014108 movs r6, #0 b _0801439C .align 2, 0 _080140FC: .4byte 0x000055E4 _08014100: .4byte 0x000015E4 _08014104: .4byte 0x00003FFF _08014108: mov r2, r8 ldr r0, [r2] movs r1, #5 bl __divsi3 mov r1, r8 str r0, [r1] ldr r0, [r1, #4] movs r1, #5 bl __divsi3 mov r2, r8 str r0, [r2, #4] ldr r0, _08014180 @ =0x020314E0 ldr r4, [r0] ldr r1, _08014184 @ =0x0000132C adds r0, r4, r1 ldr r5, [r0] movs r2, #6 ldrsh r0, [r5, r2] lsls r0, r0, #2 movs r1, #0xa bl __divsi3 strh r0, [r5, #6] adds r4, #0x31 ldrb r0, [r4] cmp r0, #0 beq _08014190 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xe6 muls r0, r1, r0 ldr r4, _08014188 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801418C @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 lsls r0, r0, #1 b _080141C8 .align 2, 0 _08014180: .4byte 0x020314E0 _08014184: .4byte 0x0000132C _08014188: .4byte 0x00004E20 _0801418C: .4byte 0xFFFF0000 _08014190: adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, _08014200 @ =0x0000011D muls r0, r1, r0 ldr r4, _08014204 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08014208 @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #3 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r1 _080141C8: rsbs r0, r0, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _0801420C @ =0x0000FFFF ands r6, r1 orrs r6, r0 ldr r2, _08014210 @ =0x020314E0 ldr r0, [r2] ldr r1, _08014214 @ =0x00000716 adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r1, [r2] ldr r2, _08014218 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x77 bgt _08014220 ldr r0, _0801421C @ =0x00000717 adds r1, r1, r0 movs r0, #0 strb r0, [r1] b _0801439C .align 2, 0 _08014200: .4byte 0x0000011D _08014204: .4byte 0x00004E20 _08014208: .4byte 0xFFFF0000 _0801420C: .4byte 0x0000FFFF _08014210: .4byte 0x020314E0 _08014214: .4byte 0x00000716 _08014218: .4byte 0x0000132C _0801421C: .4byte 0x00000717 _08014220: ldr r2, _0801422C @ =0x00000717 adds r1, r1, r2 movs r0, #1 strb r0, [r1] b _0801439C .align 2, 0 _0801422C: .4byte 0x00000717 _08014230: cmp r0, #1 beq _08014236 b _08014340 _08014236: mov r1, r8 ldr r0, [r1] movs r1, #5 bl __divsi3 mov r2, r8 str r0, [r2] ldr r0, [r2, #4] movs r1, #5 bl __divsi3 mov r1, r8 str r0, [r1, #4] ldr r2, _08014298 @ =0x00005FFF adds r0, r5, r2 lsls r0, r0, #0x10 ldr r1, _0801429C @ =0x3FFE0000 cmp r0, r1 bhi _080142A8 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #2 ldr r4, _080142A0 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080142A4 @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 rsbs r0, r0, #0 b _0801438E .align 2, 0 _08014298: .4byte 0x00005FFF _0801429C: .4byte 0x3FFE0000 _080142A0: .4byte 0x00004E20 _080142A4: .4byte 0xFFFF0000 _080142A8: ldr r1, _080142F0 @ =0xFFFFF000 adds r0, r5, r1 lsls r0, r0, #0x10 movs r1, #0xc0 lsls r1, r1, #0x17 cmp r0, r1 bhi _080142FC adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #4 ldr r4, _080142F4 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080142F8 @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 rsbs r0, r0, #0 b _0801438E .align 2, 0 _080142F0: .4byte 0xFFFFF000 _080142F4: .4byte 0x00004E20 _080142F8: .4byte 0xFFFF0000 _080142FC: adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #3 ldr r4, _08014338 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801433C @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 rsbs r0, r0, #0 b _0801438E .align 2, 0 _08014338: .4byte 0x00004E20 _0801433C: .4byte 0xFFFF0000 _08014340: adds r0, r7, #0 bl sub_C74 ldr r5, _080143D4 @ =0x086ACDF4 mov r2, sl ldr r1, [r2] adds r1, #0x23 ldrb r1, [r1] lsls r1, r1, #1 adds r1, r1, r5 movs r2, #0 ldrsh r1, [r1, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 ldr r4, _080143D8 @ =0x00004E20 adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _080143DC @ =0xFFFF0000 ands r6, r1 orrs r6, r0 adds r0, r7, #0 bl sub_C24 mov r2, sl ldr r1, [r2] adds r1, #0x23 ldrb r1, [r1] lsls r1, r1, #1 adds r1, r1, r5 movs r2, #0 ldrsh r1, [r1, r2] rsbs r1, r1, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 _0801438E: adds r1, r4, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _080143E0 @ =0x0000FFFF ands r6, r1 orrs r6, r0 _0801439C: lsls r0, r6, #0x10 asrs r0, r0, #0x10 mov r2, r8 ldr r1, [r2] adds r4, r1, r0 str r4, [r2] asrs r1, r6, #0x10 ldr r0, [r2, #4] adds r0, r0, r1 str r0, [r2, #4] ldr r1, _080143E4 @ =0x020314E0 ldr r0, [r1] ldr r2, _080143E8 @ =0x000005A4 adds r3, r0, r2 ldrb r2, [r3] adds r5, r1, #0 cmp r2, #0 beq _0801446C lsls r0, r4, #0x10 lsrs r1, r0, #0x10 movs r4, #1 cmp r2, #1 bne _080143EC movs r0, #0 strb r0, [r3] movs r0, #0x80 mov sb, r0 b _080143F2 .align 2, 0 _080143D4: .4byte 0x086ACDF4 _080143D8: .4byte 0x00004E20 _080143DC: .4byte 0xFFFF0000 _080143E0: .4byte 0x0000FFFF _080143E4: .4byte 0x020314E0 _080143E8: .4byte 0x000005A4 _080143EC: movs r2, #0xa0 lsls r2, r2, #2 mov sb, r2 _080143F2: lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08014402 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 ldr r4, _0801447C @ =0x0000FFFF _08014402: lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xff bgt _08014412 lsls r0, r4, #0x10 asrs r0, r0, #8 mov r1, r8 str r0, [r1] _08014412: ldr r0, [r5] ldr r2, _08014480 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] movs r0, #0 strh r0, [r1, #6] mov r1, r8 movs r2, #0 ldrsh r0, [r1, r2] ldr r1, [r1, #4] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sb muls r1, r0, r1 adds r0, r1, #0 ldr r5, _08014484 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 mov r2, r8 str r0, [r2] adds r0, r4, #0 bl sub_C24 mov r2, sb rsbs r1, r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 mov r1, r8 str r0, [r1, #4] _0801446C: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801447C: .4byte 0x0000FFFF _08014480: .4byte 0x0000132C _08014484: .4byte 0x00004E20 thumb_func_start sub_14488 sub_14488: @ 0x08014488 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 adds r7, r0, #0 adds r4, r1, #0 ldr r1, _08014510 @ =0xFFFF0000 mov r0, r8 ands r0, r1 mov r8, r0 movs r0, #1 mov r2, r8 orrs r2, r0 mov r8, r2 ldr r2, _08014514 @ =0x0000FFFF mov r3, r8 ands r3, r2 movs r0, #0x80 lsls r0, r0, #9 orrs r3, r0 mov r8, r3 lsls r0, r4, #0x10 cmp r0, #0 bge _080144CA orrs r3, r2 mov r8, r3 rsbs r0, r4, #0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ands r4, r1 orrs r4, r0 _080144CA: asrs r0, r4, #0x10 cmp r0, #0 bge _080144DE mov r3, r8 orrs r3, r1 mov r8, r3 rsbs r0, r0, #0 lsls r0, r0, #0x10 ands r4, r2 orrs r4, r0 _080144DE: lsls r0, r4, #0x10 asrs r0, r0, #0x10 asrs r1, r4, #0x10 movs r2, #1 str r2, [sp, #8] cmp r0, r1 ble _080144F0 movs r3, #0 str r3, [sp, #8] _080144F0: ldr r2, _08014518 @ =0x020314E0 ldr r0, [r2] adds r0, #0x22 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x23 strb r1, [r0] ldr r1, _0801451C @ =0x086ACE0C ldr r0, _08014520 @ =0x0200B0C0 ldrb r0, [r0, #4] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [sp, #0xc] b _080145CC .align 2, 0 _08014510: .4byte 0xFFFF0000 _08014514: .4byte 0x0000FFFF _08014518: .4byte 0x020314E0 _0801451C: .4byte 0x086ACE0C _08014520: .4byte 0x0200B0C0 _08014524: ldrh r0, [r5] strh r0, [r7] ldrh r0, [r5, #2] strh r0, [r7, #2] mov r1, sp mov r2, sb ldrh r0, [r2] strh r0, [r1] b _0801456E _08014536: ldr r5, _080145A0 @ =0x020314E0 ldr r0, [r5] adds r0, #0x22 strb r1, [r0] adds r0, r7, #0 mov r1, sp bl sub_1467C lsls r0, r0, #0x10 cmp r0, #0 beq _0801454E b _08014668 _0801454E: ldr r0, [r5] ldr r3, _080145A4 @ =0x000005F2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801456E adds r0, r7, #0 mov r1, sp bl sub_14740 lsls r0, r0, #0x10 cmp r0, #0 beq _0801456E b _08014668 _0801456E: lsls r0, r4, #0x10 cmp r0, #0 bgt _0801457A asrs r0, r4, #0x10 cmp r0, #0 ble _08014668 _0801457A: ldr r0, [sp, #8] cmp r0, #0 bne _080145AC ldrh r0, [r7] add r0, r8 strh r0, [r7] subs r1, r4, #1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 ldr r0, _080145A8 @ =0xFFFF0000 ands r4, r0 orrs r4, r1 asrs r0, r4, #0x10 cmp r0, #0 ble _080145CC movs r1, #1 str r1, [sp, #8] b _080145CC .align 2, 0 _080145A0: .4byte 0x020314E0 _080145A4: .4byte 0x000005F2 _080145A8: .4byte 0xFFFF0000 _080145AC: mov r2, r8 asrs r0, r2, #0x10 ldrh r3, [r7, #2] adds r0, r0, r3 strh r0, [r7, #2] asrs r1, r4, #0x10 subs r1, #1 lsls r1, r1, #0x10 ldr r0, _08014658 @ =0x0000FFFF ands r4, r0 orrs r4, r1 lsls r0, r4, #0x10 cmp r0, #0 ble _080145CC movs r0, #0 str r0, [sp, #8] _080145CC: adds r0, r7, #0 mov r1, sp ldr r2, [sp, #0xc] bl _call_via_r2 lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 beq _08014536 ldr r0, _0801465C @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x22 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08014668 adds r0, r1, #0 adds r0, #0x23 ldrb r0, [r0] cmp r0, #3 bne _0801456E movs r6, #0 add r5, sp, #4 movs r3, #2 add r3, sp mov sb, r3 ldr r0, _08014658 @ =0x0000FFFF mov sl, r0 _08014608: ldr r0, _08014660 @ =0x086ACE60 lsls r3, r6, #2 adds r3, r3, r0 ldrh r1, [r3] ldrh r2, [r7] adds r1, r1, r2 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 ldr r2, _08014664 @ =0xFFFF0000 ldr r0, [sp, #4] ands r0, r2 orrs r0, r1 str r0, [sp, #4] ldrh r1, [r3, #2] ldrh r3, [r7, #2] adds r1, r1, r3 lsls r1, r1, #0x10 mov r2, sl ands r0, r2 orrs r0, r1 str r0, [sp, #4] adds r0, r5, #0 mov r1, sb ldr r3, [sp, #0xc] bl _call_via_r3 ldr r0, _0801465C @ =0x020314E0 ldr r0, [r0] ldrh r1, [r0, #0x22] mov r0, sl ands r0, r1 cmp r0, #1 bne _0801464C b _08014524 _0801464C: adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 cmp r6, #3 bls _08014608 b _0801456E .align 2, 0 _08014658: .4byte 0x0000FFFF _0801465C: .4byte 0x020314E0 _08014660: .4byte 0x086ACE60 _08014664: .4byte 0xFFFF0000 _08014668: mov r0, sp ldrh r0, [r0] add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_1467C sub_1467C: @ 0x0801467C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov r8, r1 movs r7, #0 ldr r4, _08014734 @ =0x02031520 movs r1, #0x22 ldrsh r2, [r4, r1] lsls r2, r2, #1 ldrh r3, [r0] subs r2, r3, r2 lsls r2, r2, #0x10 mov ip, r2 movs r2, #0x24 ldrsh r1, [r4, r2] lsls r1, r1, #1 subs r3, r3, r1 lsls r3, r3, #0x10 movs r2, #0x20 ldrsh r1, [r4, r2] lsls r1, r1, #1 ldrh r0, [r0, #2] subs r0, r0, r1 lsls r0, r0, #0x10 mov r1, ip lsrs r6, r1, #0x10 orrs r6, r0 lsrs r1, r0, #0x10 lsrs r5, r3, #0x10 orrs r5, r0 cmp r1, #0x5f bhi _08014724 lsls r0, r6, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x5f bhi _080146E8 ldr r4, _08014738 @ =0x020314E0 ldr r0, [r4] ldrb r1, [r0, #0x1e] adds r1, #1 adds r0, r6, #0 mov r2, r8 movs r3, #0 bl sub_14AF4 lsls r0, r0, #0x10 cmp r0, #0 beq _080146E8 ldr r0, [r4] adds r0, #0x22 movs r1, #3 strb r1, [r0] movs r7, #1 _080146E8: cmp r7, #0 bne _08014724 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x5f bhi _08014724 movs r0, #0x5f subs r0, r0, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _0801473C @ =0xFFFF0000 ands r5, r1 orrs r5, r0 ldr r4, _08014738 @ =0x020314E0 ldr r0, [r4] ldrb r1, [r0, #0x1e] adds r1, #1 adds r0, r5, #0 mov r2, r8 movs r3, #1 bl sub_14AF4 lsls r0, r0, #0x10 cmp r0, #0 beq _08014724 ldr r0, [r4] adds r0, #0x22 movs r1, #4 strb r1, [r0] movs r7, #1 _08014724: adds r0, r7, #0 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _08014734: .4byte 0x02031520 _08014738: .4byte 0x020314E0 _0801473C: .4byte 0xFFFF0000 thumb_func_start sub_14740 sub_14740: @ 0x08014740 push {r4, r5, r6, r7, lr} adds r2, r0, #0 adds r7, r1, #0 movs r6, #0 ldr r0, _080147E8 @ =0x020314E0 ldr r4, [r0] ldr r5, _080147EC @ =0x000005A4 adds r1, r4, r5 ldrb r1, [r1] adds r5, r0, #0 cmp r1, #2 bne _0801475A b _08014924 _0801475A: movs r0, #0 ldrsh r1, [r2, r0] lsrs r0, r1, #0x1f adds r1, r1, r0 asrs r1, r1, #1 adds r0, r4, #0 adds r0, #0xc4 ldrh r0, [r0] subs r1, r1, r0 lsls r1, r1, #0x10 movs r3, #2 ldrsh r0, [r2, r3] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 adds r2, r4, #0 adds r2, #0xc6 ldrh r2, [r2] subs r0, r0, r2 lsls r0, r0, #0x10 lsrs r3, r1, #0x10 orrs r3, r0 adds r1, r0, #0 lsrs r0, r1, #0x10 cmp r0, #0x2f bls _08014790 b _08014924 _08014790: lsls r2, r3, #0x10 lsrs r0, r2, #0x10 cmp r0, #0x2f bls _0801479A b _08014924 _0801479A: asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r2, #0x10 adds r0, r0, r1 ldr r1, _080147F0 @ =0x0839A28C adds r0, r0, r1 ldrb r2, [r0] movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _080147B6 b _08014924 _080147B6: adds r1, r4, #0 adds r1, #0x22 movs r0, #2 strb r0, [r1] ldr r0, [r5] adds r0, #0x23 movs r1, #3 strb r1, [r0] movs r0, #0x7f ands r0, r2 lsls r0, r0, #9 strh r0, [r7] ldr r2, [r5] ldr r0, _080147F4 @ =0x000005A6 adds r1, r2, r0 movs r0, #0x14 strh r0, [r1] ldr r1, _080147F8 @ =0x000005A9 adds r2, r2, r1 ldrb r0, [r2] cmp r0, #0 beq _080147FC movs r0, #0x18 b _080147FE .align 2, 0 _080147E8: .4byte 0x020314E0 _080147EC: .4byte 0x000005A4 _080147F0: .4byte 0x0839A28C _080147F4: .4byte 0x000005A6 _080147F8: .4byte 0x000005A9 _080147FC: movs r0, #0x14 _080147FE: strb r0, [r2] ldr r1, [r5] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xc8 bne _080148A4 ldr r3, _0801484C @ =0x000005AA adds r0, r1, r3 ldrh r3, [r0] cmp r3, #0 bne _0801487E adds r2, #0xd adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r5] adds r0, r1, r2 ldrb r2, [r0] cmp r2, #3 bne _08014858 adds r0, r2, #0 adds r0, r1, r0 ldr r1, _08014850 @ =0x0000071C adds r0, r0, r1 strb r2, [r0] ldr r0, [r5] ldr r2, _08014854 @ =0x000005A4 adds r0, r0, r2 movs r1, #2 strb r1, [r0] ldr r1, [r5] adds r2, #2 adds r0, r1, r2 strh r3, [r0] b _08014870 .align 2, 0 _0801484C: .4byte 0x000005AA _08014850: .4byte 0x0000071C _08014854: .4byte 0x000005A4 _08014858: ldrb r0, [r0] adds r0, r1, r0 ldr r3, _08014890 @ =0x0000071C adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r1, _08014894 @ =0x000005A4 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r5] _08014870: ldr r0, _08014898 @ =0x00002710 str r0, [r1, #0x3c] ldr r0, [r5] ldr r2, _0801489C @ =0x000005AA adds r0, r0, r2 movs r1, #4 strh r1, [r0] _0801487E: movs r6, #1 ldr r0, _080148A0 @ =0x00000145 bl m4aSongNumStart movs r0, #7 bl sub_11B0 b _08014924 .align 2, 0 _08014890: .4byte 0x0000071C _08014894: .4byte 0x000005A4 _08014898: .4byte 0x00002710 _0801489C: .4byte 0x000005AA _080148A0: .4byte 0x00000145 _080148A4: ldr r3, _080148E0 @ =0x000005AA adds r0, r1, r3 ldrh r3, [r0] cmp r3, #0 bne _08014916 ldr r2, _080148E4 @ =0x000005A5 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r5] adds r0, r1, r2 ldrb r2, [r0] cmp r2, #3 bne _080148F0 adds r0, r2, #0 adds r0, r1, r0 ldr r1, _080148E8 @ =0x0000071C adds r0, r0, r1 strb r2, [r0] ldr r0, [r5] ldr r2, _080148EC @ =0x000005A4 adds r0, r0, r2 movs r1, #2 strb r1, [r0] ldr r1, [r5] adds r2, #2 adds r0, r1, r2 strh r3, [r0] b _08014908 .align 2, 0 _080148E0: .4byte 0x000005AA _080148E4: .4byte 0x000005A5 _080148E8: .4byte 0x0000071C _080148EC: .4byte 0x000005A4 _080148F0: ldrb r0, [r0] adds r0, r1, r0 ldr r3, _0801492C @ =0x0000071C adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r1, _08014930 @ =0x000005A4 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r5] _08014908: ldr r0, _08014934 @ =0x00002710 str r0, [r1, #0x3c] ldr r0, [r5] ldr r2, _08014938 @ =0x000005AA adds r0, r0, r2 movs r1, #4 strh r1, [r0] _08014916: movs r6, #1 movs r0, #0x74 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _08014924: adds r0, r6, #0 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _0801492C: .4byte 0x0000071C _08014930: .4byte 0x000005A4 _08014934: .4byte 0x00002710 _08014938: .4byte 0x000005AA thumb_func_start sub_1493C sub_1493C: @ 0x0801493C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r0, _08014A28 @ =0x020314E0 mov sb, r0 ldr r4, [r0] ldr r1, _08014A2C @ =0x0000132C mov r8, r1 adds r0, r4, r1 ldr r2, [r0] ldrh r1, [r2, #0x28] subs r1, #0xee lsls r1, r1, #0x10 ldr r5, _08014A30 @ =0xFFFFFDD2 adds r0, r5, #0 ldrh r2, [r2, #0x2a] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r3, r1, #0x10 orrs r3, r0 lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r0, r1 asrs r2, r3, #0x10 adds r0, r2, #0 muls r0, r2, r0 adds r7, r1, r0 ldr r0, _08014A34 @ =0x000006E3 cmp r7, r0 bgt _08014A04 ldrb r1, [r4, #0x1e] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08014A04 rsbs r0, r3, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r2, #0 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 movs r5, #0x1e adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 ldr r6, _08014A38 @ =0x00004E20 adds r1, r6, #0 bl __divsi3 str r0, [sp] adds r0, r4, #0 bl sub_C24 rsbs r5, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 adds r1, r6, #0 bl __divsi3 str r0, [sp, #4] mov r0, sb ldr r4, [r0] add r4, r8 ldr r5, [r4] movs r1, #0x64 mov r8, r1 ldr r2, [sp] mov r0, r8 muls r0, r2, r0 movs r2, #0x30 ldrsh r1, [r5, r2] movs r6, #0x62 muls r1, r6, r1 adds r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0x30] ldr r4, [r4] ldr r5, [sp, #4] mov r0, r8 muls r0, r5, r0 movs r2, #0x32 ldrsh r1, [r4, r2] muls r1, r6, r1 adds r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r4, #0x32] _08014A04: ldr r0, _08014A28 @ =0x020314E0 ldr r1, [r0] ldr r5, _08014A3C @ =0x000005F4 adds r3, r1, r5 ldrh r0, [r3] adds r2, r0, #0 cmp r2, #0x13 bhi _08014A5C cmp r7, #0x27 bgt _08014A40 adds r0, #1 strh r0, [r3] ldr r2, _08014A2C @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r0, #0x80 lsls r0, r0, #1 b _08014ADC .align 2, 0 _08014A28: .4byte 0x020314E0 _08014A2C: .4byte 0x0000132C _08014A30: .4byte 0xFFFFFDD2 _08014A34: .4byte 0x000006E3 _08014A38: .4byte 0x00004E20 _08014A3C: .4byte 0x000005F4 _08014A40: ldr r5, _08014A58 @ =0x0000132C adds r0, r1, r5 ldr r1, [r0] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0xe] cmp r7, #0x64 ble _08014ADE movs r0, #0 strh r0, [r3] b _08014ADE .align 2, 0 _08014A58: .4byte 0x0000132C _08014A5C: cmp r2, #0x1d bhi _08014AA8 adds r0, #1 movs r6, #0 strh r0, [r3] ldr r0, _08014AA4 @ =0x0000132C adds r4, r1, r0 ldr r5, [r4] ldrh r1, [r3] movs r0, #0x1e subs r0, r0, r1 lsls r0, r0, #7 movs r1, #0xa bl __divsi3 adds r0, #0x80 strh r0, [r5, #0xe] ldr r1, [r4] movs r0, #0x77 strh r0, [r1, #0x10] ldr r1, [r4] adds r0, #0xa0 strh r0, [r1, #0x12] ldr r0, [r4] strh r6, [r0, #6] ldr r1, [r4] movs r2, #0x10 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] movs r5, #0x12 ldrsh r0, [r1, r5] lsls r0, r0, #8 str r0, [r1, #0x38] b _08014ADE .align 2, 0 _08014AA4: .4byte 0x0000132C _08014AA8: movs r0, #0 strh r0, [r3] adds r1, #0x25 movs r0, #4 strb r0, [r1] ldr r0, _08014AC0 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _08014AC4 bl sub_1A98C b _08014AC8 .align 2, 0 _08014AC0: .4byte 0x0200B0C0 _08014AC4: bl sub_32914 _08014AC8: ldr r2, _08014AEC @ =0x020314E0 ldr r0, [r2] adds r0, #0x22 movs r1, #7 strb r1, [r0] ldr r0, [r2] ldr r1, _08014AF0 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] movs r0, #0x80 _08014ADC: strh r0, [r1, #0xe] _08014ADE: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08014AEC: .4byte 0x020314E0 _08014AF0: .4byte 0x0000132C thumb_func_start sub_14AF4 sub_14AF4: @ 0x08014AF4 push {r4, r5, r6, r7, lr} adds r7, r2, #0 movs r2, #0 mov ip, r2 asrs r2, r0, #0x10 lsls r4, r2, #1 adds r4, r4, r2 lsls r4, r4, #5 adds r4, r4, r0 lsls r4, r4, #0x10 ldr r2, _08014B70 @ =0x020314E0 lsls r3, r3, #0x10 asrs r6, r3, #0x10 lsls r0, r6, #1 adds r0, r0, r6 lsls r0, r0, #2 ldr r3, _08014B74 @ =0x000013BC adds r0, r0, r3 ldr r3, [r2] adds r3, r3, r0 ldr r5, _08014B78 @ =0x086ACDB8 lsls r1, r1, #0x10 asrs r1, r1, #0x10 movs r2, #2 ldrsb r2, [r3, r2] lsls r0, r2, #2 adds r0, r0, r2 adds r1, r1, r0 adds r1, r1, r5 ldrb r0, [r1] strb r0, [r3, #5] ldr r0, _08014B7C @ =0x02031520 movs r1, #5 ldrsb r1, [r3, r1] ldr r2, [r0, #0x68] lsrs r4, r4, #0xf lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #0xb adds r0, r0, r2 adds r4, r4, r0 ldrh r4, [r4] movs r0, #0xf ands r0, r4 cmp r0, #0 beq _08014B66 ldr r1, _08014B80 @ =0x0000FFF0 ands r1, r4 strh r1, [r7] cmp r6, #1 bne _08014B62 movs r0, #0x80 lsls r0, r0, #8 subs r0, r0, r1 strh r0, [r7] _08014B62: movs r0, #1 mov ip, r0 _08014B66: mov r0, ip pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _08014B70: .4byte 0x020314E0 _08014B74: .4byte 0x000013BC _08014B78: .4byte 0x086ACDB8 _08014B7C: .4byte 0x02031520 _08014B80: .4byte 0x0000FFF0 thumb_func_start sub_14B84 sub_14B84: @ 0x08014B84 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 mov r8, r2 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 ldr r0, _08014C20 @ =0x020314E0 ldr r2, [r0] lsls r3, r1, #0x10 asrs r0, r3, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 adds r1, r2, r1 ldr r6, _08014C24 @ =0x000013C1 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 ldr r0, _08014C28 @ =0x000013C4 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08014BC8 b _08014D3E _08014BC8: adds r0, r2, #0 adds r0, #0x5c movs r1, #0 ldrsh r0, [r0, r1] mov sb, r3 cmp r0, #0 beq _08014BD8 b _08014CF2 _08014BD8: lsls r0, r6, #0x10 asrs r2, r0, #0x10 subs r1, r2, #2 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r1 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r5, r5, r0 ldr r0, _08014C2C @ =0x00000B21 cmp r5, r0 bgt _08014C34 ldr r2, _08014C30 @ =0xFFFFF5D8 adds r4, r5, r2 lsls r0, r4, #0xb movs r1, #0x96 lsls r1, r1, #2 bl __divsi3 movs r3, #0x90 lsls r3, r3, #7 adds r1, r3, #0 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 lsls r4, r4, #7 movs r1, #0x96 lsls r1, r1, #1 adds r0, r4, #0 bl __divsi3 adds r7, r0, #0 adds r7, #0x78 b _08014C68 .align 2, 0 _08014C20: .4byte 0x020314E0 _08014C24: .4byte 0x000013C1 _08014C28: .4byte 0x000013C4 _08014C2C: .4byte 0x00000B21 _08014C30: .4byte 0xFFFFF5D8 _08014C34: ldr r0, _08014D14 @ =0x086ACE2C lsls r1, r2, #2 adds r6, r1, r0 adds r0, #2 adds r1, r1, r0 ldrh r0, [r1] ldr r1, _08014D18 @ =0xFFFFF5D8 adds r4, r5, r1 muls r0, r4, r0 ldr r5, _08014D1C @ =0x00001518 adds r1, r5, #0 bl __divsi3 ldrh r1, [r6] subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 movs r0, #0xae lsls r0, r0, #1 muls r0, r4, r0 adds r1, r5, #0 bl __divsi3 movs r2, #0xcb lsls r2, r2, #1 adds r7, r0, r2 _08014C68: mov r3, sl lsls r0, r3, #0x10 mov sb, r0 cmp r0, #0 beq _08014C7E movs r1, #0x80 lsls r1, r1, #8 adds r0, r1, #0 subs r0, r0, r6 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 _08014C7E: ldr r2, _08014D20 @ =0x020314E0 mov sl, r2 ldr r0, [r2] ldr r3, _08014D24 @ =0x0000132C adds r0, r0, r3 ldr r2, [r0] movs r0, #0x30 ldrsh r1, [r2, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #9 rsbs r0, r0, #0 cmp r0, #0 bge _08014C9C adds r0, #0x7f _08014C9C: asrs r3, r0, #7 movs r0, #8 ldrsh r1, [r2, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 rsbs r0, r0, #0 cmp r0, #0 bge _08014CB0 adds r0, #0xff _08014CB0: asrs r0, r0, #8 adds r0, r3, r0 adds r0, r6, r0 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r6, #0 bl sub_C74 mov r1, sl ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r5, _08014D28 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 adds r4, #0x60 strh r0, [r4] adds r0, r6, #0 bl sub_C24 mov r2, sl ldr r4, [r2] rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 adds r4, #0x62 strh r0, [r4] _08014CF2: ldr r2, _08014D20 @ =0x020314E0 ldr r3, [r2] adds r1, r3, #0 adds r1, #0x5c movs r0, #1 strh r0, [r1] mov r6, sb cmp r6, #0 beq _08014D2C adds r0, r3, #0 adds r0, #0x60 ldrh r0, [r0] rsbs r0, r0, #0 mov r1, r8 strh r0, [r1] b _08014D36 .align 2, 0 _08014D14: .4byte 0x086ACE2C _08014D18: .4byte 0xFFFFF5D8 _08014D1C: .4byte 0x00001518 _08014D20: .4byte 0x020314E0 _08014D24: .4byte 0x0000132C _08014D28: .4byte 0x00004E20 _08014D2C: adds r0, r3, #0 adds r0, #0x60 ldrh r0, [r0] mov r3, r8 strh r0, [r3] _08014D36: ldr r0, [r2] adds r0, #0x62 ldrh r0, [r0] b _08014DEA _08014D3E: adds r0, r5, #0 movs r1, #0x14 bl __divsi3 adds r5, r0, #0 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 ldr r6, _08014DFC @ =0x00004E20 adds r1, r6, #0 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08014E00 @ =0xFFFF0000 ands r4, r1 orrs r4, r0 adds r0, r7, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 rsbs r0, r0, #0 adds r1, r6, #0 bl __divsi3 lsls r0, r0, #0x10 ldr r1, _08014E04 @ =0x0000FFFF ands r4, r1 orrs r4, r0 mov r0, r8 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, r4, r0 mov r3, r8 strh r0, [r3] asrs r1, r4, #0x10 movs r0, #2 ldrsh r2, [r3, r0] lsls r0, r2, #1 adds r0, r0, r2 lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 adds r1, r1, r0 strh r1, [r3, #2] movs r2, #0 ldrsh r0, [r3, r2] rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 adds r1, r6, #0 bl __divsi3 mov r3, r8 strh r0, [r3] adds r0, r4, #0 bl sub_C24 rsbs r5, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 adds r1, r6, #0 bl __divsi3 _08014DEA: mov r6, r8 strh r0, [r6, #2] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08014DFC: .4byte 0x00004E20 _08014E00: .4byte 0xFFFF0000 _08014E04: .4byte 0x0000FFFF thumb_func_start sub_14E08 sub_14E08: @ 0x08014E08 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _08014F0C @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08014F10 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r0, sb movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _08014E3A adds r0, r4, #7 _08014E3A: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08014F14 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08014E56 adds r0, r3, #7 _08014E56: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08014F18 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08014E82 adds r2, #0x3f _08014E82: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _08014F1C @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_15054 ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08014F00 b _0801502C _08014F00: lsls r0, r0, #2 ldr r1, _08014F20 @ =_08014F24 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08014F0C: .4byte 0x020314E0 _08014F10: .4byte 0x0000132C _08014F14: .4byte 0xFFFF0000 _08014F18: .4byte 0x0000FFFF _08014F1C: .4byte 0x02031520 _08014F20: .4byte _08014F24 _08014F24: @ jump table .4byte _08014F3C @ case 0 .4byte _08014FE8 @ case 1 .4byte _08014FE8 @ case 2 .4byte _08014F3C @ case 3 .4byte _08015018 @ case 4 .4byte _08014F3C @ case 5 _08014F3C: ldr r2, _08014FB4 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _08014FB8 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08014FDC ldr r0, [r2] ldr r7, _08014FBC @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08014FC0 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08014F88 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08014FDC _08014F88: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _08014FA6 cmp r0, #0 bne _08014FD2 ldr r0, _08014FC4 @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08014FC8 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _08014FA6: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _08014FDC .align 2, 0 _08014FB4: .4byte 0x020314E0 _08014FB8: .4byte 0xFFFFC010 _08014FBC: .4byte 0x0000132C _08014FC0: .4byte 0x02031520 _08014FC4: .4byte 0x0200B0C0 _08014FC8: ldr r0, _08014FE4 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08014FD2: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _08014FDC: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _0801502C .align 2, 0 _08014FE4: .4byte 0x0000FFD8 _08014FE8: ldr r2, _08015010 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08015014 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _0801502C .align 2, 0 _08015010: .4byte 0x020314E0 _08015014: .4byte 0x0000FFF0 _08015018: ldr r2, _0801504C @ =0x020314E0 ldr r0, [r2] ldr r1, _08015050 @ =0x000002A2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] movs r6, #0 _0801502C: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_153CC mov r2, sp movs r4, #4 ldrsh r0, [r2, r4] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _0801504C: .4byte 0x020314E0 _08015050: .4byte 0x000002A2 thumb_func_start sub_15054 sub_15054: @ 0x08015054 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r4, r0, #0 str r1, [sp] mov ip, r2 movs r7, #0 movs r5, #0 movs r0, #0 str r0, [sp, #4] ldr r0, _08015128 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801512C @ =0x000005B2 adds r1, r2, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov r8, r0 cmp r1, #0 beq _08015084 b _08015298 _08015084: adds r0, r2, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08015094 b _0801539A _08015094: movs r6, #0xa9 lsls r6, r6, #2 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08015146 ldr r1, _08015130 @ =0x000002A3 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080150B4 b _0801539A _080150B4: movs r3, #0xc2 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] ldrh r6, [r4] adds r1, r1, r6 adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] ldrh r4, [r4, #2] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r1, #0x10 lsrs r0, r5, #0x10 cmp r0, #0x4f bls _080150D8 b _0801539A _080150D8: lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x57 bls _080150E2 b _0801539A _080150E2: ldr r2, _08015134 @ =0x08259C10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r5, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08015138 @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 bne _08015104 b _0801539A _08015104: ldr r6, [sp] strh r7, [r6] mov r1, r8 ldr r0, [r1] ldr r2, _0801513C @ =0x000002A2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08015140 mov r3, ip strb r5, [r3] ldr r0, [r1] adds r0, r0, r2 movs r1, #7 strb r1, [r0] b _0801539A .align 2, 0 _08015128: .4byte 0x020314E0 _0801512C: .4byte 0x000005B2 _08015130: .4byte 0x000002A3 _08015134: .4byte 0x08259C10 _08015138: .4byte 0x0000FFF0 _0801513C: .4byte 0x000002A2 _08015140: movs r0, #1 mov r6, ip b _08015398 _08015146: mov r0, ip ldrb r1, [r0] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08015154 b _0801539A _08015154: movs r1, #0xc2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r3, [r4] ldrh r1, [r0] adds r1, r3, r1 movs r6, #0xc3 lsls r6, r6, #1 adds r0, r2, r6 ldrh r2, [r4, #2] ldrh r0, [r0] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r6, r1, #0x10 lsrs r0, r6, #0x10 mov sb, r3 mov sl, r2 cmp r0, #0x3f bhi _080151A2 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080151A2 ldr r2, _08015288 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r6, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _0801528C @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 beq _080151A6 movs r0, #0 str r0, [sp, #4] _080151A2: cmp r5, #0 bne _08015246 _080151A6: mov r1, r8 ldr r2, [r1] movs r3, #0xc4 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, sb movs r6, #0xc5 lsls r6, r6, #1 adds r0, r2, r6 ldrh r0, [r0] add r0, sl lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _080151F0 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080151F0 ldr r2, _08015288 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _0801528C @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 beq _080151F4 movs r0, #1 str r0, [sp, #4] _080151F0: cmp r5, #0 bne _08015246 _080151F4: mov r1, r8 ldr r2, [r1] movs r3, #0xc6 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, sb movs r6, #0xc7 lsls r6, r6, #1 adds r0, r2, r6 ldrh r0, [r0] add r0, sl lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _08015240 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _08015240 ldr r2, _08015288 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _0801528C @ =0x0000FFF0 ands r7, r0 movs r5, #0xf ands r5, r0 cmp r5, #0 bne _0801523C b _0801539A _0801523C: movs r0, #2 str r0, [sp, #4] _08015240: cmp r5, #0 bne _08015246 b _0801539A _08015246: mov r2, r8 ldr r1, [r2] ldr r3, _08015290 @ =0x0000016F adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015266 movs r6, #0xb8 lsls r6, r6, #1 adds r0, r1, r6 ldr r1, [sp, #4] adds r0, r0, r1 movs r1, #0x6b strb r1, [r0] _08015266: ldr r2, [sp] strh r7, [r2] mov r3, ip strb r5, [r3] mov r6, r8 ldr r0, [r6] ldr r2, _08015294 @ =0x00000624 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08015280 b _0801539A _08015280: movs r0, #2 strb r0, [r1] b _0801539A .align 2, 0 _08015288: .4byte 0x08252B10 _0801528C: .4byte 0x0000FFF0 _08015290: .4byte 0x0000016F _08015294: .4byte 0x00000624 _08015298: mov r3, ip ldrb r1, [r3] movs r5, #0xf adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0801539A ldr r6, _080153AC @ =0x000002E5 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08015320 movs r1, #0xbb lsls r1, r1, #2 adds r0, r2, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x18 rsbs r1, r1, #0 subs r1, r1, r0 lsls r1, r1, #1 ldrh r3, [r4] adds r1, r1, r3 ldr r6, _080153B0 @ =0xFFFFFDBC adds r0, r6, #0 ldrh r2, [r4, #2] adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x47 bhi _08015320 lsls r1, r2, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x47 bhi _08015320 ldr r2, _080153B4 @ =0x08254B10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #3 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r0, _080153B8 @ =0x0000FFF0 ands r0, r1 ldr r3, [sp] strh r0, [r3] adds r0, r5, #0 ands r0, r1 mov r6, ip strb r0, [r6] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08015320 mov r2, r8 ldr r0, [r2] ldr r3, _080153BC @ =0x000002E2 adds r0, r0, r3 strb r1, [r0] movs r0, #6 strb r0, [r6] _08015320: mov r6, r8 ldr r1, [r6] ldr r2, _080153C0 @ =0x000002E6 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0801539A ldr r3, _080153C4 @ =0x000002EE adds r0, r1, r3 movs r6, #0 ldrsh r1, [r0, r6] subs r1, #0xb4 lsls r1, r1, #1 ldrh r0, [r4] adds r1, r1, r0 ldr r2, _080153B0 @ =0xFFFFFDBC adds r0, r2, #0 ldrh r4, [r4, #2] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r1, #0x10 lsrs r0, r5, #0x10 cmp r0, #0x47 bhi _0801539A lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x47 bhi _0801539A ldr r2, _080153C8 @ =0x08257390 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #3 asrs r1, r5, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r0, _080153B8 @ =0x0000FFF0 ands r0, r1 ldr r3, [sp] strh r0, [r3] movs r0, #0xf ands r0, r1 mov r6, ip strb r0, [r6] movs r1, #1 ands r0, r1 cmp r0, #0 beq _0801539A mov r1, r8 ldr r0, [r1] ldr r2, _080153BC @ =0x000002E2 adds r0, r0, r2 movs r1, #2 strb r1, [r0] movs r0, #6 _08015398: strb r0, [r6] _0801539A: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080153AC: .4byte 0x000002E5 _080153B0: .4byte 0xFFFFFDBC _080153B4: .4byte 0x08254B10 _080153B8: .4byte 0x0000FFF0 _080153BC: .4byte 0x000002E2 _080153C0: .4byte 0x000002E6 _080153C4: .4byte 0x000002EE _080153C8: .4byte 0x08257390 thumb_func_start sub_153CC sub_153CC: @ 0x080153CC push {r4, r5, r6, r7, lr} adds r7, r1, #0 adds r6, r2, #0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bls _080153E0 bl _08016082 _080153E0: lsls r0, r0, #2 ldr r1, _080153EC @ =_080153F0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080153EC: .4byte _080153F0 _080153F0: @ jump table .4byte _0801542C @ case 0 .4byte _08015494 @ case 1 .4byte _080154E0 @ case 2 .4byte _08015578 @ case 3 .4byte _08015620 @ case 4 .4byte _0801564C @ case 5 .4byte _0801567C @ case 6 .4byte _08015764 @ case 7 .4byte _08015AA4 @ case 8 .4byte _08015AF0 @ case 9 .4byte _08015CA0 @ case 10 .4byte _08015E4C @ case 11 .4byte _08015EB4 @ case 12 .4byte _08015F20 @ case 13 .4byte _08015F8C @ case 14 _0801542C: ldr r0, _0801545C @ =0x020314E0 ldr r2, [r0] ldrh r0, [r2, #0x26] cmp r0, #0 beq _0801543A bl _08016082 _0801543A: ldr r1, _08015460 @ =0x0000132C adds r0, r2, r1 ldr r3, [r0] movs r4, #0x28 ldrsh r1, [r3, r4] ldr r0, _08015464 @ =0x00000167 cmp r1, r0 ble _08015470 movs r1, #0x2a ldrsh r0, [r3, r1] cmp r0, #0xc7 ble _08015468 adds r1, r2, #0 adds r1, #0x25 movs r0, #1 b _08015476 .align 2, 0 _0801545C: .4byte 0x020314E0 _08015460: .4byte 0x0000132C _08015464: .4byte 0x00000167 _08015468: adds r1, r2, #0 adds r1, #0x25 movs r0, #3 b _08015476 _08015470: adds r1, r2, #0 adds r1, #0x25 movs r0, #2 _08015476: strb r0, [r1] bl sub_1A98C ldr r0, _08015490 @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #7 strb r1, [r0] movs r0, #1 strh r0, [r7] bl _08016082 .align 2, 0 _08015490: .4byte 0x020314E0 _08015494: ldr r3, _080154B8 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _080154C0 ldr r4, _080154BC @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r1, #2 strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 strb r1, [r0] bl _08016082 .align 2, 0 _080154B8: .4byte 0x020314E0 _080154BC: .4byte 0x0000132C _080154C0: cmp r1, #2 beq _080154C8 bl _08016082 _080154C8: ldr r4, _080154DC @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 movs r1, #3 strb r1, [r0] bl _08016082 .align 2, 0 _080154DC: .4byte 0x0000132C _080154E0: ldr r1, _08015508 @ =0x020314E0 ldr r2, [r1] adds r0, r2, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #2 bne _08015510 ldr r1, _0801550C @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] movs r2, #0 movs r0, #3 strb r0, [r1, #1] ldr r0, [r5] adds r0, #0x24 strb r2, [r0] b _08015524 .align 2, 0 _08015508: .4byte 0x020314E0 _0801550C: .4byte 0x0000132C _08015510: cmp r0, #3 bne _08015524 ldr r3, _0801556C @ =0x0000132C adds r0, r2, r3 ldr r0, [r0] movs r1, #2 strb r1, [r0, #1] ldr r0, [r5] adds r0, #0x24 strb r1, [r0] _08015524: ldr r0, [r5] ldr r4, _08015570 @ =0x000002FB adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bne _08015536 movs r0, #7 strb r0, [r1] _08015536: ldr r0, [r5] movs r1, #0xbc lsls r1, r1, #2 adds r2, r0, r1 ldrb r1, [r2] movs r3, #0xf0 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0801554E movs r0, #0 strb r0, [r2] _0801554E: ldr r0, [r5] ldr r2, _08015574 @ =0x000001AB adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] ands r0, r3 cmp r0, #0 bne _08015562 bl _08016082 _08015562: movs r0, #0 strb r0, [r1] bl _08016082 .align 2, 0 _0801556C: .4byte 0x0000132C _08015570: .4byte 0x000002FB _08015574: .4byte 0x000001AB _08015578: ldr r1, _080155B8 @ =0x020314E0 ldr r2, [r1] movs r3, #0xc0 lsls r3, r3, #3 adds r0, r2, r3 ldrh r3, [r0] adds r5, r1, #0 cmp r3, #0 beq _0801558E bl _08016082 _0801558E: ldr r4, _080155BC @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r1, #0x10 ldrsh r0, [r0, r1] cmp r0, #0x83 ble _080155C4 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] ldr r3, _080155C0 @ =0x0000070E adds r1, r2, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x62 bgt _08015604 adds r0, r2, #1 strb r0, [r1] b _08015604 .align 2, 0 _080155B8: .4byte 0x020314E0 _080155BC: .4byte 0x0000132C _080155C0: .4byte 0x0000070E _080155C4: cmp r0, #0x5b ble _080155E4 movs r0, #0xfa lsls r0, r0, #3 str r0, [r2, #0x3c] movs r4, #0xba lsls r4, r4, #1 adds r0, r2, r4 strh r3, [r0] ldr r0, _080155E0 @ =0x0000016F adds r1, r2, r0 movs r0, #1 strb r0, [r1] b _08015604 .align 2, 0 _080155E0: .4byte 0x0000016F _080155E4: movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] ldr r3, _0801561C @ =0x000002B2 adds r1, r2, r3 movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 bne _08015604 movs r0, #1 strb r0, [r1] ldr r0, [r5] movs r4, #0xac lsls r4, r4, #2 adds r0, r0, r4 strh r2, [r0] _08015604: ldr r0, [r5] movs r1, #0xc0 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #0x2d strh r1, [r0] movs r0, #0x76 bl m4aSongNumStart bl _08016082 .align 2, 0 _0801561C: .4byte 0x000002B2 _08015620: ldr r1, _08015640 @ =0x020314E0 ldr r0, [r1] adds r0, #0x20 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r1] ldr r4, _08015644 @ =0x00000165 adds r0, r0, r4 strb r2, [r0] ldr r0, [r1] ldr r1, _08015648 @ =0x00000732 adds r0, r0, r1 strb r3, [r0] bl _08016082 .align 2, 0 _08015640: .4byte 0x020314E0 _08015644: .4byte 0x00000165 _08015648: .4byte 0x00000732 _0801564C: ldr r4, _08015670 @ =0x020314E0 ldr r0, [r4] ldr r2, _08015674 @ =0x000005B2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08015662 bl _08016082 _08015662: movs r0, #1 bl sub_46FD4 ldr r0, [r4] ldr r3, _08015678 @ =0x0000029E b _0801588E .align 2, 0 _08015670: .4byte 0x020314E0 _08015674: .4byte 0x000005B2 _08015678: .4byte 0x0000029E _0801567C: ldr r5, _080156C4 @ =0x020314E0 ldr r1, [r5] ldr r4, _080156C8 @ =0x0000132C mov ip, r4 adds r0, r1, r4 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x31 bgt _080156D4 ldr r3, _080156CC @ =0x000002FA adds r0, r1, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _08015734 movs r2, #1 strb r2, [r0] ldr r0, [r5] ldr r4, _080156D0 @ =0x000002FB adds r0, r0, r4 strb r2, [r0] ldr r0, [r5] adds r0, #0x23 strb r1, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r1, #0xb0 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] strh r2, [r7] b _08015734 .align 2, 0 _080156C4: .4byte 0x020314E0 _080156C8: .4byte 0x0000132C _080156CC: .4byte 0x000002FA _080156D0: .4byte 0x000002FB _080156D4: ldr r2, _08015744 @ =0x000002FA adds r0, r1, r2 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bne _08015734 movs r3, #0 movs r2, #2 strb r2, [r0] ldr r0, [r5] ldr r1, _08015748 @ =0x000002FB adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] adds r0, #0x23 strb r3, [r0] ldr r0, [r5] adds r0, #0x22 strb r2, [r0] movs r2, #0xa0 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r6] strh r4, [r7] ldr r1, [r5] mov r4, ip adds r2, r1, r4 ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] ldr r4, _0801574C @ =0x00001378 adds r0, r1, r4 ldr r2, _08015750 @ =0x00001334 adds r1, r1, r2 movs r2, #0x44 bl memcpy ldr r0, [r5] ldr r3, _08015754 @ =0x00001330 adds r1, r0, r3 adds r4, r0, r4 str r4, [r1] ldr r4, _08015758 @ =0x00001328 adds r0, r0, r4 movs r1, #0x78 strh r1, [r0] _08015734: ldr r0, _0801575C @ =0x020314E0 ldr r0, [r0] ldr r1, _08015760 @ =0x00000732 adds r0, r0, r1 movs r1, #0xe strb r1, [r0] bl _08016082 .align 2, 0 _08015744: .4byte 0x000002FA _08015748: .4byte 0x000002FB _0801574C: .4byte 0x00001378 _08015750: .4byte 0x00001334 _08015754: .4byte 0x00001330 _08015758: .4byte 0x00001328 _0801575C: .4byte 0x020314E0 _08015760: .4byte 0x00000732 _08015764: ldr r0, _080157A8 @ =0x020314E0 ldr r2, [r0] ldr r3, _080157AC @ =0x0000132C adds r1, r2, r3 ldr r1, [r1] movs r4, #0x10 ldrsh r1, [r1, r4] adds r5, r0, #0 cmp r1, #0x32 bgt _0801580C ldr r1, _080157B0 @ =0x00000732 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _080157EA movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _080157DC ldr r3, _080157B4 @ =0x0000072E adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080157DC cmp r0, #0 bne _080157B8 movs r0, #0xfa lsls r0, r0, #3 b _080157C6 .align 2, 0 _080157A8: .4byte 0x020314E0 _080157AC: .4byte 0x0000132C _080157B0: .4byte 0x00000732 _080157B4: .4byte 0x0000072E _080157B8: cmp r0, #1 bne _080157C4 ldr r0, _080157C0 @ =0x00001388 b _080157C6 .align 2, 0 _080157C0: .4byte 0x00001388 _080157C4: ldr r0, _080157F8 @ =0x00002710 _080157C6: str r0, [r2, #0x3c] ldr r0, _080157FC @ =0x020314E0 ldr r1, [r0] ldr r4, _08015800 @ =0x0000072E adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0x99 bl m4aSongNumStart _080157DC: ldr r0, _080157FC @ =0x020314E0 ldr r1, [r0] ldr r2, _08015804 @ =0x000006BC adds r1, r1, r2 movs r2, #1 strb r2, [r1] adds r5, r0, #0 _080157EA: ldr r0, [r5] ldr r3, _08015808 @ =0x00000732 adds r0, r0, r3 movs r1, #2 strb r1, [r0] bl _08016082 .align 2, 0 _080157F8: .4byte 0x00002710 _080157FC: .4byte 0x020314E0 _08015800: .4byte 0x0000072E _08015804: .4byte 0x000006BC _08015808: .4byte 0x00000732 _0801580C: cmp r1, #0x64 bgt _080158A8 ldr r4, _0801584C @ =0x00000732 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801588A movs r3, #0xca lsls r3, r3, #1 adds r0, r2, r3 movs r2, #0xa strb r2, [r0] ldr r1, [r5] subs r4, #7 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08015878 cmp r0, #0 bne _08015850 movs r0, #0xfa lsls r0, r0, #3 str r0, [r1, #0x3c] adds r1, r1, r3 movs r0, #1 strb r0, [r1] b _0801586C .align 2, 0 _0801584C: .4byte 0x00000732 _08015850: cmp r0, #1 bne _08015864 ldr r0, _08015860 @ =0x00001388 str r0, [r1, #0x3c] adds r1, r1, r3 movs r0, #5 strb r0, [r1] b _0801586C .align 2, 0 _08015860: .4byte 0x00001388 _08015864: ldr r0, _08015898 @ =0x00002710 str r0, [r1, #0x3c] adds r0, r1, r3 strb r2, [r0] _0801586C: ldr r1, [r5] ldr r0, _0801589C @ =0x0000072B adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08015878: ldr r0, [r5] movs r1, #0xcb lsls r1, r1, #1 adds r2, r0, r1 movs r1, #0 strh r1, [r2] ldr r2, _080158A0 @ =0x0000072C adds r0, r0, r2 strh r1, [r0] _0801588A: ldr r0, [r5] ldr r3, _080158A4 @ =0x00000732 _0801588E: adds r0, r0, r3 movs r1, #1 strb r1, [r0] bl _08016082 .align 2, 0 _08015898: .4byte 0x00002710 _0801589C: .4byte 0x0000072B _080158A0: .4byte 0x0000072C _080158A4: .4byte 0x00000732 _080158A8: cmp r1, #0x7e bgt _08015918 movs r1, #0xe3 lsls r1, r1, #3 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080158C2 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] _080158C2: ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _0801590C @ =0x00000732 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r1, [r5] ldr r2, _08015910 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _080158E6 bl _08016082 _080158E6: subs r2, #2 adds r0, r1, r2 adds r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _080158FA b _08016082 _080158FA: strb r4, [r3] ldr r0, [r5] ldr r3, _08015914 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] ldr r1, [r5] b _08015C7E .align 2, 0 _0801590C: .4byte 0x00000732 _08015910: .4byte 0x0000071B _08015914: .4byte 0x0000071C _08015918: cmp r1, #0x94 bgt _08015988 ldr r1, _08015978 @ =0x00000719 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015930 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] _08015930: ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _0801597C @ =0x00000732 adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r1, [r5] ldr r2, _08015980 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08015952 b _08016082 _08015952: subs r2, #3 adds r0, r1, r2 adds r2, #2 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08015966 b _08016082 _08015966: strb r4, [r3] ldr r0, [r5] ldr r3, _08015984 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] ldr r1, [r5] b _08015C7E .align 2, 0 _08015978: .4byte 0x00000719 _0801597C: .4byte 0x00000732 _08015980: .4byte 0x0000071B _08015984: .4byte 0x0000071C _08015988: cmp r1, #0xac bgt _080159F8 ldr r1, _080159E8 @ =0x0000071A adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080159A0 movs r0, #0xfa lsls r0, r0, #2 str r0, [r2, #0x3c] _080159A0: ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _080159EC @ =0x00000732 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r1, [r5] ldr r2, _080159F0 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _080159C2 b _08016082 _080159C2: subs r2, #3 adds r0, r1, r2 adds r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _080159D6 b _08016082 _080159D6: strb r4, [r3] ldr r0, [r5] ldr r3, _080159F4 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] ldr r1, [r5] b _08015C7E .align 2, 0 _080159E8: .4byte 0x0000071A _080159EC: .4byte 0x00000732 _080159F0: .4byte 0x0000071B _080159F4: .4byte 0x0000071C _080159F8: ldr r4, _08015A28 @ =0x00000732 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _08015A78 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08015A6A ldr r1, _08015A2C @ =0x0000072F adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08015A6A cmp r0, #0 bne _08015A30 movs r0, #0xfa lsls r0, r0, #3 b _08015A3E .align 2, 0 _08015A28: .4byte 0x00000732 _08015A2C: .4byte 0x0000072F _08015A30: cmp r0, #1 bne _08015A3C ldr r0, _08015A38 @ =0x00001388 b _08015A3E .align 2, 0 _08015A38: .4byte 0x00001388 _08015A3C: ldr r0, _08015A84 @ =0x00002710 _08015A3E: str r0, [r2, #0x3c] ldr r5, _08015A88 @ =0x020314E0 ldr r1, [r5] ldr r4, _08015A8C @ =0x0000072F adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08015A90 @ =0x02032F20 ldr r1, _08015A94 @ =0x0869FC0C bl MPlayStart ldr r1, [r5] adds r4, r1, r4 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 ble _08015A6A ldr r2, _08015A98 @ =0x00000731 adds r1, r1, r2 movs r0, #1 strb r0, [r1] _08015A6A: ldr r0, _08015A88 @ =0x020314E0 ldr r1, [r0] ldr r3, _08015A9C @ =0x000006BC adds r1, r1, r3 movs r2, #2 strb r2, [r1] adds r5, r0, #0 _08015A78: ldr r0, [r5] ldr r4, _08015AA0 @ =0x00000732 adds r0, r0, r4 movs r1, #6 strb r1, [r0] b _08016082 .align 2, 0 _08015A84: .4byte 0x00002710 _08015A88: .4byte 0x020314E0 _08015A8C: .4byte 0x0000072F _08015A90: .4byte 0x02032F20 _08015A94: .4byte 0x0869FC0C _08015A98: .4byte 0x00000731 _08015A9C: .4byte 0x000006BC _08015AA0: .4byte 0x00000732 _08015AA4: ldr r0, _08015AC0 @ =0x020314E0 ldr r1, [r0] ldr r2, _08015AC4 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r3, #0x10 ldrsh r0, [r0, r3] cmp r0, #0x32 bgt _08015ACC ldr r4, _08015AC8 @ =0x00000732 adds r1, r1, r4 movs r0, #8 strb r0, [r1] b _08016082 .align 2, 0 _08015AC0: .4byte 0x020314E0 _08015AC4: .4byte 0x0000132C _08015AC8: .4byte 0x00000732 _08015ACC: cmp r0, #0x64 bgt _08015AE0 ldr r0, _08015ADC @ =0x00000732 adds r1, r1, r0 movs r0, #7 strb r0, [r1] b _08016082 .align 2, 0 _08015ADC: .4byte 0x00000732 _08015AE0: ldr r2, _08015AEC @ =0x00000732 adds r1, r1, r2 movs r0, #9 strb r0, [r1] b _08016082 .align 2, 0 _08015AEC: .4byte 0x00000732 _08015AF0: ldr r4, _08015B48 @ =0x020314E0 ldr r1, [r4] ldr r3, _08015B4C @ =0x0000132C adds r0, r1, r3 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x2e bgt _08015B60 ldr r3, _08015B50 @ =0x00000732 adds r0, r1, r3 movs r1, #0xa strb r1, [r0] ldr r1, [r4] movs r0, #0xe2 lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015B1C b _08016082 _08015B1C: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08015B54 @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015B36 b _08016082 _08015B36: ldr r2, _08015B58 @ =0x00000711 adds r0, r3, r2 adds r2, #1 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015B5C @ =0x00000713 b _08015C64 .align 2, 0 _08015B48: .4byte 0x020314E0 _08015B4C: .4byte 0x0000132C _08015B50: .4byte 0x00000732 _08015B54: .4byte 0x00000714 _08015B58: .4byte 0x00000711 _08015B5C: .4byte 0x00000713 _08015B60: cmp r0, #0x78 bgt _08015BC0 ldr r2, _08015BAC @ =0x00000732 adds r0, r1, r2 movs r1, #0xb strb r1, [r0] ldr r1, [r4] ldr r3, _08015BB0 @ =0x00000711 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015B7C b _08016082 _08015B7C: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08015BB4 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015B96 b _08016082 _08015B96: movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08015BB8 @ =0x00000712 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015BBC @ =0x00000713 b _08015C64 .align 2, 0 _08015BAC: .4byte 0x00000732 _08015BB0: .4byte 0x00000711 _08015BB4: .4byte 0x00000714 _08015BB8: .4byte 0x00000712 _08015BBC: .4byte 0x00000713 _08015BC0: cmp r0, #0xc1 bgt _08015C20 ldr r2, _08015C0C @ =0x00000732 adds r0, r1, r2 movs r1, #0xc strb r1, [r0] ldr r1, [r4] ldr r3, _08015C10 @ =0x00000712 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015BDC b _08016082 _08015BDC: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08015C14 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015BF6 b _08016082 _08015BF6: movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08015C18 @ =0x00000711 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015C1C @ =0x00000713 b _08015C64 .align 2, 0 _08015C0C: .4byte 0x00000732 _08015C10: .4byte 0x00000712 _08015C14: .4byte 0x00000714 _08015C18: .4byte 0x00000711 _08015C1C: .4byte 0x00000713 _08015C20: ldr r2, _08015C88 @ =0x00000732 adds r0, r1, r2 movs r1, #0xd strb r1, [r0] ldr r1, [r4] ldr r3, _08015C8C @ =0x00000713 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08015C38 b _08016082 _08015C38: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08015C90 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08015C52 b _08016082 _08015C52: movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08015C94 @ =0x00000711 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08015C98 @ =0x00000712 _08015C64: adds r1, r3, r2 ldrb r1, [r1] ands r0, r1 cmp r0, #0 bne _08015C70 b _08016082 _08015C70: strb r6, [r5] ldr r0, [r4] ldr r3, _08015C9C @ =0x00000715 adds r0, r0, r3 movs r1, #0x7e strb r1, [r0] ldr r1, [r4] _08015C7E: movs r0, #0xfa lsls r0, r0, #4 str r0, [r1, #0x3c] b _08016082 .align 2, 0 _08015C88: .4byte 0x00000732 _08015C8C: .4byte 0x00000713 _08015C90: .4byte 0x00000714 _08015C94: .4byte 0x00000711 _08015C98: .4byte 0x00000712 _08015C9C: .4byte 0x00000715 _08015CA0: ldr r1, _08015D18 @ =0x020314E0 ldr r2, [r1] ldr r4, _08015D1C @ =0x000005B2 adds r0, r2, r4 movs r3, #0 ldrsb r3, [r0, r3] adds r5, r1, #0 cmp r3, #0 beq _08015CB4 b _08015DE0 _08015CB4: ldr r1, _08015D20 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r4, #0x10 ldrsh r0, [r0, r4] cmp r0, #0xaa ble _08015D30 movs r1, #0xbc lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, #2 bls _08015CD0 b _08016082 _08015CD0: adds r0, r2, #0 adds r0, #0x23 strb r3, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r2, #0xb0 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08015D0E ldr r3, _08015D24 @ =0x000001AB adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08015D0E movs r0, #3 strb r0, [r1] ldr r0, [r5] ldr r4, _08015D28 @ =0x000002F2 adds r0, r0, r4 movs r1, #5 strh r1, [r0] _08015D0E: ldr r1, [r5] ldr r0, _08015D2C @ =0x0000C350 str r0, [r1, #0x3c] b _08016082 .align 2, 0 _08015D18: .4byte 0x020314E0 _08015D1C: .4byte 0x000005B2 _08015D20: .4byte 0x0000132C _08015D24: .4byte 0x000001AB _08015D28: .4byte 0x000002F2 _08015D2C: .4byte 0x0000C350 _08015D30: ldr r4, _08015D88 @ =0x000002FB adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bgt _08015D58 adds r0, r2, #0 adds r0, #0x23 strb r3, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r1, #0xf8 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] _08015D58: ldr r0, [r5] adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bne _08015D68 movs r0, #6 strb r0, [r1] _08015D68: ldr r1, [r5] ldr r2, _08015D8C @ =0x0000029F adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015D7A b _08016082 _08015D7A: cmp r0, #1 bne _08015D94 ldr r3, _08015D90 @ =0x00000286 adds r1, r1, r3 movs r0, #0x5a strh r0, [r1] b _08015DB6 .align 2, 0 _08015D88: .4byte 0x000002FB _08015D8C: .4byte 0x0000029F _08015D90: .4byte 0x00000286 _08015D94: movs r4, #0xbe lsls r4, r4, #2 adds r0, r1, r4 movs r1, #1 strb r1, [r0] ldr r0, [r5] ldr r2, _08015DD0 @ =0x0000071B adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] ldr r3, _08015DD4 @ =0x0000071C adds r0, r0, r3 movs r1, #0x3c strb r1, [r0] movs r0, #0xd8 bl m4aSongNumStart _08015DB6: ldr r2, _08015DD8 @ =0x020314E0 ldr r0, [r2] ldr r4, _08015DDC @ =0x0000029F adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r1, #0xa8 lsls r1, r1, #2 adds r0, r0, r1 subs r1, #0x48 strh r1, [r0] b _08016082 .align 2, 0 _08015DD0: .4byte 0x0000071B _08015DD4: .4byte 0x0000071C _08015DD8: .4byte 0x020314E0 _08015DDC: .4byte 0x0000029F _08015DE0: movs r3, #0xe2 lsls r3, r3, #1 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 beq _08015DEE b _08016082 _08015DEE: ldr r4, _08015E04 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r1, #0x10 ldrsh r0, [r0, r1] cmp r0, #0x78 bgt _08015E08 subs r3, #2 adds r1, r2, r3 movs r0, #1 b _08015E10 .align 2, 0 _08015E04: .4byte 0x0000132C _08015E08: movs r4, #0xe1 lsls r4, r4, #1 adds r1, r2, r4 movs r0, #2 _08015E10: strb r0, [r1] ldr r2, [r5] movs r0, #0xf1 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08015E40 adds r1, r0, #0 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 beq _08015E38 b _08016082 _08015E38: movs r4, #0xe2 lsls r4, r4, #1 adds r1, r2, r4 b _08015E46 _08015E40: movs r0, #0xe2 lsls r0, r0, #1 adds r1, r2, r0 _08015E46: movs r0, #0x78 strh r0, [r1] b _08016082 _08015E4C: ldr r6, _08015EA4 @ =0x020314E0 ldr r1, [r6] ldr r5, _08015EA8 @ =0x00000616 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 beq _08015E5C b _08016082 _08015E5C: ldr r2, _08015EAC @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] ldrh r2, [r0, #0x32] ldr r3, _08015EB0 @ =0x00000614 adds r0, r1, r3 strh r2, [r0] lsls r0, r2, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08015E78 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _08015E78: movs r0, #0xe3 lsls r0, r0, #1 adds r4, r1, r0 lsls r0, r2, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa8 ble _08015E9A movs r0, #0xa8 strh r0, [r4] _08015E9A: ldr r0, [r6] adds r0, r0, r5 movs r1, #0x14 strh r1, [r0] b _08016082 .align 2, 0 _08015EA4: .4byte 0x020314E0 _08015EA8: .4byte 0x00000616 _08015EAC: .4byte 0x0000132C _08015EB0: .4byte 0x00000614 _08015EB4: ldr r3, _08015F14 @ =0x020314E0 ldr r1, [r3] movs r4, #0xb6 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015ECA b _08016082 _08015ECA: ldrh r0, [r1, #0x26] cmp r0, #0 beq _08015ED2 b _08016082 _08015ED2: ldr r2, _08015F18 @ =0x000002DA adds r1, r1, r2 ldrb r0, [r1] movs r2, #0 ldrsb r2, [r1, r2] cmp r2, #0 beq _08015EE2 b _08016082 _08015EE2: adds r0, #1 strb r0, [r1] ldr r0, [r3] adds r0, r0, r4 strb r2, [r0] ldr r0, [r3] adds r0, #0x23 strb r2, [r0] ldr r0, [r3] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r4, #0xd0 lsls r4, r4, #8 adds r0, r4, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] ldr r1, [r3] ldr r0, _08015F1C @ =0x00001388 str r0, [r1, #0x3c] movs r0, #0xb7 bl m4aSongNumStart b _08016020 .align 2, 0 _08015F14: .4byte 0x020314E0 _08015F18: .4byte 0x000002DA _08015F1C: .4byte 0x00001388 _08015F20: ldr r4, _08015F80 @ =0x020314E0 ldr r1, [r4] movs r5, #0xb6 lsls r5, r5, #2 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08015F36 b _08016082 _08015F36: ldrh r2, [r1, #0x26] cmp r2, #0 beq _08015F3E b _08016082 _08015F3E: ldr r0, _08015F84 @ =0x000002DA adds r1, r1, r0 ldrb r0, [r1] movs r3, #0 ldrsb r3, [r1, r3] cmp r3, #1 beq _08015F4E b _08016082 _08015F4E: adds r0, #1 strb r0, [r1] ldr r0, [r4] adds r0, r0, r5 strb r2, [r0] ldr r0, [r4] adds r0, #0x23 strb r2, [r0] ldr r0, [r4] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r1, #0xcc lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] strh r3, [r7] movs r0, #0xb7 bl m4aSongNumStart ldr r1, [r4] ldr r0, _08015F88 @ =0x00001388 str r0, [r1, #0x3c] b _08016020 .align 2, 0 _08015F80: .4byte 0x020314E0 _08015F84: .4byte 0x000002DA _08015F88: .4byte 0x00001388 _08015F8C: ldr r0, _08015FE8 @ =0x020314E0 ldr r3, [r0] movs r2, #0x13 ldrsb r2, [r3, r2] adds r5, r0, #0 cmp r2, #2 ble _0801602C cmp r2, #5 beq _0801602C movs r2, #0xb8 lsls r2, r2, #2 adds r0, r3, r2 ldrh r2, [r0] cmp r2, #0 bne _08016082 ldr r4, _08015FEC @ =0x000002DA adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #2 bne _08015FF4 adds r0, r3, #0 adds r0, #0x23 strb r2, [r0] ldr r0, [r5] adds r0, #0x22 strb r1, [r0] movs r1, #0xc8 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] ldr r1, [r5] adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xb7 bl m4aSongNumStart ldr r1, [r5] ldr r0, _08015FF0 @ =0x00001388 str r0, [r1, #0x3c] b _08016020 .align 2, 0 _08015FE8: .4byte 0x020314E0 _08015FEC: .4byte 0x000002DA _08015FF0: .4byte 0x00001388 _08015FF4: cmp r1, #3 bne _08016082 adds r0, r3, #0 adds r0, #0x23 strb r2, [r0] ldr r0, [r5] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r2, #0xc8 lsls r2, r2, #8 adds r0, r2, #0 strh r0, [r6] movs r4, #1 strh r4, [r7] movs r0, #0xb7 bl m4aSongNumStart ldr r0, [r5] ldr r3, _08016028 @ =0x000002D9 adds r0, r0, r3 strb r4, [r0] _08016020: movs r0, #7 bl sub_11B0 b _08016082 .align 2, 0 _08016028: .4byte 0x000002D9 _0801602C: ldr r1, [r5] movs r4, #0xb6 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08016082 ldr r0, _08016088 @ =0x000002DA adds r2, r1, r0 ldrb r0, [r2] movs r3, #0 ldrsb r3, [r2, r3] cmp r3, #2 bne _08016082 adds r0, #1 movs r1, #0 strb r0, [r2] ldr r0, [r5] adds r0, r0, r4 strb r1, [r0] ldr r0, [r5] adds r0, #0x23 strb r1, [r0] ldr r0, [r5] adds r0, #0x22 strb r3, [r0] movs r1, #0xc8 lsls r1, r1, #8 adds r0, r1, #0 strh r0, [r6] movs r0, #1 strh r0, [r7] movs r0, #0xb7 bl m4aSongNumStart ldr r1, [r5] ldr r0, _0801608C @ =0x00001388 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 _08016082: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08016088: .4byte 0x000002DA _0801608C: .4byte 0x00001388 thumb_func_start sub_16090 sub_16090: @ 0x08016090 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _08016190 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08016194 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r1, sb movs r3, #0 ldrsh r4, [r1, r3] adds r0, r4, #0 cmp r4, #0 bge _080160C2 adds r0, r4, #7 _080160C2: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r7, _08016198 @ =0xFFFF0000 mov ip, r7 mov r2, ip ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _080160E0 adds r0, r3, #7 _080160E0: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _0801619C @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _0801610C adds r2, #0x3f _0801610C: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _080161A0 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_162B8 ldrb r0, [r4] movs r1, #0xf ands r1, r0 lsrs r6, r0, #4 cmp r1, #3 bgt _080161A4 cmp r1, #2 bge _0801626C cmp r1, #1 beq _080161A8 b _08016290 .align 2, 0 _08016190: .4byte 0x020314E0 _08016194: .4byte 0x0000132C _08016198: .4byte 0xFFFF0000 _0801619C: .4byte 0x0000FFFF _080161A0: .4byte 0x02031520 _080161A4: cmp r1, #4 bne _08016290 _080161A8: ldr r2, _08016208 @ =0x020314E0 ldr r0, [r2] subs r1, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r3, _0801620C @ =0xFFFFC010 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08016260 ldr r0, [r2] ldr r4, _08016210 @ =0x0000132C adds r3, r0, r4 ldr r2, [r3] movs r7, #0x10 ldrsh r1, [r2, r7] ldr r4, _08016214 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _080161F4 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08016260 _080161F4: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 ble _08016218 movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r3, r8 strh r0, [r3] b _08016260 .align 2, 0 _08016208: .4byte 0x020314E0 _0801620C: .4byte 0xFFFFC010 _08016210: .4byte 0x0000132C _08016214: .4byte 0x02031520 _08016218: cmp r0, #0 beq _08016228 movs r4, #0x82 lsls r4, r4, #7 adds r0, r4, #0 mov r7, r8 strh r0, [r7] b _08016260 _08016228: ldr r0, _08016248 @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _0801624C movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] movs r1, #0xf8 lsls r1, r1, #6 adds r0, r1, #0 mov r2, r8 strh r0, [r2] b _08016260 .align 2, 0 _08016248: .4byte 0x0200B0C0 _0801624C: ldr r0, _08016268 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] movs r3, #0x82 lsls r3, r3, #7 adds r0, r3, #0 mov r4, r8 strh r0, [r4] _08016260: movs r0, #1 mov r7, sp strh r0, [r7, #4] b _08016290 .align 2, 0 _08016268: .4byte 0x0000FFD8 _0801626C: ldr r2, _080162B0 @ =0x020314E0 ldr r0, [r2] subs r1, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _080162B4 @ =0x0000FFF0 ands r0, r1 mov r3, r8 strh r0, [r3] movs r0, #1 mov r4, sp strh r0, [r4, #4] _08016290: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_1642C mov r7, sp movs r1, #4 ldrsh r0, [r7, r1] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 .align 2, 0 _080162B0: .4byte 0x020314E0 _080162B4: .4byte 0x0000FFF0 thumb_func_start sub_162B8 sub_162B8: @ 0x080162B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc adds r4, r0, #0 str r1, [sp] str r2, [sp, #4] movs r7, #0 movs r6, #0 movs r0, #0 str r0, [sp, #8] ldr r0, _08016418 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801641C @ =0x000005B2 adds r1, r2, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 beq _080162E8 b _08016408 _080162E8: adds r0, r2, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov ip, r0 cmp r0, #0 beq _080162FA b _08016408 _080162FA: movs r5, #0xc2 lsls r5, r5, #1 adds r0, r2, r5 ldrh r3, [r4] ldrh r1, [r0] adds r1, r3, r1 adds r5, #2 adds r0, r2, r5 ldrh r2, [r4, #2] ldrh r0, [r0] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r5, r1, #0x10 lsrs r0, r5, #0x10 mov r8, r3 mov sb, r2 cmp r0, #0x3f bhi _08016342 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _08016342 ldr r2, _08016420 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r5, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08016424 @ =0x0000FFF0 ands r7, r0 movs r6, #0xf ands r6, r0 mov r0, ip str r0, [sp, #8] _08016342: cmp r6, #0 bne _080163DA mov r1, sl ldr r2, [r1] movs r3, #0xc4 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, r8 movs r5, #0xc5 lsls r5, r5, #1 adds r0, r2, r5 ldrh r0, [r0] add r0, sb lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _0801638C lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _0801638C ldr r2, _08016420 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08016424 @ =0x0000FFF0 ands r7, r0 movs r6, #0xf ands r6, r0 movs r0, #1 str r0, [sp, #8] _0801638C: cmp r6, #0 bne _080163DA mov r1, sl ldr r2, [r1] movs r3, #0xc6 lsls r3, r3, #1 adds r0, r2, r3 ldrh r1, [r0] add r1, r8 movs r5, #0xc7 lsls r5, r5, #1 adds r0, r2, r5 ldrh r0, [r0] add r0, sb lsls r0, r0, #0x10 lsrs r4, r0, #0x10 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _080163D6 lsls r1, r4, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080163D6 ldr r2, _08016420 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08016424 @ =0x0000FFF0 ands r7, r0 movs r6, #0xf ands r6, r0 movs r0, #2 str r0, [sp, #8] _080163D6: cmp r6, #0 beq _08016408 _080163DA: mov r1, sl ldr r0, [r1] movs r2, #0xb8 lsls r2, r2, #1 adds r0, r0, r2 ldr r3, [sp, #8] adds r0, r0, r3 movs r1, #6 strb r1, [r0] ldr r5, [sp] strh r7, [r5] ldr r0, [sp, #4] strb r6, [r0] mov r1, sl ldr r0, [r1] ldr r2, _08016428 @ =0x00000624 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08016408 movs r0, #2 strb r0, [r1] _08016408: add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08016418: .4byte 0x020314E0 _0801641C: .4byte 0x000005B2 _08016420: .4byte 0x08252B10 _08016424: .4byte 0x0000FFF0 _08016428: .4byte 0x00000624 thumb_func_start sub_1642C sub_1642C: @ 0x0801642C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r1, #0 adds r5, r2, #0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bls _08016446 bl _080171B8 _08016446: lsls r0, r0, #2 ldr r1, _08016450 @ =_08016454 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08016450: .4byte _08016454 _08016454: @ jump table .4byte _08016490 @ case 0 .4byte _080164D8 @ case 1 .4byte _08016530 @ case 2 .4byte _08016580 @ case 3 .4byte _08016794 @ case 4 .4byte _080167CC @ case 5 .4byte _0801686C @ case 6 .4byte _080168B4 @ case 7 .4byte _08016C28 @ case 8 .4byte _08016C80 @ case 9 .4byte _08016E28 @ case 10 .4byte _08016EA2 @ case 11 .4byte _08016F08 @ case 12 .4byte _08017094 @ case 13 .4byte _0801716C @ case 14 _08016490: ldr r0, _080164B4 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x26] cmp r0, #0 beq _0801649E bl _080171B8 _0801649E: ldr r2, _080164B8 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] movs r3, #0x28 ldrsh r0, [r0, r3] cmp r0, #0xc7 ble _080164BC adds r1, #0x25 movs r0, #1 b _080164C0 .align 2, 0 _080164B4: .4byte 0x020314E0 _080164B8: .4byte 0x0000132C _080164BC: adds r1, #0x25 movs r0, #3 _080164C0: strb r0, [r1] bl sub_32914 ldr r0, _080164D4 @ =0x020314E0 ldr r0, [r0] adds r0, #0x22 movs r1, #7 strb r1, [r0] b _080168A4 .align 2, 0 _080164D4: .4byte 0x020314E0 _080164D8: ldr r3, _080164F0 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _080164F8 ldr r4, _080164F4 @ =0x0000132C adds r0, r2, r4 b _0801656C .align 2, 0 _080164F0: .4byte 0x020314E0 _080164F4: .4byte 0x0000132C _080164F8: cmp r1, #2 bne _08016514 ldr r5, _08016510 @ =0x0000132C adds r0, r2, r5 ldr r0, [r0] strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 movs r1, #3 strb r1, [r0] bl _080171B8 .align 2, 0 _08016510: .4byte 0x0000132C _08016514: cmp r1, #3 beq _0801651C bl _080171B8 _0801651C: ldr r1, _0801652C @ =0x0000132C adds r0, r2, r1 ldr r1, [r0] movs r0, #1 strb r0, [r1, #1] bl _080171B8 .align 2, 0 _0801652C: .4byte 0x0000132C _08016530: ldr r3, _08016558 @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08016560 ldr r2, _0801655C @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r2, #0 movs r0, #3 strb r0, [r1, #1] ldr r0, [r3] adds r0, #0x24 strb r2, [r0] bl _080171B8 .align 2, 0 _08016558: .4byte 0x020314E0 _0801655C: .4byte 0x0000132C _08016560: cmp r0, #3 beq _08016568 bl _080171B8 _08016568: ldr r4, _0801657C @ =0x0000132C adds r0, r1, r4 _0801656C: ldr r0, [r0] movs r1, #2 strb r1, [r0, #1] ldr r0, [r3] adds r0, #0x24 strb r1, [r0] bl _080171B8 .align 2, 0 _0801657C: .4byte 0x0000132C _08016580: ldr r5, _080165D4 @ =0x020314E0 ldr r3, [r5] movs r1, #0xc0 lsls r1, r1, #3 adds r0, r3, r1 ldrh r4, [r0] cmp r4, #0 beq _08016594 bl _080171B8 _08016594: ldr r6, _080165D8 @ =0x0000132C adds r0, r3, r6 ldr r2, [r0] movs r0, #0x12 ldrsh r1, [r2, r0] ldr r0, _080165DC @ =0x00000103 cmp r1, r0 ble _080165A6 b _08016718 _080165A6: movs r1, #0x10 ldrsh r0, [r2, r1] cmp r0, #0x49 bgt _08016624 movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 ble _080165B8 b _0801676E _080165B8: ldr r2, _080165E0 @ =0x0000036B adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _080165C8 b _0801676E _080165C8: cmp r0, #1 bne _080165E8 ldr r4, _080165E4 @ =0x0000036D adds r1, r3, r4 movs r0, #6 b _080165EE .align 2, 0 _080165D4: .4byte 0x020314E0 _080165D8: .4byte 0x0000132C _080165DC: .4byte 0x00000103 _080165E0: .4byte 0x0000036B _080165E4: .4byte 0x0000036D _080165E8: ldr r5, _08016614 @ =0x0000036D adds r1, r3, r5 movs r0, #4 _080165EE: strb r0, [r1] ldr r5, _08016618 @ =0x020314E0 ldr r1, [r5] movs r0, #0xdc lsls r0, r0, #2 adds r2, r1, r0 movs r0, #0 strh r0, [r2] ldr r2, _0801661C @ =0x0000036B adds r1, r1, r2 movs r0, #1 strb r0, [r1] movs r0, #7 bl sub_11B0 ldr r1, [r5] ldr r3, _08016620 @ =0x0000132C adds r4, r1, r3 b _0801667E .align 2, 0 _08016614: .4byte 0x0000036D _08016618: .4byte 0x020314E0 _0801661C: .4byte 0x0000036B _08016620: .4byte 0x0000132C _08016624: cmp r0, #0x73 bgt _080166DC movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 ble _08016632 b _0801676E _08016632: ldr r5, _08016650 @ =0x0000036A adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08016642 b _0801676E _08016642: cmp r0, #1 bne _08016654 movs r0, #0xdb lsls r0, r0, #2 adds r1, r3, r0 movs r0, #6 b _0801665C .align 2, 0 _08016650: .4byte 0x0000036A _08016654: movs r2, #0xdb lsls r2, r2, #2 adds r1, r3, r2 movs r0, #4 _0801665C: strb r0, [r1] ldr r5, _080166BC @ =0x020314E0 ldr r1, [r5] ldr r3, _080166C0 @ =0x0000036E adds r2, r1, r3 movs r0, #0 strh r0, [r2] ldr r4, _080166C4 @ =0x0000036A adds r1, r1, r4 movs r0, #1 strb r0, [r1] movs r0, #7 bl sub_11B0 ldr r1, [r5] ldr r0, _080166C8 @ =0x0000132C adds r4, r1, r0 _0801667E: ldr r3, [r4] movs r2, #0x30 ldrsh r0, [r3, r2] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 strh r0, [r3, #0x30] ldr r3, [r4] movs r4, #0x32 ldrsh r0, [r3, r4] lsrs r2, r0, #0x1f adds r0, r0, r2 asrs r0, r0, #1 strh r0, [r3, #0x32] ldr r4, _080166CC @ =0x00001378 adds r0, r1, r4 ldr r2, _080166D0 @ =0x00001334 adds r1, r1, r2 movs r2, #0x44 bl memcpy ldr r0, [r5] ldr r3, _080166D4 @ =0x00001330 adds r1, r0, r3 adds r4, r0, r4 str r4, [r1] ldr r4, _080166D8 @ =0x00001328 adds r0, r0, r4 movs r1, #0x19 strh r1, [r0] b _0801676E .align 2, 0 _080166BC: .4byte 0x020314E0 _080166C0: .4byte 0x0000036E _080166C4: .4byte 0x0000036A _080166C8: .4byte 0x0000132C _080166CC: .4byte 0x00001378 _080166D0: .4byte 0x00001334 _080166D4: .4byte 0x00001330 _080166D8: .4byte 0x00001328 _080166DC: movs r0, #0xc3 lsls r0, r0, #2 adds r1, r3, r0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r2, _0801670C @ =0x00000306 adds r1, r3, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] ldr r3, _08016710 @ =0x0000070E adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x62 bgt _08016704 adds r0, r2, #1 strb r0, [r1] _08016704: ldr r1, [r5] ldr r0, _08016714 @ =0x00001388 str r0, [r1, #0x3c] b _0801676E .align 2, 0 _0801670C: .4byte 0x00000306 _08016710: .4byte 0x0000070E _08016714: .4byte 0x00001388 _08016718: movs r1, #0x10 ldrsh r0, [r2, r1] cmp r0, #0x6d bgt _0801673E movs r2, #0xca lsls r2, r2, #2 adds r1, r3, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r6 ldr r2, [r0] movs r3, #0x32 ldrsh r0, [r2, r3] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r2, #0x32] b _0801676E _0801673E: movs r5, #0xde lsls r5, r5, #2 adds r1, r3, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08016752 movs r0, #1 strb r0, [r1] b _08016754 _08016752: strb r4, [r1] _08016754: ldr r0, _08016788 @ =0x020314E0 ldr r3, [r0] ldr r1, _0801678C @ =0x0000132C adds r0, r3, r1 ldr r2, [r0] movs r4, #0x32 ldrsh r0, [r2, r4] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r2, #0x32] ldr r0, _08016790 @ =0x00000BB8 str r0, [r3, #0x3c] _0801676E: ldr r0, _08016788 @ =0x020314E0 ldr r0, [r0] movs r5, #0xc0 lsls r5, r5, #3 adds r0, r0, r5 movs r1, #0x2d strh r1, [r0] movs r0, #0x76 bl m4aSongNumStart bl _080171B8 .align 2, 0 _08016788: .4byte 0x020314E0 _0801678C: .4byte 0x0000132C _08016790: .4byte 0x00000BB8 _08016794: ldr r1, _080167BC @ =0x020314E0 ldr r0, [r1] ldr r2, _080167C0 @ =0x00000165 adds r0, r0, r2 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r1] adds r0, #0x20 strb r2, [r0] ldr r0, [r1] ldr r4, _080167C4 @ =0x00000732 adds r0, r0, r4 strb r3, [r0] ldr r0, [r1] ldr r5, _080167C8 @ =0x00000342 adds r0, r0, r5 strb r3, [r0] bl _080171B8 .align 2, 0 _080167BC: .4byte 0x020314E0 _080167C0: .4byte 0x00000165 _080167C4: .4byte 0x00000732 _080167C8: .4byte 0x00000342 _080167CC: ldr r0, _08016850 @ =0x020314E0 mov sb, r0 ldr r1, [r0] ldr r2, _08016854 @ =0x0000132C mov r8, r2 adds r0, r1, r2 ldr r2, [r0] movs r3, #0x10 ldrsh r0, [r2, r3] cmp r0, #0x77 bgt _0801685C movs r4, #0x32 ldrsh r0, [r2, r4] cmp r0, #0 bgt _080167EE bl _080171B8 _080167EE: movs r6, #0xda lsls r6, r6, #8 movs r5, #0x30 ldrsh r0, [r2, r5] adds r1, r0, #0 muls r1, r0, r1 movs r3, #0x32 ldrsh r0, [r2, r3] adds r4, r0, #0 muls r4, r0, r4 adds r0, r4, #0 adds r7, r1, r0 lsls r0, r7, #2 bl Sqrt lsls r0, r0, #0x10 lsrs r7, r0, #0x11 adds r0, r6, #0 bl sub_C74 mov r5, sb ldr r1, [r5] add r1, r8 ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 ldr r5, _08016858 @ =0x00004E20 adds r1, r5, #0 bl __divsi3 strh r0, [r4, #0x30] adds r0, r6, #0 bl sub_C24 mov r2, sb ldr r1, [r2] add r1, r8 ldr r4, [r1] rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 adds r1, r5, #0 bl __divsi3 strh r0, [r4, #0x32] bl _080171B8 .align 2, 0 _08016850: .4byte 0x020314E0 _08016854: .4byte 0x0000132C _08016858: .4byte 0x00004E20 _0801685C: ldr r3, _08016868 @ =0x00000342 adds r1, r1, r3 movs r0, #1 strb r0, [r1] bl _080171B8 .align 2, 0 _08016868: .4byte 0x00000342 _0801686C: ldr r4, _080168AC @ =0x020314E0 ldr r3, [r4] ldr r1, _080168B0 @ =0x00000366 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08016882 bl _080171B8 _08016882: movs r2, #0xda lsls r2, r2, #2 adds r1, r3, r2 movs r2, #0 movs r0, #0x11 strh r0, [r1] adds r0, r3, #0 adds r0, #0x23 strb r2, [r0] ldr r0, [r4] adds r0, #0x22 movs r1, #2 strb r1, [r0] movs r3, #0xd8 lsls r3, r3, #8 adds r0, r3, #0 strh r0, [r5] _080168A4: movs r0, #1 strh r0, [r6] bl _080171B8 .align 2, 0 _080168AC: .4byte 0x020314E0 _080168B0: .4byte 0x00000366 _080168B4: ldr r1, _0801690C @ =0x020314E0 ldr r3, [r1] ldr r4, _08016910 @ =0x0000132C adds r0, r3, r4 ldr r0, [r0] ldrh r4, [r0, #0x10] adds r0, r3, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #0 ble _0801697C ldr r5, _08016914 @ =0x00000732 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801695A movs r2, #0xca lsls r2, r2, #1 adds r0, r3, r2 movs r3, #0xa strb r3, [r0] ldr r1, [r1] ldr r4, _08016918 @ =0x0000072B adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08016946 cmp r0, #0 bne _0801691C movs r0, #0xfa lsls r0, r0, #3 str r0, [r1, #0x3c] adds r1, r1, r2 movs r0, #1 strb r0, [r1] b _08016938 .align 2, 0 _0801690C: .4byte 0x020314E0 _08016910: .4byte 0x0000132C _08016914: .4byte 0x00000732 _08016918: .4byte 0x0000072B _0801691C: cmp r0, #1 bne _08016930 ldr r0, _0801692C @ =0x00001388 str r0, [r1, #0x3c] adds r1, r1, r2 movs r0, #5 strb r0, [r1] b _08016938 .align 2, 0 _0801692C: .4byte 0x00001388 _08016930: ldr r0, _0801696C @ =0x00002710 str r0, [r1, #0x3c] adds r0, r1, r2 strb r3, [r0] _08016938: mov r5, sb ldr r1, [r5] ldr r0, _08016970 @ =0x0000072B adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08016946: mov r1, sb ldr r0, [r1] movs r3, #0xcb lsls r3, r3, #1 adds r2, r0, r3 movs r1, #0 strh r1, [r2] ldr r4, _08016974 @ =0x0000072C adds r0, r0, r4 strh r1, [r0] _0801695A: mov r5, sb ldr r0, [r5] ldr r1, _08016978 @ =0x00000732 adds r0, r0, r1 movs r1, #1 strb r1, [r0] bl _080171B8 .align 2, 0 _0801696C: .4byte 0x00002710 _08016970: .4byte 0x0000072B _08016974: .4byte 0x0000072C _08016978: .4byte 0x00000732 _0801697C: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x48 bgt _08016A14 ldr r2, _080169B4 @ =0x00000732 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _080169EE movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 bgt _080169E0 ldr r4, _080169B8 @ =0x0000072E adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080169E0 cmp r0, #0 bne _080169BC movs r0, #0xfa lsls r0, r0, #3 b _080169CA .align 2, 0 _080169B4: .4byte 0x00000732 _080169B8: .4byte 0x0000072E _080169BC: cmp r0, #1 bne _080169C8 ldr r0, _080169C4 @ =0x00001388 b _080169CA .align 2, 0 _080169C4: .4byte 0x00001388 _080169C8: ldr r0, _08016A00 @ =0x00002710 _080169CA: str r0, [r3, #0x3c] ldr r0, _08016A04 @ =0x020314E0 ldr r1, [r0] ldr r5, _08016A08 @ =0x0000072E adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0x99 bl m4aSongNumStart _080169E0: ldr r0, _08016A04 @ =0x020314E0 ldr r1, [r0] ldr r2, _08016A0C @ =0x000006BC adds r1, r1, r2 movs r2, #1 strb r2, [r1] mov sb, r0 _080169EE: mov r3, sb ldr r0, [r3] ldr r4, _08016A10 @ =0x00000732 adds r0, r0, r4 movs r1, #2 strb r1, [r0] bl _080171B8 .align 2, 0 _08016A00: .4byte 0x00002710 _08016A04: .4byte 0x020314E0 _08016A08: .4byte 0x0000072E _08016A0C: .4byte 0x000006BC _08016A10: .4byte 0x00000732 _08016A14: cmp r0, #0x62 bgt _08016A88 movs r1, #0xe3 lsls r1, r1, #3 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08016A2E movs r0, #0xfa lsls r0, r0, #2 str r0, [r3, #0x3c] _08016A2E: mov r5, sb ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _08016A78 @ =0x00000732 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r1, [r5] ldr r2, _08016A7C @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08016A52 b _080171B8 _08016A52: ldr r5, _08016A80 @ =0x00000719 adds r0, r1, r5 subs r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08016A66 b _080171B8 _08016A66: strb r4, [r3] mov r3, sb ldr r0, [r3] ldr r4, _08016A84 @ =0x0000071C adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r1, [r3] b _08016E0A .align 2, 0 _08016A78: .4byte 0x00000732 _08016A7C: .4byte 0x0000071B _08016A80: .4byte 0x00000719 _08016A84: .4byte 0x0000071C _08016A88: cmp r0, #0x76 bgt _08016AFC ldr r1, _08016AEC @ =0x00000719 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08016AA0 movs r0, #0xfa lsls r0, r0, #2 str r0, [r3, #0x3c] _08016AA0: mov r5, sb ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _08016AF0 @ =0x00000732 adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r1, [r5] ldr r2, _08016AF4 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08016AC4 b _080171B8 _08016AC4: movs r5, #0xe3 lsls r5, r5, #3 adds r0, r1, r5 subs r2, #1 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08016ADA b _080171B8 _08016ADA: strb r4, [r3] mov r3, sb ldr r0, [r3] ldr r4, _08016AF8 @ =0x0000071C adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r1, [r3] b _08016E0A .align 2, 0 _08016AEC: .4byte 0x00000719 _08016AF0: .4byte 0x00000732 _08016AF4: .4byte 0x0000071B _08016AF8: .4byte 0x0000071C _08016AFC: cmp r0, #0x92 bgt _08016B70 ldr r1, _08016B60 @ =0x0000071A adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08016B14 movs r0, #0xfa lsls r0, r0, #2 str r0, [r3, #0x3c] _08016B14: mov r5, sb ldr r0, [r5] adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r5] ldr r1, _08016B64 @ =0x00000732 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r1, [r5] ldr r2, _08016B68 @ =0x0000071B adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08016B38 b _080171B8 _08016B38: movs r5, #0xe3 lsls r5, r5, #3 adds r0, r1, r5 subs r2, #2 adds r1, r1, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 bne _08016B4E b _080171B8 _08016B4E: strb r4, [r3] mov r3, sb ldr r0, [r3] ldr r4, _08016B6C @ =0x0000071C adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r1, [r3] b _08016E0A .align 2, 0 _08016B60: .4byte 0x0000071A _08016B64: .4byte 0x00000732 _08016B68: .4byte 0x0000071B _08016B6C: .4byte 0x0000071C _08016B70: ldr r5, _08016BA0 @ =0x00000732 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _08016C00 movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 bgt _08016BF4 ldr r1, _08016BA4 @ =0x0000072F adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08016BF4 cmp r0, #0 bne _08016BA8 movs r0, #0xfa lsls r0, r0, #3 b _08016BB6 .align 2, 0 _08016BA0: .4byte 0x00000732 _08016BA4: .4byte 0x0000072F _08016BA8: cmp r0, #1 bne _08016BB4 ldr r0, _08016BB0 @ =0x00001388 b _08016BB6 .align 2, 0 _08016BB0: .4byte 0x00001388 _08016BB4: ldr r0, _08016C10 @ =0x00002710 _08016BB6: str r0, [r3, #0x3c] ldr r4, _08016C14 @ =0x020314E0 ldr r1, [r4] ldr r5, _08016C18 @ =0x0000072F adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r4] movs r2, #0xe5 lsls r2, r2, #1 adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xd bne _08016BDC movs r0, #0x99 bl m4aSongNumStart _08016BDC: ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r4 cmp r0, #1 ble _08016BF4 ldr r4, _08016C1C @ =0x00000731 adds r1, r1, r4 movs r0, #1 strb r0, [r1] _08016BF4: mov r5, sb ldr r0, [r5] ldr r1, _08016C20 @ =0x000006BC adds r0, r0, r1 movs r1, #2 strb r1, [r0] _08016C00: mov r2, sb ldr r0, [r2] ldr r3, _08016C24 @ =0x00000732 adds r0, r0, r3 movs r1, #6 strb r1, [r0] b _080171B8 .align 2, 0 _08016C10: .4byte 0x00002710 _08016C14: .4byte 0x020314E0 _08016C18: .4byte 0x0000072F _08016C1C: .4byte 0x00000731 _08016C20: .4byte 0x000006BC _08016C24: .4byte 0x00000732 _08016C28: ldr r0, _08016C4C @ =0x020314E0 ldr r1, [r0] ldr r4, _08016C50 @ =0x0000132C adds r0, r1, r4 ldr r0, [r0] ldrh r4, [r0, #0x10] adds r0, r1, #0 adds r0, #0x24 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08016C58 ldr r5, _08016C54 @ =0x00000732 adds r1, r1, r5 movs r0, #7 strb r0, [r1] b _080171B8 .align 2, 0 _08016C4C: .4byte 0x020314E0 _08016C50: .4byte 0x0000132C _08016C54: .4byte 0x00000732 _08016C58: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x32 bgt _08016C70 ldr r0, _08016C6C @ =0x00000732 adds r1, r1, r0 movs r0, #8 strb r0, [r1] b _080171B8 .align 2, 0 _08016C6C: .4byte 0x00000732 _08016C70: ldr r2, _08016C7C @ =0x00000732 adds r1, r1, r2 movs r0, #9 strb r0, [r1] b _080171B8 .align 2, 0 _08016C7C: .4byte 0x00000732 _08016C80: ldr r4, _08016CD8 @ =0x020314E0 ldr r1, [r4] ldr r3, _08016CDC @ =0x0000132C adds r0, r1, r3 ldr r0, [r0] movs r5, #0x10 ldrsh r0, [r0, r5] cmp r0, #0x2e bgt _08016CF4 ldr r2, _08016CE0 @ =0x00000732 adds r0, r1, r2 movs r1, #0xa strb r1, [r0] ldr r1, [r4] movs r3, #0xe2 lsls r3, r3, #3 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016CAC b _080171B8 _08016CAC: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r0, _08016CE4 @ =0x00000714 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016CC6 b _080171B8 _08016CC6: ldr r1, _08016CE8 @ =0x00000711 adds r0, r3, r1 ldr r2, _08016CEC @ =0x00000712 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016CF0 @ =0x00000713 b _08016DF0 .align 2, 0 _08016CD8: .4byte 0x020314E0 _08016CDC: .4byte 0x0000132C _08016CE0: .4byte 0x00000732 _08016CE4: .4byte 0x00000714 _08016CE8: .4byte 0x00000711 _08016CEC: .4byte 0x00000712 _08016CF0: .4byte 0x00000713 _08016CF4: cmp r0, #0x78 bgt _08016D50 ldr r5, _08016D40 @ =0x00000732 adds r0, r1, r5 movs r1, #0xb strb r1, [r0] ldr r1, [r4] ldr r0, _08016D44 @ =0x00000711 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016D10 b _080171B8 _08016D10: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08016D48 @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016D2A b _080171B8 _08016D2A: movs r2, #0xe2 lsls r2, r2, #3 adds r0, r3, r2 adds r2, #2 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016D4C @ =0x00000713 b _08016DF0 .align 2, 0 _08016D40: .4byte 0x00000732 _08016D44: .4byte 0x00000711 _08016D48: .4byte 0x00000714 _08016D4C: .4byte 0x00000713 _08016D50: cmp r0, #0xc1 bgt _08016DAC ldr r5, _08016D9C @ =0x00000732 adds r0, r1, r5 movs r1, #0xc strb r1, [r0] ldr r1, [r4] ldr r0, _08016DA0 @ =0x00000712 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016D6C b _080171B8 _08016D6C: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08016DA4 @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016D86 b _080171B8 _08016D86: movs r2, #0xe2 lsls r2, r2, #3 adds r0, r3, r2 adds r2, #1 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016DA8 @ =0x00000713 b _08016DF0 .align 2, 0 _08016D9C: .4byte 0x00000732 _08016DA0: .4byte 0x00000712 _08016DA4: .4byte 0x00000714 _08016DA8: .4byte 0x00000713 _08016DAC: ldr r5, _08016E14 @ =0x00000732 adds r0, r1, r5 movs r1, #0xd strb r1, [r0] ldr r1, [r4] ldr r0, _08016E18 @ =0x00000713 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08016DC4 b _080171B8 _08016DC4: movs r0, #0xfa lsls r0, r0, #2 str r0, [r1, #0x3c] movs r6, #1 strb r6, [r2] ldr r3, [r4] ldr r1, _08016E1C @ =0x00000714 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08016DDE b _080171B8 _08016DDE: movs r2, #0xe2 lsls r2, r2, #3 adds r0, r3, r2 adds r2, #1 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r2, _08016E20 @ =0x00000712 _08016DF0: adds r1, r3, r2 ldrb r1, [r1] ands r0, r1 cmp r0, #0 bne _08016DFC b _080171B8 _08016DFC: strb r6, [r5] ldr r0, [r4] ldr r3, _08016E24 @ =0x00000715 adds r0, r0, r3 movs r1, #0x7e strb r1, [r0] ldr r1, [r4] _08016E0A: movs r0, #0xfa lsls r0, r0, #4 str r0, [r1, #0x3c] b _080171B8 .align 2, 0 _08016E14: .4byte 0x00000732 _08016E18: .4byte 0x00000713 _08016E1C: .4byte 0x00000714 _08016E20: .4byte 0x00000712 _08016E24: .4byte 0x00000715 _08016E28: ldr r0, _08016E54 @ =0x020314E0 ldr r3, [r0] movs r4, #0xe2 lsls r4, r4, #1 adds r1, r3, r4 ldrh r1, [r1] mov sb, r0 cmp r1, #0 beq _08016E3C b _080171B8 _08016E3C: ldr r5, _08016E58 @ =0x0000132C adds r0, r3, r5 ldr r0, [r0] movs r1, #0x10 ldrsh r0, [r0, r1] cmp r0, #0x78 bgt _08016E5C movs r2, #0xe1 lsls r2, r2, #1 adds r1, r3, r2 movs r0, #1 b _08016E64 .align 2, 0 _08016E54: .4byte 0x020314E0 _08016E58: .4byte 0x0000132C _08016E5C: movs r4, #0xe1 lsls r4, r4, #1 adds r1, r3, r4 movs r0, #2 _08016E64: strb r0, [r1] mov r5, sb ldr r2, [r5] movs r0, #0xf1 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08016E96 adds r1, r0, #0 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 beq _08016E8E b _080171B8 _08016E8E: movs r4, #0xe2 lsls r4, r4, #1 adds r1, r2, r4 b _08016E9C _08016E96: movs r5, #0xe2 lsls r5, r5, #1 adds r1, r2, r5 _08016E9C: movs r0, #0x78 strh r0, [r1] b _080171B8 _08016EA2: ldr r6, _08016EF8 @ =0x020314E0 ldr r1, [r6] ldr r5, _08016EFC @ =0x00000616 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 beq _08016EB2 b _080171B8 _08016EB2: ldr r2, _08016F00 @ =0x0000132C adds r0, r1, r2 ldr r0, [r0] ldrh r2, [r0, #0x32] ldr r3, _08016F04 @ =0x00000614 adds r0, r1, r3 strh r2, [r0] lsls r0, r2, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08016ECE rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 _08016ECE: movs r0, #0xe3 lsls r0, r0, #1 adds r4, r1, r0 lsls r0, r2, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa8 ble _08016EF0 movs r0, #0xa8 strh r0, [r4] _08016EF0: ldr r0, [r6] adds r0, r0, r5 movs r1, #0x14 b _080171B6 .align 2, 0 _08016EF8: .4byte 0x020314E0 _08016EFC: .4byte 0x00000616 _08016F00: .4byte 0x0000132C _08016F04: .4byte 0x00000614 _08016F08: ldr r5, _08017058 @ =0x020314E0 ldr r0, [r5] ldr r2, _0801705C @ =0x00000732 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe bne _08016F1A b _080171B8 _08016F1A: movs r0, #0xe strb r0, [r1] ldr r3, _08017060 @ =0x086ACE70 ldr r1, [r5] ldr r2, _08017064 @ =0x0000034A adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r3 ldrh r3, [r0] mov r8, r3 movs r4, #0 ldrsh r0, [r0, r4] ldr r3, _08017068 @ =0x0000034B adds r1, r1, r3 adds r1, r1, r0 movs r0, #0xa strb r0, [r1] ldr r1, [r5] adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r5] adds r2, r1, r2 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #3 bne _08016F88 ldr r4, _0801706C @ =0x00001378 adds r0, r1, r4 ldr r2, _08017070 @ =0x00001334 adds r1, r1, r2 movs r2, #0x44 bl memcpy ldr r1, [r5] ldr r3, _08017074 @ =0x00001330 adds r0, r1, r3 adds r4, r1, r4 str r4, [r0] ldr r4, _08017078 @ =0x00000342 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08016F88 movs r5, #0xd1 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #1 strb r0, [r1] _08016F88: ldr r0, _08017058 @ =0x020314E0 ldr r3, [r0] ldr r6, _08017064 @ =0x0000034A adds r1, r3, r6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sb, r0 cmp r1, #0xb bne _08016FA6 ldr r0, _08017074 @ =0x00001330 adds r1, r3, r0 ldr r2, _08017070 @ =0x00001334 adds r0, r3, r2 str r0, [r1] _08016FA6: mov r3, sb ldr r5, [r3] adds r0, r5, r6 movs r1, #0 ldrsb r1, [r0, r1] subs r0, r1, #1 adds r3, r0, #0 cmp r0, #0 bge _08016FBA adds r3, r1, #2 _08016FBA: asrs r3, r3, #2 lsls r3, r3, #2 ldr r2, _0801707C @ =0x0200B0C0 subs r3, r0, r3 adds r1, r3, #0 adds r1, #0x2f movs r0, #0xb8 muls r0, r1, r0 adds r0, r0, r2 movs r4, #0xbe lsls r4, r4, #2 adds r0, r0, r4 movs r7, #0 movs r4, #0 movs r1, #1 strh r1, [r0] ldr r1, _08017080 @ =0x00000355 adds r0, r5, r1 adds r0, r0, r3 strb r7, [r0] mov r5, sb ldr r2, [r5] lsls r1, r3, #1 ldr r5, _08017084 @ =0x0000035E adds r0, r2, r5 adds r0, r0, r1 strh r4, [r0] ldr r0, _08017088 @ =0x00000359 adds r1, r2, r0 adds r1, r1, r3 adds r2, r2, r6 ldrb r0, [r2] subs r0, #1 strb r0, [r1] mov r1, sb ldr r0, [r1] adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xc ble _0801700E strb r7, [r1] _0801700E: mov r2, r8 lsls r0, r2, #0x10 adds r3, r0, #0 cmp r3, #0 bne _08017030 mov r4, sb ldr r0, [r4] ldr r5, _0801708C @ =0x0000132C adds r0, r0, r5 ldr r2, [r0] movs r1, #0x32 ldrsh r0, [r2, r1] movs r1, #0x78 rsbs r1, r1, #0 cmp r0, r1 ble _08017030 strh r1, [r2, #0x32] _08017030: asrs r0, r3, #0x10 cmp r0, #2 beq _08017038 b _080171B8 _08017038: mov r2, sb ldr r0, [r2] ldr r3, _0801708C @ =0x0000132C adds r0, r0, r3 ldr r2, [r0] movs r4, #0x32 ldrsh r1, [r2, r4] movs r0, #0xb4 rsbs r0, r0, #0 cmp r1, r0 bgt _08017050 b _080171B8 _08017050: ldr r0, _08017090 @ =0x0000FF4C strh r0, [r2, #0x32] b _080171B8 .align 2, 0 _08017058: .4byte 0x020314E0 _0801705C: .4byte 0x00000732 _08017060: .4byte 0x086ACE70 _08017064: .4byte 0x0000034A _08017068: .4byte 0x0000034B _0801706C: .4byte 0x00001378 _08017070: .4byte 0x00001334 _08017074: .4byte 0x00001330 _08017078: .4byte 0x00000342 _0801707C: .4byte 0x0200B0C0 _08017080: .4byte 0x00000355 _08017084: .4byte 0x0000035E _08017088: .4byte 0x00000359 _0801708C: .4byte 0x0000132C _08017090: .4byte 0x0000FF4C _08017094: ldr r5, _08017144 @ =0x020314E0 ldr r0, [r5] ldr r2, _08017148 @ =0x00000732 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf bne _080170A6 b _080171B8 _080170A6: movs r0, #0xf strb r0, [r1] ldr r2, _0801714C @ =0x086ACE70 ldr r1, [r5] ldr r6, _08017150 @ =0x0000034A adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r2 movs r3, #0 ldrsh r7, [r0, r3] ldr r4, _08017154 @ =0x0000034B adds r1, r1, r4 adds r1, r1, r7 movs r0, #0xa strb r0, [r1] ldr r1, [r5] adds r1, r1, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r4, [r5] adds r0, r4, r6 movs r1, #0 ldrsb r1, [r0, r1] subs r0, r1, #1 adds r3, r0, #0 cmp r0, #0 bge _080170E6 adds r3, r1, #2 _080170E6: asrs r3, r3, #2 lsls r3, r3, #2 ldr r2, _08017158 @ =0x0200B0C0 subs r3, r0, r3 adds r1, r3, #0 adds r1, #0x2f movs r0, #0xb8 muls r0, r1, r0 adds r0, r0, r2 movs r1, #0xbe lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 movs r1, #1 strh r1, [r0] ldr r1, _0801715C @ =0x00000355 adds r0, r4, r1 adds r0, r0, r3 strb r2, [r0] ldr r2, [r5] lsls r1, r3, #1 ldr r4, _08017160 @ =0x0000035E adds r0, r2, r4 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r0, _08017164 @ =0x00000359 adds r1, r2, r0 adds r1, r1, r3 adds r2, r2, r6 ldrb r0, [r2] subs r0, #1 strb r0, [r1] cmp r7, #1 bne _080171B8 ldr r0, [r5] ldr r1, _08017168 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] movs r2, #0x32 ldrsh r0, [r1, r2] movs r3, #0x96 rsbs r3, r3, #0 cmp r0, r3 ble _080171B8 strh r3, [r1, #0x32] b _080171B8 .align 2, 0 _08017144: .4byte 0x020314E0 _08017148: .4byte 0x00000732 _0801714C: .4byte 0x086ACE70 _08017150: .4byte 0x0000034A _08017154: .4byte 0x0000034B _08017158: .4byte 0x0200B0C0 _0801715C: .4byte 0x00000355 _08017160: .4byte 0x0000035E _08017164: .4byte 0x00000359 _08017168: .4byte 0x0000132C _0801716C: ldr r3, _08017190 @ =0x020314E0 ldr r1, [r3] ldr r4, _08017194 @ =0x0000132C adds r0, r1, r4 ldr r0, [r0] movs r5, #0x12 ldrsh r0, [r0, r5] cmp r0, #0x4f bgt _0801719C ldr r0, _08017198 @ =0x00000306 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bne _080171B8 movs r0, #2 strb r0, [r1] b _080171B8 .align 2, 0 _08017190: .4byte 0x020314E0 _08017194: .4byte 0x0000132C _08017198: .4byte 0x00000306 _0801719C: ldr r4, _080171C4 @ =0x00000306 adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _080171B8 movs r1, #0 movs r0, #3 strb r0, [r2] ldr r0, [r3] movs r5, #0xc3 lsls r5, r5, #2 adds r0, r0, r5 _080171B6: strh r1, [r0] _080171B8: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080171C4: .4byte 0x00000306 thumb_func_start sub_171C8 sub_171C8: @ 0x080171C8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _080172CC @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _080172D0 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r0, sb movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _080171FA adds r0, r4, #7 _080171FA: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _080172D4 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08017216 adds r0, r3, #7 _08017216: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _080172D8 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08017242 adds r2, #0x3f _08017242: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _080172DC @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_173FC ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _080172C0 b _080173DA _080172C0: lsls r0, r0, #2 ldr r1, _080172E0 @ =_080172E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080172CC: .4byte 0x020314E0 _080172D0: .4byte 0x0000132C _080172D4: .4byte 0xFFFF0000 _080172D8: .4byte 0x0000FFFF _080172DC: .4byte 0x02031520 _080172E0: .4byte _080172E4 _080172E4: @ jump table .4byte _080172FC @ case 0 .4byte _080173A8 @ case 1 .4byte _080173A8 @ case 2 .4byte _080172FC @ case 3 .4byte _080173D8 @ case 4 .4byte _080172FC @ case 5 _080172FC: ldr r2, _08017374 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _08017378 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _0801739C ldr r0, [r2] ldr r7, _0801737C @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08017380 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08017348 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _0801739C _08017348: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _08017366 cmp r0, #0 bne _08017392 ldr r0, _08017384 @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08017388 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _08017366: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _0801739C .align 2, 0 _08017374: .4byte 0x020314E0 _08017378: .4byte 0xFFFFC010 _0801737C: .4byte 0x0000132C _08017380: .4byte 0x02031520 _08017384: .4byte 0x0200B0C0 _08017388: ldr r0, _080173A4 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08017392: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _0801739C: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _080173DA .align 2, 0 _080173A4: .4byte 0x0000FFD8 _080173A8: ldr r2, _080173D0 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _080173D4 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _080173DA .align 2, 0 _080173D0: .4byte 0x020314E0 _080173D4: .4byte 0x0000FFF0 _080173D8: movs r6, #4 _080173DA: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_17634 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_173FC sub_173FC: @ 0x080173FC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 mov sb, r1 mov ip, r2 movs r7, #0 movs r3, #0 ldr r1, _08017494 @ =0x020314E0 ldr r5, [r1] ldr r2, _08017498 @ =0x00000387 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r1 cmp r0, #2 bne _080174C0 mov r1, ip ldrb r0, [r1] cmp r0, #0 beq _0801742C b _080175FE _0801742C: adds r2, #0x69 adds r0, r5, r2 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801749C @ =0x000003F2 adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x5f bls _0801744E b _080175FE _0801744E: lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x77 bls _08017458 b _080175FE _08017458: ldr r2, _080174A0 @ =0x083071D4 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _080174A4 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 bne _0801747A b _080175FE _0801747A: movs r1, #0xf7 lsls r1, r1, #2 adds r0, r5, r1 ldrb r0, [r0] subs r0, #3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080174A8 movs r0, #1 mov r2, ip strb r0, [r2] b _080174AC .align 2, 0 _08017494: .4byte 0x020314E0 _08017498: .4byte 0x00000387 _0801749C: .4byte 0x000003F2 _080174A0: .4byte 0x083071D4 _080174A4: .4byte 0x0000FFF0 _080174A8: mov r0, ip strb r3, [r0] _080174AC: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #4 strb r1, [r0] mov r0, sb strh r7, [r0] b _080175FE _080174C0: cmp r0, #1 beq _080174C6 b _080175FE _080174C6: mov r1, ip ldrb r0, [r1] cmp r0, #0 beq _080174D0 b _080175FE _080174D0: ldr r2, _0801760C @ =0x000003A9 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801752C movs r1, #0xf4 lsls r1, r1, #2 adds r0, r5, r1 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08017610 @ =0x000003D2 adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _0801752C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _0801752C ldr r2, _08017614 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08017618 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 beq _08017530 movs r2, #0xe8 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #4 strb r0, [r1] _0801752C: cmp r3, #0 bne _080175F4 _08017530: mov r0, r8 ldr r5, [r0] ldr r1, _0801761C @ =0x000003AA adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801758E movs r2, #0xf5 lsls r2, r2, #2 adds r0, r5, r2 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08017620 @ =0x000003D6 adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _0801758E lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _0801758E ldr r2, _08017614 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08017618 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 beq _08017592 ldr r2, _08017624 @ =0x000003A1 adds r1, r5, r2 movs r0, #4 strb r0, [r1] _0801758E: cmp r3, #0 bne _080175F4 _08017592: mov r0, r8 ldr r5, [r0] ldr r1, _08017628 @ =0x000003AB adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080175F0 movs r2, #0xf6 lsls r2, r2, #2 adds r0, r5, r2 ldrh r2, [r6] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801762C @ =0x000003DA adds r1, r5, r0 ldrh r0, [r6, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _080175F0 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080175F0 ldr r2, _08017614 @ =0x08252B10 asrs r0, r1, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08017618 @ =0x0000FFF0 ands r7, r0 movs r3, #0xf ands r3, r0 cmp r3, #0 beq _080175FE ldr r2, _08017630 @ =0x000003A2 adds r1, r5, r2 movs r0, #4 strb r0, [r1] _080175F0: cmp r3, #0 beq _080175FE _080175F4: mov r0, sb strh r7, [r0] movs r0, #6 mov r1, ip strb r0, [r1] _080175FE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801760C: .4byte 0x000003A9 _08017610: .4byte 0x000003D2 _08017614: .4byte 0x08252B10 _08017618: .4byte 0x0000FFF0 _0801761C: .4byte 0x000003AA _08017620: .4byte 0x000003D6 _08017624: .4byte 0x000003A1 _08017628: .4byte 0x000003AB _0801762C: .4byte 0x000003DA _08017630: .4byte 0x000003A2 thumb_func_start sub_17634 sub_17634: @ 0x08017634 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _080176A6 lsls r0, r0, #2 ldr r1, _08017648 @ =_0801764C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017648: .4byte _0801764C _0801764C: @ jump table .4byte _080176A6 @ case 0 .4byte _080176A6 @ case 1 .4byte _080176A6 @ case 2 .4byte _08017688 @ case 3 .4byte _080176A6 @ case 4 .4byte _080176A6 @ case 5 .4byte _080176A6 @ case 6 .4byte _080176A6 @ case 7 .4byte _080176A6 @ case 8 .4byte _080176A6 @ case 9 .4byte _080176A6 @ case 10 .4byte _080176A6 @ case 11 .4byte _080176A6 @ case 12 .4byte _080176A6 @ case 13 .4byte _080176A6 @ case 14 _08017688: ldr r2, _080176A8 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] ldr r0, [r2] ldr r1, _080176AC @ =0x00000387 adds r0, r0, r1 strb r3, [r0] _080176A6: bx lr .align 2, 0 _080176A8: .4byte 0x020314E0 _080176AC: .4byte 0x00000387 thumb_func_start sub_176B0 sub_176B0: @ 0x080176B0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov r8, r0 mov sl, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _080177B0 @ =0x020314E0 ldr r0, [r0] mov sb, r0 ldr r0, _080177B4 @ =0x0000132C add r0, sb ldr r0, [r0] strh r1, [r0, #4] mov r0, r8 movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _080176E2 adds r0, r4, #7 _080176E2: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _080177B8 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r0, r8 movs r2, #2 ldrsh r3, [r0, r2] adds r0, r3, #0 cmp r3, #0 bge _080176FE adds r0, r3, #7 _080176FE: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _080177BC @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _0801772A adds r2, #0x3f _0801772A: asrs r2, r2, #6 mov r0, sb adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r0, _080177C0 @ =0x02031520 mov ip, r0 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, r8 mov r1, sp adds r2, r4, #0 bl sub_17898 ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r5, r0, #4 subs r0, r3, #1 cmp r0, #5 bhi _08017876 lsls r0, r0, #2 ldr r1, _080177C4 @ =_080177C8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080177B0: .4byte 0x020314E0 _080177B4: .4byte 0x0000132C _080177B8: .4byte 0xFFFF0000 _080177BC: .4byte 0x0000FFFF _080177C0: .4byte 0x02031520 _080177C4: .4byte _080177C8 _080177C8: @ jump table .4byte _080177E0 @ case 0 .4byte _08017804 @ case 1 .4byte _08017804 @ case 2 .4byte _080177E0 @ case 3 .4byte _08017874 @ case 4 .4byte _080177E0 @ case 5 _080177E0: ldr r2, _08017800 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #1 strb r1, [r0] mov r0, sp ldrh r0, [r0] mov r2, sl strh r0, [r2] mov r4, sp strh r1, [r4, #4] b _08017876 .align 2, 0 _08017800: .4byte 0x020314E0 _08017804: ldr r2, _0801785C @ =0x020314E0 ldr r0, [r2] adds r0, #0x23 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r3, #1 strb r3, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08017860 @ =0x0000FFF0 ands r0, r1 mov r1, sl strh r0, [r1] mov r4, sp strh r3, [r4, #4] ldr r1, [r2] ldr r0, _08017864 @ =0x00000404 adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] adds r4, r2, #0 cmp r0, #0 bne _0801784E ldr r2, _08017868 @ =0x00000406 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 bne _0801784E movs r0, #1 strb r0, [r3] ldr r0, [r4] ldr r1, _0801786C @ =0x0000040A adds r0, r0, r1 strh r2, [r0] _0801784E: ldr r0, [r4] ldr r2, _08017870 @ =0x0000040C adds r0, r0, r2 movs r1, #0x28 strh r1, [r0] b _08017876 .align 2, 0 _0801785C: .4byte 0x020314E0 _08017860: .4byte 0x0000FFF0 _08017864: .4byte 0x00000404 _08017868: .4byte 0x00000406 _0801786C: .4byte 0x0000040A _08017870: .4byte 0x0000040C _08017874: movs r5, #4 _08017876: adds r0, r5, #0 add r1, sp, #4 mov r2, sl bl sub_179D0 mov r4, sp movs r1, #4 ldrsh r0, [r4, r1] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_17898 sub_17898: @ 0x08017898 push {r4, r5, r6, r7, lr} adds r3, r0, #0 adds r7, r1, #0 adds r4, r2, #0 ldr r0, _08017924 @ =0x020314E0 ldr r5, [r0] ldr r1, _08017928 @ =0x00000387 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08017938 ldrb r1, [r4] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 beq _080178C0 b _080179B8 _080178C0: movs r1, #0xfc lsls r1, r1, #2 adds r0, r5, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801792C @ =0x000003F2 adds r1, r5, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bhi _080179B8 lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x57 bhi _080179B8 ldr r2, _08017930 @ =0x0832D604 asrs r0, r3, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrb r0, [r0] adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _080179B8 ldr r1, _08017934 @ =0x0000132C adds r0, r5, r1 ldr r0, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080179B8 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bgt _080179B8 movs r0, #9 strb r0, [r1] b _080179B8 .align 2, 0 _08017924: .4byte 0x020314E0 _08017928: .4byte 0x00000387 _0801792C: .4byte 0x000003F2 _08017930: .4byte 0x0832D604 _08017934: .4byte 0x0000132C _08017938: cmp r0, #2 bne _080179B8 ldrb r1, [r4] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _080179B8 movs r1, #0xfc lsls r1, r1, #2 adds r0, r5, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _080179C0 @ =0x000003F2 adds r1, r5, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x57 bhi _080179B8 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _080179B8 ldr r2, _080179C4 @ =0x08330204 asrs r1, r1, #0x10 movs r0, #0x58 muls r0, r1, r0 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _080179C8 @ =0x0000FFF0 ands r2, r0 adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _080179B8 ldr r1, _080179CC @ =0x0000132C adds r0, r5, r1 ldr r0, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080179B8 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xc beq _080179B8 movs r0, #0xb strb r0, [r1] strh r2, [r7] movs r0, #6 strb r0, [r4] _080179B8: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080179C0: .4byte 0x000003F2 _080179C4: .4byte 0x08330204 _080179C8: .4byte 0x0000FFF0 _080179CC: .4byte 0x0000132C thumb_func_start sub_179D0 sub_179D0: @ 0x080179D0 push {r4, lr} lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldr r2, _080179F8 @ =0x020314E0 ldr r1, [r2] ldr r3, _080179FC @ =0x0000132C adds r1, r1, r3 ldr r1, [r1] ldrh r3, [r1, #0x10] ldrh r4, [r1, #0x12] subs r0, #1 cmp r0, #0xe bls _080179EC b _08017C12 _080179EC: lsls r0, r0, #2 ldr r1, _08017A00 @ =_08017A04 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080179F8: .4byte 0x020314E0 _080179FC: .4byte 0x0000132C _08017A00: .4byte _08017A04 _08017A04: @ jump table .4byte _08017C12 @ case 0 .4byte _08017C12 @ case 1 .4byte _08017C12 @ case 2 .4byte _08017C12 @ case 3 .4byte _08017C12 @ case 4 .4byte _08017C12 @ case 5 .4byte _08017C12 @ case 6 .4byte _08017A40 @ case 7 .4byte _08017A88 @ case 8 .4byte _08017ACA @ case 9 .4byte _08017BA4 @ case 10 .4byte _08017BEC @ case 11 .4byte _08017C12 @ case 12 .4byte _08017C12 @ case 13 .4byte _08017C12 @ case 14 _08017A40: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017A68 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x38 bgt _08017A5C ldr r0, [r2] ldr r1, _08017A58 @ =0x0000041C adds r2, r0, r1 b _08017C06 .align 2, 0 _08017A58: .4byte 0x0000041C _08017A5C: ldr r0, [r2] ldr r3, _08017A64 @ =0x0000041D b _08017C04 .align 2, 0 _08017A64: .4byte 0x0000041D _08017A68: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x63 bgt _08017A7C ldr r0, [r2] ldr r1, _08017A78 @ =0x0000041F adds r2, r0, r1 b _08017C06 .align 2, 0 _08017A78: .4byte 0x0000041F _08017A7C: ldr r0, [r2] ldr r3, _08017A84 @ =0x0000041E b _08017C04 .align 2, 0 _08017A84: .4byte 0x0000041E _08017A88: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017AB0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017AA4 ldr r0, [r2] ldr r1, _08017AA0 @ =0x00000427 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017AA0: .4byte 0x00000427 _08017AA4: ldr r0, [r2] ldr r3, _08017AAC @ =0x00000425 b _08017C04 .align 2, 0 _08017AAC: .4byte 0x00000425 _08017AB0: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017AC2 ldr r0, [r2] movs r1, #0x85 lsls r1, r1, #3 adds r2, r0, r1 b _08017C06 _08017AC2: ldr r0, [r2] movs r3, #0x84 lsls r3, r3, #3 b _08017C04 _08017ACA: ldr r1, [r2] movs r3, #0x82 lsls r3, r3, #3 adds r0, r1, r3 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08017B08 ldr r0, _08017B00 @ =0x0000042A adds r1, r1, r0 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r1, _08017B04 @ =0x0000132C adds r3, r2, r1 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd0 strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xd2 strh r0, [r2] b _08017C12 .align 2, 0 _08017B00: .4byte 0x0000042A _08017B04: .4byte 0x0000132C _08017B08: cmp r0, #3 bne _08017B3C ldr r3, _08017B34 @ =0x0000042B adds r1, r1, r3 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r0, _08017B38 @ =0x0000132C adds r3, r2, r0 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd4 strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xd6 strh r0, [r2] b _08017C12 .align 2, 0 _08017B34: .4byte 0x0000042B _08017B38: .4byte 0x0000132C _08017B3C: cmp r0, #6 bne _08017B70 ldr r3, _08017B68 @ =0x0000042C adds r1, r1, r3 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r0, _08017B6C @ =0x0000132C adds r3, r2, r0 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xd8 strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xda strh r0, [r2] b _08017C12 .align 2, 0 _08017B68: .4byte 0x0000042C _08017B6C: .4byte 0x0000132C _08017B70: cmp r0, #9 bne _08017C12 ldr r3, _08017B9C @ =0x0000042D adds r1, r1, r3 movs r0, #0xb strb r0, [r1] ldr r2, [r2] ldr r0, _08017BA0 @ =0x0000132C adds r3, r2, r0 ldr r0, [r3] ldrh r0, [r0, #0x10] subs r0, #7 adds r1, r2, #0 adds r1, #0xdc strh r0, [r1] ldr r0, [r3] ldrh r0, [r0, #0x12] subs r0, #7 adds r2, #0xde strh r0, [r2] b _08017C12 .align 2, 0 _08017B9C: .4byte 0x0000042D _08017BA0: .4byte 0x0000132C _08017BA4: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017BCC lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017BC0 ldr r0, [r2] ldr r1, _08017BBC @ =0x00000429 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017BBC: .4byte 0x00000429 _08017BC0: ldr r0, [r2] ldr r3, _08017BC8 @ =0x00000422 b _08017C04 .align 2, 0 _08017BC8: .4byte 0x00000422 _08017BCC: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017BE0 ldr r0, [r2] ldr r1, _08017BDC @ =0x00000426 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017BDC: .4byte 0x00000426 _08017BE0: ldr r0, [r2] ldr r3, _08017BE8 @ =0x00000421 b _08017C04 .align 2, 0 _08017BE8: .4byte 0x00000421 _08017BEC: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017C00 ldr r0, [r2] ldr r1, _08017BFC @ =0x00000424 adds r2, r0, r1 b _08017C06 .align 2, 0 _08017BFC: .4byte 0x00000424 _08017C00: ldr r0, [r2] ldr r3, _08017C18 @ =0x00000423 _08017C04: adds r2, r0, r3 _08017C06: movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 bgt _08017C12 movs r0, #0x18 strb r0, [r2] _08017C12: pop {r4} pop {r0} bx r0 .align 2, 0 _08017C18: .4byte 0x00000423 thumb_func_start sub_17C1C sub_17C1C: @ 0x08017C1C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #4 adds r3, r0, #0 ldr r0, _08017CF8 @ =0x020314E0 ldr r1, [r0] movs r2, #0xfe lsls r2, r2, #2 adds r1, r1, r2 movs r2, #1 strb r2, [r1] movs r1, #0 ldrsh r4, [r3, r1] adds r1, r4, #0 mov ip, r0 cmp r4, #0 bge _08017C42 adds r1, r4, #7 _08017C42: asrs r1, r1, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08017CFC @ =0xFFFF0000 mov r8, r2 ands r6, r2 orrs r6, r0 movs r0, #2 ldrsh r3, [r3, r0] adds r0, r3, #0 cmp r3, #0 bge _08017C5C adds r0, r3, #7 _08017C5C: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r5, _08017D00 @ =0x0000FFFF ands r6, r5 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, r8 ands r7, r4 orrs r7, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r7, r5 orrs r7, r0 orrs r6, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08017C88 adds r2, #0x3f _08017C88: asrs r2, r2, #6 mov r0, ip ldr r0, [r0] mov r8, r0 adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r6, r5 ldr r4, _08017D04 @ =0x02031520 adds r3, r3, r2 lsls r3, r3, #2 adds r2, r4, #0 adds r2, #0x38 adds r2, r3, r2 lsls r0, r6, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r7, #0x10 lsls r0, r7, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 adds r4, #0x58 adds r3, r3, r4 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] lsrs r1, r1, #4 movs r0, #0x80 lsls r0, r0, #3 add r0, r8 ldrh r3, [r0] ldr r2, _08017D08 @ =0x00000402 add r2, r8 ldrh r4, [r2] adds r0, r1, #0 subs r0, #8 cmp r0, #4 bls _08017CEE b _08017F18 _08017CEE: lsls r0, r0, #2 ldr r1, _08017D0C @ =_08017D10 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017CF8: .4byte 0x020314E0 _08017CFC: .4byte 0xFFFF0000 _08017D00: .4byte 0x0000FFFF _08017D04: .4byte 0x02031520 _08017D08: .4byte 0x00000402 _08017D0C: .4byte _08017D10 _08017D10: @ jump table .4byte _08017D24 @ case 0 .4byte _08017D74 @ case 1 .4byte _08017DBE @ case 2 .4byte _08017E9C @ case 3 .4byte _08017EEC @ case 4 _08017D24: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017D50 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x38 bgt _08017D40 mov r3, ip ldr r0, [r3] ldr r4, _08017D3C @ =0x0000041C b _08017F0A .align 2, 0 _08017D3C: .4byte 0x0000041C _08017D40: mov r1, ip ldr r0, [r1] ldr r2, _08017D4C @ =0x0000041D adds r1, r0, r2 b _08017F0C .align 2, 0 _08017D4C: .4byte 0x0000041D _08017D50: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x63 bgt _08017D64 mov r3, ip ldr r0, [r3] ldr r4, _08017D60 @ =0x0000041F b _08017F0A .align 2, 0 _08017D60: .4byte 0x0000041F _08017D64: mov r1, ip ldr r0, [r1] ldr r2, _08017D70 @ =0x0000041E adds r1, r0, r2 b _08017F0C .align 2, 0 _08017D70: .4byte 0x0000041E _08017D74: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017DA0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017D90 mov r3, ip ldr r0, [r3] ldr r4, _08017D8C @ =0x00000427 b _08017F0A .align 2, 0 _08017D8C: .4byte 0x00000427 _08017D90: mov r1, ip ldr r0, [r1] ldr r2, _08017D9C @ =0x00000425 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017D9C: .4byte 0x00000425 _08017DA0: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017DB2 mov r3, ip ldr r0, [r3] movs r4, #0x85 lsls r4, r4, #3 b _08017F0A _08017DB2: mov r1, ip ldr r0, [r1] movs r2, #0x84 lsls r2, r2, #3 adds r1, r0, r2 b _08017F0C _08017DBE: mov r3, ip ldr r0, [r3] movs r4, #0xfe lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r2, [r3] ldr r1, _08017E10 @ =0x00000412 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08017E18 adds r4, #8 adds r0, r2, r4 ldr r1, [r0] ldr r3, _08017E14 @ =0x00000434 adds r0, r2, r3 ldr r0, [r0] cmp r1, r0 bne _08017DEC b _08017F18 _08017DEC: adds r4, #0x2e adds r1, r2, r4 movs r0, #0x11 strb r0, [r1] mov r0, ip ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #3 adds r0, r1, r2 ldrh r2, [r0] adds r0, r1, r3 strh r2, [r0] subs r3, #0x32 adds r0, r1, r3 ldrh r0, [r0] adds r4, #8 b _08017E90 .align 2, 0 _08017E10: .4byte 0x00000412 _08017E14: .4byte 0x00000434 _08017E18: cmp r0, #8 bne _08017E58 movs r1, #0x80 lsls r1, r1, #3 adds r0, r2, r1 ldr r1, [r0] movs r3, #0x87 lsls r3, r3, #3 adds r0, r2, r3 ldr r0, [r0] cmp r1, r0 beq _08017F18 ldr r4, _08017E54 @ =0x0000042F adds r1, r2, r4 movs r0, #0x11 strb r0, [r1] mov r0, ip ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #3 adds r0, r1, r2 ldrh r2, [r0] adds r0, r1, r3 strh r2, [r0] subs r3, #0x36 adds r0, r1, r3 ldrh r0, [r0] adds r4, #0xb b _08017E90 .align 2, 0 _08017E54: .4byte 0x0000042F _08017E58: cmp r0, #0x10 bne _08017F18 movs r1, #0x80 lsls r1, r1, #3 adds r0, r2, r1 ldr r1, [r0] ldr r3, _08017E98 @ =0x0000043C adds r0, r2, r3 ldr r0, [r0] cmp r1, r0 beq _08017F18 movs r4, #0x86 lsls r4, r4, #3 adds r1, r2, r4 movs r0, #0x11 strb r0, [r1] mov r0, ip ldr r1, [r0] movs r2, #0x80 lsls r2, r2, #3 adds r0, r1, r2 ldrh r2, [r0] adds r0, r1, r3 strh r2, [r0] subs r3, #0x3a adds r0, r1, r3 ldrh r0, [r0] adds r4, #0xe _08017E90: adds r1, r1, r4 strh r0, [r1] b _08017F18 .align 2, 0 _08017E98: .4byte 0x0000043C _08017E9C: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017EC8 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017EBC mov r1, ip ldr r0, [r1] ldr r2, _08017EB8 @ =0x00000429 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017EB8: .4byte 0x00000429 _08017EBC: mov r3, ip ldr r0, [r3] ldr r4, _08017EC4 @ =0x00000422 b _08017F0A .align 2, 0 _08017EC4: .4byte 0x00000422 _08017EC8: lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x45 bgt _08017EE0 mov r1, ip ldr r0, [r1] ldr r2, _08017EDC @ =0x00000426 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017EDC: .4byte 0x00000426 _08017EE0: mov r3, ip ldr r0, [r3] ldr r4, _08017EE8 @ =0x00000421 b _08017F0A .align 2, 0 _08017EE8: .4byte 0x00000421 _08017EEC: lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r0, #0x72 bgt _08017F04 mov r1, ip ldr r0, [r1] ldr r2, _08017F00 @ =0x00000424 adds r1, r0, r2 b _08017F0C .align 2, 0 _08017F00: .4byte 0x00000424 _08017F04: mov r3, ip ldr r0, [r3] ldr r4, _08017F24 @ =0x00000423 _08017F0A: adds r1, r0, r4 _08017F0C: movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08017F18 movs r0, #0x18 strb r0, [r1] _08017F18: add sp, #4 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08017F24: .4byte 0x00000423 thumb_func_start sub_17F28 sub_17F28: @ 0x08017F28 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r3, #0 strh r3, [r2] ldr r0, _08018018 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _0801801C @ =0x0000132C add r0, sl ldr r0, [r0] strh r3, [r0, #4] mov r0, sb movs r4, #2 ldrsh r1, [r0, r4] ldr r0, _08018020 @ =0x000001FF cmp r1, r0 bgt _08018030 mov r7, sb movs r0, #0 ldrsh r4, [r7, r0] adds r0, r4, #0 cmp r4, #0 bge _08017F66 adds r0, r4, #7 _08017F66: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08018024 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08017F82 adds r0, r3, #7 _08017F82: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08018028 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08017FAE adds r2, #0x3f _08017FAE: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _0801802C @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] mov r0, sp adds r0, #2 strb r1, [r0] adds r4, r0, #0 b _0801803E .align 2, 0 _08018018: .4byte 0x020314E0 _0801801C: .4byte 0x0000132C _08018020: .4byte 0x000001FF _08018024: .4byte 0xFFFF0000 _08018028: .4byte 0x0000FFFF _0801802C: .4byte 0x02031520 _08018030: mov r0, sp strh r3, [r0] mov r1, sp adds r1, #2 movs r0, #0 strb r0, [r1] adds r4, r1, #0 _0801803E: mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_18180 ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08018058 b _0801815E _08018058: lsls r0, r0, #2 ldr r1, _08018064 @ =_08018068 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018064: .4byte _08018068 _08018068: @ jump table .4byte _08018080 @ case 0 .4byte _0801812C @ case 1 .4byte _0801812C @ case 2 .4byte _08018080 @ case 3 .4byte _0801815C @ case 4 .4byte _08018080 @ case 5 _08018080: ldr r2, _080180F8 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _080180FC @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08018120 ldr r0, [r2] ldr r7, _08018100 @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08018104 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _080180CC movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08018120 _080180CC: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _080180EA cmp r0, #0 bne _08018116 ldr r0, _08018108 @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _0801810C movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _080180EA: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _08018120 .align 2, 0 _080180F8: .4byte 0x020314E0 _080180FC: .4byte 0xFFFFC010 _08018100: .4byte 0x0000132C _08018104: .4byte 0x02031520 _08018108: .4byte 0x0200B0C0 _0801810C: ldr r0, _08018128 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08018116: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _08018120: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _0801815E .align 2, 0 _08018128: .4byte 0x0000FFD8 _0801812C: ldr r2, _08018154 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018158 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _0801815E .align 2, 0 _08018154: .4byte 0x020314E0 _08018158: .4byte 0x0000FFF0 _0801815C: movs r6, #4 _0801815E: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_182B4 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_18180 sub_18180: @ 0x08018180 push {r4, r5, r6, r7, lr} adds r3, r0, #0 adds r6, r1, #0 adds r5, r2, #0 ldr r0, _080181DC @ =0x020314E0 ldr r4, [r0] ldr r1, _080181E0 @ =0x00000387 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080181EC ldrb r1, [r5] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801829C movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _080181E4 @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x77 bhi _0801829C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x97 bhi _0801829C ldr r2, _080181E8 @ =0x08340B58 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 b _08018278 .align 2, 0 _080181DC: .4byte 0x020314E0 _080181E0: .4byte 0x00000387 _080181E4: .4byte 0x000003F2 _080181E8: .4byte 0x08340B58 _080181EC: cmp r0, #2 bne _08018234 ldrb r1, [r5] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801829C movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _0801822C @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x5f bhi _0801829C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x57 bhi _0801829C ldr r2, _08018230 @ =0x083499D8 b _08018270 .align 2, 0 _0801822C: .4byte 0x000003F2 _08018230: .4byte 0x083499D8 _08018234: cmp r0, #3 bne _0801829C ldrb r1, [r5] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801829C movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _080182A4 @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x5f bhi _0801829C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x67 bhi _0801829C ldr r2, _080182A8 @ =0x0834DBD8 _08018270: asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 _08018278: asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _080182AC @ =0x0000FFF0 ands r2, r0 adds r3, r7, #0 ands r3, r0 cmp r3, #0 beq _0801829C ldr r1, _080182B0 @ =0x00000452 adds r0, r4, r1 movs r1, #8 strh r1, [r0] strh r2, [r6] movs r0, #6 strb r0, [r5] _0801829C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080182A4: .4byte 0x000003F2 _080182A8: .4byte 0x0834DBD8 _080182AC: .4byte 0x0000FFF0 _080182B0: .4byte 0x00000452 thumb_func_start sub_182B4 sub_182B4: @ 0x080182B4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _0801831C lsls r0, r0, #2 ldr r1, _080182C8 @ =_080182CC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080182C8: .4byte _080182CC _080182CC: @ jump table .4byte _0801831C @ case 0 .4byte _0801831C @ case 1 .4byte _0801831C @ case 2 .4byte _08018308 @ case 3 .4byte _0801831C @ case 4 .4byte _0801831C @ case 5 .4byte _0801831C @ case 6 .4byte _0801831C @ case 7 .4byte _0801831C @ case 8 .4byte _0801831C @ case 9 .4byte _0801831C @ case 10 .4byte _0801831C @ case 11 .4byte _0801831C @ case 12 .4byte _0801831C @ case 13 .4byte _0801831C @ case 14 _08018308: ldr r2, _08018320 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] _0801831C: bx lr .align 2, 0 _08018320: .4byte 0x020314E0 thumb_func_start sub_18324 sub_18324: @ 0x08018324 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r3, #0 strh r3, [r2] ldr r0, _08018414 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08018418 @ =0x0000132C add r0, sl ldr r0, [r0] strh r3, [r0, #4] mov r0, sb movs r4, #2 ldrsh r1, [r0, r4] ldr r0, _0801841C @ =0x000001FF cmp r1, r0 bgt _0801842C mov r7, sb movs r0, #0 ldrsh r4, [r7, r0] adds r0, r4, #0 cmp r4, #0 bge _08018362 adds r0, r4, #7 _08018362: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08018420 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _0801837E adds r0, r3, #7 _0801837E: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08018424 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _080183AA adds r2, #0x3f _080183AA: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _08018428 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] mov r0, sp adds r0, #2 strb r1, [r0] adds r4, r0, #0 b _0801843A .align 2, 0 _08018414: .4byte 0x020314E0 _08018418: .4byte 0x0000132C _0801841C: .4byte 0x000001FF _08018420: .4byte 0xFFFF0000 _08018424: .4byte 0x0000FFFF _08018428: .4byte 0x02031520 _0801842C: mov r0, sp strh r3, [r0] mov r1, sp adds r1, #2 movs r0, #0 strb r0, [r1] adds r4, r1, #0 _0801843A: mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_1857C ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08018454 b _0801855A _08018454: lsls r0, r0, #2 ldr r1, _08018460 @ =_08018464 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018460: .4byte _08018464 _08018464: @ jump table .4byte _0801847C @ case 0 .4byte _08018528 @ case 1 .4byte _08018528 @ case 2 .4byte _0801847C @ case 3 .4byte _08018558 @ case 4 .4byte _0801847C @ case 5 _0801847C: ldr r2, _080184F4 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _080184F8 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _0801851C ldr r0, [r2] ldr r7, _080184FC @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _08018500 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _080184C8 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _0801851C _080184C8: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _080184E6 cmp r0, #0 bne _08018512 ldr r0, _08018504 @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08018508 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _080184E6: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _0801851C .align 2, 0 _080184F4: .4byte 0x020314E0 _080184F8: .4byte 0xFFFFC010 _080184FC: .4byte 0x0000132C _08018500: .4byte 0x02031520 _08018504: .4byte 0x0200B0C0 _08018508: ldr r0, _08018524 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08018512: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _0801851C: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _0801855A .align 2, 0 _08018524: .4byte 0x0000FFD8 _08018528: ldr r2, _08018550 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018554 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _0801855A .align 2, 0 _08018550: .4byte 0x020314E0 _08018554: .4byte 0x0000FFF0 _08018558: movs r6, #4 _0801855A: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_18784 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_1857C sub_1857C: @ 0x0801857C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov r8, r0 mov sl, r1 mov ip, r2 ldr r0, _08018758 @ =0x020314E0 ldr r4, [r0] ldr r1, _0801875C @ =0x00000387 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0801860E ldrb r1, [r2] movs r5, #0xf adds r0, r5, #0 ands r0, r1 cmp r0, #0 bne _0801860E movs r3, #0xfc lsls r3, r3, #2 adds r0, r4, r3 mov r1, r8 ldrh r2, [r1] ldrh r0, [r0] subs r2, r2, r0 adds r3, #2 adds r1, r4, r3 mov r3, r8 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x6f bhi _0801860E lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x7f bhi _0801860E ldr r2, _08018760 @ =0x083579C8 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #4 asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r1, _08018764 @ =0x0000FFF0 ands r1, r0 adds r3, r5, #0 ands r3, r0 cmp r3, #0 beq _0801860E ldr r0, _08018768 @ =0x00000452 adds r2, r4, r0 ldrh r0, [r2] cmp r0, #0 bne _08018606 movs r0, #0x27 strh r0, [r2] _08018606: mov r0, sl strh r1, [r0] mov r1, ip strb r3, [r1] _0801860E: movs r5, #0 ldr r3, _08018758 @ =0x020314E0 mov sb, r3 _08018614: mov r0, sb ldr r1, [r0] lsls r0, r5, #0x10 asrs r6, r0, #0x10 lsls r0, r6, #2 adds r3, r1, r0 movs r1, #0x9f lsls r1, r1, #3 adds r0, r3, r1 ldrh r4, [r0] movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 ble _0801869C mov r0, ip ldrb r1, [r0] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #0 bne _0801869C mov r1, r8 ldrh r2, [r1] subs r2, r2, r4 ldr r0, _0801876C @ =0x000004FA adds r1, r3, r0 mov r3, r8 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 cmp r0, #0x4f bhi _0801869C lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x4f bhi _0801869C asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r2, #0x10 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08018770 @ =0x0835E9C8 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _08018764 @ =0x0000FFF0 ands r1, r0 adds r3, r7, #0 ands r3, r0 cmp r3, #0 beq _0801869C mov r3, sl strh r1, [r3] movs r0, #6 mov r1, ip strb r0, [r1] mov r3, sb ldr r0, [r3] ldr r1, _08018774 @ =0x000004D5 adds r0, r0, r1 adds r0, r0, r6 movs r1, #1 strb r1, [r0] _0801869C: lsls r0, r5, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08018614 movs r5, #0 ldr r0, _08018758 @ =0x020314E0 mov sb, r0 _080186B2: mov r3, sb ldr r1, [r3] lsls r2, r5, #0x10 asrs r5, r2, #0x10 lsls r0, r5, #2 adds r3, r1, r0 ldr r1, _08018778 @ =0x000004B4 adds r0, r3, r1 ldrh r4, [r0] movs r1, #0 ldrsh r0, [r0, r1] adds r7, r2, #0 cmp r0, #0 ble _0801873A mov r0, ip ldrb r1, [r0] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _0801873A mov r1, r8 ldrh r2, [r1] subs r2, r2, r4 ldr r0, _0801877C @ =0x000004B6 adds r1, r3, r0 mov r3, r8 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 cmp r0, #0x4f bhi _0801873A lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x4f bhi _0801873A asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #4 asrs r1, r2, #0x10 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08018770 @ =0x0835E9C8 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _08018764 @ =0x0000FFF0 ands r1, r0 adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _0801873A mov r3, sl strh r1, [r3] movs r0, #6 mov r1, ip strb r0, [r1] mov r3, sb ldr r0, [r3] ldr r1, _08018780 @ =0x000004A4 adds r0, r0, r1 adds r0, r0, r5 movs r1, #8 strb r1, [r0] _0801873A: movs r3, #0x80 lsls r3, r3, #9 adds r0, r7, r3 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080186B2 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08018758: .4byte 0x020314E0 _0801875C: .4byte 0x00000387 _08018760: .4byte 0x083579C8 _08018764: .4byte 0x0000FFF0 _08018768: .4byte 0x00000452 _0801876C: .4byte 0x000004FA _08018770: .4byte 0x0835E9C8 _08018774: .4byte 0x000004D5 _08018778: .4byte 0x000004B4 _0801877C: .4byte 0x000004B6 _08018780: .4byte 0x000004A4 thumb_func_start sub_18784 sub_18784: @ 0x08018784 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _080187EC lsls r0, r0, #2 ldr r1, _08018798 @ =_0801879C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018798: .4byte _0801879C _0801879C: @ jump table .4byte _080187EC @ case 0 .4byte _080187EC @ case 1 .4byte _080187EC @ case 2 .4byte _080187D8 @ case 3 .4byte _080187EC @ case 4 .4byte _080187EC @ case 5 .4byte _080187EC @ case 6 .4byte _080187EC @ case 7 .4byte _080187EC @ case 8 .4byte _080187EC @ case 9 .4byte _080187EC @ case 10 .4byte _080187EC @ case 11 .4byte _080187EC @ case 12 .4byte _080187EC @ case 13 .4byte _080187EC @ case 14 _080187D8: ldr r2, _080187F0 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] _080187EC: bx lr .align 2, 0 _080187F0: .4byte 0x020314E0 thumb_func_start sub_187F4 sub_187F4: @ 0x080187F4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r3, #0 strh r3, [r2] ldr r0, _080188E4 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _080188E8 @ =0x0000132C add r0, sl ldr r0, [r0] strh r3, [r0, #4] mov r0, sb movs r4, #2 ldrsh r1, [r0, r4] ldr r0, _080188EC @ =0x000001FF cmp r1, r0 bgt _080188FC mov r7, sb movs r0, #0 ldrsh r4, [r7, r0] adds r0, r4, #0 cmp r4, #0 bge _08018832 adds r0, r4, #7 _08018832: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _080188F0 @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _0801884E adds r0, r3, #7 _0801884E: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _080188F4 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _0801887A adds r2, #0x3f _0801887A: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _080188F8 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r1, [r0] mov r0, sp adds r0, #2 strb r1, [r0] adds r4, r0, #0 b _0801890A .align 2, 0 _080188E4: .4byte 0x020314E0 _080188E8: .4byte 0x0000132C _080188EC: .4byte 0x000001FF _080188F0: .4byte 0xFFFF0000 _080188F4: .4byte 0x0000FFFF _080188F8: .4byte 0x02031520 _080188FC: mov r0, sp strh r3, [r0] mov r1, sp adds r1, #2 movs r0, #0 strb r0, [r1] adds r4, r1, #0 _0801890A: mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_18A4C ldrb r0, [r4] movs r3, #0xf ands r3, r0 lsrs r6, r0, #4 subs r0, r3, #1 cmp r0, #5 bls _08018924 b _08018A2A _08018924: lsls r0, r0, #2 ldr r1, _08018930 @ =_08018934 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018930: .4byte _08018934 _08018934: @ jump table .4byte _0801894C @ case 0 .4byte _080189F8 @ case 1 .4byte _080189F8 @ case 2 .4byte _0801894C @ case 3 .4byte _08018A28 @ case 4 .4byte _0801894C @ case 5 _0801894C: ldr r2, _080189C4 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r4, _080189C8 @ =0xFFFFC010 adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _080189EC ldr r0, [r2] ldr r7, _080189CC @ =0x0000132C adds r3, r0, r7 ldr r2, [r3] movs r0, #0x10 ldrsh r1, [r2, r0] ldr r4, _080189D0 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08018998 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _080189EC _08018998: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _080189B6 cmp r0, #0 bne _080189E2 ldr r0, _080189D4 @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _080189D8 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _080189B6: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _080189EC .align 2, 0 _080189C4: .4byte 0x020314E0 _080189C8: .4byte 0xFFFFC010 _080189CC: .4byte 0x0000132C _080189D0: .4byte 0x02031520 _080189D4: .4byte 0x0200B0C0 _080189D8: ldr r0, _080189F4 @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _080189E2: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _080189EC: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _08018A2A .align 2, 0 _080189F4: .4byte 0x0000FFD8 _080189F8: ldr r2, _08018A20 @ =0x020314E0 ldr r0, [r2] subs r1, r3, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #2 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018A24 @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] movs r0, #1 mov r7, sp strh r0, [r7, #4] b _08018A2A .align 2, 0 _08018A20: .4byte 0x020314E0 _08018A24: .4byte 0x0000FFF0 _08018A28: movs r6, #4 _08018A2A: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_18AE0 mov r1, sp movs r2, #4 ldrsh r0, [r1, r2] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_18A4C sub_18A4C: @ 0x08018A4C push {r4, r5, r6, r7, lr} adds r3, r0, #0 adds r7, r1, #0 adds r5, r2, #0 ldr r0, _08018AC8 @ =0x020314E0 ldr r4, [r0] ldr r1, _08018ACC @ =0x00000387 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08018AC2 ldrb r1, [r5] movs r6, #0xf adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _08018AC2 movs r1, #0xfc lsls r1, r1, #2 adds r0, r4, r1 ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08018AD0 @ =0x000003F2 adds r1, r4, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 lsls r1, r2, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x7f bhi _08018AC2 lsls r3, r3, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x7f bhi _08018AC2 ldr r2, _08018AD4 @ =0x083722E8 asrs r0, r3, #9 asrs r1, r1, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _08018AD8 @ =0x0000FFF0 ands r2, r0 adds r3, r6, #0 ands r3, r0 cmp r3, #0 beq _08018AC2 ldr r0, _08018ADC @ =0x00000452 adds r1, r4, r0 movs r0, #9 strh r0, [r1] strh r2, [r7] strb r3, [r5] _08018AC2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08018AC8: .4byte 0x020314E0 _08018ACC: .4byte 0x00000387 _08018AD0: .4byte 0x000003F2 _08018AD4: .4byte 0x083722E8 _08018AD8: .4byte 0x0000FFF0 _08018ADC: .4byte 0x00000452 thumb_func_start sub_18AE0 sub_18AE0: @ 0x08018AE0 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _08018B48 lsls r0, r0, #2 ldr r1, _08018AF4 @ =_08018AF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018AF4: .4byte _08018AF8 _08018AF8: @ jump table .4byte _08018B48 @ case 0 .4byte _08018B48 @ case 1 .4byte _08018B48 @ case 2 .4byte _08018B34 @ case 3 .4byte _08018B48 @ case 4 .4byte _08018B48 @ case 5 .4byte _08018B48 @ case 6 .4byte _08018B48 @ case 7 .4byte _08018B48 @ case 8 .4byte _08018B48 @ case 9 .4byte _08018B48 @ case 10 .4byte _08018B48 @ case 11 .4byte _08018B48 @ case 12 .4byte _08018B48 @ case 13 .4byte _08018B48 @ case 14 _08018B34: ldr r2, _08018B4C @ =0x020314E0 ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #6 strb r1, [r0] ldr r1, [r2] movs r0, #1 strb r0, [r1, #0x1f] _08018B48: bx lr .align 2, 0 _08018B4C: .4byte 0x020314E0 thumb_func_start sub_18B50 sub_18B50: @ 0x08018B50 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 mov sb, r0 mov r8, r1 add r2, sp, #4 movs r1, #0 strh r1, [r2] ldr r0, _08018C54 @ =0x020314E0 ldr r0, [r0] mov sl, r0 ldr r0, _08018C58 @ =0x0000132C add r0, sl ldr r0, [r0] strh r1, [r0, #4] mov r0, sb movs r1, #0 ldrsh r4, [r0, r1] adds r0, r4, #0 cmp r4, #0 bge _08018B82 adds r0, r4, #7 _08018B82: asrs r1, r0, #3 lsls r0, r1, #0x10 lsrs r0, r0, #0x10 ldr r2, _08018C5C @ =0xFFFF0000 mov ip, r2 ands r5, r2 orrs r5, r0 mov r7, sb movs r0, #2 ldrsh r3, [r7, r0] adds r0, r3, #0 cmp r3, #0 bge _08018B9E adds r0, r3, #7 _08018B9E: asrs r0, r0, #3 lsls r2, r0, #0x10 ldr r7, _08018C60 @ =0x0000FFFF ands r5, r7 lsls r1, r1, #3 subs r1, r4, r1 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov r4, ip ands r6, r4 orrs r6, r1 lsls r0, r0, #3 subs r0, r3, r0 lsls r0, r0, #0x10 ands r6, r7 orrs r6, r0 orrs r5, r2 asrs r4, r2, #0x10 adds r2, r4, #0 cmp r4, #0 bge _08018BCA adds r2, #0x3f _08018BCA: asrs r2, r2, #6 mov r0, sl adds r0, #0x24 movs r3, #0 ldrsb r3, [r0, r3] lsls r1, r2, #6 subs r1, r4, r1 lsls r1, r1, #0x10 ands r5, r7 ldr r7, _08018C64 @ =0x02031520 mov ip, r7 adds r3, r3, r2 lsls r3, r3, #2 mov r2, ip adds r2, #0x38 adds r2, r3, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 asrs r1, r1, #0xa adds r1, r1, r0 ldr r0, [r2] lsls r1, r1, #1 adds r1, r1, r0 mov r4, ip adds r4, #0x48 adds r4, r3, r4 movs r0, #0 ldrsh r2, [r1, r0] asrs r1, r6, #0x10 lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #3 lsls r2, r2, #6 adds r1, r1, r2 adds r1, r1, r0 ldr r2, [r4] lsls r0, r1, #1 adds r0, r0, r2 ldrh r2, [r0] mov r0, sp strh r2, [r0] mov r0, ip adds r0, #0x58 adds r3, r3, r0 ldr r0, [r3] adds r0, r0, r1 ldrb r0, [r0] mov r4, sp adds r4, #2 strb r0, [r4] mov r0, sb mov r1, sp adds r2, r4, #0 bl sub_18DAC ldrb r0, [r4] movs r2, #0xf ands r2, r0 lsrs r6, r0, #4 subs r0, r2, #1 cmp r0, #5 bls _08018C48 b _08018D8A _08018C48: lsls r0, r0, #2 ldr r1, _08018C68 @ =_08018C6C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018C54: .4byte 0x020314E0 _08018C58: .4byte 0x0000132C _08018C5C: .4byte 0xFFFF0000 _08018C60: .4byte 0x0000FFFF _08018C64: .4byte 0x02031520 _08018C68: .4byte _08018C6C _08018C6C: @ jump table .4byte _08018C84 @ case 0 .4byte _08018D30 @ case 1 .4byte _08018D30 @ case 2 .4byte _08018C84 @ case 3 .4byte _08018D88 @ case 4 .4byte _08018C84 @ case 5 _08018C84: ldr r3, _08018CFC @ =0x020314E0 ldr r0, [r3] subs r1, r2, #1 adds r0, #0x23 strb r1, [r0] ldr r0, [r3] adds r0, #0x22 movs r5, #1 strb r5, [r0] mov r0, sp ldrh r0, [r0] mov r1, r8 strh r0, [r1] ldr r2, _08018D00 @ =0xFFFFC010 adds r0, r0, r2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bhi _08018D24 ldr r0, [r3] ldr r4, _08018D04 @ =0x0000132C adds r3, r0, r4 ldr r2, [r3] movs r7, #0x10 ldrsh r1, [r2, r7] ldr r4, _08018D08 @ =0x02031520 movs r7, #0x26 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 blt _08018CD0 movs r0, #0x12 ldrsh r1, [r2, r0] movs r7, #0x28 ldrsh r0, [r4, r7] subs r0, #8 cmp r1, r0 bge _08018D24 _08018CD0: movs r1, #6 ldrsh r0, [r2, r1] cmp r0, #0 bgt _08018CEE cmp r0, #0 bne _08018D1A ldr r0, _08018D0C @ =0x0200B0C0 ldr r0, [r0, #0x4c] ands r0, r5 cmp r0, #0 beq _08018D10 movs r0, #0x28 strh r0, [r2, #4] ldr r0, [r3] strh r5, [r0, #6] _08018CEE: movs r2, #0xf8 lsls r2, r2, #6 adds r0, r2, #0 mov r4, r8 strh r0, [r4] b _08018D24 .align 2, 0 _08018CFC: .4byte 0x020314E0 _08018D00: .4byte 0xFFFFC010 _08018D04: .4byte 0x0000132C _08018D08: .4byte 0x02031520 _08018D0C: .4byte 0x0200B0C0 _08018D10: ldr r0, _08018D2C @ =0x0000FFD8 strh r0, [r2, #4] ldr r1, [r3] adds r0, #0x27 strh r0, [r1, #6] _08018D1A: movs r7, #0x82 lsls r7, r7, #7 adds r0, r7, #0 mov r1, r8 strh r0, [r1] _08018D24: movs r0, #1 mov r2, sp strh r0, [r2, #4] b _08018D8A .align 2, 0 _08018D2C: .4byte 0x0000FFD8 _08018D30: ldr r2, _08018D68 @ =0x020314E0 ldr r0, [r2] adds r0, #0x23 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0x22 movs r1, #1 strb r1, [r0] mov r0, sp ldrh r1, [r0] ldr r0, _08018D6C @ =0x0000FFF0 ands r0, r1 mov r4, r8 strh r0, [r4] ldr r1, [r2] ldr r7, _08018D70 @ =0x0000132C adds r0, r1, r7 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] cmp r0, #0x77 bgt _08018D74 movs r4, #0xa9 lsls r4, r4, #3 adds r1, r1, r4 b _08018D78 .align 2, 0 _08018D68: .4byte 0x020314E0 _08018D6C: .4byte 0x0000FFF0 _08018D70: .4byte 0x0000132C _08018D74: ldr r7, _08018D84 @ =0x00000549 adds r1, r1, r7 _08018D78: movs r0, #0x18 strb r0, [r1] movs r0, #1 mov r1, sp strh r0, [r1, #4] b _08018D8A .align 2, 0 _08018D84: .4byte 0x00000549 _08018D88: movs r6, #4 _08018D8A: adds r0, r6, #0 add r1, sp, #4 mov r2, r8 bl sub_18F38 mov r2, sp movs r4, #4 ldrsh r0, [r2, r4] add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_18DAC sub_18DAC: @ 0x08018DAC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} mov ip, r0 mov sb, r1 adds r7, r2, #0 movs r1, #0 _08018DBE: ldr r0, _08018E5C @ =0x020314E0 ldr r6, [r0] lsls r1, r1, #0x10 asrs r5, r1, #0x10 ldr r2, _08018E60 @ =0x0000054F adds r0, r6, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r1 cmp r0, #1 bne _08018E74 ldrb r1, [r7] movs r3, #0xf mov r8, r3 mov r0, r8 ands r0, r1 cmp r0, #0 beq _08018DE8 b _08018F16 _08018DE8: lsls r1, r5, #2 adds r1, r6, r1 adds r2, #0x21 adds r0, r1, r2 mov r3, ip ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08018E64 @ =0x00000572 adds r1, r1, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r4, r2, #0x10 lsrs r0, r4, #0x10 cmp r0, #0x3f bls _08018E10 b _08018F16 _08018E10: lsls r3, r1, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bls _08018E1A b _08018F16 _08018E1A: ldr r2, _08018E68 @ =0x08393A4C asrs r0, r3, #0xa asrs r1, r4, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r1, _08018E6C @ =0x0000FFF0 ands r1, r0 mov r3, r8 ands r3, r0 cmp r3, #0 beq _08018F16 movs r2, #0xe2 lsls r2, r2, #2 adds r0, r6, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08018F16 mov r3, sb strh r1, [r3] movs r0, #6 strb r0, [r7] ldr r1, _08018E5C @ =0x020314E0 ldr r0, [r1] ldr r2, _08018E70 @ =0x00000553 adds r0, r0, r2 adds r0, r0, r5 movs r1, #4 b _08018F14 .align 2, 0 _08018E5C: .4byte 0x020314E0 _08018E60: .4byte 0x0000054F _08018E64: .4byte 0x00000572 _08018E68: .4byte 0x08393A4C _08018E6C: .4byte 0x0000FFF0 _08018E70: .4byte 0x00000553 _08018E74: cmp r0, #0 beq _08018F16 ldrb r1, [r7] movs r4, #0xf adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _08018F16 lsls r1, r5, #2 adds r1, r6, r1 movs r3, #0xae lsls r3, r3, #3 adds r0, r1, r3 mov r3, ip ldrh r2, [r3] ldrh r0, [r0] subs r2, r2, r0 ldr r0, _08018EF4 @ =0x00000572 adds r1, r1, r0 ldrh r0, [r3, #2] ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r3, r2, #0x10 lsrs r0, r3, #0x10 cmp r0, #0x3f bhi _08018F16 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 cmp r0, #0x3f bhi _08018F16 ldr r2, _08018EF8 @ =0x08391A4C asrs r0, r1, #0xa asrs r1, r3, #0x10 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r1, _08018EFC @ =0x0000FFF0 ands r1, r0 adds r3, r4, #0 ands r3, r0 cmp r3, #0 beq _08018F16 mov r2, sb strh r1, [r2] movs r0, #6 strb r0, [r7] ldr r3, _08018F00 @ =0x020314E0 ldr r1, [r3] ldr r2, _08018F04 @ =0x0000054F adds r0, r1, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08018F0C ldr r3, _08018F08 @ =0x00000553 adds r0, r1, r3 adds r0, r0, r5 movs r1, #4 b _08018F14 .align 2, 0 _08018EF4: .4byte 0x00000572 _08018EF8: .4byte 0x08391A4C _08018EFC: .4byte 0x0000FFF0 _08018F00: .4byte 0x020314E0 _08018F04: .4byte 0x0000054F _08018F08: .4byte 0x00000553 _08018F0C: ldr r2, _08018F34 @ =0x0000054D adds r0, r1, r2 adds r0, r0, r5 movs r1, #0x18 _08018F14: strb r1, [r0] _08018F16: movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08018F26 b _08018DBE _08018F26: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08018F34: .4byte 0x0000054D thumb_func_start sub_18F38 sub_18F38: @ 0x08018F38 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 subs r0, #1 cmp r0, #0xe bhi _0801901C lsls r0, r0, #2 ldr r1, _08018F4C @ =_08018F50 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018F4C: .4byte _08018F50 _08018F50: @ jump table .4byte _0801901C @ case 0 .4byte _08018F8C @ case 1 .4byte _08018FAC @ case 2 .4byte _0801901C @ case 3 .4byte _0801901C @ case 4 .4byte _0801901C @ case 5 .4byte _0801901C @ case 6 .4byte _08018FD0 @ case 7 .4byte _08018FFC @ case 8 .4byte _0801901C @ case 9 .4byte _0801901C @ case 10 .4byte _0801901C @ case 11 .4byte _0801901C @ case 12 .4byte _0801901C @ case 13 .4byte _0801901C @ case 14 _08018F8C: ldr r2, _08018FA4 @ =0x020314E0 ldr r0, [r2] ldr r1, _08018FA8 @ =0x00000532 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r2, #0xa7 lsls r2, r2, #3 adds r0, r0, r2 b _08018FC0 .align 2, 0 _08018FA4: .4byte 0x020314E0 _08018FA8: .4byte 0x00000532 _08018FAC: ldr r2, _08018FC8 @ =0x020314E0 ldr r0, [r2] ldr r3, _08018FCC @ =0x00000532 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r1, #0xa7 lsls r1, r1, #3 adds r0, r0, r1 _08018FC0: movs r1, #2 strb r1, [r0] b _0801901C .align 2, 0 _08018FC8: .4byte 0x020314E0 _08018FCC: .4byte 0x00000532 _08018FD0: ldr r2, _08018FF4 @ =0x020314E0 ldr r0, [r2] ldr r3, _08018FF8 @ =0x00000532 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r1, #0xa7 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r2, #0xa8 lsls r2, r2, #3 adds r0, r0, r2 b _08019018 .align 2, 0 _08018FF4: .4byte 0x020314E0 _08018FF8: .4byte 0x00000532 _08018FFC: ldr r1, _08019020 @ =0x020314E0 ldr r0, [r1] ldr r3, _08019024 @ =0x00000532 adds r0, r0, r3 movs r2, #1 strb r2, [r0] ldr r0, [r1] adds r3, #6 adds r0, r0, r3 strb r2, [r0] ldr r0, [r1] movs r1, #0xa8 lsls r1, r1, #3 adds r0, r0, r1 _08019018: movs r1, #0x64 strh r1, [r0] _0801901C: bx lr .align 2, 0 _08019020: .4byte 0x020314E0 _08019024: .4byte 0x00000532 thumb_func_start sub_19028 sub_19028: @ 0x08019028 push {lr} ldr r1, _08019040 @ =0x08137918 ldr r0, _08019044 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08019040: .4byte 0x08137918 _08019044: .4byte 0x0200B0C0 thumb_func_start sub_19048 sub_19048: @ 0x08019048 push {r4, r5, lr} ldr r1, _080190A4 @ =0x0200B0C0 movs r2, #0 str r2, [r1, #0x54] movs r0, #1 strb r0, [r1, #0xd] ldr r0, _080190A8 @ =0x02031510 str r2, [r0] adds r5, r1, #0 ldr r4, _080190AC @ =0x02031520 adds r3, r5, #7 _0801905E: lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r2, r0, r4 adds r1, r0, r3 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0801905E adds r4, r5, #0 ldrh r0, [r4, #0x30] cmp r0, #0 bne _0801908E bl sub_C00 ldr r1, [r4, #0x4c] adds r0, r0, r1 movs r1, #0x1e bl __umodsi3 strh r0, [r4, #0x30] _0801908E: ldrh r4, [r5, #0x30] movs r0, #3 ands r4, r0 adds r0, r4, #0 cmp r0, #1 beq _080190D8 cmp r0, #1 bgt _080190B0 cmp r0, #0 beq _080190BA b _0801911E .align 2, 0 _080190A4: .4byte 0x0200B0C0 _080190A8: .4byte 0x02031510 _080190AC: .4byte 0x02031520 _080190B0: cmp r0, #2 beq _080190F4 cmp r0, #3 beq _08019110 b _0801911E _080190BA: ldr r1, _080190C8 @ =0x02031520 ldr r0, _080190CC @ =0x00000A14 strh r0, [r1, #6] ldr r0, _080190D0 @ =0x081450F4 str r0, [r1, #0x10] ldr r0, _080190D4 @ =0x081531F4 b _0801911C .align 2, 0 _080190C8: .4byte 0x02031520 _080190CC: .4byte 0x00000A14 _080190D0: .4byte 0x081450F4 _080190D4: .4byte 0x081531F4 _080190D8: ldr r1, _080190E8 @ =0x02031520 movs r0, #0xf0 lsls r0, r0, #4 strh r0, [r1, #6] ldr r0, _080190EC @ =0x0814F9B4 str r0, [r1, #0x10] ldr r0, _080190F0 @ =0x08156E60 b _0801911C .align 2, 0 _080190E8: .4byte 0x02031520 _080190EC: .4byte 0x0814F9B4 _080190F0: .4byte 0x08156E60 _080190F4: ldr r1, _08019104 @ =0x02031520 movs r0, #0xd2 lsls r0, r0, #4 strh r0, [r1, #6] ldr r0, _08019108 @ =0x08148934 str r0, [r1, #0x10] ldr r0, _0801910C @ =0x08154618 b _0801911C .align 2, 0 _08019104: .4byte 0x02031520 _08019108: .4byte 0x08148934 _0801910C: .4byte 0x08154618 _08019110: ldr r1, _08019134 @ =0x02031520 ldr r0, _08019138 @ =0x00000E4C strh r0, [r1, #6] ldr r0, _0801913C @ =0x0814C174 str r0, [r1, #0x10] ldr r0, _08019140 @ =0x08155A3C _0801911C: str r0, [r1, #0xc] _0801911E: bl sub_49ED4 adds r1, r4, #0 cmp r1, #1 beq _0801914E cmp r1, #1 bgt _08019144 cmp r1, #0 beq _08019156 b _08019164 .align 2, 0 _08019134: .4byte 0x02031520 _08019138: .4byte 0x00000E4C _0801913C: .4byte 0x0814C174 _08019140: .4byte 0x08155A3C _08019144: cmp r1, #2 beq _08019156 cmp r1, #3 beq _0801915E b _08019164 _0801914E: movs r0, #0x20 bl m4aSongNumStart b _08019164 _08019156: movs r0, #0x1c bl m4aSongNumStart b _08019164 _0801915E: movs r0, #0x20 bl m4aSongNumStart _08019164: ldr r3, _08019188 @ =0x02031520 ldr r1, _0801918C @ =0x0200B134 movs r0, #0xcd adds r0, r0, r1 mov ip, r0 ldrb r0, [r0] movs r2, #0 strb r0, [r3, #5] mov r0, ip strb r2, [r0] subs r1, #0x74 ldrh r0, [r1, #0x30] adds r0, #1 strh r0, [r1, #0x30] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08019188: .4byte 0x02031520 _0801918C: .4byte 0x0200B134 thumb_func_start sub_19190 sub_19190: @ 0x08019190 push {r4, r5, lr} ldr r0, _080191A8 @ =0x020314E0 ldr r2, [r0] ldrb r1, [r2, #0x1d] cmp r1, #1 beq _080191C0 cmp r1, #1 bgt _080191AC cmp r1, #0 beq _080191B2 b _0801927C .align 2, 0 _080191A8: .4byte 0x020314E0 _080191AC: cmp r1, #2 beq _08019274 b _0801927C _080191B2: movs r0, #1 strb r0, [r2, #0x1d] ldr r0, _080191BC @ =0x0200B0C0 strb r1, [r0, #0xe] b _0801927C .align 2, 0 _080191BC: .4byte 0x0200B0C0 _080191C0: ldr r0, _080191D0 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bhi _080191D4 bl sub_4ACF0 b _080191D8 .align 2, 0 _080191D0: .4byte 0x0200B0C0 _080191D4: bl sub_4B000 _080191D8: ldr r3, _08019214 @ =0x0200B0C0 ldr r0, [r3, #0x54] ldr r1, _08019218 @ =0x02031520 movs r4, #6 ldrsh r2, [r1, r4] adds r1, r0, #0 adds r0, #1 str r0, [r3, #0x54] cmp r1, r2 bls _080191F0 movs r0, #1 strb r0, [r3, #0xe] _080191F0: ldrb r0, [r3, #0x1c] cmp r0, #0 beq _080191FA movs r0, #1 strb r0, [r3, #0xe] _080191FA: ldrb r0, [r3, #0xe] cmp r0, #0 beq _0801927C ldrb r0, [r3, #4] cmp r0, #1 bhi _0801921C bl sub_1D4D0 movs r0, #0 bl sub_31BE8 b _08019224 .align 2, 0 _08019214: .4byte 0x0200B0C0 _08019218: .4byte 0x02031520 _0801921C: cmp r0, #3 bne _08019224 bl sub_356A0 _08019224: ldr r4, _0801925C @ =0x0200B0C0 ldrb r1, [r4, #0xf] movs r3, #2 adds r0, r3, #0 ands r0, r1 ldr r2, _08019260 @ =0x020314E0 cmp r0, #0 beq _08019248 ldr r1, _08019264 @ =0x040000D4 ldr r0, [r2] ldr r5, _08019268 @ =0x0000111A adds r0, r0, r5 str r0, [r1] ldr r0, _0801926C @ =0x05000200 str r0, [r1, #4] ldr r0, _08019270 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] _08019248: ldr r0, [r2] strb r3, [r0, #0x1d] ldrb r0, [r4, #0xe] cmp r0, #2 bne _0801927C movs r0, #1 bl sub_4B408 b _0801927C .align 2, 0 _0801925C: .4byte 0x0200B0C0 _08019260: .4byte 0x020314E0 _08019264: .4byte 0x040000D4 _08019268: .4byte 0x0000111A _0801926C: .4byte 0x05000200 _08019270: .4byte 0x80000100 _08019274: ldr r1, _08019284 @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0801927C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08019284: .4byte 0x0200B0C0 thumb_func_start sub_19288 sub_19288: @ 0x08019288 push {r4, r5, lr} ldr r1, _080192E0 @ =0x0200B0C0 adds r2, r1, #0 adds r2, #0x36 movs r0, #0 strb r0, [r2] ldr r2, _080192E4 @ =0x02031520 ldrb r0, [r2, #5] ldr r4, _080192E8 @ =0x00000141 adds r3, r1, r4 strb r0, [r3] movs r3, #0 adds r5, r1, #7 adds r4, r2, #0 _080192A4: lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r2, r0, r5 adds r1, r0, r4 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _080192A4 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r2, _080192E0 @ =0x0200B0C0 ldr r0, _080192E4 @ =0x02031520 movs r3, #6 ldrsh r1, [r0, r3] ldr r0, [r2, #0x54] cmp r0, r1 bhs _080192EC movs r0, #1 bl sub_23C b _080192F2 .align 2, 0 _080192E0: .4byte 0x0200B0C0 _080192E4: .4byte 0x02031520 _080192E8: .4byte 0x00000141 _080192EC: movs r0, #9 bl sub_23C _080192F2: ldr r1, _08019300 @ =0x0200B0C0 movs r0, #0 str r0, [r1, #0x54] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08019300: .4byte 0x0200B0C0 thumb_func_start sub_19304 sub_19304: @ 0x08019304 push {lr} ldr r0, _08019318 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bls _08019312 bl sub_19734 _08019312: pop {r0} bx r0 .align 2, 0 _08019318: .4byte 0x0200B0C0 thumb_func_start sub_1931C sub_1931C: @ 0x0801931C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 str r0, [sp] ldr r0, _080193BC @ =0x020314E0 mov r8, r0 ldr r1, [r0] mov sb, r1 ldr r0, _080193C0 @ =0x000013BC add r0, sb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r2, _080193C4 @ =0x086ACE8C adds r7, r0, r2 ldrh r0, [r7] adds r0, #0x53 lsls r0, r0, #0x10 ldr r3, _080193C8 @ =0xFFFF0000 ldr r2, _080193CC @ =0x02031520 ldrh r1, [r2, #0x1c] ldrh r2, [r7, #2] adds r4, r1, r2 lsls r4, r4, #0x10 ldr r2, _080193D0 @ =0x0000FFFF lsrs r0, r0, #0x10 mov sl, r0 ldrh r0, [r7, #4] adds r0, #0x53 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ands r6, r3 orrs r6, r0 ldrh r7, [r7, #6] adds r1, r1, r7 lsls r1, r1, #0x10 ands r6, r2 orrs r6, r1 asrs r1, r1, #0x10 mov r3, sl orrs r3, r4 mov sl, r3 asrs r4, r4, #0x10 subs r1, r1, r4 ldr r2, [sp] lsls r0, r2, #0x10 asrs r0, r0, #0x10 lsls r2, r3, #0x10 asrs r2, r2, #0x10 subs r0, r0, r2 muls r1, r0, r1 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 lsls r1, r6, #0x10 asrs r1, r1, #0x10 subs r1, r1, r2 bl __divsi3 ldr r3, [sp] asrs r1, r3, #0x10 subs r4, r4, r1 lsls r1, r4, #4 subs r1, r1, r4 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #0x10 mov r2, r8 ldr r3, _080193C4 @ =0x086ACE8C ldr r4, _080193CC @ =0x02031520 cmp r0, #0 blt _080193D8 ldr r1, _080193D4 @ =0x000013C4 add r1, sb movs r0, #1 b _080193DE .align 2, 0 _080193BC: .4byte 0x020314E0 _080193C0: .4byte 0x000013BC _080193C4: .4byte 0x086ACE8C _080193C8: .4byte 0xFFFF0000 _080193CC: .4byte 0x02031520 _080193D0: .4byte 0x0000FFFF _080193D4: .4byte 0x000013C4 _080193D8: ldr r1, _08019460 @ =0x000013C4 add r1, sb movs r0, #0xff _080193DE: strb r0, [r1] ldr r2, [r2] mov r8, r2 ldr r0, _08019464 @ =0x000013C8 add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r7, r0, r3 ldrh r3, [r7] movs r0, #0x9c subs r3, r0, r3 ldr r1, _08019468 @ =0xFFFF0000 mov sb, r1 ldrh r2, [r4, #0x1c] ldrh r1, [r7, #2] adds r4, r2, r1 lsls r4, r4, #0x10 ldr r5, _0801946C @ =0x0000FFFF ldrh r1, [r7, #4] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r1, sb ands r6, r1 orrs r6, r0 ldrh r7, [r7, #6] adds r2, r2, r7 lsls r2, r2, #0x10 ands r6, r5 asrs r2, r2, #0x10 asrs r4, r4, #0x10 subs r2, r2, r4 ldr r1, [sp] lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r3, r3, #0x10 asrs r3, r3, #0x10 subs r0, r0, r3 adds r1, r2, #0 muls r1, r0, r1 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 lsls r1, r6, #0x10 asrs r1, r1, #0x10 subs r1, r1, r3 bl __divsi3 ldr r2, [sp] asrs r1, r2, #0x10 subs r4, r4, r1 lsls r1, r4, #4 subs r1, r1, r4 lsls r1, r1, #1 adds r0, r0, r1 lsls r0, r0, #0x10 cmp r0, #0 blt _08019474 ldr r1, _08019470 @ =0x000013D0 add r1, r8 movs r0, #1 b _0801947A .align 2, 0 _08019460: .4byte 0x000013C4 _08019464: .4byte 0x000013C8 _08019468: .4byte 0xFFFF0000 _0801946C: .4byte 0x0000FFFF _08019470: .4byte 0x000013D0 _08019474: ldr r1, _0801948C @ =0x000013D0 add r1, r8 movs r0, #0xff _0801947A: strb r0, [r1] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801948C: .4byte 0x000013D0 thumb_func_start sub_19490 sub_19490: @ 0x08019490 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _080194DC @ =0x0200B0C0 ldrb r1, [r4, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080194A8 bl sub_195C4 _080194A8: movs r3, #0 ldr r0, _080194E0 @ =0x020314E0 mov r8, r0 ldr r1, _080194E4 @ =0x00000A28 adds r1, r1, r4 mov sb, r1 ldr r7, _080194E8 @ =0x040000D4 ldr r2, _080194EC @ =0x03005000 mov ip, r2 _080194BA: mov r0, r8 ldr r2, [r0] lsls r3, r3, #0x10 asrs r1, r3, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 ldr r1, _080194F0 @ =0x000013BC adds r2, r2, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0xa ble _080194F4 movs r0, #0xa b _080194FA .align 2, 0 _080194DC: .4byte 0x0200B0C0 _080194E0: .4byte 0x020314E0 _080194E4: .4byte 0x00000A28 _080194E8: .4byte 0x040000D4 _080194EC: .4byte 0x03005000 _080194F0: .4byte 0x000013BC _080194F4: cmp r0, #0 bge _080194FC movs r0, #0 _080194FA: strb r0, [r2] _080194FC: asrs r6, r3, #0x10 movs r0, #0xb8 muls r0, r6, r0 mov r2, sb adds r5, r0, r2 ldrh r0, [r5] cmp r0, #0 beq _0801958A mov r0, r8 ldr r4, [r0] lsls r3, r6, #1 adds r0, r3, r6 lsls r0, r0, #2 adds r0, r4, r0 ldr r1, _080195A4 @ =0x000013BC adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsrs r0, r2, #0x1f adds r2, r2, r0 ldr r0, _080195A8 @ =0x086ACEF4 adds r3, r3, r0 adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r3] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r0, _080195AC @ =0x02031520 adds r4, #0x5a ldrh r0, [r0, #0x1c] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #4] asrs r2, r2, #1 lsls r2, r2, #9 ldr r0, _080195B0 @ =0x083FE44C adds r2, r2, r0 str r2, [r7] lsls r0, r6, #9 ldr r2, _080195B4 @ =0x06010000 adds r0, r0, r2 str r0, [r7, #4] ldr r0, _080195B8 @ =0x80000100 str r0, [r7, #8] ldr r0, [r7, #8] adds r4, r5, #0 adds r4, #8 ldrh r3, [r5, #8] lsls r3, r3, #3 add r3, ip movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _080195BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080195C0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, ip ldrb r0, [r5, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] _0801958A: adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080194BA pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080195A4: .4byte 0x000013BC _080195A8: .4byte 0x086ACEF4 _080195AC: .4byte 0x02031520 _080195B0: .4byte 0x083FE44C _080195B4: .4byte 0x06010000 _080195B8: .4byte 0x80000100 _080195BC: .4byte 0x000001FF _080195C0: .4byte 0xFFFFFE00 thumb_func_start sub_195C4 sub_195C4: @ 0x080195C4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _08019630 @ =0x020314E0 ldr r0, [r4] ldr r1, _08019634 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #0x10] bl sub_1931C movs r3, #0 adds r6, r4, #0 _080195DE: lsls r3, r3, #0x10 asrs r2, r3, #0x10 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r7, _08019638 @ =0x000013BC adds r0, r0, r7 ldr r1, [r6] adds r4, r1, r0 ldrb r1, [r4] movs r0, #0 strb r1, [r4, #1] strb r0, [r4, #2] ldr r5, [r6] adds r0, r5, #0 adds r0, #0xe adds r0, r0, r2 ldrb r2, [r0] mov r8, r3 cmp r2, #0 beq _0801963C movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 bne _08019624 adds r0, r5, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08019624 movs r0, #0x72 bl m4aSongNumStart _08019624: movs r1, #0 movs r0, #1 strb r0, [r4, #6] strb r1, [r4, #7] b _08019650 .align 2, 0 _08019630: .4byte 0x020314E0 _08019634: .4byte 0x0000132C _08019638: .4byte 0x000013BC _0801963C: lsls r0, r1, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08019650 ldrb r0, [r4, #7] cmp r0, #2 bls _0801964C strb r2, [r4, #6] _0801964C: adds r0, #1 strb r0, [r4, #7] _08019650: movs r5, #0 movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 beq _080196AC movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0xa beq _08019666 movs r5, #1 b _08019694 _08019666: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _08019694 adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _080196A8 @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _08019694: movs r0, #0 ldrsb r0, [r4, r0] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #1 strb r0, [r4, #2] ldrb r0, [r4] adds r0, #4 b _080196FA .align 2, 0 _080196A8: .4byte 0x00001364 _080196AC: movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _080196C8 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #6 strb r0, [r4, #2] ldr r5, _080196C4 @ =0x0000FFFF b _080196F6 .align 2, 0 _080196C4: .4byte 0x0000FFFF _080196C8: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _080196F6 adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _08019730 @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _080196F6: ldrb r0, [r4] subs r0, #2 _080196FA: strb r0, [r4] movs r0, #3 ldrsb r0, [r4, r0] lsls r1, r5, #0x10 asrs r1, r1, #0x10 muls r0, r1, r0 movs r1, #0 strb r0, [r4, #3] lsls r0, r0, #0x18 cmp r0, #0 bgt _08019712 strb r1, [r4, #4] _08019712: strb r5, [r4, #3] movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08019724 b _080195DE _08019724: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08019730: .4byte 0x00001364 thumb_func_start sub_19734 sub_19734: @ 0x08019734 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r0, #1 mov sl, r0 ldr r4, _08019780 @ =0x0200B0C0 ldrb r1, [r4, #0xf] ands r0, r1 cmp r0, #0 bne _08019750 bl sub_19894 _08019750: movs r3, #0 ldr r1, _08019784 @ =0x020314E0 mov sb, r1 ldr r2, _08019788 @ =0x040000D4 mov ip, r2 ldr r0, _0801978C @ =0x03005000 mov r8, r0 _0801975E: mov r1, sb ldr r2, [r1] lsls r3, r3, #0x10 asrs r1, r3, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 ldr r0, _08019790 @ =0x000013BC adds r2, r2, r0 movs r0, #0 ldrsb r0, [r2, r0] adds r7, r3, #0 cmp r0, #0xa ble _08019794 movs r0, #0xa b _0801979A .align 2, 0 _08019780: .4byte 0x0200B0C0 _08019784: .4byte 0x020314E0 _08019788: .4byte 0x040000D4 _0801978C: .4byte 0x03005000 _08019790: .4byte 0x000013BC _08019794: cmp r0, #0 bge _0801979C movs r0, #0 _0801979A: strb r0, [r2] _0801979C: asrs r6, r7, #0x10 movs r0, #0xb8 muls r0, r6, r0 ldr r1, _08019870 @ =0x0200B5E0 adds r5, r0, r1 ldrh r0, [r5] cmp r0, #0 beq _08019850 mov r2, sb ldr r4, [r2] lsls r3, r6, #1 adds r0, r3, r6 lsls r0, r0, #2 adds r0, r4, r0 ldr r1, _08019874 @ =0x000013BC adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsrs r0, r2, #0x1f adds r2, r2, r0 ldr r0, _08019878 @ =0x086ACEF4 adds r3, r3, r0 adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r3] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r0, _0801987C @ =0x02031520 adds r4, #0x5a ldrh r0, [r0, #0x1c] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #4] asrs r2, r2, #1 lsls r2, r2, #9 ldr r0, _08019880 @ =0x083FE44C adds r2, r2, r0 mov r0, ip str r2, [r0] lsls r0, r6, #9 ldr r1, _08019884 @ =0x06010000 adds r0, r0, r1 mov r2, ip str r0, [r2, #4] ldr r0, _08019888 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #4 ldrsh r0, [r5, r1] cmp r0, #0xb4 ble _08019808 movs r0, #0xb4 strh r0, [r5, #4] _08019808: adds r4, r5, #0 adds r4, #8 ldrh r3, [r5, #8] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _0801988C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08019890 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, r8 mov r0, sl lsls r3, r0, #2 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r3 strb r0, [r1, #5] _08019850: movs r1, #0x80 lsls r1, r1, #9 adds r0, r7, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08019860 b _0801975E _08019860: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08019870: .4byte 0x0200B5E0 _08019874: .4byte 0x000013BC _08019878: .4byte 0x086ACEF4 _0801987C: .4byte 0x02031520 _08019880: .4byte 0x083FE44C _08019884: .4byte 0x06010000 _08019888: .4byte 0x80000100 _0801988C: .4byte 0x000001FF _08019890: .4byte 0xFFFFFE00 thumb_func_start sub_19894 sub_19894: @ 0x08019894 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _08019914 @ =0x020314E0 ldr r0, [r4] ldr r1, _08019918 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #0x10] bl sub_1931C movs r3, #0 adds r6, r4, #0 mov r8, r3 _080198B2: lsls r3, r3, #0x10 asrs r2, r3, #0x10 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r7, _0801991C @ =0x000013BC adds r0, r0, r7 ldr r1, [r6] adds r4, r1, r0 ldrb r0, [r4] strb r0, [r4, #1] mov r0, r8 strb r0, [r4, #2] ldr r1, [r6] adds r0, r1, #0 adds r0, #0xe adds r0, r0, r2 ldrb r0, [r0] mov sb, r3 cmp r0, #0 beq _08019924 ldr r0, _08019920 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _08019924 movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 bne _08019908 adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08019908 movs r0, #0x1a ldrsb r0, [r1, r0] cmp r0, #0 bne _08019908 movs r0, #0x72 bl m4aSongNumStart _08019908: movs r0, #1 strb r0, [r4, #6] mov r1, r8 strb r1, [r4, #7] b _0801993A .align 2, 0 _08019914: .4byte 0x020314E0 _08019918: .4byte 0x0000132C _0801991C: .4byte 0x000013BC _08019920: .4byte 0x0200B0C0 _08019924: movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0xa bne _0801993A ldrb r0, [r4, #7] cmp r0, #2 bls _08019936 mov r7, r8 strb r7, [r4, #6] _08019936: adds r0, #1 strb r0, [r4, #7] _0801993A: movs r5, #0 movs r0, #6 ldrsb r0, [r4, r0] cmp r0, #0 beq _08019998 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0xa beq _08019950 movs r5, #1 b _0801997E _08019950: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _0801997E adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _08019994 @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _0801997E: movs r0, #0 ldrsb r0, [r4, r0] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #1 strb r0, [r4, #2] ldrb r0, [r4] adds r0, #4 b _080199E6 .align 2, 0 _08019994: .4byte 0x00001364 _08019998: movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _080199B4 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #6 strb r0, [r4, #2] ldr r5, _080199B0 @ =0x0000FFFF b _080199E2 .align 2, 0 _080199B0: .4byte 0x0000FFFF _080199B4: ldr r2, [r6] adds r3, r2, #0 adds r3, #0x5c movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 beq _080199E2 adds r0, r2, #0 adds r0, #0x60 ldrh r1, [r0] ldr r7, _08019A1C @ =0x00001364 adds r0, r2, r7 strh r1, [r0] adds r0, r2, #0 adds r0, #0x62 ldrh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] strh r5, [r3] movs r0, #7 bl sub_11B0 _080199E2: ldrb r0, [r4] subs r0, #2 _080199E6: strb r0, [r4] movs r0, #3 ldrsb r0, [r4, r0] lsls r1, r5, #0x10 asrs r1, r1, #0x10 muls r0, r1, r0 movs r1, #0 strb r0, [r4, #3] lsls r0, r0, #0x18 cmp r0, #0 bgt _080199FE strb r1, [r4, #4] _080199FE: strb r5, [r4, #3] movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08019A10 b _080198B2 _08019A10: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08019A1C: .4byte 0x00001364 thumb_func_start sub_19A20 sub_19A20: @ 0x08019A20 push {r4, r5, r6, lr} ldr r4, _08019AF0 @ =0x020314E0 ldr r0, [r4] ldr r1, _08019AF4 @ =0x0000073D adds r0, r0, r1 movs r6, #2 strb r6, [r0] bl sub_1D5D8 movs r0, #0 bl sub_4E9F0 bl sub_1DAD8 bl sub_23954 bl sub_239A4 ldr r1, [r4] movs r3, #0xb5 lsls r3, r3, #2 adds r2, r1, r3 movs r5, #0 movs r0, #0x49 strh r0, [r2] ldr r0, _08019AF8 @ =0x000002D6 adds r2, r1, r0 movs r0, #0x9a strh r0, [r2] ldr r2, _08019AFC @ =0x000002DA adds r1, r1, r2 strb r5, [r1] bl sub_23E18 bl sub_1DDDC ldr r0, [r4] movs r3, #0xb8 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] ldr r0, [r4] ldr r2, _08019B00 @ =0x00000171 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] adds r3, #2 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] movs r1, #0xb6 lsls r1, r1, #1 adds r0, r0, r1 strb r5, [r0] bl sub_1EC48 bl sub_1F158 ldr r0, [r4] ldr r2, _08019B04 @ =0x000001E5 adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] movs r3, #0xf3 lsls r3, r3, #1 adds r1, r0, r3 movs r0, #1 strb r0, [r1] bl sub_1F2A4 bl sub_21B0C bl sub_1F59C ldr r0, [r4] movs r2, #0xec lsls r2, r2, #1 adds r1, r0, r2 subs r2, #0xd8 strh r2, [r1] movs r3, #0xed lsls r3, r3, #1 adds r1, r0, r3 strh r2, [r1] ldr r1, _08019B08 @ =0x0000029F adds r0, r0, r1 strb r6, [r0] bl sub_2C9A4 ldr r0, [r4] movs r2, #0xbb lsls r2, r2, #2 adds r1, r0, r2 movs r2, #3 strh r2, [r1] ldr r3, _08019B0C @ =0x000002EE adds r0, r0, r3 strh r2, [r0] bl sub_31B30 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08019AF0: .4byte 0x020314E0 _08019AF4: .4byte 0x0000073D _08019AF8: .4byte 0x000002D6 _08019AFC: .4byte 0x000002DA _08019B00: .4byte 0x00000171 _08019B04: .4byte 0x000001E5 _08019B08: .4byte 0x0000029F _08019B0C: .4byte 0x000002EE thumb_func_start sub_19B10 sub_19B10: @ 0x08019B10 push {lr} bl sub_19B90 bl sub_19E10 ldr r0, _08019B54 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _08019B26 bl sub_19F70 _08019B26: bl sub_19FA0 ldr r0, _08019B58 @ =0x020314E0 ldr r0, [r0] movs r2, #0xa7 lsls r2, r2, #2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08019B50 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08019B50 ldr r0, _08019B5C @ =0x02032EE0 ldr r1, _08019B60 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _08019B50: pop {r0} bx r0 .align 2, 0 _08019B54: .4byte 0x0200B0C0 _08019B58: .4byte 0x020314E0 _08019B5C: .4byte 0x02032EE0 _08019B60: .4byte 0x0000FFFF thumb_func_start sub_19B64 sub_19B64: @ 0x08019B64 ldr r2, _08019B88 @ =0x020314E0 ldr r3, [r2] movs r1, #2 strb r1, [r3, #0x16] ldr r1, [r2] strb r0, [r1, #0x14] ldr r0, [r2] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08019B86 ldr r0, _08019B8C @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r0, #0 strh r0, [r1] _08019B86: bx lr .align 2, 0 _08019B88: .4byte 0x020314E0 _08019B8C: .4byte 0x0200B0C0 thumb_func_start sub_19B90 sub_19B90: @ 0x08019B90 push {r4, lr} ldr r4, _08019BA8 @ =0x020314E0 ldr r2, [r4] movs r0, #0x16 ldrsb r0, [r2, r0] cmp r0, #1 beq _08019BD0 cmp r0, #1 bgt _08019BAC cmp r0, #0 beq _08019BB2 b _08019BFE .align 2, 0 _08019BA8: .4byte 0x020314E0 _08019BAC: cmp r0, #2 beq _08019BE8 b _08019BFE _08019BB2: ldr r1, _08019BCC @ =0x086AD4C4 movs r0, #0x13 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, [r4] ldrb r0, [r1, #0x16] adds r0, #1 strb r0, [r1, #0x16] b _08019BFE .align 2, 0 _08019BCC: .4byte 0x086AD4C4 _08019BD0: ldr r0, _08019BE4 @ =0x086AD4E8 movs r1, #0x13 ldrsb r1, [r2, r1] lsls r1, r1, #2 adds r1, r1, r0 ldr r0, [r1] bl _call_via_r0 b _08019BFE .align 2, 0 _08019BE4: .4byte 0x086AD4E8 _08019BE8: bl sub_19D04 ldr r0, [r4] ldrb r1, [r0, #0x13] movs r2, #0 strb r1, [r0, #0x15] ldr r1, [r4] ldrb r0, [r1, #0x14] strb r0, [r1, #0x13] ldr r0, [r4] strb r2, [r0, #0x16] _08019BFE: pop {r4} pop {r0} bx r0 thumb_func_start sub_19C04 sub_19C04: @ 0x08019C04 push {r4, r5, r6, lr} ldr r0, _08019C3C @ =0x020314E0 ldr r1, [r0] movs r0, #0x15 ldrsb r0, [r1, r0] cmp r0, #0 ble _08019C7A ldr r0, _08019C40 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _08019C50 ldr r2, _08019C44 @ =0x00000283 adds r0, r1, r2 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _08019C48 movs r0, #0x1c bl m4aSongNumStart b _08019C7A .align 2, 0 _08019C3C: .4byte 0x020314E0 _08019C40: .4byte 0x0200B0C0 _08019C44: .4byte 0x00000283 _08019C48: movs r0, #0x5b bl m4aSongNumStart b _08019C7A _08019C50: ldr r4, _08019C70 @ =0x00000283 adds r0, r1, r4 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _08019C74 movs r0, #0x20 bl m4aSongNumStart b _08019C7A .align 2, 0 _08019C70: .4byte 0x00000283 _08019C74: movs r0, #0x5c bl m4aSongNumStart _08019C7A: ldr r5, _08019CB8 @ =0x020314E0 ldr r2, [r5] ldrb r0, [r2, #0x15] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08019CB2 ldr r3, _08019CBC @ =0x0000073C adds r0, r2, r3 ldrb r1, [r0] ldr r6, _08019CC0 @ =0x0000072E adds r0, r2, r6 movs r4, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _08019CC4 @ =0x0000073D adds r1, r0, r2 ldrb r1, [r1] adds r6, #1 adds r0, r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08019CB2: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08019CB8: .4byte 0x020314E0 _08019CBC: .4byte 0x0000073C _08019CC0: .4byte 0x0000072E _08019CC4: .4byte 0x0000073D thumb_func_start sub_19CC8 sub_19CC8: @ 0x08019CC8 push {lr} ldr r0, _08019CEC @ =0x020314E0 ldr r1, [r0] ldr r2, _08019CF0 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08019CFE ldr r0, _08019CF4 @ =0x000006EE adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0 beq _08019CF8 subs r0, #1 strh r0, [r1] b _08019CFE .align 2, 0 _08019CEC: .4byte 0x020314E0 _08019CF0: .4byte 0x00000714 _08019CF4: .4byte 0x000006EE _08019CF8: movs r0, #2 bl sub_19B64 _08019CFE: pop {r0} bx r0 thumb_func_start sub_19D04 sub_19D04: @ 0x08019D04 push {r4, r5, r6, lr} ldr r0, _08019D80 @ =0x020314E0 ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #2 bne _08019D20 movs r0, #0x14 ldrsb r0, [r1, r0] cmp r0, #2 ble _08019D20 movs r0, #0 bl sub_21238 _08019D20: ldr r5, _08019D80 @ =0x020314E0 ldr r2, [r5] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08019DFC movs r0, #0x14 ldrsb r0, [r2, r0] cmp r0, #3 bne _08019D5C ldr r3, _08019D84 @ =0x0000072E adds r0, r2, r3 ldrb r1, [r0] ldr r4, _08019D88 @ =0x0000073C adds r0, r2, r4 movs r4, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _08019D8C @ =0x0000072F adds r1, r0, r2 ldrb r1, [r1] ldr r6, _08019D90 @ =0x0000073D adds r0, r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08019D5C: ldr r4, [r5] movs r0, #0x14 ldrsb r0, [r4, r0] cmp r0, #4 bne _08019D94 ldr r3, _08019D84 @ =0x0000072E adds r0, r4, r3 ldrb r1, [r0] ldr r2, _08019D88 @ =0x0000073C adds r0, r4, r2 movs r4, #0 strb r1, [r0] ldr r0, [r5] subs r2, #0xd adds r1, r0, r2 ldrb r1, [r1] ldr r6, _08019D90 @ =0x0000073D b _08019DEC .align 2, 0 _08019D80: .4byte 0x020314E0 _08019D84: .4byte 0x0000072E _08019D88: .4byte 0x0000073C _08019D8C: .4byte 0x0000072F _08019D90: .4byte 0x0000073D _08019D94: cmp r0, #6 bne _08019DD0 ldr r3, _08019DC0 @ =0x0000072F adds r0, r4, r3 ldrb r2, [r0] ldr r1, _08019DC4 @ =0x0000073D adds r0, r4, r1 movs r1, #0 strb r2, [r0] ldr r0, [r5] ldr r2, _08019DC8 @ =0x0000073C adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] ldr r4, _08019DCC @ =0x0000072E adds r0, r0, r4 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r1, [r0] b _08019DFC .align 2, 0 _08019DC0: .4byte 0x0000072F _08019DC4: .4byte 0x0000073D _08019DC8: .4byte 0x0000073C _08019DCC: .4byte 0x0000072E _08019DD0: cmp r0, #3 ble _08019DFC ldr r3, _08019E04 @ =0x0000072E adds r0, r4, r3 ldrb r1, [r0] ldr r6, _08019E08 @ =0x0000073C adds r0, r4, r6 movs r4, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _08019E0C @ =0x0000072F adds r1, r0, r2 ldrb r1, [r1] adds r6, #1 _08019DEC: adds r0, r0, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08019DFC: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08019E04: .4byte 0x0000072E _08019E08: .4byte 0x0000073C _08019E0C: .4byte 0x0000072F thumb_func_start sub_19E10 sub_19E10: @ 0x08019E10 push {r4, lr} bl sub_1A0F4 bl sub_1DA74 ldr r4, _08019EA4 @ =0x020314E0 ldr r0, [r4] movs r2, #0xa8 lsls r2, r2, #2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08019E4E subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08019E4E bl sub_C00 ldr r4, [r4] ldr r1, _08019EA8 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #0x64 bl __umodsi3 adds r0, #1 ldr r3, _08019EAC @ =0x0000029F adds r4, r4, r3 strb r0, [r4] _08019E4E: ldr r4, _08019EA4 @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6d bgt _08019E68 bl sub_1D5D8 bl sub_1DAD8 bl sub_2C9A4 _08019E68: bl sub_2CA9C ldr r0, [r4] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xa7 bgt _08019E7C bl sub_239A4 _08019E7C: ldr r0, [r4] adds r0, #0x68 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xdb bgt _08019EBC bl sub_23E18 ldr r0, [r4] movs r1, #0xa9 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08019EB0 bl sub_1DC7C b _08019EB4 .align 2, 0 _08019EA4: .4byte 0x020314E0 _08019EA8: .4byte 0x0200B0C0 _08019EAC: .4byte 0x0000029F _08019EB0: bl sub_1EC48 _08019EB4: bl sub_1F158 bl sub_1F59C _08019EBC: bl sub_1F698 ldr r4, _08019F64 @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x3f ble _08019ED6 bl sub_1FA48 bl sub_1FBC4 _08019ED6: ldr r0, [r4] adds r0, #0x68 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x73 ble _08019EE6 bl sub_2C538 _08019EE6: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x82 ble _08019EF6 bl sub_201B8 _08019EF6: bl sub_2CE80 ldr r0, [r4] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xa8 ble _08019F0A bl sub_2D104 _08019F0A: bl sub_203CC bl sub_21B0C bl sub_4E814 bl sub_1D128 bl sub_21D78 bl sub_31B30 ldr r0, [r4] movs r3, #0xca lsls r3, r3, #1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08019F38 bl sub_225F0 _08019F38: bl sub_472E4 ldr r2, [r4] ldr r0, _08019F68 @ =0x00001328 adds r1, r2, r0 ldrh r0, [r1] cmp r0, #0 beq _08019F5C subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08019F5C ldr r3, _08019F6C @ =0x00001330 adds r1, r2, r3 adds r3, #4 adds r0, r2, r3 str r0, [r1] _08019F5C: pop {r4} pop {r0} bx r0 .align 2, 0 _08019F64: .4byte 0x020314E0 _08019F68: .4byte 0x00001328 _08019F6C: .4byte 0x00001330 thumb_func_start sub_19F70 sub_19F70: @ 0x08019F70 push {lr} bl sub_1DDDC bl sub_1A9E8 bl sub_1F2A4 bl sub_1FF0C ldr r0, _08019F9C @ =0x020314E0 ldr r0, [r0] movs r2, #0xc0 lsls r2, r2, #3 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08019F96 subs r0, #1 strh r0, [r1] _08019F96: pop {r0} bx r0 .align 2, 0 _08019F9C: .4byte 0x020314E0 thumb_func_start sub_19FA0 sub_19FA0: @ 0x08019FA0 push {r4, r5, lr} ldr r0, _0801A0DC @ =0x020314E0 ldr r2, [r0] ldrb r1, [r2, #4] adds r5, r0, #0 cmp r1, #0 beq _0801A038 movs r1, #0xe2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0 bne _08019FE2 movs r3, #0xf1 lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 beq _08019FE2 subs r3, #0x22 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _08019FE2 ldr r3, _0801A0E0 @ =0x0000061C adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08019FE2 strb r0, [r1] _08019FE2: ldr r0, [r5] movs r2, #0xe2 lsls r2, r2, #3 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] adds r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _0801A0E4 @ =0x00000712 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #6 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] adds r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #7 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _0801A038: ldr r1, [r5] ldrb r0, [r1, #5] cmp r0, #0 beq _0801A0D4 movs r2, #0xe2 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _0801A076 movs r3, #0xf1 lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 beq _0801A076 subs r3, #0x22 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _0801A076 ldr r3, _0801A0E0 @ =0x0000061C adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A076 movs r0, #1 strb r0, [r2] _0801A076: ldr r0, [r5] ldr r2, _0801A0E8 @ =0x00000713 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] subs r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _0801A0EC @ =0x00000711 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] subs r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] subs r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #8 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r1, _0801A0F0 @ =0x00000301 adds r0, r0, r1 movs r1, #1 strb r1, [r0] _0801A0D4: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0801A0DC: .4byte 0x020314E0 _0801A0E0: .4byte 0x0000061C _0801A0E4: .4byte 0x00000712 _0801A0E8: .4byte 0x00000713 _0801A0EC: .4byte 0x00000711 _0801A0F0: .4byte 0x00000301 thumb_func_start sub_1A0F4 sub_1A0F4: @ 0x0801A0F4 push {r4, r5, r6, r7, lr} ldr r2, _0801A140 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r4, #1 adds r0, r4, #0 ands r0, r1 cmp r0, #0 bne _0801A106 b _0801A2B2 _0801A106: ldr r1, _0801A144 @ =0x020314E0 ldr r0, [r1] ldr r6, _0801A148 @ =0x000005F7 adds r0, r0, r6 strb r4, [r0] ldr r3, [r1] adds r0, r3, #0 adds r0, #0xfa movs r5, #0 ldrsb r5, [r0, r5] adds r7, r1, #0 cmp r5, #0 beq _0801A1D4 movs r0, #2 strb r0, [r3, #0x1f] ldr r0, [r7] ldr r1, _0801A14C @ =0x000005FA adds r0, r0, r1 strb r4, [r0] ldr r2, [r7] adds r1, r2, #0 adds r1, #0xea ldrh r0, [r1] cmp r0, #0 beq _0801A150 subs r0, #1 strh r0, [r1] b _0801A1C0 .align 2, 0 _0801A140: .4byte 0x0200B0C0 _0801A144: .4byte 0x020314E0 _0801A148: .4byte 0x000005F7 _0801A14C: .4byte 0x000005FA _0801A150: adds r1, r2, #0 adds r1, #0xee ldrh r3, [r1] mov ip, r3 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bne _0801A16E adds r3, r2, #0 adds r3, #0xec ldrh r0, [r3] adds r1, r0, #0 cmp r1, #0 bne _0801A1B4 b _0801A1BA _0801A16E: adds r0, r2, #0 adds r0, #0x68 movs r6, #0 ldrsh r5, [r0, r6] movs r0, #0 ldrsh r4, [r1, r0] adds r1, r5, r4 adds r0, r2, #0 adds r0, #0xe8 movs r6, #0 ldrsh r3, [r0, r6] cmp r1, r3 bgt _0801A194 adds r1, r2, #0 adds r1, #0xe6 ldrh r0, [r1] add r0, ip strh r0, [r1] b _0801A1C0 _0801A194: subs r0, r5, r4 cmp r0, r3 blt _0801A1A8 adds r1, r2, #0 adds r1, #0xe6 ldrh r0, [r1] mov r2, ip subs r0, r0, r2 strh r0, [r1] b _0801A1C0 _0801A1A8: adds r3, r2, #0 adds r3, #0xec ldrh r0, [r3] adds r1, r0, #0 cmp r1, #0 beq _0801A1BA _0801A1B4: subs r0, #1 strh r0, [r3] b _0801A1C0 _0801A1BA: adds r0, r2, #0 adds r0, #0xfa strb r1, [r0] _0801A1C0: ldr r0, [r7] adds r0, #0xf2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801A2B2 bl sub_1A2C0 b _0801A2B2 _0801A1D4: adds r0, r3, #0 adds r0, #0xee movs r4, #0 ldrsh r0, [r0, r4] adds r1, r3, #0 adds r1, #0xe6 cmp r0, #0 beq _0801A1EC movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bne _0801A216 _0801A1EC: movs r4, #0 strh r5, [r1] strb r4, [r3, #0x1f] ldrb r1, [r2, #0xf] movs r0, #0xfe ands r0, r1 strb r0, [r2, #0xf] ldr r0, [r7] adds r0, r0, r6 strb r4, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0xfb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A216 ldr r5, _0801A2B8 @ =0x000005FA adds r0, r1, r5 strb r4, [r0] _0801A216: ldr r3, [r7] adds r1, r3, #0 adds r1, #0xe6 ldrh r4, [r1] movs r6, #0 ldrsh r0, [r1, r6] cmp r0, #0 ble _0801A264 adds r0, r3, #0 adds r0, #0xee ldrh r0, [r0] subs r0, r4, r0 movs r4, #0 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bgt _0801A2B2 movs r0, #0 strh r0, [r1] strb r4, [r3, #0x1f] ldrb r1, [r2, #0xf] movs r0, #0xfe ands r0, r1 strb r0, [r2, #0xf] ldr r0, [r7] ldr r1, _0801A2BC @ =0x000005F7 adds r0, r0, r1 strb r4, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0xfb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A264 ldr r3, _0801A2B8 @ =0x000005FA adds r0, r1, r3 strb r4, [r0] _0801A264: ldr r3, [r7] adds r1, r3, #0 adds r1, #0xe6 ldrh r4, [r1] movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0 bge _0801A2B2 adds r0, r3, #0 adds r0, #0xee ldrh r0, [r0] adds r0, r4, r0 movs r4, #0 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 blt _0801A2B2 movs r0, #0 strh r0, [r1] strb r4, [r3, #0x1f] ldrb r1, [r2, #0xf] movs r0, #0xfe ands r0, r1 strb r0, [r2, #0xf] ldr r0, [r7] ldr r6, _0801A2BC @ =0x000005F7 adds r0, r0, r6 strb r4, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0xfb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801A2B2 ldr r2, _0801A2B8 @ =0x000005FA adds r0, r1, r2 strb r4, [r0] _0801A2B2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801A2B8: .4byte 0x000005FA _0801A2BC: .4byte 0x000005F7 thumb_func_start sub_1A2C0 sub_1A2C0: @ 0x0801A2C0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r2, _0801A328 @ =0x020314E0 ldr r4, [r2] adds r5, r4, #0 adds r5, #0xf2 movs r0, #0 ldrsb r0, [r5, r0] subs r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] ldr r1, _0801A32C @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r0, [r0, #0x2c] mov r8, r0 ldr r0, [r1, #0x4c] movs r7, #7 ands r0, r7 lsrs r3, r0, #2 mov r6, r8 ldrh r0, [r6] mov sb, r1 cmp r0, #0 bne _0801A2FC b _0801A974 _0801A2FC: movs r6, #0 movs r0, #0 mov r1, r8 strh r0, [r1, #2] movs r0, #0xc8 strh r0, [r1, #4] movs r1, #0 ldrsb r1, [r5, r1] cmp r1, #4 bne _0801A3EC adds r0, r4, #0 adds r0, #0xea ldrh r5, [r0] cmp r5, #0 beq _0801A330 movs r0, #0xb9 lsls r0, r0, #1 mov r2, r8 strh r0, [r2, #2] movs r0, #0x2c strh r0, [r2, #4] b _0801A8B8 .align 2, 0 _0801A328: .4byte 0x020314E0 _0801A32C: .4byte 0x0200B0C0 _0801A330: adds r0, r4, #0 adds r0, #0xe4 strb r1, [r0] ldr r1, _0801A3AC @ =0x040000D4 ldr r2, _0801A3B0 @ =0x086ACEF8 ldr r3, _0801A3B4 @ =0x020314E0 ldr r0, [r3] adds r0, #0xf2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0801A3B8 @ =0x06015800 str r0, [r1, #4] ldr r0, _0801A3BC @ =0x800012F0 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_2CD98 ldr r4, _0801A3B4 @ =0x020314E0 ldr r3, [r4] adds r1, r3, #0 adds r1, #0xf4 ldrh r2, [r1] movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0 ble _0801A3C0 subs r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x77 bne _0801A384 bl m4aMPlayAllStop movs r0, #0x10 bl m4aSongNumStart _0801A384: ldr r0, _0801A3B4 @ =0x020314E0 ldr r1, [r0] adds r1, #0xf6 ldrh r0, [r1] subs r0, #0x28 strh r0, [r1] movs r2, #0 ldrsh r0, [r1, r2] movs r1, #0xa bl __divsi3 movs r3, #0xb9 lsls r3, r3, #1 adds r0, r0, r3 mov r4, r8 strh r0, [r4, #2] movs r0, #0x2c strh r0, [r4, #4] b _0801A8B8 .align 2, 0 _0801A3AC: .4byte 0x040000D4 _0801A3B0: .4byte 0x086ACEF8 _0801A3B4: .4byte 0x020314E0 _0801A3B8: .4byte 0x06015800 _0801A3BC: .4byte 0x800012F0 _0801A3C0: ldr r0, _0801A3E4 @ =0x0000FF92 mov r7, r8 strh r0, [r7, #2] movs r0, #0x2c strh r0, [r7, #4] mov r1, sb ldr r0, [r1, #0x44] ldr r0, [r0, #0x2c] strh r5, [r0] adds r0, r3, #0 adds r0, #0xf2 strb r6, [r0] ldr r2, _0801A3E8 @ =0x020314E0 ldr r0, [r2] adds r0, #0xe4 strb r6, [r0] b _0801A8B8 .align 2, 0 _0801A3E4: .4byte 0x0000FF92 _0801A3E8: .4byte 0x020314E0 _0801A3EC: adds r0, r4, #0 adds r0, #0xe4 movs r4, #4 mov sl, r4 mov r5, sl strb r5, [r0] ldr r6, _0801A4D8 @ =0x040000D4 ldr r1, _0801A4DC @ =0x086ACEF8 ldr r2, _0801A4E0 @ =0x020314E0 ldr r0, [r2] adds r0, #0xf2 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #2 adds r2, r2, r1 adds r1, r3, #0 lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #3 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, [r2] adds r1, r1, r0 str r1, [r6] ldr r0, _0801A4E4 @ =0x06015800 str r0, [r6, #4] ldr r0, _0801A4E8 @ =0x800010E0 str r0, [r6, #8] ldr r0, [r6, #8] ldr r3, _0801A4E0 @ =0x020314E0 ldr r5, [r3] adds r1, r5, #0 adds r1, #0xf4 ldrh r2, [r1] movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bgt _0801A43A b _0801A6C8 _0801A43A: subs r0, r2, #1 strh r0, [r1] adds r0, r5, #0 adds r0, #0xf0 ldrh r0, [r0] cmp r0, #0 bne _0801A44A b _0801A692 _0801A44A: cmp r0, #0x28 bne _0801A456 ldr r0, _0801A4EC @ =0x02032F20 ldr r1, _0801A4F0 @ =0x0869F7C8 bl MPlayStart _0801A456: ldr r5, _0801A4E0 @ =0x020314E0 ldr r2, [r5] adds r1, r2, #0 adds r1, #0xf0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bhi _0801A474 adds r1, #6 ldrh r0, [r1] adds r0, #0xa0 strh r0, [r1] _0801A474: ldr r6, _0801A4E0 @ =0x020314E0 ldr r2, [r6] adds r1, r2, #0 adds r1, #0xf0 ldrh r3, [r1] adds r0, r3, #0 subs r0, #0x21 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bls _0801A48C b _0801A67A _0801A48C: cmp r3, #0x24 bls _0801A492 b _0801A5A0 _0801A492: mov r3, sb ldrh r0, [r3, #0x3c] strh r7, [r3, #0x3c] ldrh r0, [r1] cmp r0, #0x23 bls _0801A4A0 b _0801A67A _0801A4A0: adds r0, r2, #0 adds r0, #0x25 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _0801A4BA ldr r4, _0801A4F4 @ =0x000001A5 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A4C8 _0801A4BA: cmp r1, #4 bne _0801A500 ldr r5, _0801A4F8 @ =0x000006DC adds r0, r2, r5 ldrb r0, [r0] cmp r0, #9 bne _0801A500 _0801A4C8: ldr r0, _0801A4E0 @ =0x020314E0 ldr r1, [r0] adds r1, #0x70 movs r2, #0 strb r2, [r1] ldr r2, _0801A4FC @ =0x02031520 b _0801A51C .align 2, 0 _0801A4D8: .4byte 0x040000D4 _0801A4DC: .4byte 0x086ACEF8 _0801A4E0: .4byte 0x020314E0 _0801A4E4: .4byte 0x06015800 _0801A4E8: .4byte 0x800010E0 _0801A4EC: .4byte 0x02032F20 _0801A4F0: .4byte 0x0869F7C8 _0801A4F4: .4byte 0x000001A5 _0801A4F8: .4byte 0x000006DC _0801A4FC: .4byte 0x02031520 _0801A500: ldr r3, _0801A534 @ =0x020314E0 ldr r0, [r3] adds r0, #0x70 movs r1, #1 strb r1, [r0] ldr r1, _0801A538 @ =0x040000D4 ldr r2, _0801A53C @ =0x02031520 ldr r0, [r2, #0x34] str r0, [r1] ldr r0, _0801A540 @ =0x05000200 str r0, [r1, #4] ldr r0, _0801A544 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801A51C: ldr r0, _0801A548 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bne _0801A554 ldr r1, _0801A538 @ =0x040000D4 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801A54C @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A550 @ =0x80000060 b _0801A562 .align 2, 0 _0801A534: .4byte 0x020314E0 _0801A538: .4byte 0x040000D4 _0801A53C: .4byte 0x02031520 _0801A540: .4byte 0x05000200 _0801A544: .4byte 0x80000010 _0801A548: .4byte 0x0200B0C0 _0801A54C: .4byte 0x05000240 _0801A550: .4byte 0x80000060 _0801A554: ldr r1, _0801A588 @ =0x040000D4 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801A58C @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A590 @ =0x80000070 _0801A562: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801A588 @ =0x040000D4 ldr r0, [r2, #0x34] movs r6, #0xa0 lsls r6, r6, #1 adds r0, r0, r6 str r0, [r1] ldr r0, _0801A594 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A598 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _0801A59C @ =0x020314E0 ldr r0, [r7] adds r0, #0x6f movs r1, #2 b _0801A678 .align 2, 0 _0801A588: .4byte 0x040000D4 _0801A58C: .4byte 0x05000240 _0801A590: .4byte 0x80000070 _0801A594: .4byte 0x05000340 _0801A598: .4byte 0x80000030 _0801A59C: .4byte 0x020314E0 _0801A5A0: mov r3, sb ldrh r0, [r3, #0x3c] mov r4, sl strh r4, [r3, #0x3c] ldrh r0, [r1] cmp r0, #0x27 bhi _0801A67A adds r0, r2, #0 adds r0, #0x25 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _0801A5C8 ldr r5, _0801A5E4 @ =0x000001A5 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A5D6 _0801A5C8: cmp r1, #4 bne _0801A5F4 ldr r6, _0801A5E8 @ =0x000006DC adds r0, r2, r6 ldrb r0, [r0] cmp r0, #9 bne _0801A5F4 _0801A5D6: ldr r0, _0801A5EC @ =0x020314E0 ldr r1, [r0] adds r1, #0x70 movs r2, #0 strb r2, [r1] ldr r2, _0801A5F0 @ =0x02031520 b _0801A610 .align 2, 0 _0801A5E4: .4byte 0x000001A5 _0801A5E8: .4byte 0x000006DC _0801A5EC: .4byte 0x020314E0 _0801A5F0: .4byte 0x02031520 _0801A5F4: ldr r3, _0801A628 @ =0x020314E0 ldr r0, [r3] adds r0, #0x70 movs r1, #1 strb r1, [r0] ldr r1, _0801A62C @ =0x040000D4 ldr r2, _0801A630 @ =0x02031520 ldr r0, [r2, #0x30] str r0, [r1] ldr r0, _0801A634 @ =0x05000200 str r0, [r1, #4] ldr r0, _0801A638 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801A610: ldr r0, _0801A63C @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bne _0801A648 ldr r1, _0801A62C @ =0x040000D4 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801A640 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A644 @ =0x80000060 b _0801A656 .align 2, 0 _0801A628: .4byte 0x020314E0 _0801A62C: .4byte 0x040000D4 _0801A630: .4byte 0x02031520 _0801A634: .4byte 0x05000200 _0801A638: .4byte 0x80000010 _0801A63C: .4byte 0x0200B0C0 _0801A640: .4byte 0x05000240 _0801A644: .4byte 0x80000060 _0801A648: ldr r1, _0801A6B0 @ =0x040000D4 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801A6B4 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801A6B8 @ =0x80000070 _0801A656: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801A6B0 @ =0x040000D4 ldr r0, [r2, #0x30] movs r7, #0xa0 lsls r7, r7, #1 adds r0, r0, r7 str r0, [r1] ldr r0, _0801A6BC @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A6C0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801A6C4 @ =0x020314E0 ldr r0, [r1] adds r0, #0x6f movs r1, #1 _0801A678: strb r1, [r0] _0801A67A: ldr r2, _0801A6C4 @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0xf0 ldrh r2, [r0] cmp r2, #0 bne _0801A692 adds r0, #6 strh r2, [r0] adds r1, #0xf8 movs r0, #0x3c strh r0, [r1] _0801A692: ldr r3, _0801A6C4 @ =0x020314E0 ldr r0, [r3] adds r0, #0xf6 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 adds r0, #0x7f mov r5, r8 strh r0, [r5, #2] movs r0, #0x2c strh r0, [r5, #4] b _0801A8B8 .align 2, 0 _0801A6B0: .4byte 0x040000D4 _0801A6B4: .4byte 0x05000240 _0801A6B8: .4byte 0x80000070 _0801A6BC: .4byte 0x05000340 _0801A6C0: .4byte 0x80000030 _0801A6C4: .4byte 0x020314E0 _0801A6C8: adds r7, r5, #0 adds r7, #0xf0 ldrh r0, [r7] cmp r0, #0x1d bls _0801A6D4 b _0801A8B8 _0801A6D4: adds r1, r5, #0 adds r1, #0xf6 adds r4, r5, #0 adds r4, #0xf8 ldrh r0, [r4] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r1, r3] movs r1, #0xa bl __divsi3 adds r0, #0x7f mov r1, r8 strh r0, [r1, #2] movs r0, #0x2c strh r0, [r1, #4] ldrh r0, [r7] adds r0, #1 strh r0, [r7] ldrh r0, [r4] subs r0, #0xa strh r0, [r4] ldrh r0, [r7] cmp r0, #0x18 bls _0801A7CE adds r0, r5, #0 adds r0, #0x25 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _0801A724 ldr r2, _0801A768 @ =0x000001A5 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A7CE _0801A724: cmp r1, #4 bne _0801A732 ldr r3, _0801A76C @ =0x000006DC adds r0, r5, r3 ldrb r0, [r0] cmp r0, #9 beq _0801A7CE _0801A732: mov r4, sb ldrh r0, [r4, #0x3c] mov r5, sl strh r5, [r4, #0x3c] ldrh r0, [r7] cmp r0, #0x19 bls _0801A7BA ldr r1, _0801A770 @ =0x02031520 ldr r3, [r1, #0x30] str r3, [r6] ldr r0, _0801A774 @ =0x05000200 str r0, [r6, #4] ldr r0, _0801A778 @ =0x80000010 str r0, [r6, #8] ldr r0, [r6, #8] ldrb r0, [r4, #4] adds r2, r1, #0 cmp r0, #1 bne _0801A784 adds r0, r3, #0 adds r0, #0x40 str r0, [r6] ldr r0, _0801A77C @ =0x05000240 str r0, [r6, #4] ldr r0, _0801A780 @ =0x80000060 b _0801A790 .align 2, 0 _0801A768: .4byte 0x000001A5 _0801A76C: .4byte 0x000006DC _0801A770: .4byte 0x02031520 _0801A774: .4byte 0x05000200 _0801A778: .4byte 0x80000010 _0801A77C: .4byte 0x05000240 _0801A780: .4byte 0x80000060 _0801A784: adds r0, r3, #0 adds r0, #0x40 str r0, [r6] ldr r0, _0801A850 @ =0x05000240 str r0, [r6, #4] ldr r0, _0801A854 @ =0x80000070 _0801A790: str r0, [r6, #8] ldr r0, [r6, #8] ldr r1, _0801A858 @ =0x040000D4 ldr r0, [r2, #0x30] movs r6, #0xa0 lsls r6, r6, #1 adds r0, r0, r6 str r0, [r1] ldr r0, _0801A85C @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A860 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _0801A864 @ =0x020314E0 ldr r0, [r7] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0x70 strb r1, [r0] _0801A7BA: ldr r1, _0801A864 @ =0x020314E0 ldr r0, [r1] adds r0, #0xf0 ldrh r0, [r0] cmp r0, #0x1d bne _0801A7CE mov r2, sb ldrh r0, [r2, #0x3c] movs r0, #0 strh r0, [r2, #0x3c] _0801A7CE: ldr r3, _0801A864 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0xf0 ldrh r0, [r0] cmp r0, #0x1e bne _0801A8B8 mov r4, sb ldr r0, [r4, #0x44] ldr r0, [r0, #0x2c] movs r1, #0 movs r3, #0 strh r3, [r0] adds r0, r2, #0 adds r0, #0xf2 strb r1, [r0] ldr r5, _0801A864 @ =0x020314E0 ldr r0, [r5] adds r0, #0xe4 strb r1, [r0] ldr r1, [r5] adds r0, r1, #0 adds r0, #0x25 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #3 bne _0801A812 ldr r6, _0801A868 @ =0x000001A5 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801A8B8 _0801A812: cmp r2, #4 bne _0801A820 ldr r7, _0801A86C @ =0x000006DC adds r0, r1, r7 ldrb r0, [r0] cmp r0, #9 beq _0801A8B8 _0801A820: mov r1, sb ldrh r0, [r1, #0x3c] strh r3, [r1, #0x3c] ldr r3, _0801A858 @ =0x040000D4 ldr r1, _0801A870 @ =0x02031520 ldr r4, [r1, #0x2c] str r4, [r3] ldr r0, _0801A874 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801A878 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov r2, sb ldrb r0, [r2, #4] adds r2, r1, #0 cmp r0, #1 bne _0801A880 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801A850 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801A87C @ =0x80000060 b _0801A88C .align 2, 0 _0801A850: .4byte 0x05000240 _0801A854: .4byte 0x80000070 _0801A858: .4byte 0x040000D4 _0801A85C: .4byte 0x05000340 _0801A860: .4byte 0x80000030 _0801A864: .4byte 0x020314E0 _0801A868: .4byte 0x000001A5 _0801A86C: .4byte 0x000006DC _0801A870: .4byte 0x02031520 _0801A874: .4byte 0x05000200 _0801A878: .4byte 0x80000010 _0801A87C: .4byte 0x80000060 _0801A880: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801A94C @ =0x05000240 str r0, [r3, #4] ldr r0, _0801A950 @ =0x80000070 _0801A88C: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801A954 @ =0x040000D4 ldr r0, [r2, #0x2c] movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0801A958 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801A95C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r4, _0801A960 @ =0x020314E0 ldr r0, [r4] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r0, [r4] adds r0, #0x70 movs r1, #1 strb r1, [r0] _0801A8B8: movs r2, #0 ldr r5, [sp] lsls r1, r5, #0x10 ldr r6, _0801A964 @ =0x03005000 mov ip, r6 ldr r7, _0801A968 @ =0x086B4568 mov sl, r7 asrs r1, r1, #0x10 movs r0, #0x5a adds r6, r1, #0 muls r6, r0, r6 ldr r0, _0801A96C @ =0xFFFFFE00 mov sb, r0 _0801A8D2: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, r8 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 add r1, sl ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 mov r7, r8 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _0801A970 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ldrh r5, [r2, #2] ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r7, r8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xe ble _0801A8D2 b _0801A97A .align 2, 0 _0801A94C: .4byte 0x05000240 _0801A950: .4byte 0x80000070 _0801A954: .4byte 0x040000D4 _0801A958: .4byte 0x05000340 _0801A95C: .4byte 0x80000030 _0801A960: .4byte 0x020314E0 _0801A964: .4byte 0x03005000 _0801A968: .4byte 0x086B4568 _0801A96C: .4byte 0xFFFFFE00 _0801A970: .4byte 0x000001FF _0801A974: movs r0, #1 mov r3, r8 strh r0, [r3] _0801A97A: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_1A98C sub_1A98C: @ 0x0801A98C push {lr} ldr r0, _0801A9B0 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _0801A9E0 ldr r0, _0801A9B4 @ =0x020314E0 ldr r0, [r0] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801A9C8 cmp r0, #2 bgt _0801A9B8 cmp r0, #1 beq _0801A9C2 b _0801A9D8 .align 2, 0 _0801A9B0: .4byte 0x0200B0C0 _0801A9B4: .4byte 0x020314E0 _0801A9B8: cmp r0, #3 beq _0801A9CE cmp r0, #4 beq _0801A9D4 b _0801A9D8 _0801A9C2: bl sub_1AA38 b _0801A9D8 _0801A9C8: bl sub_1AD84 b _0801A9D8 _0801A9CE: bl sub_1AF84 b _0801A9D8 _0801A9D4: bl sub_1C560 _0801A9D8: ldr r0, _0801A9E4 @ =0x020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] _0801A9E0: pop {r0} bx r0 .align 2, 0 _0801A9E4: .4byte 0x020314E0 thumb_func_start sub_1A9E8 sub_1A9E8: @ 0x0801A9E8 push {lr} ldr r2, _0801AA10 @ =0x020314E0 ldr r1, [r2] ldrh r0, [r1, #0x26] cmp r0, #0 beq _0801A9F8 subs r0, #1 strh r0, [r1, #0x26] _0801A9F8: ldr r0, [r2] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801AA24 cmp r0, #2 bgt _0801AA14 cmp r0, #1 beq _0801AA1E b _0801AA34 .align 2, 0 _0801AA10: .4byte 0x020314E0 _0801AA14: cmp r0, #3 beq _0801AA2A cmp r0, #4 beq _0801AA30 b _0801AA34 _0801AA1E: bl sub_1AAA0 b _0801AA34 _0801AA24: bl sub_1ADF4 b _0801AA34 _0801AA2A: bl sub_1AFD4 b _0801AA34 _0801AA30: bl sub_1C5AC _0801AA34: pop {r0} bx r0 thumb_func_start sub_1AA38 sub_1AA38: @ 0x0801AA38 push {r4, lr} ldr r4, _0801AA88 @ =0x020314E0 ldr r0, [r4] ldr r1, _0801AA8C @ =0x0000072F adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _0801AA52 movs r0, #4 bl sub_19B64 _0801AA52: ldr r0, [r4] ldr r2, _0801AA90 @ =0x000005FC adds r1, r0, r2 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r1, _0801AA94 @ =0x000005FB adds r0, r0, r1 strb r2, [r0] ldr r1, [r4] ldr r2, _0801AA98 @ =0x000005FE adds r0, r1, r2 strh r3, [r0] movs r0, #0x71 strh r0, [r1, #0x28] movs r0, #0xce bl m4aSongNumStart ldr r1, [r4] ldr r0, _0801AA9C @ =0x0000C350 str r0, [r1, #0x3c] movs r0, #8 bl sub_11B0 pop {r4} pop {r0} bx r0 .align 2, 0 _0801AA88: .4byte 0x020314E0 _0801AA8C: .4byte 0x0000072F _0801AA90: .4byte 0x000005FC _0801AA94: .4byte 0x000005FB _0801AA98: .4byte 0x000005FE _0801AA9C: .4byte 0x0000C350 thumb_func_start sub_1AAA0 sub_1AAA0: @ 0x0801AAA0 push {r4, r5, r6, lr} ldr r6, _0801AB04 @ =0x020314E0 ldr r0, [r6] mov ip, r0 ldrh r0, [r0, #0x28] cmp r0, #0 bne _0801AAB0 b _0801AD3C _0801AAB0: subs r0, #1 movs r3, #0 movs r4, #0 mov r1, ip strh r0, [r1, #0x28] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x64 bls _0801AB64 ldr r0, _0801AB08 @ =0x000005F7 add r0, ip movs r1, #1 strb r1, [r0] ldr r0, [r6] strb r1, [r0, #0x1f] ldr r3, [r6] ldr r5, _0801AB0C @ =0x0000132C adds r2, r3, r5 ldr r0, [r2] strh r4, [r0, #0x30] ldr r0, [r2] strh r4, [r0, #0x32] ldr r0, [r2] strh r4, [r0, #6] ldrh r0, [r3, #0x28] cmp r0, #0x6c bls _0801AB38 ldr r2, _0801AB10 @ =0x000005FA adds r0, r3, r2 strb r1, [r0] ldr r2, [r6] ldrh r0, [r2, #0x28] cmp r0, #0x6e bls _0801AB14 adds r2, r2, r5 ldr r1, [r2] movs r0, #0xc3 strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0xde b _0801AB20 .align 2, 0 _0801AB04: .4byte 0x020314E0 _0801AB08: .4byte 0x000005F7 _0801AB0C: .4byte 0x0000132C _0801AB10: .4byte 0x000005FA _0801AB14: adds r2, r2, r5 ldr r1, [r2] movs r0, #0xc4 strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0xdd _0801AB20: strh r0, [r1, #0x12] ldr r0, _0801AB34 @ =0x020314E0 ldr r0, [r0] movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 movs r1, #6 strb r1, [r0] b _0801ACFA .align 2, 0 _0801AB34: .4byte 0x020314E0 _0801AB38: cmp r0, #0x68 bls _0801AB52 ldr r1, [r2] movs r0, #0xc5 strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0xdb strh r0, [r1, #0x12] movs r4, #0xbd lsls r4, r4, #2 adds r1, r3, r4 movs r0, #7 b _0801ACF8 _0801AB52: ldr r0, [r2] strb r1, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #8 strb r1, [r0] b _0801ACFA _0801AB64: cmp r0, #0x14 bls _0801ABFE cmp r0, #0x4d bls _0801AB9C movs r0, #0xbd lsls r0, r0, #2 add r0, ip movs r1, #9 strb r1, [r0] ldr r2, [r6] ldrh r0, [r2, #0x28] cmp r0, #0x4f bls _0801AB80 b _0801ACFA _0801AB80: ldr r3, _0801AB98 @ =0x000002F6 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #0 bne _0801AB8C b _0801ACFA _0801AB8C: subs r0, #1 strh r0, [r1] ldrh r0, [r2, #0x28] adds r0, #1 strh r0, [r2, #0x28] b _0801ACFA .align 2, 0 _0801AB98: .4byte 0x000002F6 _0801AB9C: cmp r0, #0x48 bls _0801ABAA movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xa b _0801ACF8 _0801ABAA: cmp r0, #0x43 bls _0801ABB8 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xb b _0801ACF8 _0801ABB8: cmp r0, #0x2c bls _0801ABC6 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xc b _0801ACF8 _0801ABC6: cmp r0, #0x26 bls _0801ABD4 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xd b _0801ACF8 _0801ABD4: cmp r0, #0x1c bls _0801ABE2 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xe b _0801ACF8 _0801ABE2: cmp r0, #0x17 bls _0801ABF0 movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0xf b _0801ACF8 _0801ABF0: ldr r0, [r6] movs r4, #0xbd lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0x10 strb r1, [r0] b _0801ACFA _0801ABFE: cmp r0, #0x12 bls _0801AC28 ldr r1, _0801AC24 @ =0x0000132C add r1, ip ldr r2, [r1] movs r0, #0xc1 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xe2 strh r0, [r2, #0x12] ldr r0, [r1] strb r3, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x11 strb r1, [r0] b _0801ACFA .align 2, 0 _0801AC24: .4byte 0x0000132C _0801AC28: cmp r0, #0x10 bls _0801AC9C mov r2, ip strb r3, [r2, #0x1f] ldr r0, [r6] ldr r2, _0801AC8C @ =0x000005FE adds r1, r0, r2 strh r4, [r1] ldr r1, _0801AC90 @ =0x000005FB adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r6] subs r2, #4 adds r0, r0, r2 strb r3, [r0] ldr r3, [r6] ldr r0, _0801AC94 @ =0x0000132C adds r1, r3, r0 ldr r0, [r1] strh r4, [r0, #6] ldr r2, [r1] ldr r0, _0801AC98 @ =0x0000FF56 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xdc strh r0, [r2, #0x32] ldr r2, [r1] movs r0, #0xbe strh r0, [r2, #0x10] ldr r1, [r1] movs r0, #0xe8 strh r0, [r1, #0x12] movs r1, #0xbd lsls r1, r1, #2 adds r3, r3, r1 movs r0, #0x12 strb r0, [r3] ldr r0, [r6] ldrh r0, [r0, #0x28] cmp r0, #0x12 bne _0801ACFA movs r0, #0xc2 bl m4aSongNumStart movs r0, #7 bl sub_11B0 b _0801ACFA .align 2, 0 _0801AC8C: .4byte 0x000005FE _0801AC90: .4byte 0x000005FB _0801AC94: .4byte 0x0000132C _0801AC98: .4byte 0x0000FF56 _0801AC9C: cmp r0, #0xc bls _0801ACB8 ldr r0, _0801ACB4 @ =0x0000132C add r0, ip ldr r0, [r0] strh r4, [r0, #6] movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x13 b _0801ACF8 .align 2, 0 _0801ACB4: .4byte 0x0000132C _0801ACB8: cmp r0, #8 bls _0801ACD4 ldr r0, _0801ACD0 @ =0x0000132C add r0, ip ldr r0, [r0] strh r4, [r0, #6] movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x14 b _0801ACF8 .align 2, 0 _0801ACD0: .4byte 0x0000132C _0801ACD4: cmp r0, #4 bls _0801ACF0 ldr r0, _0801ACEC @ =0x0000132C add r0, ip ldr r0, [r0] strh r4, [r0, #6] movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x15 b _0801ACF8 .align 2, 0 _0801ACEC: .4byte 0x0000132C _0801ACF0: movs r1, #0xbd lsls r1, r1, #2 add r1, ip movs r0, #0x16 _0801ACF8: strb r0, [r1] _0801ACFA: ldr r0, _0801AD34 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801AD38 @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r2] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r2] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] ldr r1, [r2] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] b _0801AD74 .align 2, 0 _0801AD34: .4byte 0x020314E0 _0801AD38: .4byte 0x0000132C _0801AD3C: movs r3, #0 movs r0, #0x1e mov r4, ip strh r0, [r4, #0x26] ldr r2, _0801AD7C @ =0x0000132C add r2, ip ldr r1, [r2] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r2] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] mov r0, ip adds r0, #0x25 strb r3, [r0] ldr r0, [r6] ldr r4, _0801AD80 @ =0x000005F7 adds r0, r0, r4 strb r3, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 strb r3, [r0] _0801AD74: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0801AD7C: .4byte 0x0000132C _0801AD80: .4byte 0x000005F7 thumb_func_start sub_1AD84 sub_1AD84: @ 0x0801AD84 push {r4, lr} ldr r4, _0801ADB4 @ =0x020314E0 ldr r1, [r4] ldr r0, _0801ADB8 @ =0x000186A0 str r0, [r1, #0x3c] ldr r0, _0801ADBC @ =0x000002DA adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #3 bne _0801ADC0 movs r0, #4 strb r0, [r2] movs r0, #0xb7 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r4] movs r0, #0xfa lsls r0, r0, #1 b _0801ADD8 .align 2, 0 _0801ADB4: .4byte 0x020314E0 _0801ADB8: .4byte 0x000186A0 _0801ADBC: .4byte 0x000002DA _0801ADC0: movs r2, #0xb4 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801ADD6 movs r0, #0x96 lsls r0, r0, #1 b _0801ADD8 _0801ADD6: movs r0, #0x78 _0801ADD8: strh r0, [r1, #0x28] ldr r0, _0801ADEC @ =0x020314E0 ldr r0, [r0] ldr r1, _0801ADF0 @ =0x000005F7 adds r0, r0, r1 movs r1, #1 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0801ADEC: .4byte 0x020314E0 _0801ADF0: .4byte 0x000005F7 thumb_func_start sub_1ADF4 sub_1ADF4: @ 0x0801ADF4 push {r4, r5, r6, lr} ldr r5, _0801AE7C @ =0x020314E0 ldr r0, [r5] ldrh r4, [r0, #0x28] cmp r4, #0 beq _0801AEE0 ldr r1, _0801AE80 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r5] strb r2, [r0, #0x1f] ldr r5, [r5] mov ip, r5 ldrh r0, [r5, #0x28] subs r0, #1 strh r0, [r5, #0x28] add r1, ip ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r2, [r1] movs r0, #0x58 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0x94 strh r0, [r2, #0x12] ldr r0, [r1] strh r3, [r0, #6] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r1, [r1] movs r4, #0x12 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x2a] movs r0, #0xb4 lsls r0, r0, #2 add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801AE5A b _0801AF78 _0801AE5A: ldrh r1, [r5, #0x28] adds r0, r1, #0 cmp r0, #0xc8 bls _0801AE64 b _0801AF78 _0801AE64: cmp r0, #0xc8 bne _0801AEA8 mov r0, ip adds r0, #0xe4 ldrb r0, [r0] cmp r0, #0 beq _0801AE84 adds r0, r1, #1 mov r1, ip strh r0, [r1, #0x28] b _0801AECA .align 2, 0 _0801AE7C: .4byte 0x020314E0 _0801AE80: .4byte 0x0000132C _0801AE84: mov r2, ip ldr r0, [r2, #0x48] cmp r0, #0 beq _0801AEA2 movs r0, #0xb6 lsls r0, r0, #1 add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801AEA2 bl sub_22978 b _0801AECA _0801AEA2: bl sub_22C6C b _0801AECA _0801AEA8: mov r3, ip ldr r0, [r3, #0x48] cmp r0, #0 beq _0801AEC6 movs r0, #0xb6 lsls r0, r0, #1 add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801AEC6 bl sub_22A30 b _0801AECA _0801AEC6: bl sub_22D54 _0801AECA: ldr r0, _0801AEDC @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x28] cmp r0, #9 bhi _0801AF78 adds r0, #1 strh r0, [r1, #0x28] b _0801AF78 .align 2, 0 _0801AEDC: .4byte 0x020314E0 _0801AEE0: ldr r1, _0801AF50 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] strb r4, [r0] ldr r0, [r5] adds r0, #0x25 strb r4, [r0] ldr r3, [r5] adds r1, r3, r1 ldr r2, [r1] movs r6, #0 movs r0, #0x58 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xa2 strh r0, [r2, #0x12] ldr r0, [r1] strh r4, [r0, #6] ldr r2, [r1] movs r4, #0x10 ldrsh r0, [r2, r4] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r4, _0801AF54 @ =0x000005F7 adds r3, r3, r4 strb r6, [r3] ldr r1, [r5] movs r2, #0xb4 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801AF60 ldr r3, _0801AF58 @ =0x000002DA adds r1, r1, r3 movs r0, #3 strb r0, [r1] ldr r1, [r5] ldr r4, _0801AF5C @ =0x000002DE adds r2, r1, r4 movs r0, #0x30 strh r0, [r2] movs r0, #0xb8 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0x1e strh r0, [r1] b _0801AF78 .align 2, 0 _0801AF50: .4byte 0x0000132C _0801AF54: .4byte 0x000005F7 _0801AF58: .4byte 0x000002DA _0801AF5C: .4byte 0x000002DE _0801AF60: strb r6, [r1, #0x1f] ldr r1, [r5] movs r0, #0x3c strh r0, [r1, #0x26] ldr r2, _0801AF80 @ =0x0000132C adds r1, r1, r2 ldr r2, [r1] movs r0, #0x14 strh r0, [r2, #0x30] ldr r1, [r1] movs r0, #0xc8 strh r0, [r1, #0x32] _0801AF78: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0801AF80: .4byte 0x0000132C thumb_func_start sub_1AF84 sub_1AF84: @ 0x0801AF84 push {r4, lr} ldr r0, _0801AFC4 @ =0x020314E0 ldr r3, [r0] movs r1, #0xdc lsls r1, r1, #1 adds r0, r3, r1 movs r2, #0 strh r2, [r0] movs r4, #0xdb lsls r4, r4, #1 adds r0, r3, r4 strh r2, [r0] movs r0, #0xb4 strh r0, [r3, #0x28] adds r4, #4 adds r1, r3, r4 strh r0, [r1] ldr r0, _0801AFC8 @ =0x0007A120 str r0, [r3, #0x3c] ldr r0, _0801AFCC @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r2, [r0, #0x3c] ldr r0, _0801AFD0 @ =0x000005F7 adds r1, r3, r0 movs r0, #1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0801AFC4: .4byte 0x020314E0 _0801AFC8: .4byte 0x0007A120 _0801AFCC: .4byte 0x0200B0C0 _0801AFD0: .4byte 0x000005F7 thumb_func_start sub_1AFD4 sub_1AFD4: @ 0x0801AFD4 push {r4, r5, r6, r7, lr} ldr r7, _0801B074 @ =0x020314E0 ldr r2, [r7] ldrh r0, [r2, #0x28] adds r6, r0, #0 adds r5, r7, #0 cmp r6, #0x18 bls _0801B080 ldr r1, _0801B078 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r7] strb r2, [r0, #0x1f] ldr r4, [r7] ldrh r0, [r4, #0x28] subs r0, #1 strh r0, [r4, #0x28] adds r1, r4, r1 ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r2, [r1] movs r0, #0xdc strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0x62 strh r0, [r2, #0x12] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r3, #0x12 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] ldrh r0, [r4, #0x28] cmp r0, #0x9b bls _0801B054 adds r1, r0, #0 subs r1, #0x9c cmp r1, #0 bge _0801B04A adds r1, #7 _0801B04A: asrs r1, r1, #3 movs r3, #0xbc lsls r3, r3, #2 adds r0, r4, r3 strb r1, [r0] _0801B054: ldr r1, [r5] ldrh r0, [r1, #0x28] cmp r0, #0x31 bhi _0801B060 adds r0, #1 strh r0, [r1, #0x28] _0801B060: ldr r0, [r5] ldr r1, _0801B07C @ =0x000001A5 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_1B140 b _0801B12A .align 2, 0 _0801B074: .4byte 0x020314E0 _0801B078: .4byte 0x0000132C _0801B07C: .4byte 0x000001A5 _0801B080: cmp r6, #0 beq _0801B0A0 subs r0, #1 strh r0, [r2, #0x28] ldrh r1, [r2, #0x28] movs r0, #0x18 subs r0, r0, r1 cmp r0, #0 bge _0801B094 adds r0, #7 _0801B094: asrs r1, r0, #3 movs r3, #0xbc lsls r3, r3, #2 adds r0, r2, r3 strb r1, [r0] b _0801B12A _0801B0A0: ldr r4, _0801B130 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] strb r6, [r0] ldr r0, [r7] strb r6, [r0, #0x1f] ldr r3, [r7] movs r5, #0 movs r0, #0x3c strh r0, [r3, #0x26] adds r2, r3, r4 ldr r1, [r2] movs r0, #0x60 strh r0, [r1, #0x30] ldr r1, [r2] movs r0, #0xc0 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #0xdf strh r0, [r1, #0x10] ldr r1, [r2] movs r0, #0x63 strh r0, [r1, #0x12] ldr r0, [r2] strh r6, [r0, #6] ldr r0, _0801B134 @ =0x000005F7 adds r3, r3, r0 strb r5, [r3] ldr r2, [r7] adds r4, r2, r4 ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] adds r2, #0x25 strb r5, [r2] ldr r0, [r7] movs r1, #0xbc lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x13 strb r1, [r0] movs r0, #0xc3 bl m4aSongNumStart ldr r1, [r7] ldr r2, _0801B138 @ =0x0000072E adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0801B12A ldr r3, _0801B13C @ =0x00000281 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0801B12A movs r0, #6 bl sub_19B64 _0801B12A: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801B130: .4byte 0x0000132C _0801B134: .4byte 0x000005F7 _0801B138: .4byte 0x0000072E _0801B13C: .4byte 0x00000281 thumb_func_start sub_1B140 sub_1B140: @ 0x0801B140 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r7, #0 ldr r0, _0801B228 @ =0x0200B0C0 ldrb r0, [r0, #0xf] ldr r1, _0801B22C @ =0x020314E0 mov r8, r1 cmp r0, #0 bne _0801B16A ldr r0, [r1] movs r3, #0xdd lsls r3, r3, #1 adds r1, r0, r3 ldrh r0, [r1] cmp r0, #0 beq _0801B16A subs r0, #1 strh r0, [r1] _0801B16A: lsls r0, r2, #0x10 asrs r5, r0, #0x10 cmp r5, #0 beq _0801B176 bl sub_1BB68 _0801B176: ldr r4, _0801B22C @ =0x020314E0 ldr r0, [r4] movs r6, #0xdd lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0x95 bne _0801B1B8 bl m4aMPlayAllStop ldr r0, [r4] ldr r2, _0801B230 @ =0x000006DE adds r1, r0, r2 movs r2, #0 strh r5, [r1] ldr r3, _0801B234 @ =0x000006DD adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] movs r1, #0xd7 lsls r1, r1, #1 adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _0801B238 @ =0x00000252 adds r0, r0, r2 strh r5, [r0] ldr r0, _0801B228 @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r5, [r0, #0x3c] _0801B1B8: ldr r1, [r4] adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x92 bne _0801B1E6 adds r1, #0xe4 movs r0, #0x12 strb r0, [r1] ldr r1, _0801B23C @ =0x040000D4 ldr r0, _0801B240 @ =0x084F61EC str r0, [r1] ldr r0, _0801B244 @ =0x06015C00 str r0, [r1, #4] ldr r0, _0801B248 @ =0x800004A0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801B24C @ =0x081B45A4 str r0, [r1] ldr r0, _0801B250 @ =0x05000180 str r0, [r1, #4] ldr r0, _0801B254 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801B1E6: ldr r0, [r4] adds r2, r0, r6 ldrh r1, [r2] adds r0, r1, #0 subs r0, #0x91 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r4 cmp r0, #4 bls _0801B1FC b _0801B332 _0801B1FC: cmp r1, #0x92 bls _0801B2B8 ldr r1, _0801B228 @ =0x0200B0C0 ldrh r0, [r1, #0x3c] movs r0, #4 strh r0, [r1, #0x3c] ldrh r0, [r2] cmp r0, #0x94 bls _0801B210 b _0801B332 _0801B210: ldrb r0, [r1, #4] cmp r0, #1 bne _0801B264 ldr r1, _0801B23C @ =0x040000D4 ldr r2, _0801B258 @ =0x02031520 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801B25C @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B260 @ =0x80000060 b _0801B274 .align 2, 0 _0801B228: .4byte 0x0200B0C0 _0801B22C: .4byte 0x020314E0 _0801B230: .4byte 0x000006DE _0801B234: .4byte 0x000006DD _0801B238: .4byte 0x00000252 _0801B23C: .4byte 0x040000D4 _0801B240: .4byte 0x084F61EC _0801B244: .4byte 0x06015C00 _0801B248: .4byte 0x800004A0 _0801B24C: .4byte 0x081B45A4 _0801B250: .4byte 0x05000180 _0801B254: .4byte 0x80000010 _0801B258: .4byte 0x02031520 _0801B25C: .4byte 0x05000240 _0801B260: .4byte 0x80000060 _0801B264: ldr r1, _0801B29C @ =0x040000D4 ldr r2, _0801B2A0 @ =0x02031520 ldr r0, [r2, #0x30] adds r0, #0x40 str r0, [r1] ldr r0, _0801B2A4 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B2A8 @ =0x80000070 _0801B274: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801B29C @ =0x040000D4 ldr r0, [r2, #0x30] movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0801B2AC @ =0x05000340 str r0, [r1, #4] ldr r0, _0801B2B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0801B2B4 @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r3, #0 movs r1, #1 b _0801B328 .align 2, 0 _0801B29C: .4byte 0x040000D4 _0801B2A0: .4byte 0x02031520 _0801B2A4: .4byte 0x05000240 _0801B2A8: .4byte 0x80000070 _0801B2AC: .4byte 0x05000340 _0801B2B0: .4byte 0x80000030 _0801B2B4: .4byte 0x020314E0 _0801B2B8: ldr r1, _0801B2E0 @ =0x0200B0C0 ldrh r0, [r1, #0x3c] movs r0, #7 strh r0, [r1, #0x3c] ldrh r0, [r2] cmp r0, #0x91 bls _0801B2C8 b _0801B44A _0801B2C8: ldrb r0, [r1, #4] cmp r0, #1 bne _0801B2F4 ldr r1, _0801B2E4 @ =0x040000D4 ldr r2, _0801B2E8 @ =0x02031520 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801B2EC @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B2F0 @ =0x80000060 b _0801B304 .align 2, 0 _0801B2E0: .4byte 0x0200B0C0 _0801B2E4: .4byte 0x040000D4 _0801B2E8: .4byte 0x02031520 _0801B2EC: .4byte 0x05000240 _0801B2F0: .4byte 0x80000060 _0801B2F4: ldr r1, _0801B3FC @ =0x040000D4 ldr r2, _0801B400 @ =0x02031520 ldr r0, [r2, #0x34] adds r0, #0x40 str r0, [r1] ldr r0, _0801B404 @ =0x05000240 str r0, [r1, #4] ldr r0, _0801B408 @ =0x80000070 _0801B304: str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0801B3FC @ =0x040000D4 ldr r0, [r2, #0x34] movs r4, #0xa0 lsls r4, r4, #1 adds r0, r0, r4 str r0, [r1] ldr r0, _0801B40C @ =0x05000340 str r0, [r1, #4] ldr r0, _0801B410 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0801B414 @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r3, #0 movs r1, #2 _0801B328: strb r1, [r0] ldr r0, [r2] adds r0, #0x70 strb r3, [r0] mov r8, r2 _0801B332: mov r5, r8 ldr r0, [r5] movs r6, #0xdd lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0x91 beq _0801B344 b _0801B44A _0801B344: movs r0, #0xb bl m4aSongNumStart ldr r0, [r5] movs r1, #0xd3 lsls r1, r1, #1 adds r0, r0, r1 movs r4, #0 strb r4, [r0] ldr r0, [r5] movs r2, #0xd4 lsls r2, r2, #1 adds r0, r0, r2 strb r4, [r0] ldr r3, [r5] ldr r2, _0801B418 @ =0x086AD2DE adds r1, r3, r1 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r5, _0801B41C @ =0x000001A7 adds r1, r3, r5 strb r0, [r1] movs r0, #6 movs r1, #0 bl sub_1C7F4 movs r0, #1 bl sub_21FBC ldr r2, _0801B420 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #0x1c] movs r3, #1 strh r3, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x20] strh r3, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x18] strh r3, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x24] strh r3, [r0] ldr r1, _0801B3FC @ =0x040000D4 ldr r0, _0801B424 @ =0x081B8784 str r0, [r1] ldr r0, _0801B428 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0801B42C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801B430 @ =0x081B8984 str r0, [r1] ldr r0, _0801B434 @ =0x06002000 str r0, [r1, #4] ldr r0, _0801B438 @ =0x80000620 str r0, [r1, #8] ldr r0, [r1, #8] ldr r6, _0801B43C @ =0x000002EA adds r1, r2, r6 movs r0, #0x50 strh r0, [r1] strh r4, [r2, #0x2a] mov r1, r8 ldr r0, [r1] movs r4, #0xdc lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0xf strh r1, [r0] strh r3, [r2, #0x28] movs r0, #0x8f bl m4aSongNumStart mov r5, r8 ldr r1, [r5] movs r6, #0xf1 lsls r6, r6, #1 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801B440 movs r0, #0xd5 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #1 b _0801B448 .align 2, 0 _0801B3FC: .4byte 0x040000D4 _0801B400: .4byte 0x02031520 _0801B404: .4byte 0x05000240 _0801B408: .4byte 0x80000070 _0801B40C: .4byte 0x05000340 _0801B410: .4byte 0x80000030 _0801B414: .4byte 0x020314E0 _0801B418: .4byte 0x086AD2DE _0801B41C: .4byte 0x000001A7 _0801B420: .4byte 0x0200B0C0 _0801B424: .4byte 0x081B8784 _0801B428: .4byte 0x050003C0 _0801B42C: .4byte 0x80000010 _0801B430: .4byte 0x081B8984 _0801B434: .4byte 0x06002000 _0801B438: .4byte 0x80000620 _0801B43C: .4byte 0x000002EA _0801B440: movs r2, #0xd5 lsls r2, r2, #1 adds r1, r1, r2 movs r0, #0 _0801B448: strb r0, [r1] _0801B44A: mov r4, r8 ldr r3, [r4] movs r5, #0xdd lsls r5, r5, #1 adds r0, r3, r5 ldrh r0, [r0] cmp r0, #0x90 bls _0801B45C b _0801B6F2 _0801B45C: movs r6, #0xdc lsls r6, r6, #3 adds r1, r3, r6 movs r2, #0 movs r0, #0 strh r0, [r1] ldr r0, _0801B4D8 @ =0x000006C4 adds r1, r3, r0 movs r0, #2 strb r0, [r1] ldr r0, [r4] ldr r1, _0801B4DC @ =0x000006DB adds r0, r0, r1 strb r2, [r0] movs r7, #0 ldr r3, [r4] movs r4, #0xdc lsls r4, r4, #1 adds r2, r3, r4 ldrh r1, [r2] movs r5, #0 ldrsh r0, [r2, r5] cmp r0, #0 ble _0801B552 subs r0, r1, #1 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _0801B540 movs r6, #0 ldrsh r1, [r2, r6] movs r0, #0x1e subs r0, r0, r1 lsls r1, r0, #3 subs r1, r1, r0 subs r4, #2 adds r0, r3, r4 strh r1, [r0] movs r5, #0 ldrsh r0, [r2, r5] cmp r0, #0xf beq _0801B4B4 b _0801B614 _0801B4B4: movs r6, #0xd3 lsls r6, r6, #1 adds r1, r3, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 bne _0801B4F0 ldr r1, _0801B4E0 @ =0x000005F6 adds r0, r3, r1 ldrb r1, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0801B4E4 adds r0, r1, #0 adds r0, #0xa b _0801B526 .align 2, 0 _0801B4D8: .4byte 0x000006C4 _0801B4DC: .4byte 0x000006DB _0801B4E0: .4byte 0x000005F6 _0801B4E4: ldr r4, _0801B4EC @ =0x000001A7 adds r1, r3, r4 movs r0, #0xc b _0801B52A .align 2, 0 _0801B4EC: .4byte 0x000001A7 _0801B4F0: cmp r0, #6 bne _0801B518 ldr r0, _0801B504 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _0801B50C ldr r5, _0801B508 @ =0x000001A7 adds r1, r3, r5 movs r0, #0x16 b _0801B52A .align 2, 0 _0801B504: .4byte 0x0200B0C0 _0801B508: .4byte 0x000001A7 _0801B50C: ldr r6, _0801B514 @ =0x000001A7 adds r1, r3, r6 movs r0, #0x17 b _0801B52A .align 2, 0 _0801B514: .4byte 0x000001A7 _0801B518: ldr r0, _0801B538 @ =0x086AD2DE ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] _0801B526: ldr r2, _0801B53C @ =0x000001A7 adds r1, r3, r2 _0801B52A: strb r0, [r1] movs r0, #6 movs r1, #0 bl sub_1C7F4 movs r7, #1 b _0801B614 .align 2, 0 _0801B538: .4byte 0x086AD2DE _0801B53C: .4byte 0x000001A7 _0801B540: movs r4, #0 ldrsh r1, [r2, r4] lsls r0, r1, #3 subs r0, r0, r1 movs r5, #0xdb lsls r5, r5, #1 adds r1, r3, r5 strh r0, [r1] b _0801B614 _0801B552: ldr r0, _0801B58C @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0801B5B2 ldr r6, _0801B590 @ =0x000006DD adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801B5B2 movs r0, #0x82 bl m4aSongNumStart mov r1, r8 ldr r0, [r1] movs r2, #0xd3 lsls r2, r2, #1 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801B594 subs r0, r2, #1 b _0801B596 .align 2, 0 _0801B58C: .4byte 0x0200B0C0 _0801B590: .4byte 0x000006DD _0801B594: movs r0, #7 _0801B596: strb r0, [r1] ldr r2, _0801B5EC @ =0x020314E0 ldr r0, [r2] movs r3, #0xd4 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r4, #0xdc lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0x1e strh r1, [r0] _0801B5B2: ldr r0, _0801B5F0 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801B614 ldr r5, _0801B5EC @ =0x020314E0 ldr r0, [r5] ldr r6, _0801B5F4 @ =0x000006DD adds r0, r0, r6 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #0 bne _0801B614 movs r0, #0x82 bl m4aSongNumStart ldr r0, [r5] movs r2, #0xd3 lsls r2, r2, #1 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bgt _0801B5F8 adds r0, r2, #1 strb r0, [r1] b _0801B5FA .align 2, 0 _0801B5EC: .4byte 0x020314E0 _0801B5F0: .4byte 0x0200B0C0 _0801B5F4: .4byte 0x000006DD _0801B5F8: strb r4, [r1] _0801B5FA: ldr r2, _0801B63C @ =0x020314E0 ldr r0, [r2] movs r3, #0xd4 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, [r2] movs r4, #0xdc lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0x1e strh r1, [r0] _0801B614: adds r0, r7, #0 bl sub_21FBC ldr r0, _0801B63C @ =0x020314E0 ldr r1, [r0] movs r5, #0xd4 lsls r5, r5, #1 adds r0, r1, r5 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0801B64A ldr r6, _0801B640 @ =0x000001A9 adds r1, r1, r6 ldrb r0, [r1] cmp r0, #0 beq _0801B644 subs r0, #1 strb r0, [r1] b _0801B662 .align 2, 0 _0801B63C: .4byte 0x020314E0 _0801B640: .4byte 0x000001A9 _0801B644: movs r0, #7 strb r0, [r1] b _0801B662 _0801B64A: ldr r0, _0801B65C @ =0x000001A9 adds r1, r1, r0 ldrb r0, [r1] cmp r0, #6 bhi _0801B660 adds r0, #1 strb r0, [r1] b _0801B662 .align 2, 0 _0801B65C: .4byte 0x000001A9 _0801B660: strb r2, [r1] _0801B662: ldr r1, _0801B6C0 @ =0x040000D4 ldr r3, _0801B6C4 @ =0x086AD50C ldr r4, _0801B6C8 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801B6CC @ =0x000001A9 adds r0, r2, r5 ldrb r0, [r0] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] ldr r0, _0801B6D0 @ =0x06002000 str r0, [r1, #4] ldr r0, _0801B6D4 @ =0x80000620 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _0801B6D8 @ =0x0200B0C0 movs r6, #0x2a ldrsh r0, [r3, r6] lsls r0, r0, #2 movs r1, #0x50 subs r1, r1, r0 ldr r5, _0801B6DC @ =0x000002EA adds r0, r3, r5 strh r1, [r0] ldr r6, _0801B6E0 @ =0x00000252 adds r2, r2, r6 ldrh r0, [r2] mov r8, r4 cmp r0, #0 beq _0801B6E4 ldrh r1, [r3, #0x2a] movs r2, #0x2a ldrsh r0, [r3, r2] cmp r0, #0 ble _0801B6F2 subs r0, r1, #1 strh r0, [r3, #0x2a] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bne _0801B6F2 strh r0, [r3, #0x28] movs r0, #0x90 strh r0, [r3, #0x26] b _0801B6F2 .align 2, 0 _0801B6C0: .4byte 0x040000D4 _0801B6C4: .4byte 0x086AD50C _0801B6C8: .4byte 0x020314E0 _0801B6CC: .4byte 0x000001A9 _0801B6D0: .4byte 0x06002000 _0801B6D4: .4byte 0x80000620 _0801B6D8: .4byte 0x0200B0C0 _0801B6DC: .4byte 0x000002EA _0801B6E0: .4byte 0x00000252 _0801B6E4: ldrh r1, [r3, #0x2a] movs r4, #0x2a ldrsh r0, [r3, r4] cmp r0, #0x13 bgt _0801B6F2 adds r0, r1, #1 strh r0, [r3, #0x2a] _0801B6F2: mov r5, r8 ldr r2, [r5] movs r6, #0xdc lsls r6, r6, #1 adds r0, r2, r6 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 ble _0801B706 b _0801B85E _0801B706: ldr r0, _0801B76C @ =0x0200B0C0 movs r3, #0x2a ldrsh r1, [r0, r3] adds r3, r0, #0 cmp r1, #0x13 bgt _0801B714 b _0801B85E _0801B714: ldrh r1, [r3, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0801B720 b _0801B82C _0801B720: ldr r4, _0801B770 @ =0x000006DD adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801B730 b _0801B82C _0801B730: ldr r5, _0801B774 @ =0x000001A7 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801B778 @ =0x086AD000 adds r4, r0, r1 ldr r1, _0801B77C @ =0x086AD2DE subs r6, #0x12 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #3 bne _0801B784 movs r3, #0xf1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801B784 ldr r3, _0801B780 @ =0x000003E7 b _0801B7AC .align 2, 0 _0801B76C: .4byte 0x0200B0C0 _0801B770: .4byte 0x000006DD _0801B774: .4byte 0x000001A7 _0801B778: .4byte 0x086AD000 _0801B77C: .4byte 0x086AD2DE _0801B780: .4byte 0x000003E7 _0801B784: mov r5, r8 ldr r2, [r5] movs r6, #0xd3 lsls r6, r6, #1 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #4 bne _0801B7AA ldr r1, _0801B804 @ =0x000001AF adds r0, r2, r1 ldrb r0, [r0] ldr r3, _0801B808 @ =0x000003E7 cmp r0, #0 bne _0801B7AC _0801B7AA: ldrh r3, [r4, #6] _0801B7AC: ldr r4, _0801B80C @ =0x020314E0 ldr r2, [r4] movs r5, #0xc9 lsls r5, r5, #1 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r3, #0x10 asrs r0, r0, #0x10 cmp r1, r0 blt _0801B824 ldr r6, _0801B810 @ =0x000006DD adds r1, r2, r6 movs r0, #1 strb r0, [r1] ldr r0, [r4] ldr r2, _0801B814 @ =0x000001A7 adds r1, r0, r2 ldrb r1, [r1] ldr r5, _0801B818 @ =0x000006DC adds r0, r0, r5 strb r1, [r0] ldr r0, [r4] movs r6, #0xc9 lsls r6, r6, #1 adds r1, r0, r6 ldrb r0, [r1] subs r0, r0, r3 strb r0, [r1] bl m4aMPlayAllStop movs r0, #0x83 bl m4aSongNumStart ldr r0, [r4] ldr r2, _0801B81C @ =0x000001AB adds r1, r0, r2 movs r0, #0x13 strb r0, [r1] ldr r0, [r4] ldr r3, _0801B820 @ =0x00000376 adds r0, r0, r3 movs r1, #0x1e strh r1, [r0] b _0801B85E .align 2, 0 _0801B804: .4byte 0x000001AF _0801B808: .4byte 0x000003E7 _0801B80C: .4byte 0x020314E0 _0801B810: .4byte 0x000006DD _0801B814: .4byte 0x000001A7 _0801B818: .4byte 0x000006DC _0801B81C: .4byte 0x000001AB _0801B820: .4byte 0x00000376 _0801B824: movs r0, #0x8a bl m4aSongNumStart b _0801B85E _0801B82C: ldrh r1, [r3, #0x18] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0801B85E ldr r0, _0801B928 @ =0x020314E0 ldr r2, [r0] ldr r4, _0801B92C @ =0x000006DD adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801B870 ldr r5, _0801B930 @ =0x00000252 adds r0, r2, r5 movs r1, #0x1e strh r1, [r0] movs r6, #0xdc lsls r6, r6, #1 adds r0, r2, r6 strh r1, [r0] movs r0, #0x66 bl m4aSongNumStart _0801B85E: ldr r0, _0801B928 @ =0x020314E0 ldr r0, [r0] ldr r1, _0801B92C @ =0x000006DD adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801B8B2 _0801B870: bl sub_2A354 ldr r0, _0801B928 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801B934 @ =0x000006DE adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0xb3 bne _0801B8B2 ldr r4, _0801B930 @ =0x00000252 adds r0, r2, r4 movs r1, #0x1e strh r1, [r0] movs r5, #0xdc lsls r5, r5, #1 adds r0, r2, r5 strh r1, [r0] ldr r1, _0801B938 @ =0x086AD2DE movs r6, #0xd3 lsls r6, r6, #1 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #4 bne _0801B8B2 ldr r0, _0801B93C @ =0x000001AF adds r1, r2, r0 movs r0, #1 strb r0, [r1] _0801B8B2: ldr r0, _0801B928 @ =0x020314E0 ldr r2, [r0] ldr r3, _0801B930 @ =0x00000252 adds r1, r2, r3 ldrh r5, [r1] mov r8, r0 cmp r5, #0 bne _0801B8C6 bl _0801C554 _0801B8C6: subs r0, r5, #1 strh r0, [r1] movs r4, #0xdc lsls r4, r4, #1 adds r1, r2, r4 movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0xe bgt _0801B8DC movs r0, #0xf strh r0, [r1] _0801B8DC: mov r6, r8 ldr r0, [r6] adds r1, r0, r3 ldrh r0, [r1] cmp r0, #4 bls _0801B8EA b _0801BA38 _0801B8EA: cmp r0, #1 bls _0801B9A8 ldr r5, _0801B940 @ =0x0200B0C0 ldrh r0, [r5, #0x3c] movs r0, #4 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #3 bls _0801B8FE b _0801BA38 _0801B8FE: ldr r3, _0801B944 @ =0x040000D4 ldr r1, _0801B948 @ =0x02031520 ldr r4, [r1, #0x30] str r4, [r3] ldr r0, _0801B94C @ =0x05000200 str r0, [r3, #4] ldr r0, _0801B950 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801B95C adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801B954 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801B958 @ =0x80000060 b _0801B968 .align 2, 0 _0801B928: .4byte 0x020314E0 _0801B92C: .4byte 0x000006DD _0801B930: .4byte 0x00000252 _0801B934: .4byte 0x000006DE _0801B938: .4byte 0x086AD2DE _0801B93C: .4byte 0x000001AF _0801B940: .4byte 0x0200B0C0 _0801B944: .4byte 0x040000D4 _0801B948: .4byte 0x02031520 _0801B94C: .4byte 0x05000200 _0801B950: .4byte 0x80000010 _0801B954: .4byte 0x05000240 _0801B958: .4byte 0x80000060 _0801B95C: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801B994 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801B998 @ =0x80000070 _0801B968: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801B99C @ =0x040000D4 ldr r0, [r2, #0x30] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0801B9A0 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801B9A4 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r3, r8 ldr r0, [r3] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r3] adds r0, #0x70 b _0801BA36 .align 2, 0 _0801B994: .4byte 0x05000240 _0801B998: .4byte 0x80000070 _0801B99C: .4byte 0x040000D4 _0801B9A0: .4byte 0x05000340 _0801B9A4: .4byte 0x80000030 _0801B9A8: ldr r5, _0801B9E4 @ =0x0200B0C0 ldrh r0, [r5, #0x3c] movs r0, #0 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #0 beq _0801B9BA bl _0801C554 _0801B9BA: ldr r3, _0801B9E8 @ =0x040000D4 ldr r1, _0801B9EC @ =0x02031520 ldr r4, [r1, #0x2c] str r4, [r3] ldr r0, _0801B9F0 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801B9F4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801BA00 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801B9F8 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801B9FC @ =0x80000060 b _0801BA0C .align 2, 0 _0801B9E4: .4byte 0x0200B0C0 _0801B9E8: .4byte 0x040000D4 _0801B9EC: .4byte 0x02031520 _0801B9F0: .4byte 0x05000200 _0801B9F4: .4byte 0x80000010 _0801B9F8: .4byte 0x05000240 _0801B9FC: .4byte 0x80000060 _0801BA00: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801BA74 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801BA78 @ =0x80000070 _0801BA0C: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801BA7C @ =0x040000D4 ldr r0, [r2, #0x2c] movs r4, #0xa0 lsls r4, r4, #1 adds r0, r0, r4 str r0, [r1] ldr r0, _0801BA80 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801BA84 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r5, r8 ldr r0, [r5] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r0, [r5] adds r0, #0x70 movs r1, #1 _0801BA36: strb r1, [r0] _0801BA38: mov r6, r8 ldr r1, [r6] ldr r2, _0801BA88 @ =0x00000252 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 beq _0801BA4A bl _0801C554 _0801BA4A: ldr r0, _0801BA8C @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _0801BA9C ldr r3, _0801BA90 @ =0x00000283 adds r0, r1, r3 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0801BA94 movs r0, #0x1c bl m4aSongNumStart b _0801BAC6 .align 2, 0 _0801BA74: .4byte 0x05000240 _0801BA78: .4byte 0x80000070 _0801BA7C: .4byte 0x040000D4 _0801BA80: .4byte 0x05000340 _0801BA84: .4byte 0x80000030 _0801BA88: .4byte 0x00000252 _0801BA8C: .4byte 0x0200B0C0 _0801BA90: .4byte 0x00000283 _0801BA94: movs r0, #0x5b bl m4aSongNumStart b _0801BAC6 _0801BA9C: ldr r4, _0801BABC @ =0x00000283 adds r0, r1, r4 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0801BAC0 movs r0, #0x20 bl m4aSongNumStart b _0801BAC6 .align 2, 0 _0801BABC: .4byte 0x00000283 _0801BAC0: movs r0, #0x5c bl m4aSongNumStart _0801BAC6: ldr r0, _0801BAE4 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801BAEC ldr r5, _0801BAE8 @ =0x000006DE adds r1, r1, r5 movs r0, #0xaa strh r0, [r1] b _0801BAF0 .align 2, 0 _0801BAE4: .4byte 0x020314E0 _0801BAE8: .4byte 0x000006DE _0801BAEC: movs r0, #0x18 strh r0, [r1, #0x28] _0801BAF0: ldr r0, _0801BB08 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0801BB0C movs r0, #1 movs r1, #0 bl sub_1C7F4 b _0801BB14 .align 2, 0 _0801BB08: .4byte 0x020314E0 _0801BB0C: movs r0, #0 movs r1, #0 bl sub_1C7F4 _0801BB14: ldr r3, _0801BB54 @ =0x020314E0 ldr r0, [r3] ldr r6, _0801BB58 @ =0x000006C4 adds r0, r0, r6 movs r2, #0 strb r2, [r0] ldr r0, [r3] ldr r1, _0801BB5C @ =0x000006DB adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r4, _0801BB60 @ =0x000006DD adds r0, r0, r4 strb r2, [r0] ldr r1, _0801BB64 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r0, [r0, #0x1c] movs r4, #0 strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x20] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x18] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x24] strh r2, [r0] ldr r0, [r3] bl _0801C528 .align 2, 0 _0801BB54: .4byte 0x020314E0 _0801BB58: .4byte 0x000006C4 _0801BB5C: .4byte 0x000006DB _0801BB60: .4byte 0x000006DD _0801BB64: .4byte 0x0200B0C0 thumb_func_start sub_1BB68 sub_1BB68: @ 0x0801BB68 movs r5, #0 mov r6, r8 ldr r1, [r6] ldr r2, _0801BD0C @ =0x00000281 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0801BB80 bl sub_1C544 _0801BB80: movs r6, #0xdd lsls r6, r6, #1 adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x95 bne _0801BC52 bl m4aMPlayAllStop ldr r3, _0801BD10 @ =0x0200B0C0 ldrb r1, [r3, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r3, #0xf] mov r0, r8 ldr r4, [r0] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r5, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0x78 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r5, [r0] subs r0, #2 strh r5, [r0] adds r0, #8 strh r5, [r0] adds r1, #6 movs r0, #3 strb r0, [r1] mov r1, r8 ldr r0, [r1] adds r0, #0xfa movs r1, #1 strb r1, [r0] mov r4, r8 ldr r0, [r4] adds r0, #0xfb strb r2, [r0] ldr r4, [r4] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _0801BD14 @ =0x0000F63C strh r0, [r1] subs r1, #6 movs r0, #0x32 strh r0, [r1] adds r0, r4, #0 adds r0, #0xf8 strh r5, [r0] ldr r1, _0801BD18 @ =0x040000D4 ldr r0, _0801BD1C @ =0x086ACEF8 ldr r0, [r0, #0xc] str r0, [r1] ldr r0, _0801BD20 @ =0x06015800 str r0, [r1, #4] ldr r0, _0801BD24 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801BD28 @ =0x086ACF18 ldr r0, [r0, #0xc] str r0, [r1] ldr r0, _0801BD2C @ =0x050003C0 str r0, [r1, #4] ldr r0, _0801BD30 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r3, #0x38] movs r0, #0xce strh r0, [r3, #0x38] mov r0, r8 ldr r3, [r0] adds r1, r3, r6 movs r0, #0x94 strh r0, [r1] movs r1, #0xa0 lsls r1, r1, #2 adds r0, r3, r1 strb r2, [r0] mov r3, r8 ldr r0, [r3] movs r4, #0xd3 lsls r4, r4, #1 adds r0, r0, r4 strb r2, [r0] ldr r0, [r3] subs r1, #0x24 adds r0, r0, r1 strb r2, [r0] ldr r0, [r3] movs r3, #0xd8 lsls r3, r3, #1 adds r0, r0, r3 strb r2, [r0] mov r4, r8 ldr r0, [r4] subs r1, #0xaa adds r0, r0, r1 strh r5, [r0] _0801BC52: mov r2, r8 ldr r1, [r2] adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x92 bne _0801BC82 adds r1, #0xe4 movs r0, #0x12 strb r0, [r1] ldr r1, _0801BD18 @ =0x040000D4 ldr r0, _0801BD34 @ =0x084F61EC str r0, [r1] ldr r0, _0801BD38 @ =0x06015C00 str r0, [r1, #4] ldr r0, _0801BD3C @ =0x800004A0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801BD40 @ =0x081B4584 str r0, [r1] ldr r0, _0801BD44 @ =0x05000180 str r0, [r1, #4] ldr r0, _0801BD30 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0801BC82: mov r3, r8 ldr r1, [r3] adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0x91 beq _0801BC90 b _0801BDAC _0801BC90: movs r4, #0xd4 lsls r4, r4, #1 adds r0, r1, r4 strb r5, [r0] ldr r1, [r3] movs r5, #0xa0 lsls r5, r5, #2 adds r0, r1, r5 movs r2, #0 ldrsb r2, [r0, r2] movs r6, #0x9c lsls r6, r6, #2 adds r0, r1, r6 adds r0, r0, r2 ldrb r3, [r0] movs r0, #0xb3 lsls r0, r0, #3 adds r2, r1, r0 movs r4, #0 strh r3, [r2] ldr r2, _0801BD48 @ =0x0000025D adds r1, r1, r2 strb r4, [r1] ldr r6, _0801BD4C @ =0x086A3700 mov r1, r8 ldr r5, [r1] adds r0, r5, r0 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r6 ldrb r4, [r0, #0x15] cmp r4, #0xcc bgt _0801BCF8 adds r1, r5, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #3 adds r0, r0, r6 ldrb r0, [r0, #0x15] cmp r0, #0xcc bgt _0801BCF8 mov r3, r8 ldr r1, [r3] adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0801BCF8: bl sub_22FA4 ldr r0, _0801BD10 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _0801BD50 movs r0, #0x1e bl m4aSongNumStart b _0801BD56 .align 2, 0 _0801BD0C: .4byte 0x00000281 _0801BD10: .4byte 0x0200B0C0 _0801BD14: .4byte 0x0000F63C _0801BD18: .4byte 0x040000D4 _0801BD1C: .4byte 0x086ACEF8 _0801BD20: .4byte 0x06015800 _0801BD24: .4byte 0x80001200 _0801BD28: .4byte 0x086ACF18 _0801BD2C: .4byte 0x050003C0 _0801BD30: .4byte 0x80000010 _0801BD34: .4byte 0x084F61EC _0801BD38: .4byte 0x06015C00 _0801BD3C: .4byte 0x800004A0 _0801BD40: .4byte 0x081B4584 _0801BD44: .4byte 0x05000180 _0801BD48: .4byte 0x0000025D _0801BD4C: .4byte 0x086A3700 _0801BD50: movs r0, #0x22 bl m4aSongNumStart _0801BD56: adds r0, r7, #0 bl sub_21FBC ldr r3, _0801BE08 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r0, [r0, #0x20] movs r5, #0 movs r4, #1 strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x24] strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x18] strh r4, [r0] ldr r2, _0801BE0C @ =0x040000D4 ldr r0, _0801BE10 @ =0x081B8784 str r0, [r2] ldr r0, _0801BE14 @ =0x050003C0 str r0, [r2, #4] ldr r0, _0801BE18 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r6, _0801BE1C @ =0x000002EA adds r1, r3, r6 movs r0, #0x50 strh r0, [r1] strh r5, [r3, #0x2a] ldr r0, _0801BE20 @ =0x020314E0 ldr r0, [r0] movs r1, #0xdc lsls r1, r1, #1 adds r0, r0, r1 movs r1, #0xf strh r1, [r0] strh r4, [r3, #0x28] ldr r0, _0801BE24 @ =0x081B4784 str r0, [r2] ldr r0, _0801BE28 @ =0x06002000 str r0, [r2, #4] ldr r0, _0801BE2C @ =0x80000620 str r0, [r2, #8] ldr r0, [r2, #8] _0801BDAC: ldr r4, _0801BE20 @ =0x020314E0 ldr r2, [r4] movs r3, #0xdd lsls r3, r3, #1 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x90 bls _0801BDBE b _0801C2D8 _0801BDBE: movs r5, #0xdc lsls r5, r5, #3 adds r1, r2, r5 movs r6, #0 movs r0, #0 strh r0, [r1] ldr r0, _0801BE30 @ =0x000006C4 adds r1, r2, r0 movs r0, #2 strb r0, [r1] ldr r0, [r4] ldr r1, _0801BE34 @ =0x000006DB adds r0, r0, r1 strb r6, [r0] ldr r3, [r4] movs r5, #0xdc lsls r5, r5, #1 adds r2, r3, r5 ldrh r1, [r2] movs r5, #0 ldrsh r0, [r2, r5] cmp r0, #0 ble _0801BE74 subs r1, #1 strh r1, [r2] movs r6, #0xd8 lsls r6, r6, #1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801BE38 lsls r0, r1, #0x10 asrs r0, r0, #0x10 b _0801BE58 .align 2, 0 _0801BE08: .4byte 0x0200B0C0 _0801BE0C: .4byte 0x040000D4 _0801BE10: .4byte 0x081B8784 _0801BE14: .4byte 0x050003C0 _0801BE18: .4byte 0x80000010 _0801BE1C: .4byte 0x000002EA _0801BE20: .4byte 0x020314E0 _0801BE24: .4byte 0x081B4784 _0801BE28: .4byte 0x06002000 _0801BE2C: .4byte 0x80000620 _0801BE30: .4byte 0x000006C4 _0801BE34: .4byte 0x000006DB _0801BE38: lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _0801BE64 movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x1e subs r0, r0, r1 lsls r1, r0, #3 subs r1, r1, r0 movs r4, #0xdb lsls r4, r4, #1 adds r0, r3, r4 strh r1, [r0] movs r5, #0 ldrsh r0, [r2, r5] _0801BE58: cmp r0, #0xf beq _0801BE5E b _0801C1FA _0801BE5E: bl sub_22FA4 b _0801C1FA _0801BE64: movs r6, #0 ldrsh r1, [r2, r6] lsls r0, r1, #3 subs r0, r0, r1 movs r2, #0xdb lsls r2, r2, #1 adds r1, r3, r2 b _0801C1F8 _0801BE74: ldr r5, _0801BEAC @ =0x00000281 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _0801BE84 b _0801BFA6 _0801BE84: ldr r0, _0801BEB0 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0801BEEC movs r0, #0x82 bl m4aSongNumStart ldr r2, [r4] movs r3, #0xa0 lsls r3, r3, #2 adds r1, r2, r3 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801BEB4 subs r0, r3, #1 b _0801BEBA .align 2, 0 _0801BEAC: .4byte 0x00000281 _0801BEB0: .4byte 0x0200B0C0 _0801BEB4: adds r0, r2, r5 ldrb r0, [r0] subs r0, #1 _0801BEBA: strb r0, [r1] ldr r5, _0801BEE8 @ =0x020314E0 ldr r4, [r5] movs r6, #0xa0 lsls r6, r6, #2 adds r0, r4, r6 movs r1, #0 ldrsb r1, [r0, r1] movs r2, #0x9c lsls r2, r2, #2 adds r0, r4, r2 adds r0, r0, r1 ldrb r1, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 movs r2, #0 strh r1, [r0] subs r6, #0xd8 adds r1, r4, r6 movs r0, #1 strb r0, [r1] b _0801BF48 .align 2, 0 _0801BEE8: .4byte 0x020314E0 _0801BEEC: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801BFA6 movs r0, #0x82 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xa0 lsls r1, r1, #2 adds r2, r0, r1 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 bge _0801BF1C ldrb r0, [r2] adds r0, #1 strb r0, [r2] b _0801BF1E _0801BF1C: strb r6, [r2] _0801BF1E: ldr r5, _0801C000 @ =0x020314E0 ldr r4, [r5] movs r2, #0xa0 lsls r2, r2, #2 adds r0, r4, r2 movs r1, #0 ldrsb r1, [r0, r1] movs r3, #0x9c lsls r3, r3, #2 adds r0, r4, r3 adds r0, r0, r1 ldrb r1, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 movs r2, #0 strh r1, [r0] movs r6, #0xd4 lsls r6, r6, #1 adds r0, r4, r6 strb r2, [r0] _0801BF48: ldr r4, [r5] movs r0, #0xdc lsls r0, r0, #1 adds r1, r4, r0 movs r0, #0x1e strh r0, [r1] movs r1, #0x97 lsls r1, r1, #2 adds r0, r4, r1 strb r2, [r0] ldr r0, [r5] movs r4, #0xd8 lsls r4, r4, #1 adds r0, r0, r4 strb r2, [r0] ldr r0, [r5] ldr r7, _0801C004 @ =0x0000025D adds r0, r0, r7 strb r2, [r0] ldr r6, _0801C008 @ =0x086A3700 ldr r4, [r5] adds r3, r4, r3 ldrh r1, [r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r6 ldrb r2, [r0, #0x15] cmp r2, #0xcc bgt _0801BFA6 adds r0, r7, #0 adds r1, r4, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #3 adds r0, r0, r6 ldrb r0, [r0, #0x15] cmp r0, #0xcc bgt _0801BFA6 ldr r1, [r5] adds r1, r1, r7 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0801BFA6: ldr r0, _0801C00C @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0801C070 ldr r6, _0801C000 @ =0x020314E0 ldr r1, [r6] movs r7, #0x97 lsls r7, r7, #2 adds r0, r1, r7 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #0 bne _0801C014 ldr r2, _0801C008 @ =0x086A3700 movs r3, #0xb3 lsls r3, r3, #3 adds r0, r1, r3 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r5, [r0, #0x15] cmp r5, #0xcc bgt _0801C058 movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r4, _0801C010 @ =0x0000059A adds r0, r1, r4 strh r5, [r0] movs r5, #0xdc lsls r5, r5, #1 adds r2, r1, r5 movs r0, #0x1e strh r0, [r2] movs r0, #0xd8 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #1 strb r0, [r1] b _0801C04E .align 2, 0 _0801C000: .4byte 0x020314E0 _0801C004: .4byte 0x0000025D _0801C008: .4byte 0x086A3700 _0801C00C: .4byte 0x0200B0C0 _0801C010: .4byte 0x0000059A _0801C014: cmp r4, #1 bne _0801C058 ldr r2, _0801C064 @ =0x086A3700 ldr r3, _0801C068 @ =0x0000059A adds r0, r1, r3 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r5, [r0, #0x15] cmp r5, #0xcc bgt _0801C058 movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r2, _0801C068 @ =0x0000059A adds r0, r1, r2 strh r5, [r0] movs r3, #0xdc lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0x1e strh r0, [r2] movs r5, #0xd8 lsls r5, r5, #1 adds r1, r1, r5 strb r4, [r1] _0801C04E: ldr r1, [r6] adds r1, r1, r7 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0801C058: ldr r0, _0801C06C @ =0x020314E0 ldr r0, [r0] movs r6, #0xd9 lsls r6, r6, #1 adds r1, r0, r6 b _0801C116 .align 2, 0 _0801C064: .4byte 0x086A3700 _0801C068: .4byte 0x0000059A _0801C06C: .4byte 0x020314E0 _0801C070: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801C11A ldr r6, _0801C0BC @ =0x020314E0 ldr r1, [r6] movs r7, #0x97 lsls r7, r7, #2 adds r0, r1, r7 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bne _0801C0C4 movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r5, [r0] movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xcc bgt _0801C10C movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r2, _0801C0C0 @ =0x0000059A adds r0, r1, r2 strh r5, [r0] movs r3, #0xdc lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0x1e strh r0, [r2] movs r5, #0xd8 lsls r5, r5, #1 adds r1, r1, r5 strb r4, [r1] b _0801C102 .align 2, 0 _0801C0BC: .4byte 0x020314E0 _0801C0C0: .4byte 0x0000059A _0801C0C4: cmp r4, #2 bne _0801C10C ldr r2, _0801C148 @ =0x086A3700 movs r3, #0xb3 lsls r3, r3, #3 adds r0, r1, r3 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r5, [r0, #0x15] cmp r5, #0xcc bgt _0801C10C movs r0, #0x82 bl m4aSongNumStart ldr r1, [r6] ldr r4, _0801C14C @ =0x0000059A adds r0, r1, r4 strh r5, [r0] movs r5, #0xdc lsls r5, r5, #1 adds r2, r1, r5 movs r0, #0x1e strh r0, [r2] movs r0, #0xd8 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #1 strb r0, [r1] _0801C102: ldr r1, [r6] adds r1, r1, r7 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801C10C: ldr r0, _0801C150 @ =0x020314E0 ldr r0, [r0] movs r2, #0xd9 lsls r2, r2, #1 adds r1, r0, r2 _0801C116: movs r0, #0 strh r0, [r1] _0801C11A: ldr r0, _0801C150 @ =0x020314E0 ldr r1, [r0] movs r3, #0x97 lsls r3, r3, #2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0801C1FA ldr r4, _0801C14C @ =0x0000059A adds r2, r1, r4 ldrh r0, [r2] cmp r0, #0x59 beq _0801C190 cmp r0, #0x59 bgt _0801C154 cmp r0, #0xe beq _0801C168 cmp r0, #0x10 beq _0801C17C b _0801C1EA .align 2, 0 _0801C148: .4byte 0x086A3700 _0801C14C: .4byte 0x0000059A _0801C150: .4byte 0x020314E0 _0801C154: cmp r0, #0xb0 beq _0801C1B8 cmp r0, #0xb0 bgt _0801C162 cmp r0, #0x5a beq _0801C1A4 b _0801C1EA _0801C162: cmp r0, #0xb1 beq _0801C1D2 b _0801C1EA _0801C168: movs r5, #0xd9 lsls r5, r5, #1 adds r1, r1, r5 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0x10 b _0801C1CA _0801C17C: movs r6, #0xd9 lsls r6, r6, #1 adds r1, r1, r6 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0xe b _0801C1CA _0801C190: movs r0, #0xd9 lsls r0, r0, #1 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0x5a b _0801C1CA _0801C1A4: movs r3, #0xd9 lsls r3, r3, #1 adds r1, r1, r3 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0x59 b _0801C1CA _0801C1B8: movs r4, #0xd9 lsls r4, r4, #1 adds r1, r1, r4 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0xb1 _0801C1CA: strh r0, [r2] bl sub_22FA4 b _0801C1EA _0801C1D2: movs r5, #0xd9 lsls r5, r5, #1 adds r1, r1, r5 ldrh r0, [r1] cmp r0, #0x32 bne _0801C1EA movs r0, #0 strh r0, [r1] movs r0, #0xb0 strh r0, [r2] bl sub_22FA4 _0801C1EA: ldr r0, _0801C220 @ =0x020314E0 ldr r0, [r0] movs r6, #0xd9 lsls r6, r6, #1 adds r1, r0, r6 ldrh r0, [r1] adds r0, #1 _0801C1F8: strh r0, [r1] _0801C1FA: bl sub_23070 ldr r0, _0801C220 @ =0x020314E0 ldr r1, [r0] movs r2, #0xd4 lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0801C22E ldr r3, _0801C224 @ =0x000001A9 adds r1, r1, r3 ldrb r0, [r1] cmp r0, #0 beq _0801C228 subs r0, #1 strb r0, [r1] b _0801C246 .align 2, 0 _0801C220: .4byte 0x020314E0 _0801C224: .4byte 0x000001A9 _0801C228: movs r0, #7 strb r0, [r1] b _0801C246 _0801C22E: ldr r4, _0801C240 @ =0x000001A9 adds r1, r1, r4 ldrb r0, [r1] cmp r0, #6 bhi _0801C244 adds r0, #1 strb r0, [r1] b _0801C246 .align 2, 0 _0801C240: .4byte 0x000001A9 _0801C244: strb r2, [r1] _0801C246: ldr r1, _0801C2A4 @ =0x040000D4 ldr r3, _0801C2A8 @ =0x086AD50C ldr r0, _0801C2AC @ =0x020314E0 ldr r2, [r0] ldr r5, _0801C2B0 @ =0x000001A9 adds r0, r2, r5 ldrb r0, [r0] lsrs r0, r0, #1 adds r0, #4 lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] ldr r0, _0801C2B4 @ =0x06002000 str r0, [r1, #4] ldr r0, _0801C2B8 @ =0x80000620 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _0801C2BC @ =0x0200B0C0 movs r6, #0x2a ldrsh r0, [r3, r6] lsls r0, r0, #2 movs r1, #0x50 subs r1, r1, r0 ldr r4, _0801C2C0 @ =0x000002EA adds r0, r3, r4 strh r1, [r0] adds r5, #0xa9 adds r2, r2, r5 ldrh r0, [r2] cmp r0, #0 beq _0801C2C4 ldrh r1, [r3, #0x2a] movs r6, #0x2a ldrsh r0, [r3, r6] cmp r0, #0 ble _0801C2D2 subs r0, r1, #1 strh r0, [r3, #0x2a] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bne _0801C2D2 strh r0, [r3, #0x28] movs r0, #0x90 strh r0, [r3, #0x26] b _0801C2D2 .align 2, 0 _0801C2A4: .4byte 0x040000D4 _0801C2A8: .4byte 0x086AD50C _0801C2AC: .4byte 0x020314E0 _0801C2B0: .4byte 0x000001A9 _0801C2B4: .4byte 0x06002000 _0801C2B8: .4byte 0x80000620 _0801C2BC: .4byte 0x0200B0C0 _0801C2C0: .4byte 0x000002EA _0801C2C4: ldrh r1, [r3, #0x2a] movs r2, #0x2a ldrsh r0, [r3, r2] cmp r0, #0x13 bgt _0801C2D2 adds r0, r1, #1 strh r0, [r3, #0x2a] _0801C2D2: movs r0, #0 bl sub_21FBC _0801C2D8: ldr r5, _0801C38C @ =0x020314E0 ldr r3, [r5] movs r4, #0xdc lsls r4, r4, #1 adds r0, r3, r4 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0 bgt _0801C31A ldr r1, _0801C390 @ =0x0200B0C0 movs r2, #0x2a ldrsh r0, [r1, r2] cmp r0, #0x13 ble _0801C31A ldrh r1, [r1, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801C31A ldr r6, _0801C394 @ =0x00000252 adds r0, r3, r6 movs r1, #0 movs r2, #0x1e strh r2, [r0] subs r6, #0xa2 adds r0, r3, r6 strb r1, [r0] ldr r0, [r5] adds r0, r0, r4 strh r2, [r0] movs r0, #0x83 bl m4aSongNumStart _0801C31A: ldr r0, _0801C38C @ =0x020314E0 ldr r2, [r0] ldr r3, _0801C394 @ =0x00000252 adds r1, r2, r3 ldrh r5, [r1] mov r8, r0 cmp r5, #0 bne _0801C32C b _0801C554 _0801C32C: subs r0, r5, #1 strh r0, [r1] movs r0, #0xdc lsls r0, r0, #1 adds r1, r2, r0 movs r2, #0 ldrsh r0, [r1, r2] cmp r0, #0xe bgt _0801C342 movs r0, #0xf strh r0, [r1] _0801C342: mov r4, r8 ldr r0, [r4] adds r1, r0, r3 ldrh r0, [r1] cmp r0, #4 bls _0801C350 b _0801C488 _0801C350: cmp r0, #1 bls _0801C3FC ldr r5, _0801C390 @ =0x0200B0C0 ldrh r0, [r5, #0x3c] movs r0, #4 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #3 bls _0801C364 b _0801C488 _0801C364: ldr r3, _0801C398 @ =0x040000D4 ldr r1, _0801C39C @ =0x02031520 ldr r4, [r1, #0x30] str r4, [r3] ldr r0, _0801C3A0 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801C3A4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801C3B0 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C3A8 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C3AC @ =0x80000060 b _0801C3BC .align 2, 0 _0801C38C: .4byte 0x020314E0 _0801C390: .4byte 0x0200B0C0 _0801C394: .4byte 0x00000252 _0801C398: .4byte 0x040000D4 _0801C39C: .4byte 0x02031520 _0801C3A0: .4byte 0x05000200 _0801C3A4: .4byte 0x80000010 _0801C3A8: .4byte 0x05000240 _0801C3AC: .4byte 0x80000060 _0801C3B0: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C3E8 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C3EC @ =0x80000070 _0801C3BC: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801C3F0 @ =0x040000D4 ldr r0, [r2, #0x30] movs r5, #0xa0 lsls r5, r5, #1 adds r0, r0, r5 str r0, [r1] ldr r0, _0801C3F4 @ =0x05000340 str r0, [r1, #4] ldr r0, _0801C3F8 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r6, r8 ldr r0, [r6] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r6] adds r0, #0x70 b _0801C486 .align 2, 0 _0801C3E8: .4byte 0x05000240 _0801C3EC: .4byte 0x80000070 _0801C3F0: .4byte 0x040000D4 _0801C3F4: .4byte 0x05000340 _0801C3F8: .4byte 0x80000030 _0801C3FC: ldr r5, _0801C434 @ =0x0200B0C0 ldrh r0, [r5, #0x3c] movs r0, #0 strh r0, [r5, #0x3c] ldrh r0, [r1] cmp r0, #0 beq _0801C40C b _0801C554 _0801C40C: ldr r3, _0801C438 @ =0x040000D4 ldr r1, _0801C43C @ =0x02031520 ldr r4, [r1, #0x2c] str r4, [r3] ldr r0, _0801C440 @ =0x05000200 str r0, [r3, #4] ldr r0, _0801C444 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] ldrb r0, [r5, #4] adds r2, r1, #0 cmp r0, #1 bne _0801C450 adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C448 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C44C @ =0x80000060 b _0801C45C .align 2, 0 _0801C434: .4byte 0x0200B0C0 _0801C438: .4byte 0x040000D4 _0801C43C: .4byte 0x02031520 _0801C440: .4byte 0x05000200 _0801C444: .4byte 0x80000010 _0801C448: .4byte 0x05000240 _0801C44C: .4byte 0x80000060 _0801C450: adds r0, r4, #0 adds r0, #0x40 str r0, [r3] ldr r0, _0801C4B0 @ =0x05000240 str r0, [r3, #4] ldr r0, _0801C4B4 @ =0x80000070 _0801C45C: str r0, [r3, #8] ldr r0, [r3, #8] ldr r1, _0801C4B8 @ =0x040000D4 ldr r0, [r2, #0x2c] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0801C4BC @ =0x05000340 str r0, [r1, #4] ldr r0, _0801C4C0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] mov r3, r8 ldr r0, [r3] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r0, [r3] adds r0, #0x70 movs r1, #1 _0801C486: strb r1, [r0] _0801C488: mov r4, r8 ldr r1, [r4] ldr r5, _0801C4C4 @ =0x00000252 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 bne _0801C554 adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801C4CC ldr r6, _0801C4C8 @ =0x000006DE adds r1, r1, r6 movs r0, #0xaa strh r0, [r1] b _0801C4D0 .align 2, 0 _0801C4B0: .4byte 0x05000240 _0801C4B4: .4byte 0x80000070 _0801C4B8: .4byte 0x040000D4 _0801C4BC: .4byte 0x05000340 _0801C4C0: .4byte 0x80000030 _0801C4C4: .4byte 0x00000252 _0801C4C8: .4byte 0x000006DE _0801C4CC: movs r0, #0x18 strh r0, [r1, #0x28] _0801C4D0: mov r1, r8 ldr r0, [r1] ldr r2, _0801C530 @ =0x000006C4 adds r0, r0, r2 movs r2, #0 strb r2, [r0] ldr r0, [r1] ldr r3, _0801C534 @ =0x000006DB adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r1, _0801C538 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r0, [r0, #0x20] movs r4, #0 strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x18] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x24] strh r2, [r0] mov r5, r8 ldr r0, [r5] movs r6, #0xe4 lsls r6, r6, #3 adds r0, r0, r6 strb r4, [r0] ldr r0, [r5] ldr r1, _0801C53C @ =0x0000071D adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r0, [r5] ldr r2, _0801C540 @ =0x0000071E adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, #0x44 adds r0, r0, r3 strb r1, [r0] bl sub_2310C ldr r0, [r5] _0801C528: adds r0, #0xe4 strb r4, [r0] b _0801C554 .align 2, 0 _0801C530: .4byte 0x000006C4 _0801C534: .4byte 0x000006DB _0801C538: .4byte 0x0200B0C0 _0801C53C: .4byte 0x0000071D _0801C540: .4byte 0x0000071E thumb_func_start sub_1C544 sub_1C544: @ 0x0801C544 movs r4, #0xdd lsls r4, r4, #1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x32 bne _0801C554 movs r0, #0x18 strh r0, [r1, #0x28] _0801C554: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_1C560 sub_1C560: @ 0x0801C560 push {r4, lr} ldr r3, _0801C598 @ =0x020314E0 ldr r1, [r3] movs r4, #0 movs r2, #0 movs r0, #0x96 strh r0, [r1, #0x28] ldr r0, _0801C59C @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r0, [r0, #0x34] strh r2, [r0] ldr r0, _0801C5A0 @ =0x000005F3 adds r1, r1, r0 strb r4, [r1] ldr r0, [r3] ldr r1, _0801C5A4 @ =0x00002710 str r1, [r0, #0x3c] ldr r1, _0801C5A8 @ =0x000005F7 adds r0, r0, r1 movs r1, #1 strb r1, [r0] movs r0, #8 bl sub_11B0 pop {r4} pop {r0} bx r0 .align 2, 0 _0801C598: .4byte 0x020314E0 _0801C59C: .4byte 0x0200B0C0 _0801C5A0: .4byte 0x000005F3 _0801C5A4: .4byte 0x00002710 _0801C5A8: .4byte 0x000005F7 thumb_func_start sub_1C5AC sub_1C5AC: @ 0x0801C5AC push {r4, r5, r6, lr} ldr r5, _0801C614 @ =0x020314E0 ldr r2, [r5] ldrh r0, [r2, #0x28] adds r1, r0, #0 cmp r1, #0 bne _0801C5BC b _0801C728 _0801C5BC: subs r0, #1 movs r4, #0 movs r6, #0 strh r0, [r2, #0x28] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x94 bls _0801C61C ldr r1, _0801C618 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r4, #1 strb r4, [r0] ldr r0, [r5] strb r4, [r0, #0x1f] ldr r3, [r5] adds r1, r3, r1 ldr r0, [r1] strh r6, [r0, #0x30] ldr r0, [r1] strh r6, [r0, #0x32] ldr r2, [r1] movs r0, #0x77 strh r0, [r2, #0x10] ldr r2, [r1] adds r0, #0xa0 strh r0, [r2, #0x12] ldr r0, [r1] strh r6, [r0, #6] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] movs r5, #0xe6 lsls r5, r5, #3 adds r3, r3, r5 strb r4, [r3] b _0801C706 .align 2, 0 _0801C614: .4byte 0x020314E0 _0801C618: .4byte 0x0000132C _0801C61C: cmp r0, #0x94 bne _0801C630 movs r0, #1 strb r0, [r2, #0x1f] ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] b _0801C706 _0801C630: cmp r0, #0x24 bls _0801C644 movs r0, #1 strb r0, [r2, #0x1f] ldr r0, [r5] movs r2, #0xe6 lsls r2, r2, #3 adds r0, r0, r2 strb r4, [r0] b _0801C706 _0801C644: cmp r0, #0x18 bls _0801C658 movs r1, #1 strb r1, [r2, #0x1f] ldr r0, [r5] movs r3, #0xe6 lsls r3, r3, #3 adds r0, r0, r3 strb r1, [r0] b _0801C706 _0801C658: cmp r0, #0x18 bne _0801C6B0 movs r0, #0x80 bl m4aSongNumStart ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r1, [r5] ldr r3, _0801C6A4 @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] movs r0, #0x49 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xec strh r0, [r2, #0x32] ldr r0, [r1] strb r4, [r0] ldr r0, [r5] strb r4, [r0, #0x1f] ldr r0, [r5] ldr r2, _0801C6A8 @ =0x000005FA adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] adds r3, r1, r3 ldr r2, [r3] movs r0, #0x88 strh r0, [r2, #0xe] ldr r3, _0801C6AC @ =0x000005F7 adds r1, r1, r3 strb r4, [r1] b _0801C706 .align 2, 0 _0801C6A4: .4byte 0x0000132C _0801C6A8: .4byte 0x000005FA _0801C6AC: .4byte 0x000005F7 _0801C6B0: cmp r0, #0xc bls _0801C6FC movs r1, #0xe6 lsls r1, r1, #3 adds r0, r2, r1 movs r1, #2 strb r1, [r0] ldr r1, [r5] ldrh r0, [r1, #0x28] cmp r0, #0x15 bls _0801C6E8 ldr r2, _0801C6E4 @ =0x0000132C adds r0, r1, r2 ldr r4, [r0] ldrh r0, [r1, #0x28] movs r1, #0x18 subs r1, r1, r0 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #4 movs r1, #3 bl __divsi3 adds r0, #0x90 strh r0, [r4, #0xe] b _0801C706 .align 2, 0 _0801C6E4: .4byte 0x0000132C _0801C6E8: ldr r3, _0801C6F8 @ =0x0000132C adds r0, r1, r3 ldr r1, [r0] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #0xe] b _0801C706 .align 2, 0 _0801C6F8: .4byte 0x0000132C _0801C6FC: movs r5, #0xe6 lsls r5, r5, #3 adds r1, r2, r5 movs r0, #1 strb r0, [r1] _0801C706: ldr r0, _0801C724 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x28] cmp r0, #0x28 bhi _0801C736 adds r1, #0xe6 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _0801C736 subs r0, r2, #1 strh r0, [r1] b _0801C736 .align 2, 0 _0801C724: .4byte 0x020314E0 _0801C728: movs r3, #0xe6 lsls r3, r3, #3 adds r0, r2, r3 strb r1, [r0] ldr r0, [r5] adds r0, #0x25 strb r1, [r0] _0801C736: pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_1C73C sub_1C73C: @ 0x0801C73C push {r4, r5, r6, r7, lr} ldr r7, _0801C7E0 @ =0x0200B0C0 ldr r0, [r7, #0x44] ldr r0, [r0, #0x34] movs r6, #0 movs r4, #0 strh r4, [r0] movs r0, #0 bl sub_4B408 ldr r5, _0801C7E4 @ =0x020314E0 ldr r1, [r5] ldr r2, _0801C7E8 @ =0x0000132C adds r1, r1, r2 ldr r0, [r1] strh r4, [r0, #0x30] ldr r0, [r1] strh r4, [r0, #0x32] ldr r0, [r1] strb r6, [r0] ldr r0, [r5] strb r6, [r0, #0x1f] ldr r1, [r5] adds r2, r1, r2 ldr r2, [r2] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0xe] movs r0, #0xe6 lsls r0, r0, #3 adds r1, r1, r0 strb r6, [r1] ldr r0, [r5] adds r0, #0x25 strb r6, [r0] ldr r1, [r5] ldr r2, _0801C7EC @ =0x00000282 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801C7BA ldr r2, _0801C7F0 @ =0x00000723 adds r0, r1, r2 strb r6, [r0] ldr r0, [r5] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 strb r6, [r0] ldr r0, [r5] subs r2, #6 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] subs r1, #2 adds r0, r0, r1 strb r6, [r0] ldr r0, [r5] adds r2, #2 adds r0, r0, r2 strb r6, [r0] _0801C7BA: bl m4aMPlayAllStop bl sub_D10 ldrb r0, [r7, #4] strb r0, [r7, #5] ldr r0, [r5] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r7, #4] movs r0, #1 strb r0, [r7, #6] strb r6, [r7, #3] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801C7E0: .4byte 0x0200B0C0 _0801C7E4: .4byte 0x020314E0 _0801C7E8: .4byte 0x0000132C _0801C7EC: .4byte 0x00000282 _0801C7F0: .4byte 0x00000723 thumb_func_start sub_1C7F4 sub_1C7F4: @ 0x0801C7F4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x30 lsls r0, r0, #0x10 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 str r1, [sp, #0x2c] lsrs r1, r0, #0x10 str r1, [sp, #0x28] asrs r0, r0, #0x10 ldr r2, _0801C824 @ =0x020314E0 mov sl, r2 cmp r0, #9 bls _0801C81A bl _0801D0B8 _0801C81A: lsls r0, r0, #2 ldr r1, _0801C828 @ =_0801C82C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801C824: .4byte 0x020314E0 _0801C828: .4byte _0801C82C _0801C82C: @ jump table .4byte _0801C854 @ case 0 .4byte _0801C900 @ case 1 .4byte _0801C9A8 @ case 2 .4byte _0801CA4C @ case 3 .4byte _0801CCB8 @ case 4 .4byte _0801D0B8 @ case 5 .4byte _0801CDC0 @ case 6 .4byte _0801CF6C @ case 7 .4byte _0801D02C @ case 8 .4byte _0801CB24 @ case 9 _0801C854: ldr r6, _0801C8D0 @ =0x020314E0 ldr r0, [r6] ldr r3, _0801C8D4 @ =0x000006DB adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r6] ldr r4, [sp, #0x2c] lsls r3, r4, #0x10 asrs r3, r3, #0x10 ldr r2, _0801C8D8 @ =0x00000749 adds r1, r0, r2 adds r1, r1, r3 ldr r5, _0801C8DC @ =0x000006D9 mov r8, r5 add r0, r8 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r4, _0801C8E0 @ =0x040000D4 ldr r5, [r6] adds r2, r5, r2 adds r2, r2, r3 ldrb r1, [r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801C8E4 @ =0x0848D68C adds r0, r0, r1 str r0, [r4] lsls r2, r3, #1 adds r0, r2, r3 lsls r0, r0, #8 ldr r1, _0801C8E8 @ =0x06010CA0 adds r0, r0, r1 str r0, [r4, #4] ldr r0, _0801C8EC @ =0x80000180 str r0, [r4, #8] ldr r0, [r4, #8] add r5, r8 adds r5, r5, r3 movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #0x14 lsrs r0, r0, #0xf ldr r1, _0801C8F0 @ =0x081C00E4 adds r0, r0, r1 str r0, [r4] ldr r0, _0801C8F4 @ =0x086AD798 adds r2, r2, r0 ldrh r0, [r2] lsls r0, r0, #5 ldr r2, _0801C8F8 @ =0x05000200 adds r0, r0, r2 str r0, [r4, #4] ldr r0, _0801C8FC @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] mov sl, r6 bl _0801D0B8 .align 2, 0 _0801C8D0: .4byte 0x020314E0 _0801C8D4: .4byte 0x000006DB _0801C8D8: .4byte 0x00000749 _0801C8DC: .4byte 0x000006D9 _0801C8E0: .4byte 0x040000D4 _0801C8E4: .4byte 0x0848D68C _0801C8E8: .4byte 0x06010CA0 _0801C8EC: .4byte 0x80000180 _0801C8F0: .4byte 0x081C00E4 _0801C8F4: .4byte 0x086AD798 _0801C8F8: .4byte 0x05000200 _0801C8FC: .4byte 0x80000010 _0801C900: ldr r7, _0801C97C @ =0x086AD070 ldr r6, _0801C980 @ =0x020314E0 ldr r0, [r6] ldr r3, [sp, #0x2c] lsls r4, r3, #0x10 asrs r4, r4, #0x10 ldr r5, _0801C984 @ =0x00000749 mov r8, r5 adds r5, r0, r5 adds r5, r5, r4 movs r1, #0xe1 lsls r1, r1, #3 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r7 ldrh r0, [r0] strb r0, [r5] ldrh r2, [r7, #4] lsls r2, r2, #0x14 ldr r3, _0801C988 @ =0x040000D4 ldr r0, [r6] add r0, r8 adds r0, r0, r4 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801C98C @ =0x083A8EEC adds r0, r0, r1 str r0, [r3] lsls r1, r4, #1 adds r4, r1, r4 lsls r4, r4, #8 ldr r5, _0801C990 @ =0x06010CA0 adds r4, r4, r5 str r4, [r3, #4] ldr r0, _0801C994 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] lsrs r2, r2, #0xf ldr r0, _0801C998 @ =0x081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801C99C @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801C9A0 @ =0x05000200 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0801C9A4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, r6 b _0801D0B8 .align 2, 0 _0801C97C: .4byte 0x086AD070 _0801C980: .4byte 0x020314E0 _0801C984: .4byte 0x00000749 _0801C988: .4byte 0x040000D4 _0801C98C: .4byte 0x083A8EEC _0801C990: .4byte 0x06010CA0 _0801C994: .4byte 0x80000180 _0801C998: .4byte 0x081C02E4 _0801C99C: .4byte 0x086AD798 _0801C9A0: .4byte 0x05000200 _0801C9A4: .4byte 0x80000010 _0801C9A8: ldr r5, _0801CA1C @ =0x020314E0 ldr r3, [r5] ldr r4, [sp, #0x2c] lsls r2, r4, #0x10 asrs r2, r2, #0x10 ldr r1, _0801CA20 @ =0x000006EC adds r0, r3, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801CA24 @ =0x086AD000 adds r7, r0, r1 ldr r1, _0801CA28 @ =0x00000749 adds r3, r3, r1 adds r3, r3, r2 ldrh r0, [r7] strb r0, [r3] ldrh r3, [r7, #4] lsls r3, r3, #0x14 ldr r4, _0801CA2C @ =0x040000D4 ldr r0, [r5] adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CA30 @ =0x083A8EEC adds r0, r0, r1 str r0, [r4] lsls r1, r2, #1 adds r2, r1, r2 lsls r2, r2, #8 ldr r0, _0801CA34 @ =0x06010CA0 adds r2, r2, r0 str r2, [r4, #4] ldr r0, _0801CA38 @ =0x80000180 str r0, [r4, #8] ldr r0, [r4, #8] lsrs r3, r3, #0xf ldr r0, _0801CA3C @ =0x081C02E4 adds r3, r3, r0 str r3, [r4] ldr r0, _0801CA40 @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801CA44 @ =0x05000200 adds r0, r0, r1 str r0, [r4, #4] ldr r0, _0801CA48 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] mov sl, r5 b _0801D0B8 .align 2, 0 _0801CA1C: .4byte 0x020314E0 _0801CA20: .4byte 0x000006EC _0801CA24: .4byte 0x086AD000 _0801CA28: .4byte 0x00000749 _0801CA2C: .4byte 0x040000D4 _0801CA30: .4byte 0x083A8EEC _0801CA34: .4byte 0x06010CA0 _0801CA38: .4byte 0x80000180 _0801CA3C: .4byte 0x081C02E4 _0801CA40: .4byte 0x086AD798 _0801CA44: .4byte 0x05000200 _0801CA48: .4byte 0x80000010 _0801CA4C: ldr r7, _0801CAFC @ =0x020314E0 ldr r1, [r7] ldr r2, [sp, #0x2c] lsls r2, r2, #0x10 asrs r2, r2, #0x10 mov r8, r2 ldr r2, _0801CB00 @ =0x00000749 adds r0, r1, r2 add r0, r8 movs r3, #0xb3 lsls r3, r3, #3 adds r1, r1, r3 ldrh r1, [r1] strb r1, [r0] ldr r5, _0801CB04 @ =0x040000D4 ldr r4, _0801CB08 @ =0x086BB738 mov sl, r4 ldr r6, [r7] adds r6, r6, r2 add r6, r8 ldrb r0, [r6] mov sb, r0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, sl mov r0, sb movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r5] mov r1, r8 lsls r0, r1, #1 add r0, r8 lsls r0, r0, #3 ldr r2, _0801CB0C @ =0x06010CA0 adds r0, r0, r2 str r0, [r5, #4] ldr r0, _0801CB10 @ =0x80000180 str r0, [r5, #8] ldr r0, [r5, #8] ldr r3, _0801CB14 @ =0x086BB6A4 mov r8, r3 ldrb r6, [r6] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x13 ldr r1, [r4] adds r1, r1, r0 str r1, [r5] ldr r0, _0801CB18 @ =0x050003A0 str r0, [r5, #4] ldr r1, _0801CB1C @ =0x80000010 str r1, [r5, #8] ldr r0, [r5, #8] mov r4, r8 ldr r0, [r4] movs r2, #0xf0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r5] ldr r0, _0801CB20 @ =0x050003E0 str r0, [r5, #4] str r1, [r5, #8] ldr r0, [r5, #8] mov sl, r7 b _0801D0B8 .align 2, 0 _0801CAFC: .4byte 0x020314E0 _0801CB00: .4byte 0x00000749 _0801CB04: .4byte 0x040000D4 _0801CB08: .4byte 0x086BB738 _0801CB0C: .4byte 0x06010CA0 _0801CB10: .4byte 0x80000180 _0801CB14: .4byte 0x086BB6A4 _0801CB18: .4byte 0x050003A0 _0801CB1C: .4byte 0x80000010 _0801CB20: .4byte 0x050003E0 _0801CB24: ldr r0, _0801CB68 @ =0x020314E0 ldr r4, [r0] movs r3, #0x97 lsls r3, r3, #2 adds r1, r4, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 ble _0801CBEC ldr r0, _0801CB6C @ =0x0200B134 ldr r5, _0801CB70 @ =0x0000059A adds r1, r4, r5 ldrh r3, [r1] adds r0, r3, r0 ldrb r0, [r0] cmp r0, #0 bne _0801CB80 ldr r0, [sp, #0x2c] lsls r2, r0, #0x10 asrs r2, r2, #0x10 ldr r3, _0801CB74 @ =0x00000749 adds r0, r4, r3 adds r0, r0, r2 movs r1, #0xcd strb r1, [r0] ldr r5, _0801CB78 @ =0x040000D4 ldr r1, _0801CB7C @ =0x086BB6A4 mov r8, r1 mov r4, sl ldr r0, [r4] b _0801CC0C .align 2, 0 _0801CB68: .4byte 0x020314E0 _0801CB6C: .4byte 0x0200B134 _0801CB70: .4byte 0x0000059A _0801CB74: .4byte 0x00000749 _0801CB78: .4byte 0x040000D4 _0801CB7C: .4byte 0x086BB6A4 _0801CB80: cmp r0, #3 bhi _0801CBC0 ldr r5, [sp, #0x2c] lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r2, _0801CBAC @ =0x00000749 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] ldr r1, _0801CBB0 @ =0x040000D4 ldr r0, _0801CBB4 @ =0x086BB6A4 ldr r0, [r0] movs r3, #0xf0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0801CBB8 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0801CBBC @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _0801CC3E .align 2, 0 _0801CBAC: .4byte 0x00000749 _0801CBB0: .4byte 0x040000D4 _0801CBB4: .4byte 0x086BB6A4 _0801CBB8: .4byte 0x050003A0 _0801CBBC: .4byte 0x80000010 _0801CBC0: ldr r5, [sp, #0x2c] lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldr r2, _0801CBE0 @ =0x00000749 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] ldr r5, _0801CBE4 @ =0x040000D4 ldr r0, _0801CBE8 @ =0x086BB6A4 mov r8, r0 mov r3, sl ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r1 b _0801CC10 .align 2, 0 _0801CBE0: .4byte 0x00000749 _0801CBE4: .4byte 0x040000D4 _0801CBE8: .4byte 0x086BB6A4 _0801CBEC: ldr r5, [sp, #0x2c] lsls r2, r5, #0x10 asrs r2, r2, #0x10 ldr r3, _0801CC98 @ =0x00000749 adds r0, r4, r3 adds r0, r0, r2 movs r5, #0xb3 lsls r5, r5, #3 adds r1, r4, r5 ldrh r1, [r1] strb r1, [r0] ldr r5, _0801CC9C @ =0x040000D4 ldr r0, _0801CCA0 @ =0x086BB6A4 mov r8, r0 mov r1, sl ldr r0, [r1] _0801CC0C: adds r0, r0, r3 adds r0, r0, r2 _0801CC10: ldrb r6, [r0] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x13 ldr r1, [r4] adds r1, r1, r0 str r1, [r5] ldr r0, _0801CCA4 @ =0x050003A0 str r0, [r5, #4] ldr r0, _0801CCA8 @ =0x80000010 str r0, [r5, #8] ldr r0, [r5, #8] _0801CC3E: ldr r2, _0801CC9C @ =0x040000D4 mov r8, r2 ldr r3, _0801CCAC @ =0x086BB738 mov sb, r3 mov r4, sl ldr r0, [r4] ldr r1, [sp, #0x2c] lsls r5, r1, #0x10 asrs r5, r5, #0x10 ldr r2, _0801CC98 @ =0x00000749 adds r0, r0, r2 adds r0, r0, r5 ldrb r6, [r0] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, sb adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 mov r3, r8 str r0, [r3] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #3 ldr r4, _0801CCB0 @ =0x06010CA0 adds r0, r0, r4 str r0, [r3, #4] ldr r0, _0801CCB4 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] b _0801D0B8 .align 2, 0 _0801CC98: .4byte 0x00000749 _0801CC9C: .4byte 0x040000D4 _0801CCA0: .4byte 0x086BB6A4 _0801CCA4: .4byte 0x050003A0 _0801CCA8: .4byte 0x80000010 _0801CCAC: .4byte 0x086BB738 _0801CCB0: .4byte 0x06010CA0 _0801CCB4: .4byte 0x80000180 _0801CCB8: ldr r0, _0801CD28 @ =0x020314E0 ldr r2, [r0] movs r1, #0x17 ldrsb r1, [r2, r1] mov sl, r0 cmp r1, #2 bne _0801CD44 ldr r0, [sp, #0x2c] lsls r5, r0, #0x10 asrs r5, r5, #0x10 ldr r1, _0801CD2C @ =0x00000749 mov r8, r1 adds r4, r2, r1 adds r4, r4, r5 ldr r6, _0801CD30 @ =0x086AD000 movs r3, #0xe1 lsls r3, r3, #3 adds r0, r2, r3 ldr r0, [r0] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r1, r6, #0 adds r1, #0x78 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r4] ldr r2, _0801CD34 @ =0x040000D4 mov r4, sl ldr r0, [r4] add r0, r8 adds r0, r0, r5 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CD38 @ =0x083A8EEC adds r0, r0, r1 str r0, [r2] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #8 ldr r5, _0801CD3C @ =0x06010CA0 adds r0, r0, r5 str r0, [r2, #4] ldr r0, _0801CD40 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, #0x7c ldrh r5, [r6] b _0801CF30 .align 2, 0 _0801CD28: .4byte 0x020314E0 _0801CD2C: .4byte 0x00000749 _0801CD30: .4byte 0x086AD000 _0801CD34: .4byte 0x040000D4 _0801CD38: .4byte 0x083A8EEC _0801CD3C: .4byte 0x06010CA0 _0801CD40: .4byte 0x80000180 _0801CD44: ldr r0, [sp, #0x2c] lsls r5, r0, #0x10 asrs r5, r5, #0x10 ldr r1, _0801CDA8 @ =0x00000749 mov r8, r1 adds r4, r2, r1 adds r4, r4, r5 ldr r6, _0801CDAC @ =0x086AD000 movs r3, #0xe1 lsls r3, r3, #3 adds r0, r2, r3 ldr r0, [r0] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r1, r6, #0 adds r1, #0x80 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r4] ldr r2, _0801CDB0 @ =0x040000D4 mov r4, sl ldr r0, [r4] add r0, r8 adds r0, r0, r5 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CDB4 @ =0x083A8EEC adds r0, r0, r1 str r0, [r2] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #8 ldr r5, _0801CDB8 @ =0x06010CA0 adds r0, r0, r5 str r0, [r2, #4] ldr r0, _0801CDBC @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, #0x84 ldrh r0, [r6] lsls r0, r0, #0x14 lsrs r5, r0, #0x10 b _0801CF30 .align 2, 0 _0801CDA8: .4byte 0x00000749 _0801CDAC: .4byte 0x086AD000 _0801CDB0: .4byte 0x040000D4 _0801CDB4: .4byte 0x083A8EEC _0801CDB8: .4byte 0x06010CA0 _0801CDBC: .4byte 0x80000180 _0801CDC0: ldr r4, _0801CEF8 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801CEFC @ =0x000001A7 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801CF00 @ =0x086AD000 adds r7, r0, r1 ldr r0, [sp, #0x2c] lsls r3, r0, #0x10 asrs r3, r3, #0x10 ldr r1, _0801CF04 @ =0x00000749 adds r2, r2, r1 adds r2, r2, r3 ldrh r0, [r7] strb r0, [r2] ldrh r0, [r7, #4] lsls r0, r0, #0x14 lsrs r5, r0, #0x10 ldr r2, _0801CF08 @ =0x040000D4 ldr r0, [r4] mov r8, r0 add r1, r8 adds r1, r1, r3 ldrb r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801CF0C @ =0x083A8EEC adds r0, r0, r1 str r0, [r2] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #8 ldr r1, _0801CF10 @ =0x06010CA0 adds r0, r0, r1 str r0, [r2, #4] ldr r0, _0801CF14 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, r8 movs r3, #0xc9 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] mov sl, r4 ldrh r7, [r7, #6] cmp r0, r7 blo _0801CE5A ldr r1, _0801CF18 @ =0x086AD2DE movs r4, #0xd3 lsls r4, r4, #1 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] cmp r1, #3 bne _0801CE4C adds r3, #0x50 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801CE5A _0801CE4C: cmp r1, #4 bne _0801CF30 ldr r0, _0801CF1C @ =0x000001AF add r0, r8 ldrb r0, [r0] cmp r0, #0 beq _0801CF30 _0801CE5A: ldr r2, _0801CF08 @ =0x040000D4 lsls r0, r5, #1 ldr r1, _0801CF20 @ =0x081C02E4 adds r0, r0, r1 str r0, [r2] mov r4, sp str r4, [r2, #4] ldr r0, _0801CF24 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r5, _0801CF28 @ =0x086AD798 mov sb, r5 add r7, sp, #0x20 _0801CE76: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #1 mov r1, sp adds r6, r1, r0 ldrh r1, [r6] movs r0, #0x1f ands r0, r1 lsls r0, r0, #1 movs r1, #3 bl __divsi3 mov r8, r0 mov r2, r8 strh r2, [r7] ldrh r0, [r6] movs r3, #0xf8 lsls r3, r3, #2 adds r1, r3, #0 ands r0, r1 lsrs r0, r0, #4 movs r1, #3 bl __divsi3 adds r4, r0, #0 strh r4, [r7, #2] ldrh r0, [r6] movs r2, #0xf8 lsls r2, r2, #7 adds r1, r2, #0 ands r0, r1 lsrs r0, r0, #9 movs r1, #3 bl __divsi3 strh r0, [r7, #4] lsls r4, r4, #5 mov r3, r8 orrs r4, r3 lsls r0, r0, #0xa orrs r4, r0 strh r4, [r6] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #0xf ble _0801CE76 ldr r1, _0801CF08 @ =0x040000D4 mov r4, sp str r4, [r1] ldr r5, [sp, #0x2c] lsls r0, r5, #0x10 asrs r0, r0, #0xf add r0, sb ldrh r0, [r0] lsls r0, r0, #5 ldr r2, _0801CF2C @ =0x05000200 adds r0, r0, r2 str r0, [r1, #4] ldr r0, _0801CF24 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _0801D0B8 .align 2, 0 _0801CEF8: .4byte 0x020314E0 _0801CEFC: .4byte 0x000001A7 _0801CF00: .4byte 0x086AD000 _0801CF04: .4byte 0x00000749 _0801CF08: .4byte 0x040000D4 _0801CF0C: .4byte 0x083A8EEC _0801CF10: .4byte 0x06010CA0 _0801CF14: .4byte 0x80000180 _0801CF18: .4byte 0x086AD2DE _0801CF1C: .4byte 0x000001AF _0801CF20: .4byte 0x081C02E4 _0801CF24: .4byte 0x80000010 _0801CF28: .4byte 0x086AD798 _0801CF2C: .4byte 0x05000200 _0801CF30: ldr r2, _0801CF58 @ =0x040000D4 lsls r0, r5, #1 ldr r1, _0801CF5C @ =0x081C02E4 adds r0, r0, r1 str r0, [r2] ldr r1, _0801CF60 @ =0x086AD798 ldr r3, [sp, #0x2c] lsls r0, r3, #0x10 asrs r0, r0, #0xf adds r0, r0, r1 ldrh r0, [r0] lsls r0, r0, #5 ldr r4, _0801CF64 @ =0x05000200 adds r0, r0, r4 str r0, [r2, #4] ldr r0, _0801CF68 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] b _0801D0B8 .align 2, 0 _0801CF58: .4byte 0x040000D4 _0801CF5C: .4byte 0x081C02E4 _0801CF60: .4byte 0x086AD798 _0801CF64: .4byte 0x05000200 _0801CF68: .4byte 0x80000010 _0801CF6C: ldr r5, _0801CFFC @ =0x020314E0 mov r8, r5 ldr r2, [r5] ldr r0, [sp, #0x2c] lsls r4, r0, #0x10 asrs r4, r4, #0x10 ldr r1, _0801D000 @ =0x000006EC adds r0, r2, r1 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801D004 @ =0x086AD000 adds r7, r0, r1 ldr r6, _0801D008 @ =0x00000749 adds r5, r2, r6 adds r5, r5, r4 movs r3, #0xe1 lsls r3, r3, #3 adds r2, r2, r3 ldr r0, [r2] movs r1, #0x30 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r7, r0 ldrh r0, [r0] strb r0, [r5] ldrh r2, [r7, #4] lsls r2, r2, #0x14 ldr r3, _0801D00C @ =0x040000D4 mov r5, r8 ldr r0, [r5] adds r0, r0, r6 adds r0, r0, r4 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801D010 @ =0x083A8EEC adds r0, r0, r1 str r0, [r3] lsls r1, r4, #1 adds r4, r1, r4 lsls r4, r4, #8 ldr r0, _0801D014 @ =0x06010CA0 adds r4, r4, r0 str r4, [r3, #4] ldr r0, _0801D018 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] lsrs r2, r2, #0xf ldr r0, _0801D01C @ =0x081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801D020 @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801D024 @ =0x05000200 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0801D028 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, r8 b _0801D0B8 .align 2, 0 _0801CFFC: .4byte 0x020314E0 _0801D000: .4byte 0x000006EC _0801D004: .4byte 0x086AD000 _0801D008: .4byte 0x00000749 _0801D00C: .4byte 0x040000D4 _0801D010: .4byte 0x083A8EEC _0801D014: .4byte 0x06010CA0 _0801D018: .4byte 0x80000180 _0801D01C: .4byte 0x081C02E4 _0801D020: .4byte 0x086AD798 _0801D024: .4byte 0x05000200 _0801D028: .4byte 0x80000010 _0801D02C: ldr r2, _0801D0EC @ =0x020314E0 mov sb, r2 ldr r2, [r2] ldr r3, _0801D0F0 @ =0x000006DC adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #3 ldr r1, _0801D0F4 @ =0x086AD000 adds r7, r0, r1 ldr r5, [sp, #0x2c] lsls r4, r5, #0x10 asrs r4, r4, #0x10 ldr r0, _0801D0F8 @ =0x00000749 mov r8, r0 adds r5, r2, r0 adds r5, r5, r4 ldr r6, _0801D0FC @ =0x086AD79C ldr r1, _0801D100 @ =0x000006DE adds r2, r2, r1 ldrh r0, [r2] movs r1, #0xc bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r6 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r7, r0 ldrh r0, [r0] strb r0, [r5] ldrh r2, [r7, #4] lsls r2, r2, #0x14 ldr r3, _0801D104 @ =0x040000D4 mov r5, sb ldr r0, [r5] add r0, r8 adds r0, r0, r4 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801D108 @ =0x083A8EEC adds r0, r0, r1 str r0, [r3] lsls r1, r4, #1 adds r4, r1, r4 lsls r4, r4, #8 ldr r0, _0801D10C @ =0x06010CA0 adds r4, r4, r0 str r4, [r3, #4] ldr r0, _0801D110 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] lsrs r2, r2, #0xf ldr r0, _0801D114 @ =0x081C02E4 adds r2, r2, r0 str r2, [r3] ldr r0, _0801D118 @ =0x086AD798 adds r1, r1, r0 ldrh r0, [r1] lsls r0, r0, #5 ldr r1, _0801D11C @ =0x05000200 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0801D120 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, sb _0801D0B8: mov r2, sl ldr r1, [r2] ldr r3, [sp, #0x2c] lsls r0, r3, #0x10 asrs r0, r0, #0x10 ldr r4, _0801D124 @ =0x00000747 adds r1, r1, r4 adds r1, r1, r0 add r5, sp, #0x28 ldrb r5, [r5] strb r5, [r1] ldr r1, [r2] movs r0, #0xe1 lsls r0, r0, #3 adds r1, r1, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] add sp, #0x30 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801D0EC: .4byte 0x020314E0 _0801D0F0: .4byte 0x000006DC _0801D0F4: .4byte 0x086AD000 _0801D0F8: .4byte 0x00000749 _0801D0FC: .4byte 0x086AD79C _0801D100: .4byte 0x000006DE _0801D104: .4byte 0x040000D4 _0801D108: .4byte 0x083A8EEC _0801D10C: .4byte 0x06010CA0 _0801D110: .4byte 0x80000180 _0801D114: .4byte 0x081C02E4 _0801D118: .4byte 0x086AD798 _0801D11C: .4byte 0x05000200 _0801D120: .4byte 0x80000010 _0801D124: .4byte 0x00000747 thumb_func_start sub_1D128 sub_1D128: @ 0x0801D128 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r1, _0801D154 @ =0x020314E0 ldr r3, [r1] ldr r2, _0801D158 @ =0x000006C4 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #3 bne _0801D15C movs r3, #0 mov r8, r3 movs r0, #0xb4 mov sl, r0 movs r2, #0xb4 b _0801D1C4 .align 2, 0 _0801D154: .4byte 0x020314E0 _0801D158: .4byte 0x000006C4 _0801D15C: cmp r0, #2 bne _0801D190 ldr r0, _0801D174 @ =0x0200B0C0 movs r2, #0x2a ldrsh r1, [r0, r2] cmp r1, #0x13 bgt _0801D178 movs r3, #0xb4 mov sl, r3 movs r2, #0xb4 b _0801D18A .align 2, 0 _0801D174: .4byte 0x0200B0C0 _0801D178: movs r1, #0xdc lsls r1, r1, #3 adds r0, r3, r1 ldrh r0, [r0] adds r0, #0x58 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r2, #0x58 _0801D18A: movs r3, #0x30 mov r8, r3 b _0801D1C4 _0801D190: adds r0, r3, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 movs r1, #0xdc lsls r1, r1, #3 adds r0, r3, r1 movs r1, #0x96 lsls r1, r1, #1 adds r2, r1, #0 ldrh r0, [r0] adds r0, r2, r0 adds r1, r3, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 subs r2, r2, r1 lsls r2, r2, #0x10 lsrs r2, r2, #0x10 _0801D1C4: ldr r3, _0801D4A4 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r6, [r0, #0x58] mov r0, r8 strh r0, [r6, #2] mov r1, sl strh r1, [r6, #4] mov r3, sb ldr r0, [r3] ldr r3, _0801D4A8 @ =0x000006E4 adds r1, r0, r3 mov r3, r8 strh r3, [r1] ldrh r1, [r6, #4] ldr r3, _0801D4AC @ =0x000006E6 adds r0, r0, r3 strh r1, [r0] movs r1, #4 ldrsh r0, [r6, r1] cmp r0, #0xc7 ble _0801D1F2 movs r0, #0xc8 strh r0, [r6, #4] _0801D1F2: movs r0, #0 mov r3, r8 lsls r3, r3, #0x10 str r3, [sp] lsls r2, r2, #0x10 str r2, [sp, #4] ldr r7, _0801D4B0 @ =0x03005000 mov ip, sb _0801D202: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 mov r1, ip ldr r0, [r1] ldr r2, _0801D4B4 @ =0x000006D3 adds r0, r0, r2 adds r0, r0, r4 ldrb r1, [r0] lsls r1, r1, #4 ldrb r2, [r3, #5] movs r0, #0xf ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 mov r1, ip ldr r0, [r1] ldr r2, _0801D4B8 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] movs r0, #3 ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] subs r0, #0x10 ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0801D4C0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D202 mov r3, sb ldr r0, [r3] ldr r1, _0801D4C4 @ =0x000006C4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0801D298 b _0801D3FA _0801D298: ldr r2, _0801D4A4 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r6, [r0, #0x5c] mov r3, r8 strh r3, [r6, #2] mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 subs r0, #0x20 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb3 ble _0801D2B8 movs r0, #0xb4 strh r0, [r6, #4] _0801D2B8: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 ldr r2, _0801D4C0 @ =0xFFFFFE00 mov ip, r2 _0801D2C0: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xc0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D2C0 ldr r3, _0801D4A4 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r6, [r0, #0x50] mov r0, r8 strh r0, [r6, #2] mov r1, sb ldr r0, [r1] adds r0, #0x5a ldrh r1, [r0] ldr r2, _0801D4C8 @ =0x0000010B adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0801D33C movs r0, #0xc8 strh r0, [r6, #4] _0801D33C: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 ldr r3, _0801D4C0 @ =0xFFFFFE00 mov ip, r3 _0801D344: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D344 ldr r3, _0801D4A4 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r6, [r0, #0x54] mov r0, r8 strh r0, [r6, #2] mov r1, sb ldr r0, [r1] adds r0, #0x5a ldrh r1, [r0] ldr r2, _0801D4CC @ =0x0000014D adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0801D3AE movs r0, #0xc8 strh r0, [r6, #4] _0801D3AE: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 ldr r3, _0801D4C0 @ =0xFFFFFE00 mov r8, r3 _0801D3B6: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D3B6 _0801D3FA: ldr r3, _0801D4A4 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r6, [r0, #0x4c] ldr r1, [sp] asrs r0, r1, #0x10 subs r0, #8 strh r0, [r6, #2] ldr r2, [sp, #4] asrs r0, r2, #0x10 subs r0, #8 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0801D41C movs r0, #0xc8 strh r0, [r6, #4] _0801D41C: movs r0, #0 ldr r7, _0801D4B0 @ =0x03005000 movs r3, #3 mov ip, r3 movs r1, #0xd rsbs r1, r1, #0 mov sl, r1 ldr r2, _0801D4C0 @ =0xFFFFFE00 mov r8, r2 _0801D42E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 mov r1, sb ldr r0, [r1] ldr r2, _0801D4B8 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] mov r0, ip ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801D4BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0801D42E add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801D4A4: .4byte 0x0200B0C0 _0801D4A8: .4byte 0x000006E4 _0801D4AC: .4byte 0x000006E6 _0801D4B0: .4byte 0x03005000 _0801D4B4: .4byte 0x000006D3 _0801D4B8: .4byte 0x000006DB _0801D4BC: .4byte 0x000001FF _0801D4C0: .4byte 0xFFFFFE00 _0801D4C4: .4byte 0x000006C4 _0801D4C8: .4byte 0x0000010B _0801D4CC: .4byte 0x0000014D thumb_func_start sub_1D4D0 sub_1D4D0: @ 0x0801D4D0 push {r4, r5, r6, r7, lr} ldr r0, _0801D5C8 @ =0x020314E0 ldr r1, [r0] ldr r2, _0801D5CC @ =0x000006C4 adds r1, r1, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r7, r0, #0 cmp r1, #1 bne _0801D5C2 ldr r0, _0801D5D0 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r4, [r1, #0x58] movs r1, #0xb4 strh r1, [r4, #4] movs r1, #0 adds r6, r0, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D4F6: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D4F6 ldr r0, [r6, #0x44] ldr r4, [r0, #0x5c] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb3 ble _0801D53A movs r0, #0xb4 strh r0, [r4, #4] _0801D53A: movs r1, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D53E: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D53E ldr r0, [r6, #0x44] ldr r4, [r0, #0x50] movs r0, #0xb4 strh r0, [r4, #4] movs r1, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D56E: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D56E ldr r0, [r6, #0x44] ldr r4, [r0, #0x54] movs r0, #0xb4 strh r0, [r4, #4] movs r1, #0 ldr r5, _0801D5D4 @ =0x03005000 _0801D59E: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r3, r4, r0 ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r4, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _0801D59E _0801D5C2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801D5C8: .4byte 0x020314E0 _0801D5CC: .4byte 0x000006C4 _0801D5D0: .4byte 0x0200B0C0 _0801D5D4: .4byte 0x03005000 thumb_func_start sub_1D5D8 sub_1D5D8: @ 0x0801D5D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0801D60C @ =0x0200E6C0 mov sb, r0 movs r1, #0 mov r8, r1 movs r5, #0 ldr r1, _0801D610 @ =0x020314E0 ldr r0, [r1] ldr r2, _0801D614 @ =0x000002FB adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bls _0801D600 b _0801D930 _0801D600: lsls r0, r0, #2 ldr r1, _0801D618 @ =_0801D61C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801D60C: .4byte 0x0200E6C0 _0801D610: .4byte 0x020314E0 _0801D614: .4byte 0x000002FB _0801D618: .4byte _0801D61C _0801D61C: @ jump table .4byte _0801D63C @ case 0 .4byte _0801D65C @ case 1 .4byte _0801D6C4 @ case 2 .4byte _0801D760 @ case 3 .4byte _0801D7C8 @ case 4 .4byte _0801D860 @ case 5 .4byte _0801D860 @ case 6 .4byte _0801D8E0 @ case 7 _0801D63C: ldr r0, _0801D658 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x24 bl __umodsi3 movs r1, #0x12 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 mov r5, r8 b _0801D930 .align 2, 0 _0801D658: .4byte 0x0200B0C0 _0801D65C: ldr r4, _0801D6AC @ =0x020314E0 ldr r1, [r4] ldr r3, _0801D6B0 @ =0x000002FE adds r2, r1, r3 movs r3, #0 movs r0, #0 strh r0, [r2] ldr r5, _0801D6B4 @ =0x000002FD adds r1, r1, r5 strb r3, [r1] ldr r0, [r4] ldr r7, _0801D6B8 @ =0x000002FB adds r0, r0, r7 movs r1, #2 strb r1, [r0] ldr r2, _0801D6BC @ =0x086AD7C0 ldr r0, [r4] adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r5, [r1] adds r2, #4 adds r0, r0, r2 ldrh r0, [r0] mov r8, r0 movs r0, #0xcf bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r4] ldr r0, _0801D6C0 @ =0x0000C350 str r0, [r1, #0x3c] b _0801D930 .align 2, 0 _0801D6AC: .4byte 0x020314E0 _0801D6B0: .4byte 0x000002FE _0801D6B4: .4byte 0x000002FD _0801D6B8: .4byte 0x000002FB _0801D6BC: .4byte 0x086AD7C0 _0801D6C0: .4byte 0x0000C350 _0801D6C4: ldr r3, _0801D6F0 @ =0x086AD7C0 ldr r0, _0801D6F4 @ =0x020314E0 ldr r2, [r0] ldr r6, _0801D6F8 @ =0x000002FD adds r4, r2, r6 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r5, _0801D6FC @ =0x000002FE adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0801D700 adds r0, r1, #1 strh r0, [r2] b _0801D736 .align 2, 0 _0801D6F0: .4byte 0x086AD7C0 _0801D6F4: .4byte 0x020314E0 _0801D6F8: .4byte 0x000002FD _0801D6FC: .4byte 0x000002FE _0801D700: movs r5, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r7, _0801D754 @ =0x020314E0 ldr r1, [r7] ldr r2, _0801D758 @ =0x000002FD adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801D736 ldr r7, _0801D75C @ =0x000002FB adds r0, r1, r7 strb r5, [r0] ldr r1, _0801D754 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r6 strb r5, [r0] ldr r0, [r1] subs r2, #4 adds r0, r0, r2 movs r1, #1 strb r1, [r0] _0801D736: ldr r0, _0801D754 @ =0x020314E0 ldr r0, [r0] ldr r5, _0801D758 @ =0x000002FD adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r5, [r1] adds r1, r3, #4 adds r0, r0, r1 b _0801D92C .align 2, 0 _0801D754: .4byte 0x020314E0 _0801D758: .4byte 0x000002FD _0801D75C: .4byte 0x000002FB _0801D760: ldr r4, _0801D7B0 @ =0x020314E0 ldr r1, [r4] ldr r7, _0801D7B4 @ =0x000002FE adds r2, r1, r7 movs r0, #0 strh r0, [r2] ldr r3, _0801D7B8 @ =0x000002FD adds r1, r1, r3 movs r0, #7 strb r0, [r1] ldr r0, [r4] ldr r1, _0801D7BC @ =0x000002FB adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r2, _0801D7C0 @ =0x086AD7C0 ldr r0, [r4] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r5, [r1] adds r2, #4 adds r0, r0, r2 ldrh r0, [r0] mov r8, r0 movs r0, #0xcf bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r4] ldr r0, _0801D7C4 @ =0x000186A0 str r0, [r1, #0x3c] b _0801D930 .align 2, 0 _0801D7B0: .4byte 0x020314E0 _0801D7B4: .4byte 0x000002FE _0801D7B8: .4byte 0x000002FD _0801D7BC: .4byte 0x000002FB _0801D7C0: .4byte 0x086AD7C0 _0801D7C4: .4byte 0x000186A0 _0801D7C8: ldr r2, _0801D7F4 @ =0x086AD7C0 ldr r5, _0801D7F8 @ =0x020314E0 ldr r3, [r5] ldr r7, _0801D7FC @ =0x000002FD adds r4, r3, r7 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] ldr r2, _0801D800 @ =0x000002FE adds r3, r3, r2 ldrh r1, [r3] cmp r0, r1 ble _0801D804 adds r0, r1, #1 strh r0, [r3] b _0801D82C .align 2, 0 _0801D7F4: .4byte 0x086AD7C0 _0801D7F8: .4byte 0x020314E0 _0801D7FC: .4byte 0x000002FD _0801D800: .4byte 0x000002FE _0801D804: movs r0, #0 strh r0, [r3] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r1, [r5] ldr r3, _0801D84C @ =0x000002FD adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bne _0801D82C ldr r5, _0801D850 @ =0x000002FB adds r1, r1, r5 movs r0, #5 strb r0, [r1] movs r0, #0xd1 bl m4aSongNumStart _0801D82C: ldr r4, _0801D854 @ =0x020314E0 ldr r0, [r4] ldr r7, _0801D858 @ =0x000002FE adds r0, r0, r7 ldrh r0, [r0] cmp r0, #6 bne _0801D840 movs r0, #0xd0 bl m4aSongNumStart _0801D840: ldr r2, _0801D85C @ =0x086AD7C0 ldr r0, [r4] ldr r1, _0801D84C @ =0x000002FD adds r0, r0, r1 b _0801D91A .align 2, 0 _0801D84C: .4byte 0x000002FD _0801D850: .4byte 0x000002FB _0801D854: .4byte 0x020314E0 _0801D858: .4byte 0x000002FE _0801D85C: .4byte 0x086AD7C0 _0801D860: ldr r3, _0801D88C @ =0x086AD7C0 ldr r5, _0801D890 @ =0x020314E0 ldr r2, [r5] ldr r7, _0801D894 @ =0x000002FD adds r4, r2, r7 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r5, _0801D898 @ =0x000002FE adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0801D89C adds r0, r1, #1 strh r0, [r2] b _0801D8BA .align 2, 0 _0801D88C: .4byte 0x086AD7C0 _0801D890: .4byte 0x020314E0 _0801D894: .4byte 0x000002FD _0801D898: .4byte 0x000002FE _0801D89C: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r7, _0801D8D8 @ =0x020314E0 ldr r0, [r7] ldr r2, _0801D8DC @ =0x000002FD adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x18 bne _0801D8BA movs r0, #0x12 strb r0, [r1] _0801D8BA: ldr r0, _0801D8D8 @ =0x020314E0 ldr r0, [r0] ldr r5, _0801D8DC @ =0x000002FD adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r5, [r1] adds r1, r3, #4 adds r0, r0, r1 b _0801D92C .align 2, 0 _0801D8D8: .4byte 0x020314E0 _0801D8DC: .4byte 0x000002FD _0801D8E0: ldr r4, _0801DA3C @ =0x020314E0 ldr r0, [r4] ldr r7, _0801DA40 @ =0x000002FA adds r0, r0, r7 movs r1, #0 strb r1, [r0] ldr r0, [r4] ldr r2, _0801DA44 @ =0x000002F9 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] ldr r3, _0801DA48 @ =0x000002FE adds r2, r0, r3 movs r5, #0 strh r1, [r2] subs r3, #1 adds r0, r0, r3 strb r5, [r0] ldr r0, [r4] adds r7, #1 adds r0, r0, r7 strb r5, [r0] ldr r0, [r4] adds r0, r0, r3 movs r1, #0x18 strb r1, [r0] ldr r2, _0801DA4C @ =0x086AD7C0 ldr r0, [r4] adds r0, r0, r3 _0801D91A: movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r5, [r1] adds r2, #4 adds r0, r0, r2 _0801D92C: ldrh r0, [r0] mov r8, r0 _0801D930: mov r1, sb ldrh r0, [r1] cmp r0, #0 beq _0801DA20 ldr r2, _0801DA50 @ =0x086AD856 ldr r3, _0801DA3C @ =0x020314E0 ldr r4, [r3] ldr r7, _0801DA44 @ =0x000002F9 adds r3, r4, r7 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 mov r1, sb strh r0, [r1, #2] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r2, #2 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0x5a ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 mov r2, sb strh r0, [r2, #4] ldr r2, _0801DA54 @ =0x040000D4 movs r3, #0xbf lsls r3, r3, #2 adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0801DA58 @ =0x0845710C adds r0, r0, r1 str r0, [r2] ldr r0, _0801DA5C @ =0x06014380 str r0, [r2, #4] ldr r0, _0801DA60 @ =0x80000130 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 lsls r1, r5, #0x10 ldr r5, _0801DA64 @ =0x03005000 mov ip, r5 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r6, r0, #2 ldr r7, _0801DA68 @ =0xFFFFFE00 mov sl, r7 _0801D9A6: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 ldr r5, _0801DA6C @ =0x086B2E64 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 adds r1, r1, r5 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r7, [r2, #2] lsls r1, r7, #0x17 lsrs r1, r1, #0x17 mov r5, sb movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _0801DA70 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, sl ldrh r7, [r2, #2] ands r0, r7 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r1] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0801D9A6 _0801DA20: ldr r7, _0801DA3C @ =0x020314E0 ldr r0, [r7] movs r1, #0xbf lsls r1, r1, #2 adds r0, r0, r1 mov r2, r8 strb r2, [r0] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801DA3C: .4byte 0x020314E0 _0801DA40: .4byte 0x000002FA _0801DA44: .4byte 0x000002F9 _0801DA48: .4byte 0x000002FE _0801DA4C: .4byte 0x086AD7C0 _0801DA50: .4byte 0x086AD856 _0801DA54: .4byte 0x040000D4 _0801DA58: .4byte 0x0845710C _0801DA5C: .4byte 0x06014380 _0801DA60: .4byte 0x80000130 _0801DA64: .4byte 0x03005000 _0801DA68: .4byte 0xFFFFFE00 _0801DA6C: .4byte 0x086B2E64 _0801DA70: .4byte 0x000001FF thumb_func_start sub_1DA74 sub_1DA74: @ 0x0801DA74 ldr r0, _0801DAB0 @ =0x020314E0 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _0801DAD4 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _0801DAC6 ldr r1, _0801DAB4 @ =0x000001A5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801DABC ldr r3, _0801DAB8 @ =0x000001AB adds r0, r2, r3 ldrb r0, [r0] movs r1, #0xf ands r1, r0 movs r3, #0xbc lsls r3, r3, #2 adds r0, r2, r3 strb r1, [r0] b _0801DAD4 .align 2, 0 _0801DAB0: .4byte 0x020314E0 _0801DAB4: .4byte 0x000001A5 _0801DAB8: .4byte 0x000001AB _0801DABC: movs r0, #0xbc lsls r0, r0, #2 adds r1, r2, r0 movs r0, #3 b _0801DAD2 _0801DAC6: cmp r0, #6 beq _0801DAD4 movs r3, #0xbc lsls r3, r3, #2 adds r1, r2, r3 movs r0, #0 _0801DAD2: strb r0, [r1] _0801DAD4: bx lr thumb_func_start sub_1DAD8 sub_1DAD8: @ 0x0801DAD8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _0801DB64 @ =0x0200E270 mov r8, r0 ldr r0, _0801DB68 @ =0x020314E0 ldr r4, [r0] movs r2, #0xbc lsls r2, r2, #2 adds r1, r4, r2 ldrb r1, [r1] movs r5, #0xf ldr r7, _0801DB6C @ =0x000002F1 adds r3, r4, r7 ldrb r2, [r3] ands r5, r1 adds r1, r2, #0 adds r7, r0, #0 cmp r5, r1 beq _0801DBAC ldr r6, _0801DB70 @ =0x000002F2 adds r0, r4, r6 ldrh r0, [r0] cmp r0, #0 beq _0801DB78 cmp r0, #5 bne _0801DB58 ldr r3, _0801DB74 @ =0xFFFFCE50 add r3, r8 ldrb r1, [r3, #0xf] movs r0, #1 movs r2, #0 orrs r0, r1 strb r0, [r3, #0xf] adds r0, r4, #0 adds r0, #0xea movs r3, #0 strh r2, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #3 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r2, [r0] subs r0, #2 strh r2, [r0] adds r0, #8 strh r2, [r0] adds r0, #4 strb r3, [r0] ldr r0, [r7] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r3, [r0] movs r0, #0xbd bl m4aSongNumStart _0801DB58: ldr r1, [r7] adds r1, r1, r6 ldrh r0, [r1] subs r0, #1 strh r0, [r1] b _0801DBAC .align 2, 0 _0801DB64: .4byte 0x0200E270 _0801DB68: .4byte 0x020314E0 _0801DB6C: .4byte 0x000002F1 _0801DB70: .4byte 0x000002F2 _0801DB74: .4byte 0xFFFFCE50 _0801DB78: cmp r1, r5 bls _0801DB80 subs r0, r2, #1 b _0801DB82 _0801DB80: adds r0, r2, #1 _0801DB82: strb r0, [r3] ldr r0, [r7] adds r0, r0, r6 movs r1, #4 strh r1, [r0] ldr r2, _0801DC58 @ =0x040000D4 ldr r0, [r7] ldr r1, _0801DC5C @ =0x000002F1 adds r0, r0, r1 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0801DC60 @ =0x084ED0CC adds r0, r0, r1 str r0, [r2] ldr r0, _0801DC64 @ =0x06013180 str r0, [r2, #4] ldr r0, _0801DC68 @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] _0801DBAC: ldr r2, [r7] ldr r7, _0801DC5C @ =0x000002F1 adds r0, r2, r7 ldrb r0, [r0] movs r3, #2 cmp r0, #2 bhi _0801DBBC movs r3, #3 _0801DBBC: adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xd0 subs r0, r0, r1 mov r1, r8 strh r0, [r1, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x50 subs r0, r0, r1 mov r2, r8 strh r0, [r2, #4] movs r0, #0 ldr r7, _0801DC6C @ =0x0200E278 mov sl, r7 ldr r6, _0801DC70 @ =0x03005000 lsls r3, r3, #2 str r3, [sp] movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 ldr r2, _0801DC74 @ =0xFFFFFE00 mov ip, r2 _0801DBEE: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 add r5, sl ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sb ands r0, r2 ldr r7, [sp] orrs r0, r7 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] mov r2, r8 movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0801DC78 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r7, r8 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0801DBEE add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801DC58: .4byte 0x040000D4 _0801DC5C: .4byte 0x000002F1 _0801DC60: .4byte 0x084ED0CC _0801DC64: .4byte 0x06013180 _0801DC68: .4byte 0x800000C0 _0801DC6C: .4byte 0x0200E278 _0801DC70: .4byte 0x03005000 _0801DC74: .4byte 0xFFFFFE00 _0801DC78: .4byte 0x000001FF thumb_func_start sub_1DC7C sub_1DC7C: @ 0x0801DC7C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r6, _0801DD7C @ =0x0200E100 ldr r2, _0801DD80 @ =0x020314E0 ldr r3, [r2] ldr r1, _0801DD84 @ =0x000002A5 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0801DD88 @ =0x086AD862 adds r4, r0, r1 ldrh r0, [r6] mov sb, r2 cmp r0, #0 bne _0801DCA4 b _0801DDCC _0801DCA4: ldrh r2, [r4] mov r8, r2 ldr r2, _0801DD8C @ =0x040000D4 adds r0, r3, #0 adds r0, #0x6f movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _0801DD90 @ =0x081379D8 adds r0, r0, r1 str r0, [r2] ldr r0, _0801DD94 @ =0x05000320 str r0, [r2, #4] ldr r0, _0801DD98 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] mov r0, r8 lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0801DD9C @ =0x084B7FEC adds r0, r0, r1 str r0, [r2] ldr r0, _0801DDA0 @ =0x06014680 str r0, [r2, #4] ldr r0, _0801DDA4 @ =0x80000230 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xc2 lsls r2, r2, #1 adds r1, r3, r2 ldr r0, _0801DDA8 @ =0x0000FF08 strh r0, [r1] movs r0, #0xc3 lsls r0, r0, #1 adds r1, r3, r0 ldr r0, _0801DDAC @ =0x0000FEC4 strh r0, [r1] ldrh r0, [r4, #4] adds r0, #0x7c adds r1, r3, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldrh r0, [r4, #6] adds r0, #0x96 adds r1, r3, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _0801DDB0 @ =0x03005000 ldr r1, _0801DDB4 @ =0xFFFFFE00 mov ip, r1 _0801DD1C: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801DDB8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0801DD1C mov r1, r8 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #4 beq _0801DD6E cmp r0, #0xa bne _0801DDC0 _0801DD6E: mov r2, sb ldr r0, [r2] ldr r1, _0801DDBC @ =0x000002A3 adds r0, r0, r1 movs r1, #0 b _0801DDCA .align 2, 0 _0801DD7C: .4byte 0x0200E100 _0801DD80: .4byte 0x020314E0 _0801DD84: .4byte 0x000002A5 _0801DD88: .4byte 0x086AD862 _0801DD8C: .4byte 0x040000D4 _0801DD90: .4byte 0x081379D8 _0801DD94: .4byte 0x05000320 _0801DD98: .4byte 0x80000010 _0801DD9C: .4byte 0x084B7FEC _0801DDA0: .4byte 0x06014680 _0801DDA4: .4byte 0x80000230 _0801DDA8: .4byte 0x0000FF08 _0801DDAC: .4byte 0x0000FEC4 _0801DDB0: .4byte 0x03005000 _0801DDB4: .4byte 0xFFFFFE00 _0801DDB8: .4byte 0x000001FF _0801DDBC: .4byte 0x000002A3 _0801DDC0: mov r2, sb ldr r0, [r2] ldr r1, _0801DDD8 @ =0x000002A3 adds r0, r0, r1 movs r1, #1 _0801DDCA: strb r1, [r0] _0801DDCC: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801DDD8: .4byte 0x000002A3 thumb_func_start sub_1DDDC sub_1DDDC: @ 0x0801DDDC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 ldr r1, _0801DE70 @ =0x020314E0 ldr r4, [r1] movs r2, #0xa9 lsls r2, r2, #2 adds r0, r4, r2 movs r3, #0 ldrsb r3, [r0, r3] mov sl, r1 cmp r3, #0 bne _0801DDFE b _0801E518 _0801DDFE: movs r0, #0x13 ldrsb r0, [r4, r0] cmp r0, #2 ble _0801DE0E ldr r3, _0801DE74 @ =0x0000016F adds r1, r4, r3 movs r0, #1 strb r0, [r1] _0801DE0E: mov r4, sl ldr r1, [r4] ldr r3, _0801DE74 @ =0x0000016F adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0801DE4E ldr r5, _0801DE78 @ =0x000002A2 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _0801DE44 movs r2, #0 movs r0, #9 strb r0, [r1] ldr r0, [r4] ldr r1, _0801DE7C @ =0x000002A5 adds r0, r0, r1 movs r1, #8 strb r1, [r0] ldr r0, [r4] ldr r4, _0801DE80 @ =0x000002A6 adds r0, r0, r4 strh r2, [r0] _0801DE44: mov r5, sl ldr r0, [r5] adds r0, r0, r3 movs r1, #0 strb r1, [r0] _0801DE4E: mov r1, sl ldr r0, [r1] ldr r2, _0801DE78 @ =0x000002A2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0801DE64 bl _0801E780 _0801DE64: lsls r0, r0, #2 ldr r1, _0801DE84 @ =_0801DE88 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801DE70: .4byte 0x020314E0 _0801DE74: .4byte 0x0000016F _0801DE78: .4byte 0x000002A2 _0801DE7C: .4byte 0x000002A5 _0801DE80: .4byte 0x000002A6 _0801DE84: .4byte _0801DE88 _0801DE88: @ jump table .4byte _0801DEB4 @ case 0 .4byte _0801DF2C @ case 1 .4byte _0801DF68 @ case 2 .4byte _0801DFC0 @ case 3 .4byte _0801E0D0 @ case 4 .4byte _0801E174 @ case 5 .4byte _0801E1B4 @ case 6 .4byte _0801E2F8 @ case 7 .4byte _0801E34C @ case 8 .4byte _0801E44C @ case 9 .4byte _0801E4CC @ case 10 _0801DEB4: ldr r1, _0801DF18 @ =0x086AD862 ldr r4, _0801DF1C @ =0x020314E0 ldr r2, [r4] ldr r5, _0801DF20 @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801DF24 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801DED8 b _0801E46E _0801DED8: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] ldr r2, _0801DF20 @ =0x000002A5 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801DEFA ldr r3, _0801DF28 @ =0x000002A2 adds r1, r1, r3 movs r0, #1 strb r0, [r1] _0801DEFA: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _0801DF0C bl _0801E780 _0801DF0C: movs r0, #0xd3 bl m4aSongNumStart bl _0801E780 .align 2, 0 _0801DF18: .4byte 0x086AD862 _0801DF1C: .4byte 0x020314E0 _0801DF20: .4byte 0x000002A5 _0801DF24: .4byte 0x000002A6 _0801DF28: .4byte 0x000002A2 _0801DF2C: ldr r6, _0801DF5C @ =0x020314E0 ldr r4, [r6] ldr r5, _0801DF60 @ =0x000002A6 adds r0, r4, r5 ldrh r0, [r0] movs r1, #0x2c bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x16 bl __udivsi3 adds r0, #4 ldr r1, _0801DF64 @ =0x000002A5 adds r4, r4, r1 strb r0, [r4] ldr r1, [r6] adds r1, r1, r5 ldrh r0, [r1] adds r0, #1 strh r0, [r1] bl _0801E780 .align 2, 0 _0801DF5C: .4byte 0x020314E0 _0801DF60: .4byte 0x000002A6 _0801DF64: .4byte 0x000002A5 _0801DF68: ldr r2, _0801DFA8 @ =0x020314E0 ldr r0, [r2] ldr r3, _0801DFAC @ =0x000002A5 adds r0, r0, r3 movs r3, #0 movs r1, #6 strb r1, [r0] ldr r1, [r2] ldr r4, _0801DFB0 @ =0x000002A6 adds r0, r1, r4 movs r4, #0 strh r3, [r0] ldr r5, _0801DFB4 @ =0x000002A2 adds r1, r1, r5 movs r0, #3 strb r0, [r1] ldr r0, [r2] ldr r1, _0801DFB8 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] strb r4, [r0, #1] ldr r1, [r2] ldr r0, _0801DFBC @ =0x00001388 str r0, [r1, #0x3c] movs r0, #0xd5 bl m4aSongNumStart movs r0, #7 bl sub_11B0 bl _0801E780 .align 2, 0 _0801DFA8: .4byte 0x020314E0 _0801DFAC: .4byte 0x000002A5 _0801DFB0: .4byte 0x000002A6 _0801DFB4: .4byte 0x000002A2 _0801DFB8: .4byte 0x0000132C _0801DFBC: .4byte 0x00001388 _0801DFC0: ldr r1, _0801DFE8 @ =0x086AD862 ldr r4, _0801DFEC @ =0x020314E0 ldr r2, [r4] ldr r6, _0801DFF0 @ =0x000002A5 adds r3, r2, r6 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r5, #0 ldrsh r0, [r0, r5] ldr r5, _0801DFF4 @ =0x000002A6 adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0801DFF8 adds r0, r1, #1 strh r0, [r2] b _0801E038 .align 2, 0 _0801DFE8: .4byte 0x086AD862 _0801DFEC: .4byte 0x020314E0 _0801DFF0: .4byte 0x000002A5 _0801DFF4: .4byte 0x000002A6 _0801DFF8: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E0C0 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd bne _0801E024 movs r0, #0xc strb r0, [r1] ldr r1, [r4] adds r2, r1, r5 movs r0, #0x41 strh r0, [r2] ldr r3, _0801E0C4 @ =0x000002A2 adds r1, r1, r3 movs r0, #4 strb r0, [r1] _0801E024: ldr r0, [r4] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _0801E038 movs r0, #0xd4 bl m4aSongNumStart _0801E038: ldr r5, _0801E0C8 @ =0x020314E0 ldr r2, [r5] ldr r4, _0801E0C0 @ =0x000002A5 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0801E070 ldr r0, _0801E0CC @ =0x0000132C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #0xa] adds r0, #0x40 movs r3, #0 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x89 lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xbd lsls r0, r0, #8 str r0, [r1, #0x38] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] _0801E070: ldr r2, [r5] adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0801E0A4 ldr r1, _0801E0CC @ =0x0000132C adds r2, r2, r1 ldr r1, [r2] ldrh r0, [r1, #0xa] adds r0, #0x40 movs r3, #0 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x8c lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xb7 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] _0801E0A4: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _0801E0B4 b _0801E780 _0801E0B4: ldr r2, _0801E0CC @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r0, #1 strb r0, [r1] b _0801E780 .align 2, 0 _0801E0C0: .4byte 0x000002A5 _0801E0C4: .4byte 0x000002A2 _0801E0C8: .4byte 0x020314E0 _0801E0CC: .4byte 0x0000132C _0801E0D0: ldr r5, _0801E154 @ =0x020314E0 ldr r0, [r5] movs r3, #0x88 lsls r3, r3, #5 adds r0, r0, r3 movs r7, #1 strb r7, [r0] ldr r0, [r5] ldr r6, _0801E158 @ =0x000002A6 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0x41 bne _0801E0F8 movs r0, #0x9f bl m4aSongNumStart ldr r0, _0801E15C @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0x9e strh r1, [r0, #0x38] _0801E0F8: ldr r4, [r5] adds r3, r4, r6 ldrh r0, [r3] cmp r0, #0 bne _0801E104 b _0801E780 _0801E104: subs r0, #1 strh r0, [r3] ldr r2, _0801E15C @ =0x0200B0C0 ldrh r0, [r3] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3] cmp r0, #0 beq _0801E11E b _0801E780 _0801E11E: movs r0, #0xa1 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #7 strb r0, [r1] ldr r0, [r5] ldr r1, _0801E160 @ =0x00000282 adds r0, r0, r1 strb r7, [r0] ldr r0, [r5] ldr r2, _0801E164 @ =0x0000072E adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0801E168 @ =0x0000073C adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] ldr r4, _0801E16C @ =0x0000072F adds r1, r0, r4 ldrb r1, [r1] ldr r5, _0801E170 @ =0x0000073D adds r0, r0, r5 strb r1, [r0] bl sub_1C73C b _0801E780 .align 2, 0 _0801E154: .4byte 0x020314E0 _0801E158: .4byte 0x000002A6 _0801E15C: .4byte 0x0200B0C0 _0801E160: .4byte 0x00000282 _0801E164: .4byte 0x0000072E _0801E168: .4byte 0x0000073C _0801E16C: .4byte 0x0000072F _0801E170: .4byte 0x0000073D _0801E174: ldr r2, _0801E1A0 @ =0x020314E0 ldr r0, [r2] ldr r1, _0801E1A4 @ =0x000002A5 adds r0, r0, r1 movs r3, #0 movs r1, #0xc strb r1, [r0] ldr r1, [r2] ldr r4, _0801E1A8 @ =0x000002A6 adds r0, r1, r4 movs r4, #0 strh r3, [r0] ldr r5, _0801E1AC @ =0x000002A2 adds r1, r1, r5 movs r0, #6 strb r0, [r1] ldr r0, [r2] ldr r1, _0801E1B0 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] strb r4, [r0, #1] b _0801E780 .align 2, 0 _0801E1A0: .4byte 0x020314E0 _0801E1A4: .4byte 0x000002A5 _0801E1A8: .4byte 0x000002A6 _0801E1AC: .4byte 0x000002A2 _0801E1B0: .4byte 0x0000132C _0801E1B4: ldr r1, _0801E1DC @ =0x086AD862 ldr r4, _0801E1E0 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801E1E4 @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801E1E8 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801E1EC adds r0, r1, #1 strh r0, [r2] b _0801E28A .align 2, 0 _0801E1DC: .4byte 0x086AD862 _0801E1E0: .4byte 0x020314E0 _0801E1E4: .4byte 0x000002A5 _0801E1E8: .4byte 0x000002A6 _0801E1EC: movs r6, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E2E4 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x1f bne _0801E212 strb r6, [r1] ldr r0, [r4] ldr r3, _0801E2E8 @ =0x000002A2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] _0801E212: ldr r2, [r4] adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0801E24E ldr r0, _0801E2EC @ =0x0000132C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #0xa] subs r0, #0x40 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x83 lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xc7 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r1, [r2] ldr r0, _0801E2F0 @ =0x0000FF88 strh r0, [r1, #0x30] ldr r1, [r2] movs r0, #0xd2 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #3 strb r0, [r1, #1] _0801E24E: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _0801E262 movs r0, #0xd3 bl m4aSongNumStart _0801E262: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1b bne _0801E276 movs r0, #0xd4 bl m4aSongNumStart _0801E276: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0801E2CA movs r0, #0xd6 bl m4aSongNumStart _0801E28A: ldr r1, _0801E2F4 @ =0x020314E0 ldr r3, [r1] ldr r2, _0801E2E4 @ =0x000002A5 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0801E2CA ldr r2, _0801E2EC @ =0x0000132C adds r0, r3, r2 ldr r0, [r0] movs r3, #0 strb r3, [r0] ldr r1, [r1] adds r1, r1, r2 ldr r2, [r1] ldrh r0, [r2, #0xa] subs r0, #0x40 strh r0, [r2, #0xa] ldr r2, [r1] movs r0, #0x85 lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r0, #0xc0 lsls r0, r0, #8 str r0, [r2, #0x38] ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] _0801E2CA: ldr r0, _0801E2F4 @ =0x020314E0 ldr r1, [r0] ldr r3, _0801E2E4 @ =0x000002A5 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x16 beq _0801E2DE b _0801E780 _0801E2DE: movs r0, #0 strb r0, [r1, #0x1f] b _0801E780 .align 2, 0 _0801E2E4: .4byte 0x000002A5 _0801E2E8: .4byte 0x000002A2 _0801E2EC: .4byte 0x0000132C _0801E2F0: .4byte 0x0000FF88 _0801E2F4: .4byte 0x020314E0 _0801E2F8: ldr r4, _0801E33C @ =0x020314E0 ldr r0, [r4] ldr r5, _0801E340 @ =0x000002A5 adds r0, r0, r5 movs r2, #0 movs r1, #0x1f strb r1, [r0] ldr r0, [r4] ldr r3, _0801E344 @ =0x000002A6 adds r1, r0, r3 strh r2, [r1] subs r5, #3 adds r0, r0, r5 movs r1, #8 strb r1, [r0] ldr r1, [r4] movs r0, #0xa str r0, [r1, #0x3c] movs r0, #0xb6 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r0, [r4] ldr r2, _0801E348 @ =0x00000724 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 bne _0801E336 b _0801E780 _0801E336: movs r0, #1 strh r0, [r1] b _0801E780 .align 2, 0 _0801E33C: .4byte 0x020314E0 _0801E340: .4byte 0x000002A5 _0801E344: .4byte 0x000002A6 _0801E348: .4byte 0x00000724 _0801E34C: ldr r1, _0801E374 @ =0x086AD862 ldr r4, _0801E378 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801E37C @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801E380 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801E384 adds r0, r1, #1 strh r0, [r2] b _0801E3D4 .align 2, 0 _0801E374: .4byte 0x086AD862 _0801E378: .4byte 0x020314E0 _0801E37C: .4byte 0x000002A5 _0801E380: .4byte 0x000002A6 _0801E384: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E430 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x2e bne _0801E3AA movs r0, #0 strb r0, [r1] ldr r0, [r4] ldr r3, _0801E434 @ =0x000002A2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] _0801E3AA: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x2a bne _0801E3BE movs r0, #0xd4 bl m4aSongNumStart _0801E3BE: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x21 bne _0801E3D4 movs r0, #0xa6 lsls r0, r0, #1 bl m4aSongNumStart _0801E3D4: ldr r6, _0801E438 @ =0x020314E0 ldr r4, [r6] ldr r5, _0801E430 @ =0x000002A5 adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x2d beq _0801E3E8 b _0801E780 _0801E3E8: ldr r3, _0801E43C @ =0x086AD9EC adds r5, #1 adds r2, r4, r5 ldrh r0, [r2] movs r1, #7 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] ldr r3, _0801E440 @ =0x000002AA adds r0, r4, r3 strh r1, [r0] ldrh r0, [r2] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0801E412 ldr r0, _0801E444 @ =0x02032FB0 ldr r1, _0801E448 @ =0x086A0F30 bl MPlayStart _0801E412: ldr r0, [r6] adds r0, r0, r5 ldrh r0, [r0] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0801E426 b _0801E780 _0801E426: movs r0, #0xc bl sub_11B0 b _0801E780 .align 2, 0 _0801E430: .4byte 0x000002A5 _0801E434: .4byte 0x000002A2 _0801E438: .4byte 0x020314E0 _0801E43C: .4byte 0x086AD9EC _0801E440: .4byte 0x000002AA _0801E444: .4byte 0x02032FB0 _0801E448: .4byte 0x086A0F30 _0801E44C: ldr r1, _0801E474 @ =0x086AD862 ldr r4, _0801E478 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801E47C @ =0x000002A5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0801E480 @ =0x000002A6 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0801E484 _0801E46E: adds r0, r1, #1 strh r0, [r2] b _0801E780 .align 2, 0 _0801E474: .4byte 0x086AD862 _0801E478: .4byte 0x020314E0 _0801E47C: .4byte 0x000002A5 _0801E480: .4byte 0x000002A6 _0801E484: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r4] ldr r2, _0801E4C4 @ =0x000002A5 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd bne _0801E4AA movs r0, #0 strb r0, [r1] ldr r0, [r4] ldr r3, _0801E4C8 @ =0x000002A2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] _0801E4AA: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 beq _0801E4BA b _0801E780 _0801E4BA: movs r0, #0xd4 bl m4aSongNumStart b _0801E780 .align 2, 0 _0801E4C4: .4byte 0x000002A5 _0801E4C8: .4byte 0x000002A2 _0801E4CC: ldr r2, _0801E508 @ =0x020314E0 ldr r0, [r2] movs r4, #0xa9 lsls r4, r4, #2 adds r0, r0, r4 movs r3, #0 strb r3, [r0] ldr r0, [r2] ldr r5, _0801E50C @ =0x000002A5 adds r0, r0, r5 strb r3, [r0] ldr r1, [r2] adds r4, #2 adds r0, r1, r4 strh r3, [r0] ldr r5, _0801E510 @ =0x0000016F adds r1, r1, r5 movs r0, #1 strb r0, [r1] ldr r0, [r2] movs r1, #0xba lsls r1, r1, #1 adds r2, r0, r1 movs r1, #0x40 strh r1, [r2] ldr r2, _0801E514 @ =0x000002AA adds r0, r0, r2 strh r3, [r0] b _0801E780 .align 2, 0 _0801E508: .4byte 0x020314E0 _0801E50C: .4byte 0x000002A5 _0801E510: .4byte 0x0000016F _0801E514: .4byte 0x000002AA _0801E518: ldr r5, _0801E560 @ =0x0000016F adds r1, r4, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _0801E526 b _0801E780 _0801E526: movs r0, #0xba lsls r0, r0, #1 adds r2, r4, r0 ldrh r0, [r2] cmp r0, #0x8f bhi _0801E56C ldr r1, _0801E564 @ =0x08137968 lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 ldrh r2, [r0] movs r1, #0xb8 lsls r1, r1, #1 adds r0, r4, r1 strb r2, [r0] mov r3, sl ldr r2, [r3] adds r0, r2, r1 ldrb r0, [r0] ldr r4, _0801E568 @ =0x00000171 adds r2, r2, r4 strb r0, [r2] ldr r0, [r3] adds r1, r0, r1 ldrb r1, [r1] adds r5, #3 adds r0, r0, r5 strb r1, [r0] b _0801E56E .align 2, 0 _0801E560: .4byte 0x0000016F _0801E564: .4byte 0x08137968 _0801E568: .4byte 0x00000171 _0801E56C: strb r3, [r1] _0801E56E: mov r0, sl ldr r4, [r0] movs r1, #0xb8 lsls r1, r1, #1 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa beq _0801E584 b _0801E6C4 _0801E584: movs r2, #0xba lsls r2, r2, #1 adds r0, r4, r2 ldrh r1, [r0] movs r0, #7 ands r0, r1 cmp r0, #0 beq _0801E596 b _0801E6C4 _0801E596: lsrs r0, r1, #3 cmp r0, #8 beq _0801E59E b _0801E6C4 _0801E59E: movs r3, #0xaa lsls r3, r3, #2 adds r1, r4, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bls _0801E5BA movs r0, #0x13 ldrsb r0, [r4, r0] cmp r0, #2 ble _0801E5E8 _0801E5BA: ldr r0, _0801E5E4 @ =0x0200B0C0 ldr r5, [r0, #0x4c] adds r0, r5, #0 movs r1, #5 bl __umodsi3 adds r0, #1 lsls r0, r0, #0x10 movs r1, #0xb6 lsls r1, r1, #1 adds r4, r4, r1 movs r1, #0 ldrsb r1, [r4, r1] lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _0801E61C adds r0, r5, #1 movs r1, #5 b _0801E60E .align 2, 0 _0801E5E4: .4byte 0x0200B0C0 _0801E5E8: ldr r0, _0801E618 @ =0x0200B0C0 ldr r5, [r0, #0x4c] adds r0, r5, #0 movs r1, #6 bl __umodsi3 adds r0, #1 lsls r0, r0, #0x10 movs r2, #0xb6 lsls r2, r2, #1 adds r4, r4, r2 movs r1, #0 ldrsb r1, [r4, r1] lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _0801E61C adds r0, r5, #1 movs r1, #6 _0801E60E: bl __umodsi3 adds r0, #1 strb r0, [r4] b _0801E61E .align 2, 0 _0801E618: .4byte 0x0200B0C0 _0801E61C: strb r2, [r4] _0801E61E: mov r3, sl ldr r0, [r3] movs r4, #0xb1 lsls r4, r4, #1 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0801E640 movs r0, #0 strb r0, [r1] ldr r0, [r3] movs r5, #0xb6 lsls r5, r5, #1 adds r0, r0, r5 movs r1, #6 strb r1, [r0] _0801E640: mov r0, sl ldr r1, [r0] movs r4, #0xb6 lsls r4, r4, #1 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0801E68E movs r2, #0xa9 lsls r2, r2, #2 adds r1, r1, r2 movs r3, #0 movs r0, #1 strb r0, [r1] mov r5, sl ldr r0, [r5] ldr r1, _0801E700 @ =0x000002A2 adds r0, r0, r1 strb r3, [r0] ldr r0, [r5] adds r2, #2 adds r1, r0, r2 movs r2, #0 strh r3, [r1] ldr r5, _0801E704 @ =0x000002A5 adds r0, r0, r5 strb r2, [r0] mov r1, sl ldr r0, [r1] ldr r5, _0801E708 @ =0x0000016F adds r0, r0, r5 strb r2, [r0] ldr r0, [r1] movs r1, #0xaa lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] _0801E68E: mov r2, sl ldr r3, [r2] adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _0801E6C4 ldr r2, _0801E70C @ =0x086AD9DC movs r4, #0 ldrsh r1, [r2, r4] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r5, #0xbc lsls r5, r5, #1 adds r1, r3, r5 strh r0, [r1] movs r0, #2 ldrsh r1, [r2, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xbd lsls r2, r2, #1 adds r1, r3, r2 strh r0, [r1] _0801E6C4: ldr r5, _0801E710 @ =0x020314E0 ldr r1, [r5] movs r4, #0xba lsls r4, r4, #1 adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x20 bne _0801E6E2 movs r0, #0xc9 bl m4aSongNumStart _0801E6E2: ldr r1, [r5] movs r3, #0xb6 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0801E742 cmp r0, #4 ble _0801E714 cmp r0, #5 beq _0801E772 b _0801E780 .align 2, 0 _0801E700: .4byte 0x000002A2 _0801E704: .4byte 0x000002A5 _0801E708: .4byte 0x0000016F _0801E70C: .4byte 0x086AD9DC _0801E710: .4byte 0x020314E0 _0801E714: cmp r0, #0 blt _0801E780 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x66 bne _0801E726 movs r0, #0xc8 bl m4aSongNumStart _0801E726: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x74 bne _0801E736 movs r0, #0xc8 bl m4aSongNumStart _0801E736: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x82 bne _0801E780 b _0801E76A _0801E742: adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x66 bne _0801E750 movs r0, #0xc8 bl m4aSongNumStart _0801E750: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x76 bne _0801E760 movs r0, #0xc8 bl m4aSongNumStart _0801E760: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x86 bne _0801E780 _0801E76A: movs r0, #0xc8 bl m4aSongNumStart b _0801E780 _0801E772: adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x68 bne _0801E780 movs r0, #0xc8 bl m4aSongNumStart _0801E780: ldr r1, _0801E7A4 @ =0x020314E0 ldr r0, [r1] movs r4, #0xb6 lsls r4, r4, #1 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r1 cmp r0, #6 bls _0801E798 b _0801EC32 _0801E798: lsls r0, r0, #2 ldr r1, _0801E7A8 @ =_0801E7AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801E7A4: .4byte 0x020314E0 _0801E7A8: .4byte _0801E7AC _0801E7AC: @ jump table .4byte _0801E7C8 @ case 0 .4byte _0801E814 @ case 1 .4byte _0801E8D0 @ case 2 .4byte _0801E998 @ case 3 .4byte _0801EA50 @ case 4 .4byte _0801EB00 @ case 5 .4byte _0801EC00 @ case 6 _0801E7C8: mov r5, sl ldr r2, [r5] movs r0, #0xbc lsls r0, r0, #1 adds r1, r2, r0 ldr r0, _0801E80C @ =0x000004E2 strh r0, [r1] movs r3, #0xbd lsls r3, r3, #1 adds r1, r2, r3 adds r0, #0x14 strh r0, [r1] movs r4, #0xc0 lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r1] movs r5, #0xc1 lsls r5, r5, #1 adds r1, r2, r5 subs r0, #0xf0 strh r0, [r1] movs r0, #0xbe lsls r0, r0, #1 adds r1, r2, r0 ldr r0, _0801E810 @ =0x0000055A strh r0, [r1] adds r3, #4 adds r1, r2, r3 adds r0, #0xf0 strh r0, [r1] b _0801EC32 .align 2, 0 _0801E80C: .4byte 0x000004E2 _0801E810: .4byte 0x0000055A _0801E814: movs r6, #0 ldr r4, _0801E8C0 @ =0x020314E0 mov sb, r4 movs r5, #0xc8 lsls r5, r5, #1 mov r8, r5 ldr r0, _0801E8C4 @ =0x00004E20 mov sl, r0 _0801E824: mov r1, sb ldr r4, [r1] movs r2, #0xa4 lsls r2, r2, #2 adds r0, r4, r2 ldr r0, [r0] movs r3, #0x7f ands r3, r0 lsls r3, r3, #9 lsls r1, r6, #0x10 asrs r7, r1, #0x10 lsls r6, r7, #2 adds r1, r6, r7 lsls r2, r1, #4 adds r1, r1, r2 lsls r2, r1, #8 adds r1, r1, r2 adds r3, r3, r1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 movs r1, #0x3c bl __umodsi3 subs r0, #0x1e lsls r0, r0, #0x10 mov r3, r8 adds r1, r4, r3 movs r0, #0xb4 strh r0, [r1] adds r0, r5, #0 bl sub_C74 mov r4, sb ldr r1, [r4] adds r4, r1, r6 add r1, r8 movs r2, #0 ldrsh r1, [r1, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r3, _0801E8C8 @ =0x00000564 adds r0, r0, r3 movs r1, #0xbc lsls r1, r1, #1 adds r4, r4, r1 strh r0, [r4] adds r0, r5, #0 bl sub_C24 mov r2, sb ldr r1, [r2] adds r4, r1, r6 add r1, r8 movs r3, #0 ldrsh r1, [r1, r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r5, _0801E8CC @ =0x000005DC adds r0, r0, r5 movs r2, #0xbd lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0801E824 b _0801EC32 .align 2, 0 _0801E8C0: .4byte 0x020314E0 _0801E8C4: .4byte 0x00004E20 _0801E8C8: .4byte 0x00000564 _0801E8CC: .4byte 0x000005DC _0801E8D0: movs r6, #0 ldr r3, _0801E984 @ =0x020314E0 mov sb, r3 movs r4, #0xc8 lsls r4, r4, #1 mov r8, r4 ldr r5, _0801E988 @ =0x00004E20 mov sl, r5 _0801E8E0: mov r0, sb ldr r4, [r0] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] movs r3, #0x7f ands r3, r0 lsls r3, r3, #9 lsls r1, r6, #0x10 asrs r7, r1, #0x10 lsls r6, r7, #2 adds r1, r6, r7 lsls r2, r1, #4 adds r1, r1, r2 lsls r2, r1, #8 adds r1, r1, r2 adds r3, r3, r1 ldr r2, _0801E98C @ =0x00002710 adds r1, r2, #0 subs r1, r1, r3 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 movs r1, #0x3c bl __umodsi3 subs r0, #0x1e lsls r0, r0, #0x10 mov r3, r8 adds r1, r4, r3 movs r0, #0xb4 strh r0, [r1] adds r0, r5, #0 bl sub_C74 mov r4, sb ldr r1, [r4] adds r4, r1, r6 add r1, r8 movs r2, #0 ldrsh r1, [r1, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r3, _0801E990 @ =0x00000564 adds r0, r0, r3 movs r1, #0xbc lsls r1, r1, #1 adds r4, r4, r1 strh r0, [r4] adds r0, r5, #0 bl sub_C24 mov r2, sb ldr r1, [r2] adds r4, r1, r6 add r1, r8 movs r3, #0 ldrsh r1, [r1, r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 mov r1, sl bl __divsi3 ldr r5, _0801E994 @ =0x000005DC adds r0, r0, r5 movs r2, #0xbd lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0801E8E0 b _0801EC32 .align 2, 0 _0801E984: .4byte 0x020314E0 _0801E988: .4byte 0x00004E20 _0801E98C: .4byte 0x00002710 _0801E990: .4byte 0x00000564 _0801E994: .4byte 0x000005DC _0801E998: movs r6, #0 _0801E99A: mov r3, sl ldr r5, [r3] movs r4, #0xa4 lsls r4, r4, #2 adds r0, r5, r4 ldr r0, [r0] movs r1, #0x2e bl __umodsi3 movs r7, #0x17 subs r0, r7, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _0801E9C0 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _0801E9C0: lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r2, r1, #1 lsls r0, r2, #2 adds r3, r5, r0 lsls r0, r1, #5 adds r0, r0, r1 adds r0, #0x79 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r5, #0xbc lsls r5, r5, #1 adds r0, r3, r5 strh r1, [r0] lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 ldr r0, _0801EA44 @ =0x0000053C adds r1, r1, r0 movs r4, #0xbd lsls r4, r4, #1 adds r3, r3, r4 strh r1, [r3] lsls r2, r2, #0x10 lsrs r6, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0801E99A mov r0, sl ldr r5, [r0] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r5, r1 ldr r0, [r0] adds r0, #0x17 movs r1, #0x2e bl __umodsi3 subs r0, r7, r0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _0801EA22 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _0801EA22: movs r2, #0xbc lsls r2, r2, #1 adds r1, r5, r2 ldr r0, _0801EA48 @ =0x0000055A strh r0, [r1] lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 ldr r3, _0801EA4C @ =0x00000654 adds r1, r1, r3 movs r4, #0xbd lsls r4, r4, #1 adds r2, r5, r4 strh r1, [r2] b _0801EC32 .align 2, 0 _0801EA44: .4byte 0x0000053C _0801EA48: .4byte 0x0000055A _0801EA4C: .4byte 0x00000654 _0801EA50: mov r5, sl ldr r6, [r5] movs r0, #0xbc lsls r0, r0, #1 adds r1, r6, r0 ldr r0, _0801EAE8 @ =0x000004BA strh r0, [r1] ldr r5, _0801EAEC @ =0x0813798C movs r1, #0xa4 lsls r1, r1, #2 adds r4, r6, r1 ldr r0, [r4] movs r1, #0x3c bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldr r2, _0801EAF0 @ =0x00000514 adds r1, r2, #0 ldrh r0, [r0] adds r1, r1, r0 movs r3, #0xbd lsls r3, r3, #1 adds r0, r6, r3 strh r1, [r0] movs r0, #0xbe lsls r0, r0, #1 adds r1, r6, r0 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r1] ldr r0, [r4] adds r0, #0x14 movs r1, #0x3c bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldr r2, _0801EAF4 @ =0x00000582 adds r1, r2, #0 ldrh r0, [r0] adds r1, r1, r0 movs r3, #0xbf lsls r3, r3, #1 adds r0, r6, r3 strh r1, [r0] movs r0, #0xc0 lsls r0, r0, #1 adds r1, r6, r0 ldr r0, _0801EAF8 @ =0x0000055A strh r0, [r1] ldr r0, [r4] adds r0, #0x28 movs r1, #0x3c bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldr r2, _0801EAFC @ =0x0000067C adds r1, r2, #0 ldrh r0, [r0] adds r1, r1, r0 movs r3, #0xc1 lsls r3, r3, #1 adds r0, r6, r3 b _0801EC30 .align 2, 0 _0801EAE8: .4byte 0x000004BA _0801EAEC: .4byte 0x0813798C _0801EAF0: .4byte 0x00000514 _0801EAF4: .4byte 0x00000582 _0801EAF8: .4byte 0x0000055A _0801EAFC: .4byte 0x0000067C _0801EB00: ldr r0, _0801EBF0 @ =0x086AD9DC mov r4, sl ldr r3, [r4] movs r5, #0xb7 lsls r5, r5, #1 adds r1, r3, r5 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #2 adds r2, r2, r0 movs r0, #0 ldrsh r1, [r2, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 adds r5, #0xa adds r1, r3, r5 movs r4, #0 ldrsh r1, [r1, r4] subs r1, r0, r1 str r1, [sp] movs r0, #2 ldrsh r1, [r2, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r1, #0xbd lsls r1, r1, #1 mov sb, r1 add r3, sb movs r2, #0 ldrsh r1, [r3, r2] subs r1, r0, r1 str r1, [sp, #4] ldr r4, [sp] adds r3, r4, #0 muls r3, r4, r3 mov r8, r3 adds r0, r1, #0 muls r0, r1, r0 add r8, r0 lsls r0, r4, #0x10 asrs r0, r0, #0x10 rsbs r1, r1, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r6, _0801EBF4 @ =0x00004E20 adds r0, r1, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp, #8] adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r6, #0 bl __divsi3 str r0, [sp, #0xc] mov r0, sl ldr r1, [r0] adds r5, r1, r5 ldrh r0, [r5] ldr r2, [sp, #8] adds r0, r2, r0 movs r4, #0 strh r0, [r5] add r1, sb ldrh r0, [r1] ldr r3, [sp, #0xc] adds r0, r3, r0 strh r0, [r1] ldr r0, _0801EBF8 @ =0x000009C3 cmp r8, r0 bgt _0801EBCA bl sub_C00 mov r5, sl ldr r2, [r5] movs r1, #3 ands r1, r0 movs r3, #0xb7 lsls r3, r3, #1 adds r0, r2, r3 strb r1, [r0] _0801EBCA: mov r5, sl ldr r2, [r5] movs r1, #0xbe lsls r1, r1, #1 adds r0, r2, r1 strh r4, [r0] movs r3, #0xbf lsls r3, r3, #1 adds r0, r2, r3 ldr r1, _0801EBFC @ =0x0000FED4 strh r1, [r0] movs r5, #0xc0 lsls r5, r5, #1 adds r0, r2, r5 strh r4, [r0] adds r3, #4 adds r0, r2, r3 b _0801EC30 .align 2, 0 _0801EBF0: .4byte 0x086AD9DC _0801EBF4: .4byte 0x00004E20 _0801EBF8: .4byte 0x000009C3 _0801EBFC: .4byte 0x0000FED4 _0801EC00: mov r4, sl ldr r3, [r4] movs r5, #0xbc lsls r5, r5, #1 adds r0, r3, r5 movs r2, #0 strh r2, [r0] movs r1, #0xbd lsls r1, r1, #1 adds r0, r3, r1 ldr r1, _0801EC44 @ =0x0000FED4 strh r1, [r0] movs r4, #0xbe lsls r4, r4, #1 adds r0, r3, r4 strh r2, [r0] adds r5, #6 adds r0, r3, r5 strh r1, [r0] adds r4, #4 adds r0, r3, r4 strh r2, [r0] adds r5, #4 adds r0, r3, r5 _0801EC30: strh r1, [r0] _0801EC32: add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801EC44: .4byte 0x0000FED4 thumb_func_start sub_1EC48 sub_1EC48: @ 0x0801EC48 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _0801ECAC @ =0x020314E0 ldr r3, [r1] ldr r2, _0801ECB0 @ =0x00000624 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0801EC66 b _0801EE4A _0801EC66: cmp r0, #2 beq _0801EC6C b _0801EE3C _0801EC6C: movs r0, #0xfa lsls r0, r0, #1 str r0, [r3, #0x3c] movs r0, #0xb6 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r3, _0801ECAC @ =0x020314E0 ldr r1, [r3] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 beq _0801EC8C b _0801EE1E _0801EC8C: movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #5 beq _0801EC96 b _0801EE1E _0801EC96: ldr r5, _0801ECB4 @ =0x00000625 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 ble _0801ECA4 b _0801EE1E _0801ECA4: cmp r0, #0 bne _0801ECB8 movs r0, #1 b _0801ECC2 .align 2, 0 _0801ECAC: .4byte 0x020314E0 _0801ECB0: .4byte 0x00000624 _0801ECB4: .4byte 0x00000625 _0801ECB8: cmp r0, #1 bne _0801ECC0 movs r0, #3 b _0801ECC2 _0801ECC0: movs r0, #6 _0801ECC2: strb r0, [r1] ldr r6, _0801ED70 @ =0x020314E0 ldr r5, [r6] ldr r1, _0801ED74 @ =0x00000625 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r0 cmp r0, #6 beq _0801ECDA b _0801EE1E _0801ECDA: ldr r2, _0801ED78 @ =0x000006C6 adds r0, r5, r2 movs r7, #0 ldrsb r7, [r0, r7] cmp r7, #0 beq _0801ECE8 b _0801EE1E _0801ECE8: movs r3, #0xb6 lsls r3, r3, #1 adds r0, r5, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r0 cmp r0, #4 bne _0801ED98 ldr r2, _0801ED7C @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r5, #0 adds r0, #0xea movs r4, #0 movs r3, #0x32 strh r3, [r0] adds r1, r5, #0 adds r1, #0xec movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] subs r1, #4 movs r0, #0xec strh r0, [r1] adds r0, r5, #0 adds r0, #0xe6 strh r7, [r0] adds r0, #8 mov r1, r8 strh r1, [r0] adds r0, #4 mov r5, sb strb r5, [r0] ldr r0, [r6] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r6] adds r0, #0xfb strb r4, [r0] ldr r4, [r6] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _0801ED80 @ =0x0000F63C strh r0, [r1] adds r0, r4, #0 adds r0, #0xf0 strh r3, [r0] adds r0, #8 strh r7, [r0] ldr r1, _0801ED84 @ =0x040000D4 ldr r0, _0801ED88 @ =0x086ACEF8 ldr r0, [r0, #0x18] str r0, [r1] ldr r0, _0801ED8C @ =0x06015800 str r0, [r1, #4] ldr r0, _0801ED90 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801ED94 @ =0x086ACF18 ldr r0, [r0, #0x18] b _0801EE0C .align 2, 0 _0801ED70: .4byte 0x020314E0 _0801ED74: .4byte 0x00000625 _0801ED78: .4byte 0x000006C6 _0801ED7C: .4byte 0x0200B0C0 _0801ED80: .4byte 0x0000F63C _0801ED84: .4byte 0x040000D4 _0801ED88: .4byte 0x086ACEF8 _0801ED8C: .4byte 0x06015800 _0801ED90: .4byte 0x80001200 _0801ED94: .4byte 0x086ACF18 _0801ED98: ldr r2, _0801EEA8 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r5, #0 adds r0, #0xea movs r4, #0 movs r3, #0x32 strh r3, [r0] adds r1, r5, #0 adds r1, #0xec movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] subs r1, #4 movs r0, #0xec strh r0, [r1] adds r0, r5, #0 adds r0, #0xe6 strh r7, [r0] adds r1, #6 movs r0, #4 strh r0, [r1] adds r0, r5, #0 adds r0, #0xf2 movs r1, #1 strb r1, [r0] ldr r0, [r6] adds r0, #0xfa strb r1, [r0] ldr r0, [r6] adds r0, #0xfb strb r4, [r0] ldr r4, [r6] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _0801EEAC @ =0x0000F63C strh r0, [r1] adds r0, r4, #0 adds r0, #0xf0 strh r3, [r0] adds r0, #8 strh r7, [r0] ldr r1, _0801EEB0 @ =0x040000D4 ldr r0, _0801EEB4 @ =0x086ACEF8 ldr r0, [r0, #4] str r0, [r1] ldr r0, _0801EEB8 @ =0x06015800 str r0, [r1, #4] ldr r0, _0801EEBC @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0801EEC0 @ =0x086ACF18 ldr r0, [r0, #4] _0801EE0C: str r0, [r1] ldr r0, _0801EEC4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0801EEC8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _0801EE1E: ldr r2, _0801EECC @ =0x020314E0 ldr r0, [r2] movs r6, #0xbb lsls r6, r6, #1 adds r1, r0, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r2] movs r0, #0xc2 lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0801EE3C: ldr r2, _0801EECC @ =0x020314E0 ldr r1, [r2] ldr r3, _0801EED0 @ =0x00000624 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801EE4A: ldr r5, _0801EED4 @ =0x0200E048 mov sl, r5 ldr r6, _0801EECC @ =0x020314E0 ldr r0, [r6] movs r1, #0xb6 lsls r1, r1, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0801EF4C movs r6, #0 ldr r2, _0801EED8 @ =0x0844928C mov sb, r2 ldr r3, _0801EECC @ =0x020314E0 mov r8, r3 movs r7, #0xb8 lsls r7, r7, #1 ldr r5, _0801EEB0 @ =0x040000D4 _0801EE72: mov r0, r8 ldr r3, [r0] lsls r0, r6, #0x10 asrs r4, r0, #0x10 adds r0, r3, r7 adds r2, r0, r4 ldrb r0, [r2] movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #0 beq _0801EEE2 cmp r1, #0x64 ble _0801EEDC subs r0, #1 movs r3, #0 strb r0, [r2] mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x64 bne _0801EEA4 strb r3, [r1] _0801EEA4: movs r1, #8 b _0801EEFA .align 2, 0 _0801EEA8: .4byte 0x0200B0C0 _0801EEAC: .4byte 0x0000F63C _0801EEB0: .4byte 0x040000D4 _0801EEB4: .4byte 0x086ACEF8 _0801EEB8: .4byte 0x06015800 _0801EEBC: .4byte 0x80001200 _0801EEC0: .4byte 0x086ACF18 _0801EEC4: .4byte 0x050003C0 _0801EEC8: .4byte 0x80000010 _0801EECC: .4byte 0x020314E0 _0801EED0: .4byte 0x00000624 _0801EED4: .4byte 0x0200E048 _0801EED8: .4byte 0x0844928C _0801EEDC: movs r0, #0 ldrsb r0, [r2, r0] b _0801EEF6 _0801EEE2: movs r2, #0xa4 lsls r2, r2, #2 adds r0, r3, r2 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 _0801EEF6: lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0801EEFA: lsls r0, r1, #0x10 asrs r0, r0, #8 add r0, sb str r0, [r5] lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #8 ldr r3, _0801EF38 @ =0x06012E80 adds r0, r0, r3 str r0, [r5, #4] ldr r0, _0801EF3C @ =0x80000080 str r0, [r5, #8] ldr r0, [r5, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _0801EE72 ldr r2, _0801EF40 @ =0x040000D4 ldr r5, _0801EF44 @ =0x020314E0 ldr r0, [r5] adds r0, #0x6f movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldr r6, _0801EF48 @ =0x081379B8 b _0801F006 .align 2, 0 _0801EF38: .4byte 0x06012E80 _0801EF3C: .4byte 0x80000080 _0801EF40: .4byte 0x040000D4 _0801EF44: .4byte 0x020314E0 _0801EF48: .4byte 0x081379B8 _0801EF4C: movs r6, #0 movs r0, #0xb8 lsls r0, r0, #1 mov sb, r0 ldr r1, _0801EFA0 @ =0x040000D4 mov r8, r1 _0801EF58: ldr r2, _0801EFA4 @ =0x020314E0 ldr r1, [r2] lsls r0, r6, #0x10 asrs r5, r0, #0x10 mov r3, sb adds r0, r1, r3 adds r4, r0, r5 ldrb r7, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _0801EFAE cmp r0, #0x64 ble _0801EFA8 movs r1, #0x69 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #9 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 subs r0, r7, #1 movs r3, #0 strb r0, [r4] ldr r2, _0801EFA4 @ =0x020314E0 ldr r0, [r2] add r0, sb adds r2, r0, r5 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x64 bne _0801EFC6 strb r3, [r2] b _0801EFC6 .align 2, 0 _0801EFA0: .4byte 0x040000D4 _0801EFA4: .4byte 0x020314E0 _0801EFA8: movs r0, #0 ldrsb r0, [r4, r0] b _0801EFC2 _0801EFAE: movs r3, #0xa4 lsls r3, r3, #2 adds r0, r1, r3 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 _0801EFC2: lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0801EFC6: lsls r0, r1, #0x10 asrs r0, r0, #8 ldr r5, _0801F128 @ =0x083C806C adds r0, r0, r5 mov r1, r8 str r0, [r1] lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #8 ldr r2, _0801F12C @ =0x06012E80 adds r0, r0, r2 mov r3, r8 str r0, [r3, #4] ldr r0, _0801F130 @ =0x80000080 str r0, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _0801EF58 ldr r2, _0801F134 @ =0x040000D4 ldr r5, _0801F138 @ =0x020314E0 ldr r0, [r5] adds r0, #0x6f movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 ldr r6, _0801F13C @ =0x08137998 _0801F006: adds r0, r0, r6 str r0, [r2] ldr r0, _0801F140 @ =0x05000320 str r0, [r2, #4] ldr r0, _0801F144 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r6, #0 _0801F016: ldr r0, _0801F138 @ =0x020314E0 ldr r4, [r0] lsls r6, r6, #0x10 asrs r1, r6, #0x10 mov sb, r1 lsls r0, r1, #2 adds r7, r4, r0 movs r2, #0xbc lsls r2, r2, #1 adds r5, r7, r2 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 mov r1, sl strh r0, [r1, #2] movs r2, #0xbd lsls r2, r2, #1 adds r2, r2, r7 mov r8, r2 movs r3, #0 ldrsh r0, [r2, r3] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 subs r0, #4 mov r1, sl strh r0, [r1, #4] movs r2, #0 ldrsh r0, [r5, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #8 lsls r0, r0, #1 movs r3, #0xc2 lsls r3, r3, #1 adds r1, r7, r3 strh r0, [r1] mov r5, r8 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #7 lsls r0, r0, #1 movs r2, #0xc3 lsls r2, r2, #1 adds r1, r7, r2 strh r0, [r1] mov r3, sl movs r5, #4 ldrsh r1, [r3, r5] movs r0, #0x28 rsbs r0, r0, #0 mov r8, r6 cmp r1, r0 bge _0801F0AE ldr r0, _0801F148 @ =0x0000FFD8 strh r0, [r3, #4] _0801F0AE: movs r0, #0 mov r6, sb lsls r6, r6, #1 mov ip, r6 ldr r7, _0801F14C @ =0x03005000 ldr r1, _0801F150 @ =0xFFFFFE00 mov sb, r1 _0801F0BC: lsls r4, r0, #0x10 asrs r4, r4, #0x10 mov r3, ip adds r2, r4, r3 lsls r2, r2, #3 adds r2, #8 add r2, sl ldrh r3, [r2] lsls r3, r3, #3 adds r3, r3, r7 movs r5, #2 ldrsh r1, [r2, r5] mov r6, sl movs r5, #2 ldrsh r0, [r6, r5] adds r1, r1, r0 ldr r6, _0801F154 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r5, [r3, #2] mov r0, sb ands r0, r5 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r2] lsls r1, r1, #3 adds r1, r1, r7 mov r3, sl ldrb r0, [r3, #4] ldrb r2, [r2, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0801F0BC movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _0801F118 b _0801F016 _0801F118: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801F128: .4byte 0x083C806C _0801F12C: .4byte 0x06012E80 _0801F130: .4byte 0x80000080 _0801F134: .4byte 0x040000D4 _0801F138: .4byte 0x020314E0 _0801F13C: .4byte 0x08137998 _0801F140: .4byte 0x05000320 _0801F144: .4byte 0x80000010 _0801F148: .4byte 0x0000FFD8 _0801F14C: .4byte 0x03005000 _0801F150: .4byte 0xFFFFFE00 _0801F154: .4byte 0x000001FF thumb_func_start sub_1F158 sub_1F158: @ 0x0801F158 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0801F270 @ =0x0200B0C0 ldr r0, [r4, #0x4c] movs r1, #0x37 bl __umodsi3 movs r1, #0xb bl __udivsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0801F274 @ =0x00002ED0 adds r7, r4, r0 ldr r2, _0801F278 @ =0x040000D4 ldr r6, _0801F27C @ =0x020314E0 ldr r3, [r6] ldr r0, _0801F280 @ =0x000002F5 adds r4, r3, r0 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 lsls r0, r0, #5 ldr r1, _0801F284 @ =0x084F5ACC adds r0, r0, r1 str r0, [r2] ldr r0, _0801F288 @ =0x06012C20 str r0, [r2, #4] ldr r0, _0801F28C @ =0x80000130 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xbd lsls r2, r2, #2 adds r3, r3, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0801F1B4 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 _0801F1B4: ldr r2, _0801F290 @ =0x086AD9FC lsls r0, r5, #0x10 asrs r0, r0, #0xe adds r1, r0, r2 ldrh r3, [r1] adds r2, #2 adds r0, r0, r2 ldrh r0, [r0] strb r0, [r4] ldr r1, [r6] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0xb3 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0xae subs r0, r0, r1 strh r0, [r7, #4] movs r1, #0 ldr r5, _0801F294 @ =0x086B3A04 mov sb, r5 ldr r6, _0801F298 @ =0x03005000 lsls r3, r3, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, r0, r3 lsls r0, r0, #1 mov ip, r0 ldr r0, _0801F29C @ =0xFFFFFE00 mov r8, r0 _0801F1F6: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r5, [r2, #2] mov sl, r5 mov r0, sl lsls r1, r0, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r5, _0801F2A0 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 mov r5, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0801F1F6 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801F270: .4byte 0x0200B0C0 _0801F274: .4byte 0x00002ED0 _0801F278: .4byte 0x040000D4 _0801F27C: .4byte 0x020314E0 _0801F280: .4byte 0x000002F5 _0801F284: .4byte 0x084F5ACC _0801F288: .4byte 0x06012C20 _0801F28C: .4byte 0x80000130 _0801F290: .4byte 0x086AD9FC _0801F294: .4byte 0x086B3A04 _0801F298: .4byte 0x03005000 _0801F29C: .4byte 0xFFFFFE00 _0801F2A0: .4byte 0x000001FF thumb_func_start sub_1F2A4 sub_1F2A4: @ 0x0801F2A4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r5, _0801F3E8 @ =0x020314E0 ldr r4, [r5] movs r1, #0xe3 lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0xe4 lsls r2, r2, #1 mov sb, r2 adds r2, r4, r2 movs r3, #0 ldrsh r1, [r0, r3] ldrh r3, [r2] movs r6, #0 ldrsh r0, [r2, r6] cmp r1, r0 beq _0801F39A adds r0, r3, #2 strh r0, [r2] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xe bl __divsi3 movs r6, #0xe5 lsls r6, r6, #1 adds r2, r4, r6 strh r0, [r2] movs r3, #0xe8 lsls r3, r3, #1 mov r8, r3 adds r1, r4, r3 movs r0, #0x50 strh r0, [r1] movs r0, #0xec lsls r0, r0, #1 mov ip, r0 adds r0, r4, r0 subs r3, #0xd0 strh r3, [r0] movs r7, #0xed lsls r7, r7, #1 adds r0, r4, r7 strh r3, [r0] movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xb bne _0801F314 movs r2, #0xe7 lsls r2, r2, #1 adds r1, r4, r2 movs r0, #0x78 strh r0, [r1] _0801F314: ldr r2, [r5] adds r1, r2, r6 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0xb ble _0801F336 movs r0, #0xc strh r0, [r1] mov r6, r8 adds r1, r2, r6 movs r0, #0x78 strh r0, [r1] mov r1, ip adds r0, r2, r1 strh r3, [r0] adds r0, r2, r7 strh r3, [r0] _0801F336: ldr r0, [r5] mov r3, sb adds r2, r0, r3 movs r4, #0 ldrsh r0, [r2, r4] cmp r0, #0xa7 bgt _0801F368 ldrh r0, [r2] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0801F368 movs r5, #0 ldrsh r0, [r2, r5] movs r1, #0x15 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #8 movs r6, #0xa8 lsls r6, r6, #0x10 adds r0, r0, r6 lsrs r0, r0, #0x10 bl m4aSongNumStart _0801F368: ldr r4, _0801F3E8 @ =0x020314E0 ldr r1, [r4] movs r2, #0xe3 lsls r2, r2, #1 adds r0, r1, r2 movs r3, #0xe4 lsls r3, r3, #1 adds r2, r1, r3 ldrh r3, [r0] movs r5, #0 ldrsh r1, [r0, r5] movs r6, #0 ldrsh r0, [r2, r6] cmp r1, r0 bgt _0801F39A strh r3, [r2] cmp r1, #0xa7 ble _0801F39A ldr r0, _0801F3EC @ =0x02032F20 ldr r1, _0801F3F0 @ =0x0869F2A0 bl MPlayStart ldr r1, [r4] ldr r0, _0801F3F4 @ =0x00000BB8 str r0, [r1, #0x3c] _0801F39A: ldr r5, _0801F3E8 @ =0x020314E0 ldr r0, [r5] ldr r2, _0801F3F8 @ =0x00000616 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _0801F3AC subs r0, #1 strh r0, [r1] _0801F3AC: ldr r4, [r5] ldr r3, _0801F3FC @ =0x00000614 adds r2, r4, r3 ldrh r0, [r2] movs r6, #0 ldrsh r1, [r2, r6] cmp r1, #0 ble _0801F478 subs r0, #3 movs r3, #0 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bge _0801F3CA strh r3, [r2] _0801F3CA: ldr r0, [r5] movs r2, #0xc3 lsls r2, r2, #3 adds r1, r0, r2 ldrh r2, [r1] ldr r4, _0801F400 @ =0x0000061A adds r0, r0, r4 movs r6, #0 ldrsh r0, [r0, r6] subs r0, #1 cmp r2, r0 bge _0801F404 adds r0, r2, #1 strh r0, [r1] b _0801F44E .align 2, 0 _0801F3E8: .4byte 0x020314E0 _0801F3EC: .4byte 0x02032F20 _0801F3F0: .4byte 0x0869F2A0 _0801F3F4: .4byte 0x00000BB8 _0801F3F8: .4byte 0x00000616 _0801F3FC: .4byte 0x00000614 _0801F400: .4byte 0x0000061A _0801F404: strh r3, [r1] ldr r0, _0801F464 @ =0x02032FB0 ldr r1, _0801F468 @ =0x0869F240 bl MPlayStart ldr r2, [r5] movs r0, #0x64 str r0, [r2, #0x3c] movs r1, #0xe5 lsls r1, r1, #1 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xb bgt _0801F44E ldr r4, _0801F46C @ =0x0000061C adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801F44E movs r5, #0xe8 lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x50 strh r0, [r1] movs r6, #0xec lsls r6, r6, #1 adds r0, r2, r6 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] movs r3, #0xed lsls r3, r3, #1 adds r0, r2, r3 strh r1, [r0] _0801F44E: ldr r5, _0801F470 @ =0x020314E0 ldr r4, [r5] ldr r6, _0801F474 @ =0x00000614 adds r0, r4, r6 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #0xe1 lsls r0, r0, #1 subs r0, r0, r1 b _0801F508 .align 2, 0 _0801F464: .4byte 0x02032FB0 _0801F468: .4byte 0x0869F240 _0801F46C: .4byte 0x0000061C _0801F470: .4byte 0x020314E0 _0801F474: .4byte 0x00000614 _0801F478: cmp r1, #0 bge _0801F55C adds r0, #3 movs r3, #0 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 ble _0801F48A strh r3, [r2] _0801F48A: ldr r0, [r5] movs r2, #0xc3 lsls r2, r2, #3 adds r1, r0, r2 ldrh r2, [r1] ldr r4, _0801F4A8 @ =0x0000061A adds r0, r0, r4 movs r6, #0 ldrsh r0, [r0, r6] subs r0, #1 cmp r2, r0 bge _0801F4AC adds r0, r2, #1 strh r0, [r1] b _0801F4F6 .align 2, 0 _0801F4A8: .4byte 0x0000061A _0801F4AC: strh r3, [r1] ldr r0, _0801F540 @ =0x02032FB0 ldr r1, _0801F544 @ =0x0869F240 bl MPlayStart ldr r2, [r5] movs r0, #0x64 str r0, [r2, #0x3c] movs r1, #0xe5 lsls r1, r1, #1 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xb bgt _0801F4F6 ldr r4, _0801F548 @ =0x0000061C adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801F4F6 movs r5, #0xe8 lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x50 strh r0, [r1] movs r6, #0xec lsls r6, r6, #1 adds r0, r2, r6 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] movs r3, #0xed lsls r3, r3, #1 adds r0, r2, r3 strh r1, [r0] _0801F4F6: ldr r5, _0801F54C @ =0x020314E0 ldr r4, [r5] ldr r6, _0801F550 @ =0x00000614 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0xe1 lsls r2, r2, #1 adds r0, r0, r2 _0801F508: movs r1, #0xa bl __divsi3 ldr r1, _0801F554 @ =0x0000061A adds r4, r4, r1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _0801F520 movs r0, #5 strh r0, [r4] _0801F520: ldr r4, [r5] movs r3, #0xc3 lsls r3, r3, #3 adds r0, r4, r3 ldrh r0, [r0] lsls r0, r0, #4 adds r1, r4, r1 movs r5, #0 ldrsh r1, [r1, r5] bl __divsi3 ldr r6, _0801F558 @ =0x000001E5 adds r1, r4, r6 strb r0, [r1] b _0801F58A .align 2, 0 _0801F540: .4byte 0x02032FB0 _0801F544: .4byte 0x0869F240 _0801F548: .4byte 0x0000061C _0801F54C: .4byte 0x020314E0 _0801F550: .4byte 0x00000614 _0801F554: .4byte 0x0000061A _0801F558: .4byte 0x000001E5 _0801F55C: ldr r0, _0801F598 @ =0x000001E5 adds r5, r4, r0 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 ble _0801F58A movs r1, #0xc3 lsls r1, r1, #3 adds r4, r4, r1 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldrh r0, [r4] movs r1, #0x28 bl __umodsi3 strh r0, [r4] ldrh r0, [r4] lsls r0, r0, #4 movs r1, #0x28 bl __divsi3 strb r0, [r5] _0801F58A: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801F598: .4byte 0x000001E5 thumb_func_start sub_1F59C sub_1F59C: @ 0x0801F59C push {r4, r5, r6, r7, lr} ldr r3, _0801F5D4 @ =0x020314E0 ldr r4, [r3] ldr r1, _0801F5D8 @ =0x000001E5 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r2, _0801F5DC @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r6, [r0, #0x7c] adds r0, r4, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xce subs r0, r0, r1 strh r0, [r6, #2] ldrb r0, [r2, #4] cmp r0, #0 bne _0801F5E0 adds r0, r4, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0xae b _0801F5E8 .align 2, 0 _0801F5D4: .4byte 0x020314E0 _0801F5D8: .4byte 0x000001E5 _0801F5DC: .4byte 0x0200B0C0 _0801F5E0: adds r0, r4, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x9a _0801F5E8: subs r0, r0, r1 strh r0, [r6, #4] ldr r1, [r3] ldr r2, _0801F678 @ =0x000001E5 adds r0, r1, r2 movs r3, #0xf3 lsls r3, r3, #1 adds r2, r1, r3 ldrb r3, [r0] movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0 ldrsb r0, [r2, r0] cmp r1, r0 beq _0801F624 strb r3, [r2] ldr r2, _0801F67C @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _0801F680 @ =0x084FA48C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F684 @ =0x06010780 str r0, [r2, #4] ldr r0, _0801F688 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] _0801F624: movs r0, #0 ldr r7, _0801F68C @ =0x03005000 ldr r1, _0801F690 @ =0xFFFFFE00 mov ip, r1 _0801F62C: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0801F694 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0801F62C pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801F678: .4byte 0x000001E5 _0801F67C: .4byte 0x040000D4 _0801F680: .4byte 0x084FA48C _0801F684: .4byte 0x06010780 _0801F688: .4byte 0x80000090 _0801F68C: .4byte 0x03005000 _0801F690: .4byte 0xFFFFFE00 _0801F694: .4byte 0x000001FF thumb_func_start sub_1F698 sub_1F698: @ 0x0801F698 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r2, #0 ldr r7, _0801F6EC @ =0x0200BDC8 ldr r0, _0801F6F0 @ =0x020314E0 ldr r4, [r0] movs r1, #0xaf lsls r1, r1, #2 adds r3, r4, r1 ldrh r1, [r3] mov sb, r0 cmp r1, #0x3b bhi _0801F712 adds r0, r1, #0 subs r0, #0x1b lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x13 bhi _0801F704 ldrh r0, [r3] subs r0, #0x1b movs r1, #5 bl __divsi3 ldr r2, _0801F6F4 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, _0801F6F8 @ =0x083C562C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F6FC @ =0x06014280 str r0, [r2, #4] ldr r0, _0801F700 @ =0x80000080 str r0, [r2, #8] ldr r0, [r2, #8] adds r0, r4, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xb0 b _0801F760 .align 2, 0 _0801F6EC: .4byte 0x0200BDC8 _0801F6F0: .4byte 0x020314E0 _0801F6F4: .4byte 0x040000D4 _0801F6F8: .4byte 0x083C562C _0801F6FC: .4byte 0x06014280 _0801F700: .4byte 0x80000080 _0801F704: strh r2, [r7] mov r2, sb ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xb0 b _0801F760 _0801F712: adds r0, r1, #0 subs r0, #0x64 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x13 bhi _0801F754 ldrh r0, [r3] subs r0, #0x64 movs r1, #5 bl __divsi3 ldr r2, _0801F744 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #8 ldr r1, _0801F748 @ =0x083C562C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F74C @ =0x06014280 str r0, [r2, #4] ldr r0, _0801F750 @ =0x80000080 str r0, [r2, #8] ldr r0, [r2, #8] adds r0, r4, #0 b _0801F75A .align 2, 0 _0801F744: .4byte 0x040000D4 _0801F748: .4byte 0x083C562C _0801F74C: .4byte 0x06014280 _0801F750: .4byte 0x80000080 _0801F754: strh r2, [r7] mov r3, sb ldr r0, [r3] _0801F75A: adds r0, #0x58 ldrh r1, [r0] movs r0, #0x20 _0801F760: subs r0, r0, r1 strh r0, [r7, #2] ldrh r0, [r7] ldr r1, _0801F880 @ =0x0200BD10 mov r8, r1 cmp r0, #0 beq _0801F7D8 mov r2, sb ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r3, #0x94 lsls r3, r3, #1 adds r0, r3, #0 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _0801F78C movs r0, #0xb4 strh r0, [r7, #4] _0801F78C: movs r0, #0 ldr r6, _0801F884 @ =0x03005000 ldr r1, _0801F888 @ =0xFFFFFE00 mov ip, r1 _0801F794: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0801F88C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0801F794 _0801F7D8: mov r7, r8 ldrh r0, [r7] cmp r0, #0 bne _0801F7E2 b _0801FA26 _0801F7E2: mov r0, sb ldr r3, [r0] movs r6, #0xaf lsls r6, r6, #2 adds r1, r3, r6 ldrh r0, [r1] cmp r0, #0x77 bls _0801F7F4 b _0801F990 _0801F7F4: movs r1, #7 ands r0, r1 cmp r0, #0 bne _0801F802 movs r0, #0xc6 bl m4aSongNumStart _0801F802: mov r1, sb ldr r0, [r1] adds r0, r0, r6 ldrh r0, [r0] movs r1, #0xf ands r0, r1 ldr r2, _0801F890 @ =0x040000D4 lsrs r0, r0, #2 lsls r0, r0, #7 ldr r1, _0801F894 @ =0x083C542C adds r0, r0, r1 str r0, [r2] ldr r0, _0801F898 @ =0x06014200 str r0, [r2, #4] ldr r0, _0801F89C @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, sb ldr r4, [r2] adds r5, r4, r6 ldrh r0, [r5] lsls r0, r0, #0x10 movs r1, #0x5a bl __divsi3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r3, #0xae lsls r3, r3, #2 adds r0, r4, r3 ldrh r1, [r0] subs r1, #2 strh r1, [r0] movs r0, #0xad lsls r0, r0, #2 adds r4, r4, r0 ldrh r0, [r4] adds r0, r0, r1 strh r0, [r4] ldrh r0, [r5] cmp r0, #0x1d bhi _0801F8A8 adds r0, r2, #0 bl sub_C24 adds r1, r0, #0 mov r2, sb ldr r4, [r2] adds r5, r4, r6 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 ldr r1, _0801F8A0 @ =0x00004E20 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 ldr r3, _0801F8A4 @ =0x000002B6 adds r4, r4, r3 strh r1, [r4] b _0801F8CC .align 2, 0 _0801F880: .4byte 0x0200BD10 _0801F884: .4byte 0x03005000 _0801F888: .4byte 0xFFFFFE00 _0801F88C: .4byte 0x000001FF _0801F890: .4byte 0x040000D4 _0801F894: .4byte 0x083C542C _0801F898: .4byte 0x06014200 _0801F89C: .4byte 0x80000040 _0801F8A0: .4byte 0x00004E20 _0801F8A4: .4byte 0x000002B6 _0801F8A8: adds r0, r2, #0 bl sub_C24 adds r1, r0, #0 mov r0, sb ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 ldr r1, _0801F910 @ =0x00004E20 bl __divsi3 adds r0, #0x1e ldr r1, _0801F914 @ =0x000002B6 adds r4, r4, r1 strh r0, [r4] _0801F8CC: ldr r2, _0801F918 @ =0x020314E0 ldr r1, [r2] movs r3, #0xaf lsls r3, r3, #2 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r2 cmp r0, #0x1b bne _0801F934 ldr r0, _0801F91C @ =0x0200B0C0 ldr r1, _0801F920 @ =0x00000D08 adds r0, r0, r1 movs r1, #1 strh r1, [r0] movs r0, #0xc7 bl m4aSongNumStart mov r2, sb ldr r0, [r2] movs r3, #0xb9 lsls r3, r3, #2 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801F924 adds r0, r2, #1 strb r0, [r1] b _0801F934 .align 2, 0 _0801F910: .4byte 0x00004E20 _0801F914: .4byte 0x000002B6 _0801F918: .4byte 0x020314E0 _0801F91C: .4byte 0x0200B0C0 _0801F920: .4byte 0x00000D08 _0801F924: movs r0, #2 strb r0, [r1] mov r1, sb ldr r0, [r1] ldr r2, _0801F96C @ =0x000002EA adds r0, r0, r2 movs r1, #0xbe strh r1, [r0] _0801F934: mov r3, sb ldr r0, [r3] movs r1, #0xaf lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x64 bne _0801F9B6 ldr r0, _0801F970 @ =0x0200B0C0 ldr r2, _0801F974 @ =0x00000D08 adds r0, r0, r2 movs r1, #1 strh r1, [r0] movs r0, #0xc7 bl m4aSongNumStart mov r3, sb ldr r0, [r3] ldr r2, _0801F978 @ =0x000002E3 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0801F97C adds r0, r2, #1 strb r0, [r1] b _0801F9B6 .align 2, 0 _0801F96C: .4byte 0x000002EA _0801F970: .4byte 0x0200B0C0 _0801F974: .4byte 0x00000D08 _0801F978: .4byte 0x000002E3 _0801F97C: movs r0, #2 strb r0, [r1] mov r3, sb ldr r0, [r3] movs r1, #0xba lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0xbe strh r1, [r0] b _0801F9B6 _0801F990: movs r2, #0 strh r2, [r1] movs r1, #0xad lsls r1, r1, #2 adds r0, r3, r1 strh r2, [r0] ldr r0, _0801FA34 @ =0x000002B6 adds r1, r3, r0 movs r0, #0xbe strh r0, [r1] movs r0, #0xae lsls r0, r0, #2 adds r1, r3, r0 movs r0, #0x64 strh r0, [r1] ldr r1, _0801FA38 @ =0x000002BA adds r0, r3, r1 strh r2, [r0] strh r2, [r7] _0801F9B6: mov r2, sb ldr r4, [r2] movs r3, #0xad lsls r3, r3, #2 adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x14 bl __divsi3 adds r0, #0x47 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r2, _0801FA34 @ =0x000002B6 adds r0, r4, r2 ldrh r0, [r0] adds r0, #0xf8 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xbe ble _0801F9F2 movs r0, #0xbe strh r0, [r7, #4] _0801F9F2: adds r5, r7, #0 adds r5, #8 ldr r4, _0801FA3C @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r3, _0801FA40 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0801FA44 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _0801FA26: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801FA34: .4byte 0x000002B6 _0801FA38: .4byte 0x000002BA _0801FA3C: .4byte 0x03005000 _0801FA40: .4byte 0x000001FF _0801FA44: .4byte 0xFFFFFE00 thumb_func_start sub_1FA48 sub_1FA48: @ 0x0801FA48 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r7, _0801FAD0 @ =0x0200D9D0 ldr r0, _0801FAD4 @ =0x020314E0 ldr r6, [r0] ldr r1, _0801FAD8 @ =0x000002B2 mov sb, r1 adds r1, r6, r1 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #0 beq _0801FAF0 ldr r5, _0801FADC @ =0x086ADA58 movs r2, #0xac lsls r2, r2, #2 mov r8, r2 adds r0, r6, r2 ldrh r4, [r0] adds r0, r4, #0 movs r1, #5 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r5 ldrh r3, [r0] cmp r4, #0x28 bne _0801FABA movs r1, #0xaf lsls r1, r1, #2 adds r0, r6, r1 movs r1, #0 strh r1, [r0] movs r2, #0xad lsls r2, r2, #2 adds r0, r6, r2 strh r1, [r0] adds r2, #2 adds r0, r6, r2 strh r1, [r0] movs r0, #0xae lsls r0, r0, #2 adds r2, r6, r0 movs r0, #0x64 strh r0, [r2] ldr r2, _0801FAE0 @ =0x000002BA adds r0, r6, r2 strh r1, [r0] ldr r0, _0801FAE4 @ =0xFFFFE340 adds r1, r7, r0 movs r0, #1 strh r0, [r1] _0801FABA: mov r2, sl ldr r1, [r2] mov r0, r8 adds r2, r1, r0 ldrh r0, [r2] cmp r0, #0x35 bhi _0801FAE8 adds r0, #1 strh r0, [r2] b _0801FB12 .align 2, 0 _0801FAD0: .4byte 0x0200D9D0 _0801FAD4: .4byte 0x020314E0 _0801FAD8: .4byte 0x000002B2 _0801FADC: .4byte 0x086ADA58 _0801FAE0: .4byte 0x000002BA _0801FAE4: .4byte 0xFFFFE340 _0801FAE8: add r1, sb movs r0, #0 strb r0, [r1] b _0801FB12 _0801FAF0: ldr r1, _0801FBA4 @ =0xFFFFD6F0 adds r0, r7, r1 ldr r0, [r0, #0x4c] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 movs r2, #0xde lsls r2, r2, #1 adds r0, r6, r2 ldrh r0, [r0] cmp r0, #1 bne _0801FB2E _0801FB12: ldr r2, _0801FBA8 @ =0x040000D4 lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0801FBAC @ =0x083C3C2C adds r0, r0, r1 str r0, [r2] ldr r0, _0801FBB0 @ =0x06012720 str r0, [r2, #4] ldr r0, _0801FBB4 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] _0801FB2E: mov r0, sl ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x37 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0xdd subs r0, r0, r1 strh r0, [r7, #4] movs r0, #0 ldr r6, _0801FBB8 @ =0x03005000 ldr r1, _0801FBBC @ =0xFFFFFE00 mov ip, r1 _0801FB50: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r7, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r6 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0801FBC0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _0801FB50 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801FBA4: .4byte 0xFFFFD6F0 _0801FBA8: .4byte 0x040000D4 _0801FBAC: .4byte 0x083C3C2C _0801FBB0: .4byte 0x06012720 _0801FBB4: .4byte 0x80000180 _0801FBB8: .4byte 0x03005000 _0801FBBC: .4byte 0xFFFFFE00 _0801FBC0: .4byte 0x000001FF thumb_func_start sub_1FBC4 sub_1FBC4: @ 0x0801FBC4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0801FC74 @ =0x020314E0 ldr r2, [r4] ldr r5, _0801FC78 @ =0x000002C2 adds r3, r2, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _0801FC7C @ =0x086ADA6E adds r7, r0, r1 ldr r0, _0801FC80 @ =0x0200DCB0 mov sb, r0 adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #9 subs r0, r0, r1 movs r1, #0 mov r8, r1 mov r6, sb strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r1, [r0] movs r6, #0x90 lsls r6, r6, #1 adds r0, r6, #0 subs r0, r0, r1 mov r1, sb strh r0, [r1, #4] ldr r6, _0801FC84 @ =0x000002BE mov ip, r6 adds r1, r2, r6 ldr r6, _0801FC88 @ =0x000006BD adds r0, r2, r6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 ble _0801FCDC ldr r0, _0801FC8C @ =0x000006BE mov sl, r0 adds r0, r2, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0801FC38 b _0801FDFC _0801FC38: adds r6, #3 adds r0, r2, r6 ldrh r0, [r0] cmp r0, #0 bne _0801FC5A movs r0, #0x3b strb r0, [r3] ldr r1, [r4] movs r2, #0xb0 lsls r2, r2, #2 adds r0, r1, r2 movs r3, #0 strh r3, [r0] adds r1, r1, r6 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0801FC5A: movs r1, #2 ldrsh r0, [r7, r1] ldr r1, [r4] movs r3, #0xb0 lsls r3, r3, #2 adds r2, r1, r3 ldrh r3, [r2] cmp r0, r3 ble _0801FC90 adds r0, r3, #1 strh r0, [r2] b _0801FDFC .align 2, 0 _0801FC74: .4byte 0x020314E0 _0801FC78: .4byte 0x000002C2 _0801FC7C: .4byte 0x086ADA6E _0801FC80: .4byte 0x0200DCB0 _0801FC84: .4byte 0x000002BE _0801FC88: .4byte 0x000006BD _0801FC8C: .4byte 0x000006BE _0801FC90: movs r0, #1 strh r0, [r2] adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r4] adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x54 bne _0801FCC2 mov r0, r8 strb r0, [r1] ldr r0, [r4] add r0, sl mov r1, r8 strb r1, [r0] ldr r0, [r4] adds r1, r0, r6 movs r2, #0 strh r2, [r1] add r0, ip mov r3, r8 strb r3, [r0] _0801FCC2: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x3c beq _0801FD8E cmp r0, #0x45 beq _0801FD8E cmp r0, #0x4e beq _0801FCDA b _0801FDFC _0801FCDA: b _0801FD8E _0801FCDC: cmp r1, r0 bge _0801FD96 movs r1, #2 ldrsh r0, [r7, r1] mov r8, r0 movs r0, #0xb0 lsls r0, r0, #2 adds r1, r2, r0 ldrh r2, [r1] cmp r8, r2 bgt _0801FDAC movs r0, #1 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] adds r0, r1, r6 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 bne _0801FD32 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _0801FD22 add r1, ip movs r0, #1 strb r0, [r1] ldr r0, [r4] adds r0, r0, r5 movs r1, #0x54 strb r1, [r0] _0801FD22: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0801FDFC b _0801FD8E _0801FD32: cmp r2, #2 bne _0801FD60 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 bne _0801FD50 mov r3, ip adds r0, r1, r3 strb r2, [r0] ldr r0, [r4] adds r0, r0, r5 movs r1, #0x5f strb r1, [r0] _0801FD50: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0801FDFC b _0801FD8E _0801FD60: cmp r2, #3 bne _0801FDFC adds r0, r1, r5 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0x23 bne _0801FD80 mov r6, ip adds r0, r1, r6 strb r2, [r0] ldr r0, [r4] adds r0, r0, r5 strb r3, [r0] movs r0, #7 bl sub_19B64 _0801FD80: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 bne _0801FDFC _0801FD8E: movs r0, #0xd2 bl m4aSongNumStart b _0801FDFC _0801FD96: cmp r0, #0 beq _0801FDFC movs r1, #2 ldrsh r0, [r7, r1] mov r8, r0 movs r0, #0xb0 lsls r0, r0, #2 adds r1, r2, r0 ldrh r2, [r1] cmp r8, r2 ble _0801FDB2 _0801FDAC: adds r0, r2, #1 strh r0, [r1] b _0801FDFC _0801FDB2: movs r0, #1 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0801FDD8 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x5f bne _0801FDFC movs r0, #0x54 b _0801FDFA _0801FDD8: cmp r0, #2 bne _0801FDEA adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x6d bne _0801FDFC movs r0, #0x5f b _0801FDFA _0801FDEA: cmp r0, #3 bne _0801FDFC adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x3c bne _0801FDFC movs r0, #0x23 _0801FDFA: strb r0, [r1] _0801FDFC: ldrh r5, [r7] ldr r2, _0801FEE4 @ =0x040000D4 movs r3, #4 ldrsh r1, [r7, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r4, _0801FEE8 @ =0x08447A8C adds r0, r0, r4 str r0, [r2] ldr r0, _0801FEEC @ =0x06013B80 str r0, [r2, #4] ldr r3, _0801FEF0 @ =0x800000C0 str r3, [r2, #8] ldr r0, [r2, #8] movs r6, #6 ldrsh r1, [r7, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 adds r0, r0, r4 str r0, [r2] ldr r0, _0801FEF4 @ =0x06013A00 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] movs r0, #8 ldrsh r1, [r7, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 adds r0, r0, r4 str r0, [r2] ldr r0, _0801FEF8 @ =0x06013880 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r2, _0801FEFC @ =0x03005000 mov ip, r2 ldr r3, _0801FF00 @ =0x086B2FC0 mov sl, r3 lsls r5, r5, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #3 adds r0, r0, r5 lsls r6, r0, #2 ldr r5, _0801FF04 @ =0xFFFFFE00 mov r8, r5 _0801FE5E: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 add r1, sl ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r7, [r2, #2] lsls r1, r7, #0x17 lsrs r1, r1, #0x17 mov r5, sb movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _0801FF08 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 ldrh r7, [r2, #2] ands r0, r7 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r1] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _0801FE5E pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0801FEE4: .4byte 0x040000D4 _0801FEE8: .4byte 0x08447A8C _0801FEEC: .4byte 0x06013B80 _0801FEF0: .4byte 0x800000C0 _0801FEF4: .4byte 0x06013A00 _0801FEF8: .4byte 0x06013880 _0801FEFC: .4byte 0x03005000 _0801FF00: .4byte 0x086B2FC0 _0801FF04: .4byte 0xFFFFFE00 _0801FF08: .4byte 0x000001FF thumb_func_start sub_1FF0C sub_1FF0C: @ 0x0801FF0C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r1, #0 ldr r6, _0801FF70 @ =0x020314E0 mov sb, r6 ldr r0, _0801FF74 @ =0x000002E3 mov sl, r0 movs r2, #0xba lsls r2, r2, #2 mov r8, r2 movs r3, #0xbb lsls r3, r3, #2 mov ip, r3 _0801FF2E: mov r4, sb ldr r3, [r4] lsls r0, r1, #0x10 asrs r5, r0, #0x10 mov r7, sl adds r1, r3, r7 adds r1, r1, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 str r0, [sp] cmp r1, #0 ble _08020012 ldr r1, _0801FF78 @ =0x000002E5 adds r0, r3, r1 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r1, r1, #2 ldr r2, _0801FF7C @ =0x086ADEB2 adds r1, r1, r2 lsls r2, r5, #1 mov r7, r8 adds r0, r3, r7 adds r2, r0, r2 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0801FF80 adds r0, r3, #1 strh r0, [r2] b _0801FFAE .align 2, 0 _0801FF70: .4byte 0x020314E0 _0801FF74: .4byte 0x000002E3 _0801FF78: .4byte 0x000002E5 _0801FF7C: .4byte 0x086ADEB2 _0801FF80: movs r3, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] mov r1, sb ldr r0, [r1] ldr r2, _08020070 @ =0x000002E5 adds r0, r0, r2 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb ble _0801FFAE strb r3, [r1] mov r3, sb ldr r1, [r3] add r1, sl adds r1, r1, r5 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801FFAE: ldr r3, [r6] ldr r7, [sp] asrs r4, r7, #0x10 ldr r5, _08020070 @ =0x000002E5 adds r0, r3, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0801FFD8 lsls r2, r4, #1 mov r0, ip adds r1, r3, r0 adds r1, r1, r2 mov r7, r8 adds r0, r3, r7 adds r0, r0, r2 ldrh r0, [r0] lsrs r0, r0, #1 strh r0, [r1] _0801FFD8: ldr r1, [r6] adds r0, r1, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r3, r4, #1 cmp r0, #0xb bne _08020000 mov r0, ip adds r2, r1, r0 adds r2, r2, r3 mov r4, r8 adds r0, r1, r4 adds r0, r0, r3 ldrh r1, [r0] lsrs r1, r1, #1 movs r0, #0xe subs r0, r0, r1 strh r0, [r2] _08020000: ldr r0, [r6] add r0, ip adds r2, r0, r3 movs r7, #0 ldrsh r0, [r2, r7] cmp r0, #2 bgt _08020012 movs r0, #3 strh r0, [r2] _08020012: ldr r1, [sp] movs r2, #0x80 lsls r2, r2, #9 adds r0, r1, r2 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0801FF2E ldr r1, [r6] ldr r3, _08020074 @ =0x000002E2 adds r0, r1, r3 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _08020032 b _0802018E _08020032: cmp r3, #1 bne _08020120 movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #7 bne _08020040 b _08020136 _08020040: cmp r0, #2 bgt _080200C4 ldr r4, _08020078 @ =0x000006BD adds r1, r1, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08020136 adds r0, r2, #1 movs r2, #0 strb r0, [r1] ldr r1, [r6] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08020080 ldr r7, _0802007C @ =0x000002C2 adds r0, r1, r7 strb r2, [r0] b _08020110 .align 2, 0 _08020070: .4byte 0x000002E5 _08020074: .4byte 0x000002E2 _08020078: .4byte 0x000006BD _0802007C: .4byte 0x000002C2 _08020080: cmp r0, #2 bne _0802009C ldr r3, _08020098 @ =0x000002C2 adds r1, r1, r3 movs r0, #0xc strb r0, [r1] ldr r0, [r6] movs r4, #0xb0 lsls r4, r4, #2 adds r0, r0, r4 strh r2, [r0] b _08020136 .align 2, 0 _08020098: .4byte 0x000002C2 _0802009C: cmp r0, #3 bne _08020136 ldr r7, _080200BC @ =0x000002C2 adds r1, r1, r7 movs r0, #0x18 strb r0, [r1] ldr r0, [r6] movs r4, #0xb0 lsls r4, r4, #2 adds r1, r0, r4 strh r2, [r1] ldr r7, _080200C0 @ =0x000006C2 adds r0, r0, r7 strh r3, [r0] b _08020136 .align 2, 0 _080200BC: .4byte 0x000002C2 _080200C0: .4byte 0x000006C2 _080200C4: ldr r0, _080200FC @ =0x000006BD adds r1, r1, r0 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08020136 adds r0, r2, #1 movs r2, #0 strb r0, [r1] ldr r1, [r6] ldr r3, _080200FC @ =0x000006BD adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08020104 ldr r4, _08020100 @ =0x000002C2 adds r0, r1, r4 strb r2, [r0] ldr r0, [r6] movs r7, #0xb0 lsls r7, r7, #2 adds r0, r0, r7 strh r2, [r0] b _08020136 .align 2, 0 _080200FC: .4byte 0x000006BD _08020100: .4byte 0x000002C2 _08020104: cmp r0, #2 bne _08020136 ldr r0, _0802011C @ =0x000002C2 adds r1, r1, r0 movs r0, #0xc strb r0, [r1] _08020110: ldr r0, [r6] movs r1, #0xb0 lsls r1, r1, #2 adds r0, r0, r1 strh r2, [r0] b _08020136 .align 2, 0 _0802011C: .4byte 0x000002C2 _08020120: movs r2, #0xc0 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08020132 movs r0, #1 b _08020134 _08020132: movs r0, #0 _08020134: strb r0, [r1] _08020136: ldr r0, [r6] ldr r3, _080201A0 @ =0x000002E3 adds r0, r0, r3 movs r4, #0 strb r4, [r0] ldr r0, [r6] movs r7, #0xb9 lsls r7, r7, #2 adds r0, r0, r7 strb r4, [r0] ldr r0, [r6] ldr r1, _080201A4 @ =0x000002E2 adds r0, r0, r1 strb r4, [r0] movs r0, #7 bl sub_11B0 movs r0, #0xb7 bl m4aSongNumStart ldr r0, [r6] ldr r1, _080201A8 @ =0x00000BB8 str r1, [r0, #0x3c] ldr r2, _080201AC @ =0x000002E5 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] ldr r3, _080201B0 @ =0x000002E6 adds r0, r0, r3 strb r4, [r0] ldr r1, [r6] adds r7, #4 adds r0, r1, r7 strh r4, [r0] adds r2, #5 adds r0, r1, r2 strh r4, [r0] adds r3, #6 adds r0, r1, r3 movs r2, #3 strh r2, [r0] ldr r4, _080201B4 @ =0x000002EE adds r1, r1, r4 strh r2, [r1] _0802018E: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080201A0: .4byte 0x000002E3 _080201A4: .4byte 0x000002E2 _080201A8: .4byte 0x00000BB8 _080201AC: .4byte 0x000002E5 _080201B0: .4byte 0x000002E6 _080201B4: .4byte 0x000002EE thumb_func_start sub_201B8 sub_201B8: @ 0x080201B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r1, #0 ldr r0, _080202D0 @ =0x020314E0 mov sl, r0 ldr r2, _080202D4 @ =0x040000D4 mov r8, r2 _080201CC: mov r3, sl ldr r0, [r3] lsls r1, r1, #0x10 asrs r3, r1, #0x10 ldr r4, _080202D8 @ =0x000002E5 adds r0, r0, r4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r5, _080202DC @ =0x086ADEB0 adds r0, r0, r5 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #8 ldr r4, _080202E0 @ =0x0847FD0C adds r0, r0, r4 mov r5, r8 str r0, [r5] lsls r0, r3, #8 ldr r2, _080202E4 @ =0x06012A20 adds r0, r0, r2 str r0, [r5, #4] ldr r0, _080202E8 @ =0x80000080 str r0, [r5, #8] ldr r0, [r5, #8] movs r0, #0xb8 muls r0, r3, r0 ldr r4, _080202EC @ =0x0200DE20 adds r6, r0, r4 ldrh r0, [r6] mov sb, r1 cmp r0, #0 beq _0802029A lsls r1, r3, #4 subs r1, r1, r3 lsls r1, r1, #3 adds r1, #0x30 mov r5, sl ldr r4, [r5] adds r0, r4, #0 adds r0, #0x58 ldrh r0, [r0] subs r1, r1, r0 lsls r3, r3, #1 movs r2, #1 subs r2, r2, r3 movs r5, #0xbb lsls r5, r5, #2 adds r0, r4, r5 adds r0, r0, r3 movs r3, #0 ldrsh r0, [r0, r3] subs r0, #0xe muls r0, r2, r0 adds r1, r1, r0 strh r1, [r6, #2] adds r0, r4, #0 adds r0, #0x5a ldrh r1, [r0] ldr r4, _080202F0 @ =0x0000012D adds r0, r4, #0 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _080202F4 @ =0x03005000 ldr r5, _080202F8 @ =0xFFFFFE00 mov ip, r5 _08020256: lsls r3, r0, #0x10 asrs r3, r3, #0x10 lsls r5, r3, #3 adds r5, #8 adds r5, r6, r5 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r4, _080202FC @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r0, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08020256 _0802029A: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080201CC mov r5, sl ldr r2, [r5] ldr r0, _08020300 @ =0x000006C2 adds r1, r2, r0 ldrh r0, [r1] cmp r0, #0 beq _08020398 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08020398 adds r2, #0xe4 ldrb r0, [r2] cmp r0, #0 beq _08020304 movs r0, #1 strh r0, [r1] b _08020308 .align 2, 0 _080202D0: .4byte 0x020314E0 _080202D4: .4byte 0x040000D4 _080202D8: .4byte 0x000002E5 _080202DC: .4byte 0x086ADEB0 _080202E0: .4byte 0x0847FD0C _080202E4: .4byte 0x06012A20 _080202E8: .4byte 0x80000080 _080202EC: .4byte 0x0200DE20 _080202F0: .4byte 0x0000012D _080202F4: .4byte 0x03005000 _080202F8: .4byte 0xFFFFFE00 _080202FC: .4byte 0x000001FF _08020300: .4byte 0x000006C2 _08020304: movs r0, #4 strb r0, [r2] _08020308: mov r1, sl ldr r4, [r1] ldr r2, _080203A8 @ =0x000006C2 adds r0, r4, r2 ldrh r5, [r0] cmp r5, #0 bne _08020398 ldr r2, _080203AC @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r1, r4, #0 adds r1, #0xea movs r3, #0 movs r0, #0x46 strh r0, [r1] adds r1, #2 movs r0, #0xa0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r5, [r0] subs r0, #2 strh r5, [r0] adds r0, #8 strh r5, [r0] adds r1, #6 movs r0, #4 strb r0, [r1] mov r4, sl ldr r0, [r4] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r4] adds r0, #0xfb strb r3, [r0] ldr r3, [r4] adds r1, r3, #0 adds r1, #0xf4 movs r0, #0x78 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf6 strh r5, [r0] subs r1, #4 movs r0, #0x32 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf8 strh r5, [r0] ldr r1, _080203B0 @ =0x040000D4 ldr r0, _080203B4 @ =0x086ACEF8 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _080203B8 @ =0x06015800 str r0, [r1, #4] ldr r0, _080203BC @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080203C0 @ =0x086ACF18 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _080203C4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _080203C8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _08020398: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080203A8: .4byte 0x000006C2 _080203AC: .4byte 0x0200B0C0 _080203B0: .4byte 0x040000D4 _080203B4: .4byte 0x086ACEF8 _080203B8: .4byte 0x06015800 _080203BC: .4byte 0x80001200 _080203C0: .4byte 0x086ACF18 _080203C4: .4byte 0x050003C0 _080203C8: .4byte 0x80000010 thumb_func_start sub_203CC sub_203CC: @ 0x080203CC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} bl sub_20EC0 ldr r6, _0802042C @ =0x020314E0 ldr r5, [r6] movs r1, #0xe3 lsls r1, r1, #1 adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xa7 ble _0802044C ldr r4, _08020430 @ =0x086ADF48 ldr r0, _08020434 @ =0x0200B0C0 ldr r0, [r0, #0x50] movs r1, #0xa0 bl __umodsi3 movs r1, #5 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] ldr r3, _08020438 @ =0x00000744 adds r0, r5, r3 strb r1, [r0] ldr r2, [r6] movs r4, #0xf1 lsls r4, r4, #1 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020440 adds r0, r2, r3 ldrb r0, [r0] adds r0, #6 ldr r5, _0802043C @ =0x00000745 adds r1, r2, r5 strb r0, [r1] b _0802049C .align 2, 0 _0802042C: .4byte 0x020314E0 _08020430: .4byte 0x086ADF48 _08020434: .4byte 0x0200B0C0 _08020438: .4byte 0x00000744 _0802043C: .4byte 0x00000745 _08020440: ldr r7, _08020448 @ =0x00000744 adds r0, r2, r7 b _08020494 .align 2, 0 _08020448: .4byte 0x00000744 _0802044C: ldr r0, _08020484 @ =0x0200B0C0 ldr r0, [r0, #0x50] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 ldr r4, _08020488 @ =0x00000744 adds r1, r5, r4 strb r0, [r1] ldr r2, [r6] movs r5, #0xf1 lsls r5, r5, #1 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020490 adds r0, r2, r4 ldrb r0, [r0] adds r0, #9 ldr r7, _0802048C @ =0x00000745 adds r1, r2, r7 strb r0, [r1] b _0802049C .align 2, 0 _08020484: .4byte 0x0200B0C0 _08020488: .4byte 0x00000744 _0802048C: .4byte 0x00000745 _08020490: ldr r1, _080204C8 @ =0x00000744 adds r0, r2, r1 _08020494: ldrb r1, [r0] ldr r3, _080204CC @ =0x00000745 adds r0, r2, r3 strb r1, [r0] _0802049C: ldr r1, _080204D0 @ =0x020314E0 ldr r5, [r1] movs r4, #0xf1 lsls r4, r4, #1 adds r3, r5, r4 movs r0, #0 ldrsb r0, [r3, r0] mov sl, r1 cmp r0, #2 bne _080204D8 ldr r7, _080204D4 @ =0x000001E3 adds r0, r5, r7 movs r1, #1 strb r1, [r0] mov r2, sl ldr r0, [r2] movs r3, #0xf2 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] b _08020500 .align 2, 0 _080204C8: .4byte 0x00000744 _080204CC: .4byte 0x00000745 _080204D0: .4byte 0x020314E0 _080204D4: .4byte 0x000001E3 _080204D8: movs r1, #0 ldrsb r1, [r3, r1] ldr r3, _0802060C @ =0x000001E3 adds r0, r5, r3 adds r0, r0, r1 movs r4, #0 movs r2, #1 strb r2, [r0] mov r5, sl ldr r0, [r5] movs r7, #0xf1 lsls r7, r7, #1 adds r1, r0, r7 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r2, r2, r1 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] _08020500: mov r0, sl ldr r1, [r0] movs r3, #0xe2 lsls r3, r3, #1 adds r2, r1, r3 ldrh r4, [r2] cmp r4, #0 bne _08020512 b _0802073A _08020512: cmp r4, #0x78 beq _08020518 b _080206CC _08020518: movs r5, #0xe1 lsls r5, r5, #1 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r1, r0 movs r7, #0xf1 lsls r7, r7, #1 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08020538 b _080206CC _08020538: movs r6, #0xe3 lsls r6, r6, #1 adds r0, r1, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0xa7 ble _08020630 movs r5, #0 movs r3, #1 strb r3, [r1, #0x1f] mov r7, sl ldr r0, [r7] ldr r1, _08020610 @ =0x0000061C adds r0, r0, r1 strb r3, [r0] ldr r1, [r7] movs r7, #0xef lsls r7, r7, #1 adds r2, r1, r7 movs r0, #0 mov r8, r0 strh r4, [r2] adds r7, #2 adds r0, r1, r7 strh r4, [r0] ldrh r2, [r2] ldr r4, _08020614 @ =0x0000061E adds r0, r1, r4 strh r2, [r0] ldr r7, _08020618 @ =0x000005F7 adds r1, r1, r7 strb r3, [r1] mov r1, sl ldr r0, [r1] movs r2, #0x82 lsls r2, r2, #2 adds r1, r0, r2 strh r5, [r1] ldr r3, _0802061C @ =0x0000020A adds r0, r0, r3 mov r4, r8 strb r4, [r0] mov r7, sl ldr r2, [r7] movs r1, #0xf1 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _080205E4 adds r0, r2, r6 strh r5, [r0] subs r3, #0x42 adds r0, r2, r3 strh r5, [r0] movs r4, #0xe6 lsls r4, r4, #1 adds r0, r2, r4 strh r5, [r0] movs r7, #0xe5 lsls r7, r7, #1 adds r0, r2, r7 strh r5, [r0] subs r1, #0xe adds r0, r2, r1 strh r5, [r0] adds r3, #0xe adds r1, r2, r3 ldr r0, _08020620 @ =0x0000FFFC strh r0, [r1] adds r4, #0xc adds r0, r2, r4 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] adds r7, #0x10 adds r0, r2, r7 strh r1, [r0] adds r1, #0xce adds r0, r2, r1 strh r5, [r0] subs r3, #6 adds r0, r2, r3 strh r5, [r0] _080205E4: mov r4, sl ldr r1, [r4] movs r5, #0xc4 lsls r5, r5, #3 adds r2, r1, r5 ldr r7, _08020624 @ =0x0000132C adds r0, r1, r7 ldr r0, [r0] ldr r0, [r0, #0x28] str r0, [r2] ldr r0, _08020628 @ =0x00007530 str r0, [r1, #0x3c] ldr r0, _0802062C @ =0x0000062E adds r1, r1, r0 ldrb r0, [r1] cmp r0, #0x62 bhi _0802063C adds r0, #1 strb r0, [r1] b _0802063C .align 2, 0 _0802060C: .4byte 0x000001E3 _08020610: .4byte 0x0000061C _08020614: .4byte 0x0000061E _08020618: .4byte 0x000005F7 _0802061C: .4byte 0x0000020A _08020620: .4byte 0x0000FFFC _08020624: .4byte 0x0000132C _08020628: .4byte 0x00007530 _0802062C: .4byte 0x0000062E _08020630: movs r0, #0x3c strh r0, [r2] ldr r0, _0802067C @ =0x02032F20 ldr r1, _08020680 @ =0x086A2FA0 bl MPlayStart _0802063C: ldr r0, _08020684 @ =0x020314E0 ldr r5, [r0] movs r2, #0xe1 lsls r2, r2, #1 adds r1, r5, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 movs r3, #0xf1 lsls r3, r3, #1 adds r1, r5, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov sl, r0 cmp r1, #2 bne _0802068C lsls r3, r2, #0x10 asrs r1, r3, #0x10 ldr r4, _08020688 @ =0x00000744 adds r2, r5, r4 adds r2, r2, r1 lsls r0, r1, #3 subs r0, r0, r1 adds r0, #2 strb r0, [r2] mov r8, r3 b _0802069C .align 2, 0 _0802067C: .4byte 0x02032F20 _08020680: .4byte 0x086A2FA0 _08020684: .4byte 0x020314E0 _08020688: .4byte 0x00000744 _0802068C: lsls r2, r2, #0x10 asrs r1, r2, #0x10 ldr r7, _08020700 @ =0x00000744 adds r0, r5, r7 adds r0, r0, r1 movs r1, #2 strb r1, [r0] mov r8, r2 _0802069C: ldr r3, _08020704 @ =0x040000D4 mov r1, sl ldr r0, [r1] mov r4, r8 asrs r2, r4, #0x10 ldr r5, _08020700 @ =0x00000744 adds r0, r0, r5 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08020708 @ =0x084C07EC adds r0, r0, r1 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r7, _0802070C @ =0x06010480 adds r0, r0, r7 str r0, [r3, #4] ldr r0, _08020710 @ =0x800000C0 str r0, [r3, #8] ldr r0, [r3, #8] _080206CC: mov r0, sl ldr r2, [r0] movs r1, #0xf1 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020714 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 ldr r4, _08020700 @ =0x00000744 adds r2, r2, r4 adds r2, r2, r0 lsls r1, r0, #3 subs r1, r1, r0 adds r1, #2 strb r1, [r2] b _0802072A .align 2, 0 _08020700: .4byte 0x00000744 _08020704: .4byte 0x040000D4 _08020708: .4byte 0x084C07EC _0802070C: .4byte 0x06010480 _08020710: .4byte 0x800000C0 _08020714: movs r5, #0xe1 lsls r5, r5, #1 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r2, r0 ldr r7, _080207B4 @ =0x00000743 adds r0, r0, r7 movs r1, #2 strb r1, [r0] _0802072A: mov r0, sl ldr r1, [r0] movs r2, #0xe2 lsls r2, r2, #1 adds r1, r1, r2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _0802073A: mov r3, sl ldr r5, [r3] ldr r4, _080207B8 @ =0x0000061C adds r0, r5, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0802074E b _08020D82 _0802074E: ldr r7, _080207BC @ =0x0000061E mov sb, r7 mov r0, sb adds r6, r5, r0 ldrh r7, [r6] mov r8, r7 mov r1, r8 cmp r1, #1 bhi _08020762 b _08020928 _08020762: movs r2, #0xef lsls r2, r2, #1 adds r4, r5, r2 ldrh r0, [r4] lsls r0, r0, #0x10 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 subs r0, r7, #1 strh r0, [r6] ldrh r0, [r4] cmp r0, #0 beq _08020796 subs r0, #1 strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x28 bne _08020796 ldrh r0, [r6] cmp r0, #0x28 bls _08020796 movs r0, #0x3c strh r0, [r4] _08020796: ldr r3, _080207C0 @ =0x020314E0 ldr r1, [r3] ldr r4, _080207BC @ =0x0000061E adds r2, r1, r4 ldrh r0, [r2] cmp r0, #0x74 bne _08020832 adds r1, #0xe4 ldrb r0, [r1] cmp r0, #0 beq _080207C4 movs r0, #0x78 strh r0, [r2] b _08020832 .align 2, 0 _080207B4: .4byte 0x00000743 _080207B8: .4byte 0x0000061C _080207BC: .4byte 0x0000061E _080207C0: .4byte 0x020314E0 _080207C4: movs r0, #1 strb r0, [r1] ldr r1, [r3] movs r7, #0xf1 lsls r7, r7, #1 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020820 movs r2, #0xe1 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080207FC ldr r0, _080207F4 @ =0x02032F20 ldr r1, _080207F8 @ =0x086A0328 bl MPlayStart b _08020804 .align 2, 0 _080207F4: .4byte 0x02032F20 _080207F8: .4byte 0x086A0328 _080207FC: ldr r0, _08020810 @ =0x02032F20 ldr r1, _08020814 @ =0x086A0368 bl MPlayStart _08020804: ldr r0, _08020818 @ =0x02032EE0 ldr r1, _0802081C @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl b _08020832 .align 2, 0 _08020810: .4byte 0x02032F20 _08020814: .4byte 0x086A0368 _08020818: .4byte 0x02032EE0 _0802081C: .4byte 0x0000FFFF _08020820: ldr r0, _08020900 @ =0x02032F20 ldr r1, _08020904 @ =0x086A0328 bl MPlayStart ldr r0, _08020908 @ =0x02032EE0 ldr r1, _0802090C @ =0x0000FFFF movs r2, #0x40 bl m4aMPlayVolumeControl _08020832: ldr r0, _08020910 @ =0x020314E0 ldr r1, [r0] ldr r3, _08020914 @ =0x0000061E adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x73 bne _08020856 adds r0, r1, #0 adds r0, #0xe4 ldrb r0, [r0] cmp r0, #1 bne _08020856 ldr r0, _08020900 @ =0x02032F20 ldr r1, _0802090C @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #2 bl m4aMPlayVolumeControl _08020856: adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 ldr r0, _08020910 @ =0x020314E0 ldr r4, [r0] ldr r5, _08020918 @ =0x0000132C adds r5, r5, r4 mov r8, r5 ldr r7, [r5] mov sb, r7 movs r0, #0xc4 lsls r0, r0, #3 adds r6, r4, r0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _0802091C @ =0x00004E20 bl __divsi3 ldrh r5, [r6] adds r5, r5, r0 ldr r1, _08020920 @ =0x086ADF8A movs r2, #0xe1 lsls r2, r2, #1 adds r0, r4, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #1 adds r0, r0, r1 movs r3, #0 ldrsh r2, [r0, r3] lsls r2, r2, #1 movs r7, #0 ldrsh r0, [r6, r7] subs r2, r2, r0 movs r0, #0xf0 lsls r0, r0, #1 adds r6, r4, r0 ldrh r1, [r6] movs r3, #0xef lsls r3, r3, #1 adds r7, r4, r3 ldrh r0, [r7] subs r0, r1, r0 muls r0, r2, r0 bl __divsi3 adds r5, r5, r0 mov r0, sb strh r5, [r0, #0x28] ldrh r1, [r6] ldrh r2, [r7] subs r2, r1, r2 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #3 bl __divsi3 mov r1, r8 ldr r2, [r1] ldr r3, _08020924 @ =0x00000622 adds r4, r4, r3 ldrh r1, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r1, r1, r0 strh r1, [r2, #0x2a] mov r4, r8 ldr r1, [r4] movs r5, #0x28 ldrsh r0, [r1, r5] lsls r0, r0, #7 str r0, [r1, #0x34] ldr r1, [r4] movs r7, #0x2a ldrsh r0, [r1, r7] lsls r0, r0, #7 str r0, [r1, #0x38] b _080209FE .align 2, 0 _08020900: .4byte 0x02032F20 _08020904: .4byte 0x086A0328 _08020908: .4byte 0x02032EE0 _0802090C: .4byte 0x0000FFFF _08020910: .4byte 0x020314E0 _08020914: .4byte 0x0000061E _08020918: .4byte 0x0000132C _0802091C: .4byte 0x00004E20 _08020920: .4byte 0x086ADF8A _08020924: .4byte 0x00000622 _08020928: mov r0, r8 cmp r0, #1 bne _080209FE ldr r1, _08020A3C @ =0x0000132C adds r2, r5, r1 ldr r3, [r2] ldr r1, _08020A40 @ =0x086ADF8A movs r4, #0xe1 lsls r4, r4, #1 adds r0, r5, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #1 adds r0, r0, r1 movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #1 movs r6, #0 movs r5, #0 strh r0, [r3, #0x28] ldr r1, [r2] ldr r0, _08020A44 @ =0x000002BE strh r0, [r1, #0x2a] ldr r1, [r2] movs r7, #0x28 ldrsh r0, [r1, r7] lsls r0, r0, #7 str r0, [r1, #0x34] ldr r1, [r2] movs r3, #0x2a ldrsh r0, [r1, r3] lsls r0, r0, #7 str r0, [r1, #0x38] ldr r0, [r2] strh r5, [r0, #0x30] ldr r1, [r2] ldr r0, _08020A48 @ =0x0000FED4 strh r0, [r1, #0x32] movs r0, #0x7c bl m4aSongNumStart mov r7, sl ldr r1, [r7] mov r2, sb adds r0, r1, r2 strh r5, [r0] strb r6, [r1, #0x1f] ldr r0, [r7] ldr r3, _08020A4C @ =0x000005F7 adds r0, r0, r3 strb r6, [r0] ldr r2, [r7] adds r4, r2, r4 movs r0, #0 ldrsb r0, [r4, r0] subs r0, #1 lsls r1, r0, #1 adds r1, r1, r0 movs r4, #0xe2 lsls r4, r4, #3 adds r2, r2, r4 adds r2, r2, r1 mov r5, r8 strb r5, [r2] ldr r3, [r7] ldr r7, _08020A50 @ =0x00000714 adds r4, r3, r7 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _080209F8 movs r1, #0xe2 lsls r1, r1, #3 adds r0, r3, r1 ldr r2, _08020A54 @ =0x00000711 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 ldr r5, _08020A58 @ =0x00000712 adds r1, r3, r5 ldrb r1, [r1] ands r0, r1 subs r7, #1 adds r1, r3, r7 ldrb r1, [r1] ands r0, r1 cmp r0, #0 beq _080209F8 mov r0, r8 strb r0, [r4] mov r1, sl ldr r0, [r1] ldr r2, _08020A5C @ =0x00000715 adds r0, r0, r2 movs r1, #0x7e strb r1, [r0] mov r3, sl ldr r1, [r3] movs r0, #0xfa lsls r0, r0, #4 str r0, [r1, #0x3c] _080209F8: movs r0, #0xb bl sub_11B0 _080209FE: ldr r0, _08020A60 @ =0x020314E0 ldr r3, [r0] ldr r4, _08020A64 @ =0x0000061E adds r1, r3, r4 ldrh r1, [r1] mov sl, r0 cmp r1, #0x63 bls _08020AFC movs r5, #0xf1 lsls r5, r5, #1 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020A6C movs r7, #0xe1 lsls r7, r7, #1 adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 ldr r1, _08020A68 @ =0x00000744 adds r2, r3, r1 adds r2, r2, r0 lsls r1, r0, #3 subs r1, r1, r0 adds r1, #2 strb r1, [r2] b _08020A82 .align 2, 0 _08020A3C: .4byte 0x0000132C _08020A40: .4byte 0x086ADF8A _08020A44: .4byte 0x000002BE _08020A48: .4byte 0x0000FED4 _08020A4C: .4byte 0x000005F7 _08020A50: .4byte 0x00000714 _08020A54: .4byte 0x00000711 _08020A58: .4byte 0x00000712 _08020A5C: .4byte 0x00000715 _08020A60: .4byte 0x020314E0 _08020A64: .4byte 0x0000061E _08020A68: .4byte 0x00000744 _08020A6C: movs r2, #0xe1 lsls r2, r2, #1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, r3, r0 ldr r3, _08020AC4 @ =0x00000743 adds r0, r0, r3 movs r1, #2 strb r1, [r0] _08020A82: mov r4, sl ldr r2, [r4] ldr r5, _08020AC8 @ =0x0000061E adds r0, r2, r5 ldrh r0, [r0] cmp r0, #0x64 beq _08020A92 b _08020D82 _08020A92: ldr r0, _08020ACC @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x98 ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r7, #0xf1 lsls r7, r7, #1 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020AD8 movs r1, #0xe1 lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020AD8 ldr r1, _08020AD0 @ =0x040000D4 ldr r0, _08020AD4 @ =0x08395A4C b _08020ADC .align 2, 0 _08020AC4: .4byte 0x00000743 _08020AC8: .4byte 0x0000061E _08020ACC: .4byte 0x0200B0C0 _08020AD0: .4byte 0x040000D4 _08020AD4: .4byte 0x08395A4C _08020AD8: ldr r1, _08020AEC @ =0x040000D4 ldr r0, _08020AF0 @ =0x08397E6C _08020ADC: str r0, [r1] ldr r0, _08020AF4 @ =0x06015800 str r0, [r1, #4] ldr r0, _08020AF8 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] b _08020D82 .align 2, 0 _08020AEC: .4byte 0x040000D4 _08020AF0: .4byte 0x08397E6C _08020AF4: .4byte 0x06015800 _08020AF8: .4byte 0x80001200 _08020AFC: ldr r2, _08020B24 @ =0x086ADEE0 ldr r6, _08020B28 @ =0x0000020A adds r4, r3, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r1, r2, #2 adds r0, r0, r1 movs r5, #0x82 lsls r5, r5, #2 adds r1, r3, r5 ldrh r3, [r1] ldrh r0, [r0] mov r8, r2 cmp r0, r3 bls _08020B2C adds r0, r3, #1 strh r0, [r1] b _08020C1C .align 2, 0 _08020B24: .4byte 0x086ADEE0 _08020B28: .4byte 0x0000020A _08020B2C: movs r5, #0 movs r7, #0 strh r7, [r1] ldrb r0, [r4] adds r0, #1 strb r0, [r4] mov r1, sl ldr r0, [r1] ldr r2, _08020BC0 @ =0x0000020A adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 bne _08020B5C movs r0, #0x7c bl m4aSongNumStop ldr r0, _08020BC4 @ =0x02032EE0 ldr r1, _08020BC8 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _08020B5C: mov r3, sl ldr r0, [r3] adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x19 ble _08020C1C movs r0, #0x19 strb r0, [r1] mov r4, sl ldr r0, [r4] ldr r1, _08020BCC @ =0x0000061C adds r0, r0, r1 strb r5, [r0] ldr r2, _08020BD0 @ =0x0200B0C0 ldr r0, [r2, #0x44] adds r0, #0x98 ldr r0, [r0] strh r7, [r0] ldr r0, [r4] adds r0, #0xe4 strb r5, [r0] ldr r4, [r4] movs r3, #0xe1 lsls r3, r3, #1 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 movs r7, #0xf1 lsls r7, r7, #1 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08020BD8 lsls r3, r2, #0x10 asrs r1, r3, #0x10 ldr r0, _08020BD4 @ =0x00000744 adds r2, r4, r0 adds r2, r2, r1 lsls r0, r1, #3 adds r0, r0, r1 strb r0, [r2] mov r8, r3 b _08020BE6 .align 2, 0 _08020BC0: .4byte 0x0000020A _08020BC4: .4byte 0x02032EE0 _08020BC8: .4byte 0x0000FFFF _08020BCC: .4byte 0x0000061C _08020BD0: .4byte 0x0200B0C0 _08020BD4: .4byte 0x00000744 _08020BD8: lsls r2, r2, #0x10 asrs r1, r2, #0x10 ldr r3, _08020C48 @ =0x00000744 adds r0, r4, r3 adds r0, r0, r1 strb r5, [r0] mov r8, r2 _08020BE6: ldr r3, _08020C4C @ =0x040000D4 ldr r4, _08020C50 @ =0x020314E0 ldr r0, [r4] mov r5, r8 asrs r2, r5, #0x10 ldr r7, _08020C48 @ =0x00000744 adds r0, r0, r7 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08020C54 @ =0x084C07EC adds r0, r0, r1 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r1, _08020C58 @ =0x06010480 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _08020C5C @ =0x800000C0 str r0, [r3, #8] ldr r0, [r3, #8] mov sl, r4 ldr r2, _08020C60 @ =0x086ADEE0 mov r8, r2 _08020C1C: mov r3, sl ldr r1, [r3] ldr r4, _08020C64 @ =0x0000020A adds r0, r1, r4 ldrb r0, [r0] subs r0, #0x11 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #6 bhi _08020C76 ldr r5, _08020C68 @ =0x0200B0C0 ldr r0, [r5, #0x4c] movs r2, #3 ands r0, r2 lsrs r0, r0, #1 cmp r0, #0 beq _08020C70 adds r1, #0x4c ldr r0, _08020C6C @ =0x0000FFFD strh r0, [r1] b _08020C76 .align 2, 0 _08020C48: .4byte 0x00000744 _08020C4C: .4byte 0x040000D4 _08020C50: .4byte 0x020314E0 _08020C54: .4byte 0x084C07EC _08020C58: .4byte 0x06010480 _08020C5C: .4byte 0x800000C0 _08020C60: .4byte 0x086ADEE0 _08020C64: .4byte 0x0000020A _08020C68: .4byte 0x0200B0C0 _08020C6C: .4byte 0x0000FFFD _08020C70: adds r0, r1, #0 adds r0, #0x4c strh r2, [r0] _08020C76: mov r7, sl ldr r3, [r7] ldr r1, _08020CD8 @ =0x0000020A adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, r8 ldrh r5, [r0] movs r2, #0xe1 lsls r2, r2, #1 adds r0, r3, r2 movs r1, #0 ldrsb r1, [r0, r1] ldr r4, _08020CDC @ =0x0200B0C0 ldr r0, [r4, #0x44] adds r0, #0x98 ldr r6, [r0] subs r2, r1, #1 movs r0, #0xb1 adds r1, r2, #0 muls r1, r0, r1 adds r0, r3, #0 adds r0, #0x58 ldrh r0, [r0] subs r0, #0x10 subs r1, r1, r0 strh r1, [r6, #2] ldr r7, _08020CE0 @ =0x0000061C adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08020CE8 adds r0, r3, #0 adds r0, #0x5a ldrh r1, [r0] movs r4, #0xbe lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r7, _08020CE4 @ =0x000001E3 adds r0, r3, r7 adds r0, r0, r2 movs r1, #0 b _08020CF4 .align 2, 0 _08020CD8: .4byte 0x0000020A _08020CDC: .4byte 0x0200B0C0 _08020CE0: .4byte 0x0000061C _08020CE4: .4byte 0x000001E3 _08020CE8: movs r0, #0xb4 strh r0, [r6, #4] ldr r1, _08020E14 @ =0x000001E3 adds r0, r3, r1 adds r0, r0, r2 movs r1, #1 _08020CF4: strb r1, [r0] movs r4, #0 lsls r1, r5, #0x10 ldr r2, _08020E18 @ =0x03005000 mov sb, r2 ldr r3, _08020E1C @ =0x086B4922 mov r8, r3 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov ip, r0 ldr r5, _08020E20 @ =0xFFFFFE00 mov sl, r5 _08020D10: lsls r3, r4, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 add r2, sb lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, ip add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08020E24 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r4, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _08020D10 _08020D82: ldr r0, _08020E28 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r6, [r1, #0x74] ldrh r1, [r6] cmp r1, #0 bne _08020D90 b _08020EA4 _08020D90: movs r2, #0 ldr r3, _08020E2C @ =0x040000D4 mov sl, r3 _08020D96: lsls r2, r2, #0x10 asrs r5, r2, #0x10 ldr r4, _08020E28 @ =0x0200B0C0 ldr r1, [r4, #0x44] lsls r0, r5, #2 adds r0, r0, r1 ldr r6, [r0, #0x74] movs r0, #0xb1 adds r1, r5, #0 muls r1, r0, r1 ldr r7, _08020E30 @ =0x020314E0 ldr r4, [r7] adds r0, r4, #0 adds r0, #0x58 ldrh r0, [r0] subs r0, #0x10 subs r1, r1, r0 strh r1, [r6, #2] ldr r1, _08020E14 @ =0x000001E3 adds r0, r4, r1 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r2 cmp r0, #0 beq _08020E44 ldr r2, _08020E28 @ =0x0200B0C0 ldr r0, [r2, #0x50] movs r1, #5 bl __umodsi3 cmp r0, #0 bne _08020E02 ldr r3, _08020E34 @ =0x00000744 adds r0, r4, r3 adds r0, r0, r5 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08020E38 @ =0x084C07EC adds r0, r0, r1 mov r4, sl str r0, [r4] lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #7 ldr r5, _08020E3C @ =0x06010480 adds r0, r0, r5 str r0, [r4, #4] ldr r0, _08020E40 @ =0x800000C0 str r0, [r4, #8] ldr r0, [r4, #8] _08020E02: ldr r7, _08020E30 @ =0x020314E0 ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r2, #0xbe lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 b _08020E46 .align 2, 0 _08020E14: .4byte 0x000001E3 _08020E18: .4byte 0x03005000 _08020E1C: .4byte 0x086B4922 _08020E20: .4byte 0xFFFFFE00 _08020E24: .4byte 0x000001FF _08020E28: .4byte 0x0200B0C0 _08020E2C: .4byte 0x040000D4 _08020E30: .4byte 0x020314E0 _08020E34: .4byte 0x00000744 _08020E38: .4byte 0x084C07EC _08020E3C: .4byte 0x06010480 _08020E40: .4byte 0x800000C0 _08020E44: movs r0, #0xc8 _08020E46: strh r0, [r6, #4] movs r4, #0 ldr r7, _08020EB4 @ =0x03005000 ldr r3, _08020EB8 @ =0xFFFFFE00 mov sb, r3 _08020E50: lsls r3, r4, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r4, #2 ldrsh r1, [r5, r4] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r4, _08020EBC @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r4, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08020E50 movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08020EA4 b _08020D96 _08020EA4: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08020EB4: .4byte 0x03005000 _08020EB8: .4byte 0xFFFFFE00 _08020EBC: .4byte 0x000001FF thumb_func_start sub_20EC0 sub_20EC0: @ 0x08020EC0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r0, _08020F24 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r7, [r0] ldr r0, _08020F28 @ =0x020314E0 ldr r2, [r0] movs r1, #0xe0 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] cmp r1, #0 bne _08020EE6 b _08021220 _08020EE6: movs r0, #0xc8 lsls r0, r0, #2 cmp r1, r0 bne _08020F5C movs r0, #1 strh r0, [r7] movs r1, #0xdf lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08020F34 movs r0, #0xfe lsls r0, r0, #1 adds r1, r2, r0 ldr r0, _08020F2C @ =0x00000442 str r0, [r1] movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08020F30 @ =0x00001248 str r0, [r1] movs r0, #0x81 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0 strb r0, [r1] b _08021210 .align 2, 0 _08020F24: .4byte 0x0200B0C0 _08020F28: .4byte 0x020314E0 _08020F2C: .4byte 0x00000442 _08020F30: .4byte 0x00001248 _08020F34: movs r0, #0xfe lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0xfa lsls r0, r0, #3 str r0, [r1] movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08020F58 @ =0x00000EEC str r0, [r1] movs r0, #0x81 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #4 strb r0, [r1] b _08021210 .align 2, 0 _08020F58: .4byte 0x00000EEC _08020F5C: ldr r0, _08021084 @ =0x0000031F cmp r1, r0 bne _08020F82 movs r1, #0xdf lsls r1, r1, #1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _08020F82 ldr r1, _08021088 @ =0x040000D4 ldr r0, _0802108C @ =0x084C07EC str r0, [r1] ldr r0, _08021090 @ =0x06010600 str r0, [r1, #4] ldr r0, _08021094 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] _08020F82: ldr r4, _08021098 @ =0x086ADF90 ldr r2, _0802109C @ =0x020314E0 mov sl, r2 ldr r3, [r2] movs r1, #0x81 lsls r1, r1, #2 adds r0, r3, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 adds r0, r2, r4 mov r8, r0 subs r1, #8 mov sb, r1 adds r0, r3, r1 ldr r0, [r0] adds r0, #0x78 mov ip, r0 mov r0, r8 ldr r0, [r0] mov r1, ip subs r5, r0, r1 adds r4, #4 adds r2, r2, r4 movs r0, #0x80 lsls r0, r0, #2 mov r8, r0 add r3, r8 ldr r0, [r3] adds r0, #0xa0 ldr r1, [r2] subs r6, r1, r0 adds r1, r5, #0 muls r1, r5, r1 adds r0, r6, #0 muls r0, r6, r0 adds r1, r1, r0 str r1, [sp, #8] lsls r0, r5, #0x10 asrs r0, r0, #0x10 rsbs r1, r6, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r6, _080210A0 @ =0x00004E20 adds r0, r1, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp] adds r0, r5, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r6, #0 bl __divsi3 str r0, [sp, #4] ldr r0, _080210A4 @ =0x086AD788 lsrs r4, r4, #0x1d lsls r4, r4, #1 adds r4, r4, r0 ldr r0, _080210A8 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x18 bl __umodsi3 lsrs r0, r0, #3 ldrh r4, [r4] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 mov r1, sl ldr r5, [r1] mov r2, sb adds r1, r5, r2 ldr r0, [r1] ldr r2, [sp] adds r0, r0, r2 str r0, [r1] mov r0, r8 adds r4, r5, r0 ldr r0, [r4] ldr r2, [sp, #4] adds r0, r0, r2 str r0, [r4] ldrh r0, [r7] cmp r0, #0 beq _0802114A ldr r0, [r1] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r0, [r4] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _080210AC movs r0, #0xb4 strh r0, [r7, #4] b _080210B6 .align 2, 0 _08021084: .4byte 0x0000031F _08021088: .4byte 0x040000D4 _0802108C: .4byte 0x084C07EC _08021090: .4byte 0x06010600 _08021094: .4byte 0x800000C0 _08021098: .4byte 0x086ADF90 _0802109C: .4byte 0x020314E0 _080210A0: .4byte 0x00004E20 _080210A4: .4byte 0x086AD788 _080210A8: .4byte 0x0200B0C0 _080210AC: movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _080210B6 strh r1, [r7, #4] _080210B6: ldr r2, _080211B8 @ =0x040000D4 lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r1, #0x1e lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _080211BC @ =0x083E85AC adds r0, r0, r1 str r0, [r2] ldr r0, _080211C0 @ =0x060112A0 str r0, [r2, #4] ldr r0, _080211C4 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r6, _080211C8 @ =0x03005000 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 ldr r2, _080211CC @ =0xFFFFFE00 mov r8, r2 _080210E2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] mov r0, sb ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2, #5] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x30 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080211D0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _080210E2 _0802114A: ldr r0, _080211D4 @ =0x000009C3 ldr r1, [sp, #8] cmp r1, r0 bgt _08021210 ldr r3, _080211D8 @ =0x020314E0 ldr r1, [r3] movs r2, #0x81 lsls r2, r2, #2 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 movs r5, #0 strb r0, [r1] ldr r2, [r3] movs r1, #0xdf lsls r1, r1, #1 adds r0, r2, r1 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bne _080211EC adds r1, #0x46 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08021210 ldr r1, _080211B8 @ =0x040000D4 ldr r0, _080211DC @ =0x084C156C str r0, [r1] ldr r0, _080211E0 @ =0x06010600 str r0, [r1, #4] ldr r0, _080211E4 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xf1 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #2 strb r0, [r1] ldr r0, _080211E8 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r5, [r0] ldr r0, [r3] movs r1, #0xe0 lsls r1, r1, #1 adds r0, r0, r1 strh r4, [r0] movs r0, #0x75 bl m4aSongNumStart b _08021210 .align 2, 0 _080211B8: .4byte 0x040000D4 _080211BC: .4byte 0x083E85AC _080211C0: .4byte 0x060112A0 _080211C4: .4byte 0x80000090 _080211C8: .4byte 0x03005000 _080211CC: .4byte 0xFFFFFE00 _080211D0: .4byte 0x000001FF _080211D4: .4byte 0x000009C3 _080211D8: .4byte 0x020314E0 _080211DC: .4byte 0x084C156C _080211E0: .4byte 0x06010600 _080211E4: .4byte 0x800000C0 _080211E8: .4byte 0x0200B0C0 _080211EC: movs r1, #0x81 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _08021210 ldr r0, _08021230 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r5, [r0] movs r0, #0xe0 lsls r0, r0, #1 adds r1, r2, r0 movs r0, #1 strh r0, [r1] _08021210: ldr r0, _08021234 @ =0x020314E0 ldr r1, [r0] movs r2, #0xe0 lsls r2, r2, #1 adds r1, r1, r2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _08021220: add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021230: .4byte 0x0200B0C0 _08021234: .4byte 0x020314E0 thumb_func_start sub_21238 sub_21238: @ 0x08021238 push {r4, r5, lr} lsls r0, r0, #0x10 cmp r0, #0 beq _0802127A ldr r3, _080212E0 @ =0x020314E0 ldr r0, [r3] ldr r1, _080212E4 @ =0x00000714 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r3] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r1, [r0] ldr r0, [r3] adds r1, r0, r2 ldrb r1, [r1] ldr r4, _080212E8 @ =0x00000711 adds r0, r0, r4 strb r1, [r0] ldr r0, [r3] adds r1, r0, r2 ldrb r1, [r1] adds r4, #1 adds r0, r0, r4 strb r1, [r0] ldr r0, [r3] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _080212EC @ =0x00000713 adds r0, r0, r2 strb r1, [r0] _0802127A: ldr r5, _080212E0 @ =0x020314E0 ldr r0, [r5] movs r4, #0xe6 lsls r4, r4, #3 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _080212F0 @ =0x000005F3 adds r0, r0, r2 strb r1, [r0] ldr r1, [r5] movs r0, #0x16 ldrsb r0, [r1, r0] cmp r0, #2 bne _080212A2 movs r0, #0x14 ldrsb r0, [r1, r0] cmp r0, #2 bgt _080212C0 _080212A2: adds r0, r1, #0 adds r0, #0x72 ldrb r0, [r0] movs r4, #0xf ands r4, r0 cmp r4, #0 bne _080212C0 movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r1, _080212F4 @ =0x000006C4 adds r0, r0, r1 strb r4, [r0] _080212C0: ldr r0, _080212E0 @ =0x020314E0 ldr r2, [r0] ldr r0, [r2, #0x14] ldr r1, _080212F8 @ =0x00FF00FF ands r0, r1 ldr r1, _080212FC @ =0x00020006 cmp r0, r1 bne _080212DA movs r4, #0xbc lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0 strb r0, [r1] _080212DA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080212E0: .4byte 0x020314E0 _080212E4: .4byte 0x00000714 _080212E8: .4byte 0x00000711 _080212EC: .4byte 0x00000713 _080212F0: .4byte 0x000005F3 _080212F4: .4byte 0x000006C4 _080212F8: .4byte 0x00FF00FF _080212FC: .4byte 0x00020006 thumb_func_start sub_21300 sub_21300: @ 0x08021300 ldr r2, _08021318 @ =0x020314E0 ldr r1, [r2] movs r3, #0 movs r0, #1 strb r0, [r1, #0x17] ldr r0, [r2] movs r1, #0 strh r3, [r0, #0x18] ldr r2, _0802131C @ =0x000006DD adds r0, r0, r2 strb r1, [r0] bx lr .align 2, 0 _08021318: .4byte 0x020314E0 _0802131C: .4byte 0x000006DD thumb_func_start sub_21320 sub_21320: @ 0x08021320 push {r4, lr} ldr r1, _08021340 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] subs r0, #1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r1, #0 cmp r0, #6 bls _08021336 b _0802150C _08021336: lsls r0, r0, #2 ldr r1, _08021344 @ =_08021348 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021340: .4byte 0x020314E0 _08021344: .4byte _08021348 _08021348: @ jump table .4byte _08021364 @ case 0 .4byte _080213B2 @ case 1 .4byte _080213E8 @ case 2 .4byte _0802144C @ case 3 .4byte _080214CC @ case 4 .4byte _080214E0 @ case 5 .4byte _080214F8 @ case 6 _08021364: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #8 bls _0802136E b _0802150C _0802136E: adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bhi _08021386 movs r0, #0xe6 lsls r0, r0, #3 adds r1, r1, r0 movs r0, #1 strb r0, [r1] b _0802150C _08021386: cmp r0, #8 beq _0802138C b _0802150C _0802138C: bl sub_219A8 ldr r0, [r4] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r4] movs r2, #0xe1 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0 str r1, [r0] movs r0, #1 bl sub_1C7F4 ldr r1, [r4] b _080214EA _080213B2: bl sub_219EC ldr r4, _080213E4 @ =0x020314E0 ldr r0, [r4] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080213CE movs r0, #1 movs r1, #0 bl sub_1C7F4 _080213CE: ldr r1, [r4] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _080213E0 b _0802150C _080213E0: b _080214EA .align 2, 0 _080213E4: .4byte 0x020314E0 _080213E8: ldr r0, [r4] ldr r3, _08021440 @ =0x00000714 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, [r4] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] subs r3, #3 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08021444 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] bl sub_29D9C ldr r0, [r4] ldr r3, _08021448 @ =0x0000062D adds r1, r0, r3 ldrb r0, [r1] cmp r0, #0x62 bhi _0802150C adds r0, #1 strb r0, [r1] b _0802150C .align 2, 0 _08021440: .4byte 0x00000714 _08021444: .4byte 0x00000713 _08021448: .4byte 0x0000062D _0802144C: ldr r0, _08021464 @ =0x020314E0 ldr r2, [r0] ldrh r0, [r2, #0x28] adds r1, r0, #0 cmp r1, #0x94 bne _08021468 adds r0, #1 strh r0, [r2, #0x28] bl sub_2A054 b _08021484 .align 2, 0 _08021464: .4byte 0x020314E0 _08021468: cmp r1, #0x8b beq _08021484 cmp r1, #0x18 bne _0802147A movs r0, #0 movs r1, #0 bl sub_1C7F4 b _08021484 _0802147A: cmp r1, #0 bne _08021484 ldrb r0, [r2, #0x17] adds r0, #1 strb r0, [r2, #0x17] _08021484: ldr r4, _080214C0 @ =0x020314E0 ldr r0, [r4] ldr r1, _080214C4 @ =0x000006DD adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080214B4 bl sub_2A354 ldr r1, [r4] ldr r3, _080214C8 @ =0x000006DE adds r2, r1, r3 ldrh r0, [r2] cmp r0, #0xb3 bhi _080214B4 movs r0, #0x8c strh r0, [r1, #0x28] ldrh r0, [r2] cmp r0, #0xb3 bne _080214B4 movs r0, #0x1e strh r0, [r1, #0x28] _080214B4: ldr r0, _080214C0 @ =0x020314E0 ldr r1, [r0] movs r0, #0 strh r0, [r1, #0x18] b _0802150C .align 2, 0 _080214C0: .4byte 0x020314E0 _080214C4: .4byte 0x000006DD _080214C8: .4byte 0x000006DE _080214CC: bl sub_219EC ldr r0, _080214DC @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r0, #0 strh r0, [r1] b _080214E6 .align 2, 0 _080214DC: .4byte 0x0200B0C0 _080214E0: movs r0, #1 bl sub_21238 _080214E6: ldr r0, _080214F4 @ =0x020314E0 ldr r1, [r0] _080214EA: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _0802150C .align 2, 0 _080214F4: .4byte 0x020314E0 _080214F8: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0 beq _08021506 subs r0, #1 strh r0, [r1, #0x18] b _0802150C _08021506: movs r0, #1 bl sub_19B64 _0802150C: pop {r4} pop {r0} bx r0 thumb_func_start sub_21514 sub_21514: @ 0x08021514 push {r4, r5, lr} ldr r5, _0802156C @ =0x020314E0 ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r4, #0 strb r4, [r0] ldr r0, [r5] ldr r1, _08021570 @ =0x000005F3 adds r0, r0, r1 strb r4, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r1, _08021574 @ =0x000006C4 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r1, #0x5f adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] subs r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] subs r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r1, #1 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r1, #1 adds r0, r0, r1 strb r4, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0802156C: .4byte 0x020314E0 _08021570: .4byte 0x000005F3 _08021574: .4byte 0x000006C4 thumb_func_start sub_21578 sub_21578: @ 0x08021578 push {r4, lr} ldr r0, _080215A8 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _0802161C ldr r4, _080215AC @ =0x020314E0 ldr r0, [r4] ldr r1, _080215B0 @ =0x00000283 adds r0, r0, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bls _0802159C b _080216AE _0802159C: lsls r0, r0, #2 ldr r1, _080215B4 @ =_080215B8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080215A8: .4byte 0x0200B0C0 _080215AC: .4byte 0x020314E0 _080215B0: .4byte 0x00000283 _080215B4: .4byte _080215B8 _080215B8: @ jump table .4byte _080215CC @ case 0 .4byte _080215E8 @ case 1 .4byte _080215CC @ case 2 .4byte _080215E8 @ case 3 .4byte _08021604 @ case 4 _080215CC: ldr r0, [r4] ldr r2, _080215E4 @ =0x000006EC adds r0, r0, r2 movs r1, #0x2a strb r1, [r0] ldr r0, [r4] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #3 b _080216AC .align 2, 0 _080215E4: .4byte 0x000006EC _080215E8: ldr r0, [r4] ldr r2, _08021600 @ =0x000006EC adds r0, r0, r2 movs r1, #0x2c strb r1, [r0] ldr r0, [r4] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #5 b _080216AC .align 2, 0 _08021600: .4byte 0x000006EC _08021604: ldr r0, [r4] ldr r2, _08021618 @ =0x000006EC adds r0, r0, r2 movs r1, #0x2d strb r1, [r0] ldr r0, [r4] movs r1, #0xa1 lsls r1, r1, #2 adds r0, r0, r1 b _080216AA .align 2, 0 _08021618: .4byte 0x000006EC _0802161C: ldr r4, _08021640 @ =0x020314E0 ldr r0, [r4] ldr r2, _08021644 @ =0x00000283 adds r0, r0, r2 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080216AE lsls r0, r0, #2 ldr r1, _08021648 @ =_0802164C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021640: .4byte 0x020314E0 _08021644: .4byte 0x00000283 _08021648: .4byte _0802164C _0802164C: @ jump table .4byte _08021660 @ case 0 .4byte _0802167C @ case 1 .4byte _08021660 @ case 2 .4byte _0802167C @ case 3 .4byte _08021698 @ case 4 _08021660: ldr r0, [r4] ldr r1, _08021678 @ =0x000006EC adds r0, r0, r1 movs r1, #0x29 strb r1, [r0] ldr r0, [r4] movs r2, #0xa1 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #2 b _080216AC .align 2, 0 _08021678: .4byte 0x000006EC _0802167C: ldr r0, [r4] ldr r1, _08021694 @ =0x000006EC adds r0, r0, r1 movs r1, #0x2b strb r1, [r0] ldr r0, [r4] movs r2, #0xa1 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #4 b _080216AC .align 2, 0 _08021694: .4byte 0x000006EC _08021698: ldr r0, [r4] ldr r1, _080216D8 @ =0x000006EC adds r0, r0, r1 movs r1, #0x2d strb r1, [r0] ldr r0, [r4] movs r2, #0xa1 lsls r2, r2, #2 adds r0, r0, r2 _080216AA: movs r1, #6 _080216AC: strb r1, [r0] _080216AE: ldr r2, [r4] adds r0, r2, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080216DC movs r0, #0x15 ldrsb r0, [r2, r0] cmp r0, #2 bne _080216DC movs r1, #0 movs r0, #0x96 strh r0, [r2, #0x28] movs r0, #3 strb r0, [r2, #0x17] ldr r0, [r4] strh r1, [r0, #0x18] b _080216F4 .align 2, 0 _080216D8: .4byte 0x000006EC _080216DC: ldr r0, [r4] movs r1, #0 strb r1, [r0, #0x17] ldr r0, [r4] strh r1, [r0, #0x18] movs r2, #0xe1 lsls r2, r2, #3 adds r0, r0, r2 str r1, [r0] movs r0, #7 bl sub_1C7F4 _080216F4: pop {r4} pop {r0} bx r0 thumb_func_start sub_216FC sub_216FC: @ 0x080216FC push {r4, lr} ldr r1, _0802171C @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r3, r1, #0 cmp r0, #8 bls _08021710 b _080219A2 _08021710: lsls r0, r0, #2 ldr r1, _08021720 @ =_08021724 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802171C: .4byte 0x020314E0 _08021720: .4byte _08021724 _08021724: @ jump table .4byte _08021748 @ case 0 .4byte _0802175C @ case 1 .4byte _080217FC @ case 2 .4byte _08021824 @ case 3 .4byte _08021850 @ case 4 .4byte _08021938 @ case 5 .4byte _08021960 @ case 6 .4byte _08021988 @ case 7 .4byte _0802199C @ case 8 _08021748: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0x3b bhi _08021756 adds r0, #1 strh r0, [r1, #0x18] b _080219A2 _08021756: movs r0, #0 strh r0, [r1, #0x18] b _08021990 _0802175C: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #8 bls _08021766 b _080219A2 _08021766: adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #7 bhi _0802177E movs r0, #0xe6 lsls r0, r0, #3 adds r1, r1, r0 movs r0, #1 strb r0, [r1] b _080219A2 _0802177E: cmp r0, #8 beq _08021784 b _080219A2 _08021784: ldr r2, _080217A4 @ =0x00000283 adds r0, r1, r2 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080217CE lsls r0, r0, #2 ldr r1, _080217A8 @ =_080217AC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080217A4: .4byte 0x00000283 _080217A8: .4byte _080217AC _080217AC: @ jump table .4byte _080217C0 @ case 0 .4byte _080217C8 @ case 1 .4byte _080217C0 @ case 2 .4byte _080217C8 @ case 3 .4byte _080217C8 @ case 4 _080217C0: movs r0, #0xe bl m4aSongNumStart b _080217CE _080217C8: movs r0, #0xf bl m4aSongNumStart _080217CE: bl sub_219A8 ldr r2, _080217F8 @ =0x020314E0 ldr r0, [r2] movs r3, #0xe6 lsls r3, r3, #3 adds r0, r0, r3 movs r3, #0 movs r1, #2 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r2] movs r1, #0xe1 lsls r1, r1, #3 adds r0, r0, r1 str r3, [r0] b _080219A2 .align 2, 0 _080217F8: .4byte 0x020314E0 _080217FC: bl sub_219EC movs r0, #7 movs r1, #0 bl sub_1C7F4 ldr r0, _08021820 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0802181C b _080219A2 _0802181C: b _08021990 .align 2, 0 _08021820: .4byte 0x020314E0 _08021824: ldr r1, [r3] ldrb r0, [r1, #0x17] adds r0, #1 movs r2, #0 strb r0, [r1, #0x17] ldr r0, [r3] strh r2, [r0, #0x18] movs r3, #0xe1 lsls r3, r3, #3 adds r1, r0, r3 str r2, [r1] ldr r1, _0802184C @ =0x000006EC adds r0, r0, r1 movs r1, #0x2e strb r1, [r0] movs r0, #7 movs r1, #0 bl sub_1C7F4 b _080219A2 .align 2, 0 _0802184C: .4byte 0x000006EC _08021850: ldr r4, _08021874 @ =0x020314E0 ldr r1, [r4] ldrh r0, [r1, #0x28] cmp r0, #0x91 bne _080218C4 adds r0, #1 strh r0, [r1, #0x28] ldr r0, _08021878 @ =0x0200B0C0 ldrh r2, [r0, #0x18] movs r0, #1 ands r0, r2 cmp r0, #0 beq _0802187C movs r0, #0x90 strh r0, [r1, #0x28] bl m4aMPlayAllStop b _080218B0 .align 2, 0 _08021874: .4byte 0x020314E0 _08021878: .4byte 0x0200B0C0 _0802187C: movs r0, #2 ands r0, r2 cmp r0, #0 beq _080218B0 bl m4aMPlayAllStop movs r0, #0x66 bl m4aSongNumStart ldr r1, [r4] movs r0, #0x3c strh r0, [r1, #0x28] movs r0, #6 strb r0, [r1, #0x17] ldr r1, [r4] ldr r2, _08021924 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080218B0 ldr r3, _08021928 @ =0x000006EE adds r1, r1, r3 movs r0, #0x78 strh r0, [r1] _080218B0: ldr r0, _0802192C @ =0x020314E0 ldr r0, [r0] ldr r1, _08021930 @ =0x000006EC adds r0, r0, r1 movs r1, #0x2e strb r1, [r0] movs r0, #7 movs r1, #0 bl sub_1C7F4 _080218C4: ldr r4, _0802192C @ =0x020314E0 ldr r0, [r4] ldrh r0, [r0, #0x28] cmp r0, #0x82 bne _080218E2 movs r0, #0x9f bl m4aSongNumStart ldr r1, [r4] movs r0, #0x41 strh r0, [r1, #0x18] ldr r1, _08021934 @ =0x0200B0C0 ldrh r0, [r1, #0x38] movs r0, #0x9f strh r0, [r1, #0x38] _080218E2: ldr r1, [r4] ldrh r0, [r1, #0x28] cmp r0, #0x7d bne _080218EE adds r0, #1 strh r0, [r1, #0x28] _080218EE: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080219A2 movs r2, #0x88 lsls r2, r2, #5 adds r1, r1, r2 movs r0, #1 strb r0, [r1] ldr r3, [r4] ldrh r0, [r3, #0x18] subs r0, #1 strh r0, [r3, #0x18] ldr r2, _08021934 @ =0x0200B0C0 ldrh r0, [r3, #0x18] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3, #0x18] cmp r0, #0 bne _080219A2 ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] b _080219A2 .align 2, 0 _08021924: .4byte 0x00000714 _08021928: .4byte 0x000006EE _0802192C: .4byte 0x020314E0 _08021930: .4byte 0x000006EC _08021934: .4byte 0x0200B0C0 _08021938: ldr r2, [r3] ldrh r0, [r2, #0x18] cmp r0, #0x1d bhi _08021946 adds r0, #1 strh r0, [r2, #0x18] b _080219A2 _08021946: movs r1, #0 movs r0, #0 strh r0, [r2, #0x18] strb r1, [r2, #0x17] ldr r0, [r3] ldr r3, _0802195C @ =0x00000282 adds r0, r0, r3 strb r1, [r0] bl sub_1C73C b _080219A2 .align 2, 0 _0802195C: .4byte 0x00000282 _08021960: bl sub_219EC ldr r0, _08021980 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r0, [r0, #0x34] movs r3, #0 strh r3, [r0] ldr r2, _08021984 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r2] strh r3, [r0, #0x18] b _080219A2 .align 2, 0 _08021980: .4byte 0x0200B0C0 _08021984: .4byte 0x020314E0 _08021988: bl sub_21514 ldr r0, _08021998 @ =0x020314E0 ldr r1, [r0] _08021990: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _080219A2 .align 2, 0 _08021998: .4byte 0x020314E0 _0802199C: movs r0, #1 bl sub_19B64 _080219A2: pop {r4} pop {r0} bx r0 thumb_func_start sub_219A8 sub_219A8: @ 0x080219A8 ldr r1, _080219D0 @ =0x040000D4 ldr r0, _080219D4 @ =0x0844838C str r0, [r1] ldr r0, _080219D8 @ =0x060113C0 str r0, [r1, #4] ldr r0, _080219DC @ =0x80000180 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080219E0 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r2, #1 movs r0, #1 strh r0, [r1] ldr r0, _080219E4 @ =0x020314E0 ldr r0, [r0] ldr r1, _080219E8 @ =0x000005F3 adds r0, r0, r1 strb r2, [r0] bx lr .align 2, 0 _080219D0: .4byte 0x040000D4 _080219D4: .4byte 0x0844838C _080219D8: .4byte 0x060113C0 _080219DC: .4byte 0x80000180 _080219E0: .4byte 0x0200B0C0 _080219E4: .4byte 0x020314E0 _080219E8: .4byte 0x000005F3 thumb_func_start sub_219EC sub_219EC: @ 0x080219EC push {r4, r5, r6, r7, lr} ldr r0, _08021A58 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r6, [r0, #0x34] ldr r5, _08021A5C @ =0x020314E0 ldr r4, [r5] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] movs r1, #0x23 bl __umodsi3 movs r1, #7 bl __udivsi3 ldr r3, _08021A60 @ =0x0000020B adds r4, r4, r3 strb r0, [r4] ldrh r0, [r6] cmp r0, #0 beq _08021AE8 ldr r1, [r5] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0x8c lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08021A40 movs r0, #0xc8 strh r0, [r6, #4] _08021A40: ldr r4, [r5] adds r0, r4, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08021A64 movs r0, #0xc8 strh r0, [r6, #4] b _08021A9C .align 2, 0 _08021A58: .4byte 0x0200B0C0 _08021A5C: .4byte 0x020314E0 _08021A60: .4byte 0x0000020B _08021A64: adds r3, r4, r3 movs r1, #0x83 lsls r1, r1, #2 adds r0, r4, r1 movs r1, #0 ldrsb r1, [r3, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 beq _08021A9C ldr r2, _08021AF0 @ =0x040000D4 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _08021AF4 @ =0x0844838C adds r0, r0, r1 str r0, [r2] ldr r0, _08021AF8 @ =0x060113C0 str r0, [r2, #4] ldr r0, _08021AFC @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r1, [r3] movs r2, #0x83 lsls r2, r2, #2 adds r0, r4, r2 strb r1, [r0] _08021A9C: movs r0, #0 ldr r7, _08021B00 @ =0x03005000 ldr r1, _08021B04 @ =0xFFFFFE00 mov ip, r1 _08021AA4: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08021B08 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _08021AA4 _08021AE8: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021AF0: .4byte 0x040000D4 _08021AF4: .4byte 0x0844838C _08021AF8: .4byte 0x060113C0 _08021AFC: .4byte 0x80000180 _08021B00: .4byte 0x03005000 _08021B04: .4byte 0xFFFFFE00 _08021B08: .4byte 0x000001FF thumb_func_start sub_21B0C sub_21B0C: @ 0x08021B0C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r0, _08021BE8 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r7, [r0, #0x44] mov r0, sp movs r1, #0 movs r2, #6 bl memset ldr r5, _08021BEC @ =0x020314E0 ldr r6, [r5] movs r0, #0xe5 lsls r0, r0, #1 adds r3, r6, r0 movs r1, #0xe6 lsls r1, r1, #1 adds r4, r6, r1 movs r2, #0 ldrsh r1, [r3, r2] movs r2, #0 ldrsh r0, [r4, r2] cmp r1, r0 bne _08021B44 b _08021C5C _08021B44: cmp r1, #0xc bne _08021C40 movs r0, #0xe7 lsls r0, r0, #1 mov sb, r0 adds r1, r6, r0 ldrh r0, [r1] adds r2, r0, #0 cmp r2, #0 beq _08021BF0 subs r0, #1 strh r0, [r1] ldrh r4, [r1] adds r0, r4, #0 movs r1, #0x14 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xa bl __udivsi3 adds r0, #0xc lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 cmp r4, #0x28 bhi _08021C14 cmp r4, #2 bls _08021B98 movs r1, #0xea lsls r1, r1, #1 adds r0, r6, r1 ldrh r1, [r0] adds r1, #3 strh r1, [r0] movs r2, #0xeb lsls r2, r2, #1 adds r1, r6, r2 ldrh r0, [r1] adds r0, #2 strh r0, [r1] _08021B98: ldr r5, [r5] mov r0, sb adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #7 movs r4, #0x28 movs r1, #0x28 bl __divsi3 adds r0, #0x80 movs r2, #0xed lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] movs r1, #0xec lsls r1, r1, #1 adds r5, r5, r1 strh r0, [r5] mov r5, sp ldrh r0, [r6] subs r0, r4, r0 lsls r0, r0, #4 movs r1, #0x28 bl __divsi3 strh r0, [r5, #2] mov r5, sp ldrh r0, [r6] subs r4, r4, r0 lsls r4, r4, #4 rsbs r4, r4, #0 adds r0, r4, #0 movs r1, #0x28 bl __divsi3 strh r0, [r5] mov r1, sp movs r0, #0 strh r0, [r1, #4] b _08021C14 .align 2, 0 _08021BE8: .4byte 0x0200B0C0 _08021BEC: .4byte 0x020314E0 _08021BF0: movs r0, #0xd strh r0, [r4] strh r0, [r3] mov r8, r0 movs r1, #0xe8 lsls r1, r1, #1 adds r0, r6, r1 strh r2, [r0] movs r2, #0xeb lsls r2, r2, #1 adds r1, r6, r2 movs r0, #0x78 strh r0, [r1] movs r0, #0xee lsls r0, r0, #1 adds r1, r6, r0 movs r0, #0x3c strh r0, [r1] _08021C14: ldr r2, _08021C30 @ =0x040000D4 mov r1, r8 lsls r0, r1, #0x10 asrs r0, r0, #9 ldr r1, _08021C34 @ =0x084C00EC adds r0, r0, r1 str r0, [r2] ldr r0, _08021C38 @ =0x06010AE0 str r0, [r2, #4] ldr r0, _08021C3C @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] b _08021C5C .align 2, 0 _08021C30: .4byte 0x040000D4 _08021C34: .4byte 0x084C00EC _08021C38: .4byte 0x06010AE0 _08021C3C: .4byte 0x80000040 _08021C40: ldr r2, _08021C98 @ =0x040000D4 movs r1, #0 ldrsh r0, [r3, r1] lsls r0, r0, #7 ldr r1, _08021C9C @ =0x084C00EC adds r0, r0, r1 str r0, [r2] ldr r0, _08021CA0 @ =0x06010AE0 str r0, [r2, #4] ldr r0, _08021CA4 @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r0, [r3] strh r0, [r4] _08021C5C: ldr r0, _08021CA8 @ =0x020314E0 ldr r3, [r0] movs r2, #0xe8 lsls r2, r2, #1 adds r1, r3, r2 ldrh r2, [r1] adds r4, r0, #0 cmp r2, #0 beq _08021CAC subs r0, r2, #1 strh r0, [r1] movs r2, #0xeb lsls r2, r2, #1 adds r0, r3, r2 ldrh r0, [r0] adds r0, #0x50 strh r0, [r7, #4] ldrh r0, [r1] cmp r0, #0x13 bhi _08021CB0 adds r1, r0, #0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0x10 adds r2, #4 adds r1, r3, r2 strh r0, [r1] b _08021CB0 .align 2, 0 _08021C98: .4byte 0x040000D4 _08021C9C: .4byte 0x084C00EC _08021CA0: .4byte 0x06010AE0 _08021CA4: .4byte 0x80000040 _08021CA8: .4byte 0x020314E0 _08021CAC: movs r0, #0xb4 strh r0, [r7, #4] _08021CB0: ldr r1, [r4] movs r2, #0xea lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] adds r0, #0x77 strh r0, [r7, #2] adds r2, #4 adds r0, r1, r2 movs r2, #0 ldrsh r0, [r0, r2] movs r2, #0xed lsls r2, r2, #1 adds r1, r1, r2 movs r2, #0 ldrsh r1, [r1, r2] movs r2, #1 bl sub_7C0 movs r0, #0 ldr r6, _08021D6C @ =0x03005000 ldr r1, _08021D70 @ =0xFFFFFE00 mov ip, r1 movs r2, #4 rsbs r2, r2, #0 mov sb, r2 movs r1, #0xf rsbs r1, r1, #0 mov r8, r1 _08021CEA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 adds r4, r7, r4 ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 lsls r0, r5, #1 add r0, sp movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _08021D74 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #1] mov r0, sb ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #3] mov r0, r8 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #3] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _08021CEA add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021D6C: .4byte 0x03005000 _08021D70: .4byte 0xFFFFFE00 _08021D74: .4byte 0x000001FF thumb_func_start sub_21D78 sub_21D78: @ 0x08021D78 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r7, _08021DD8 @ =0x0200EBC8 ldr r4, _08021DDC @ =0x020314E0 ldr r6, [r4] movs r0, #0xd2 lsls r0, r0, #1 adds r2, r6, r0 movs r3, #0 ldrsb r3, [r2, r3] cmp r3, #0 bne _08021E2C ldr r1, _08021DE0 @ =0x0000072E adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08021DEC ldr r1, _08021DE4 @ =0x00000281 adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08021DB0 b _08021F86 _08021DB0: subs r1, #0xdc adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08021DC0 b _08021F86 _08021DC0: movs r1, #1 strb r1, [r2] ldr r2, [r4] movs r4, #0xda lsls r4, r4, #1 adds r0, r2, r4 strh r3, [r0] ldr r3, _08021DE8 @ =0x000001A5 adds r0, r2, r3 strb r1, [r0] b _08021F86 .align 2, 0 _08021DD8: .4byte 0x0200EBC8 _08021DDC: .4byte 0x020314E0 _08021DE0: .4byte 0x0000072E _08021DE4: .4byte 0x00000281 _08021DE8: .4byte 0x000001A5 _08021DEC: movs r0, #0x13 ldrsb r0, [r6, r0] cmp r0, #6 bne _08021DF6 b _08021F86 _08021DF6: ldr r5, _08021E28 @ =0x000001A5 adds r0, r6, r5 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #1 beq _08021E04 b _08021F86 _08021E04: adds r0, r6, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08021E14 b _08021F86 _08021E14: strb r1, [r2] ldr r0, [r4] movs r4, #0xda lsls r4, r4, #1 adds r1, r0, r4 movs r2, #0 strh r3, [r1] adds r0, r0, r5 strb r2, [r0] b _08021F86 .align 2, 0 _08021E28: .4byte 0x000001A5 _08021E2C: ldr r5, _08021E7C @ =0x086AD456 movs r1, #0xda lsls r1, r1, #1 adds r0, r6, r1 ldrh r4, [r0] adds r0, r4, #0 movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf ldr r2, _08021E80 @ =0x000001A5 adds r1, r6, r2 movs r2, #0 ldrsb r2, [r1, r2] lsls r1, r2, #3 subs r1, r1, r2 lsls r1, r1, #1 adds r0, r0, r1 adds r0, r0, r5 ldrh r5, [r0] cmp r4, #0 bne _08021E94 movs r0, #1 strh r0, [r7] ldr r1, _08021E84 @ =0x040000D4 ldr r0, _08021E88 @ =0x083A8A8C str r0, [r1] ldr r0, _08021E8C @ =0x05000240 str r0, [r1, #4] ldr r0, _08021E90 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _08021E9E .align 2, 0 _08021E7C: .4byte 0x086AD456 _08021E80: .4byte 0x000001A5 _08021E84: .4byte 0x040000D4 _08021E88: .4byte 0x083A8A8C _08021E8C: .4byte 0x05000240 _08021E90: .4byte 0x80000010 _08021E94: cmp r4, #0x25 bne _08021E9E movs r0, #0xca bl m4aSongNumStart _08021E9E: ldr r4, _08021F90 @ =0x020314E0 ldr r0, [r4] movs r3, #0xda lsls r3, r3, #1 adds r0, r0, r3 ldrh r0, [r0] movs r1, #6 bl __umodsi3 lsls r0, r0, #0x10 mov r8, r4 cmp r0, #0 bne _08021ED4 ldr r2, _08021F94 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _08021F98 @ =0x084F6B0C adds r0, r0, r1 str r0, [r2] ldr r0, _08021F9C @ =0x06013D00 str r0, [r2, #4] ldr r0, _08021FA0 @ =0x80000280 str r0, [r2, #8] ldr r0, [r2, #8] _08021ED4: mov r4, r8 ldr r1, [r4] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0xb5 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x30 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 rsbs r1, r1, #0 cmp r0, r1 bge _08021EFC strh r1, [r7, #4] _08021EFC: movs r0, #0 ldr r6, _08021FA4 @ =0x03005000 ldr r1, _08021FA8 @ =0xFFFFFE00 mov ip, r1 _08021F04: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r7, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r6 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08021FAC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _08021F04 mov r3, r8 ldr r2, [r3] movs r4, #0xda lsls r4, r4, #1 adds r1, r2, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x28 bls _08021F86 ldr r1, _08021FB0 @ =0x000001A5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_4E9F0 mov r2, r8 ldr r0, [r2] movs r3, #0xd2 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r0, _08021FB4 @ =0x0200B0C0 ldr r4, _08021FB8 @ =0x00003B08 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08021F86: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08021F90: .4byte 0x020314E0 _08021F94: .4byte 0x040000D4 _08021F98: .4byte 0x084F6B0C _08021F9C: .4byte 0x06013D00 _08021FA0: .4byte 0x80000280 _08021FA4: .4byte 0x03005000 _08021FA8: .4byte 0xFFFFFE00 _08021FAC: .4byte 0x000001FF _08021FB0: .4byte 0x000001A5 _08021FB4: .4byte 0x0200B0C0 _08021FB8: .4byte 0x00003B08 thumb_func_start sub_21FBC sub_21FBC: @ 0x08021FBC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r5, _08022168 @ =0x0200B0C0 ldr r1, [r5, #0x44] ldr r7, [r1, #0x1c] ldr r3, _0802216C @ =0x086AD2DE ldr r4, _08022170 @ =0x020314E0 ldr r1, [r4] movs r2, #0xd3 lsls r2, r2, #1 adds r1, r1, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r1, r1, #1 adds r1, r1, r3 ldrh r1, [r1] lsls r1, r1, #3 ldr r2, _08022174 @ =0x086AD000 adds r1, r1, r2 mov r8, r1 lsls r0, r0, #0x10 mov sl, r4 cmp r0, #0 beq _0802202E ldrh r0, [r1, #6] movs r1, #0xa bl __udivsi3 ldr r4, _08022178 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #0xa ldr r6, _0802217C @ =0x08480E0C adds r0, r0, r6 str r0, [r4] ldr r0, _08022180 @ =0x06015DA0 str r0, [r4, #4] ldr r5, _08022184 @ =0x80000020 str r5, [r4, #8] ldr r0, [r4, #8] mov r3, r8 ldrh r0, [r3, #6] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xa adds r0, r0, r6 str r0, [r4] ldr r0, _08022188 @ =0x06015E60 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] _0802202E: ldrh r0, [r7] cmp r0, #0 beq _08022094 mov r4, sl ldr r0, [r4] movs r6, #0xdb lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] adds r0, #0x9c strh r0, [r7, #2] movs r0, #0x60 strh r0, [r7, #4] movs r5, #0 ldr r6, _0802218C @ =0x03005000 ldr r0, _08022190 @ =0xFFFFFE00 mov r8, r0 _08022050: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08022194 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08022050 _08022094: ldr r3, _08022168 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r7, [r0, #0x20] mov r4, sl ldr r2, [r4] ldr r6, _08022198 @ =0x000001A5 adds r0, r2, r6 movs r1, #0 ldrsb r1, [r0, r1] rsbs r0, r1, #0 orrs r0, r1 lsrs r1, r0, #0x1f ldrh r0, [r7] cmp r0, #0 beq _0802214C movs r3, #0xdb lsls r3, r3, #1 adds r0, r2, r3 ldrh r0, [r0] adds r0, #0x88 strh r0, [r7, #2] movs r0, #0x58 strh r0, [r7, #4] movs r5, #0 ldr r4, _0802218C @ =0x03005000 mov r8, r4 ldr r6, _0802219C @ =0x086B47DE mov ip, r6 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 str r0, [sp, #8] ldr r0, _08022190 @ =0xFFFFFE00 mov sb, r0 _080220D8: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r4, [sp, #8] adds r0, r0, r4 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r4 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r4 add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _08022194 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #4 ble _080220D8 _0802214C: ldr r3, _08022168 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r7, [r0, #0x18] ldrh r0, [r7] cmp r0, #0 bne _0802215A b _08022470 _0802215A: movs r4, #0x2a ldrsh r0, [r3, r4] cmp r0, #0x13 bgt _080221A0 movs r0, #0xb4 b _080221A2 .align 2, 0 _08022168: .4byte 0x0200B0C0 _0802216C: .4byte 0x086AD2DE _08022170: .4byte 0x020314E0 _08022174: .4byte 0x086AD000 _08022178: .4byte 0x040000D4 _0802217C: .4byte 0x08480E0C _08022180: .4byte 0x06015DA0 _08022184: .4byte 0x80000020 _08022188: .4byte 0x06015E60 _0802218C: .4byte 0x03005000 _08022190: .4byte 0xFFFFFE00 _08022194: .4byte 0x000001FF _08022198: .4byte 0x000001A5 _0802219C: .4byte 0x086B47DE _080221A0: movs r0, #0x56 _080221A2: strh r0, [r7, #4] mov r5, sp ldr r4, _08022254 @ =0x086ADFC8 ldr r6, _08022258 @ =0x0200B0C0 ldr r0, [r6, #0x4c] movs r1, #0x1e bl __umodsi3 movs r1, #5 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] rsbs r0, r1, #0 strh r0, [r5] mov r0, sp strh r1, [r0, #2] add r1, sp, #4 ldrh r0, [r0] strh r0, [r1] mov r0, sp ldrh r0, [r0, #2] strh r0, [r1, #2] mov r0, sl ldr r2, [r0] ldr r3, _0802225C @ =0x000001A5 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0802226C movs r5, #0 movs r4, #0x28 adds r4, r4, r7 mov ip, r4 movs r6, #0x30 adds r6, r6, r7 mov sb, r6 ldr r6, _08022260 @ =0x03005000 ldr r0, _08022264 @ =0xFFFFFE00 mov r8, r0 _080221F8: lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsrs r0, r0, #0x1f adds r0, r4, r0 asrs r0, r0, #1 lsls r1, r0, #1 adds r0, r1, r0 lsls r0, r0, #3 add r1, sp ldrh r1, [r1] adds r1, #0x24 adds r0, r0, r1 strh r0, [r7, #2] lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08022268 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _080221F8 b _0802233E .align 2, 0 _08022254: .4byte 0x086ADFC8 _08022258: .4byte 0x0200B0C0 _0802225C: .4byte 0x000001A5 _08022260: .4byte 0x03005000 _08022264: .4byte 0xFFFFFE00 _08022268: .4byte 0x000001FF _0802226C: ldr r3, _080222EC @ =0x00000281 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _080222FC movs r5, #0 movs r4, #0x28 adds r4, r4, r7 mov ip, r4 movs r6, #0x30 adds r6, r6, r7 mov sb, r6 ldr r6, _080222F0 @ =0x03005000 ldr r0, _080222F4 @ =0xFFFFFE00 mov r8, r0 _0802228E: lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsrs r0, r0, #0x1f adds r0, r4, r0 asrs r0, r0, #1 lsls r1, r0, #1 adds r0, r1, r0 lsls r0, r0, #3 add r1, sp ldrh r1, [r1] adds r1, #0x24 adds r0, r0, r1 strh r0, [r7, #2] lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080222F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _0802228E b _0802233E .align 2, 0 _080222EC: .4byte 0x00000281 _080222F0: .4byte 0x03005000 _080222F4: .4byte 0xFFFFFE00 _080222F8: .4byte 0x000001FF _080222FC: movs r5, #0 movs r3, #0x28 adds r3, r3, r7 mov ip, r3 movs r4, #0x30 adds r4, r4, r7 mov sb, r4 ldr r4, _08022354 @ =0x03005000 ldr r6, _08022358 @ =0xFFFFFE00 mov r8, r6 movs r6, #0xb4 _08022312: lsls r2, r5, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r5, r7, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r4 ldrh r3, [r1, #2] mov r0, r8 ands r0, r3 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r4 strb r6, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r5, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _08022312 _0802233E: mov r1, sl ldr r0, [r1] ldr r2, _0802235C @ =0x000001A5 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08022360 movs r0, #0xb4 b _08022376 .align 2, 0 _08022354: .4byte 0x03005000 _08022358: .4byte 0xFFFFFE00 _0802235C: .4byte 0x000001A5 _08022360: ldr r3, _08022370 @ =0x0200B0C0 movs r4, #0x2a ldrsh r0, [r3, r4] cmp r0, #0x13 bgt _08022374 movs r0, #0xb4 b _08022376 .align 2, 0 _08022370: .4byte 0x0200B0C0 _08022374: movs r0, #0x56 _08022376: strh r0, [r7, #4] movs r0, #0x30 strh r0, [r7, #2] mov r6, sl ldr r0, [r6] movs r2, #0x97 lsls r2, r2, #2 adds r1, r0, r2 ldr r3, _080223D0 @ =0x0000025D adds r0, r0, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _080223DC mov r5, ip ldrh r2, [r7, #0x28] lsls r2, r2, #3 ldr r4, _080223D4 @ =0x03005000 adds r2, r2, r4 movs r6, #2 ldrsh r1, [r5, r6] adds r1, #0x30 subs r3, #0x5e adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080223D8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r2, [r7, #0x28] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r7, #4] ldrb r5, [r5, #4] adds r1, r1, r5 mov r4, sp ldrb r0, [r4, #4] adds r0, r0, r1 strb r0, [r2] b _080223F6 .align 2, 0 _080223D0: .4byte 0x0000025D _080223D4: .4byte 0x03005000 _080223D8: .4byte 0xFFFFFE00 _080223DC: ldrh r1, [r7, #0x28] lsls r1, r1, #3 ldr r6, _08022448 @ =0x03005000 adds r1, r1, r6 ldrh r2, [r1, #2] ldr r0, _0802244C @ =0xFFFFFE00 ands r0, r2 strh r0, [r1, #2] ldrh r0, [r7, #0x28] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] _080223F6: mov r1, sl ldr r0, [r1] movs r2, #0x97 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08022454 mov r5, sb ldrh r2, [r7, #0x30] lsls r2, r2, #3 ldr r3, _08022448 @ =0x03005000 adds r2, r2, r3 movs r4, #2 ldrsh r1, [r5, r4] movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r3, _08022450 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802244C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r2, [r7, #0x30] lsls r2, r2, #3 ldr r4, _08022448 @ =0x03005000 adds r2, r2, r4 ldrb r1, [r7, #4] ldrb r5, [r5, #4] adds r1, r1, r5 mov r6, sp ldrh r0, [r6, #6] adds r0, r0, r1 strb r0, [r2] b _08022470 .align 2, 0 _08022448: .4byte 0x03005000 _0802244C: .4byte 0xFFFFFE00 _08022450: .4byte 0x000001FF _08022454: ldrh r1, [r7, #0x30] lsls r1, r1, #3 ldr r0, _08022490 @ =0x03005000 adds r1, r1, r0 ldrh r2, [r1, #2] ldr r0, _08022494 @ =0xFFFFFE00 ands r0, r2 strh r0, [r1, #2] ldrh r0, [r7, #0x30] lsls r0, r0, #3 ldr r1, _08022490 @ =0x03005000 adds r0, r0, r1 movs r1, #0xb4 strb r1, [r0] _08022470: ldr r2, _08022498 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r7, [r0, #0x24] ldrh r0, [r7] cmp r0, #0 bne _0802247E b _080225BE _0802247E: movs r0, #0x30 strh r0, [r7, #2] movs r3, #0x2a ldrsh r0, [r2, r3] cmp r0, #0x13 bgt _0802249C movs r0, #0xb4 b _0802249E .align 2, 0 _08022490: .4byte 0x03005000 _08022494: .4byte 0xFFFFFE00 _08022498: .4byte 0x0200B0C0 _0802249C: movs r0, #0x58 _0802249E: strh r0, [r7, #4] mov r4, sl ldr r1, [r4] movs r6, #0xd3 lsls r6, r6, #1 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 ldr r2, _080224EC @ =0x086AD2DE adds r0, r0, r2 ldrh r3, [r0] cmp r3, #4 bne _080224F8 ldr r3, _080224F0 @ =0x000001AF adds r0, r1, r3 ldrb r0, [r0] cmp r0, #0 beq _080224DC movs r4, #0xdc lsls r4, r4, #1 adds r0, r1, r4 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _08022522 _080224DC: ldr r4, _080224F4 @ =0x086ADFD4 mov r1, sl ldr r0, [r1] movs r2, #0xdc lsls r2, r2, #1 adds r0, r0, r2 b _08022544 .align 2, 0 _080224EC: .4byte 0x086AD2DE _080224F0: .4byte 0x000001AF _080224F4: .4byte 0x086ADFD4 _080224F8: cmp r3, #3 bne _0802253C movs r4, #0xd5 lsls r4, r4, #1 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08022526 movs r6, #0xdc lsls r6, r6, #1 adds r0, r1, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08022526 _08022522: movs r1, #4 b _08022556 _08022526: ldr r4, _08022538 @ =0x086ADFD4 mov r2, sl ldr r0, [r2] movs r3, #0xdc lsls r3, r3, #1 adds r0, r0, r3 movs r6, #0 ldrsh r0, [r0, r6] b _08022548 .align 2, 0 _08022538: .4byte 0x086ADFD4 _0802253C: ldr r4, _080225D0 @ =0x086ADFD4 movs r2, #0xdc lsls r2, r2, #1 adds r0, r1, r2 _08022544: movs r3, #0 ldrsh r0, [r0, r3] _08022548: movs r1, #5 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r4 ldrh r1, [r0] _08022556: ldr r2, _080225D4 @ =0x040000D4 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _080225D8 @ =0x0847FF0C adds r0, r0, r1 str r0, [r2] ldr r0, _080225DC @ =0x06016220 str r0, [r2, #4] ldr r0, _080225E0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] movs r5, #0 ldr r6, _080225E4 @ =0x03005000 ldr r4, _080225E8 @ =0xFFFFFE00 mov r8, r4 _0802257A: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080225EC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0802257A _080225BE: add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080225D0: .4byte 0x086ADFD4 _080225D4: .4byte 0x040000D4 _080225D8: .4byte 0x0847FF0C _080225DC: .4byte 0x06016220 _080225E0: .4byte 0x80000180 _080225E4: .4byte 0x03005000 _080225E8: .4byte 0xFFFFFE00 _080225EC: .4byte 0x000001FF thumb_func_start sub_225F0 sub_225F0: @ 0x080225F0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r5, _08022680 @ =0x0200B0C0 ldr r0, [r5, #0x44] adds r0, #0x9c ldr r7, [r0] ldr r2, _08022684 @ =0x020314E0 ldr r3, [r2] movs r1, #0xcb lsls r1, r1, #1 adds r0, r3, r1 ldrh r4, [r0] movs r6, #0xca lsls r6, r6, #1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 lsls r1, r0, #3 adds r1, r1, r0 adds r1, #0x13 mov sl, r2 cmp r4, r1 blt _0802262A b _08022958 _0802262A: cmp r4, #0 bne _08022690 movs r1, #0 movs r0, #1 strh r0, [r7] ldr r2, _08022688 @ =0x00000193 adds r0, r3, r2 strb r1, [r0] movs r2, #0 _0802263C: mov r3, sl ldr r4, [r3] lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 movs r5, #0xcc lsls r5, r5, #1 adds r0, r4, r5 adds r0, r0, r2 movs r5, #0 strh r5, [r0] lsls r0, r1, #2 adds r3, r4, r0 movs r6, #0xce lsls r6, r6, #1 adds r2, r3, r6 movs r0, #0x46 strh r0, [r2] movs r0, #0xcf lsls r0, r0, #1 adds r2, r3, r0 movs r0, #0xb4 strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #1 ble _0802263C ldr r1, _0802268C @ =0x00000195 adds r0, r4, r1 strb r5, [r0] b _08022908 .align 2, 0 _08022680: .4byte 0x0200B0C0 _08022684: .4byte 0x020314E0 _08022688: .4byte 0x00000193 _0802268C: .4byte 0x00000195 _08022690: adds r0, r3, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080226B6 ldrb r0, [r3, #5] cmp r0, #0 bne _080226AE ldrh r1, [r5, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080226B6 _080226AE: ldr r2, _0802279C @ =0x00000195 adds r1, r3, r2 movs r0, #1 strb r0, [r1] _080226B6: mov r3, sl ldr r5, [r3] ldr r4, _080227A0 @ =0x00000193 mov sb, r4 adds r6, r5, r4 movs r0, #0xca lsls r0, r0, #1 mov r8, r0 adds r0, r5, r0 movs r1, #0 ldrsb r1, [r6, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _080226D8 b _0802280E _080226D8: movs r1, #0xcb lsls r1, r1, #1 adds r0, r5, r1 ldrh r0, [r0] subs r4, r0, #1 adds r0, r4, #0 movs r1, #9 bl __modsi3 cmp r0, #0 beq _080226F0 b _0802280E _080226F0: ldr r2, _0802279C @ =0x00000195 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080227A4 adds r0, r4, #0 movs r1, #0x12 bl __modsi3 movs r1, #9 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 movs r3, #0xcc lsls r3, r3, #1 adds r1, r5, r3 adds r1, r1, r2 movs r2, #0x11 strh r2, [r1] lsls r0, r0, #2 adds r2, r5, r0 movs r4, #0xce lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xbc strh r0, [r1] movs r5, #0xcf lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x8c strh r0, [r1] movs r0, #0x7e bl m4aSongNumStart mov r6, sl ldr r1, [r6] movs r3, #0xc9 lsls r3, r3, #1 adds r2, r1, r3 mov r4, r8 adds r0, r1, r4 add r1, sb ldrb r0, [r0] ldrb r1, [r1] subs r0, r0, r1 ldrb r5, [r2] adds r0, r0, r5 strb r0, [r2] ldr r0, [r6] adds r1, r0, r3 ldrb r0, [r1] cmp r0, #0x63 bls _08022766 movs r0, #0x63 strb r0, [r1] _08022766: mov r6, sl ldr r2, [r6] mov r0, r8 adds r3, r2, r0 movs r1, #0 ldrsb r1, [r3, r1] mov r5, sb adds r4, r2, r5 movs r0, #0 ldrsb r0, [r4, r0] subs r1, r1, r0 movs r0, #0x64 muls r0, r1, r0 str r0, [r2, #0x3c] movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #3 adds r0, r0, r1 adds r0, #1 movs r6, #0xcb lsls r6, r6, #1 adds r2, r2, r6 strh r0, [r2] ldrb r0, [r3] strb r0, [r4] b _0802280E .align 2, 0 _0802279C: .4byte 0x00000195 _080227A0: .4byte 0x00000193 _080227A4: adds r0, r4, #0 movs r1, #0x12 bl __modsi3 movs r1, #9 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 movs r3, #0xcc lsls r3, r3, #1 adds r1, r5, r3 adds r1, r1, r2 movs r2, #0x11 strh r2, [r1] lsls r0, r0, #2 adds r2, r5, r0 movs r4, #0xce lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xbc strh r0, [r1] movs r5, #0xcf lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x8c strh r0, [r1] ldrb r0, [r6] adds r0, #1 strb r0, [r6] movs r0, #0x7e bl m4aSongNumStart mov r6, sl ldr r1, [r6] movs r2, #0xc9 lsls r2, r2, #1 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r6] adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x63 bls _08022806 movs r0, #0x63 strb r0, [r1] _08022806: mov r0, sl ldr r1, [r0] movs r0, #0x64 str r0, [r1, #0x3c] _0802280E: movs r2, #0 ldr r1, _08022848 @ =0x086B481A mov r8, r1 ldr r3, _0802284C @ =0x03005000 mov ip, r3 _08022818: mov r5, sl ldr r4, [r5] lsls r1, r2, #0x10 asrs r3, r1, #0x10 lsls r0, r3, #2 adds r2, r4, r0 movs r6, #0xce lsls r6, r6, #1 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r7, #2] movs r0, #0xcf lsls r0, r0, #1 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r7, #4] movs r5, #0 ldrsh r0, [r2, r5] mov sb, r1 cmp r0, #0xa0 ble _08022850 movs r0, #0 b _0802286A .align 2, 0 _08022848: .4byte 0x086B481A _0802284C: .4byte 0x03005000 _08022850: lsls r1, r3, #1 movs r6, #0xcc lsls r6, r6, #1 adds r0, r4, r6 adds r0, r0, r1 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #0x11 subs r0, r0, r1 lsrs r1, r0, #0x1f adds r0, r0, r1 lsls r0, r0, #0xf lsrs r0, r0, #0x10 _0802286A: mov r3, sb asrs r5, r3, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r7, r3 ldrh r2, [r3] lsls r2, r2, #3 add r2, ip lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 add r1, r8 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r3] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _08022968 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldr r0, _0802296C @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r3] lsls r1, r1, #3 add r1, ip ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] mov r4, sl ldr r3, [r4] lsls r1, r5, #1 subs r6, #0x67 adds r0, r3, r6 adds r1, r0, r1 ldrh r2, [r1] movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 ble _080228FA subs r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080228FA lsls r0, r5, #2 adds r2, r3, r0 movs r5, #0xce lsls r5, r5, #1 adds r1, r2, r5 movs r0, #0x46 strh r0, [r1] adds r6, #6 adds r1, r2, r6 movs r0, #0xb4 strh r0, [r1] _080228FA: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08022818 _08022908: mov r0, sl ldr r3, [r0] movs r2, #0xcb lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldrh r2, [r1] movs r4, #0xca lsls r4, r4, #1 adds r3, r3, r4 movs r1, #0 ldrsb r1, [r3, r1] subs r1, #1 lsls r0, r1, #3 adds r0, r0, r1 adds r0, #0x13 cmp r2, r0 bne _08022958 ldr r0, _08022970 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x9c ldr r1, [r0] movs r0, #0 strh r0, [r1] strb r0, [r3] mov r5, sl ldr r1, [r5] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08022958 ldr r6, _08022974 @ =0x000006DE adds r1, r1, r6 movs r0, #0xaa strh r0, [r1] _08022958: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08022968: .4byte 0x000001FF _0802296C: .4byte 0xFFFFFE00 _08022970: .4byte 0x0200B0C0 _08022974: .4byte 0x000006DE thumb_func_start sub_22978 sub_22978: @ 0x08022978 push {r4, r5, lr} ldr r3, _08022A00 @ =0x020314E0 ldr r1, [r3] movs r0, #0xb2 lsls r0, r0, #2 adds r2, r1, r0 movs r4, #0 movs r5, #0 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] ldr r0, _08022A04 @ =0x000002CA adds r2, r1, r0 movs r0, #0x82 lsls r0, r0, #4 strh r0, [r2] ldr r0, _08022A08 @ =0x000002C3 adds r1, r1, r0 strb r4, [r1] ldr r4, [r3] movs r1, #0xb1 lsls r1, r1, #2 adds r0, r4, r1 strh r5, [r0] ldr r0, _08022A0C @ =0x0200B0C0 ldr r1, _08022A10 @ =0x00003DE8 adds r0, r0, r1 movs r2, #1 movs r1, #1 strh r1, [r0] movs r1, #0xf6 lsls r1, r1, #1 adds r0, r4, r1 strb r2, [r0] ldr r2, [r3] movs r0, #0xfa lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0xf0 strh r0, [r1] movs r0, #0xfb lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0xa0 strh r0, [r1] adds r1, r2, #0 adds r1, #0xe4 movs r0, #3 strb r0, [r1] ldr r1, _08022A14 @ =0x040000D4 ldr r0, _08022A18 @ =0x083A808C str r0, [r1] ldr r0, _08022A1C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08022A20 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08022A24 @ =0x0848FD8C str r0, [r1] ldr r0, _08022A28 @ =0x06015800 str r0, [r1, #4] ldr r0, _08022A2C @ =0x80000650 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08022A00: .4byte 0x020314E0 _08022A04: .4byte 0x000002CA _08022A08: .4byte 0x000002C3 _08022A0C: .4byte 0x0200B0C0 _08022A10: .4byte 0x00003DE8 _08022A14: .4byte 0x040000D4 _08022A18: .4byte 0x083A808C _08022A1C: .4byte 0x050003C0 _08022A20: .4byte 0x80000010 _08022A24: .4byte 0x0848FD8C _08022A28: .4byte 0x06015800 _08022A2C: .4byte 0x80000650 thumb_func_start sub_22A30 sub_22A30: @ 0x08022A30 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r6, #0 ldr r7, _08022A68 @ =0x0200EEA8 ldr r1, _08022A6C @ =0x086ADFE2 ldr r4, _08022A70 @ =0x020314E0 ldr r2, [r4] ldr r5, _08022A74 @ =0x000002C3 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0xb1 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08022A78 adds r0, r1, #1 strh r0, [r2] b _08022B2E .align 2, 0 _08022A68: .4byte 0x0200EEA8 _08022A6C: .4byte 0x086ADFE2 _08022A70: .4byte 0x020314E0 _08022A74: .4byte 0x000002C3 _08022A78: ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r4] movs r2, #0xb1 lsls r2, r2, #2 adds r0, r1, r2 strh r6, [r0] ldr r3, _08022C30 @ =0x000002C3 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x29 bne _08022AAE movs r0, #0x28 strb r0, [r1] strh r6, [r7] ldr r0, [r4] movs r1, #0xb4 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r4] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _08022AAE: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08022AC4 movs r0, #0xa3 lsls r0, r0, #1 bl m4aSongNumStart _08022AC4: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _08022AD8 ldr r0, _08022C34 @ =0x00000147 bl m4aSongNumStart _08022AD8: ldr r0, [r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xd bne _08022AEE movs r0, #0xa4 lsls r0, r0, #1 bl m4aSongNumStart _08022AEE: ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x27 bne _08022B1C movs r2, #0xfa lsls r2, r2, #1 adds r0, r1, r2 strh r6, [r0] movs r3, #0xfb lsls r3, r3, #1 adds r0, r1, r3 strh r6, [r0] ldr r1, _08022C38 @ =0x040000D4 ldr r0, _08022C3C @ =0x084FD18C str r0, [r1] ldr r0, _08022C40 @ =0x06011CE0 str r0, [r1, #4] ldr r0, _08022C44 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] _08022B1C: ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _08022B2E ldr r0, _08022C48 @ =0x001E8480 str r0, [r1, #0x3c] _08022B2E: ldr r0, _08022C4C @ =0x020314E0 ldr r1, [r0] ldr r5, _08022C30 @ =0x000002C3 adds r0, r1, r5 ldrb r0, [r0] subs r0, #0xe lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x17 bhi _08022B5A movs r2, #0xa4 lsls r2, r2, #2 adds r0, r1, r2 ldr r0, [r0] movs r1, #7 bl __umodsi3 cmp r0, #0 bne _08022B5A ldr r0, _08022C50 @ =0x00000149 bl m4aSongNumStart _08022B5A: ldr r0, _08022C4C @ =0x020314E0 ldr r4, [r0] movs r3, #0xb2 lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0x14 bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r1, _08022C54 @ =0x000002CA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x14 bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] ldr r1, _08022C58 @ =0x086ADFE2 ldr r3, _08022C30 @ =0x000002C3 adds r4, r4, r3 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r1 movs r2, #0 ldr r5, _08022C5C @ =0x086B28A0 mov sb, r5 ldr r6, _08022C60 @ =0x03005000 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r5, _08022C64 @ =0xFFFFFE00 mov r8, r5 _08022BB6: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] mov sl, r0 mov r5, sl lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r5, _08022C68 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 mov r5, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _08022BB6 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08022C30: .4byte 0x000002C3 _08022C34: .4byte 0x00000147 _08022C38: .4byte 0x040000D4 _08022C3C: .4byte 0x084FD18C _08022C40: .4byte 0x06011CE0 _08022C44: .4byte 0x80000100 _08022C48: .4byte 0x001E8480 _08022C4C: .4byte 0x020314E0 _08022C50: .4byte 0x00000149 _08022C54: .4byte 0x000002CA _08022C58: .4byte 0x086ADFE2 _08022C5C: .4byte 0x086B28A0 _08022C60: .4byte 0x03005000 _08022C64: .4byte 0xFFFFFE00 _08022C68: .4byte 0x000001FF thumb_func_start sub_22C6C sub_22C6C: @ 0x08022C6C push {r4, r5, r6, lr} ldr r4, _08022D14 @ =0x020314E0 ldr r2, [r4] ldr r0, _08022D18 @ =0x000002C6 adds r1, r2, r0 movs r0, #0 strh r0, [r1] movs r5, #0xb2 lsls r5, r5, #2 adds r1, r2, r5 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] ldr r6, _08022D1C @ =0x000002CA adds r1, r2, r6 ldr r0, _08022D20 @ =0x0000FFD8 strh r0, [r1] movs r0, #0xb3 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, _08022D24 @ =0x0000FFDC strh r0, [r1] ldr r0, _08022D28 @ =0x000002CE adds r1, r2, r0 movs r0, #0x3c strh r0, [r1] ldr r0, _08022D2C @ =0x0200B0C0 ldr r1, _08022D30 @ =0x00000B98 adds r0, r0, r1 movs r3, #1 movs r1, #1 strh r1, [r0] movs r0, #0xf6 lsls r0, r0, #1 adds r2, r2, r0 strb r3, [r2] ldr r4, [r4] adds r5, r4, r5 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0x14 bl __divsi3 ldr r5, _08022D34 @ =0x086AE088 ldrh r1, [r5] subs r0, r0, r1 movs r2, #0xfa lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r6, r4, r6 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0x14 bl __divsi3 ldrh r1, [r5, #2] subs r0, r0, r1 movs r2, #0xfb lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r4, #0xe4 movs r0, #2 strb r0, [r4] ldr r1, _08022D38 @ =0x040000D4 ldr r0, _08022D3C @ =0x083A806C str r0, [r1] ldr r0, _08022D40 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08022D44 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08022D48 @ =0x083A704C str r0, [r1] ldr r0, _08022D4C @ =0x06015800 str r0, [r1, #4] ldr r0, _08022D50 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08022D14: .4byte 0x020314E0 _08022D18: .4byte 0x000002C6 _08022D1C: .4byte 0x000002CA _08022D20: .4byte 0x0000FFD8 _08022D24: .4byte 0x0000FFDC _08022D28: .4byte 0x000002CE _08022D2C: .4byte 0x0200B0C0 _08022D30: .4byte 0x00000B98 _08022D34: .4byte 0x086AE088 _08022D38: .4byte 0x040000D4 _08022D3C: .4byte 0x083A806C _08022D40: .4byte 0x050003C0 _08022D44: .4byte 0x80000010 _08022D48: .4byte 0x083A704C _08022D4C: .4byte 0x06015800 _08022D50: .4byte 0x80000800 thumb_func_start sub_22D54 sub_22D54: @ 0x08022D54 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _08022E38 @ =0x020314E0 ldr r5, [r4] ldr r0, _08022E3C @ =0x000002C6 mov sb, r0 adds r0, r5, r0 ldrh r6, [r0] adds r0, r6, #0 movs r1, #0x38 bl __umodsi3 lsls r0, r0, #0x10 lsrs r7, r0, #0x13 ldr r1, _08022E40 @ =0x0200BC58 mov r8, r1 mov sl, r4 cmp r6, #0x81 bls _08022D82 b _08022EA0 _08022D82: adds r0, r6, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08022D96 movs r0, #0xb8 bl m4aSongNumStart _08022D96: mov r2, sl ldr r1, [r2] mov r3, sb adds r2, r1, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r2] movs r5, #0xb2 lsls r5, r5, #2 adds r2, r1, r5 movs r3, #0xb3 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] ldrh r5, [r2] adds r0, r0, r5 strh r0, [r2] ldr r0, _08022E44 @ =0x000002CA adds r2, r1, r0 adds r3, #2 adds r4, r1, r3 ldrh r0, [r4] ldrh r5, [r2] adds r0, r0, r5 strh r0, [r2] ldrh r6, [r4] movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #7 bgt _08022DE2 ldr r0, _08022E48 @ =0xFFFFF468 add r0, r8 ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 cmp r0, #0 bne _08022DE6 _08022DE2: subs r0, r6, #1 strh r0, [r4] _08022DE6: ldr r0, _08022E38 @ =0x020314E0 ldr r6, [r0] ldr r2, _08022E3C @ =0x000002C6 adds r1, r6, r2 ldrh r1, [r1] mov sl, r0 cmp r1, #0x4d bhi _08022E50 movs r3, #0xb2 lsls r3, r3, #2 adds r0, r6, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0x14 bl __divsi3 ldr r1, _08022E4C @ =0x086AE088 lsls r5, r7, #0x10 lsrs r4, r5, #0xe adds r4, r4, r1 ldrh r1, [r4] subs r0, r0, r1 movs r7, #0xfa lsls r7, r7, #1 adds r1, r6, r7 strh r0, [r1] ldr r1, _08022E44 @ =0x000002CA adds r0, r6, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x14 bl __divsi3 ldrh r1, [r4, #2] subs r0, r0, r1 movs r3, #0xfb lsls r3, r3, #1 adds r1, r6, r3 strh r0, [r1] b _08022E64 .align 2, 0 _08022E38: .4byte 0x020314E0 _08022E3C: .4byte 0x000002C6 _08022E40: .4byte 0x0200BC58 _08022E44: .4byte 0x000002CA _08022E48: .4byte 0xFFFFF468 _08022E4C: .4byte 0x086AE088 _08022E50: movs r5, #0xfa lsls r5, r5, #1 adds r0, r6, r5 movs r1, #0 strh r1, [r0] movs r2, #0xfb lsls r2, r2, #1 adds r0, r6, r2 strh r1, [r0] lsls r5, r7, #0x10 _08022E64: mov r3, sl ldr r1, [r3] ldr r7, _08022E88 @ =0x000002C6 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0x4e bne _08022E76 ldr r0, _08022E8C @ =0x000186A0 str r0, [r1, #0x3c] _08022E76: ldr r1, _08022E90 @ =0x040000D4 ldr r0, _08022E94 @ =0x084FD18C str r0, [r1] ldr r0, _08022E98 @ =0x06011CE0 str r0, [r1, #4] ldr r0, _08022E9C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] b _08022EBA .align 2, 0 _08022E88: .4byte 0x000002C6 _08022E8C: .4byte 0x000186A0 _08022E90: .4byte 0x040000D4 _08022E94: .4byte 0x084FD18C _08022E98: .4byte 0x06011CE0 _08022E9C: .4byte 0x80000100 _08022EA0: movs r2, #0 mov r0, r8 strh r2, [r0] movs r3, #0xb4 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #2 strb r0, [r1] mov r5, sl ldr r0, [r5] adds r0, #0xe4 strb r2, [r0] lsls r5, r7, #0x10 _08022EBA: mov r7, sl ldr r4, [r7] movs r1, #0xb2 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x14 bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r3, r8 strh r0, [r3, #2] ldr r7, _08022F90 @ =0x000002CA adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0x14 bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 mov r2, r8 strh r0, [r2, #4] movs r2, #0 ldr r3, _08022F94 @ =0x03005000 mov ip, r3 ldr r7, _08022F98 @ =0x086B4850 mov sl, r7 asrs r1, r5, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r6, r0, #1 ldr r0, _08022F9C @ =0xFFFFFE00 mov sb, r0 _08022F08: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, r8 ldrh r2, [r4] lsls r2, r2, #3 add r2, ip lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r6 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r6 add r1, sl ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, ip ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 mov r7, r8 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _08022FA0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ldrh r5, [r2, #2] ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, ip mov r7, r8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #4 ble _08022F08 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08022F90: .4byte 0x000002CA _08022F94: .4byte 0x03005000 _08022F98: .4byte 0x086B4850 _08022F9C: .4byte 0xFFFFFE00 _08022FA0: .4byte 0x000001FF thumb_func_start sub_22FA4 sub_22FA4: @ 0x08022FA4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _0802301C @ =0x020314E0 ldr r0, [r4] ldr r1, _08023020 @ =0x0000020E adds r0, r0, r1 movs r1, #0 strh r1, [r0] movs r0, #9 bl sub_1C7F4 ldr r0, [r4] adds r0, #0xe4 movs r1, #0xe strb r1, [r0] ldr r0, _08023024 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x10] movs r0, #1 strh r0, [r1] movs r2, #0 mov r8, r4 ldr r7, _08023028 @ =0x086A3707 mov ip, r7 ldr r4, _0802302C @ =0x040000D4 ldr r0, _08023030 @ =0x06015800 mov sb, r0 ldr r6, _08023034 @ =0x80000020 _08022FE0: lsls r2, r2, #0x10 asrs r3, r2, #0x10 mov r1, r8 ldr r5, [r1] movs r7, #0xb3 lsls r7, r7, #3 adds r0, r5, r7 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r3, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _0802303C ldr r0, _08023038 @ =0x083FFD4C str r0, [r4] lsls r0, r3, #6 add r0, sb str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08023020 @ =0x0000020E adds r1, r5, r0 ldrh r0, [r1] adds r0, #4 strh r0, [r1] b _08023052 .align 2, 0 _0802301C: .4byte 0x020314E0 _08023020: .4byte 0x0000020E _08023024: .4byte 0x0200B0C0 _08023028: .4byte 0x086A3707 _0802302C: .4byte 0x040000D4 _08023030: .4byte 0x06015800 _08023034: .4byte 0x80000020 _08023038: .4byte 0x083FFD4C _0802303C: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0802306C @ =0x083FF04C adds r0, r0, r1 str r0, [r4] lsls r0, r3, #6 add r0, sb str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] _08023052: movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08022FE0 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802306C: .4byte 0x083FF04C thumb_func_start sub_23070 sub_23070: @ 0x08023070 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _080230F4 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r6, [r0, #0x10] movs r0, #0 ldr r1, _080230F8 @ =0x020314E0 mov r8, r1 ldr r7, _080230FC @ =0x03005000 ldr r2, _08023100 @ =0xFFFFFE00 mov ip, r2 _08023088: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 mov r3, r8 ldr r1, [r3] ldr r2, _08023104 @ =0x0000020E adds r0, r1, r2 ldrh r0, [r0] adds r0, #0x98 movs r3, #0xdb lsls r3, r3, #1 adds r2, r1, r3 adds r0, r4, r0 ldrh r2, [r2] adds r0, r0, r2 strh r0, [r6, #2] movs r0, #0x60 strh r0, [r6, #4] adds r4, #8 adds r4, r6, r4 ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r4, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08023108 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #9 ble _08023088 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080230F4: .4byte 0x0200B0C0 _080230F8: .4byte 0x020314E0 _080230FC: .4byte 0x03005000 _08023100: .4byte 0xFFFFFE00 _08023104: .4byte 0x0000020E _08023108: .4byte 0x000001FF thumb_func_start sub_2310C sub_2310C: @ 0x0802310C ldr r0, _08023124 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x10] movs r2, #0 movs r0, #0 strh r0, [r1] ldr r0, _08023128 @ =0x020314E0 ldr r0, [r0] adds r0, #0xe4 strb r2, [r0] bx lr .align 2, 0 _08023124: .4byte 0x0200B0C0 _08023128: .4byte 0x020314E0 thumb_func_start sub_2312C sub_2312C: @ 0x0802312C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _080231B8 @ =0x020314E0 ldr r0, [r4] ldr r2, _080231BC @ =0x0000020E adds r1, r0, r2 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r7, _080231C0 @ =0x000006DB adds r0, r0, r7 strb r2, [r0] ldr r0, [r4] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] adds r0, #0xe4 movs r1, #0xd strb r1, [r0] ldr r0, _080231C4 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x10] movs r0, #1 strh r0, [r1] movs r5, #0 mov r8, r4 ldr r2, _080231C8 @ =0x086A3707 mov ip, r2 ldr r3, _080231CC @ =0x040000D4 ldr r7, _080231D0 @ =0x06015800 mov sb, r7 ldr r6, _080231D4 @ =0x80000020 _0802317C: lsls r0, r5, #0x10 asrs r2, r0, #0x10 mov r0, r8 ldr r4, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r4, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r2, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _080231DC ldr r0, _080231D8 @ =0x083FFD4C str r0, [r3] lsls r0, r2, #6 add r0, sb str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] ldr r0, _080231BC @ =0x0000020E adds r1, r4, r0 ldrh r0, [r1] adds r0, #4 strh r0, [r1] b _080231F2 .align 2, 0 _080231B8: .4byte 0x020314E0 _080231BC: .4byte 0x0000020E _080231C0: .4byte 0x000006DB _080231C4: .4byte 0x0200B0C0 _080231C8: .4byte 0x086A3707 _080231CC: .4byte 0x040000D4 _080231D0: .4byte 0x06015800 _080231D4: .4byte 0x80000020 _080231D8: .4byte 0x083FFD4C _080231DC: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _08023230 @ =0x083FF04C adds r0, r0, r1 str r0, [r3] lsls r0, r2, #6 add r0, sb str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] _080231F2: lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0802317C ldr r0, _08023234 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x14] movs r0, #1 strh r0, [r1] movs r5, #0 ldr r2, _08023238 @ =0x086ACFE0 mov r8, r2 ldr r3, _0802323C @ =0x040000D4 ldr r6, _08023240 @ =0x06015800 ldr r4, _08023244 @ =0x80000020 _08023218: lsls r0, r5, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #1 mov r7, r8 adds r1, r0, r7 movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0x20 bne _0802324C ldr r0, _08023248 @ =0x083FFD4C b _08023258 .align 2, 0 _08023230: .4byte 0x083FF04C _08023234: .4byte 0x0200B0C0 _08023238: .4byte 0x086ACFE0 _0802323C: .4byte 0x040000D4 _08023240: .4byte 0x06015800 _08023244: .4byte 0x80000020 _08023248: .4byte 0x083FFD4C _0802324C: movs r7, #0 ldrsh r0, [r1, r7] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _080232EC @ =0x083FF04C adds r0, r0, r1 _08023258: str r0, [r3] adds r0, r2, #0 adds r0, #0xa lsls r0, r0, #6 adds r0, r0, r6 str r0, [r3, #4] str r4, [r3, #8] ldr r0, [r3, #8] lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08023218 movs r5, #0 ldr r2, _080232F0 @ =0x020314E0 mov ip, r2 ldr r7, _080232F4 @ =0x00000212 movs r6, #0 movs r4, #0x8a lsls r4, r4, #2 _08023286: mov r0, ip ldr r2, [r0] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r3, r1, #1 adds r0, r2, r7 adds r0, r0, r3 strh r3, [r0] lsls r0, r1, #2 adds r2, r2, r0 adds r2, r2, r4 strh r6, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _08023286 movs r5, #0 ldr r1, _080232F0 @ =0x020314E0 mov ip, r1 movs r7, #0 ldr r6, _080232F8 @ =0x000013D4 ldr r4, _080232FC @ =0x000013E8 _080232B6: mov r2, ip ldr r3, [r2] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r2, r3, r6 adds r2, r2, r0 adds r0, r1, #0 adds r0, #0xa lsls r0, r0, #1 strh r0, [r2] lsls r0, r1, #2 adds r3, r3, r0 adds r3, r3, r4 strh r7, [r3] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _080232B6 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080232EC: .4byte 0x083FF04C _080232F0: .4byte 0x020314E0 _080232F4: .4byte 0x00000212 _080232F8: .4byte 0x000013D4 _080232FC: .4byte 0x000013E8 thumb_func_start sub_23300 sub_23300: @ 0x08023300 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _080233E4 @ =0x020314E0 ldr r1, [r0] ldr r2, _080233E8 @ =0x000006C4 adds r1, r1, r2 movs r4, #0 strb r4, [r1] ldr r1, [r0] movs r3, #0x84 lsls r3, r3, #2 adds r1, r1, r3 ldrh r2, [r1] adds r3, r2, #0 mov r8, r0 cmp r3, #0 bne _080233FC adds r0, r2, #1 strh r0, [r1] ldr r1, _080233EC @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] strh r4, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _080233F0 @ =0x03005000 ldr r4, _080233F4 @ =0xFFFFFE00 mov r8, r4 _08023342: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080233F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _08023342 ldr r3, _080233EC @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r7, [r0, #0x14] movs r0, #0 strh r0, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _080233F0 @ =0x03005000 ldr r4, _080233F4 @ =0xFFFFFE00 mov r8, r4 _0802339C: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080233F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _0802339C b _08023934 .align 2, 0 _080233E4: .4byte 0x020314E0 _080233E8: .4byte 0x000006C4 _080233EC: .4byte 0x0200B0C0 _080233F0: .4byte 0x03005000 _080233F4: .4byte 0xFFFFFE00 _080233F8: .4byte 0x000001FF _080233FC: cmp r3, #0xc2 bls _08023402 b _0802385C _08023402: adds r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x9b bls _08023410 b _08023688 _08023410: ldr r1, _0802343C @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] movs r5, #0 ldr r3, _08023440 @ =0x03005000 mov sb, r3 ldr r4, _08023444 @ =0x00000637 mov sl, r4 _08023420: mov r0, r8 ldr r3, [r0] lsls r0, r5, #0x10 asrs r2, r0, #0x10 lsls r1, r2, #1 ldr r4, _08023448 @ =0x00000212 adds r0, r3, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 beq _0802344C subs r0, #1 strh r0, [r1] b _0802347C .align 2, 0 _0802343C: .4byte 0x0200B0C0 _08023440: .4byte 0x03005000 _08023444: .4byte 0x00000637 _08023448: .4byte 0x00000212 _0802344C: lsls r0, r2, #2 adds r0, r3, r0 movs r1, #0x8a lsls r1, r1, #2 adds r4, r0, r1 movs r2, #0 ldrsh r1, [r4, r2] movs r6, #0xc8 lsls r6, r6, #3 subs r1, r6, r1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, sl ble _0802347C strh r6, [r4] _0802347C: lsls r6, r5, #0x10 asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 movs r1, #0x8a lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 subs r0, #0xa0 ldr r3, _08023530 @ =0x0000020E adds r1, r5, r3 subs r4, r4, r0 ldrh r1, [r1] adds r4, r4, r1 strh r4, [r7, #2] ldr r4, _08023534 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x24 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023538 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _0802353C @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023420 ldr r5, _08023540 @ =0x0200B0C0 ldr r0, [r5, #0x44] ldr r7, [r0, #0x14] movs r5, #0 ldr r0, _08023544 @ =0x00000637 mov sl, r0 ldr r1, _08023548 @ =0x03005000 mov sb, r1 _08023512: mov r2, r8 ldr r4, [r2] lsls r2, r5, #0x10 asrs r3, r2, #0x10 lsls r1, r3, #1 ldr r5, _0802354C @ =0x000013D4 adds r0, r4, r5 adds r1, r0, r1 ldrh r0, [r1] adds r6, r2, #0 cmp r0, #0 beq _08023550 subs r0, #1 strh r0, [r1] b _0802357E .align 2, 0 _08023530: .4byte 0x0000020E _08023534: .4byte 0x000006E6 _08023538: .4byte 0x000001FF _0802353C: .4byte 0xFFFFFE00 _08023540: .4byte 0x0200B0C0 _08023544: .4byte 0x00000637 _08023548: .4byte 0x03005000 _0802354C: .4byte 0x000013D4 _08023550: lsls r0, r3, #2 adds r0, r4, r0 ldr r1, _0802366C @ =0x000013E8 adds r4, r0, r1 movs r2, #0 ldrsh r1, [r4, r2] movs r5, #0xc8 lsls r5, r5, #3 subs r1, r5, r1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 cmp r1, sl ble _0802357E strh r5, [r4] _0802357E: asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 ldr r1, _0802366C @ =0x000013E8 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 subs r0, #0xa0 subs r4, r4, r0 strh r4, [r7, #2] ldr r4, _08023670 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x34 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023674 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _08023678 @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023512 mov r5, r8 ldr r0, [r5] movs r1, #0x84 lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x9b beq _0802360A b _08023934 _0802360A: movs r0, #0 ldr r7, _0802367C @ =0x00000212 movs r6, #0 movs r4, #0x8a lsls r4, r4, #2 _08023614: ldr r2, [r5] lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r3, r1, #1 adds r0, r2, r7 adds r0, r0, r3 strh r3, [r0] lsls r0, r1, #2 adds r2, r2, r0 adds r2, r2, r4 strh r6, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _08023614 movs r0, #0 ldr r7, _08023680 @ =0x020314E0 movs r6, #0 ldr r5, _08023684 @ =0x000013D4 ldr r4, _0802366C @ =0x000013E8 _08023640: ldr r3, [r7] lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r2, r3, r5 adds r2, r2, r0 adds r0, r1, #0 adds r0, #0xa lsls r0, r0, #1 strh r0, [r2] lsls r0, r1, #2 adds r3, r3, r0 adds r3, r3, r4 strh r6, [r3] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _08023640 b _08023934 .align 2, 0 _0802366C: .4byte 0x000013E8 _08023670: .4byte 0x000006E6 _08023674: .4byte 0x000001FF _08023678: .4byte 0xFFFFFE00 _0802367C: .4byte 0x00000212 _08023680: .4byte 0x020314E0 _08023684: .4byte 0x000013D4 _08023688: ldr r1, _080236B0 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r7, [r0, #0x10] movs r5, #0 ldr r2, _080236B4 @ =0x03005000 mov sb, r2 _08023694: mov r3, r8 ldr r2, [r3] lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsls r1, r4, #1 ldr r3, _080236B8 @ =0x00000212 adds r0, r2, r3 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 beq _080236BC subs r0, #1 strh r0, [r1] b _080236E2 .align 2, 0 _080236B0: .4byte 0x0200B0C0 _080236B4: .4byte 0x03005000 _080236B8: .4byte 0x00000212 _080236BC: lsls r4, r4, #2 adds r4, r2, r4 movs r0, #0x8a lsls r0, r0, #2 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xfa lsls r1, r1, #3 subs r1, r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] _080236E2: lsls r6, r5, #0x10 asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 movs r1, #0x8a lsls r1, r1, #2 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 ldr r3, _08023790 @ =0x0000020E adds r1, r5, r3 subs r4, r4, r0 ldrh r1, [r1] adds r4, r4, r1 strh r4, [r7, #2] ldr r4, _08023794 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x24 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023798 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _0802379C @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023694 ldr r5, _080237A0 @ =0x0200B0C0 ldr r0, [r5, #0x44] ldr r7, [r0, #0x14] movs r5, #0 ldr r0, _080237A4 @ =0x03005000 mov sb, r0 _08023772: mov r1, r8 ldr r3, [r1] lsls r2, r5, #0x10 asrs r4, r2, #0x10 lsls r1, r4, #1 ldr r5, _080237A8 @ =0x000013D4 adds r0, r3, r5 adds r1, r0, r1 ldrh r0, [r1] adds r6, r2, #0 cmp r0, #0 beq _080237AC subs r0, #1 strh r0, [r1] b _080237D0 .align 2, 0 _08023790: .4byte 0x0000020E _08023794: .4byte 0x000006E6 _08023798: .4byte 0x000001FF _0802379C: .4byte 0xFFFFFE00 _080237A0: .4byte 0x0200B0C0 _080237A4: .4byte 0x03005000 _080237A8: .4byte 0x000013D4 _080237AC: lsls r4, r4, #2 adds r4, r3, r4 ldr r0, _0802384C @ =0x000013E8 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xfa lsls r1, r1, #3 subs r1, r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x64 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] _080237D0: asrs r6, r6, #0x10 lsls r2, r6, #3 adds r4, r2, #0 adds r4, #0x50 mov r3, r8 ldr r5, [r3] adds r0, r5, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 lsls r0, r6, #2 adds r0, r5, r0 ldr r1, _0802384C @ =0x000013E8 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa str r2, [sp] bl __divsi3 subs r4, r4, r0 strh r4, [r7, #2] ldr r4, _08023850 @ =0x000006E6 adds r5, r5, r4 ldrh r0, [r5] adds r0, #0x34 strh r0, [r7, #4] ldr r2, [sp] adds r2, #8 adds r5, r7, r2 ldrh r3, [r5] lsls r3, r3, #3 add r3, sb movs r0, #2 ldrsh r2, [r5, r0] movs r1, #2 ldrsh r0, [r7, r1] adds r2, r2, r0 ldr r4, _08023854 @ =0x000001FF adds r0, r4, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r4, _08023858 @ =0xFFFFFE00 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r6, #1 lsls r6, r6, #0x10 lsrs r5, r6, #0x10 asrs r6, r6, #0x10 cmp r6, #9 ble _08023772 b _08023934 .align 2, 0 _0802384C: .4byte 0x000013E8 _08023850: .4byte 0x000006E6 _08023854: .4byte 0x000001FF _08023858: .4byte 0xFFFFFE00 _0802385C: ldr r0, _08023944 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r7, [r1, #0x10] ldrh r1, [r7] cmp r1, #0 beq _080238BA strh r4, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _08023948 @ =0x03005000 ldr r0, _0802394C @ =0xFFFFFE00 mov sb, r0 _08023876: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08023950 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _08023876 _080238BA: ldr r3, _08023944 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r7, [r0, #0x14] ldrh r0, [r7] cmp r0, #0 beq _0802391A movs r0, #0 strh r0, [r7, #2] movs r0, #0xb4 strh r0, [r7, #4] movs r5, #0 ldr r6, _08023948 @ =0x03005000 ldr r4, _0802394C @ =0xFFFFFE00 mov sb, r4 _080238D6: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08023950 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #9 ble _080238D6 _0802391A: ldr r3, _08023944 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r0, [r0, #0x10] movs r2, #0 movs r1, #0 strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x14] strh r1, [r0] mov r4, r8 ldr r0, [r4] adds r0, #0xe4 strb r2, [r0] _08023934: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08023944: .4byte 0x0200B0C0 _08023948: .4byte 0x03005000 _0802394C: .4byte 0xFFFFFE00 _08023950: .4byte 0x000001FF thumb_func_start sub_23954 sub_23954: @ 0x08023954 push {r4, lr} ldr r2, _08023998 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf6 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r4, #0xf7 lsls r4, r4, #1 adds r0, r0, r4 strb r3, [r0] ldr r0, [r2] ldr r1, _0802399C @ =0x000001ED adds r0, r0, r1 strb r3, [r0] ldr r0, [r2] adds r4, #2 adds r1, r0, r4 movs r4, #0 strh r3, [r1] ldr r1, _080239A0 @ =0x000002DA adds r0, r0, r1 strb r4, [r0] ldr r0, [r2] subs r1, #1 adds r0, r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08023998: .4byte 0x020314E0 _0802399C: .4byte 0x000001ED _080239A0: .4byte 0x000002DA thumb_func_start sub_239A4 sub_239A4: @ 0x080239A4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov r8, r0 movs r7, #0 movs r6, #0 ldr r1, _080239DC @ =0x0200D638 mov sb, r1 mov ip, r6 ldr r1, _080239E0 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf6 lsls r2, r2, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bhi _08023A22 lsls r0, r0, #2 ldr r1, _080239E4 @ =_080239E8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080239DC: .4byte 0x0200D638 _080239E0: .4byte 0x020314E0 _080239E4: .4byte _080239E8 _080239E8: @ jump table .4byte _08023A22 @ case 0 .4byte _08023A22 @ case 1 .4byte _08023A00 @ case 2 .4byte _08023A06 @ case 3 .4byte _08023A10 @ case 4 .4byte _08023A1A @ case 5 _08023A00: movs r3, #4 mov r8, r3 b _08023A0A _08023A06: movs r4, #8 mov r8, r4 _08023A0A: movs r7, #4 movs r6, #3 b _08023A22 _08023A10: movs r6, #0xc mov r8, r6 movs r7, #0xc movs r6, #5 b _08023A22 _08023A1A: movs r0, #0x21 mov r8, r0 movs r7, #0 movs r6, #0 _08023A22: ldr r1, _08023AD4 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r0, r2 ldr r5, _08023AD8 @ =0x000001ED adds r2, r0, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r0, #0 ldrsb r0, [r2, r0] cmp r1, r0 beq _08023A9A ldr r3, _08023ADC @ =0x086AD2EE lsls r0, r0, #3 adds r1, r3, #4 adds r0, r0, r1 ldr r2, _08023AE0 @ =0x040000D4 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08023AE4 @ =0x084FB68C adds r0, r0, r1 str r0, [r2] ldr r0, _08023AE8 @ =0x060122A0 str r0, [r2, #4] ldr r0, _08023AEC @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _08023AD4 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r3, #6 adds r0, r0, r3 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #9 ldr r1, _08023AF0 @ =0x084FD18C adds r0, r0, r1 str r0, [r2] ldr r0, _08023AF4 @ =0x06011CE0 str r0, [r2, #4] ldr r0, _08023AF8 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r4, _08023AD4 @ =0x020314E0 ldr r1, [r4] adds r0, r1, r5 ldrb r0, [r0] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r1, r2 strb r0, [r1] _08023A9A: ldr r3, _08023AD4 @ =0x020314E0 ldr r2, [r3] movs r4, #0xf6 lsls r4, r4, #1 mov sl, r4 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08023AB2 b _08023C06 _08023AB2: ldr r0, _08023ADC @ =0x086AD2EE adds r3, r2, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #3 adds r0, #2 adds r1, r1, r0 movs r0, #0xf8 lsls r0, r0, #1 adds r4, r2, r0 ldrh r2, [r4] ldrh r0, [r1] cmp r0, r2 bls _08023AFC adds r0, r2, #1 strh r0, [r4] b _08023BEE .align 2, 0 _08023AD4: .4byte 0x020314E0 _08023AD8: .4byte 0x000001ED _08023ADC: .4byte 0x086AD2EE _08023AE0: .4byte 0x040000D4 _08023AE4: .4byte 0x084FB68C _08023AE8: .4byte 0x060122A0 _08023AEC: .4byte 0x80000240 _08023AF0: .4byte 0x084FD18C _08023AF4: .4byte 0x06011CE0 _08023AF8: .4byte 0x80000100 _08023AFC: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] ldr r3, _08023C94 @ =0x020314E0 ldr r1, [r3] movs r4, #0xf8 lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, r8 blt _08023B22 strb r7, [r1] ldr r0, [r3] add r0, sl strb r6, [r0] _08023B22: ldr r6, _08023C94 @ =0x020314E0 ldr r0, [r6] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bne _08023B36 bl sub_32484 _08023B36: ldr r1, _08023C94 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x13 bne _08023B66 bl sub_325E0 ldr r0, _08023C98 @ =0x0200B0C0 ldrb r0, [r0, #2] cmp r0, #3 beq _08023B66 ldr r2, _08023C94 @ =0x020314E0 ldr r0, [r2] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #1 bl sub_52BB0 _08023B66: ldr r5, _08023C94 @ =0x020314E0 ldr r0, [r5] ldr r4, _08023C9C @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _08023B7C bl sub_28BFC _08023B7C: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _08023B8E cmp r0, #0x1b bne _08023B9E _08023B8E: movs r6, #0xf8 lsls r6, r6, #1 adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0 bne _08023B9E bl m4aMPlayAllStop _08023B9E: ldr r0, _08023C94 @ =0x020314E0 ldr r1, [r0] ldr r2, _08023C9C @ =0x000001ED adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _08023BC2 movs r3, #0xf8 lsls r3, r3, #1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _08023BC2 movs r0, #0x16 bl m4aSongNumStart _08023BC2: ldr r5, _08023C94 @ =0x020314E0 ldr r0, [r5] ldr r4, _08023C9C @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1d bne _08023BDA movs r0, #5 bl sub_19B64 _08023BDA: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1c bne _08023BEE movs r0, #0x92 bl m4aSongNumStart _08023BEE: ldr r2, _08023CA0 @ =0x086AD2EE ldr r1, _08023C94 @ =0x020314E0 ldr r0, [r1] ldr r4, _08023C9C @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] mov ip, r0 _08023C06: ldr r6, _08023C94 @ =0x020314E0 ldr r3, [r6] adds r0, r3, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x58 subs r0, r0, r1 movs r1, #0xf4 lsls r1, r1, #1 adds r2, r3, r1 strh r0, [r2] adds r0, r3, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x90 subs r0, r0, r1 movs r6, #0xf5 lsls r6, r6, #1 adds r4, r3, r6 strh r0, [r4] movs r1, #0xfa lsls r1, r1, #1 adds r0, r3, r1 ldrh r0, [r0] ldrh r2, [r2] adds r0, r0, r2 mov r2, sb strh r0, [r2, #2] adds r6, #2 adds r0, r3, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08023CC4 subs r1, #7 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 bne _08023CA4 movs r2, #0xf8 lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r1] cmp r0, #0xd0 bls _08023CA4 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #1 subs r0, r0, r1 cmp r0, #0 bge _08023C74 adds r0, #0xf _08023C74: asrs r0, r0, #4 ldr r1, _08023C98 @ =0x0200B0C0 adds r0, #1 lsls r0, r0, #1 ldr r1, [r1, #0x4c] ands r1, r0 cmp r1, #0 beq _08023CC4 movs r6, #0xfb lsls r6, r6, #1 adds r0, r3, r6 ldrh r0, [r0] ldrh r4, [r4] adds r0, r0, r4 b _08023CBA .align 2, 0 _08023C94: .4byte 0x020314E0 _08023C98: .4byte 0x0200B0C0 _08023C9C: .4byte 0x000001ED _08023CA0: .4byte 0x086AD2EE _08023CA4: ldr r3, _08023CC0 @ =0x020314E0 ldr r0, [r3] movs r4, #0xf5 lsls r4, r4, #1 adds r1, r0, r4 movs r6, #0xfb lsls r6, r6, #1 adds r0, r0, r6 ldrh r0, [r0] ldrh r1, [r1] adds r0, r0, r1 _08023CBA: mov r1, sb strh r0, [r1, #4] b _08023CCA .align 2, 0 _08023CC0: .4byte 0x020314E0 _08023CC4: movs r0, #0xc8 mov r2, sb strh r0, [r2, #4] _08023CCA: movs r2, #0 mov r3, ip lsls r1, r3, #0x10 ldr r7, _08023DFC @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov sl, r0 _08023CDC: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 mov r4, sb adds r5, r4, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r6, _08023E00 @ =0x086B4D4E adds r0, r0, r6 add r0, sl ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 movs r0, #1 lsls r0, r0, #2 str r0, [sp] ldrb r2, [r1, #5] movs r4, #0xd rsbs r4, r4, #0 mov r8, r4 mov r0, r8 ands r0, r2 ldr r6, [sp] orrs r0, r6 strb r0, [r1, #5] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 mov r1, sb movs r6, #2 ldrsh r0, [r1, r6] mov r6, ip adds r1, r6, r0 ldr r6, _08023E04 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldr r0, _08023E08 @ =0xFFFFFE00 mov ip, r0 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 mov r2, sb ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08023CDC ldr r6, _08023E0C @ =0x0200D918 mov sb, r6 ldr r1, _08023E10 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf4 lsls r2, r2, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r6, #2] ldr r0, [r1] movs r3, #0xf5 lsls r3, r3, #1 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r6, #4] movs r2, #0 ldr r7, _08023DFC @ =0x03005000 mov sl, r8 mov r8, ip _08023D92: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 ldr r6, _08023E14 @ =0x0200D920 adds r5, r0, r6 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #5] mov r0, sl ands r0, r2 ldr r2, [sp] orrs r0, r2 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r6, #2 ldrsh r1, [r5, r6] mov r2, sb movs r6, #2 ldrsh r0, [r2, r6] adds r1, r1, r0 ldr r2, _08023E04 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08023D92 add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08023DFC: .4byte 0x03005000 _08023E00: .4byte 0x086B4D4E _08023E04: .4byte 0x000001FF _08023E08: .4byte 0xFFFFFE00 _08023E0C: .4byte 0x0200D918 _08023E10: .4byte 0x020314E0 _08023E14: .4byte 0x0200D920 thumb_func_start sub_23E18 sub_23E18: @ 0x08023E18 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #1 str r0, [sp] ldr r1, _08023F00 @ =0x0200D860 mov sl, r1 ldr r5, _08023F04 @ =0xFFFFD860 add r5, sl ldr r0, [r5, #0x4c] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r7, _08023F08 @ =0x020314E0 ldr r0, [r7] ldr r2, _08023F0C @ =0x00000746 mov sb, r2 add r0, sb movs r3, #0 mov r8, r3 mov r6, r8 strb r6, [r0] ldr r0, [r7] movs r1, #0xb6 lsls r1, r1, #2 adds r0, r0, r1 mov r2, sp ldrb r2, [r2] strb r2, [r0] ldr r6, [r7] ldr r3, _08023F10 @ =0x000002DA adds r0, r6, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08023F30 ldr r5, _08023F14 @ =0x086AE0B4 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #6 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r5 ldrh r1, [r0] ldr r2, _08023F0C @ =0x00000746 adds r0, r6, r2 strb r1, [r0] ldr r5, [r7] ldr r2, _08023F18 @ =0x086AE0A4 ldr r3, _08023F10 @ =0x000002DA adds r1, r5, r3 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] movs r6, #0xb5 lsls r6, r6, #2 adds r3, r5, r6 strh r0, [r3] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] ldr r7, _08023F1C @ =0x000002D6 adds r2, r5, r7 strh r0, [r2] adds r1, r5, #0 adds r1, #0x58 ldrh r0, [r3] ldrh r1, [r1] subs r0, r0, r1 mov r1, sl strh r0, [r1, #2] adds r1, r5, #0 adds r1, #0x5a ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 mov r2, sl strh r0, [r2, #4] adds r0, r4, #0 movs r1, #6 bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _08023EDE b _08024226 _08023EDE: ldr r2, _08023F20 @ =0x040000D4 mov r3, sb adds r0, r5, r3 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08023F24 @ =0x08449D8C adds r0, r0, r1 str r0, [r2] ldr r0, _08023F28 @ =0x06013300 str r0, [r2, #4] ldr r0, _08023F2C @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] b _08024226 .align 2, 0 _08023F00: .4byte 0x0200D860 _08023F04: .4byte 0xFFFFD860 _08023F08: .4byte 0x020314E0 _08023F0C: .4byte 0x00000746 _08023F10: .4byte 0x000002DA _08023F14: .4byte 0x086AE0B4 _08023F18: .4byte 0x086AE0A4 _08023F1C: .4byte 0x000002D6 _08023F20: .4byte 0x040000D4 _08023F24: .4byte 0x08449D8C _08023F28: .4byte 0x06013300 _08023F2C: .4byte 0x80000140 _08023F30: cmp r0, #3 beq _08023F36 b _080241D4 _08023F36: movs r1, #0xb4 lsls r1, r1, #2 adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _08024004 movs r2, #0xf6 lsls r2, r2, #1 adds r4, r6, r2 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bne _08023FCA movs r3, #2 strb r3, [r4] ldr r0, [r7] add r0, sb mov r6, sp ldrb r6, [r6] strb r6, [r0] ldr r2, _08023FEC @ =0x040000D4 ldr r4, [r7] mov r1, sb adds r0, r4, r1 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08023FF0 @ =0x08449D8C adds r0, r0, r1 str r0, [r2] ldr r0, _08023FF4 @ =0x06013300 str r0, [r2, #4] ldr r0, _08023FF8 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r5, #0xf] movs r1, #1 orrs r0, r1 strb r0, [r5, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 mov r6, r8 strh r6, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0x3c strh r0, [r1] subs r1, #4 movs r0, #0x48 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe6 strh r6, [r0] adds r0, #8 strh r3, [r0] adds r0, #4 strb r2, [r0] ldr r0, [r7] adds r0, #0xfa mov r1, sp ldrb r1, [r1] strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r2, [r0] ldr r0, [r7] ldr r2, _08023FFC @ =0x000002DE adds r0, r0, r2 movs r1, #0x30 strh r1, [r0] _08023FCA: ldr r0, [r7] ldr r3, _08024000 @ =0x000002D9 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _08023FDA b _080240FA _08023FDA: mov r6, r8 strb r6, [r1] ldr r0, [r7] ldr r7, _08023FFC @ =0x000002DE adds r0, r0, r7 movs r1, #0x30 strh r1, [r0] b _080240FA .align 2, 0 _08023FEC: .4byte 0x040000D4 _08023FF0: .4byte 0x08449D8C _08023FF4: .4byte 0x06013300 _08023FF8: .4byte 0x80000140 _08023FFC: .4byte 0x000002DE _08024000: .4byte 0x000002D9 _08024004: ldr r0, _0802407C @ =0x000002DE adds r2, r6, r0 ldrh r0, [r2] cmp r0, #0 bne _080240A8 movs r5, #0xb8 lsls r5, r5, #2 adds r0, r6, r5 ldrh r0, [r0] cmp r0, #0x1e bne _0802406A mov r1, r8 strb r1, [r6, #0x1f] ldr r1, [r7] movs r4, #0 movs r0, #0x3c strh r0, [r1, #0x26] ldr r2, _08024080 @ =0x0000132C adds r1, r1, r2 ldr r2, [r1] movs r0, #0x14 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xc8 strh r0, [r2, #0x32] ldr r2, [r1] movs r0, #0x58 strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xa3 strh r0, [r2, #0x12] ldr r0, [r1] mov r3, r8 strh r3, [r0, #6] ldr r2, [r1] movs r6, #0x10 ldrsh r0, [r2, r6] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] movs r0, #0xb9 bl m4aSongNumStart ldr r0, [r7] ldr r3, _08024084 @ =0x000005FA adds r0, r0, r3 strb r4, [r0] _0802406A: ldr r0, [r7] adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _08024088 subs r0, #1 strh r0, [r1] b _080240FA .align 2, 0 _0802407C: .4byte 0x000002DE _08024080: .4byte 0x0000132C _08024084: .4byte 0x000005FA _08024088: bl sub_23954 ldr r0, [r7] ldr r6, _080240A4 @ =0x000002DA adds r0, r0, r6 mov r1, r8 strb r1, [r0] ldr r0, [r7] movs r2, #0xb4 lsls r2, r2, #2 adds r0, r0, r2 strb r1, [r0] b _080240FA .align 2, 0 _080240A4: .4byte 0x000002DA _080240A8: ldr r3, _08024184 @ =0x0000132C adds r4, r6, r3 ldr r1, [r4] movs r0, #0x58 strh r0, [r1, #0x10] ldr r5, [r4] ldrh r0, [r2] movs r1, #3 bl __udivsi3 movs r1, #0xa3 subs r1, r1, r0 strh r1, [r5, #0x12] ldr r0, [r4] mov r7, r8 strh r7, [r0, #6] ldr r1, [r4] movs r2, #0x10 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r7, #0x10 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] ldr r3, _08024188 @ =0x000005FA adds r0, r6, r3 mov r6, sp ldrb r6, [r6] strb r6, [r0] _080240FA: ldr r6, _0802418C @ =0x020314E0 ldr r7, [r6] ldr r1, _08024190 @ =0x086AE0A4 ldr r0, _08024194 @ =0x000002DA adds r0, r0, r7 mov r8, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] movs r2, #0xb5 lsls r2, r2, #2 adds r5, r7, r2 strh r0, [r5] mov r3, r8 movs r4, #0 ldrsb r4, [r3, r4] lsls r4, r4, #2 adds r4, r4, r1 ldr r1, _08024198 @ =0x000002DE adds r0, r7, r1 ldrh r0, [r0] movs r1, #3 bl __udivsi3 ldrh r1, [r4, #2] subs r1, r1, r0 ldr r3, _0802419C @ =0x000002D6 adds r2, r7, r3 strh r1, [r2] adds r1, r7, #0 adds r1, #0x58 ldrh r0, [r5] ldrh r1, [r1] subs r0, r0, r1 mov r1, sl strh r0, [r1, #2] adds r1, r7, #0 adds r1, #0x5a ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 mov r2, sl strh r0, [r2, #4] movs r0, #0x13 ldrsb r0, [r7, r0] cmp r0, #2 bgt _080241AE mov r3, r8 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #3 bne _080241A0 movs r1, #0xb4 lsls r1, r1, #2 adds r0, r7, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _080241A0 movs r2, #0xe5 lsls r2, r2, #3 adds r1, r7, r2 movs r0, #1 b _080241B6 .align 2, 0 _08024184: .4byte 0x0000132C _08024188: .4byte 0x000005FA _0802418C: .4byte 0x020314E0 _08024190: .4byte 0x086AE0A4 _08024194: .4byte 0x000002DA _08024198: .4byte 0x000002DE _0802419C: .4byte 0x000002D6 _080241A0: ldr r0, [r6] movs r3, #0xe5 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0 strb r1, [r0] b _080241B8 _080241AE: movs r0, #0xe5 lsls r0, r0, #3 adds r1, r7, r0 movs r0, #0 _080241B6: strb r0, [r1] _080241B8: ldr r0, [r6] ldr r1, _080241D0 @ =0x000002DE adds r6, r0, r1 ldrh r0, [r6] cmp r0, #0 beq _08024226 subs r0, #1 strh r0, [r6] movs r2, #2 str r2, [sp] b _08024226 .align 2, 0 _080241D0: .4byte 0x000002DE _080241D4: movs r3, #0xf6 lsls r3, r3, #1 adds r0, r6, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0802420C movs r1, #0xe5 lsls r1, r1, #3 adds r0, r6, r1 mov r2, r8 strb r2, [r0] ldr r0, [r7] adds r0, r0, r3 movs r1, #4 strb r1, [r0] ldr r0, [r7] adds r3, #1 adds r1, r0, r3 movs r0, #8 strb r0, [r1] ldr r0, [r7] movs r6, #0xf8 lsls r6, r6, #1 adds r0, r0, r6 mov r1, r8 strh r1, [r0] _0802420C: ldr r0, [r7] movs r2, #0xb5 lsls r2, r2, #2 adds r1, r0, r2 mov r3, r8 strh r3, [r1] ldr r6, _080242A4 @ =0x000002D6 adds r0, r0, r6 strh r3, [r0] mov r7, sl strh r3, [r7, #2] movs r0, #0xa0 strh r0, [r7, #4] _08024226: movs r0, #0 ldr r6, _080242A8 @ =0x03005000 ldr r1, [sp] lsls r1, r1, #2 mov ip, r1 movs r2, #0xd rsbs r2, r2, #0 mov sb, r2 ldr r3, _080242AC @ =0xFFFFFE00 mov r8, r3 _0802423A: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 add r4, sl ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sb ands r0, r2 mov r7, ip orrs r0, r7 strb r0, [r1, #5] ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r4, r0] mov r2, sl movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _080242B0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sl ldrb r0, [r3, #4] ldrb r4, [r4, #4] adds r0, r0, r4 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _0802423A add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080242A4: .4byte 0x000002D6 _080242A8: .4byte 0x03005000 _080242AC: .4byte 0xFFFFFE00 _080242B0: .4byte 0x000001FF thumb_func_start sub_242B4 sub_242B4: @ 0x080242B4 push {r4, r5, lr} ldr r0, _080242C8 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _080242D0 ldr r0, _080242CC @ =0x020314E0 ldr r0, [r0] movs r1, #0xb4 lsls r1, r1, #2 b _080242D6 .align 2, 0 _080242C8: .4byte 0x0200B0C0 _080242CC: .4byte 0x020314E0 _080242D0: ldr r0, _0802431C @ =0x020314E0 ldr r0, [r0] ldr r1, _08024320 @ =0x00000343 _080242D6: adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r5, _0802431C @ =0x020314E0 ldr r0, [r5] ldr r1, _08024324 @ =0x000005A5 adds r0, r0, r1 movs r4, #0 strb r4, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r1, _08024328 @ =0x000006C4 adds r0, r0, r1 strb r4, [r0] movs r2, #0 ldr r5, _0802432C @ =0x0000071D _080242FC: ldr r0, _0802431C @ =0x020314E0 ldr r3, [r0] ldr r0, _08024330 @ =0x00000723 adds r1, r3, r0 lsls r0, r2, #0x10 asrs r2, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, #0 cmp r2, r1 bge _08024334 adds r0, r3, r5 adds r0, r0, r2 movs r1, #1 b _0802433A .align 2, 0 _0802431C: .4byte 0x020314E0 _08024320: .4byte 0x00000343 _08024324: .4byte 0x000005A5 _08024328: .4byte 0x000006C4 _0802432C: .4byte 0x0000071D _08024330: .4byte 0x00000723 _08024334: adds r0, r3, r5 adds r0, r0, r2 movs r1, #0 _0802433A: strb r1, [r0] movs r1, #0x80 lsls r1, r1, #9 adds r0, r4, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _080242FC pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_24350 sub_24350: @ 0x08024350 push {r4, r5, lr} ldr r4, _0802439C @ =0x020314E0 ldr r0, [r4] movs r3, #0 strb r3, [r0, #0x17] ldr r1, [r4] movs r5, #0 strh r3, [r1, #0x18] ldr r0, _080243A0 @ =0x00000724 adds r2, r1, r0 subs r0, #0x1c strh r0, [r2] ldr r0, _080243A4 @ =0x000005A5 adds r1, r1, r0 strb r5, [r1] ldr r2, [r4] movs r1, #0xfc lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] adds r1, #2 adds r0, r2, r1 strh r3, [r0] ldr r0, _080243A8 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _080243B0 movs r3, #0xfe lsls r3, r3, #1 adds r1, r2, r3 ldr r0, _080243AC @ =0x000002EE str r0, [r1] subs r0, #0xee adds r1, r2, r0 movs r0, #0x82 lsls r0, r0, #3 b _080243C4 .align 2, 0 _0802439C: .4byte 0x020314E0 _080243A0: .4byte 0x00000724 _080243A4: .4byte 0x000005A5 _080243A8: .4byte 0x0200B0C0 _080243AC: .4byte 0x000002EE _080243B0: movs r3, #0xfe lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0xf5 lsls r0, r0, #3 str r0, [r1] movs r0, #0x80 lsls r0, r0, #2 adds r1, r2, r0 subs r0, #0xd4 _080243C4: str r0, [r1] ldr r0, [r4] movs r1, #0x81 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r4] ldr r3, _080243FC @ =0x00000206 adds r1, r0, r3 movs r3, #0 strh r2, [r1] movs r4, #0xfc lsls r4, r4, #1 adds r1, r0, r4 strh r2, [r1] adds r4, #2 adds r1, r0, r4 strh r2, [r1] ldr r4, _08024400 @ =0x000005AA adds r1, r0, r4 strh r2, [r1] ldr r1, _08024404 @ =0x000005A9 adds r0, r0, r1 strb r3, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080243FC: .4byte 0x00000206 _08024400: .4byte 0x000005AA _08024404: .4byte 0x000005A9 thumb_func_start sub_24408 sub_24408: @ 0x08024408 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 ldr r2, _08024440 @ =0x0200B0C0 ldr r0, [r2, #0x44] adds r0, #0xa4 ldr r0, [r0] mov sb, r0 movs r0, #1 mov sl, r0 ldr r1, _08024444 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bls _08024434 bl _080252F6 _08024434: lsls r0, r0, #2 ldr r1, _08024448 @ =_0802444C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08024440: .4byte 0x0200B0C0 _08024444: .4byte 0x020314E0 _08024448: .4byte _0802444C _0802444C: @ jump table .4byte _08024470 @ case 0 .4byte _080244A0 @ case 1 .4byte _08024784 @ case 2 .4byte _08024AB4 @ case 3 .4byte _08024EFC @ case 4 .4byte _080250E4 @ case 5 .4byte _08025208 @ case 6 .4byte _08025294 @ case 7 .4byte _080252B8 @ case 8 _08024470: ldr r1, _08024494 @ =0x020314E0 ldr r0, [r1] ldr r2, _08024498 @ =0x000006C4 adds r0, r0, r2 movs r1, #3 strb r1, [r0] ldr r3, _0802449C @ =0x0200B0C0 ldr r0, [r3, #0x44] adds r0, #0xa4 ldr r1, [r0] movs r0, #1 strh r0, [r1] ldr r4, _08024494 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 bl _080252F4 .align 2, 0 _08024494: .4byte 0x020314E0 _08024498: .4byte 0x000006C4 _0802449C: .4byte 0x0200B0C0 _080244A0: ldr r3, _080244D0 @ =0x086AD52C ldr r5, _080244D4 @ =0x020314E0 ldr r2, [r5] movs r6, #0x81 lsls r6, r6, #2 adds r4, r2, r6 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r7, #0 ldrsh r0, [r0, r7] ldr r7, _080244D8 @ =0x00000206 adds r2, r2, r7 ldrh r1, [r2] cmp r0, r1 ble _080244DC adds r0, r1, #1 strh r0, [r2] b _080245FE .align 2, 0 _080244D0: .4byte 0x086AD52C _080244D4: .4byte 0x020314E0 _080244D8: .4byte 0x00000206 _080244DC: ldrb r0, [r4] adds r0, #1 movs r5, #0 strb r0, [r4] ldr r0, _0802459C @ =0x020314E0 ldr r1, [r0] ldr r4, _080245A0 @ =0x00000206 adds r2, r1, r4 strh r5, [r2] ldr r4, _080245A4 @ =0x0200B0C0 ldrb r0, [r4, #4] cmp r0, #0 bne _080245D4 adds r1, r1, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd ble _08024520 movs r0, #0 strb r0, [r1] ldr r0, _0802459C @ =0x020314E0 ldr r1, [r0] movs r0, #3 strb r0, [r1, #0x17] ldr r2, _0802459C @ =0x020314E0 ldr r1, [r2] movs r3, #0xfc lsls r3, r3, #1 adds r0, r1, r3 strh r5, [r0] movs r4, #0xfd lsls r4, r4, #1 adds r0, r1, r4 strh r5, [r0] _08024520: ldr r5, _0802459C @ =0x020314E0 ldr r1, [r5] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _0802453E adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0 bne _0802453E movs r0, #0x15 bl m4aSongNumStart _0802453E: ldr r4, _0802459C @ =0x020314E0 ldr r3, [r4] movs r5, #0x81 lsls r5, r5, #2 adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08024576 movs r6, #0xa7 lsls r6, r6, #2 adds r1, r3, r6 movs r0, #0x8c strh r0, [r1] ldr r2, _080245A8 @ =0x086A3700 movs r7, #0xb3 lsls r7, r7, #3 adds r0, r3, r7 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC _08024576: ldr r2, [r4] adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _080245B8 movs r1, #0xfc lsls r1, r1, #1 adds r0, r2, r1 ldr r1, _080245AC @ =0x0000FFF8 strh r1, [r0] movs r3, #0xfd lsls r3, r3, #1 adds r1, r2, r3 ldr r0, _080245B0 @ =0x0000FFE2 strh r0, [r1] ldr r3, _080245B4 @ =0x086AD52C b _080245FE .align 2, 0 _0802459C: .4byte 0x020314E0 _080245A0: .4byte 0x00000206 _080245A4: .4byte 0x0200B0C0 _080245A8: .4byte 0x086A3700 _080245AC: .4byte 0x0000FFF8 _080245B0: .4byte 0x0000FFE2 _080245B4: .4byte 0x086AD52C _080245B8: movs r5, #0xfc lsls r5, r5, #1 adds r0, r2, r5 movs r1, #0 strh r1, [r0] movs r6, #0xfd lsls r6, r6, #1 adds r0, r2, r6 strh r1, [r0] ldr r3, _080245D0 @ =0x086AD52C b _080245FE .align 2, 0 _080245D0: .4byte 0x086AD52C _080245D4: adds r1, r1, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #9 ble _080245FE strh r5, [r2] movs r0, #0xa strb r0, [r1] ldr r7, _08024754 @ =0x020314E0 ldr r1, [r7] movs r0, #2 strb r0, [r1, #0x17] ldr r1, [r7] movs r2, #0xfc lsls r2, r2, #1 adds r0, r1, r2 strh r5, [r0] movs r4, #0xfd lsls r4, r4, #1 adds r0, r1, r4 strh r5, [r0] _080245FE: ldr r5, _08024754 @ =0x020314E0 ldr r4, [r5] movs r6, #0x81 lsls r6, r6, #2 adds r2, r4, r6 movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r5, [r1] adds r1, r3, #4 adds r0, r0, r1 ldrh r6, [r0] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0xc bne _08024656 movs r7, #0xfd lsls r7, r7, #1 adds r3, r4, r7 ldrh r0, [r3] adds r0, #2 strh r0, [r3] movs r0, #0xfe lsls r0, r0, #1 adds r2, r4, r0 movs r1, #0xfc lsls r1, r1, #1 adds r0, r4, r1 movs r7, #0 ldrsh r1, [r0, r7] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x80 lsls r0, r0, #2 adds r2, r4, r0 movs r4, #0 ldrsh r1, [r3, r4] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] _08024656: ldr r7, _08024754 @ =0x020314E0 ldr r4, [r7] movs r1, #0xfe lsls r1, r1, #1 adds r0, r4, r1 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r2, sb strh r0, [r2, #2] movs r3, #0x80 lsls r3, r3, #2 adds r0, r4, r3 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r4, sb strh r0, [r4, #4] ldr r2, _08024758 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _0802475C @ =0x0202C7A0 adds r0, r0, r1 str r0, [r2] ldr r0, _08024760 @ =0x060112A0 str r0, [r2, #4] ldr r0, _08024764 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08024768 @ =0x020315D0 str r0, [r2] ldr r0, _0802476C @ =0x050003A0 str r0, [r2, #4] ldr r0, _08024770 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 lsls r1, r6, #0x10 ldr r5, _08024774 @ =0x086B4B0E mov r8, r5 ldr r6, _08024778 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov ip, r0 _080246CC: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 mov r7, sb adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, r8 add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 str r1, [sp, #0xc] movs r1, #2 ldrsh r0, [r7, r1] ldr r7, [sp, #0xc] adds r1, r7, r0 ldr r7, _0802477C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _08024780 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r5, sl lsls r4, r5, #2 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _080246CC bl _080252F6 .align 2, 0 _08024754: .4byte 0x020314E0 _08024758: .4byte 0x040000D4 _0802475C: .4byte 0x0202C7A0 _08024760: .4byte 0x060112A0 _08024764: .4byte 0x80000090 _08024768: .4byte 0x020315D0 _0802476C: .4byte 0x050003A0 _08024770: .4byte 0x80000010 _08024774: .4byte 0x086B4B0E _08024778: .4byte 0x03005000 _0802477C: .4byte 0x000001FF _08024780: .4byte 0xFFFFFE00 _08024784: ldr r0, _080247B0 @ =0x020314E0 mov sl, r0 ldr r4, [r0] ldr r1, _080247B4 @ =0x00000206 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0xef bhi _080247BC movs r2, #1 mov sl, r2 cmp r0, #0 bne _080247AA ldr r3, _080247B8 @ =0x00000346 adds r1, r4, r3 movs r0, #3 strb r0, [r1] movs r0, #0xdd bl m4aSongNumStart _080247AA: movs r5, #0 b _0802499E .align 2, 0 _080247B0: .4byte 0x020314E0 _080247B4: .4byte 0x00000206 _080247B8: .4byte 0x00000346 _080247BC: cmp r0, #0xf0 bne _080247F4 movs r5, #0xfe lsls r5, r5, #1 adds r1, r4, r5 ldr r0, _080247F0 @ =0x000008D4 str r0, [r1] movs r6, #0x80 lsls r6, r6, #2 adds r1, r4, r6 movs r0, #0xb9 lsls r0, r0, #2 str r0, [r1] movs r7, #0x81 lsls r7, r7, #2 adds r1, r4, r7 movs r0, #0 strb r0, [r1] movs r0, #2 mov sl, r0 movs r5, #0 movs r0, #0x15 bl m4aSongNumStart b _0802499E .align 2, 0 _080247F0: .4byte 0x000008D4 _080247F4: ldr r3, _080248A0 @ =0x086AD750 movs r1, #0x81 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 adds r1, r2, r3 movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] adds r0, #0x78 ldr r1, [r1] subs r6, r1, r0 adds r3, #4 adds r2, r2, r3 movs r1, #0x80 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] adds r0, #0xa0 ldr r1, [r2] subs r7, r1, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 str r1, [sp, #8] lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r4, r0, #0x10 lsrs r2, r4, #0x10 mov r8, r2 mov r3, sl ldr r2, [r3] adds r5, #0xa adds r0, r2, r5 ldrh r1, [r0] ldr r0, _080248A4 @ =0x00000143 movs r6, #1 mov sl, r6 cmp r1, r0 bhi _0802485C movs r7, #2 mov sl, r7 _0802485C: movs r1, #0x81 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bgt _080248AC movs r5, #0 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 lsls r1, r1, #1 ldr r4, _080248A8 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 str r0, [sp] mov r0, r8 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 b _080248F0 .align 2, 0 _080248A0: .4byte 0x086AD750 _080248A4: .4byte 0x00000143 _080248A8: .4byte 0x00004E20 _080248AC: ldr r0, _08024934 @ =0x086AD788 lsrs r4, r4, #0x1d lsls r4, r4, #1 adds r4, r4, r0 ldr r0, _08024938 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x18 bl __umodsi3 lsrs r0, r0, #3 ldrh r4, [r4] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r4, _0802493C @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 str r0, [sp] mov r0, r8 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 _080248F0: adds r1, r4, #0 bl __divsi3 str r0, [sp, #4] ldr r4, _08024940 @ =0x020314E0 ldr r2, [r4] movs r3, #0xfe lsls r3, r3, #1 adds r1, r2, r3 ldr r0, [r1] ldr r6, [sp] adds r0, r0, r6 str r0, [r1] movs r7, #0x80 lsls r7, r7, #2 adds r1, r2, r7 ldr r0, [r1] ldr r3, [sp, #4] adds r0, r0, r3 str r0, [r1] ldr r0, _08024944 @ =0x000009C3 ldr r6, [sp, #8] cmp r6, r0 bgt _08024964 adds r7, #4 adds r3, r2, r7 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #5 bgt _08024948 adds r0, r1, #1 strb r0, [r3] b _08024964 .align 2, 0 _08024934: .4byte 0x086AD788 _08024938: .4byte 0x0200B0C0 _0802493C: .4byte 0x00004E20 _08024940: .4byte 0x020314E0 _08024944: .4byte 0x000009C3 _08024948: movs r2, #0 movs r1, #3 strb r1, [r3] ldr r0, [r4] strb r1, [r0, #0x17] ldr r1, [r4] movs r3, #0xfc lsls r3, r3, #1 adds r0, r1, r3 strh r2, [r0] movs r4, #0xfd lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] _08024964: ldr r0, _0802497C @ =0x020314E0 ldr r1, [r0] ldr r6, _08024980 @ =0x00000206 adds r0, r1, r6 ldrh r2, [r0] ldr r0, _08024984 @ =0x0000017B cmp r2, r0 bhi _08024988 adds r1, #0xe6 ldrh r0, [r1] adds r0, #1 b _0802499C .align 2, 0 _0802497C: .4byte 0x020314E0 _08024980: .4byte 0x00000206 _08024984: .4byte 0x0000017B _08024988: ldr r0, _08024A0C @ =0x0000018F cmp r2, r0 bls _0802499E adds r1, #0xe6 ldrh r2, [r1] movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0 ble _0802499E subs r0, r2, #1 _0802499C: strh r0, [r1] _0802499E: ldr r2, _08024A10 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _08024A14 @ =0x0202C7A0 adds r0, r0, r1 str r0, [r2] ldr r0, _08024A18 @ =0x060112A0 str r0, [r2, #4] ldr r0, _08024A1C @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08024A20 @ =0x020314E0 ldr r4, [r0] ldr r0, _08024A24 @ =0x00000206 adds r1, r4, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] movs r1, #0xfe lsls r1, r1, #1 adds r0, r4, r1 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r2, sb strh r0, [r2, #2] movs r3, #0x80 lsls r3, r3, #2 adds r0, r4, r3 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r4, sb strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08024A28 movs r0, #0xb4 strh r0, [r4, #4] b _08024A34 .align 2, 0 _08024A0C: .4byte 0x0000018F _08024A10: .4byte 0x040000D4 _08024A14: .4byte 0x0202C7A0 _08024A18: .4byte 0x060112A0 _08024A1C: .4byte 0x80000090 _08024A20: .4byte 0x020314E0 _08024A24: .4byte 0x00000206 _08024A28: movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08024A34 mov r5, sb strh r1, [r5, #4] _08024A34: movs r2, #0 ldr r6, _08024AA8 @ =0x03005000 mov r7, sl lsls r7, r7, #2 mov ip, r7 movs r0, #0xd rsbs r0, r0, #0 mov sl, r0 ldr r1, _08024AAC @ =0xFFFFFE00 mov r8, r1 _08024A48: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r2, sb adds r5, r2, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sl ands r0, r2 mov r3, ip orrs r0, r3 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r7, #2 ldrsh r1, [r5, r7] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08024AB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08024A48 bl _080252F6 .align 2, 0 _08024AA8: .4byte 0x03005000 _08024AAC: .4byte 0xFFFFFE00 _08024AB0: .4byte 0x000001FF _08024AB4: ldr r3, _08024B5C @ =0x086AD580 ldr r5, _08024B60 @ =0x020314E0 ldr r4, [r5] movs r1, #0x81 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 ldr r5, _08024B64 @ =0x0200B0C0 ldrb r1, [r5, #4] movs r0, #0xe8 muls r0, r1, r0 adds r2, r2, r0 adds r1, r2, r3 movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] adds r0, #0x78 ldr r1, [r1] subs r6, r1, r0 adds r3, #4 adds r2, r2, r3 movs r1, #0x80 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] adds r0, #0xa0 ldr r1, [r2] subs r7, r1, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 str r1, [sp, #8] lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 mov sl, r0 mov r2, sl lsrs r2, r2, #0x10 mov r8, r2 mov r0, r8 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r4, _08024B68 @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 str r0, [sp] mov r0, r8 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r4, #0 bl __divsi3 str r0, [sp, #4] ldr r3, _08024B60 @ =0x020314E0 ldr r5, [r3] ldr r4, _08024B6C @ =0x000005A9 adds r1, r5, r4 ldrb r0, [r1] cmp r0, #0 beq _08024B70 subs r0, #1 strb r0, [r1] movs r5, #0xe b _08024BFA .align 2, 0 _08024B5C: .4byte 0x086AD580 _08024B60: .4byte 0x020314E0 _08024B64: .4byte 0x0200B0C0 _08024B68: .4byte 0x00004E20 _08024B6C: .4byte 0x000005A9 _08024B70: ldr r2, _08024BA8 @ =0x086A3700 movs r1, #0xb3 lsls r1, r1, #3 adds r0, r5, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #0x13] cmp r0, #0 beq _08024BB4 ldr r0, _08024BAC @ =0x086AD788 mov r2, sl lsrs r4, r2, #0x1d lsls r4, r4, #1 adds r4, r4, r0 ldr r3, _08024BB0 @ =0x0200B0C0 ldr r0, [r3, #0x4c] movs r1, #0x18 bl __umodsi3 lsrs r0, r0, #3 ldrh r4, [r4] adds r0, r0, r4 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 b _08024BDA .align 2, 0 _08024BA8: .4byte 0x086A3700 _08024BAC: .4byte 0x086AD788 _08024BB0: .4byte 0x0200B0C0 _08024BB4: ldr r0, _08024C1C @ =0x086AD788 mov r4, sl lsrs r2, r4, #0x1d lsls r2, r2, #1 adds r2, r2, r0 ldr r5, _08024C20 @ =0x0200B0C0 ldr r0, [r5, #0x4c] movs r1, #0x1f ands r0, r1 lsrs r4, r0, #3 ldrh r2, [r2] adds r4, r4, r2 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 subs r4, r4, r0 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 _08024BDA: ldr r0, _08024C24 @ =0x020314E0 ldr r2, [r0] movs r0, #0xfe lsls r0, r0, #1 adds r1, r2, r0 ldr r0, [r1] ldr r3, [sp] adds r0, r0, r3 str r0, [r1] movs r4, #0x80 lsls r4, r4, #2 adds r1, r2, r4 ldr r0, [r1] ldr r2, [sp, #4] adds r0, r0, r2 str r0, [r1] _08024BFA: ldr r0, _08024C28 @ =0x000009C3 ldr r3, [sp, #8] cmp r3, r0 bgt _08024C40 ldr r4, _08024C24 @ =0x020314E0 ldr r0, [r4] movs r2, #0x81 lsls r2, r2, #2 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x1b bgt _08024C2C adds r0, r2, #1 strb r0, [r1] b _08024C40 .align 2, 0 _08024C1C: .4byte 0x086AD788 _08024C20: .4byte 0x0200B0C0 _08024C24: .4byte 0x020314E0 _08024C28: .4byte 0x000009C3 _08024C2C: bl m4aMPlayAllStop movs r0, #0xd bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #6 strb r1, [r0, #0x17] _08024C40: ldr r0, _08024C68 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _08024C70 ldr r0, _08024C6C @ =0x020314E0 ldr r1, [r0] movs r3, #0x81 lsls r3, r3, #2 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r4, #1 mov sl, r4 cmp r1, #0x1a ble _08024CA0 movs r0, #2 mov sl, r0 b _08024CA0 .align 2, 0 _08024C68: .4byte 0x0200B0C0 _08024C6C: .4byte 0x020314E0 _08024C70: ldr r0, _08024C94 @ =0x020314E0 ldr r3, [r0] movs r2, #0x81 lsls r2, r2, #2 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #0x1b ble _08024C9C movs r4, #3 mov sl, r4 ldr r0, _08024C98 @ =0x00000367 adds r1, r3, r0 movs r0, #1 strb r0, [r1] b _08024CA0 .align 2, 0 _08024C94: .4byte 0x020314E0 _08024C98: .4byte 0x00000367 _08024C9C: movs r1, #1 mov sl, r1 _08024CA0: ldr r2, _08024CE8 @ =0x020314E0 ldr r4, [r2] movs r3, #0xfe lsls r3, r3, #1 adds r0, r4, r3 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r1, sb strh r0, [r1, #2] movs r2, #0x80 lsls r2, r2, #2 adds r0, r4, r2 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r3, sb strh r0, [r3, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08024CEC movs r0, #0xb4 strh r0, [r3, #4] b _08024CF8 .align 2, 0 _08024CE8: .4byte 0x020314E0 _08024CEC: movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08024CF8 mov r4, sb strh r1, [r4, #4] _08024CF8: ldr r2, _08024DA0 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _08024DA4 @ =0x0202C7A0 adds r0, r0, r1 str r0, [r2] ldr r0, _08024DA8 @ =0x060112A0 str r0, [r2, #4] ldr r0, _08024DAC @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 ldr r5, _08024DB0 @ =0x03005000 mov r8, r5 mov r0, sl lsls r0, r0, #2 mov sl, r0 ldr r1, _08024DB4 @ =0xFFFFFE00 mov ip, r1 _08024D24: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r2, sb adds r5, r2, r0 ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 mov r3, sl orrs r0, r3 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 add r3, r8 movs r1, #2 ldrsh r0, [r5, r1] str r0, [sp, #0xc] mov r2, sb movs r1, #2 ldrsh r0, [r2, r1] ldr r2, [sp, #0xc] adds r1, r2, r0 ldr r2, _08024DB8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08024D24 ldr r4, _08024DBC @ =0x020314E0 ldr r4, [r4] mov r8, r4 ldr r5, _08024DC0 @ =0x000005AA mov sl, r5 mov r1, r8 add r1, sl ldrh r0, [r1] cmp r0, #0 beq _08024DC4 subs r0, #1 strh r0, [r1] b _080252F6 .align 2, 0 _08024DA0: .4byte 0x040000D4 _08024DA4: .4byte 0x0202C7A0 _08024DA8: .4byte 0x060112A0 _08024DAC: .4byte 0x80000090 _08024DB0: .4byte 0x03005000 _08024DB4: .4byte 0xFFFFFE00 _08024DB8: .4byte 0x000001FF _08024DBC: .4byte 0x020314E0 _08024DC0: .4byte 0x000005AA _08024DC4: ldr r0, _08024EA0 @ =0x0000132C mov sb, r0 mov r0, r8 add r0, sb ldr r5, [r0] movs r1, #0x10 ldrsh r4, [r5, r1] subs r4, #0xc movs r0, #0xfe lsls r0, r0, #1 add r0, r8 ldr r0, [r0] movs r1, #0xa bl __divsi3 subs r6, r4, r0 movs r2, #0x12 ldrsh r4, [r5, r2] subs r4, #0xe movs r0, #0x80 lsls r0, r0, #2 add r0, r8 ldr r0, [r0] movs r1, #0xa bl __divsi3 subs r7, r4, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 cmp r1, #0x51 ble _08024E0A b _080252F6 _08024E0A: ldr r4, _08024EA4 @ =0x000005A5 mov r3, r8 adds r1, r3, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r5, _08024EA8 @ =0x020314E0 ldr r1, [r5] mov r6, sl adds r2, r1, r6 movs r0, #4 strh r0, [r2] ldr r7, _08024EAC @ =0x000005A9 adds r1, r1, r7 movs r0, #0x14 strb r0, [r1] ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] cmp r0, #1 bls _08024E38 movs r0, #4 strb r0, [r1, #0x17] _08024E38: movs r0, #0x75 bl m4aSongNumStart ldr r1, _08024EA8 @ =0x020314E0 ldr r0, [r1] add r0, sb ldr r1, [r0] ldrh r0, [r1, #0x30] rsbs r0, r0, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x32 ldrsh r1, [r1, r2] bl ArcTan2 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r3, _08024EA8 @ =0x020314E0 ldr r0, [r3] adds r0, r0, r4 ldrb r0, [r0] cmp r0, #1 bls _08024EB0 adds r0, r5, #0 bl sub_C74 ldr r4, _08024EA8 @ =0x020314E0 ldr r1, [r4] add r1, sb ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 bl __divsi3 strh r0, [r4, #0x30] adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 ldr r5, _08024EA8 @ =0x020314E0 ldr r0, [r5] add r0, sb ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r1 lsls r0, r0, #4 b _08024EE2 .align 2, 0 _08024EA0: .4byte 0x0000132C _08024EA4: .4byte 0x000005A5 _08024EA8: .4byte 0x020314E0 _08024EAC: .4byte 0x000005A9 _08024EB0: adds r0, r5, #0 bl sub_C74 ldr r6, _08024EF4 @ =0x020314E0 ldr r1, [r6] add r1, sb ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x7d bl __divsi3 strh r0, [r4, #0x30] adds r0, r5, #0 bl sub_C24 adds r1, r0, #0 ldr r0, [r6] add r0, sb ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #5 _08024EE2: rsbs r0, r0, #0 ldr r1, _08024EF8 @ =0x00004E20 bl __divsi3 strh r0, [r4, #0x32] movs r0, #7 bl sub_11B0 b _080252F6 .align 2, 0 _08024EF4: .4byte 0x020314E0 _08024EF8: .4byte 0x00004E20 _08024EFC: ldr r7, _0802508C @ =0x020314E0 ldr r0, [r7] adds r0, #0xe4 movs r5, #0 movs r1, #9 strb r1, [r0] ldr r1, _08025090 @ =0x040000D4 ldr r0, _08025094 @ =0x086ACF80 str r0, [r1] ldr r0, _08025098 @ =0x050003E0 str r0, [r1, #4] ldr r0, _0802509C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080250A0 @ =0x081428D4 str r0, [r1] ldr r0, _080250A4 @ =0x06015800 str r0, [r1, #4] ldr r0, _080250A8 @ =0x80000E00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] ldr r2, _080250AC @ =0x000005F6 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #9 ldr r4, _080250B0 @ =0x08138014 adds r0, r0, r4 str r0, [r1] ldr r0, _080250B4 @ =0x060164C0 str r0, [r1, #4] ldr r3, _080250B8 @ =0x80000040 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r0, #4 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r1] ldr r0, _080250BC @ =0x06016760 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] subs r2, #0x50 adds r1, r0, r2 strh r5, [r1] ldr r3, _080250C0 @ =0x000005A4 adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r4, [r7] movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r0, #8 movs r6, #0xa2 lsls r6, r6, #2 adds r1, r4, r6 strh r0, [r1] movs r7, #0x80 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0xa bl __divsi3 subs r0, #0x1f ldr r2, _080250C4 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] movs r2, #0 ldr r5, _0802508C @ =0x020314E0 ldr r4, _080250C8 @ =0x000006D3 movs r3, #0xd _08024FA8: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08024FA8 ldr r3, _0802508C @ =0x020314E0 ldr r1, [r3] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r4, [r3] movs r5, #0xfe lsls r5, r5, #1 adds r0, r4, r5 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r6, sb strh r0, [r6, #2] movs r7, #0x80 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _0802500A movs r0, #0xb4 strh r0, [r6, #4] _0802500A: ldr r1, _08025090 @ =0x040000D4 ldr r0, _080250CC @ =0x0202D760 str r0, [r1] ldr r0, _080250D0 @ =0x060112A0 str r0, [r1, #4] ldr r0, _080250D4 @ =0x80000090 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 ldr r6, _080250D8 @ =0x03005000 movs r1, #0xd rsbs r1, r1, #0 mov r8, r1 ldr r3, _080250DC @ =0xFFFFFE00 mov sl, r3 _08025028: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r7, sb adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrb r1, [r2, #5] mov r0, r8 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _080250E0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08025028 ldr r3, _0802508C @ =0x020314E0 ldr r1, [r3] movs r0, #0 strh r0, [r1, #0x18] b _080252F6 .align 2, 0 _0802508C: .4byte 0x020314E0 _08025090: .4byte 0x040000D4 _08025094: .4byte 0x086ACF80 _08025098: .4byte 0x050003E0 _0802509C: .4byte 0x80000010 _080250A0: .4byte 0x081428D4 _080250A4: .4byte 0x06015800 _080250A8: .4byte 0x80000E00 _080250AC: .4byte 0x000005F6 _080250B0: .4byte 0x08138014 _080250B4: .4byte 0x060164C0 _080250B8: .4byte 0x80000040 _080250BC: .4byte 0x06016760 _080250C0: .4byte 0x000005A4 _080250C4: .4byte 0x0000028A _080250C8: .4byte 0x000006D3 _080250CC: .4byte 0x0202D760 _080250D0: .4byte 0x060112A0 _080250D4: .4byte 0x80000090 _080250D8: .4byte 0x03005000 _080250DC: .4byte 0xFFFFFE00 _080250E0: .4byte 0x000001FF _080250E4: ldr r5, _080251E4 @ =0x020314E0 ldr r4, [r5] movs r6, #0xb5 lsls r6, r6, #3 adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r7, #0 mov sl, r7 cmp r0, #0x10 bgt _08025100 movs r0, #2 mov sl, r0 _08025100: mov r1, sb ldrh r0, [r1] cmp r0, #0 bne _0802510A b _080252F6 _0802510A: movs r2, #0xfe lsls r2, r2, #1 adds r0, r4, r2 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 mov r3, sb strh r0, [r3, #2] movs r5, #0x80 lsls r5, r5, #2 adds r0, r4, r5 ldr r0, [r0] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 mov r6, sb strh r0, [r6, #4] movs r2, #0 ldr r6, _080251E8 @ =0x03005000 mov r7, sl lsls r7, r7, #2 mov ip, r7 movs r0, #0xd rsbs r0, r0, #0 mov sl, r0 ldr r1, _080251EC @ =0xFFFFFE00 mov r8, r1 _08025152: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r2, sb adds r5, r2, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sl ands r0, r2 mov r3, ip orrs r0, r3 strb r0, [r1, #5] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r7, #2 ldrsh r1, [r5, r7] mov r2, sb movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _080251F0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r3, sb ldrb r0, [r3, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08025152 ldr r1, _080251F4 @ =0x040000D4 ldr r4, _080251F8 @ =0x0202D760 str r4, [r1] ldr r0, _080251FC @ =0x060112A0 str r0, [r1, #4] ldr r0, _08025200 @ =0x80000090 str r0, [r1, #8] ldr r0, [r1, #8] ldr r5, _080251E4 @ =0x020314E0 ldr r0, [r5] movs r6, #0xb5 lsls r6, r6, #3 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 beq _080251D4 b _080252F6 _080251D4: ldr r7, _08025204 @ =0x0200B0C0 ldr r0, [r7, #0x44] adds r0, #0xa4 ldr r1, [r0] movs r0, #0 strh r0, [r1] b _080252F6 .align 2, 0 _080251E4: .4byte 0x020314E0 _080251E8: .4byte 0x03005000 _080251EC: .4byte 0xFFFFFE00 _080251F0: .4byte 0x000001FF _080251F4: .4byte 0x040000D4 _080251F8: .4byte 0x0202D760 _080251FC: .4byte 0x060112A0 _08025200: .4byte 0x80000090 _08025204: .4byte 0x0200B0C0 _08025208: mov r1, sb ldrh r0, [r1] cmp r0, #0 beq _08025268 movs r0, #0 strh r0, [r1, #2] movs r0, #0xc8 strh r0, [r1, #4] movs r2, #0 ldr r6, _08025280 @ =0x03005000 ldr r3, _08025284 @ =0xFFFFFE00 mov r8, r3 _08025220: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r7, sb adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _08025288 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08025220 _08025268: ldr r3, _0802528C @ =0x0200B0C0 ldr r0, [r3, #0x44] adds r0, #0xa4 ldr r1, [r0] movs r0, #0 strh r0, [r1] ldr r4, _08025290 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 b _080252F4 .align 2, 0 _08025280: .4byte 0x03005000 _08025284: .4byte 0xFFFFFE00 _08025288: .4byte 0x000001FF _0802528C: .4byte 0x0200B0C0 _08025290: .4byte 0x020314E0 _08025294: bl sub_242B4 ldr r2, _080252B0 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 movs r3, #0 strb r0, [r1, #0x17] ldr r0, [r2] ldr r5, _080252B4 @ =0x00000367 adds r0, r0, r5 strb r3, [r0] b _080252F6 .align 2, 0 _080252B0: .4byte 0x020314E0 _080252B4: .4byte 0x00000367 _080252B8: ldr r6, _080252C8 @ =0x020314E0 ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080252CC subs r0, #1 strh r0, [r1, #0x18] b _080252F6 .align 2, 0 _080252C8: .4byte 0x020314E0 _080252CC: ldr r7, _080252E4 @ =0x0000071F adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080252E8 movs r0, #3 bl sub_19B64 b _080252EE .align 2, 0 _080252E4: .4byte 0x0000071F _080252E8: movs r0, #1 bl sub_19B64 _080252EE: ldr r0, _08025308 @ =0x020314E0 ldr r1, [r0] movs r0, #0 _080252F4: strb r0, [r1, #0x17] _080252F6: add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08025308: .4byte 0x020314E0 thumb_func_start sub_2530C sub_2530C: @ 0x0802530C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _080253D0 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r5, [r1, #0x48] ldrh r1, [r5] mov r8, r0 ldr r0, _080253D4 @ =0x020314E0 mov sb, r0 cmp r1, #0 beq _08025360 movs r0, #0 ldr r6, _080253D8 @ =0x03005000 ldr r1, _080253DC @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _08025330: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r4, r5, r0 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _08025330 _08025360: mov r1, r8 ldr r0, [r1, #0x44] ldr r1, [r0, #0x48] movs r0, #0 strh r0, [r1] mov r1, r8 ldr r0, [r1, #0x44] ldr r5, [r0, #0x30] ldrh r0, [r5] cmp r0, #0 beq _080253B0 movs r0, #0 ldr r6, _080253D8 @ =0x03005000 ldr r1, _080253DC @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _08025380: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r4, r5, r0 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #5 ble _08025380 _080253B0: mov r1, r8 ldr r0, [r1, #0x44] ldr r1, [r0, #0x30] movs r2, #0 movs r0, #0 strh r0, [r1] mov r1, sb ldr r0, [r1] adds r0, #0xe4 strb r2, [r0] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080253D0: .4byte 0x0200B0C0 _080253D4: .4byte 0x020314E0 _080253D8: .4byte 0x03005000 _080253DC: .4byte 0xFFFFFE00 thumb_func_start sub_253E0 sub_253E0: @ 0x080253E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #1 mov r8, r0 ldr r0, _08025490 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r0, [r0, #0x48] mov r1, r8 strh r1, [r0] ldr r4, _08025494 @ =0x020314E0 ldr r0, [r4] ldr r5, _08025498 @ =0x000006CC adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08025410 bl sub_2971C _08025410: ldr r3, [r4] ldr r2, _0802549C @ =0x000006C7 adds r0, r3, r2 ldr r4, _080254A0 @ =0x000006C6 adds r1, r3, r4 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 blt _08025428 b _0802564C _08025428: adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08025464 ldr r1, _080254A4 @ =0x000006CA adds r0, r3, r1 ldrh r0, [r0] cmp r0, #0 bne _08025464 adds r1, r3, #0 adds r1, #0xe4 movs r0, #0xb strb r0, [r1] ldr r1, _080254A8 @ =0x040000D4 ldr r0, _080254AC @ =0x083A05CC str r0, [r1] ldr r0, _080254B0 @ =0x050003C0 str r0, [r1, #4] ldr r0, _080254B4 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080254B8 @ =0x0839DDAC str r0, [r1] ldr r0, _080254BC @ =0x06015800 str r0, [r1, #4] ldr r0, _080254C0 @ =0x80001400 str r0, [r1, #8] ldr r0, [r1, #8] _08025464: ldr r1, _080254C4 @ =0x086AD3FE ldr r3, _08025494 @ =0x020314E0 ldr r2, [r3] ldr r6, _08025498 @ =0x000006CC adds r4, r2, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _080254A4 @ =0x000006CA adds r2, r2, r1 ldrh r1, [r2] adds r5, r3, #0 cmp r0, r1 ble _080254C8 adds r0, r1, #1 strh r0, [r2] b _08025650 .align 2, 0 _08025490: .4byte 0x0200B0C0 _08025494: .4byte 0x020314E0 _08025498: .4byte 0x000006CC _0802549C: .4byte 0x000006C7 _080254A0: .4byte 0x000006C6 _080254A4: .4byte 0x000006CA _080254A8: .4byte 0x040000D4 _080254AC: .4byte 0x083A05CC _080254B0: .4byte 0x050003C0 _080254B4: .4byte 0x80000010 _080254B8: .4byte 0x0839DDAC _080254BC: .4byte 0x06015800 _080254C0: .4byte 0x80001400 _080254C4: .4byte 0x086AD3FE _080254C8: movs r7, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r3, [r5] ldr r2, _0802559C @ =0x000006CC adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bgt _080254E6 b _0802562C _080254E6: subs r2, #5 adds r1, r3, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r6 strb r7, [r0] movs r3, #0 mov r8, r3 ldr r1, [r5] ldr r4, _080255A0 @ =0x000006C9 adds r1, r1, r4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r3, [r5] adds r2, r3, r2 ldr r1, _080255A4 @ =0x000006C6 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _0802552E adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 blt _0802553A adds r0, r3, #0 adds r0, #0xe4 strb r7, [r0] _0802552E: ldr r0, [r5] adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _080255B4 _0802553A: ldr r0, [r5] ldr r2, _080255A4 @ =0x000006C6 adds r0, r0, r2 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r3, _080255A8 @ =0x000006C7 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] ldr r4, _080255AC @ =0x00000625 adds r0, r0, r4 strb r1, [r0] movs r2, #0 ldr r6, _080255B0 @ =0x0200B0C0 adds r4, r5, #0 adds r3, #6 _0802555C: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _0802555C ldr r0, [r6, #0x4c] movs r1, #6 bl __umodsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldr r0, [r5] ldr r1, _080255A0 @ =0x000006C9 adds r0, r0, r1 movs r2, #0 movs r1, #5 strb r1, [r0] ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r6, #0x44] ldr r0, [r0, #0x48] strh r2, [r0] b _080255CE .align 2, 0 _0802559C: .4byte 0x000006CC _080255A0: .4byte 0x000006C9 _080255A4: .4byte 0x000006C6 _080255A8: .4byte 0x000006C7 _080255AC: .4byte 0x00000625 _080255B0: .4byte 0x0200B0C0 _080255B4: cmp r0, #0 bne _080255BC movs r3, #0 b _080255CE _080255BC: ldr r0, _08025620 @ =0x0200B0C0 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldr r0, [r0, #0x4c] bl __umodsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _080255CE: ldr r1, [r5] lsls r3, r3, #0x10 asrs r2, r3, #0x10 ldr r7, _08025624 @ =0x000006CD adds r0, r1, r7 adds r0, r0, r2 ldrb r0, [r0] movs r2, #0xd9 lsls r2, r2, #3 adds r1, r1, r2 strb r0, [r1] ldr r0, [r5] ldr r6, _08025628 @ =0x000006C9 adds r0, r0, r6 asrs r1, r3, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _08025650 adds r4, r5, #0 adds r5, r7, #0 _080255FA: ldr r0, [r4] asrs r1, r3, #0x10 adds r0, r0, r5 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, [r4] adds r0, r0, r6 lsls r3, r1, #0x10 asrs r1, r3, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _080255FA b _08025650 .align 2, 0 _08025620: .4byte 0x0200B0C0 _08025624: .4byte 0x000006CD _08025628: .4byte 0x000006C9 _0802562C: cmp r0, #1 bne _0802566C movs r4, #0xd9 lsls r4, r4, #3 adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] ldr r2, _08025648 @ =0x000006D3 adds r0, r3, r2 adds r0, r0, r1 movs r1, #0xd strb r1, [r0] b _08025650 .align 2, 0 _08025648: .4byte 0x000006D3 _0802564C: movs r3, #0 mov r8, r3 _08025650: ldr r0, _080256CC @ =0x020314E0 ldr r0, [r0] ldr r4, _080256D0 @ =0x000006CC adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0802566C movs r0, #0x8c bl m4aSongNumStart bl sub_29664 _0802566C: ldr r0, _080256CC @ =0x020314E0 ldr r5, [r0] ldr r1, _080256D0 @ =0x000006CC adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _08025682 movs r2, #0 mov r8, r2 _08025682: ldr r0, _080256D4 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r7, [r0, #0x48] mov r3, r8 cmp r3, #0 beq _080256DC movs r0, #0xd9 lsls r0, r0, #3 adds r4, r5, r0 movs r0, #0 ldrsb r0, [r4, r0] movs r1, #3 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x14 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x60 subs r0, r0, r1 strh r0, [r7, #2] movs r0, #0 ldrsb r0, [r4, r0] movs r1, #3 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x14 adds r2, r5, #0 adds r2, #0x5a ldr r3, _080256D8 @ =0xFFFFFED4 adds r1, r3, #0 ldrh r2, [r2] adds r1, r1, r2 subs r0, r0, r1 b _080256DE .align 2, 0 _080256CC: .4byte 0x020314E0 _080256D0: .4byte 0x000006CC _080256D4: .4byte 0x0200B0C0 _080256D8: .4byte 0xFFFFFED4 _080256DC: movs r0, #0xc8 _080256DE: strh r0, [r7, #4] movs r4, #4 ldrsh r0, [r7, r4] cmp r0, #0xc7 ble _080256EC movs r0, #0xc8 strh r0, [r7, #4] _080256EC: movs r2, #0 ldr r0, _080257EC @ =0x03005000 mov ip, r0 ldr r1, _080257F0 @ =0x086AD3FE mov sl, r1 ldr r3, _080257F4 @ =0x020314E0 mov sb, r3 ldr r4, _080257F8 @ =0x000006CC mov r8, r4 _080256FE: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #3 adds r6, #8 adds r6, r7, r6 ldrh r4, [r6] lsls r4, r4, #3 add r4, ip lsls r3, r5, #1 adds r3, r3, r5 lsls r0, r3, #1 str r0, [sp] mov r1, sb ldr r0, [r1] add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 ldr r0, _080257FC @ =0x086B53E4 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r4] adds r4, #2 adds r2, r3, #1 lsls r2, r2, #1 str r2, [sp] mov r1, sb ldr r0, [r1] add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 ldr r0, _080257FC @ =0x086B53E4 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r4] adds r3, #2 lsls r3, r3, #1 mov r1, sb ldr r0, [r1] add r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 adds r3, r3, r0 ldr r0, _080257FC @ =0x086B53E4 adds r3, r3, r0 ldrh r0, [r3] strh r0, [r4, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r0, [r2, #5] movs r1, #0xc orrs r0, r1 strb r0, [r2, #5] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r4, _08025800 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08025804 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _080256FE add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080257EC: .4byte 0x03005000 _080257F0: .4byte 0x086AD3FE _080257F4: .4byte 0x020314E0 _080257F8: .4byte 0x000006CC _080257FC: .4byte 0x086B53E4 _08025800: .4byte 0x000001FF _08025804: .4byte 0xFFFFFE00 thumb_func_start sub_25808 sub_25808: @ 0x08025808 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _08025834 @ =0x020314E0 ldr r0, [r1] ldr r2, _08025838 @ =0x00000602 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 cmp r0, #8 bls _08025828 b _08025F36 _08025828: lsls r0, r0, #2 ldr r1, _0802583C @ =_08025840 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08025834: .4byte 0x020314E0 _08025838: .4byte 0x00000602 _0802583C: .4byte _08025840 _08025840: @ jump table .4byte _08025864 @ case 0 .4byte _080258A8 @ case 1 .4byte _0802592C @ case 2 .4byte _08025A7C @ case 3 .4byte _08025AF8 @ case 4 .4byte _08025C18 @ case 5 .4byte _08025C78 @ case 6 .4byte _08025D60 @ case 7 .4byte _08025DD0 @ case 8 _08025864: ldr r1, [r7] ldr r3, _08025878 @ =0x00000604 adds r2, r1, r3 ldrh r0, [r2] cmp r0, #0x3b bhi _0802587C adds r0, #1 strh r0, [r2] b _08025890 .align 2, 0 _08025878: .4byte 0x00000604 _0802587C: ldr r4, _0802589C @ =0x00000602 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 movs r2, #0 strb r0, [r1] ldr r0, [r7] ldr r6, _080258A0 @ =0x00000604 adds r0, r0, r6 strh r2, [r0] _08025890: ldr r0, _080258A4 @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] b _08025F36 .align 2, 0 _0802589C: .4byte 0x00000602 _080258A0: .4byte 0x00000604 _080258A4: .4byte 0x0200B0C0 _080258A8: ldr r0, [r7] adds r0, #0xe4 movs r5, #0 movs r1, #5 strb r1, [r0] ldr r1, _08025900 @ =0x040000D4 ldr r0, _08025904 @ =0x083A07CC str r0, [r1] ldr r0, _08025908 @ =0x06015800 str r0, [r1, #4] ldr r0, _0802590C @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025910 @ =0x083A27EC str r0, [r1] ldr r0, _08025914 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025918 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802591C @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x8c ldr r1, [r0] movs r4, #0 movs r0, #1 strh r0, [r1] movs r0, #0x8d bl m4aSongNumStart ldr r1, [r7] ldr r0, _08025920 @ =0x00000602 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] ldr r2, _08025924 @ =0x00000604 adds r1, r0, r2 strh r5, [r1] ldr r3, _08025928 @ =0x00000603 adds r0, r0, r3 strb r4, [r0] b _08025F36 .align 2, 0 _08025900: .4byte 0x040000D4 _08025904: .4byte 0x083A07CC _08025908: .4byte 0x06015800 _0802590C: .4byte 0x80001000 _08025910: .4byte 0x083A27EC _08025914: .4byte 0x050003C0 _08025918: .4byte 0x80000010 _0802591C: .4byte 0x0200B0C0 _08025920: .4byte 0x00000602 _08025924: .4byte 0x00000604 _08025928: .4byte 0x00000603 _0802592C: ldr r2, _08025954 @ =0x086AE0C0 ldr r1, [r7] ldr r4, _08025958 @ =0x00000603 adds r3, r1, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r6, #0 ldrsh r0, [r0, r6] ldr r2, _0802595C @ =0x00000604 adds r1, r1, r2 ldrh r2, [r1] cmp r0, r2 ble _08025964 adds r0, r2, #1 strh r0, [r1] ldr r3, _08025960 @ =0x0200B0C0 b _08025996 .align 2, 0 _08025954: .4byte 0x086AE0C0 _08025958: .4byte 0x00000603 _0802595C: .4byte 0x00000604 _08025960: .4byte 0x0200B0C0 _08025964: movs r2, #0 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r7] ldr r3, _08025A60 @ =0x00000603 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] ldr r3, _08025A64 @ =0x0200B0C0 cmp r0, #7 ble _08025996 movs r0, #7 strb r0, [r1] ldr r1, [r7] ldr r4, _08025A68 @ =0x00000602 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r3, #0x44] adds r0, #0x8c ldr r0, [r0] strh r2, [r0] _08025996: ldr r2, [r7] ldr r6, _08025A60 @ =0x00000603 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, [r3, #0x44] adds r0, #0x8c ldr r6, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x7c subs r0, r0, r1 strh r0, [r6, #2] adds r2, #0x5a ldrh r1, [r2] movs r0, #0xf4 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _080259CE movs r0, #0xc8 strh r0, [r6, #4] _080259CE: movs r2, #0 lsls r0, r5, #0x10 ldr r7, _08025A6C @ =0x03005000 mov r8, r7 ldr r1, _08025A70 @ =0x086B50AE mov ip, r1 asrs r1, r0, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r3, _08025A74 @ =0xFFFFFE00 mov sb, r3 _080259E8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08025A78 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _080259E8 b _08025F36 .align 2, 0 _08025A60: .4byte 0x00000603 _08025A64: .4byte 0x0200B0C0 _08025A68: .4byte 0x00000602 _08025A6C: .4byte 0x03005000 _08025A70: .4byte 0x086B50AE _08025A74: .4byte 0xFFFFFE00 _08025A78: .4byte 0x000001FF _08025A7C: ldr r0, [r7] adds r0, #0xe4 movs r3, #0 movs r1, #6 strb r1, [r0] ldr r1, _08025AD0 @ =0x040000D4 ldr r0, _08025AD4 @ =0x083A29EC str r0, [r1] ldr r0, _08025AD8 @ =0x06015800 str r0, [r1, #4] ldr r0, _08025ADC @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025AE0 @ =0x083A320C str r0, [r1] ldr r0, _08025AE4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025AE8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025AEC @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x90 ldr r1, [r0] movs r2, #1 movs r0, #1 strh r0, [r1] ldr r1, [r7] ldr r4, _08025AF0 @ =0x00000602 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] ldr r6, _08025AF4 @ =0x00000604 adds r1, r0, r6 strh r3, [r1] movs r7, #0x88 lsls r7, r7, #5 adds r0, r0, r7 strb r2, [r0] b _08025F36 .align 2, 0 _08025AD0: .4byte 0x040000D4 _08025AD4: .4byte 0x083A29EC _08025AD8: .4byte 0x06015800 _08025ADC: .4byte 0x80000400 _08025AE0: .4byte 0x083A320C _08025AE4: .4byte 0x050003C0 _08025AE8: .4byte 0x80000010 _08025AEC: .4byte 0x0200B0C0 _08025AF0: .4byte 0x00000602 _08025AF4: .4byte 0x00000604 _08025AF8: ldr r1, [r7] ldr r0, _08025B10 @ =0x00000604 adds r2, r1, r0 ldrh r0, [r2] lsrs r5, r0, #1 cmp r0, #0xe bhi _08025B18 adds r0, #1 strh r0, [r2] ldr r3, _08025B14 @ =0x0200B0C0 b _08025B3E .align 2, 0 _08025B10: .4byte 0x00000604 _08025B14: .4byte 0x0200B0C0 _08025B18: ldr r3, _08025BFC @ =0x0200B0C0 ldr r0, [r3, #0x44] adds r0, #0x90 ldr r0, [r0] movs r4, #0 movs r2, #0 strh r2, [r0] ldr r6, _08025C00 @ =0x00000602 adds r1, r1, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] adds r6, #2 adds r1, r0, r6 strh r2, [r1] ldr r1, _08025C04 @ =0x00000603 adds r0, r0, r1 strb r4, [r0] _08025B3E: ldr r0, [r3, #0x44] adds r0, #0x90 ldr r6, [r0] ldr r1, [r7] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08025B6C movs r0, #0xc8 strh r0, [r6, #4] _08025B6C: movs r2, #0 lsls r0, r5, #0x10 ldr r3, _08025C08 @ =0x03005000 mov r8, r3 ldr r4, _08025C0C @ =0x086B4F6A mov ip, r4 asrs r1, r0, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r7, _08025C10 @ =0xFFFFFE00 mov sb, r7 _08025B86: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, r8 adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08025C14 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _08025B86 b _08025F36 .align 2, 0 _08025BFC: .4byte 0x0200B0C0 _08025C00: .4byte 0x00000602 _08025C04: .4byte 0x00000603 _08025C08: .4byte 0x03005000 _08025C0C: .4byte 0x086B4F6A _08025C10: .4byte 0xFFFFFE00 _08025C14: .4byte 0x000001FF _08025C18: ldr r0, [r7] adds r0, #0xe4 movs r1, #7 strb r1, [r0] ldr r1, _08025C58 @ =0x040000D4 ldr r0, _08025C5C @ =0x083A340C str r0, [r1] ldr r0, _08025C60 @ =0x06015800 str r0, [r1, #4] ldr r0, _08025C64 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025C68 @ =0x083A542C str r0, [r1] ldr r0, _08025C6C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025C70 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, [r7] ldr r3, _08025C74 @ =0x00000602 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] bl sub_29924 movs r0, #0x8e bl m4aSongNumStart b _08025F36 .align 2, 0 _08025C58: .4byte 0x040000D4 _08025C5C: .4byte 0x083A340C _08025C60: .4byte 0x06015800 _08025C64: .4byte 0x80001000 _08025C68: .4byte 0x083A542C _08025C6C: .4byte 0x050003C0 _08025C70: .4byte 0x80000010 _08025C74: .4byte 0x00000602 _08025C78: ldr r2, _08025CB0 @ =0x0200B0C0 ldrh r0, [r2, #0x3c] movs r0, #0 strh r0, [r2, #0x3c] movs r0, #0x80 lsls r0, r0, #0x13 ldrh r1, [r0] movs r0, #0xf8 lsls r0, r0, #5 ands r0, r1 lsrs r0, r0, #8 movs r1, #0xa0 ldrh r3, [r2, #0x38] orrs r0, r1 strh r0, [r2, #0x38] ldr r0, [r7] ldr r4, _08025CB4 @ =0x00000604 adds r0, r0, r4 ldrh r0, [r0] adds r3, r2, #0 cmp r0, #0x48 bhi _08025CF2 cmp r0, #7 bhi _08025CB8 ldrh r0, [r3, #0x3c] movs r0, #0x10 b _08025CF0 .align 2, 0 _08025CB0: .4byte 0x0200B0C0 _08025CB4: .4byte 0x00000604 _08025CB8: movs r2, #0 adds r6, r7, #0 ldr r5, _08025D04 @ =0x000006D3 movs r4, #0xd _08025CC0: ldr r1, [r6] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r5 adds r1, r1, r0 strb r4, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08025CC0 ldr r0, [r7] ldr r6, _08025D08 @ =0x00000604 adds r0, r0, r6 ldrh r1, [r0] movs r0, #8 subs r0, r0, r1 cmp r0, #0 bge _08025CEA adds r0, #3 _08025CEA: asrs r0, r0, #2 adds r0, #0x10 ldrh r1, [r3, #0x3c] _08025CF0: strh r0, [r3, #0x3c] _08025CF2: ldr r1, [r7] ldr r0, _08025D08 @ =0x00000604 adds r2, r1, r0 ldrh r0, [r2] cmp r0, #0x47 bhi _08025D0C adds r0, #1 strh r0, [r2] b _08025D28 .align 2, 0 _08025D04: .4byte 0x000006D3 _08025D08: .4byte 0x00000604 _08025D0C: ldr r2, _08025D4C @ =0x00000602 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 movs r3, #0 strb r0, [r1] ldr r0, [r7] ldr r4, _08025D50 @ =0x00000604 adds r1, r0, r4 movs r2, #0 strh r3, [r1] ldr r6, _08025D54 @ =0x00000603 adds r0, r0, r6 strb r2, [r0] _08025D28: ldr r1, [r7] ldr r7, _08025D50 @ =0x00000604 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #8 bhi _08025D36 b _08025F36 _08025D36: ldr r2, _08025D58 @ =0x000006CA adds r0, r1, r2 ldrh r1, [r0] ldr r0, _08025D5C @ =0x00006FFF cmp r1, r0 bls _08025D44 b _08025F36 _08025D44: bl sub_29A6C b _08025F36 .align 2, 0 _08025D4C: .4byte 0x00000602 _08025D50: .4byte 0x00000604 _08025D54: .4byte 0x00000603 _08025D58: .4byte 0x000006CA _08025D5C: .4byte 0x00006FFF _08025D60: ldr r0, [r7] adds r0, #0xe4 movs r1, #8 strb r1, [r0] ldr r1, _08025DAC @ =0x040000D4 ldr r0, _08025DB0 @ =0x083A562C str r0, [r1] ldr r0, _08025DB4 @ =0x06015800 str r0, [r1, #4] ldr r0, _08025DB8 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025DBC @ =0x083A6E4C str r0, [r1] ldr r0, _08025DC0 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08025DC4 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08025DC8 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x94 ldr r1, [r0] movs r2, #0 movs r0, #1 strh r0, [r1] ldr r1, [r7] ldr r3, _08025DCC @ =0x00000602 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r7] movs r4, #0x88 lsls r4, r4, #5 adds r0, r0, r4 strb r2, [r0] b _08025F36 .align 2, 0 _08025DAC: .4byte 0x040000D4 _08025DB0: .4byte 0x083A562C _08025DB4: .4byte 0x06015800 _08025DB8: .4byte 0x80000C00 _08025DBC: .4byte 0x083A6E4C _08025DC0: .4byte 0x050003C0 _08025DC4: .4byte 0x80000010 _08025DC8: .4byte 0x0200B0C0 _08025DCC: .4byte 0x00000602 _08025DD0: ldr r2, _08025DF8 @ =0x086AE0D0 ldr r1, [r7] ldr r5, _08025DFC @ =0x00000603 adds r3, r1, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r6, #0 ldrsh r0, [r0, r6] ldr r2, _08025E00 @ =0x00000604 adds r1, r1, r2 ldrh r2, [r1] cmp r0, r2 ble _08025E08 adds r0, r2, #1 strh r0, [r1] ldr r3, _08025E04 @ =0x0200B0C0 b _08025E6C .align 2, 0 _08025DF8: .4byte 0x086AE0D0 _08025DFC: .4byte 0x00000603 _08025E00: .4byte 0x00000604 _08025E04: .4byte 0x0200B0C0 _08025E08: movs r4, #0 movs r2, #0 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r7] ldr r3, _08025F44 @ =0x00000603 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r3, _08025F48 @ =0x0200B0C0 cmp r0, #0xa ble _08025E6C ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r3, #0x44] adds r0, #0x94 ldr r0, [r0] strh r2, [r0] ldr r0, [r7] ldr r6, _08025F4C @ =0x000006C6 adds r0, r0, r6 strb r4, [r0] ldr r0, [r7] ldr r1, _08025F50 @ =0x000006C7 adds r0, r0, r1 strb r4, [r0] ldr r0, [r7] subs r6, #0xa1 adds r0, r0, r6 strb r4, [r0] ldrh r0, [r3, #0x38] movs r0, #0xce strh r0, [r3, #0x38] ldrh r0, [r3, #0x3c] strh r2, [r3, #0x3c] ldr r0, [r3, #0x44] adds r0, #0x94 ldr r0, [r0] strh r2, [r0] ldr r0, [r7] adds r0, r0, r5 movs r1, #0xa strb r1, [r0] ldr r0, [r7] adds r0, #0xe4 strb r4, [r0] _08025E6C: ldr r2, [r7] ldr r7, _08025F44 @ =0x00000603 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, [r3, #0x44] adds r0, #0x94 ldr r6, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 strh r0, [r6, #2] adds r2, #0x5a ldrh r1, [r2] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08025EA8 movs r0, #0xc8 strh r0, [r6, #4] _08025EA8: movs r2, #0 lsls r0, r5, #0x10 ldr r3, _08025F54 @ =0x03005000 mov r8, r3 ldr r4, _08025F58 @ =0x086B4E62 mov ip, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r7, _08025F5C @ =0xFFFFFE00 mov sb, r7 _08025EC2: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, r8 adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08025F60 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _08025EC2 _08025F36: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08025F44: .4byte 0x00000603 _08025F48: .4byte 0x0200B0C0 _08025F4C: .4byte 0x000006C6 _08025F50: .4byte 0x000006C7 _08025F54: .4byte 0x03005000 _08025F58: .4byte 0x086B4E62 _08025F5C: .4byte 0xFFFFFE00 _08025F60: .4byte 0x000001FF thumb_func_start sub_25F64 sub_25F64: @ 0x08025F64 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} ldr r5, _0802607C @ =0x020314E0 ldr r1, [r5] movs r2, #0 movs r0, #1 strb r0, [r1, #0x17] ldr r0, [r5] movs r3, #0 strh r2, [r0, #0x18] ldr r1, _08026080 @ =0x000006DB adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] adds r0, #0x36 strb r3, [r0] bl sub_C00 ldr r4, [r5] ldr r6, _08026084 @ =0x0200B0C0 ldr r1, [r6, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 adds r4, #0x32 strb r0, [r4] ldr r2, [r5] ldr r0, _08026088 @ =0x08055A68 mov sb, r0 adds r0, r2, #0 adds r0, #0x32 movs r3, #0 ldrsb r3, [r0, r3] ldrb r1, [r6, #4] lsls r0, r1, #3 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] adds r2, #0x35 strb r0, [r2] ldr r1, [r5] ldr r2, _0802608C @ =0x08137928 mov r8, r2 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] ldr r2, _08026090 @ =0x000006DA adds r1, r1, r2 strb r0, [r1] ldr r4, [r5] adds r0, r4, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 movs r1, #6 bl __modsi3 ldrb r2, [r6, #4] lsls r1, r2, #3 subs r1, r1, r2 adds r1, r1, r0 lsls r1, r1, #1 add r1, sb ldrh r0, [r1] adds r4, #0x35 strb r0, [r4] ldr r1, [r5] adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] ldr r2, _08026094 @ =0x000006D9 adds r1, r1, r2 strb r0, [r1] movs r0, #0 movs r1, #0 bl sub_1C7F4 movs r0, #0 movs r1, #1 bl sub_1C7F4 movs r2, #0 ldr r4, _08026098 @ =0x000006D3 movs r3, #0xd adds r6, r5, #0 _08026032: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08026032 ldr r1, _0802609C @ =0x040000D4 ldr r0, _080260A0 @ =0x083A8AAC str r0, [r1] ldr r0, _080260A4 @ =0x050003C0 str r0, [r1, #4] ldr r0, _080260A8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080260AC @ =0x084FA20C str r0, [r1] ldr r0, _080260B0 @ =0x06015800 str r0, [r1, #4] ldr r0, _080260B4 @ =0x80000140 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r6] adds r0, #0xe4 movs r1, #0xc strb r1, [r0] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0802607C: .4byte 0x020314E0 _08026080: .4byte 0x000006DB _08026084: .4byte 0x0200B0C0 _08026088: .4byte 0x08055A68 _0802608C: .4byte 0x08137928 _08026090: .4byte 0x000006DA _08026094: .4byte 0x000006D9 _08026098: .4byte 0x000006D3 _0802609C: .4byte 0x040000D4 _080260A0: .4byte 0x083A8AAC _080260A4: .4byte 0x050003C0 _080260A8: .4byte 0x80000010 _080260AC: .4byte 0x084FA20C _080260B0: .4byte 0x06015800 _080260B4: .4byte 0x80000140 thumb_func_start sub_260B8 sub_260B8: @ 0x080260B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r1, _080260E4 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] subs r0, #1 lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #5 bls _080260D8 b _0802674E _080260D8: lsls r0, r0, #2 ldr r1, _080260E8 @ =_080260EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080260E4: .4byte 0x020314E0 _080260E8: .4byte _080260EC _080260EC: @ jump table .4byte _08026104 @ case 0 .4byte _080261E0 @ case 1 .4byte _080262E4 @ case 2 .4byte _08026318 @ case 3 .4byte _08026318 @ case 4 .4byte _08026608 @ case 5 _08026104: ldr r3, _08026198 @ =0x0200B0C0 ldrh r0, [r3, #0x38] movs r5, #0 movs r4, #0 ldr r0, _0802619C @ =0x00001C10 strh r0, [r3, #0x38] ldrh r0, [r3, #0x3a] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r3, #0x3a] mov r0, sb ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] mov r2, sb ldr r1, [r2] movs r6, #0xdc lsls r6, r6, #3 adds r0, r1, r6 strh r4, [r0] ldr r7, _080261A0 @ =0x000005FE adds r0, r1, r7 strh r4, [r0] ldr r0, _080261A4 @ =0x000005FB adds r1, r1, r0 movs r2, #1 strb r2, [r1] ldr r0, [r3, #0x44] ldr r0, [r0, #0x50] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x54] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x5c] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x58] strh r2, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x4c] strh r2, [r0] mov r1, sb ldr r2, [r1] adds r6, #0x10 adds r0, r2, r6 movs r1, #0x1e strh r1, [r0] adds r7, #0xf4 adds r0, r2, r7 strh r1, [r0] ldr r1, _080261A8 @ =0x000006F4 adds r0, r2, r1 strh r4, [r0] ldrb r0, [r3, #4] cmp r0, #0 bne _080261B0 movs r3, #0xb8 lsls r3, r3, #1 adds r0, r2, r3 movs r1, #0xa strb r1, [r0] mov r4, sb ldr r0, [r4] ldr r5, _080261AC @ =0x00000171 adds r0, r0, r5 strb r1, [r0] ldr r0, [r4] movs r6, #0xb9 lsls r6, r6, #1 adds r0, r0, r6 strb r1, [r0] b _080261CC .align 2, 0 _08026198: .4byte 0x0200B0C0 _0802619C: .4byte 0x00001C10 _080261A0: .4byte 0x000005FE _080261A4: .4byte 0x000005FB _080261A8: .4byte 0x000006F4 _080261AC: .4byte 0x00000171 _080261B0: movs r7, #0xb8 lsls r7, r7, #1 adds r0, r2, r7 strb r5, [r0] mov r1, sb ldr r0, [r1] ldr r2, _080261DC @ =0x00000171 adds r0, r0, r2 strb r5, [r0] ldr r0, [r1] movs r3, #0xb9 lsls r3, r3, #1 adds r0, r0, r3 strb r5, [r0] _080261CC: mov r4, sb ldr r0, [r4] movs r5, #0xba lsls r5, r5, #1 adds r0, r0, r5 movs r1, #0 strh r1, [r0] b _0802674E .align 2, 0 _080261DC: .4byte 0x00000171 _080261E0: mov r6, sb ldr r1, [r6] ldr r7, _080262CC @ =0x000005FC adds r0, r1, r7 movs r3, #0 ldrsh r2, [r0, r3] cmp r2, #0 bne _080261FA ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r6] strh r2, [r0, #0x18] _080261FA: ldr r0, _080262D0 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _08026296 mov r4, sb ldr r3, [r4] movs r4, #0xba lsls r4, r4, #1 adds r2, r3, r4 ldrh r0, [r2] cmp r0, #0x8e bhi _08026224 ldr r1, _080262D4 @ =0x08137944 lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] movs r5, #0xb8 lsls r5, r5, #1 adds r0, r3, r5 strb r1, [r0] _08026224: mov r6, sb ldr r2, [r6] adds r1, r2, r4 ldrh r0, [r1] subs r0, #0x12 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x8e bhi _08026254 ldr r3, _080262D4 @ =0x08137944 ldrh r1, [r1] adds r0, r1, #0 subs r0, #0x12 cmp r0, #0 bge _08026244 adds r0, #7 _08026244: asrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] movs r7, #0xb9 lsls r7, r7, #1 adds r1, r2, r7 strb r0, [r1] _08026254: mov r0, sb ldr r2, [r0] movs r3, #0xba lsls r3, r3, #1 adds r1, r2, r3 ldrh r0, [r1] subs r0, #0x24 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x8e bhi _08026286 ldr r3, _080262D4 @ =0x08137944 ldrh r1, [r1] adds r0, r1, #0 subs r0, #0x24 cmp r0, #0 bge _08026278 adds r0, #7 _08026278: asrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] ldr r4, _080262D8 @ =0x00000171 adds r1, r2, r4 strb r0, [r1] _08026286: mov r5, sb ldr r1, [r5] movs r6, #0xba lsls r6, r6, #1 adds r1, r1, r6 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08026296: mov r7, sb ldr r4, [r7] movs r1, #0xde lsls r1, r1, #3 adds r0, r4, r1 ldrh r0, [r0] lsls r0, r0, #5 ldr r2, _080262DC @ =0x000006F2 adds r1, r4, r2 ldrh r1, [r1] bl __divsi3 movs r3, #0xdc lsls r3, r3, #3 adds r1, r4, r3 strh r0, [r1] ldr r5, _080262E0 @ =0x000006C4 adds r4, r4, r5 movs r0, #1 strb r0, [r4] ldr r1, [r7] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] bl sub_26778 b _0802674E .align 2, 0 _080262CC: .4byte 0x000005FC _080262D0: .4byte 0x0200B0C0 _080262D4: .4byte 0x08137944 _080262D8: .4byte 0x00000171 _080262DC: .4byte 0x000006F2 _080262E0: .4byte 0x000006C4 _080262E4: ldr r1, _08026338 @ =0x020314E0 ldr r2, [r1] ldrh r0, [r2, #0x18] cmp r0, #0xe bhi _08026312 adds r0, #1 strh r0, [r2, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _08026312 ldrb r0, [r2, #0x17] adds r0, #1 strb r0, [r2, #0x17] ldr r1, [r1] ldr r6, _0802633C @ =0x000006F2 adds r2, r1, r6 movs r0, #6 strh r0, [r2] ldr r7, _08026340 @ =0x000006F4 adds r1, r1, r7 movs r0, #0 strh r0, [r1] _08026312: movs r0, #0 bl sub_26820 _08026318: ldr r0, _08026338 @ =0x020314E0 ldr r5, [r0] movs r2, #0x17 ldrsb r2, [r5, r2] mov sb, r0 cmp r2, #3 bne _08026344 movs r0, #0xde lsls r0, r0, #3 adds r4, r5, r0 ldrh r0, [r4] subs r0, #1 strh r0, [r4] ldr r2, _0802633C @ =0x000006F2 adds r1, r5, r2 b _0802647C .align 2, 0 _08026338: .4byte 0x020314E0 _0802633C: .4byte 0x000006F2 _08026340: .4byte 0x000006F4 _08026344: cmp r2, #4 beq _0802634A b _08026494 _0802634A: movs r3, #0xde lsls r3, r3, #3 adds r0, r5, r3 ldrh r1, [r0] adds r1, #1 strh r1, [r0] ldrb r0, [r5, #5] cmp r0, #0 beq _080263C0 movs r0, #0x17 ldrsb r0, [r5, r0] cmp r0, #4 bne _080263C0 ldr r4, _08026380 @ =0x000006F4 adds r1, r5, r4 ldrh r0, [r1] cmp r0, #0 bne _080263CE ldr r0, _08026384 @ =0x0200B0C0 ldrb r0, [r0, #0xa] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026388 movs r0, #0x30 b _0802638A .align 2, 0 _08026380: .4byte 0x000006F4 _08026384: .4byte 0x0200B0C0 _08026388: movs r0, #1 _0802638A: strh r0, [r1] mov r5, sb ldr r1, [r5] ldr r6, _08026428 @ =0x000006F4 adds r0, r1, r6 ldrh r2, [r0] ldr r7, _0802642C @ =0x000006F6 adds r0, r1, r7 strh r2, [r0] ldr r2, _08026430 @ =0x00000163 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0x21 strb r1, [r0] ldr r1, [r5] ldr r3, _08026434 @ =0x00000724 adds r2, r1, r3 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] movs r4, #0xb6 lsls r4, r4, #1 adds r1, r1, r4 movs r0, #2 strb r0, [r1] _080263C0: mov r5, sb ldr r0, [r5] ldr r6, _08026428 @ =0x000006F4 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0 beq _0802646E _080263CE: mov r7, sb ldr r2, [r7] ldr r0, _08026428 @ =0x000006F4 adds r1, r2, r0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] ldr r0, _08026438 @ =0x0200B0C0 ldrb r0, [r0, #0xa] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026412 ldr r1, _0802643C @ =0x00000283 adds r0, r2, r1 movs r1, #4 strb r1, [r0] ldr r2, [r7] ldr r3, _08026428 @ =0x000006F4 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #0x17 bhi _08026412 movs r0, #0x18 strh r0, [r1] adds r0, r2, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _08026412 movs r0, #0 strh r0, [r1] _08026412: mov r5, sb ldr r4, [r5] ldr r6, _08026428 @ =0x000006F4 adds r1, r4, r6 ldrh r0, [r1] cmp r0, #0 bne _08026440 movs r0, #5 strb r0, [r4, #0x17] b _0802646E .align 2, 0 _08026428: .4byte 0x000006F4 _0802642C: .4byte 0x000006F6 _08026430: .4byte 0x00000163 _08026434: .4byte 0x00000724 _08026438: .4byte 0x0200B0C0 _0802643C: .4byte 0x00000283 _08026440: movs r7, #0xde lsls r7, r7, #3 adds r6, r4, r7 ldr r0, _08026488 @ =0x000006F2 adds r5, r4, r0 ldrh r0, [r6] ldrh r2, [r5] cmp r0, r2 bne _0802646E ldrh r1, [r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 ldr r3, _0802648C @ =0x000006F6 adds r1, r4, r3 ldrh r1, [r1] bl __divsi3 movs r1, #0x28 subs r1, r1, r0 movs r0, #0 strh r1, [r5] strh r0, [r6] _0802646E: ldr r0, _08026490 @ =0x020314E0 ldr r1, [r0] movs r5, #0xde lsls r5, r5, #3 adds r4, r1, r5 ldr r6, _08026488 @ =0x000006F2 adds r1, r1, r6 _0802647C: ldrh r0, [r4] ldrh r1, [r1] bl __umodsi3 strh r0, [r4] b _080264E2 .align 2, 0 _08026488: .4byte 0x000006F2 _0802648C: .4byte 0x000006F6 _08026490: .4byte 0x020314E0 _08026494: movs r7, #0xde lsls r7, r7, #3 adds r4, r5, r7 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r0, _08026554 @ =0x000006F2 adds r1, r5, r0 ldrh r0, [r4] ldrh r1, [r1] bl __umodsi3 strh r0, [r4] lsls r0, r0, #0x10 lsrs r2, r0, #0x10 cmp r2, #0 bne _080264E2 strh r2, [r5, #0x18] ldrb r0, [r5, #0x17] adds r0, #1 strb r0, [r5, #0x17] ldr r1, _08026558 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r0, [r0, #0x5c] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x50] strh r2, [r0] ldr r0, [r1, #0x44] ldr r0, [r0, #0x54] strh r2, [r0] ldr r0, [r1, #0x44] adds r0, #0x88 ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r0, #0x93 bl m4aSongNumStart _080264E2: ldr r6, _0802655C @ =0x020314E0 ldr r5, [r6] movs r7, #0xde lsls r7, r7, #3 adds r4, r5, r7 ldrh r0, [r4] lsls r0, r0, #5 ldr r2, _08026554 @ =0x000006F2 adds r1, r5, r2 ldrh r1, [r1] bl __divsi3 movs r3, #0xdc lsls r3, r3, #3 adds r1, r5, r3 strh r0, [r1] ldrh r0, [r4] cmp r0, #0 bne _0802651C ldr r4, _08026560 @ =0x000006DA adds r0, r5, r4 ldrb r1, [r0] ldr r2, _08026564 @ =0x000006D9 adds r0, r5, r2 strb r1, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 _0802651C: ldr r4, [r6] adds r0, r4, r7 ldrh r5, [r0] cmp r5, #1 beq _08026528 b _0802674E _08026528: ldr r0, _08026558 @ =0x0200B0C0 movs r1, #0xa ldrsb r1, [r0, r1] cmp r1, #0 beq _08026568 adds r4, #0x32 movs r0, #0 ldrsb r0, [r4, r0] adds r0, #1 movs r1, #7 bl __modsi3 strb r0, [r4] ldr r0, [r6] adds r0, #0x33 movs r1, #0 strb r1, [r0] ldr r0, [r6] adds r0, #0x34 strb r5, [r0] b _080265A8 .align 2, 0 _08026554: .4byte 0x000006F2 _08026558: .4byte 0x0200B0C0 _0802655C: .4byte 0x020314E0 _08026560: .4byte 0x000006DA _08026564: .4byte 0x000006D9 _08026568: adds r4, #0x32 movs r0, #0 ldrsb r0, [r4, r0] adds r0, #1 movs r1, #6 bl __modsi3 strb r0, [r4] ldr r4, [r6] adds r0, r4, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 movs r1, #6 bl __modsi3 adds r4, #0x33 strb r0, [r4] ldr r4, [r6] adds r0, r4, #0 adds r0, #0x32 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 movs r1, #6 bl __modsi3 adds r4, #0x34 strb r0, [r4] _080265A8: ldr r5, _080265F4 @ =0x020314E0 ldr r2, [r5] ldr r4, _080265F8 @ =0x08055A68 adds r0, r2, #0 adds r0, #0x32 movs r3, #0 ldrsb r3, [r0, r3] ldr r6, _080265FC @ =0x0200B0C0 ldrb r1, [r6, #4] lsls r0, r1, #3 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] adds r2, #0x35 strb r0, [r2] ldr r1, [r5] ldr r2, _08026600 @ =0x08137928 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r7, _08026604 @ =0x000006DA adds r1, r1, r7 strb r0, [r1] movs r0, #0 movs r1, #1 bl sub_1C7F4 movs r0, #0x81 bl m4aSongNumStart b _0802674E .align 2, 0 _080265F4: .4byte 0x020314E0 _080265F8: .4byte 0x08055A68 _080265FC: .4byte 0x0200B0C0 _08026600: .4byte 0x08137928 _08026604: .4byte 0x000006DA _08026608: ldr r0, _08026640 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0x31 bhi _08026628 adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x32 bne _08026628 movs r0, #0 strb r0, [r1, #0x17] movs r0, #1 bl sub_19B64 _08026628: ldr r0, _08026640 @ =0x020314E0 ldr r2, [r0] ldrh r3, [r2, #0x18] mov sb, r0 cmp r3, #0x1c bls _08026636 b _08026742 _08026636: cmp r3, #7 bhi _08026644 adds r0, r3, #0 lsrs r3, r0, #2 b _08026654 .align 2, 0 _08026640: .4byte 0x020314E0 _08026644: ldrh r0, [r2, #0x18] subs r0, #8 movs r1, #3 bl __divsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _08026654: ldr r0, _08026760 @ =0x0200B0C0 ldr r1, [r0, #0x44] adds r1, #0x88 ldr r6, [r1] ldrh r1, [r6] cmp r1, #0 beq _08026724 mov r0, sb ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r6, #2] movs r4, #0xdc lsls r4, r4, #3 adds r2, r1, r4 movs r5, #0x96 lsls r5, r5, #1 adds r0, r5, #0 ldrh r2, [r2] adds r0, r0, r2 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08026696 movs r0, #0xc8 strh r0, [r6, #4] _08026696: movs r2, #0 lsls r1, r3, #0x10 ldr r7, _08026764 @ =0x03005000 mov r8, r7 ldr r0, _08026768 @ =0x086B51CE mov ip, r0 asrs r1, r1, #0x10 movs r0, #0x36 adds r3, r1, #0 muls r3, r0, r3 str r3, [sp] ldr r4, _0802676C @ =0xFFFFFE00 mov sl, r4 _080266B0: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r5, [sp] adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r5 add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _08026770 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #8 ble _080266B0 _08026724: mov r4, sb ldr r3, [r4] ldrh r0, [r3, #0x18] cmp r0, #0x1c bne _08026742 ldr r5, _08026760 @ =0x0200B0C0 ldr r0, [r5, #0x44] adds r0, #0x88 ldr r1, [r0] movs r2, #0 movs r0, #0 strh r0, [r1] adds r0, r3, #0 adds r0, #0xe4 strb r2, [r0] _08026742: mov r6, sb ldr r0, [r6] ldr r7, _08026774 @ =0x000006C4 adds r0, r0, r7 movs r1, #0 strb r1, [r0] _0802674E: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08026760: .4byte 0x0200B0C0 _08026764: .4byte 0x03005000 _08026768: .4byte 0x086B51CE _0802676C: .4byte 0xFFFFFE00 _08026770: .4byte 0x000001FF _08026774: .4byte 0x000006C4 thumb_func_start sub_26778 sub_26778: @ 0x08026778 push {r4, r5, lr} ldr r0, _080267E0 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x64 bl __umodsi3 movs r1, #0xa bl __udivsi3 ldr r4, _080267E4 @ =0x020314E0 ldr r2, [r4] ldr r1, _080267E8 @ =0x0000070C adds r3, r2, r1 movs r5, #0 movs r1, #0 strh r1, [r3] ldr r1, _080267EC @ =0x08137AB8 lsls r0, r0, #0x10 asrs r3, r0, #0x10 lsls r0, r3, #1 adds r0, r0, r1 ldrh r1, [r0] ldr r0, _080267F0 @ =0x0000072F adds r2, r2, r0 strb r1, [r2] ldr r0, [r4] ldr r2, _080267F4 @ =0x0000072E adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] subs r2, #3 adds r0, r0, r2 strb r1, [r0] cmp r3, #7 beq _080267C2 cmp r3, #9 bne _080267FC _080267C2: ldr r0, [r4] movs r1, #0xe5 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r4] ldr r2, _080267F8 @ =0x0000072A adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] subs r2, #1 adds r0, r0, r2 strb r1, [r0] b _08026816 .align 2, 0 _080267E0: .4byte 0x0200B0C0 _080267E4: .4byte 0x020314E0 _080267E8: .4byte 0x0000070C _080267EC: .4byte 0x08137AB8 _080267F0: .4byte 0x0000072F _080267F4: .4byte 0x0000072E _080267F8: .4byte 0x0000072A _080267FC: ldr r0, [r4] movs r1, #0xe5 lsls r1, r1, #3 adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _0802681C @ =0x0000072A adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] adds r1, #1 adds r0, r0, r1 strb r5, [r0] _08026816: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0802681C: .4byte 0x0000072A thumb_func_start sub_26820 sub_26820: @ 0x08026820 push {r4, lr} lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 beq _08026878 ldr r2, _0802686C @ =0x020314E0 ldr r0, [r2] ldr r1, _08026870 @ =0x0000072A adds r0, r0, r1 movs r3, #1 strb r3, [r0] ldr r0, [r2] movs r4, #0xe5 lsls r4, r4, #3 adds r0, r0, r4 strb r3, [r0] ldr r0, [r2] adds r1, #7 adds r0, r0, r1 strb r3, [r0] ldr r0, [r2] adds r4, #6 adds r0, r0, r4 movs r1, #3 strb r1, [r0] ldr r0, [r2] subs r4, #3 adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] adds r4, #4 adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] ldr r1, _08026874 @ =0x00000729 adds r0, r0, r1 strb r3, [r0] b _080268AC .align 2, 0 _0802686C: .4byte 0x020314E0 _08026870: .4byte 0x0000072A _08026874: .4byte 0x00000729 _08026878: ldr r2, _080268BC @ =0x020314E0 ldr r0, [r2] ldr r3, _080268C0 @ =0x00000729 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] ldr r4, _080268C4 @ =0x0000072A adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] subs r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, #4 adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] adds r3, #3 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, #1 adds r0, r0, r4 movs r1, #2 strb r1, [r0] _080268AC: ldr r0, [r2] ldr r1, _080268C8 @ =0x0000070E adds r0, r0, r1 movs r1, #1 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080268BC: .4byte 0x020314E0 _080268C0: .4byte 0x00000729 _080268C4: .4byte 0x0000072A _080268C8: .4byte 0x0000070E thumb_func_start sub_268CC sub_268CC: @ 0x080268CC push {r4, r5, r6, r7, lr} ldr r5, _08026974 @ =0x020314E0 ldr r0, [r5] ldr r1, _08026978 @ =0x000006BC adds r0, r0, r1 movs r6, #0 strb r6, [r0] ldr r0, [r5] ldr r2, _0802697C @ =0x000006BD adds r0, r0, r2 strb r6, [r0] ldr r7, _08026980 @ =0x0200B0C0 ldrb r0, [r7, #4] cmp r0, #0 bne _08026902 ldr r0, [r5] ldr r1, _08026984 @ =0x000002BE adds r0, r0, r1 strb r6, [r0] ldr r0, [r5] ldr r2, _08026988 @ =0x000002C2 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #2 adds r0, r0, r1 strh r6, [r0] _08026902: ldr r0, [r5] ldr r2, _0802698C @ =0x000006BE adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, [r5] movs r1, #0xd8 lsls r1, r1, #3 adds r0, r0, r1 movs r4, #0 strh r6, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r2, _08026990 @ =0x000006C4 adds r0, r0, r2 strb r4, [r0] ldr r0, [r7, #0x44] ldr r0, [r0, #0x34] strh r6, [r0] ldr r0, [r5] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] subs r2, #0xd1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r2, _08026994 @ =0x00000736 adds r1, r0, r2 strb r4, [r1] ldr r1, _08026998 @ =0x00000739 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] ldr r1, _0802699C @ =0x0000073A adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] ldr r1, _080269A0 @ =0x0000073B adds r0, r0, r1 strb r4, [r0] bl sub_4D648 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08026974: .4byte 0x020314E0 _08026978: .4byte 0x000006BC _0802697C: .4byte 0x000006BD _08026980: .4byte 0x0200B0C0 _08026984: .4byte 0x000002BE _08026988: .4byte 0x000002C2 _0802698C: .4byte 0x000006BE _08026990: .4byte 0x000006C4 _08026994: .4byte 0x00000736 _08026998: .4byte 0x00000739 _0802699C: .4byte 0x0000073A _080269A0: .4byte 0x0000073B thumb_func_start sub_269A4 sub_269A4: @ 0x080269A4 push {r4, r5, lr} ldr r2, _080269F4 @ =0x020314E0 ldr r0, [r2] movs r3, #0 strb r3, [r0, #0x17] ldr r0, [r2] strh r3, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r2, [r2] adds r4, r2, #0 adds r4, #0x6c movs r5, #0xe1 lsls r5, r5, #4 adds r0, r5, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r5, _080269F8 @ =0x00000296 adds r1, r2, r5 strh r0, [r1] strh r3, [r4] ldr r0, _080269FC @ =0x00000724 adds r2, r2, r0 subs r0, #0x1c strh r0, [r2] ldr r1, _08026A00 @ =0x040000D4 ldr r0, _08026A04 @ =0x081C0064 str r0, [r1] ldr r0, _08026A08 @ =0x05000180 str r0, [r1, #4] ldr r0, _08026A0C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080269F4: .4byte 0x020314E0 _080269F8: .4byte 0x00000296 _080269FC: .4byte 0x00000724 _08026A00: .4byte 0x040000D4 _08026A04: .4byte 0x081C0064 _08026A08: .4byte 0x05000180 _08026A0C: .4byte 0x80000010 thumb_func_start sub_26A10 sub_26A10: @ 0x08026A10 push {r4, r5, r6, lr} ldr r4, _08026A68 @ =0x020314E0 ldr r1, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026A4C ldr r3, _08026A6C @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bhi _08026A4C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #5 bgt _08026A4C bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #6 strb r1, [r0, #0x17] _08026A4C: ldr r1, _08026A68 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #7 bls _08026A5E b _08026E9E _08026A5E: lsls r0, r0, #2 ldr r1, _08026A70 @ =_08026A74 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08026A68: .4byte 0x020314E0 _08026A6C: .4byte 0x00000296 _08026A70: .4byte _08026A74 _08026A74: @ jump table .4byte _08026A94 @ case 0 .4byte _08026AC4 @ case 1 .4byte _08026C10 @ case 2 .4byte _08026C68 @ case 3 .4byte _08026C88 @ case 4 .4byte _08026CC0 @ case 5 .4byte _08026E5C @ case 6 .4byte _08026E84 @ case 7 _08026A94: ldr r0, _08026ABC @ =0x0200B0C0 ldrb r2, [r0, #0xf] cmp r2, #0 bne _08026AAE ldr r0, [r5] ldrb r1, [r0, #0x17] adds r1, #1 strb r1, [r0, #0x17] ldr r0, [r5] movs r1, #0xe1 lsls r1, r1, #3 adds r0, r0, r1 str r2, [r0] _08026AAE: ldr r0, [r5] ldr r2, _08026AC0 @ =0x000006BC adds r0, r0, r2 movs r1, #0 strb r1, [r0] b _08026E9E .align 2, 0 _08026ABC: .4byte 0x0200B0C0 _08026AC0: .4byte 0x000006BC _08026AC4: movs r0, #4 movs r1, #0 bl sub_1C7F4 ldr r4, _08026B5C @ =0x020314E0 ldr r0, [r4] ldrh r0, [r0, #0x18] cmp r0, #0x23 bne _08026ADC movs r0, #0x17 bl m4aSongNumStart _08026ADC: ldr r1, [r4] ldr r3, _08026B60 @ =0x000006BC adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026B1E ldrb r0, [r1, #0x17] adds r0, #1 movs r5, #0 strb r0, [r1, #0x17] ldr r0, [r4] ldrh r0, [r0, #0x18] cmp r0, #0x22 bhi _08026B02 movs r0, #0x17 bl m4aSongNumStart _08026B02: ldr r0, [r4] ldr r1, _08026B64 @ =0x000006BD adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] ldr r2, _08026B68 @ =0x000006BE adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r3, #0xd8 lsls r3, r3, #3 adds r0, r0, r3 strh r5, [r0] _08026B1E: ldr r5, _08026B5C @ =0x020314E0 ldr r6, [r5] ldrh r4, [r6, #0x18] adds r0, r4, #0 movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xa bl __udivsi3 adds r4, #1 movs r3, #0 strh r4, [r6, #0x18] lsls r0, r0, #0x10 asrs r2, r0, #0x10 cmp r2, #0 bne _08026B74 ldr r1, _08026B6C @ =0x00000736 adds r0, r6, r1 strb r3, [r0] ldr r0, [r5] ldr r2, _08026B70 @ =0x00000737 adds r0, r0, r2 strb r3, [r0] ldr r0, [r5] adds r1, #2 adds r0, r0, r1 strb r3, [r0] b _08026BD8 .align 2, 0 _08026B5C: .4byte 0x020314E0 _08026B60: .4byte 0x000006BC _08026B64: .4byte 0x000006BD _08026B68: .4byte 0x000006BE _08026B6C: .4byte 0x00000736 _08026B70: .4byte 0x00000737 _08026B74: cmp r2, #1 bne _08026B9C ldr r0, _08026B94 @ =0x00000736 adds r1, r6, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] ldr r1, _08026B98 @ =0x00000737 adds r0, r0, r1 strb r2, [r0] ldr r0, [r5] movs r2, #0xe7 lsls r2, r2, #3 adds r0, r0, r2 strb r3, [r0] b _08026BD8 .align 2, 0 _08026B94: .4byte 0x00000736 _08026B98: .4byte 0x00000737 _08026B9C: cmp r2, #2 bne _08026BC0 ldr r3, _08026BBC @ =0x00000736 adds r0, r6, r3 movs r1, #3 strb r1, [r0] ldr r0, [r5] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] movs r1, #0xe7 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] b _08026BD8 .align 2, 0 _08026BBC: .4byte 0x00000736 _08026BC0: ldr r2, _08026C04 @ =0x00000736 adds r0, r6, r2 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r3, _08026C08 @ =0x00000737 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, #2 adds r0, r0, r2 strb r1, [r0] _08026BD8: ldr r0, [r5] ldr r3, _08026C04 @ =0x00000736 adds r1, r0, r3 ldrb r1, [r1] ldr r2, _08026C0C @ =0x00000739 adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, #1 adds r1, r0, r3 ldrb r1, [r1] adds r2, #1 adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r3, #1 adds r1, r0, r3 ldrb r1, [r1] adds r2, #1 adds r0, r0, r2 strb r1, [r0] b _08026E9E .align 2, 0 _08026C04: .4byte 0x00000736 _08026C08: .4byte 0x00000737 _08026C0C: .4byte 0x00000739 _08026C10: bl sub_219A8 ldr r5, _08026C5C @ =0x020314E0 ldr r0, [r5] movs r3, #0xe6 lsls r3, r3, #3 adds r0, r0, r3 movs r4, #0 movs r1, #2 strb r1, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] ldr r2, _08026C60 @ =0x00000736 adds r1, r0, r2 strb r4, [r1] ldr r3, _08026C64 @ =0x00000739 adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] adds r3, #1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r2, #1 adds r1, r0, r2 strb r4, [r1] adds r3, #1 adds r0, r0, r3 strb r4, [r0] ldr r1, [r5] b _08026E72 .align 2, 0 _08026C5C: .4byte 0x020314E0 _08026C60: .4byte 0x00000736 _08026C64: .4byte 0x00000739 _08026C68: bl sub_219EC ldr r0, _08026C84 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _08026C80 b _08026E9E _08026C80: b _08026E72 .align 2, 0 _08026C84: .4byte 0x020314E0 _08026C88: ldr r0, [r5] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 movs r1, #3 strb r1, [r0] ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r5] strh r2, [r0, #0x18] movs r3, #0xe1 lsls r3, r3, #3 adds r1, r0, r3 str r2, [r1] ldr r1, _08026CBC @ =0x000006EC adds r0, r0, r1 movs r1, #0x2f strb r1, [r0] movs r0, #7 movs r1, #0 bl sub_1C7F4 b _08026E9E .align 2, 0 _08026CBC: .4byte 0x000006EC _08026CC0: ldr r4, _08026D34 @ =0x020314E0 ldr r1, [r4] ldrh r0, [r1, #0x28] cmp r0, #0x91 beq _08026CCC b _08026DC6 _08026CCC: adds r0, #1 strh r0, [r1, #0x28] ldr r2, _08026D38 @ =0x000006EC adds r1, r1, r2 movs r0, #0x2f strb r0, [r1] movs r0, #7 movs r1, #0 bl sub_1C7F4 ldr r0, _08026D3C @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08026D92 ldr r0, [r4] movs r1, #0x90 strh r1, [r0, #0x28] bl m4aMPlayAllStop movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r2, [r4] adds r0, r2, #0 adds r0, #0x36 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bgt _08026D80 adds r1, r2, #0 adds r1, #0x34 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r3, _08026D40 @ =0x000006BC adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08026D44 adds r0, r2, #0 adds r0, #0x33 ldrb r1, [r0] subs r0, #1 b _08026D4A .align 2, 0 _08026D34: .4byte 0x020314E0 _08026D38: .4byte 0x000006EC _08026D3C: .4byte 0x0200B0C0 _08026D40: .4byte 0x000006BC _08026D44: ldrb r1, [r1] adds r0, r2, #0 adds r0, #0x32 _08026D4A: strb r1, [r0] ldr r6, _08026D7C @ =0x020314E0 ldr r5, [r6] lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #1 movs r1, #6 bl __modsi3 adds r5, #0x33 strb r0, [r5] ldr r5, [r6] adds r4, #2 adds r0, r4, #0 movs r1, #6 bl __modsi3 adds r5, #0x34 strb r0, [r5] ldr r1, [r6] adds r1, #0x36 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08026DC6 .align 2, 0 _08026D7C: .4byte 0x020314E0 _08026D80: adds r1, r2, #0 adds r1, #0x32 movs r0, #6 strb r0, [r1] ldr r0, [r4] adds r0, #0x36 movs r1, #0 strb r1, [r0] b _08026DC6 _08026D92: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08026DC6 bl m4aMPlayAllStop movs r0, #0x66 bl m4aSongNumStart ldr r1, [r4] movs r0, #0x3c strh r0, [r1, #0x28] movs r0, #6 strb r0, [r1, #0x17] ldr r1, [r4] ldr r2, _08026E14 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08026DC6 ldr r3, _08026E18 @ =0x000006EE adds r1, r1, r3 movs r0, #0x78 strh r0, [r1] _08026DC6: ldr r0, _08026E1C @ =0x020314E0 ldr r3, [r0] ldrh r4, [r3, #0x28] adds r2, r4, #0 adds r5, r0, #0 cmp r2, #0x82 bne _08026E3A adds r0, r4, #1 strh r0, [r3, #0x28] ldrh r1, [r3, #0x18] ldr r0, _08026E20 @ =0x000001E9 cmp r1, r0 bhi _08026E2C bl sub_2E094 ldr r5, [r5] ldrb r0, [r5, #0x1c] cmp r0, #0 beq _08026DF8 ldrh r1, [r5, #0x18] ldr r0, _08026E24 @ =0x000001AB cmp r1, r0 bls _08026DF8 adds r0, #1 strh r0, [r5, #0x18] _08026DF8: ldr r0, _08026E1C @ =0x020314E0 ldr r3, [r0] ldrh r2, [r3, #0x18] movs r1, #0xc5 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bne _08026E30 movs r0, #1 strb r0, [r3, #0x1c] ldr r1, [r5] ldr r0, _08026E28 @ =0x0007A120 str r0, [r1, #0x3c] b _08026E30 .align 2, 0 _08026E14: .4byte 0x00000714 _08026E18: .4byte 0x000006EE _08026E1C: .4byte 0x020314E0 _08026E20: .4byte 0x000001E9 _08026E24: .4byte 0x000001AB _08026E28: .4byte 0x0007A120 _08026E2C: movs r0, #0x78 strh r0, [r3, #0x28] _08026E30: ldr r1, [r5] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _08026E9E _08026E3A: cmp r2, #0 bne _08026E9E ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] ldr r0, [r5] strh r2, [r0, #0x18] ldr r2, _08026E58 @ =0x0000062C adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x62 bhi _08026E9E adds r0, #1 strb r0, [r1] b _08026E9E .align 2, 0 _08026E58: .4byte 0x0000062C _08026E5C: bl sub_219EC ldr r0, _08026E7C @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r0, #0 strh r0, [r1] bl sub_268CC ldr r0, _08026E80 @ =0x020314E0 ldr r1, [r0] _08026E72: ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] b _08026E9E .align 2, 0 _08026E7C: .4byte 0x0200B0C0 _08026E80: .4byte 0x020314E0 _08026E84: ldr r1, [r5] ldrh r0, [r1, #0x18] adds r4, r0, #0 cmp r4, #0 beq _08026E94 subs r0, #1 strh r0, [r1, #0x18] b _08026E9E _08026E94: movs r0, #1 bl sub_19B64 ldr r0, [r5] strb r4, [r0, #0x17] _08026E9E: pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_26EA4 sub_26EA4: @ 0x08026EA4 push {r4, r5, r6, lr} movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, _08026EE0 @ =0x020314E0 ldr r1, [r0] ldr r2, _08026EE4 @ =0x000006C4 adds r1, r1, r2 movs r2, #0 strb r2, [r1] adds r6, r0, #0 ldr r5, _08026EE8 @ =0x0000071D _08026EBE: ldr r0, _08026EE0 @ =0x020314E0 ldr r3, [r0] ldr r0, _08026EEC @ =0x00000723 adds r1, r3, r0 lsls r0, r2, #0x10 asrs r2, r0, #0x10 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, #0 cmp r2, r1 bge _08026EF0 adds r0, r3, r5 adds r0, r0, r2 movs r1, #1 b _08026EF6 .align 2, 0 _08026EE0: .4byte 0x020314E0 _08026EE4: .4byte 0x000006C4 _08026EE8: .4byte 0x0000071D _08026EEC: .4byte 0x00000723 _08026EF0: adds r0, r3, r5 adds r0, r0, r2 movs r1, #0 _08026EF6: strb r1, [r0] movs r1, #0x80 lsls r1, r1, #9 adds r0, r4, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08026EBE ldr r0, _08026F30 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x34] movs r2, #0 movs r0, #0 strh r0, [r1] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] ldr r1, _08026F34 @ =0x000005F3 adds r0, r0, r1 strb r2, [r0] bl sub_4D648 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08026F30: .4byte 0x0200B0C0 _08026F34: .4byte 0x000005F3 thumb_func_start sub_26F38 sub_26F38: @ 0x08026F38 push {r4, r5, r6, r7, lr} ldr r4, _08026F88 @ =0x020314E0 ldr r0, [r4] movs r3, #0 strb r3, [r0, #0x17] ldr r0, [r4] movs r6, #0 strh r3, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r5, [r4] adds r2, r5, #0 adds r2, #0x6c movs r7, #0xe1 lsls r7, r7, #5 adds r0, r7, #0 ldrh r1, [r2] adds r0, r0, r1 ldr r7, _08026F8C @ =0x00000296 adds r1, r5, r7 strh r0, [r1] strh r3, [r2] ldr r0, _08026F90 @ =0x00000724 adds r1, r5, r0 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r1] movs r2, #0xb3 lsls r2, r2, #3 adds r1, r5, r2 ldrh r0, [r1] cmp r0, #0xd bne _08026F94 subs r7, #0x37 adds r0, r5, r7 strb r6, [r0] b _08026FFC .align 2, 0 _08026F88: .4byte 0x020314E0 _08026F8C: .4byte 0x00000296 _08026F90: .4byte 0x00000724 _08026F94: cmp r0, #0x58 bne _08026FC4 ldr r0, _08026FAC @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _08026FB4 ldr r0, _08026FB0 @ =0x0000025F adds r1, r5, r0 movs r0, #1 strb r0, [r1] b _08026FFC .align 2, 0 _08026FAC: .4byte 0x0200B0C0 _08026FB0: .4byte 0x0000025F _08026FB4: ldr r2, _08026FC0 @ =0x0000025F adds r1, r5, r2 movs r0, #7 strb r0, [r1] b _08026FFC .align 2, 0 _08026FC0: .4byte 0x0000025F _08026FC4: cmp r0, #0xaf bne _08026FD8 ldr r7, _08026FD4 @ =0x0000025F adds r1, r5, r7 movs r0, #3 strb r0, [r1] b _08026FFC .align 2, 0 _08026FD4: .4byte 0x0000025F _08026FD8: ldr r2, _08027054 @ =0x086A3700 ldrh r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #0x14] subs r0, #1 ldr r2, _08027058 @ =0x0000025F adds r1, r5, r2 strb r0, [r1] ldr r0, [r4] adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bge _08026FFC strb r6, [r1] _08026FFC: ldr r1, _0802705C @ =0x040000D4 ldr r0, _08027060 @ =0x081C0064 str r0, [r1] ldr r0, _08027064 @ =0x05000180 str r0, [r1, #4] ldr r0, _08027068 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r4] ldr r1, _0802706C @ =0x0000072E adds r0, r0, r1 movs r3, #0 strb r3, [r0] ldr r0, [r4] ldr r2, _08027070 @ =0x0000072A adds r0, r0, r2 strb r3, [r0] ldr r0, [r4] ldr r7, _08027074 @ =0x00000252 adds r1, r0, r7 movs r2, #0 strh r3, [r1] ldr r1, _08027078 @ =0x0000025E adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] adds r7, #0x19 adds r0, r0, r7 strb r2, [r0] ldr r0, [r4] adds r1, #0xe adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _0802707C @ =0x0000026E adds r0, r0, r2 strh r3, [r0] movs r0, #3 movs r1, #0 bl sub_1C7F4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08027054: .4byte 0x086A3700 _08027058: .4byte 0x0000025F _0802705C: .4byte 0x040000D4 _08027060: .4byte 0x081C0064 _08027064: .4byte 0x05000180 _08027068: .4byte 0x80000010 _0802706C: .4byte 0x0000072E _08027070: .4byte 0x0000072A _08027074: .4byte 0x00000252 _08027078: .4byte 0x0000025E _0802707C: .4byte 0x0000026E thumb_func_start sub_27080 sub_27080: @ 0x08027080 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _080270E0 @ =0x020314E0 ldr r1, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080270C0 ldr r3, _080270E4 @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bhi _080270C0 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #7 bgt _080270C0 bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #8 strb r1, [r0, #0x17] _080270C0: ldr r1, _080270E0 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #0xa bls _080270D4 bl _080278E6 _080270D4: lsls r0, r0, #2 ldr r1, _080270E8 @ =_080270EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080270E0: .4byte 0x020314E0 _080270E4: .4byte 0x00000296 _080270E8: .4byte _080270EC _080270EC: @ jump table .4byte _08027118 @ case 0 .4byte _08027390 @ case 1 .4byte _08027414 @ case 2 .4byte _08027424 @ case 3 .4byte _08027452 @ case 4 .4byte _08027474 @ case 5 .4byte _080274B4 @ case 6 .4byte _08027506 @ case 7 .4byte _080277D8 @ case 8 .4byte _0802789C @ case 9 .4byte _080278B0 @ case 10 _08027118: ldr r0, [r6] movs r5, #0x94 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r0, #1 bhi _08027208 movs r2, #0 adds r3, r6, #0 ldr r4, _080271F4 @ =0x00000263 _0802712C: ldr r1, [r3] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0802712C bl sub_C00 ldr r1, _080271F8 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #5 bl __umodsi3 ldr r5, _080271FC @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _080271F4 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] movs r6, #0x98 lsls r6, r6, #2 adds r2, r2, r6 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #6 bgt _0802718E adds r3, r4, #0 _08027176: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #6 ble _08027176 _0802718E: bl sub_C00 ldr r1, _080271F8 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r2, r0, r1 movs r0, #3 ands r2, r0 ldr r4, _080271FC @ =0x020314E0 ldr r1, [r4] ldr r3, _080271F4 @ =0x00000263 adds r0, r1, r3 adds r0, r2, r0 ldrb r0, [r0] ldr r7, _08027200 @ =0x00000261 adds r1, r1, r7 strb r0, [r1] lsls r1, r2, #0x10 cmp r2, #5 bgt _080271CC _080271B4: ldr r0, [r4] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #5 ble _080271B4 _080271CC: bl sub_C00 ldr r1, _080271F8 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 bl __umodsi3 ldr r1, _080271FC @ =0x020314E0 ldr r2, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r3, _080271F4 @ =0x00000263 adds r1, r2, r3 adds r1, r1, r0 ldrb r0, [r1] ldr r5, _08027204 @ =0x00000262 adds r2, r2, r5 strb r0, [r2] b _08027362 .align 2, 0 _080271F4: .4byte 0x00000263 _080271F8: .4byte 0x0200B0C0 _080271FC: .4byte 0x020314E0 _08027200: .4byte 0x00000261 _08027204: .4byte 0x00000262 _08027208: movs r2, #0 adds r3, r6, #0 ldr r4, _08027378 @ =0x00000263 _0802720E: ldr r1, [r3] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _0802720E bl sub_C00 ldr r1, _0802737C @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 ldr r5, _08027380 @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _08027378 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] movs r6, #0x98 lsls r6, r6, #2 adds r2, r2, r6 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #6 bgt _08027270 adds r3, r4, #0 _08027258: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #6 ble _08027258 _08027270: bl sub_C00 ldr r1, _0802737C @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 ldr r5, _08027380 @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _08027378 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] ldr r7, _08027384 @ =0x00000261 adds r2, r2, r7 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #5 bgt _080272B8 adds r3, r4, #0 _080272A0: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #5 ble _080272A0 _080272B8: bl sub_C00 ldr r1, _0802737C @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #6 bl __umodsi3 ldr r5, _08027380 @ =0x020314E0 ldr r2, [r5] lsls r0, r0, #0x10 asrs r3, r0, #0x10 ldr r4, _08027378 @ =0x00000263 adds r1, r2, r4 adds r1, r1, r3 ldrb r1, [r1] ldr r3, _08027388 @ =0x00000262 adds r2, r2, r3 strb r1, [r2] adds r1, r0, #0 asrs r0, r1, #0x10 cmp r0, #4 bgt _08027300 adds r3, r4, #0 _080272E8: ldr r0, [r5] asrs r1, r1, #0x10 adds r0, r0, r3 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, r1, #0x10 asrs r0, r1, #0x10 cmp r0, #4 ble _080272E8 _08027300: ldr r0, _0802737C @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bne _08027362 ldr r1, _08027380 @ =0x020314E0 ldr r0, [r1] ldr r5, _0802738C @ =0x00000283 adds r0, r0, r5 ldrb r0, [r0] cmp r0, #4 bhi _08027362 movs r2, #0 adds r5, r1, #0 _0802731A: ldr r0, [r5] lsls r1, r2, #0x10 asrs r4, r1, #0x10 movs r6, #0x98 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _08027356 bl sub_C00 ldr r1, _0802737C @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #5 bl __umodsi3 ldr r1, [r5] adds r2, r1, r6 adds r2, r2, r4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r7, _08027378 @ =0x00000263 adds r1, r1, r7 adds r1, r1, r0 ldrb r0, [r1] strb r0, [r2] _08027356: adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0802731A _08027362: ldr r0, _08027380 @ =0x020314E0 ldr r1, [r0] movs r0, #0x94 lsls r0, r0, #2 adds r2, r1, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r2] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _08027378: .4byte 0x00000263 _0802737C: .4byte 0x0200B0C0 _08027380: .4byte 0x020314E0 _08027384: .4byte 0x00000261 _08027388: .4byte 0x00000262 _0802738C: .4byte 0x00000283 _08027390: ldr r1, [r6] ldr r2, _080273FC @ =0x0000026B adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] movs r3, #0x98 lsls r3, r3, #2 adds r0, r1, r3 adds r0, r0, r2 ldrb r0, [r0] ldr r2, _08027400 @ =0x0000025E adds r1, r1, r2 strb r0, [r1] ldr r3, [r6] ldr r5, _08027404 @ =0x086ACFA0 adds r2, r3, r2 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #2 ldr r4, _08027408 @ =0x0200B0C0 ldrb r0, [r4, #4] lsls r0, r0, #5 adds r1, r1, r0 adds r1, r1, r5 ldrh r1, [r1] movs r6, #0x96 lsls r6, r6, #2 adds r0, r3, r6 strh r1, [r0] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 ldrb r1, [r4, #4] lsls r1, r1, #5 adds r0, r0, r1 adds r0, r0, r5 ldrh r1, [r0, #2] ldr r7, _0802740C @ =0x0000025A adds r0, r3, r7 strh r1, [r0] ldr r0, _08027410 @ =0x0000026E adds r1, r3, r0 movs r0, #0x50 strh r0, [r1] ldr r0, [r4, #0x44] adds r0, #0xa0 ldr r1, [r0] movs r0, #1 strh r0, [r1] ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] b _080278E6 .align 2, 0 _080273FC: .4byte 0x0000026B _08027400: .4byte 0x0000025E _08027404: .4byte 0x086ACFA0 _08027408: .4byte 0x0200B0C0 _0802740C: .4byte 0x0000025A _08027410: .4byte 0x0000026E _08027414: bl sub_278F4 ldr r0, _08027420 @ =0x020314E0 ldr r1, [r0] b _080277B8 .align 2, 0 _08027420: .4byte 0x020314E0 _08027424: ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #7 bhi _0802743A b _08027684 _0802743A: bl sub_219A8 ldr r0, [r6] movs r2, #0xe6 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #2 strb r1, [r0] ldr r1, [r6] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 _08027452: bl sub_219EC ldr r0, _08027470 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0802746A b _080278E6 _0802746A: ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _08027470: .4byte 0x020314E0 _08027474: ldr r0, [r6] movs r3, #0xa5 lsls r3, r3, #2 adds r0, r0, r3 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r0, [r6] movs r4, #0xb3 lsls r4, r4, #3 adds r1, r0, r4 ldrh r1, [r1] movs r7, #0xb4 lsls r7, r7, #3 adds r0, r0, r7 strh r1, [r0] movs r0, #1 bl sub_31CF8 ldr r1, [r6] adds r4, r1, r4 ldrh r2, [r4] ldr r3, _080274B0 @ =0x000005A2 adds r0, r1, r3 strh r2, [r0] strh r5, [r1, #0x18] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _080274B0: .4byte 0x000005A2 _080274B4: ldr r1, [r6] ldrh r0, [r1, #0x28] cmp r0, #0x94 beq _080274BE b _080278E6 _080274BE: adds r0, #1 strh r0, [r1, #0x28] ldr r0, _080274F0 @ =0x0200B0C0 movs r5, #0xc5 lsls r5, r5, #4 adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0 beq _080274F4 movs r7, #0xaf lsls r7, r7, #2 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0x4f bhi _080274DE b _080278E6 _080274DE: bl sub_2D204 ldr r1, [r6] movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #6 beq _080274EE b _080278E6 _080274EE: b _08027682 .align 2, 0 _080274F0: .4byte 0x0200B0C0 _080274F4: bl sub_2D204 ldr r1, [r6] movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #6 beq _08027504 b _080278E6 _08027504: b _08027682 _08027506: ldr r3, [r6] ldrh r0, [r3, #0x28] adds r1, r0, #0 cmp r1, #0x94 beq _08027512 b _080276BA _08027512: adds r0, #1 strh r0, [r3, #0x28] ldrh r1, [r3, #0x18] ldr r0, _08027530 @ =0x00000117 cmp r1, r0 bls _08027520 b _080276B4 _08027520: cmp r1, #0 bne _08027534 bl sub_2312C movs r0, #0x12 bl m4aSongNumStart b _0802758E .align 2, 0 _08027530: .4byte 0x00000117 _08027534: bl sub_23300 ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #0xe5 bhi _08027550 movs r0, #0x84 lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0x96 bne _08027550 subs r0, #1 strh r0, [r1] _08027550: ldr r4, _0802768C @ =0x020314E0 ldr r0, [r4] ldrh r1, [r0, #0x18] movs r0, #0x87 lsls r0, r0, #1 cmp r1, r0 bne _08027570 movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r1, _08027690 @ =0x000006C4 adds r0, r0, r1 movs r1, #0 strb r1, [r0] _08027570: ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0802757C movs r0, #0xb5 strh r0, [r1, #0x18] _0802757C: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0802758E movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08027694 @ =0x004C4B40 str r0, [r1, #0x3c] _0802758E: ldr r0, _0802768C @ =0x020314E0 ldr r2, [r0] ldrh r1, [r2, #0x18] adds r6, r0, #0 cmp r1, #0x1d bhi _08027600 ldr r1, _08027698 @ =0x0200B0C0 movs r0, #1 strh r0, [r1, #0x2c] ldrh r1, [r2, #0x18] movs r3, #0xa6 lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] movs r2, #0 lsls r0, r1, #0x10 asrs r0, r0, #0x10 ldr r5, _0802769C @ =0x03005C00 mov r8, r5 cmp r2, r0 bgt _080275F0 adds r7, r0, #0 movs r4, #0xc1 lsls r4, r4, #8 _080275BE: movs r0, #2 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _080275C4: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xb ble _080275C4 movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r7 ble _080275BE _080275F0: ldr r1, _080276A0 @ =0x040000D4 mov r2, r8 str r2, [r1] ldr r0, _080276A4 @ =0x06002000 str r0, [r1, #4] ldr r0, _080276A8 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _08027600: ldr r0, [r6] ldrh r0, [r0, #0x18] subs r0, #0xf0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1d bhi _08027680 movs r2, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r3, _0802769C @ =0x03005C00 mov r8, r3 cmp r2, r0 bgt _08027654 mov r5, r8 ldr r4, _080276AC @ =0x000001FF adds r7, r0, #0 _08027622: movs r0, #2 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _08027628: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xb ble _08027628 movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r7 ble _08027622 _08027654: ldr r1, _080276A0 @ =0x040000D4 mov r2, r8 str r2, [r1] ldr r0, _080276A4 @ =0x06002000 str r0, [r1, #4] ldr r0, _080276A8 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r6] ldrh r1, [r0, #0x18] ldr r0, _080276B0 @ =0x0000010D cmp r1, r0 bne _08027680 ldr r0, _08027698 @ =0x0200B0C0 movs r1, #0 strh r1, [r0, #0x2c] ldrh r2, [r0, #0x38] strh r1, [r0, #0x38] ldrh r2, [r0, #0x3c] strh r1, [r0, #0x3c] ldrh r2, [r0, #0x3a] strh r1, [r0, #0x3a] _08027680: ldr r1, [r6] _08027682: ldrh r0, [r1, #0x18] _08027684: adds r0, #1 strh r0, [r1, #0x18] b _080278E6 .align 2, 0 _0802768C: .4byte 0x020314E0 _08027690: .4byte 0x000006C4 _08027694: .4byte 0x004C4B40 _08027698: .4byte 0x0200B0C0 _0802769C: .4byte 0x03005C00 _080276A0: .4byte 0x040000D4 _080276A4: .4byte 0x06002000 _080276A8: .4byte 0x80000400 _080276AC: .4byte 0x000001FF _080276B0: .4byte 0x0000010D _080276B4: movs r0, #0x28 strh r0, [r3, #0x28] b _080278E6 _080276BA: cmp r1, #0x18 beq _080276C0 b _080278E6 _080276C0: ldr r5, _080277C0 @ =0x00000723 adds r0, r3, r5 ldrb r1, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08027748 ldr r2, _080277C4 @ =0x00000721 adds r0, r3, r2 strb r1, [r0] ldr r0, [r6] adds r1, r0, r5 ldrb r1, [r1] ldr r3, _080277C8 @ =0x00000722 adds r0, r0, r3 strb r1, [r0] ldr r0, [r6] adds r2, r0, r2 movs r1, #0 ldrsb r1, [r2, r1] ldr r7, _080277CC @ =0x0000071D adds r0, r0, r7 adds r0, r0, r1 movs r4, #1 strb r4, [r0] ldr r0, [r6] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 movs r3, #0x78 strb r3, [r0] ldr r1, [r6] adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r6] adds r0, r1, r5 ldrb r2, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08027748 adds r7, #5 adds r0, r1, r7 strb r2, [r0] ldr r0, [r6] adds r2, r7, #0 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 subs r7, #5 adds r0, r0, r7 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 strb r3, [r0] ldr r1, [r6] adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08027748: ldr r2, [r6] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x2a bne _08027780 adds r3, #0x58 adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r5, _080277D0 @ =0x0000062B adds r1, r2, r5 ldrb r0, [r1] cmp r0, #0x62 bhi _0802776E adds r0, #1 strb r0, [r1] _0802776E: ldr r1, [r6] adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0xf bne _08027780 ldr r7, _080277D4 @ =0x00000286 adds r1, r1, r7 movs r0, #0x5c strh r0, [r1] _08027780: ldr r2, [r6] movs r0, #0xbe lsls r0, r0, #3 adds r1, r2, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _0802779E ldr r3, _080277D4 @ =0x00000286 adds r1, r2, r3 movs r0, #0x5c strh r0, [r1] _0802779E: ldr r0, [r6] ldr r5, _080277D0 @ =0x0000062B adds r1, r0, r5 ldrb r0, [r1] cmp r0, #0x62 bhi _080277AE adds r0, #1 strb r0, [r1] _080277AE: ldr r1, [r6] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, [r6] _080277B8: movs r0, #0 strh r0, [r1, #0x18] b _080278E6 .align 2, 0 _080277C0: .4byte 0x00000723 _080277C4: .4byte 0x00000721 _080277C8: .4byte 0x00000722 _080277CC: .4byte 0x0000071D _080277D0: .4byte 0x0000062B _080277D4: .4byte 0x00000286 _080277D8: ldr r6, _0802787C @ =0x0200B0C0 ldr r0, [r6, #0x44] adds r0, #0x80 ldr r4, [r0] movs r7, #8 adds r7, r7, r4 ldr r5, _08027880 @ =0x03005000 ldrh r1, [r4, #8] lsls r1, r1, #3 adds r1, r1, r5 movs r0, #2 ldrsh r2, [r7, r0] ldr r3, _08027884 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] ldr r0, _08027888 @ =0xFFFFFE00 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] subs r0, #0x38 movs r5, #0 strb r0, [r1] ldr r0, [r6, #0x44] adds r0, #0x80 ldr r0, [r0] movs r7, #0 mov r8, r7 strh r5, [r0] bl sub_278F4 ldr r0, [r6, #0x44] adds r0, #0xa0 ldr r0, [r0] strh r5, [r0] ldr r4, _0802788C @ =0x020314E0 ldr r0, [r4] adds r0, #0xe4 mov r1, r8 strb r1, [r0] bl sub_219EC ldr r0, [r6, #0x44] ldr r0, [r0, #0x34] strh r5, [r0] ldr r0, [r4] movs r2, #0xd2 lsls r2, r2, #1 adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r1, [r4] movs r3, #0xda lsls r3, r3, #1 adds r0, r1, r3 strh r5, [r0] ldr r5, _08027890 @ =0x000001A5 adds r0, r1, r5 mov r6, r8 strb r6, [r0] ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, [r4] ldr r7, _08027894 @ =0x00000714 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080278E6 ldr r0, _08027898 @ =0x000006EE adds r1, r1, r0 movs r0, #0x78 strh r0, [r1] b _080278E6 .align 2, 0 _0802787C: .4byte 0x0200B0C0 _08027880: .4byte 0x03005000 _08027884: .4byte 0x000001FF _08027888: .4byte 0xFFFFFE00 _0802788C: .4byte 0x020314E0 _08027890: .4byte 0x000001A5 _08027894: .4byte 0x00000714 _08027898: .4byte 0x000006EE _0802789C: bl sub_26EA4 ldr r0, _080278AC @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080278E4 .align 2, 0 _080278AC: .4byte 0x020314E0 _080278B0: ldr r1, [r6] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080278BE subs r0, #1 strh r0, [r1, #0x18] b _080278E6 _080278BE: ldr r2, _080278D4 @ =0x0000071F adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080278D8 movs r0, #3 bl sub_19B64 b _080278DE .align 2, 0 _080278D4: .4byte 0x0000071F _080278D8: movs r0, #1 bl sub_19B64 _080278DE: ldr r0, _080278F0 @ =0x020314E0 ldr r1, [r0] movs r0, #0 _080278E4: strb r0, [r1, #0x17] _080278E6: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080278F0: .4byte 0x020314E0 thumb_func_start sub_278F4 sub_278F4: @ 0x080278F4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080279C4 @ =0x0200B0C0 mov sl, r0 ldr r0, [r0, #0x4c] movs r1, #0x4b bl __umodsi3 movs r1, #3 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 mov r1, sl ldr r2, [r1, #0x44] adds r0, r2, #0 adds r0, #0x80 ldr r7, [r0] ldr r6, _080279C8 @ =0x020314E0 ldr r3, [r6] ldr r0, _080279CC @ =0x0000026E mov sb, r0 adds r0, r3, r0 ldrh r1, [r0] cmp r1, #0 bne _08027932 b _08027B74 _08027932: adds r0, r2, #0 adds r0, #0xa0 ldr r7, [r0] cmp r1, #0x50 bne _0802798C adds r1, r3, #0 adds r1, #0xe4 movs r5, #0 movs r0, #0xf strb r0, [r1] ldr r2, _080279D0 @ =0x040000D4 ldr r1, _080279D4 @ =0x086AD474 ldr r3, [r6] ldr r0, _080279D8 @ =0x0000025F adds r4, r3, r0 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, _080279DC @ =0x06015800 str r0, [r2, #4] ldr r0, _080279E0 @ =0x80000E00 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #5 ldr r1, _080279E4 @ =0x0815C4C4 adds r0, r0, r1 str r0, [r2] ldr r0, _080279E8 @ =0x050003E0 str r0, [r2, #4] ldr r0, _080279EC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _080279F0 @ =0x00000626 adds r3, r3, r1 strb r5, [r3] ldr r0, [r6] movs r2, #0xc5 lsls r2, r2, #3 adds r0, r0, r2 strh r5, [r0] _0802798C: ldr r0, [r6] add r0, sb ldrh r0, [r0] cmp r0, #0x3c bne _0802799E ldr r0, _080279F4 @ =0x02032F20 ldr r1, _080279F8 @ =0x0869F58C bl MPlayStart _0802799E: ldr r2, _080279FC @ =0x086AE0E6 ldr r1, [r6] ldr r5, _080279F0 @ =0x00000626 adds r3, r1, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r0, [r0, r2] adds r5, #2 adds r1, r1, r5 ldrh r2, [r1] cmp r0, r2 ble _08027A00 adds r0, r2, #1 strh r0, [r1] b _08027A46 .align 2, 0 _080279C4: .4byte 0x0200B0C0 _080279C8: .4byte 0x020314E0 _080279CC: .4byte 0x0000026E _080279D0: .4byte 0x040000D4 _080279D4: .4byte 0x086AD474 _080279D8: .4byte 0x0000025F _080279DC: .4byte 0x06015800 _080279E0: .4byte 0x80000E00 _080279E4: .4byte 0x0815C4C4 _080279E8: .4byte 0x050003E0 _080279EC: .4byte 0x80000010 _080279F0: .4byte 0x00000626 _080279F4: .4byte 0x02032F20 _080279F8: .4byte 0x0869F58C _080279FC: .4byte 0x086AE0E6 _08027A00: movs r2, #1 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r6] ldr r3, _08027B48 @ =0x00000626 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x1d bne _08027A46 movs r0, #0x1c strb r0, [r1] ldr r0, [r6] add r0, sb strh r2, [r0] mov r5, sl ldr r0, [r5, #0x44] adds r0, #0xa0 ldr r1, [r0] movs r0, #0 strh r0, [r1] ldr r0, [r5, #0x44] adds r0, #0x80 ldr r0, [r0] strh r2, [r0] ldr r0, _08027B4C @ =0x02032F20 ldr r1, _08027B50 @ =0x0869F5C8 bl MPlayStart ldr r0, [r6] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _08027A46: ldr r3, _08027B54 @ =0x020314E0 ldr r2, [r3] movs r6, #0x96 lsls r6, r6, #2 adds r0, r2, r6 adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 adds r0, #8 strh r0, [r7, #2] ldr r1, _08027B58 @ =0x0000025A adds r0, r2, r1 adds r2, #0x5a ldrh r0, [r0] ldrh r1, [r2] subs r0, r0, r1 adds r0, #8 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08027A7E ldr r0, _08027B5C @ =0x0000FFE2 strh r0, [r7, #4] _08027A7E: movs r2, #4 ldrsh r0, [r7, r2] cmp r0, #0xc8 ble _08027A8A movs r0, #0xc8 strh r0, [r7, #4] _08027A8A: movs r0, #0 ldr r3, _08027B60 @ =0x03005000 mov sl, r3 ldr r5, _08027B64 @ =0x086B4202 mov sb, r5 ldr r6, _08027B54 @ =0x020314E0 mov r8, r6 ldr r1, _08027B48 @ =0x00000626 mov ip, r1 _08027A9C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r6, r7, r0 ldrh r2, [r6] lsls r2, r2, #3 add r2, sl lsls r3, r4, #1 adds r3, r3, r4 mov r5, r8 ldr r0, [r5] add r0, ip movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r5, r3, #1 mov r1, r8 ldr r0, [r1] add r0, ip movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 adds r0, r0, r5 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r3, #2 mov r5, r8 ldr r0, [r5] add r0, ip movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, sl ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r5, _08027B68 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldr r0, _08027B6C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r6, [r1] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _08027A9C ldr r0, _08027B54 @ =0x020314E0 ldr r1, [r0] ldr r2, _08027B70 @ =0x0000026E adds r1, r1, r2 ldrh r0, [r1] subs r0, #1 strh r0, [r1] b _08027CE8 .align 2, 0 _08027B48: .4byte 0x00000626 _08027B4C: .4byte 0x02032F20 _08027B50: .4byte 0x0869F5C8 _08027B54: .4byte 0x020314E0 _08027B58: .4byte 0x0000025A _08027B5C: .4byte 0x0000FFE2 _08027B60: .4byte 0x03005000 _08027B64: .4byte 0x086B4202 _08027B68: .4byte 0x000001FF _08027B6C: .4byte 0xFFFFFE00 _08027B70: .4byte 0x0000026E _08027B74: ldr r6, _08027CF8 @ =0x0000132C adds r0, r3, r6 ldr r2, [r0] movs r1, #0x10 ldrsh r0, [r2, r1] subs r0, #8 movs r6, #0x96 lsls r6, r6, #2 adds r1, r3, r6 movs r6, #0 ldrsh r1, [r1, r6] subs r4, r0, r1 movs r1, #0x12 ldrsh r0, [r2, r1] subs r0, #8 ldr r2, _08027CFC @ =0x0000025A adds r1, r3, r2 movs r6, #0 ldrsh r1, [r1, r6] subs r5, r0, r1 adds r0, r4, #0 muls r0, r4, r0 adds r1, r5, #0 muls r1, r5, r1 adds r0, r0, r1 cmp r0, #0x51 bgt _08027C38 adds r0, r3, #0 adds r0, #0x24 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _08027BC4 adds r2, #4 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 ble _08027BD6 _08027BC4: cmp r1, #2 bne _08027C38 ldr r5, _08027D00 @ =0x0000025E adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 ble _08027C38 _08027BD6: ldr r4, _08027D04 @ =0x020314E0 ldr r1, [r4] ldr r6, _08027D08 @ =0x0000026B adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08027C38 ldr r0, _08027D0C @ =0x00002710 str r0, [r1, #0x3c] ldr r0, _08027D10 @ =0x02032F20 ldr r1, _08027D14 @ =0x0869F618 bl MPlayStart ldr r1, [r4] movs r2, #0 movs r0, #1 strb r0, [r1, #0x17] ldr r0, [r4] adds r1, r0, r6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldr r3, _08027D18 @ =0x0000071D adds r0, r0, r3 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r1, [r4] adds r1, r1, r6 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08027D1C @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x80 ldr r0, [r0] strh r2, [r0] ldr r0, [r4] adds r2, r0, r6 movs r1, #0 ldrsb r1, [r2, r1] cmp r1, #3 bne _08027C38 movs r0, #0 strb r0, [r2] ldr r0, [r4] strb r1, [r0, #0x17] _08027C38: ldr r3, _08027D04 @ =0x020314E0 ldr r2, [r3] movs r5, #0x96 lsls r5, r5, #2 adds r0, r2, r5 adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 strh r0, [r7, #2] ldr r6, _08027CFC @ =0x0000025A adds r0, r2, r6 adds r2, #0x5a ldrh r0, [r0] ldrh r1, [r2] subs r0, r0, r1 subs r0, #8 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x1e rsbs r1, r1, #0 cmp r0, r1 bge _08027C70 ldr r0, _08027D20 @ =0x0000FFE2 strh r0, [r7, #4] _08027C70: movs r1, #4 ldrsh r0, [r7, r1] cmp r0, #0xc8 ble _08027C7C movs r0, #0xc8 strh r0, [r7, #4] _08027C7C: mov r2, r8 lsls r0, r2, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _08027C8A movs r5, #0xe mov r8, r5 _08027C8A: ldr r2, _08027D24 @ =0x040000D4 ldr r1, _08027D28 @ =0x086AD49C ldr r0, [r3] ldr r6, _08027D2C @ =0x0000025F adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 mov r3, r8 lsls r1, r3, #0x10 asrs r1, r1, #7 ldr r0, [r0] adds r0, r0, r1 str r0, [r2] ldr r0, _08027D30 @ =0x060116C0 str r0, [r2, #4] ldr r0, _08027D34 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, r7, #0 adds r6, #8 ldr r4, _08027D38 @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r5, #2 ldrsh r1, [r6, r5] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r5, _08027D3C @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08027D40 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _08027CE8: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08027CF8: .4byte 0x0000132C _08027CFC: .4byte 0x0000025A _08027D00: .4byte 0x0000025E _08027D04: .4byte 0x020314E0 _08027D08: .4byte 0x0000026B _08027D0C: .4byte 0x00002710 _08027D10: .4byte 0x02032F20 _08027D14: .4byte 0x0869F618 _08027D18: .4byte 0x0000071D _08027D1C: .4byte 0x0200B0C0 _08027D20: .4byte 0x0000FFE2 _08027D24: .4byte 0x040000D4 _08027D28: .4byte 0x086AD49C _08027D2C: .4byte 0x0000025F _08027D30: .4byte 0x060116C0 _08027D34: .4byte 0x80000100 _08027D38: .4byte 0x03005000 _08027D3C: .4byte 0x000001FF _08027D40: .4byte 0xFFFFFE00 thumb_func_start sub_27D44 sub_27D44: @ 0x08027D44 push {r4, r5, r6, lr} ldr r4, _08027DC8 @ =0x020314E0 ldr r0, [r4] ldr r1, _08027DCC @ =0x000005A5 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r4] ldr r2, _08027DD0 @ =0x000005A9 adds r0, r0, r2 strb r1, [r0] ldr r2, _08027DD4 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #0x48] movs r5, #0 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x30] strh r1, [r0] ldr r0, [r4] ldr r1, _08027DD8 @ =0x000005F2 adds r0, r0, r1 strb r5, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r2, _08027DDC @ =0x000006C4 adds r0, r0, r2 strb r5, [r0] bl sub_4D648 movs r2, #0 ldr r5, _08027DE0 @ =0x000006D3 movs r3, #0xd adds r6, r4, #0 _08027D8E: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r5 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08027D8E movs r2, #0 ldr r5, _08027DE4 @ =0x0000071D _08027DAA: ldr r3, [r6] ldr r1, _08027DE8 @ =0x00000723 adds r0, r3, r1 lsls r1, r2, #0x10 asrs r2, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r1, #0 cmp r2, r0 bge _08027DEC adds r0, r3, r5 adds r0, r0, r2 movs r1, #1 b _08027DF2 .align 2, 0 _08027DC8: .4byte 0x020314E0 _08027DCC: .4byte 0x000005A5 _08027DD0: .4byte 0x000005A9 _08027DD4: .4byte 0x0200B0C0 _08027DD8: .4byte 0x000005F2 _08027DDC: .4byte 0x000006C4 _08027DE0: .4byte 0x000006D3 _08027DE4: .4byte 0x0000071D _08027DE8: .4byte 0x00000723 _08027DEC: adds r0, r3, r5 adds r0, r0, r2 movs r1, #0 _08027DF2: strb r1, [r0] movs r2, #0x80 lsls r2, r2, #9 adds r0, r4, r2 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08027DAA pop {r4, r5, r6} pop {r0} bx r0 thumb_func_start sub_27E08 sub_27E08: @ 0x08027E08 push {r4, r5, r6, r7, lr} ldr r3, _08027E9C @ =0x020314E0 ldr r0, [r3] movs r5, #0 strb r5, [r0, #0x17] ldr r0, [r3] movs r6, #0 strh r5, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r2, [r3] adds r4, r2, #0 adds r4, #0x6c movs r7, #0xe1 lsls r7, r7, #5 adds r0, r7, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r7, _08027EA0 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r5, [r4] ldr r0, _08027EA4 @ =0x000005A5 adds r2, r2, r0 strb r6, [r2] ldr r0, [r3] ldr r2, _08027EA8 @ =0x000005AA adds r1, r0, r2 strh r5, [r1] ldr r7, _08027EAC @ =0x000005A9 adds r0, r0, r7 strb r6, [r0] ldr r0, [r3] ldr r1, _08027EB0 @ =0x000006C6 adds r0, r0, r1 strb r6, [r0] ldr r0, [r3] ldr r2, _08027EB4 @ =0x000006C7 adds r0, r0, r2 strb r6, [r0] ldr r0, [r3] adds r7, #0x7c adds r0, r0, r7 strb r6, [r0] ldr r0, [r3] adds r2, #3 adds r1, r0, r2 strh r5, [r1] adds r7, #0xa7 adds r0, r0, r7 strb r6, [r0] ldr r0, [r3] ldr r1, _08027EB8 @ =0x0000072F adds r0, r0, r1 strb r6, [r0] ldr r0, [r3] adds r2, #0x67 adds r0, r0, r2 strb r6, [r0] ldr r1, [r3] ldr r7, _08027EBC @ =0x0000029A adds r0, r1, r7 ldrh r0, [r0] adds r5, r3, #0 cmp r0, #0 bne _08027EC8 ldr r0, _08027EC0 @ =0x00000724 adds r1, r1, r0 ldr r0, _08027EC4 @ =0x00001770 b _08027ECE .align 2, 0 _08027E9C: .4byte 0x020314E0 _08027EA0: .4byte 0x00000296 _08027EA4: .4byte 0x000005A5 _08027EA8: .4byte 0x000005AA _08027EAC: .4byte 0x000005A9 _08027EB0: .4byte 0x000006C6 _08027EB4: .4byte 0x000006C7 _08027EB8: .4byte 0x0000072F _08027EBC: .4byte 0x0000029A _08027EC0: .4byte 0x00000724 _08027EC4: .4byte 0x00001770 _08027EC8: ldr r2, _08027F6C @ =0x00000724 adds r1, r1, r2 ldr r0, _08027F70 @ =0x00001068 _08027ECE: strh r0, [r1] ldr r1, [r5] ldr r7, _08027F74 @ =0x0000029A adds r1, r1, r7 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r1, _08027F78 @ =0x040000D4 ldr r0, _08027F7C @ =0x081C0064 str r0, [r1] ldr r0, _08027F80 @ =0x05000180 str r0, [r1, #4] ldr r0, _08027F84 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 ldr r6, _08027F88 @ =0x0200B0C0 adds r4, r5, #0 ldr r3, _08027F8C @ =0x000006CD _08027EF4: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r1, r1, r0 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08027EF4 ldr r4, [r5] ldr r0, [r6, #0x4c] movs r1, #6 bl __umodsi3 movs r2, #0xd9 lsls r2, r2, #3 adds r4, r4, r2 strb r0, [r4] ldr r0, [r5] ldr r4, _08027F90 @ =0x000006C9 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r4 lsls r2, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _08027F64 adds r3, r5, #0 ldr r5, _08027F8C @ =0x000006CD _08027F42: ldr r0, [r3] asrs r1, r2, #0x10 adds r0, r0, r5 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, [r3] adds r0, r0, r4 lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _08027F42 _08027F64: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08027F6C: .4byte 0x00000724 _08027F70: .4byte 0x00001068 _08027F74: .4byte 0x0000029A _08027F78: .4byte 0x040000D4 _08027F7C: .4byte 0x081C0064 _08027F80: .4byte 0x05000180 _08027F84: .4byte 0x80000010 _08027F88: .4byte 0x0200B0C0 _08027F8C: .4byte 0x000006CD _08027F90: .4byte 0x000006C9 thumb_func_start sub_27F94 sub_27F94: @ 0x08027F94 push {r4, r5, lr} ldr r4, _08027FEC @ =0x020314E0 ldr r1, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08027FD0 ldr r3, _08027FF0 @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bhi _08027FD0 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 bgt _08027FD0 bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart ldr r0, [r4] movs r1, #0xc8 strh r1, [r0, #0x18] movs r1, #0xa strb r1, [r0, #0x17] _08027FD0: ldr r1, _08027FEC @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #0xc bls _08027FE2 b _080283FA _08027FE2: lsls r0, r0, #2 ldr r1, _08027FF4 @ =_08027FF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08027FEC: .4byte 0x020314E0 _08027FF0: .4byte 0x00000296 _08027FF4: .4byte _08027FF8 _08027FF8: @ jump table .4byte _0802802C @ case 0 .4byte _08028040 @ case 1 .4byte _08028074 @ case 2 .4byte _08028094 @ case 3 .4byte _080280E8 @ case 4 .4byte _080281FC @ case 5 .4byte _08028214 @ case 6 .4byte _08028284 @ case 7 .4byte _0802828A @ case 8 .4byte _08028358 @ case 9 .4byte _08028388 @ case 10 .4byte _080283A0 @ case 11 .4byte _080283B4 @ case 12 _0802802C: bl sub_31F6C ldr r0, _0802803C @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802803C: .4byte 0x020314E0 _08028040: bl sub_3219C ldr r0, _0802806C @ =0x0200B0C0 ldrb r0, [r0, #2] cmp r0, #3 beq _08028060 ldr r0, _08028070 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #1 bl sub_52BB0 _08028060: ldr r0, _08028070 @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802806C: .4byte 0x0200B0C0 _08028070: .4byte 0x020314E0 _08028074: bl sub_28AE0 ldr r2, _0802808C @ =0x020314E0 ldr r0, [r2] ldr r3, _08028090 @ =0x0000073D adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802808C: .4byte 0x020314E0 _08028090: .4byte 0x0000073D _08028094: movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r2, _080280D8 @ =0x020314E0 ldr r0, [r2] ldr r1, _080280DC @ =0x000006C5 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] ldr r3, _080280E0 @ =0x00000602 adds r0, r0, r3 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] movs r3, #0 ldr r5, _080280E4 @ =0x000006D3 movs r4, #0xf _080280BE: ldr r1, [r2] lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r1, r1, r5 adds r1, r1, r0 strb r4, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _080280BE b _080283FA .align 2, 0 _080280D8: .4byte 0x020314E0 _080280DC: .4byte 0x000006C5 _080280E0: .4byte 0x00000602 _080280E4: .4byte 0x000006D3 _080280E8: ldr r4, _08028114 @ =0x0200B0C0 ldrb r1, [r4, #0xf] adds r3, r1, #0 cmp r3, #0 beq _080280F4 b _080281F6 _080280F4: ldrb r0, [r4, #4] cmp r0, #0 bne _08028124 ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x5e beq _0802812C cmp r0, #0x5d beq _08028136 cmp r0, #0x49 bne _08028118 movs r0, #0x1d bl m4aSongNumStart b _080281F6 .align 2, 0 _08028114: .4byte 0x0200B0C0 _08028118: cmp r0, #0x10 bhi _080281F6 movs r0, #0xa5 lsls r0, r0, #2 adds r1, r2, r0 b _080281EA _08028124: ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x44 bne _08028132 _0802812C: bl m4aMPlayAllStop b _080281F6 _08028132: cmp r0, #0x43 bne _080281D4 _08028136: movs r0, #1 orrs r0, r1 strb r0, [r4, #0xf] adds r0, r2, #0 adds r0, #0xea strh r3, [r0] adds r1, r2, #0 adds r1, #0xec movs r0, #0x78 strh r0, [r1] adds r0, r2, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r1, #6 movs r0, #2 strb r0, [r1] ldr r0, [r5] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0xfb strb r1, [r0] ldr r2, [r5] adds r1, r2, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _080281B4 @ =0x0000F63C strh r0, [r1] subs r1, #6 movs r0, #0x32 strh r0, [r1] adds r0, r2, #0 adds r0, #0xf8 strh r3, [r0] ldr r1, _080281B8 @ =0x040000D4 ldr r0, _080281BC @ =0x086ACEF8 ldr r0, [r0, #8] str r0, [r1] ldr r0, _080281C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _080281C4 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _080281C8 @ =0x086ACF18 ldr r0, [r0, #8] str r0, [r1] ldr r0, _080281CC @ =0x050003C0 str r0, [r1, #4] ldr r0, _080281D0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r4, #0x38] movs r0, #0xce strh r0, [r4, #0x38] b _080281F6 .align 2, 0 _080281B4: .4byte 0x0000F63C _080281B8: .4byte 0x040000D4 _080281BC: .4byte 0x086ACEF8 _080281C0: .4byte 0x06015800 _080281C4: .4byte 0x80001200 _080281C8: .4byte 0x086ACF18 _080281CC: .4byte 0x050003C0 _080281D0: .4byte 0x80000010 _080281D4: cmp r0, #0x2f bne _080281E0 movs r0, #0x21 bl m4aSongNumStart b _080281F6 _080281E0: cmp r0, #0 bne _080281F6 movs r3, #0xa5 lsls r3, r3, #2 adds r1, r2, r3 _080281EA: movs r0, #2 strb r0, [r1] ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] _080281F6: bl sub_29334 b _080283FA _080281FC: ldr r0, [r5] ldr r1, _08028210 @ =0x00000729 adds r0, r0, r1 movs r4, #0 movs r1, #1 strb r1, [r0] bl sub_29334 b _08028262 .align 2, 0 _08028210: .4byte 0x00000729 _08028214: ldr r0, [r5] ldr r2, _0802822C @ =0x00000729 adds r0, r0, r2 movs r4, #0 strb r4, [r0] ldr r1, [r5] ldrh r0, [r1, #0x18] cmp r0, #0 bne _08028230 adds r0, #1 strh r0, [r1, #0x18] b _080283FA .align 2, 0 _0802822C: .4byte 0x00000729 _08028230: adds r1, #0xe4 movs r0, #0xa strb r0, [r1] ldr r1, _08028268 @ =0x040000D4 ldr r0, _0802826C @ =0x0839C78C str r0, [r1] ldr r0, _08028270 @ =0x06015800 str r0, [r1, #4] ldr r0, _08028274 @ =0x80000A00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08028278 @ =0x0839DBAC str r0, [r1] ldr r0, _0802827C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08028280 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xa7 bl m4aSongNumStart ldr r1, [r5] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] _08028262: ldr r0, [r5] strh r4, [r0, #0x18] b _080283FA .align 2, 0 _08028268: .4byte 0x040000D4 _0802826C: .4byte 0x0839C78C _08028270: .4byte 0x06015800 _08028274: .4byte 0x80000A00 _08028278: .4byte 0x0839DBAC _0802827C: .4byte 0x050003C0 _08028280: .4byte 0x80000010 _08028284: bl sub_293D8 b _080283FA _0802828A: bl sub_29624 ldr r0, _0802832C @ =0x040000D4 ldr r1, _08028330 @ =0x086ACF80 str r1, [r0] ldr r1, _08028334 @ =0x050003E0 str r1, [r0, #4] ldr r2, _08028338 @ =0x80000010 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, _0802833C @ =0x020306D0 str r1, [r0] ldr r1, _08028340 @ =0x050003A0 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] ldr r4, _08028344 @ =0x020314E0 ldr r1, [r4] movs r3, #0xa2 lsls r3, r3, #2 adds r2, r1, r3 movs r3, #0 movs r5, #0 movs r0, #0x76 strh r0, [r2] ldr r0, _08028348 @ =0x0000028A adds r2, r1, r0 movs r0, #0x84 lsls r0, r0, #1 strh r0, [r2] movs r2, #0xe4 lsls r2, r2, #3 adds r1, r1, r2 strb r3, [r1] ldr r0, [r4] ldr r3, _0802834C @ =0x0000071D adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r0, [r4] subs r2, #2 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] adds r3, #2 adds r0, r0, r3 strb r1, [r0] bl sub_28C90 ldr r0, [r4] ldr r1, _08028350 @ =0x000005F2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, [r4] movs r3, #0xa7 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0x8c strh r0, [r2] ldr r2, _08028354 @ =0x086A3700 movs r0, #0xb3 lsls r0, r0, #3 adds r1, r1, r0 ldrh r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC ldr r0, [r4] strh r5, [r0, #0x18] b _080283FA .align 2, 0 _0802832C: .4byte 0x040000D4 _08028330: .4byte 0x086ACF80 _08028334: .4byte 0x050003E0 _08028338: .4byte 0x80000010 _0802833C: .4byte 0x020306D0 _08028340: .4byte 0x050003A0 _08028344: .4byte 0x020314E0 _08028348: .4byte 0x0000028A _0802834C: .4byte 0x0000071D _08028350: .4byte 0x000005F2 _08028354: .4byte 0x086A3700 _08028358: ldr r1, [r5] ldrh r2, [r1, #0x18] cmp r2, #0 bne _0802836C adds r0, r1, #0 adds r0, #0xec strh r2, [r0] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] _0802836C: bl sub_28C90 ldr r0, [r5] ldr r2, _08028384 @ =0x000005AA adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _080283FA subs r0, #1 strh r0, [r1] b _080283FA .align 2, 0 _08028384: .4byte 0x000005AA _08028388: bl sub_28E2C bl sub_2530C ldr r0, _0802839C @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _0802839C: .4byte 0x020314E0 _080283A0: bl sub_27D44 ldr r0, _080283B0 @ =0x020314E0 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 b _080283F8 .align 2, 0 _080283B0: .4byte 0x020314E0 _080283B4: ldr r0, [r5] ldr r3, _080283CC @ =0x00000729 adds r0, r0, r3 movs r1, #0 strb r1, [r0] ldr r1, [r5] ldrh r0, [r1, #0x18] cmp r0, #0 beq _080283D0 subs r0, #1 strh r0, [r1, #0x18] b _080283FA .align 2, 0 _080283CC: .4byte 0x00000729 _080283D0: ldr r2, _080283E8 @ =0x0000071F adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080283EC movs r0, #3 bl sub_19B64 b _080283F2 .align 2, 0 _080283E8: .4byte 0x0000071F _080283EC: movs r0, #1 bl sub_19B64 _080283F2: ldr r0, _08028400 @ =0x020314E0 ldr r1, [r0] movs r0, #0 _080283F8: strb r0, [r1, #0x17] _080283FA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08028400: .4byte 0x020314E0 thumb_func_start sub_28404 sub_28404: @ 0x08028404 push {r4, r5, r6, r7, lr} ldr r5, _08028500 @ =0x020314E0 ldr r0, [r5] movs r3, #0 strb r3, [r0, #0x17] ldr r0, [r5] movs r6, #0 strh r3, [r0, #0x18] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r2, [r5] adds r4, r2, #0 adds r4, #0x6c movs r7, #0xe1 lsls r7, r7, #3 adds r0, r7, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r7, _08028504 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r3, [r4] ldr r0, _08028508 @ =0x000005A5 adds r2, r2, r0 strb r6, [r2] ldr r0, [r5] ldr r2, _0802850C @ =0x000005AA adds r1, r0, r2 strh r3, [r1] ldr r7, _08028510 @ =0x000005A9 adds r0, r0, r7 strb r6, [r0] ldr r2, [r5] adds r0, r2, #0 adds r0, #0x7c strh r3, [r0] adds r1, r2, #0 adds r1, #0x80 movs r0, #0xe1 lsls r0, r0, #2 strh r0, [r1] adds r1, #2 ldr r0, _08028514 @ =0x0000FA88 strh r0, [r1] adds r0, r2, #0 adds r0, #0x73 strb r6, [r0] ldr r1, [r5] adds r0, r1, #0 adds r0, #0xbc strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r3, [r0] ldr r2, _08028518 @ =0x0000072F adds r0, r1, r2 strb r6, [r0] ldr r0, [r5] ldr r7, _0802851C @ =0x00000731 adds r0, r0, r7 strb r6, [r0] ldr r2, [r5] adds r0, r2, #0 adds r0, #0x74 strh r3, [r0] adds r1, r2, #0 adds r1, #0x76 movs r0, #0xa strh r0, [r1] adds r1, #2 movs r0, #0x14 strh r0, [r1] adds r1, #2 movs r0, #0x1e strh r0, [r1] ldr r0, _08028520 @ =0x00000724 adds r1, r2, r0 ldr r0, _08028524 @ =0x00000CA8 strh r0, [r1] ldr r1, _08028528 @ =0x00000714 adds r0, r2, r1 strb r6, [r0] ldr r0, [r5] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0802852C @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] subs r7, #0x1f adds r0, r0, r7 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _08028530 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, _08028534 @ =0x040000D4 ldr r0, _08028538 @ =0x081C0064 str r0, [r1] ldr r0, _0802853C @ =0x05000180 str r0, [r1, #4] ldr r0, _08028540 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028500: .4byte 0x020314E0 _08028504: .4byte 0x00000296 _08028508: .4byte 0x000005A5 _0802850C: .4byte 0x000005AA _08028510: .4byte 0x000005A9 _08028514: .4byte 0x0000FA88 _08028518: .4byte 0x0000072F _0802851C: .4byte 0x00000731 _08028520: .4byte 0x00000724 _08028524: .4byte 0x00000CA8 _08028528: .4byte 0x00000714 _0802852C: .4byte 0x00000711 _08028530: .4byte 0x00000713 _08028534: .4byte 0x040000D4 _08028538: .4byte 0x081C0064 _0802853C: .4byte 0x05000180 _08028540: .4byte 0x80000010 thumb_func_start sub_28544 sub_28544: @ 0x08028544 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r1, _08028568 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x17] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r1 cmp r0, #6 bls _0802855C b _08028AD2 _0802855C: lsls r0, r0, #2 ldr r1, _0802856C @ =_08028570 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08028568: .4byte 0x020314E0 _0802856C: .4byte _08028570 _08028570: @ jump table .4byte _0802858C @ case 0 .4byte _080285A8 @ case 1 .4byte _080286C8 @ case 2 .4byte _080287E0 @ case 3 .4byte _08028A2C @ case 4 .4byte _08028A60 @ case 5 .4byte _08028A88 @ case 6 _0802858C: mov r1, r8 ldr r0, [r1] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0xc8 strh r1, [r0] bl sub_28AE0 mov r3, r8 ldr r1, [r3] ldrb r0, [r1, #0x17] adds r0, #1 b _08028AD0 _080285A8: ldr r4, _080285CC @ =0x0200B0C0 ldrb r1, [r4, #0xf] adds r3, r1, #0 cmp r3, #0 bne _0802869E ldrb r0, [r4, #4] cmp r0, #0 bne _080285D0 mov r5, r8 ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x5e beq _080285DA cmp r0, #0x5d beq _080285E4 cmp r0, #0x49 beq _08028688 b _08028690 .align 2, 0 _080285CC: .4byte 0x0200B0C0 _080285D0: mov r5, r8 ldr r2, [r5] ldrh r0, [r2, #0x28] cmp r0, #0x44 bne _080285E0 _080285DA: bl m4aMPlayAllStop b _08028AD2 _080285E0: cmp r0, #0x43 bne _08028684 _080285E4: movs r0, #1 orrs r0, r1 strb r0, [r4, #0xf] adds r0, r2, #0 adds r0, #0xea strh r3, [r0] adds r1, r2, #0 adds r1, #0xec movs r0, #0x78 strh r0, [r1] adds r0, r2, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r1, #6 movs r0, #5 strb r0, [r1] mov r1, r8 ldr r0, [r1] adds r0, #0xfa movs r1, #1 strb r1, [r0] mov r2, r8 ldr r0, [r2] adds r0, #0xfb strb r1, [r0] ldr r2, [r2] adds r1, r2, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _08028664 @ =0x0000F63C strh r0, [r1] subs r1, #6 movs r0, #0x32 strh r0, [r1] adds r0, r2, #0 adds r0, #0xf8 strh r3, [r0] ldr r1, _08028668 @ =0x040000D4 ldr r0, _0802866C @ =0x086ACEF8 ldr r0, [r0, #0x14] str r0, [r1] ldr r0, _08028670 @ =0x06015800 str r0, [r1, #4] ldr r0, _08028674 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08028678 @ =0x086ACF18 ldr r0, [r0, #0x14] str r0, [r1] ldr r0, _0802867C @ =0x050003C0 str r0, [r1, #4] ldr r0, _08028680 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r4, #0x38] movs r0, #0xce strh r0, [r4, #0x38] b _08028AD2 .align 2, 0 _08028664: .4byte 0x0000F63C _08028668: .4byte 0x040000D4 _0802866C: .4byte 0x086ACEF8 _08028670: .4byte 0x06015800 _08028674: .4byte 0x80001200 _08028678: .4byte 0x086ACF18 _0802867C: .4byte 0x050003C0 _08028680: .4byte 0x80000010 _08028684: cmp r0, #0x2f bne _08028690 _08028688: movs r0, #0x2f bl m4aSongNumStart b _08028AD2 _08028690: cmp r0, #0x28 beq _08028696 b _08028AD2 _08028696: ldrb r0, [r2, #0x17] adds r0, #1 strb r0, [r2, #0x17] b _08028AD2 _0802869E: movs r0, #1 ands r0, r1 cmp r0, #0 bne _080286A8 b _08028AD2 _080286A8: mov r3, r8 ldr r1, [r3] adds r0, r1, #0 adds r0, #0xf0 ldrh r0, [r0] cmp r0, #1 beq _080286B8 b _08028AD2 _080286B8: ldr r4, _080286C4 @ =0x000006C4 adds r1, r1, r4 movs r0, #3 strb r0, [r1] b _08028AD2 .align 2, 0 _080286C4: .4byte 0x000006C4 _080286C8: ldr r2, _080287A4 @ =0x040000D4 ldr r0, _080287A8 @ =0x086ACF80 str r0, [r2] ldr r0, _080287AC @ =0x050003E0 str r0, [r2, #4] ldr r1, _080287B0 @ =0x80000010 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, _080287B4 @ =0x020306D0 str r0, [r2] ldr r0, _080287B8 @ =0x050003A0 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] mov r5, r8 ldr r0, [r5] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 movs r4, #0 strb r4, [r0] ldr r0, [r5] ldr r3, _080287BC @ =0x0000071D adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r0, [r5] ldr r5, _080287C0 @ =0x0000071E adds r0, r0, r5 strb r1, [r0] mov r3, r8 ldr r0, [r3] adds r5, #1 adds r0, r0, r5 strb r1, [r0] ldr r0, [r3] ldr r1, _080287C4 @ =0x000005F2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, _080287C8 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x84 ldr r0, [r0] movs r3, #0 strh r1, [r0] ldr r0, _080287CC @ =0x02030760 str r0, [r2] ldr r0, _080287D0 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _080287D4 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] mov r5, r8 ldr r2, [r5] movs r0, #0x28 strh r0, [r2, #0x28] adds r1, r2, #0 adds r1, #0x80 movs r0, #0xe1 lsls r0, r0, #2 strh r0, [r1] adds r1, #2 ldr r0, _080287D8 @ =0x0000FA88 strh r0, [r1] adds r0, r2, #0 adds r0, #0x73 strb r3, [r0] ldr r3, [r5] ldr r2, _080287DC @ =0x086AE124 adds r5, r3, #0 adds r5, #0x73 movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0xbc strh r1, [r0] movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] adds r1, r3, #0 adds r1, #0xbe strh r0, [r1] strh r4, [r3, #0x18] movs r0, #0xa2 lsls r0, r0, #1 bl m4aSongNumStart mov r0, r8 ldr r1, [r0] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] mov r1, r8 ldr r2, [r1] adds r0, r2, #0 adds r0, #0x80 ldrh r1, [r0] adds r0, #0x40 strh r1, [r0] subs r0, #0x3e ldrh r1, [r0] adds r0, #0x40 strh r1, [r0] b _08028AD2 .align 2, 0 _080287A4: .4byte 0x040000D4 _080287A8: .4byte 0x086ACF80 _080287AC: .4byte 0x050003E0 _080287B0: .4byte 0x80000010 _080287B4: .4byte 0x020306D0 _080287B8: .4byte 0x050003A0 _080287BC: .4byte 0x0000071D _080287C0: .4byte 0x0000071E _080287C4: .4byte 0x000005F2 _080287C8: .4byte 0x0200B0C0 _080287CC: .4byte 0x02030760 _080287D0: .4byte 0x06010CA0 _080287D4: .4byte 0x80000240 _080287D8: .4byte 0x0000FA88 _080287DC: .4byte 0x086AE124 _080287E0: ldr r4, _08028824 @ =0x020314E0 mov r8, r4 ldr r4, [r4] ldr r5, _08028828 @ =0x000005A4 adds r0, r4, r5 ldrb r0, [r0] cmp r0, #2 bne _08028830 adds r0, r4, #0 adds r0, #0xc0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x76 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] adds r0, r4, #0 adds r0, #0xc2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 movs r5, #0x88 lsls r5, r5, #1 adds r0, r0, r5 ldr r2, _0802882C @ =0x0000028A adds r1, r4, r2 strh r0, [r1] b _08028974 .align 2, 0 _08028824: .4byte 0x020314E0 _08028828: .4byte 0x000005A4 _0802882C: .4byte 0x0000028A _08028830: adds r0, r4, #0 adds r0, #0xbc movs r5, #0 ldrsh r1, [r0, r5] subs r0, #0x3c movs r5, #0 ldrsh r0, [r0, r5] subs r2, r1, r0 adds r0, r4, #0 adds r0, #0xbe movs r5, #0 ldrsh r1, [r0, r5] subs r0, #0x3c movs r4, #0 ldrsh r0, [r0, r4] subs r3, r1, r0 adds r4, r2, #0 muls r4, r2, r4 adds r0, r3, #0 muls r0, r3, r0 adds r4, r4, r0 lsls r0, r2, #0x10 asrs r0, r0, #0x10 rsbs r1, r3, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0802888C @ =0x000009C3 cmp r4, r0 bgt _080288E8 movs r6, #0 movs r7, #0 mov r5, r8 ldr r2, [r5] adds r1, r2, #0 adds r1, #0x7c ldrh r0, [r1] cmp r0, #0xc7 bhi _08028890 adds r0, #1 strh r0, [r1] b _08028918 .align 2, 0 _0802888C: .4byte 0x000009C3 _08028890: movs r0, #0 strh r0, [r1] adds r1, r2, #0 adds r1, #0x73 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xa bgt _080288A6 adds r0, r2, #1 b _080288A8 _080288A6: movs r0, #0 _080288A8: strb r0, [r1] movs r0, #0xa2 lsls r0, r0, #1 bl m4aSongNumStart ldr r0, _080288E0 @ =0x020314E0 ldr r3, [r0] ldr r2, _080288E4 @ =0x086AE124 adds r4, r3, #0 adds r4, #0x73 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0xbc strh r1, [r0] movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r2 ldrh r1, [r0, #2] adds r0, r3, #0 adds r0, #0xbe strh r1, [r0] b _08028918 .align 2, 0 _080288E0: .4byte 0x020314E0 _080288E4: .4byte 0x086AE124 _080288E8: adds r0, r5, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r1, r1, r0 ldr r4, _08028A0C @ =0x00004E20 adds r0, r1, #0 adds r1, r4, #0 bl __divsi3 adds r6, r0, #0 adds r0, r5, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 subs r0, r0, r1 adds r1, r4, #0 bl __divsi3 adds r7, r0, #0 _08028918: ldr r5, _08028A10 @ =0x020314E0 ldr r0, [r5] mov r8, r0 mov r4, r8 adds r4, #0x80 ldrh r0, [r4] adds r0, r6, r0 strh r0, [r4] mov r1, r8 adds r1, #0x82 ldrh r0, [r1] adds r0, r7, r0 strh r0, [r1] mov r1, r8 ldrh r0, [r1, #0x18] movs r1, #0x50 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0x50 bl __divsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldrh r2, [r4] mov r1, r8 adds r1, #0xc0 strh r2, [r1] bl sub_C24 adds r1, r0, #0 ldr r4, [r5] adds r5, r4, #0 adds r5, #0x82 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 ldr r1, _08028A0C @ =0x00004E20 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 adds r4, #0xc2 strh r1, [r4] _08028974: ldr r0, _08028A10 @ =0x020314E0 ldr r1, [r0] ldrh r2, [r1, #0x18] ldr r3, _08028A14 @ =0x000001F3 mov r8, r0 cmp r2, r3 bhi _08028994 movs r0, #0x28 strh r0, [r1, #0x28] cmp r2, r3 bne _08028994 movs r2, #0xa5 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #2 strb r0, [r1] _08028994: mov r3, r8 ldr r0, [r3] ldrh r1, [r0, #0x18] adds r1, #1 strh r1, [r0, #0x18] bl sub_28EA0 mov r4, r8 ldr r0, [r4] ldr r5, _08028A18 @ =0x000005AA adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _080289B4 subs r0, #1 strh r0, [r1] _080289B4: mov r0, r8 ldr r1, [r0] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080289CA b _08028AD2 _080289CA: ldr r3, _08028A1C @ =0x00000296 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #1 bls _080289D6 b _08028AD2 _080289D6: movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #4 ble _080289E0 b _08028AD2 _080289E0: bl m4aMPlayAllStop movs r0, #0x13 bl m4aSongNumStart mov r4, r8 ldr r1, [r4] movs r0, #4 strb r0, [r1, #0x17] ldr r0, [r4] movs r1, #0x96 strh r1, [r0, #0x18] ldr r5, _08028A20 @ =0x000005F2 adds r0, r0, r5 movs r1, #0 strb r1, [r0] ldr r0, _08028A24 @ =0x02032F20 ldr r1, _08028A28 @ =0x0869F58C bl MPlayStart b _08028AD2 .align 2, 0 _08028A0C: .4byte 0x00004E20 _08028A10: .4byte 0x020314E0 _08028A14: .4byte 0x000001F3 _08028A18: .4byte 0x000005AA _08028A1C: .4byte 0x00000296 _08028A20: .4byte 0x000005F2 _08028A24: .4byte 0x02032F20 _08028A28: .4byte 0x0869F58C _08028A2C: mov r0, r8 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0 beq _08028A3C subs r0, #1 strh r0, [r1, #0x18] b _08028A40 _08028A3C: movs r0, #5 strb r0, [r1, #0x17] _08028A40: bl sub_28EA0 ldr r0, _08028A58 @ =0x020314E0 ldr r0, [r0] ldr r2, _08028A5C @ =0x000005AA adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _08028AD2 subs r0, #1 strh r0, [r1] b _08028AD2 .align 2, 0 _08028A58: .4byte 0x020314E0 _08028A5C: .4byte 0x000005AA _08028A60: bl sub_28EA0 bl sub_292A0 bl sub_27D44 ldr r2, _08028A84 @ =0x020314E0 ldr r0, [r2] adds r0, #0x72 movs r3, #0 movs r1, #0xf0 strb r1, [r0] ldr r1, [r2] movs r0, #6 strb r0, [r1, #0x17] ldr r0, [r2] strh r3, [r0, #0x18] b _08028AD2 .align 2, 0 _08028A84: .4byte 0x020314E0 _08028A88: mov r3, r8 ldr r0, [r3] ldr r4, _08028AA4 @ =0x00000729 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0 beq _08028AA8 subs r0, #1 strh r0, [r1, #0x18] b _08028AD2 .align 2, 0 _08028AA4: .4byte 0x00000729 _08028AA8: ldr r5, _08028AC0 @ =0x0000071F adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08028AC4 movs r0, #3 bl sub_19B64 b _08028ACA .align 2, 0 _08028AC0: .4byte 0x0000071F _08028AC4: movs r0, #1 bl sub_19B64 _08028ACA: ldr r0, _08028ADC @ =0x020314E0 ldr r1, [r0] movs r0, #0 _08028AD0: strb r0, [r1, #0x17] _08028AD2: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028ADC: .4byte 0x020314E0 thumb_func_start sub_28AE0 sub_28AE0: @ 0x08028AE0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 ldr r2, _08028BD4 @ =0x086A3700 ldr r0, _08028BD8 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 movs r7, #0 ldr r6, _08028BDC @ =0x086BB6F4 add r3, sp, #0xc mov r8, r3 ldr r4, _08028BE0 @ =0x02030760 mov sl, r4 ldr r1, _08028BE4 @ =0x020306D0 mov sb, r1 ldrb r5, [r0, #0x11] adds r0, r5, #0 movs r1, #5 bl __divsi3 adds r4, r0, #0 adds r0, r5, #0 movs r1, #5 bl __modsi3 lsls r4, r4, #0x10 asrs r4, r4, #0xe adds r6, r4, r6 lsls r0, r0, #0x10 asrs r5, r0, #0x10 ldr r6, [r6] mov ip, r6 ldr r3, _08028BE8 @ =0x086B15B4 adds r4, r4, r3 ldr r6, [r4] _08028B3A: lsls r3, r7, #0x10 asrs r3, r3, #0x10 lsls r2, r3, #2 mov r0, sp adds r4, r0, r2 lsls r1, r5, #1 adds r1, r1, r5 adds r1, r3, r1 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 add r0, ip str r0, [r4] mov r1, r8 adds r0, r1, r2 adds r2, r2, r3 adds r2, r2, r5 lsls r2, r2, #5 adds r2, r6, r2 str r2, [r0] adds r3, #1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08028B3A movs r7, #0 ldr r3, _08028BEC @ =0x040000D4 _08028B72: lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #2 mov r4, sp adds r0, r4, r2 ldr r0, [r0] str r0, [r3] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 add r0, sl str r0, [r3, #4] ldr r0, _08028BF0 @ =0x80000240 str r0, [r3, #8] ldr r0, [r3, #8] add r2, r8 ldr r0, [r2] str r0, [r3] lsls r0, r1, #5 add r0, sb str r0, [r3, #4] ldr r2, _08028BF4 @ =0x80000010 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r7, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _08028B72 ldr r0, _08028BEC @ =0x040000D4 ldr r3, _08028BE8 @ =0x086B15B4 ldr r1, [r3] movs r4, #0xf0 lsls r4, r4, #1 adds r1, r1, r4 str r1, [r0] ldr r1, _08028BF8 @ =0x02030730 str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] add sp, #0x18 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028BD4: .4byte 0x086A3700 _08028BD8: .4byte 0x020314E0 _08028BDC: .4byte 0x086BB6F4 _08028BE0: .4byte 0x02030760 _08028BE4: .4byte 0x020306D0 _08028BE8: .4byte 0x086B15B4 _08028BEC: .4byte 0x040000D4 _08028BF0: .4byte 0x80000240 _08028BF4: .4byte 0x80000010 _08028BF8: .4byte 0x02030730 thumb_func_start sub_28BFC sub_28BFC: @ 0x08028BFC push {r4, r5, r6, lr} ldr r2, _08028C6C @ =0x086A3700 ldr r0, _08028C70 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldr r5, _08028C74 @ =0x086BB6DC ldrb r6, [r0, #0x12] adds r0, r6, #0 movs r1, #6 bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x10 asrs r4, r4, #0xe adds r5, r4, r5 adds r0, r6, #0 movs r1, #6 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 adds r1, r1, r0 lsls r1, r1, #3 subs r1, r1, r0 lsls r1, r1, #5 ldr r2, [r5] adds r2, r2, r1 ldr r1, _08028C78 @ =0x086B159C adds r4, r4, r1 lsls r0, r0, #5 ldr r3, [r4] adds r3, r3, r0 ldr r0, _08028C7C @ =0x040000D4 str r2, [r0] ldr r1, _08028C80 @ =0x0202C7A0 str r1, [r0, #4] ldr r1, _08028C84 @ =0x80000870 str r1, [r0, #8] ldr r1, [r0, #8] str r3, [r0] ldr r1, _08028C88 @ =0x020315D0 str r1, [r0, #4] ldr r1, _08028C8C @ =0x80000010 str r1, [r0, #8] ldr r0, [r0, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08028C6C: .4byte 0x086A3700 _08028C70: .4byte 0x020314E0 _08028C74: .4byte 0x086BB6DC _08028C78: .4byte 0x086B159C _08028C7C: .4byte 0x040000D4 _08028C80: .4byte 0x0202C7A0 _08028C84: .4byte 0x80000870 _08028C88: .4byte 0x020315D0 _08028C8C: .4byte 0x80000010 thumb_func_start sub_28C90 sub_28C90: @ 0x08028C90 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r4, _08028D30 @ =0x0200B0C0 ldr r0, [r4, #0x50] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, [r4, #0x44] adds r0, #0x84 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _08028CBA b _08028E02 _08028CBA: ldr r3, _08028D34 @ =0x020314E0 ldr r4, [r3] adds r1, r4, #0 adds r1, #0xc4 movs r2, #0x60 movs r0, #0x60 strh r0, [r1] adds r0, r4, #0 adds r0, #0xc6 movs r1, #0x90 lsls r1, r1, #1 strh r1, [r0] subs r0, #0x6e ldrh r0, [r0] subs r2, r2, r0 strh r2, [r6, #2] adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #4] ldr r1, _08028D38 @ =0x000005A9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #4 bls _08028D50 cmp r0, #0x14 beq _08028CF6 cmp r0, #0xc8 bne _08028D06 _08028CF6: ldr r1, _08028D3C @ =0x040000D4 ldr r0, _08028D40 @ =0x02031060 str r0, [r1] ldr r0, _08028D44 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028D48 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028D06: ldr r0, [r3] ldr r2, _08028D38 @ =0x000005A9 adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0x18 bne _08028D22 ldr r1, _08028D3C @ =0x040000D4 ldr r0, _08028D4C @ =0x02030760 str r0, [r1] ldr r0, _08028D44 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028D48 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028D22: ldr r1, [r3] adds r1, r1, r2 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _08028D78 .align 2, 0 _08028D30: .4byte 0x0200B0C0 _08028D34: .4byte 0x020314E0 _08028D38: .4byte 0x000005A9 _08028D3C: .4byte 0x040000D4 _08028D40: .4byte 0x02031060 _08028D44: .4byte 0x06010CA0 _08028D48: .4byte 0x80000240 _08028D4C: .4byte 0x02030760 _08028D50: movs r2, #0xde lsls r2, r2, #1 adds r0, r4, r2 ldrh r0, [r0] cmp r0, #5 bne _08028D78 ldr r2, _08028E10 @ =0x040000D4 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08028E14 @ =0x02030760 adds r0, r0, r1 str r0, [r2] ldr r0, _08028E18 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _08028E1C @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] _08028D78: ldr r0, [r3] movs r1, #0xb5 lsls r1, r1, #3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #1 cmp r0, #0xc bgt _08028D8E movs r1, #2 _08028D8E: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xc7 ble _08028D9A movs r0, #0xc8 strh r0, [r6, #4] _08028D9A: movs r0, #0 ldr r7, _08028E20 @ =0x03005000 ldr r2, _08028E24 @ =0xFFFFFE00 mov sb, r2 lsls r1, r1, #2 mov ip, r1 movs r1, #0xd rsbs r1, r1, #0 mov r8, r1 _08028DAC: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08028E28 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r3, #4] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #5] mov r0, r8 ands r0, r2 mov r2, ip orrs r0, r2 strb r0, [r1, #5] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _08028DAC _08028E02: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028E10: .4byte 0x040000D4 _08028E14: .4byte 0x02030760 _08028E18: .4byte 0x06010CA0 _08028E1C: .4byte 0x80000240 _08028E20: .4byte 0x03005000 _08028E24: .4byte 0xFFFFFE00 _08028E28: .4byte 0x000001FF thumb_func_start sub_28E2C sub_28E2C: @ 0x08028E2C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08028E94 @ =0x0200B0C0 ldr r1, [r0, #0x44] adds r1, #0x84 ldr r5, [r1] ldrh r1, [r5] mov r8, r0 cmp r1, #0 beq _08028E7C movs r0, #0 ldr r6, _08028E98 @ =0x03005000 ldr r1, _08028E9C @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _08028E4C: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r4, r2, #3 adds r4, #8 adds r4, r5, r4 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _08028E4C _08028E7C: mov r1, r8 ldr r0, [r1, #0x44] adds r0, #0x84 ldr r1, [r0] movs r0, #0 strh r0, [r1] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08028E94: .4byte 0x0200B0C0 _08028E98: .4byte 0x03005000 _08028E9C: .4byte 0xFFFFFE00 thumb_func_start sub_28EA0 sub_28EA0: @ 0x08028EA0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, _08028F64 @ =0x0200B0C0 ldr r0, [r4, #0x50] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 ldr r0, [r4, #0x44] adds r0, #0x84 ldr r7, [r0] ldrh r0, [r7] ldr r1, _08028F68 @ =0x020314E0 mov sl, r1 cmp r0, #0 bne _08028ED4 b _080290C4 _08028ED4: ldr r6, [r1] adds r4, r6, #0 adds r4, #0xc0 movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 adds r0, #0x60 adds r1, r6, #0 adds r1, #0xc4 strh r0, [r1] movs r0, #0xc2 adds r0, r0, r6 mov r8, r0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 movs r2, #0x90 lsls r2, r2, #1 adds r5, r2, #0 adds r0, r0, r5 adds r1, r6, #0 adds r1, #0xc6 strh r0, [r1] movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r0, #0x60 adds r1, r6, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] mov r2, r8 movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 adds r0, r0, r5 adds r1, r6, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] movs r0, #0x17 ldrsb r0, [r6, r0] cmp r0, #3 ble _08028F7A ldrh r0, [r6, #0x18] cmp r0, #0x59 bls _08028F74 adds r1, r0, #0 movs r0, #0x96 subs r0, r0, r1 cmp r0, #0 bge _08028F52 adds r0, #3 _08028F52: lsls r1, r0, #0xe ldr r2, _08028F6C @ =0x040000D4 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08028F70 @ =0x0844AA0C b _08028FFC .align 2, 0 _08028F64: .4byte 0x0200B0C0 _08028F68: .4byte 0x020314E0 _08028F6C: .4byte 0x040000D4 _08028F70: .4byte 0x0844AA0C _08028F74: movs r0, #0xbe strh r0, [r7, #4] b _0802900A _08028F7A: ldr r2, _08028FC8 @ =0x000005A9 adds r0, r6, r2 ldrb r0, [r0] cmp r0, #4 bls _08028FE0 cmp r0, #0x14 beq _08028F8C cmp r0, #0xc8 bne _08028F9C _08028F8C: ldr r1, _08028FCC @ =0x040000D4 ldr r0, _08028FD0 @ =0x02031060 str r0, [r1] ldr r0, _08028FD4 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028FD8 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028F9C: mov r6, sl ldr r0, [r6] ldr r2, _08028FC8 @ =0x000005A9 adds r0, r0, r2 ldrb r0, [r0] cmp r0, #0x18 bne _08028FBA ldr r1, _08028FCC @ =0x040000D4 ldr r0, _08028FDC @ =0x02030760 str r0, [r1] ldr r0, _08028FD4 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _08028FD8 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _08028FBA: mov r0, sl ldr r1, [r0] adds r1, r1, r2 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0802900A .align 2, 0 _08028FC8: .4byte 0x000005A9 _08028FCC: .4byte 0x040000D4 _08028FD0: .4byte 0x02031060 _08028FD4: .4byte 0x06010CA0 _08028FD8: .4byte 0x80000240 _08028FDC: .4byte 0x02030760 _08028FE0: movs r1, #0xde lsls r1, r1, #1 adds r0, r6, r1 ldrh r0, [r0] cmp r0, #5 bne _0802900A ldr r2, _0802901C @ =0x040000D4 mov r6, sb lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08029020 @ =0x02030760 _08028FFC: adds r0, r0, r1 str r0, [r2] ldr r0, _08029024 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _08029028 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] _0802900A: mov r0, sl ldr r1, [r0] ldr r2, _0802902C @ =0x000005A4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #2 beq _08029030 movs r3, #1 b _08029044 .align 2, 0 _0802901C: .4byte 0x040000D4 _08029020: .4byte 0x02030760 _08029024: .4byte 0x06010CA0 _08029028: .4byte 0x80000240 _0802902C: .4byte 0x000005A4 _08029030: movs r6, #0xb5 lsls r6, r6, #3 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r3, #1 cmp r0, #0xc bgt _08029044 movs r3, #2 _08029044: movs r1, #4 ldrsh r0, [r7, r1] cmp r0, #0xc7 ble _08029052 movs r0, #0xc8 strh r0, [r7, #4] b _0802905C _08029052: movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _0802905C strh r1, [r7, #4] _0802905C: movs r2, #0 ldr r6, _0802912C @ =0x03005000 ldr r0, _08029130 @ =0xFFFFFE00 mov sl, r0 lsls r3, r3, #2 mov r8, r3 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 _0802906E: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _08029134 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r5, #4] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] mov r0, sb ands r0, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, #5] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _0802906E _080290C4: movs r1, #0 _080290C6: lsls r0, r1, #0x10 asrs r5, r0, #0x10 ldr r6, _08029138 @ =0x0200B0C0 ldr r1, [r6, #0x44] lsls r4, r5, #2 adds r1, r4, r1 adds r1, #0xb4 ldr r7, [r1] ldrh r1, [r7] mov r8, r0 cmp r1, #0 beq _080291D2 ldr r0, _0802913C @ =0x020314E0 ldr r2, [r0] adds r3, r2, r4 adds r0, r3, #0 adds r0, #0x84 adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] adds r3, #0x86 adds r0, r2, #0 adds r0, #0x5a ldrh r3, [r3] ldrh r0, [r0] subs r3, r3, r0 strh r3, [r7, #4] lsls r0, r5, #1 adds r2, #0x74 adds r2, r2, r0 ldrh r0, [r2] lsrs r0, r0, #2 movs r1, #9 subs r1, r1, r0 lsls r1, r1, #1 adds r0, r4, r5 lsls r0, r0, #2 adds r1, r1, r0 ldr r2, _08029140 @ =0x086AE154 adds r1, r1, r2 ldrh r1, [r1] lsls r3, r3, #0x10 asrs r0, r3, #0x10 cmp r0, #0xc7 ble _08029144 movs r0, #0xc8 strh r0, [r7, #4] b _0802914E .align 2, 0 _0802912C: .4byte 0x03005000 _08029130: .4byte 0xFFFFFE00 _08029134: .4byte 0x000001FF _08029138: .4byte 0x0200B0C0 _0802913C: .4byte 0x020314E0 _08029140: .4byte 0x086AE154 _08029144: movs r2, #0x3c rsbs r2, r2, #0 cmp r0, r2 bge _0802914E strh r2, [r7, #4] _0802914E: movs r2, #0 lsls r1, r1, #0x10 ldr r6, _08029284 @ =0x086B263C mov sl, r6 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 mov ip, r0 ldr r0, _08029288 @ =0xFFFFFE00 mov sb, r0 _08029164: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 ldr r1, _0802928C @ =0x03005000 adds r2, r2, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r6, _0802928C @ =0x03005000 adds r2, r2, r6 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r1, #2 ldrsh r0, [r7, r1] ldr r6, [sp] adds r1, r6, r0 ldr r6, _08029290 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _0802928C @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08029164 _080291D2: ldr r6, _08029294 @ =0x020314E0 ldr r4, [r6] ldr r1, _08029298 @ =0x000005A4 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #2 beq _08029228 movs r0, #0x17 ldrsb r0, [r4, r0] cmp r0, #3 bgt _08029228 mov r2, r8 asrs r3, r2, #0x10 lsls r0, r3, #1 adds r1, r4, #0 adds r1, #0x74 adds r1, r1, r0 ldrh r0, [r1] cmp r0, #0 bne _0802923A movs r0, #0x28 strh r0, [r1] lsls r3, r3, #2 adds r2, r4, r3 adds r0, r4, #0 adds r0, #0xc4 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x84 strh r1, [r0] adds r0, r4, #0 adds r0, #0xc6 ldrh r0, [r0] adds r0, #0x10 adds r2, #0x86 strh r0, [r2] ldr r6, _0802929C @ =0x0200B0C0 ldr r0, [r6, #0x44] adds r3, r3, r0 adds r3, #0xb4 ldr r1, [r3] movs r0, #1 strh r0, [r1] _08029228: ldr r1, _08029294 @ =0x020314E0 ldr r0, [r1] mov r2, r8 asrs r1, r2, #0xf adds r0, #0x74 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0 beq _08029264 _0802923A: ldr r6, _08029294 @ =0x020314E0 ldr r0, [r6] mov r1, r8 asrs r3, r1, #0x10 lsls r1, r3, #1 adds r0, #0x74 adds r0, r0, r1 ldrh r1, [r0] subs r1, #1 strh r1, [r0] lsls r1, r1, #0x10 lsrs r2, r1, #0x10 cmp r2, #0 bne _08029264 ldr r6, _0802929C @ =0x0200B0C0 ldr r0, [r6, #0x44] lsls r1, r3, #2 adds r1, r1, r0 adds r1, #0xb4 ldr r0, [r1] strh r2, [r0] _08029264: movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _08029274 b _080290C6 _08029274: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029284: .4byte 0x086B263C _08029288: .4byte 0xFFFFFE00 _0802928C: .4byte 0x03005000 _08029290: .4byte 0x000001FF _08029294: .4byte 0x020314E0 _08029298: .4byte 0x000005A4 _0802929C: .4byte 0x0200B0C0 thumb_func_start sub_292A0 sub_292A0: @ 0x080292A0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08029328 @ =0x0200B0C0 ldr r1, [r0, #0x44] adds r1, #0x84 ldr r5, [r1] ldrh r1, [r5] mov r8, r0 cmp r1, #0 beq _080292F0 movs r0, #0 ldr r6, _0802932C @ =0x03005000 ldr r1, _08029330 @ =0xFFFFFE00 mov ip, r1 movs r7, #0xc8 _080292C0: lsls r2, r0, #0x10 asrs r2, r2, #0x10 lsls r4, r2, #3 adds r4, #8 adds r4, r5, r4 ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldrh r3, [r1, #2] mov r0, ip ands r0, r3 orrs r0, r7 strh r0, [r1, #2] ldrh r0, [r4] lsls r0, r0, #3 adds r0, r0, r6 movs r1, #0xb4 strb r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _080292C0 _080292F0: mov r1, r8 ldr r0, [r1, #0x44] adds r0, #0x84 ldr r1, [r0] movs r0, #0 strh r0, [r1] mov r4, r8 movs r3, #0 _08029300: lsls r1, r0, #0x10 asrs r1, r1, #0x10 ldr r2, [r4, #0x44] lsls r0, r1, #2 adds r0, r0, r2 adds r0, #0xb4 ldr r0, [r0] strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _08029300 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029328: .4byte 0x0200B0C0 _0802932C: .4byte 0x03005000 _08029330: .4byte 0xFFFFFE00 thumb_func_start sub_29334 sub_29334: @ 0x08029334 push {r4, r5, lr} ldr r0, _08029384 @ =0x020314E0 ldr r2, [r0] adds r1, r2, #0 adds r1, #0x68 movs r3, #0 ldrsh r1, [r1, r3] adds r4, r0, #0 cmp r1, #0x8a ble _080293A6 ldr r5, _08029388 @ =0x000006C5 adds r3, r2, r5 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 bne _08029398 ldr r0, _0802938C @ =0x00000625 adds r1, r2, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08029398 adds r5, #1 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #6 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r0, r1 bne _08029394 movs r0, #2 strb r0, [r3] ldr r1, [r4] ldr r0, _08029390 @ =0x000493E0 str r0, [r1, #0x3c] b _08029398 .align 2, 0 _08029384: .4byte 0x020314E0 _08029388: .4byte 0x000006C5 _0802938C: .4byte 0x00000625 _08029390: .4byte 0x000493E0 _08029394: movs r0, #1 strb r0, [r3] _08029398: ldr r0, [r4] ldr r2, _080293BC @ =0x00000625 adds r1, r0, r2 ldrb r1, [r1] ldr r3, _080293C0 @ =0x000006C6 adds r0, r0, r3 strb r1, [r0] _080293A6: ldr r0, [r4] ldr r5, _080293C4 @ =0x000006C5 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _080293C8 bl sub_25808 b _080293D0 .align 2, 0 _080293BC: .4byte 0x00000625 _080293C0: .4byte 0x000006C6 _080293C4: .4byte 0x000006C5 _080293C8: cmp r0, #1 bne _080293D0 bl sub_253E0 _080293D0: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_293D8 sub_293D8: @ 0x080293D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r1, _0802940C @ =0x086AD436 ldr r3, _08029410 @ =0x020314E0 ldr r2, [r3] ldr r0, _08029414 @ =0x000006CC adds r4, r2, r0 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _08029418 @ =0x000006CA adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _0802941C adds r0, r1, #1 strh r0, [r2] b _08029426 .align 2, 0 _0802940C: .4byte 0x086AD436 _08029410: .4byte 0x020314E0 _08029414: .4byte 0x000006CC _08029418: .4byte 0x000006CA _0802941C: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] _08029426: ldr r2, _080295E4 @ =0x020314E0 ldr r1, [r2] ldr r4, _080295E8 @ =0x000006CC adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08029456 ldr r2, _080295EC @ =0x000006CA adds r0, r1, r2 ldrh r0, [r0] cmp r0, #3 bls _08029456 subs r4, #8 adds r1, r1, r4 movs r0, #3 strb r0, [r1] ldr r0, _080295F0 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0x84 ldr r1, [r0] movs r0, #1 strh r0, [r1] _08029456: ldr r4, _080295E4 @ =0x020314E0 ldr r0, [r4] ldr r5, _080295E8 @ =0x000006CC adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0802948A ldr r1, _080295F4 @ =0x040000D4 ldr r0, _080295F8 @ =0x020306D0 str r0, [r1] ldr r0, _080295FC @ =0x050003A0 str r0, [r1, #4] ldr r0, _08029600 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08029604 @ =0x02030760 str r0, [r1] ldr r0, _08029608 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _0802960C @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_28C90 _0802948A: ldr r0, _080295F0 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r7, [r1, #0x48] ldrh r1, [r7] cmp r1, #0 bne _08029498 b _080295A0 _08029498: ldr r0, _080295E4 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0x94 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _080294C2 movs r0, #0xc8 strh r0, [r7, #4] _080294C2: movs r0, #0 ldr r4, _08029610 @ =0x086B55DC mov sl, r4 ldr r1, _08029614 @ =0x086AD436 mov sb, r1 ldr r2, _080295E4 @ =0x020314E0 mov r8, r2 mov ip, r5 _080294D2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #3 adds r6, #8 adds r6, r7, r6 ldrh r4, [r6] lsls r4, r4, #3 ldr r0, _08029618 @ =0x03005000 adds r4, r4, r0 lsls r3, r5, #1 adds r3, r3, r5 lsls r1, r3, #1 str r1, [sp] mov r2, r8 ldr r0, [r2] add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sb movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 add r2, sl ldrh r0, [r2] strh r0, [r4] adds r4, #2 adds r2, r3, #1 lsls r2, r2, #1 str r2, [sp] mov r2, r8 ldr r0, [r2] add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sb movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, [sp] adds r2, r1, r0 add r2, sl ldrh r0, [r2] strh r0, [r4] adds r3, #2 lsls r3, r3, #1 mov r2, r8 ldr r0, [r2] add r0, ip ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 add r0, sb movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 adds r3, r3, r0 add r3, sl ldrh r0, [r3] strh r0, [r4, #2] ldrh r2, [r6] lsls r2, r2, #3 ldr r4, _08029618 @ =0x03005000 adds r2, r2, r4 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r4, _0802961C @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08029620 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 ldr r0, _08029618 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _080294D2 _080295A0: ldr r4, _080295F0 @ =0x0200B0C0 ldr r0, [r4, #0x44] ldr r1, [r0, #0x48] movs r0, #1 strh r0, [r1] ldr r0, _080295E4 @ =0x020314E0 ldr r1, [r0] ldr r2, _080295E8 @ =0x000006CC adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 ble _080295D4 ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r0, [r4, #0x44] ldr r1, [r0, #0x48] movs r0, #0 strh r0, [r1] ldr r4, _080295E4 @ =0x020314E0 ldr r0, [r4] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _080295D4: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080295E4: .4byte 0x020314E0 _080295E8: .4byte 0x000006CC _080295EC: .4byte 0x000006CA _080295F0: .4byte 0x0200B0C0 _080295F4: .4byte 0x040000D4 _080295F8: .4byte 0x020306D0 _080295FC: .4byte 0x050003A0 _08029600: .4byte 0x80000010 _08029604: .4byte 0x02030760 _08029608: .4byte 0x06010CA0 _0802960C: .4byte 0x80000240 _08029610: .4byte 0x086B55DC _08029614: .4byte 0x086AD436 _08029618: .4byte 0x03005000 _0802961C: .4byte 0x000001FF _08029620: .4byte 0xFFFFFE00 thumb_func_start sub_29624 sub_29624: @ 0x08029624 push {r4, r5, lr} ldr r0, _08029658 @ =0x020314E0 ldr r1, [r0] ldr r2, _0802965C @ =0x000006CC adds r1, r1, r2 movs r2, #0 strb r2, [r1] adds r5, r0, #0 ldr r4, _08029660 @ =0x000006D3 movs r3, #0xd _08029638: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _08029638 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08029658: .4byte 0x020314E0 _0802965C: .4byte 0x000006CC _08029660: .4byte 0x000006D3 thumb_func_start sub_29664 sub_29664: @ 0x08029664 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r0, #0 ldr r7, _08029700 @ =0x020314E0 mov r8, r0 _08029670: ldr r1, [r7] lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #2 adds r1, r1, r6 movs r2, #0xb8 lsls r2, r2, #3 adds r0, r1, r2 mov r2, r8 strh r2, [r0] ldr r0, _08029704 @ =0x000005C2 adds r1, r1, r0 strh r2, [r1] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 movs r1, #0xc8 lsls r1, r1, #1 bl __umodsi3 movs r1, #0xc8 subs r1, r1, r0 movs r2, #0xbb lsls r2, r2, #3 adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029708 @ =0x00000226 bl __umodsi3 movs r1, #0x50 subs r1, r1, r0 ldr r0, _0802970C @ =0x000005DA adds r4, r4, r0 strh r1, [r4] bl sub_C00 ldr r4, [r7] ldr r1, _08029710 @ =0x000005B9 adds r4, r4, r1 adds r4, r4, r5 movs r1, #0xf bl __umodsi3 adds r0, #0xa strb r0, [r4] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _08029670 ldr r0, _08029700 @ =0x020314E0 ldr r0, [r0] ldr r2, _08029714 @ =0x00000606 adds r0, r0, r2 movs r1, #0 strh r1, [r0] ldr r0, _08029718 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x30] movs r0, #1 strh r0, [r1] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029700: .4byte 0x020314E0 _08029704: .4byte 0x000005C2 _08029708: .4byte 0x00000226 _0802970C: .4byte 0x000005DA _08029710: .4byte 0x000005B9 _08029714: .4byte 0x00000606 _08029718: .4byte 0x0200B0C0 thumb_func_start sub_2971C sub_2971C: @ 0x0802971C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _080298B8 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r1, [r1, #0x30] str r1, [sp] ldrh r1, [r1] cmp r1, #0 bne _08029738 b _080298A2 _08029738: movs r3, #0 _0802973A: ldr r0, _080298BC @ =0x020314E0 ldr r2, [r0] ldr r1, _080298C0 @ =0x00000606 adds r0, r2, r1 ldrh r1, [r0] lsrs r1, r1, #2 lsls r1, r1, #1 lsls r0, r3, #0x10 asrs r0, r0, #0x10 mov sb, r0 lsls r0, r0, #1 add r0, sb lsls r0, r0, #3 adds r1, r1, r0 ldr r3, _080298C4 @ =0x086AE1A4 adds r1, r1, r3 ldrh r1, [r1] mov sl, r1 mov r6, sb lsls r5, r6, #2 adds r3, r2, r5 ldr r0, _080298C8 @ =0x000005DA adds r4, r3, r0 ldr r1, _080298CC @ =0x000005B9 adds r2, r2, r1 add r2, sb movs r0, #0 ldrsb r0, [r2, r0] ldrh r2, [r4] adds r0, r0, r2 strh r0, [r4] ldr r6, _080298D0 @ =0x000005C2 adds r2, r3, r6 movs r0, #0 ldrsh r1, [r2, r0] ldr r0, _080298D4 @ =0x000036AF cmp r1, r0 bgt _0802979E subs r6, #2 adds r1, r3, r6 adds r6, #0x18 adds r0, r3, r6 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldrh r0, [r4] ldrh r6, [r2] adds r0, r0, r6 strh r0, [r2] _0802979E: ldr r0, _080298BC @ =0x020314E0 ldr r6, [r0] movs r1, #0xd9 lsls r1, r1, #3 adds r0, r6, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r0 movs r1, #3 bl __modsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #0x14 adds r0, r6, #0 adds r0, #0x58 ldrh r0, [r0] subs r0, #0x60 subs r4, r4, r0 adds r5, r6, r5 movs r2, #0xb8 lsls r2, r2, #3 adds r0, r5, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0x64 bl __divsi3 adds r4, r4, r0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 ldr r0, _080298D8 @ =0xFFFF0000 ands r7, r0 orrs r7, r4 mov r0, r8 movs r1, #3 bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #0x14 adds r6, #0x5a ldr r1, _080298DC @ =0xFFFFFED4 adds r0, r1, #0 ldrh r6, [r6] adds r0, r0, r6 subs r4, r4, r0 ldr r2, _080298D0 @ =0x000005C2 adds r5, r5, r2 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0x64 bl __divsi3 adds r4, r4, r0 lsls r4, r4, #0x10 ldr r0, _080298E0 @ =0x0000FFFF ands r7, r0 orrs r7, r4 asrs r4, r4, #0x10 cmp r4, #0xc7 ble _08029824 ands r7, r0 movs r0, #0xc8 lsls r0, r0, #0x10 orrs r7, r0 _08029824: mov r5, sb lsls r4, r5, #3 adds r4, #8 ldr r6, [sp] adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 ldr r0, _080298E4 @ =0x03005000 adds r2, r2, r0 mov r1, sl lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 ldr r3, _080298E8 @ =0x086B53B4 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r3, #0 adds r0, #2 adds r0, r1, r0 ldrh r0, [r0] strh r0, [r2] ldr r5, _080298EC @ =0x086B53B8 adds r1, r1, r5 ldrh r0, [r1] strh r0, [r2, #2] ldrh r3, [r4] lsls r3, r3, #3 ldr r6, _080298E4 @ =0x03005000 adds r3, r3, r6 ldrh r2, [r3, #2] lsls r1, r2, #0x17 lsrs r1, r1, #0x17 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r1, r0 ldr r5, _080298F0 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldr r6, _080298F4 @ =0xFFFFFE00 adds r0, r6, #0 ands r2, r0 orrs r2, r1 strh r2, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 ldr r0, _080298E4 @ =0x03005000 adds r1, r1, r0 asrs r0, r7, #0x10 ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] mov r0, sb adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 bgt _080298A2 b _0802973A _080298A2: ldr r3, _080298BC @ =0x020314E0 ldr r1, [r3] ldr r5, _080298C0 @ =0x00000606 adds r2, r1, r5 ldrh r0, [r2] cmp r0, #0x2f bhi _080298F8 adds r0, #1 strh r0, [r2] b _0802990C .align 2, 0 _080298B8: .4byte 0x0200B0C0 _080298BC: .4byte 0x020314E0 _080298C0: .4byte 0x00000606 _080298C4: .4byte 0x086AE1A4 _080298C8: .4byte 0x000005DA _080298CC: .4byte 0x000005B9 _080298D0: .4byte 0x000005C2 _080298D4: .4byte 0x000036AF _080298D8: .4byte 0xFFFF0000 _080298DC: .4byte 0xFFFFFED4 _080298E0: .4byte 0x0000FFFF _080298E4: .4byte 0x03005000 _080298E8: .4byte 0x086B53B4 _080298EC: .4byte 0x086B53B8 _080298F0: .4byte 0x000001FF _080298F4: .4byte 0xFFFFFE00 _080298F8: ldr r6, _0802991C @ =0x000006CA adds r1, r1, r6 movs r2, #0 movs r0, #0xe2 lsls r0, r0, #7 strh r0, [r1] ldr r1, _08029920 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r0, [r0, #0x30] strh r2, [r0] _0802990C: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802991C: .4byte 0x000006CA _08029920: .4byte 0x0200B0C0 thumb_func_start sub_29924 sub_29924: @ 0x08029924 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r0, #0 ldr r7, _08029A34 @ =0x020314E0 movs r1, #0x64 mov sb, r1 ldr r2, _08029A38 @ =0x086AE2F4 mov sl, r2 _0802993A: ldr r4, [r7] lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r6, r5, #2 adds r4, r4, r6 adds r0, r5, #0 movs r1, #3 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xc subs r0, #0x18 mov r1, sb muls r1, r0, r1 movs r2, #0xb8 lsls r2, r2, #3 adds r0, r4, r2 strh r1, [r0] adds r0, r5, #0 movs r1, #3 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xc subs r0, #0x1c mov r1, sb muls r1, r0, r1 adds r0, r1, #0 ldr r2, _08029A3C @ =0x000005C2 adds r4, r4, r2 strh r0, [r4] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 adds r1, r6, #0 add r1, sl mov r8, r1 movs r1, #0xc8 bl __umodsi3 subs r0, #0x3c mov r2, r8 ldrh r1, [r2] subs r1, r1, r0 movs r0, #0xbb lsls r0, r0, #3 adds r4, r4, r0 strh r1, [r4] bl sub_C00 ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029A40 @ =0x086AE2F6 adds r6, r6, r1 movs r1, #0xc8 bl __umodsi3 subs r0, #0x3c ldrh r1, [r6] subs r1, r1, r0 ldr r2, _08029A44 @ =0x000005DA adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r1, [r7] ldr r2, _08029A48 @ =0x000005B9 adds r1, r1, r2 adds r1, r1, r5 movs r2, #3 ands r0, r2 adds r0, #1 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #5 ble _0802993A ldr r3, _08029A34 @ =0x020314E0 ldr r1, [r3] movs r0, #0xb8 lsls r0, r0, #3 adds r2, r1, r0 movs r5, #0 ldr r0, _08029A4C @ =0x0000EA20 strh r0, [r2] ldr r0, _08029A3C @ =0x000005C2 adds r2, r1, r0 ldr r0, _08029A50 @ =0x0000E890 strh r0, [r2] ldr r2, _08029A48 @ =0x000005B9 adds r1, r1, r2 movs r4, #3 strb r4, [r1] ldr r1, [r3] movs r0, #0xba lsls r0, r0, #3 adds r2, r1, r0 ldr r0, _08029A54 @ =0x0000F060 strh r0, [r2] ldr r0, _08029A58 @ =0x000005D2 adds r2, r1, r0 ldr r0, _08029A5C @ =0x0000EED0 strh r0, [r2] ldr r2, _08029A60 @ =0x000005BD adds r1, r1, r2 strb r4, [r1] ldr r0, [r3] ldr r1, _08029A64 @ =0x00000606 adds r0, r0, r1 strh r5, [r0] ldr r0, _08029A68 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r1, [r0, #0x30] movs r0, #1 strh r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029A34: .4byte 0x020314E0 _08029A38: .4byte 0x086AE2F4 _08029A3C: .4byte 0x000005C2 _08029A40: .4byte 0x086AE2F6 _08029A44: .4byte 0x000005DA _08029A48: .4byte 0x000005B9 _08029A4C: .4byte 0x0000EA20 _08029A50: .4byte 0x0000E890 _08029A54: .4byte 0x0000F060 _08029A58: .4byte 0x000005D2 _08029A5C: .4byte 0x0000EED0 _08029A60: .4byte 0x000005BD _08029A64: .4byte 0x00000606 _08029A68: .4byte 0x0200B0C0 thumb_func_start sub_29A6C sub_29A6C: @ 0x08029A6C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0xc ldr r0, _08029D2C @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r0, [r0, #0x30] mov sb, r0 ldrh r0, [r0] cmp r0, #0 bne _08029A88 b _08029C52 _08029A88: movs r5, #0 ldr r0, _08029D30 @ =0x03005000 mov r8, r0 ldr r1, _08029D34 @ =0x086B4E3E mov sl, r1 _08029A92: ldr r2, _08029D38 @ =0x020314E0 ldr r6, [r2] ldr r0, _08029D3C @ =0x00000606 adds r4, r6, r0 ldrh r0, [r4] movs r1, #5 bl __udivsi3 lsls r3, r5, #0x10 asrs r5, r3, #0x10 lsls r1, r5, #1 add r1, sp mov ip, r1 lsls r0, r0, #0x10 asrs r0, r0, #0xf lsls r1, r5, #5 adds r0, r0, r1 ldr r1, _08029D40 @ =0x086AE234 adds r0, r0, r1 ldrh r0, [r0] mov r2, ip strh r0, [r2] ldrh r0, [r4] mov ip, r3 cmp r0, #4 bls _08029B22 lsls r2, r5, #2 adds r0, r6, r2 ldr r3, _08029D44 @ =0x000005DA adds r0, r0, r3 ldr r4, _08029D48 @ =0x000005B9 adds r1, r6, r4 adds r1, r1, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldrh r4, [r0] adds r1, r1, r4 strh r1, [r0] cmp r5, #4 bne _08029AFC movs r0, #0xbd lsls r0, r0, #3 adds r1, r6, r0 ldr r4, _08029D4C @ =0x000005BD adds r0, r6, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] _08029AFC: ldr r0, _08029D38 @ =0x020314E0 ldr r1, [r0] adds r1, r1, r2 movs r4, #0xb8 lsls r4, r4, #3 adds r2, r1, r4 adds r4, #0x18 adds r0, r1, r4 ldrh r0, [r0] ldrh r4, [r2] adds r0, r0, r4 strh r0, [r2] ldr r0, _08029D50 @ =0x000005C2 adds r2, r1, r0 adds r1, r1, r3 ldrh r0, [r1] ldrh r1, [r2] adds r0, r0, r1 strh r0, [r2] _08029B22: ldr r2, _08029D38 @ =0x020314E0 ldr r5, [r2] mov r4, ip asrs r6, r4, #0x10 lsls r4, r6, #2 adds r4, r5, r4 movs r1, #0xb8 lsls r1, r1, #3 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0x64 bl __divsi3 adds r0, #0x60 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08029D54 @ =0xFFFF0000 ands r7, r1 orrs r7, r0 ldr r0, _08029D50 @ =0x000005C2 adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0x64 bl __divsi3 movs r2, #0x98 lsls r2, r2, #1 adds r0, r0, r2 adds r5, #0x5a ldrh r1, [r5] subs r0, r0, r1 lsls r0, r0, #0x10 ldr r1, _08029D58 @ =0x0000FFFF ands r7, r1 orrs r7, r0 asrs r0, r0, #0x10 cmp r0, #0x9f ble _08029B82 ands r7, r1 movs r0, #0xa0 lsls r0, r0, #0x10 orrs r7, r0 _08029B82: lsls r4, r6, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 lsls r5, r6, #1 mov r0, sp adds r3, r0, r5 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 add r0, sl ldrh r0, [r0] strh r0, [r2] adds r2, #2 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 mov r1, sl adds r1, #2 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2] movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, _08029D5C @ =0x086B4E42 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #2] ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 ldrh r2, [r3, #2] lsls r1, r2, #0x17 lsrs r1, r1, #0x17 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r1, r0 ldr r0, _08029D60 @ =0x000001FF mov ip, r0 mov r0, ip ands r1, r0 ldr r0, _08029D64 @ =0xFFFFFE00 mov ip, r0 mov r0, ip ands r2, r0 orrs r2, r1 strh r2, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 asrs r0, r7, #0x10 ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 ldr r1, _08029D68 @ =0x086AE30C adds r0, r5, r1 movs r1, #0 ldrsh r2, [r0, r1] movs r0, #3 ands r2, r0 ldrb r0, [r3, #1] movs r1, #4 rsbs r1, r1, #0 mov ip, r1 mov r1, ip ands r0, r1 orrs r0, r2 strb r0, [r3, #1] ldrh r3, [r4] lsls r3, r3, #3 add r3, r8 ldr r2, _08029D6C @ =0x086AE318 adds r5, r5, r2 movs r4, #0 ldrsh r2, [r5, r4] movs r0, #7 ands r2, r0 lsls r2, r2, #1 ldrb r0, [r3, #3] movs r4, #0xf rsbs r4, r4, #0 adds r1, r4, #0 ands r0, r1 orrs r0, r2 strb r0, [r3, #3] adds r0, r6, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 bgt _08029C52 b _08029A92 _08029C52: ldr r4, _08029D38 @ =0x020314E0 ldr r0, [r4] ldr r6, _08029D3C @ =0x00000606 adds r0, r0, r6 ldrh r0, [r0] adds r1, r0, #0 muls r1, r0, r1 movs r0, #0xd0 muls r0, r1, r0 movs r5, #0xa2 lsls r5, r5, #3 adds r1, r5, #0 bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #4 bne _08029C84 lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08029C84: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #2 bl sub_7C0 movs r1, #0x80 mov r0, sp ldrh r0, [r0, #2] cmp r0, #4 bne _08029CA0 rsbs r0, r1, #0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _08029CA0: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #3 bl sub_7C0 ldr r0, [r4] adds r0, r0, r6 ldrh r0, [r0] adds r1, r0, #0 muls r1, r0, r1 adds r0, r1, #0 lsls r0, r0, #8 adds r1, r5, #0 bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 mov r0, sp movs r2, #6 ldrsh r0, [r0, r2] cmp r0, #4 bne _08029CD6 lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08029CD6: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #4 bl sub_7C0 ldr r0, [r4] adds r0, r0, r6 ldrh r0, [r0] adds r1, r0, #0 muls r1, r0, r1 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #6 adds r1, r5, #0 bl __divsi3 adds r0, #0x40 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 mov r0, sp movs r4, #8 ldrsh r0, [r0, r4] cmp r0, #4 bne _08029D0E lsls r0, r1, #0x10 rsbs r0, r0, #0 lsrs r1, r0, #0x10 _08029D0E: lsls r1, r1, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #5 bl sub_7C0 ldr r0, _08029D38 @ =0x020314E0 ldr r1, [r0] adds r2, r1, r6 ldrh r0, [r2] cmp r0, #0x2e bhi _08029D70 adds r0, #1 strh r0, [r2] b _08029D84 .align 2, 0 _08029D2C: .4byte 0x0200B0C0 _08029D30: .4byte 0x03005000 _08029D34: .4byte 0x086B4E3E _08029D38: .4byte 0x020314E0 _08029D3C: .4byte 0x00000606 _08029D40: .4byte 0x086AE234 _08029D44: .4byte 0x000005DA _08029D48: .4byte 0x000005B9 _08029D4C: .4byte 0x000005BD _08029D50: .4byte 0x000005C2 _08029D54: .4byte 0xFFFF0000 _08029D58: .4byte 0x0000FFFF _08029D5C: .4byte 0x086B4E42 _08029D60: .4byte 0x000001FF _08029D64: .4byte 0xFFFFFE00 _08029D68: .4byte 0x086AE30C _08029D6C: .4byte 0x086AE318 _08029D70: ldr r2, _08029D94 @ =0x000006CA adds r1, r1, r2 movs r2, #0 movs r0, #0xe2 lsls r0, r0, #7 strh r0, [r1] ldr r0, _08029D98 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r0, [r0, #0x30] strh r2, [r0] _08029D84: add sp, #0xc pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08029D94: .4byte 0x000006CA _08029D98: .4byte 0x0200B0C0 thumb_func_start sub_29D9C sub_29D9C: @ 0x08029D9C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r3, _08029E60 @ =0x0200B0C0 ldr r0, [r3, #0x44] ldr r0, [r0, #0x5c] movs r2, #0 movs r5, #0 movs r1, #1 strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x50] strh r1, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x54] strh r1, [r0] ldrh r0, [r3, #0x38] ldr r0, _08029E64 @ =0x00001C10 strh r0, [r3, #0x38] ldrh r0, [r3, #0x3a] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r3, #0x3a] ldr r4, _08029E68 @ =0x020314E0 ldr r0, [r4] movs r1, #0xdd lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r1, [r4] ldr r0, _08029E6C @ =0x000006F2 adds r2, r1, r0 movs r0, #8 strh r0, [r2] ldr r2, _08029E70 @ =0x000006F4 adds r0, r1, r2 strh r5, [r0] subs r2, #0x14 adds r0, r1, r2 strh r5, [r0] ldr r0, _08029E74 @ =0x000006E9 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] mov r8, r3 adds r7, r4, #0 cmp r0, #0x19 bne _08029E02 movs r0, #0xa strb r0, [r1] _08029E02: movs r3, #0 ldr r1, _08029E78 @ =0x086AD180 mov sb, r1 _08029E08: ldr r5, [r7] lsls r3, r3, #0x10 asrs r2, r3, #0xf movs r1, #0xdf lsls r1, r1, #3 adds r0, r5, r1 adds r4, r0, r2 subs r1, #0xf adds r0, r5, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 adds r2, r2, r0 add r2, sb ldrh r0, [r2] strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r6, r3, #0 cmp r0, #0x29 beq _08029E38 b _08029F2E _08029E38: mov r2, r8 ldrb r0, [r2, #4] cmp r0, #0 bne _08029EBC ldr r1, _08029E7C @ =0x00000283 adds r0, r5, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bls _08029E56 b _08029F9E _08029E56: lsls r0, r0, #2 ldr r1, _08029E80 @ =_08029E84 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029E60: .4byte 0x0200B0C0 _08029E64: .4byte 0x00001C10 _08029E68: .4byte 0x020314E0 _08029E6C: .4byte 0x000006F2 _08029E70: .4byte 0x000006F4 _08029E74: .4byte 0x000006E9 _08029E78: .4byte 0x086AD180 _08029E7C: .4byte 0x00000283 _08029E80: .4byte _08029E84 _08029E84: @ jump table .4byte _08029E98 @ case 0 .4byte _08029EAA @ case 1 .4byte _08029E98 @ case 2 .4byte _08029EAA @ case 3 .4byte _08029F1C @ case 4 _08029E98: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2a strh r1, [r0] b _08029F9E _08029EAA: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2c strh r1, [r0] b _08029F9E _08029EBC: ldr r1, _08029EDC @ =0x00000283 adds r0, r5, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _08029F9E lsls r0, r0, #2 ldr r1, _08029EE0 @ =_08029EE4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08029EDC: .4byte 0x00000283 _08029EE0: .4byte _08029EE4 _08029EE4: @ jump table .4byte _08029EF8 @ case 0 .4byte _08029F0A @ case 1 .4byte _08029EF8 @ case 2 .4byte _08029F0A @ case 3 .4byte _08029F1C @ case 4 _08029EF8: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x29 strh r1, [r0] b _08029F9E _08029F0A: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2b strh r1, [r0] b _08029F9E _08029F1C: ldr r0, [r7] asrs r1, r6, #0xf movs r2, #0xdf lsls r2, r2, #3 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0x2d strh r1, [r0] b _08029F9E _08029F2E: cmp r0, #0xa bne _08029F4C ldr r0, _08029F44 @ =0x000005F6 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08029F48 adds r0, #0xa b _08029F9C .align 2, 0 _08029F44: .4byte 0x000005F6 _08029F48: movs r0, #0xc b _08029F9C _08029F4C: cmp r0, #3 bne _08029F88 movs r1, #0xf1 lsls r1, r1, #1 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08029F9E mov r2, r8 ldr r0, [r2, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 beq _08029F84 ldr r0, _08029F7C @ =0x000005F6 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08029F80 adds r0, #0xa b _08029F9C .align 2, 0 _08029F7C: .4byte 0x000005F6 _08029F80: movs r0, #0xc b _08029F9C _08029F84: strh r1, [r4] b _08029F9E _08029F88: cmp r0, #9 bne _08029F9E ldr r1, _0802A040 @ =0x00000281 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08029F9E movs r0, #8 _08029F9C: strh r0, [r4] _08029F9E: movs r2, #0x80 lsls r2, r2, #9 adds r0, r6, r2 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 bgt _08029FAE b _08029E08 _08029FAE: ldr r2, [r7] ldr r0, _0802A044 @ =0x00000704 adds r1, r2, r0 movs r0, #0x15 strh r0, [r1] ldr r1, _0802A048 @ =0x000006E9 adds r2, r2, r1 ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x18 bgt _08029FCA adds r0, r1, #1 strb r0, [r2] _08029FCA: ldr r0, [r7] ldr r3, _0802A04C @ =0x000006EA adds r0, r0, r3 movs r1, #5 strb r1, [r0] ldr r2, [r7] adds r0, r2, #0 adds r0, #0x72 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #0xf0 ands r0, r1 cmp r0, #0 bne _08029FFE adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xb ble _08029FFE adds r1, r2, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08029FFE: ldr r0, [r7] ldr r2, _0802A050 @ =0x000006EB adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r2, #0xd adds r1, r0, r2 ldrh r1, [r1] subs r2, #0xc adds r0, r0, r2 strb r1, [r0] ldr r0, [r7] adds r2, #0xe adds r1, r0, r2 ldrh r1, [r1] subs r2, #0xd adds r0, r0, r2 strb r1, [r0] movs r0, #2 movs r1, #0 bl sub_1C7F4 movs r0, #2 movs r1, #1 bl sub_1C7F4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802A040: .4byte 0x00000281 _0802A044: .4byte 0x00000704 _0802A048: .4byte 0x000006E9 _0802A04C: .4byte 0x000006EA _0802A050: .4byte 0x000006EB thumb_func_start sub_2A054 sub_2A054: @ 0x0802A054 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0802A128 @ =0x0200B0C0 ldrb r3, [r0, #4] mov r8, r0 ldr r0, _0802A12C @ =0x020314E0 mov sb, r0 cmp r3, #1 bne _0802A0E4 ldr r2, [r0] movs r4, #0xdd lsls r4, r4, #3 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802A07E b _0802A20C _0802A07E: ldrb r0, [r2, #5] cmp r0, #0 bne _0802A090 mov r5, r8 ldrh r1, [r5, #0x18] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _0802A0E4 _0802A090: movs r1, #0xdf lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802A0E4 movs r5, #0xde lsls r5, r5, #2 adds r1, r2, r5 movs r0, #2 strb r0, [r1] mov r0, sb ldr r2, [r0] movs r1, #0xdc lsls r1, r1, #3 adds r0, r2, r1 movs r5, #0 ldrsh r0, [r0, r5] cmp r0, #0x10 bgt _0802A0C8 adds r1, #0xc adds r0, r2, r1 ldrb r1, [r0] ldr r5, _0802A130 @ =0x000006ED adds r0, r2, r5 strb r1, [r0] _0802A0C8: mov r1, sb ldr r0, [r1] adds r0, r0, r4 strb r3, [r0] ldr r1, [r1] ldr r3, _0802A134 @ =0x000006F2 adds r2, r1, r3 movs r0, #0x28 strh r0, [r2] movs r5, #0xde lsls r5, r5, #3 adds r1, r1, r5 movs r0, #0x27 strh r0, [r1] _0802A0E4: mov r0, sb ldr r2, [r0] movs r1, #0xdd lsls r1, r1, #3 adds r0, r2, r1 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _0802A0F8 b _0802A20C _0802A0F8: ldr r3, _0802A138 @ =0x000006C4 adds r0, r2, r3 movs r5, #1 strb r5, [r0] mov r0, sb ldr r2, [r0] adds r3, #0x2c adds r4, r2, r3 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r7, _0802A13C @ =0x000006F4 adds r3, r2, r7 ldrh r0, [r3] cmp r0, #0 beq _0802A170 subs r0, #1 strh r0, [r3] lsls r0, r0, #0x10 cmp r0, #0 bne _0802A140 adds r0, r2, r1 strb r5, [r0] b _0802A1CA .align 2, 0 _0802A128: .4byte 0x0200B0C0 _0802A12C: .4byte 0x020314E0 _0802A130: .4byte 0x000006ED _0802A134: .4byte 0x000006F2 _0802A138: .4byte 0x000006C4 _0802A13C: .4byte 0x000006F4 _0802A140: ldr r0, _0802A168 @ =0x000006F2 adds r5, r2, r0 ldrh r0, [r4] ldrh r1, [r5] cmp r0, r1 bne _0802A1CA ldrh r1, [r3] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #1 ldr r3, _0802A16C @ =0x000006F6 adds r1, r2, r3 ldrh r1, [r1] bl __divsi3 movs r1, #0x28 subs r1, r1, r0 strh r1, [r5] strh r6, [r4] b _0802A1CA .align 2, 0 _0802A168: .4byte 0x000006F2 _0802A16C: .4byte 0x000006F6 _0802A170: ldrb r0, [r2, #5] cmp r0, #0 bne _0802A182 mov r0, r8 ldrh r1, [r0, #0x18] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0802A1CA _0802A182: bl sub_C00 mov r1, sb ldr r4, [r1] movs r1, #0xc8 bl __umodsi3 adds r0, #0x64 adds r2, r4, r7 strh r0, [r2] ldr r0, _0802A1F8 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bne _0802A1BA movs r3, #0xde lsls r3, r3, #2 adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #1 bne _0802A1BA movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r2] movs r5, #0xdf lsls r5, r5, #2 adds r0, r4, r5 strb r1, [r0] _0802A1BA: ldr r0, _0802A1FC @ =0x020314E0 ldr r0, [r0] ldr r2, _0802A200 @ =0x000006F4 adds r1, r0, r2 ldrh r1, [r1] ldr r3, _0802A204 @ =0x000006F6 adds r0, r0, r3 strh r1, [r0] _0802A1CA: ldr r0, _0802A1FC @ =0x020314E0 ldr r5, [r0] movs r0, #0xde lsls r0, r0, #3 adds r4, r5, r0 ldr r1, _0802A208 @ =0x000006F2 adds r6, r5, r1 ldrh r0, [r4] ldrh r1, [r6] bl __umodsi3 strh r0, [r4] ldrh r0, [r4] lsls r0, r0, #5 ldrh r1, [r6] bl __divsi3 movs r2, #0xdc lsls r2, r2, #3 adds r5, r5, r2 strh r0, [r5] b _0802A27C .align 2, 0 _0802A1F8: .4byte 0x0200B0C0 _0802A1FC: .4byte 0x020314E0 _0802A200: .4byte 0x000006F4 _0802A204: .4byte 0x000006F6 _0802A208: .4byte 0x000006F2 _0802A20C: ldr r7, _0802A2DC @ =0x020314E0 ldr r6, [r7] movs r3, #0xde lsls r3, r3, #3 adds r4, r6, r3 ldrh r0, [r4] adds r0, #1 strh r0, [r4] ldr r0, _0802A2E0 @ =0x000006F2 adds r5, r6, r0 ldrh r0, [r4] ldrh r1, [r5] bl __umodsi3 strh r0, [r4] ldrh r0, [r4] lsls r0, r0, #5 ldrh r1, [r5] bl __divsi3 movs r2, #0xdc lsls r2, r2, #3 adds r1, r6, r2 strh r0, [r1] ldrh r4, [r4] cmp r4, #0 bne _0802A2AC movs r0, #0x8c strh r0, [r6, #0x28] mov r3, r8 ldr r0, [r3, #0x44] ldr r0, [r0, #0x5c] strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x50] strh r4, [r0] ldr r0, [r3, #0x44] ldr r0, [r0, #0x54] strh r4, [r0] strh r4, [r1] ldr r5, _0802A2E4 @ =0x000006C4 adds r1, r6, r5 movs r0, #0 strb r0, [r1] ldr r0, _0802A2E8 @ =0x02032EE0 bl m4aMPlayStop ldr r0, [r7] ldr r1, _0802A2EC @ =0x000006DD adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r7] ldr r2, _0802A2F0 @ =0x000006DE adds r0, r0, r2 strh r4, [r0] _0802A27C: ldr r5, _0802A2DC @ =0x020314E0 ldr r2, [r5] movs r3, #0xde lsls r3, r3, #3 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _0802A2AC ldr r1, _0802A2F4 @ =0x000006ED adds r0, r2, r1 ldrb r1, [r0] ldr r4, _0802A2F8 @ =0x000006EC adds r0, r2, r4 strb r1, [r0] movs r0, #2 movs r1, #0 bl sub_1C7F4 ldr r0, [r5] adds r4, r0, r4 ldrb r1, [r4] ldr r2, _0802A2FC @ =0x000006DC adds r0, r0, r2 strb r1, [r0] _0802A2AC: ldr r0, _0802A2DC @ =0x020314E0 ldr r3, [r0] movs r5, #0xde lsls r5, r5, #3 adds r1, r3, r5 ldrh r1, [r1] mov sb, r0 cmp r1, #1 bne _0802A33A ldr r0, _0802A300 @ =0x000006EB adds r2, r3, r0 ldr r1, _0802A304 @ =0x000006EA adds r0, r3, r1 ldrb r3, [r2] movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _0802A308 adds r0, r3, #1 b _0802A30A .align 2, 0 _0802A2DC: .4byte 0x020314E0 _0802A2E0: .4byte 0x000006F2 _0802A2E4: .4byte 0x000006C4 _0802A2E8: .4byte 0x02032EE0 _0802A2EC: .4byte 0x000006DD _0802A2F0: .4byte 0x000006DE _0802A2F4: .4byte 0x000006ED _0802A2F8: .4byte 0x000006EC _0802A2FC: .4byte 0x000006DC _0802A300: .4byte 0x000006EB _0802A304: .4byte 0x000006EA _0802A308: movs r0, #0 _0802A30A: strb r0, [r2] mov r3, sb ldr r2, [r3] ldr r5, _0802A348 @ =0x000006EB adds r0, r2, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #1 movs r3, #0xdf lsls r3, r3, #3 adds r0, r2, r3 adds r0, r0, r1 ldrh r0, [r0] adds r5, #2 adds r2, r2, r5 strb r0, [r2] movs r0, #2 movs r1, #1 bl sub_1C7F4 ldr r0, _0802A34C @ =0x02032F20 ldr r1, _0802A350 @ =0x0869F45C bl MPlayStart _0802A33A: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802A348: .4byte 0x000006EB _0802A34C: .4byte 0x02032F20 _0802A350: .4byte 0x0869F45C thumb_func_start sub_2A354 sub_2A354: @ 0x0802A354 push {r4, r5, r6, r7, lr} ldr r4, _0802A3C4 @ =0x020314E0 ldr r0, [r4] ldr r5, _0802A3C8 @ =0x000006DE adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0xb3 bhi _0802A3A6 cmp r0, #4 bne _0802A36E movs r0, #0x14 bl m4aSongNumStart _0802A36E: ldr r1, [r4] ldr r2, _0802A3CC @ =0x000006DC adds r0, r1, r2 ldrb r0, [r0] cmp r0, #3 bne _0802A388 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0x78 bne _0802A388 movs r0, #0xb2 bl m4aSongNumStart _0802A388: ldr r0, _0802A3C4 @ =0x020314E0 ldr r1, [r0] ldr r3, _0802A3C8 @ =0x000006DE adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x4f bhi _0802A3A6 movs r0, #8 movs r1, #0 bl sub_1C7F4 _0802A3A6: ldr r1, _0802A3C4 @ =0x020314E0 ldr r0, [r1] ldr r4, _0802A3CC @ =0x000006DC adds r0, r0, r4 ldrb r0, [r0] adds r5, r1, #0 cmp r0, #0x2d bls _0802A3B8 b _0802AAD2 _0802A3B8: lsls r0, r0, #2 ldr r1, _0802A3D0 @ =_0802A3D4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802A3C4: .4byte 0x020314E0 _0802A3C8: .4byte 0x000006DE _0802A3CC: .4byte 0x000006DC _0802A3D0: .4byte _0802A3D4 _0802A3D4: @ jump table .4byte _0802A48C @ case 0 .4byte _0802A48C @ case 1 .4byte _0802A48C @ case 2 .4byte _0802A4B0 @ case 3 .4byte _0802A648 @ case 4 .4byte _0802A668 @ case 5 .4byte _0802A690 @ case 6 .4byte _0802A718 @ case 7 .4byte _0802A778 @ case 8 .4byte _0802A798 @ case 9 .4byte _0802A830 @ case 10 .4byte _0802A830 @ case 11 .4byte _0802A830 @ case 12 .4byte _0802A864 @ case 13 .4byte _0802AAD2 @ case 14 .4byte _0802AAD2 @ case 15 .4byte _0802AAD2 @ case 16 .4byte _0802A8CC @ case 17 .4byte _0802A8CC @ case 18 .4byte _0802A8CC @ case 19 .4byte _0802A924 @ case 20 .4byte _0802A940 @ case 21 .4byte _0802A964 @ case 22 .4byte _0802A9A8 @ case 23 .4byte _0802A9E0 @ case 24 .4byte _0802A9E0 @ case 25 .4byte _0802A9E0 @ case 26 .4byte _0802A9E0 @ case 27 .4byte _0802A9E0 @ case 28 .4byte _0802A9E0 @ case 29 .4byte _0802A9E0 @ case 30 .4byte _0802A9E0 @ case 31 .4byte _0802A9E0 @ case 32 .4byte _0802AA24 @ case 33 .4byte _0802AA44 @ case 34 .4byte _0802AA64 @ case 35 .4byte _0802AA84 @ case 36 .4byte _0802AA84 @ case 37 .4byte _0802AA84 @ case 38 .4byte _0802AA84 @ case 39 .4byte _0802AA84 @ case 40 .4byte _0802AAC0 @ case 41 .4byte _0802AAC0 @ case 42 .4byte _0802AAC0 @ case 43 .4byte _0802AAC0 @ case 44 .4byte _0802AAC0 @ case 45 _0802A48C: ldr r2, [r5] ldr r1, _0802A4A8 @ =0x000006DC adds r0, r2, r1 ldrb r1, [r0] adds r1, #1 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r1 lsls r0, r0, #3 ldr r3, _0802A4AC @ =0x00000724 adds r2, r2, r3 strh r0, [r2] b _0802AAD2 .align 2, 0 _0802A4A8: .4byte 0x000006DC _0802A4AC: .4byte 0x00000724 _0802A4B0: ldr r4, [r5] adds r0, r4, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0802A578 ldr r2, _0802A560 @ =0x000006DE adds r0, r4, r2 ldrh r0, [r0] cmp r0, #0x7c bls _0802A4E2 movs r0, #0xd7 lsls r0, r0, #1 adds r1, r4, r0 ldrb r0, [r1] cmp r0, #0x63 bhi _0802A4E2 adds r0, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r2 movs r1, #0x7c strh r1, [r0] _0802A4E2: ldr r3, [r5] ldr r1, _0802A560 @ =0x000006DE adds r0, r3, r1 ldrh r0, [r0] cmp r0, #4 beq _0802A4F0 b _0802AAD2 _0802A4F0: movs r2, #0xe3 lsls r2, r2, #1 adds r0, r3, r2 movs r2, #0 movs r1, #0xa8 strh r1, [r0] movs r4, #0xe4 lsls r4, r4, #1 adds r0, r3, r4 strh r1, [r0] movs r1, #0xe6 lsls r1, r1, #1 adds r0, r3, r1 movs r1, #0xd strh r1, [r0] adds r4, #2 adds r0, r3, r4 strh r1, [r0] movs r1, #0xe8 lsls r1, r1, #1 adds r0, r3, r1 strh r2, [r0] adds r4, #0xc adds r1, r3, r4 movs r0, #0x78 strh r0, [r1] movs r0, #0xee lsls r0, r0, #1 adds r1, r3, r0 movs r0, #0x3c strh r0, [r1] ldr r1, _0802A564 @ =0x040000D4 ldr r0, _0802A568 @ =0x084C156C str r0, [r1] ldr r0, _0802A56C @ =0x06010600 str r0, [r1, #4] ldr r0, _0802A570 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5] movs r3, #0xf1 lsls r3, r3, #1 adds r1, r0, r3 movs r0, #2 strb r0, [r1] ldr r0, _0802A574 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r2, [r0] ldr r0, [r5] subs r4, #0x16 adds r0, r0, r4 movs r1, #1 strh r1, [r0] b _0802AAD2 .align 2, 0 _0802A560: .4byte 0x000006DE _0802A564: .4byte 0x040000D4 _0802A568: .4byte 0x084C156C _0802A56C: .4byte 0x06010600 _0802A570: .4byte 0x800000C0 _0802A574: .4byte 0x0200B0C0 _0802A578: ldr r7, _0802A640 @ =0x000006DE adds r0, r4, r7 ldrh r6, [r0] cmp r6, #0x78 bne _0802A61E ldr r2, _0802A644 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 movs r3, #0 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r3, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0xfa strh r0, [r1] subs r1, #4 adds r0, #0x16 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe6 strh r3, [r0] adds r1, #6 movs r0, #2 strh r0, [r1] adds r0, r4, #0 adds r0, #0xf2 strb r2, [r0] ldr r0, [r5] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0xfb strb r2, [r0] ldr r0, [r5] movs r4, #0xdf lsls r4, r4, #1 adds r0, r0, r4 strb r1, [r0] ldr r4, [r5] movs r0, #0xe0 lsls r0, r0, #1 adds r1, r4, r0 movs r0, #0xc8 lsls r0, r0, #2 strh r0, [r1] movs r1, #0xf1 lsls r1, r1, #1 adds r0, r4, r1 strb r2, [r0] ldr r2, [r5] movs r4, #0xe3 lsls r4, r4, #1 adds r0, r2, r4 movs r1, #0xa8 strh r1, [r0] adds r4, #2 adds r0, r2, r4 strh r1, [r0] movs r1, #0xe6 lsls r1, r1, #1 adds r0, r2, r1 movs r1, #0xd strh r1, [r0] adds r4, #2 adds r0, r2, r4 strh r1, [r0] movs r1, #0xe8 lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] movs r3, #0xeb lsls r3, r3, #1 adds r0, r2, r3 strh r6, [r0] adds r4, #0x12 adds r1, r2, r4 movs r0, #0x3c strh r0, [r1] _0802A61E: ldr r1, [r5] movs r2, #0xe0 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _0802A62E b _0802AAD2 _0802A62E: adds r1, r1, r7 ldrh r0, [r1] cmp r0, #0xaf bhi _0802A638 b _0802AAD2 _0802A638: movs r0, #0xb0 strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A640: .4byte 0x000006DE _0802A644: .4byte 0x0200B0C0 _0802A648: ldr r1, [r5] ldr r3, _0802A660 @ =0x000006DE adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x82 beq _0802A656 b _0802AAD2 _0802A656: ldr r4, _0802A664 @ =0x00000286 adds r1, r1, r4 movs r0, #0x5a strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A660: .4byte 0x000006DE _0802A664: .4byte 0x00000286 _0802A668: ldr r4, [r5] ldr r0, _0802A688 @ =0x000006DE adds r1, r4, r0 ldrh r0, [r1] cmp r0, #0x5f beq _0802A676 b _0802AAD2 _0802A676: movs r0, #0xc strh r0, [r1] ldr r0, _0802A68C @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 adds r0, #0x21 b _0802A744 .align 2, 0 _0802A688: .4byte 0x000006DE _0802A68C: .4byte 0x0200B0C0 _0802A690: ldr r4, [r5] ldr r3, _0802A6BC @ =0x000006DE adds r1, r4, r3 ldrh r0, [r1] cmp r0, #0x5f beq _0802A69E b _0802AAD2 _0802A69E: movs r0, #0xc strh r0, [r1] ldr r0, _0802A6C0 @ =0x000006E9 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0802A6C8 ldr r0, _0802A6C4 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 adds r0, #0x18 b _0802A744 .align 2, 0 _0802A6BC: .4byte 0x000006DE _0802A6C0: .4byte 0x000006E9 _0802A6C4: .4byte 0x0200B0C0 _0802A6C8: cmp r0, #0xa bgt _0802A6E0 ldr r0, _0802A6DC @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #5 bl __umodsi3 adds r0, #0x18 b _0802A768 .align 2, 0 _0802A6DC: .4byte 0x0200B0C0 _0802A6E0: movs r0, #0 ldrsb r0, [r1, r0] movs r1, #5 bl __modsi3 lsls r0, r0, #0x18 cmp r0, #0 bne _0802A704 ldr r0, _0802A700 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #5 bl __umodsi3 adds r0, #0x1c b _0802A744 .align 2, 0 _0802A700: .4byte 0x0200B0C0 _0802A704: ldr r0, _0802A714 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #7 bl __umodsi3 adds r0, #0x18 b _0802A768 .align 2, 0 _0802A714: .4byte 0x0200B0C0 _0802A718: ldr r4, [r5] ldr r0, _0802A74C @ =0x000006DE adds r1, r4, r0 ldrh r0, [r1] cmp r0, #0x5f beq _0802A726 b _0802AAD2 _0802A726: movs r0, #0xc strh r0, [r1] ldr r1, _0802A750 @ =0x000006E9 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _0802A75C ldr r0, _0802A754 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #3 bl __umodsi3 adds r0, #0x24 _0802A744: ldr r2, _0802A758 @ =0x000006DC adds r1, r4, r2 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802A74C: .4byte 0x000006DE _0802A750: .4byte 0x000006E9 _0802A754: .4byte 0x0200B0C0 _0802A758: .4byte 0x000006DC _0802A75C: ldr r0, _0802A770 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #5 bl __umodsi3 adds r0, #0x24 _0802A768: ldr r3, _0802A774 @ =0x000006DC adds r1, r4, r3 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802A770: .4byte 0x0200B0C0 _0802A774: .4byte 0x000006DC _0802A778: ldr r0, [r5] ldr r4, _0802A794 @ =0x000006DE adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x96 beq _0802A786 b _0802AAD2 _0802A786: movs r0, #4 bl sub_19B64 ldr r1, [r5] movs r0, #0x64 strh r0, [r1, #0x28] b _0802AAD2 .align 2, 0 _0802A794: .4byte 0x000006DE _0802A798: ldr r1, [r5] ldr r2, _0802A818 @ =0x00000281 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0802A7AA b _0802AAD2 _0802A7AA: ldr r4, _0802A81C @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x95 bne _0802A7C6 movs r3, #0xdd lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0xb4 strh r0, [r2] ldr r0, _0802A820 @ =0x000006C4 adds r1, r1, r0 movs r0, #3 strb r0, [r1] _0802A7C6: ldr r2, [r5] adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0x96 bne _0802A7F2 movs r0, #0x95 strh r0, [r1] ldr r3, _0802A824 @ =0x000001A5 adds r1, r2, r3 movs r0, #1 strb r0, [r1] bl sub_1B140 ldr r0, [r5] ldr r1, _0802A828 @ =0x0000036A adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r2, _0802A82C @ =0x0000036B adds r0, r0, r2 strb r1, [r0] _0802A7F2: ldr r1, [r5] adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0xaa beq _0802A7FE b _0802AAD2 _0802A7FE: movs r3, #0xbc lsls r3, r3, #2 adds r0, r1, r3 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r4, _0802A824 @ =0x000001A5 adds r0, r0, r4 strb r1, [r0] movs r0, #6 bl sub_19B64 b _0802AAD2 .align 2, 0 _0802A818: .4byte 0x00000281 _0802A81C: .4byte 0x000006DE _0802A820: .4byte 0x000006C4 _0802A824: .4byte 0x000001A5 _0802A828: .4byte 0x0000036A _0802A82C: .4byte 0x0000036B _0802A830: ldr r1, [r5] ldr r2, _0802A85C @ =0x000006DE adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x82 beq _0802A83E b _0802AAD2 _0802A83E: ldr r4, _0802A860 @ =0x000005F6 adds r1, r1, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _0802A850 adds r0, r2, #1 strb r0, [r1] _0802A850: ldr r0, [r5] movs r3, #0xbf lsls r3, r3, #3 adds r0, r0, r3 b _0802A882 .align 2, 0 _0802A85C: .4byte 0x000006DE _0802A860: .4byte 0x000005F6 _0802A864: ldr r1, [r5] ldr r4, _0802A8B0 @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x82 beq _0802A872 b _0802AAD2 _0802A872: subs r4, #0xe8 adds r1, r1, r4 movs r0, #3 strb r0, [r1] ldr r0, [r5] movs r1, #0xbf lsls r1, r1, #3 adds r0, r0, r1 _0802A882: movs r1, #0xe1 lsls r1, r1, #4 strh r1, [r0] ldr r0, _0802A8B4 @ =0x02032F20 ldr r1, _0802A8B8 @ =0x0869F664 bl MPlayStart ldr r2, _0802A8BC @ =0x040000D4 ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802A8C0 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802A8C4 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802A8C8 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] b _0802AAD2 .align 2, 0 _0802A8B0: .4byte 0x000006DE _0802A8B4: .4byte 0x02032F20 _0802A8B8: .4byte 0x0869F664 _0802A8BC: .4byte 0x040000D4 _0802A8C0: .4byte 0x08137E14 _0802A8C4: .4byte 0x05000220 _0802A8C8: .4byte 0x80000010 _0802A8CC: ldr r1, [r5] ldr r4, _0802A918 @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x82 bne _0802A906 ldr r2, _0802A91C @ =0x0000072B adds r1, r1, r2 movs r3, #0 movs r0, #1 strb r0, [r1] ldr r2, [r5] ldr r1, _0802A920 @ =0x000006DC adds r0, r2, r1 ldrb r1, [r0] subs r1, #0x11 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0xa movs r1, #0xca lsls r1, r1, #1 adds r2, r2, r1 strb r0, [r2] ldr r0, [r5] movs r2, #0xcb lsls r2, r2, #1 adds r0, r0, r2 strh r3, [r0] _0802A906: ldr r0, [r5] adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0x8c beq _0802A912 b _0802AAD2 _0802A912: movs r0, #0x8b strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A918: .4byte 0x000006DE _0802A91C: .4byte 0x0000072B _0802A920: .4byte 0x000006DC _0802A924: ldr r1, [r5] ldr r3, _0802A93C @ =0x000006DE adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x82 beq _0802A932 b _0802AAD2 _0802A932: adds r1, #0x6c movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] b _0802AAD2 .align 2, 0 _0802A93C: .4byte 0x000006DE _0802A940: ldr r1, [r5] ldr r4, _0802A960 @ =0x000006DE adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0x96 beq _0802A94E b _0802AAD2 _0802A94E: movs r0, #0x64 strh r0, [r1, #0x28] adds r1, #0x72 movs r0, #0xf strb r0, [r1] movs r0, #8 bl sub_19B64 b _0802AAD2 .align 2, 0 _0802A960: .4byte 0x000006DE _0802A964: ldr r1, [r5] ldr r2, _0802A9A0 @ =0x000006DE adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x96 beq _0802A972 b _0802AAD2 _0802A972: movs r3, #0xa9 lsls r3, r3, #2 adds r0, r1, r3 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 beq _0802A982 b _0802AAD2 _0802A982: movs r4, #0xba lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] ldr r2, _0802A9A4 @ =0x0000016F adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r5] movs r3, #0xb1 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] b _0802AAD2 .align 2, 0 _0802A9A0: .4byte 0x000006DE _0802A9A4: .4byte 0x0000016F _0802A9A8: ldr r2, [r5] ldr r4, _0802A9D8 @ =0x000006DE adds r0, r2, r4 ldrh r0, [r0] cmp r0, #0x96 beq _0802A9B6 b _0802AAD2 _0802A9B6: movs r0, #0xc2 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x64 strh r0, [r1] movs r3, #0xc3 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r4, _0802A9DC @ =0x00000306 adds r1, r2, r4 movs r0, #1 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802A9D8: .4byte 0x000006DE _0802A9DC: .4byte 0x00000306 _0802A9E0: ldr r1, [r5] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0802A9F0 ldr r0, _0802AA1C @ =0x000006DE adds r1, r1, r0 movs r0, #0x51 strh r0, [r1] _0802A9F0: ldr r1, [r5] ldr r2, _0802AA1C @ =0x000006DE adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #1 strb r0, [r1, #0x1c] ldr r3, [r5] ldr r4, _0802AA20 @ =0x000006DC adds r0, r3, r4 ldrb r2, [r0] subs r2, #0x17 lsls r1, r2, #5 subs r1, r1, r2 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 lsls r0, r0, #6 str r0, [r3, #0x3c] b _0802AAD2 .align 2, 0 _0802AA1C: .4byte 0x000006DE _0802AA20: .4byte 0x000006DC _0802AA24: ldr r0, [r5] ldr r1, _0802AA40 @ =0x000006DE adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #0x91 bl m4aSongNumStart ldr r1, [r5] movs r0, #0x64 str r0, [r1, #0x3c] b _0802AAD2 .align 2, 0 _0802AA40: .4byte 0x000006DE _0802AA44: ldr r0, [r5] ldr r2, _0802AA60 @ =0x000006DE adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #0x91 bl m4aSongNumStart ldr r1, [r5] movs r0, #0xfa lsls r0, r0, #1 str r0, [r1, #0x3c] b _0802AAD2 .align 2, 0 _0802AA60: .4byte 0x000006DE _0802AA64: ldr r0, [r5] ldr r3, _0802AA80 @ =0x000006DE adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 movs r0, #0x91 bl m4aSongNumStart ldr r1, [r5] movs r0, #0xe1 lsls r0, r0, #2 str r0, [r1, #0x3c] b _0802AAD2 .align 2, 0 _0802AA80: .4byte 0x000006DE _0802AA84: ldr r4, [r5] ldr r1, _0802AAB4 @ =0x000006DE adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0x46 bne _0802AAD2 ldr r2, _0802AAB8 @ =0x0000070E adds r1, r4, r2 ldr r3, _0802AABC @ =0x000006DC adds r0, r4, r3 ldrb r0, [r0] adds r0, #0xdd ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x63 ble _0802AAD2 movs r0, #0x63 strb r0, [r1] b _0802AAD2 .align 2, 0 _0802AAB4: .4byte 0x000006DE _0802AAB8: .4byte 0x0000070E _0802AABC: .4byte 0x000006DC _0802AAC0: ldr r0, [r5] ldr r1, _0802AAD8 @ =0x000006DE adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x96 bne _0802AAD2 movs r0, #3 bl sub_19B64 _0802AAD2: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802AAD8: .4byte 0x000006DE thumb_func_start sub_2AADC sub_2AADC: @ 0x0802AADC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r0, _0802AB5C @ =0x020314E0 ldr r3, [r0] ldrb r5, [r3, #0x1e] cmp r5, #0 beq _0802AAF6 bl sub_2C518 _0802AAF6: ldr r0, _0802AB60 @ =0x000005A6 adds r4, r3, r0 ldrh r1, [r4] ldr r6, _0802AB64 @ =0x086ACF38 adds r0, #2 adds r2, r3, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r0, r0, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r1, r0 bge _0802AB38 adds r0, r1, #1 strh r0, [r4] ldrh r1, [r4] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r0, r0, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r1, r0 blt _0802AB38 strh r5, [r4] ldrb r1, [r2] movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x22 bgt _0802AB38 adds r0, r1, #1 strb r0, [r2] _0802AB38: ldr r4, _0802AB5C @ =0x020314E0 ldr r0, [r4] movs r1, #0xb5 lsls r1, r1, #3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x22 bls _0802AB50 bl _0802C4D2 _0802AB50: lsls r0, r0, #2 ldr r1, _0802AB68 @ =_0802AB6C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802AB5C: .4byte 0x020314E0 _0802AB60: .4byte 0x000005A6 _0802AB64: .4byte 0x086ACF38 _0802AB68: .4byte _0802AB6C _0802AB6C: @ jump table .4byte _0802ABF8 @ case 0 .4byte _0802AD18 @ case 1 .4byte _0802ADB4 @ case 2 .4byte _0802AE98 @ case 3 .4byte _0802AF6C @ case 4 .4byte _0802AF6C @ case 5 .4byte _0802AF6C @ case 6 .4byte _0802AF6C @ case 7 .4byte _0802AF6C @ case 8 .4byte _0802AF6C @ case 9 .4byte _0802AF6C @ case 10 .4byte _0802B200 @ case 11 .4byte _0802B33C @ case 12 .4byte _0802B42C @ case 13 .4byte _0802B460 @ case 14 .4byte _0802B4B8 @ case 15 .4byte _0802B510 @ case 16 .4byte _0802B574 @ case 17 .4byte _0802B574 @ case 18 .4byte _0802B574 @ case 19 .4byte _0802B574 @ case 20 .4byte _0802B574 @ case 21 .4byte _0802B574 @ case 22 .4byte _0802B574 @ case 23 .4byte _0802B574 @ case 24 .4byte _0802B574 @ case 25 .4byte _0802B8D0 @ case 26 .4byte _0802B574 @ case 27 .4byte _0802B574 @ case 28 .4byte _0802BA7C @ case 29 .4byte _0802BB4C @ case 30 .4byte _0802BE94 @ case 31 .4byte _0802BEB4 @ case 32 .4byte _0802C04C @ case 33 .4byte _0802C314 @ case 34 _0802ABF8: ldr r0, _0802ACDC @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrb r0, [r0, #4] cmp r0, #1 bhi _0802AC20 ldr r2, _0802ACE0 @ =0x020314E0 ldr r0, [r2] movs r3, #0x13 ldrsb r3, [r0, r3] cmp r3, #4 beq _0802AC16 cmp r3, #8 bne _0802AC20 _0802AC16: movs r3, #0xa5 lsls r3, r3, #2 adds r1, r0, r3 movs r0, #1 strb r0, [r1] _0802AC20: ldr r7, _0802ACE0 @ =0x020314E0 ldr r0, [r7] movs r4, #1 mov r8, r4 mov r1, r8 strb r1, [r0, #0x1f] ldr r6, [r7] ldr r2, _0802ACE4 @ =0x0000132C adds r4, r6, r2 ldr r5, [r4] movs r3, #0x30 ldrsh r0, [r5, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r5, #0x30] ldr r5, [r4] movs r1, #0x32 ldrsh r0, [r5, r1] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r5, #0x32] ldr r1, [r4] movs r3, #0x30 ldrsh r2, [r1, r3] ldr r0, [r1, #0x34] adds r0, r0, r2 str r0, [r1, #0x34] ldr r1, [r4] movs r4, #0x32 ldrsh r2, [r1, r4] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] adds r6, #0xe4 movs r0, #9 strb r0, [r6] ldr r1, _0802ACE8 @ =0x040000D4 ldr r0, _0802ACEC @ =0x081428D4 str r0, [r1] ldr r0, _0802ACF0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0802ACF4 @ =0x80000E00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, [r7] ldr r0, _0802ACF8 @ =0x000005F6 adds r3, r2, r0 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #9 ldr r5, _0802ACFC @ =0x08138014 adds r0, r0, r5 str r0, [r1] ldr r0, _0802AD00 @ =0x060164C0 str r0, [r1, #4] ldr r4, _0802AD04 @ =0x80000040 str r4, [r1, #8] ldr r0, [r1, #8] movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #3 adds r0, #4 lsls r0, r0, #6 adds r0, r0, r5 str r0, [r1] ldr r0, _0802AD08 @ =0x06016760 str r0, [r1, #4] str r4, [r1, #8] ldr r0, [r1, #8] ldr r1, _0802AD0C @ =0x000005F7 adds r2, r2, r1 mov r3, r8 strb r3, [r2] ldr r0, [r7] ldr r4, _0802AD10 @ =0x000005A6 adds r0, r0, r4 ldrh r4, [r0] cmp r4, #1 beq _0802ACCA bl _0802C4D2 _0802ACCA: ldr r0, _0802AD14 @ =0x02032EE0 bl m4aMPlayStop ldr r0, [r7] adds r0, #0x71 strb r4, [r0] bl _0802C4D2 .align 2, 0 _0802ACDC: .4byte 0x0200B0C0 _0802ACE0: .4byte 0x020314E0 _0802ACE4: .4byte 0x0000132C _0802ACE8: .4byte 0x040000D4 _0802ACEC: .4byte 0x081428D4 _0802ACF0: .4byte 0x06015800 _0802ACF4: .4byte 0x80000E00 _0802ACF8: .4byte 0x000005F6 _0802ACFC: .4byte 0x08138014 _0802AD00: .4byte 0x060164C0 _0802AD04: .4byte 0x80000040 _0802AD08: .4byte 0x06016760 _0802AD0C: .4byte 0x000005F7 _0802AD10: .4byte 0x000005A6 _0802AD14: .4byte 0x02032EE0 _0802AD18: ldr r4, _0802AD94 @ =0x020314E0 ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0802AD48 movs r7, #0xe4 lsls r7, r7, #3 adds r1, r1, r7 movs r0, #0 strb r0, [r1] ldr r0, [r4] ldr r1, _0802AD98 @ =0x0000071D adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r4] ldr r2, _0802AD9C @ =0x0000071E adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] ldr r3, _0802ADA0 @ =0x0000071F adds r0, r0, r3 strb r1, [r0] _0802AD48: ldr r0, [r4] ldr r2, _0802ADA4 @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] movs r1, #0 strb r1, [r0, #1] ldr r4, [r4] adds r2, r4, r2 ldr r0, [r2] strh r1, [r0, #0x30] ldr r0, [r2] strh r1, [r0, #0x32] ldr r1, [r2] movs r7, #0x30 ldrsh r3, [r1, r7] ldr r0, [r1, #0x34] adds r0, r0, r3 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0x32 ldrsh r2, [r1, r0] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] ldr r1, _0802ADA8 @ =0x000005A6 adds r4, r4, r1 ldrh r0, [r4] cmp r0, #0 beq _0802AD86 bl _0802C4D2 _0802AD86: ldr r0, _0802ADAC @ =0x02032F20 ldr r1, _0802ADB0 @ =0x0869FCE4 bl MPlayStart bl _0802C4D2 .align 2, 0 _0802AD94: .4byte 0x020314E0 _0802AD98: .4byte 0x0000071D _0802AD9C: .4byte 0x0000071E _0802ADA0: .4byte 0x0000071F _0802ADA4: .4byte 0x0000132C _0802ADA8: .4byte 0x000005A6 _0802ADAC: .4byte 0x02032F20 _0802ADB0: .4byte 0x0869FCE4 _0802ADB4: ldr r2, _0802AE14 @ =0x040000D4 ldr r3, _0802AE18 @ =0x020314E0 ldr r0, [r3] ldr r4, _0802AE1C @ =0x000005F6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802AE20 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802AE24 @ =0x05000220 str r0, [r2, #4] ldr r5, _0802AE28 @ =0x80000010 str r5, [r2, #8] ldr r0, [r2, #8] ldr r4, _0802AE2C @ =0x0200B0C0 ldrh r0, [r4, #0x3c] movs r0, #4 strh r0, [r4, #0x3c] ldr r0, [r3] ldr r7, _0802AE30 @ =0x000005A6 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bhi _0802ADF0 bl _0802C4D2 _0802ADF0: ldr r1, _0802AE34 @ =0x02031520 ldr r3, [r1, #0x30] str r3, [r2] ldr r0, _0802AE38 @ =0x05000200 str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r4, #4] adds r4, r1, #0 cmp r0, #1 bne _0802AE44 adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AE3C @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AE40 @ =0x80000060 b _0802AE50 .align 2, 0 _0802AE14: .4byte 0x040000D4 _0802AE18: .4byte 0x020314E0 _0802AE1C: .4byte 0x000005F6 _0802AE20: .4byte 0x08137E14 _0802AE24: .4byte 0x05000220 _0802AE28: .4byte 0x80000010 _0802AE2C: .4byte 0x0200B0C0 _0802AE30: .4byte 0x000005A6 _0802AE34: .4byte 0x02031520 _0802AE38: .4byte 0x05000200 _0802AE3C: .4byte 0x05000240 _0802AE40: .4byte 0x80000060 _0802AE44: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AE80 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AE84 @ =0x80000070 _0802AE50: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802AE88 @ =0x040000D4 ldr r0, [r4, #0x30] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0802AE8C @ =0x05000340 str r0, [r1, #4] ldr r0, _0802AE90 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0802AE94 @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r2] adds r0, #0x70 strb r1, [r0] bl _0802C4D2 .align 2, 0 _0802AE80: .4byte 0x05000240 _0802AE84: .4byte 0x80000070 _0802AE88: .4byte 0x040000D4 _0802AE8C: .4byte 0x05000340 _0802AE90: .4byte 0x80000030 _0802AE94: .4byte 0x020314E0 _0802AE98: ldr r4, _0802AED8 @ =0x0200B0C0 ldrh r0, [r4, #0x3c] movs r0, #7 strh r0, [r4, #0x3c] ldr r3, _0802AEDC @ =0x020314E0 ldr r0, [r3] ldr r7, _0802AEE0 @ =0x000005A6 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bls _0802AF34 ldr r2, _0802AEE4 @ =0x040000D4 ldr r1, _0802AEE8 @ =0x02031520 ldr r3, [r1, #0x34] str r3, [r2] ldr r0, _0802AEEC @ =0x05000200 str r0, [r2, #4] ldr r0, _0802AEF0 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r4, #4] adds r4, r1, #0 cmp r0, #1 bne _0802AEFC adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AEF4 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AEF8 @ =0x80000060 b _0802AF08 .align 2, 0 _0802AED8: .4byte 0x0200B0C0 _0802AEDC: .4byte 0x020314E0 _0802AEE0: .4byte 0x000005A6 _0802AEE4: .4byte 0x040000D4 _0802AEE8: .4byte 0x02031520 _0802AEEC: .4byte 0x05000200 _0802AEF0: .4byte 0x80000010 _0802AEF4: .4byte 0x05000240 _0802AEF8: .4byte 0x80000060 _0802AEFC: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802AF48 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802AF4C @ =0x80000070 _0802AF08: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802AF50 @ =0x040000D4 ldr r0, [r4, #0x34] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 str r0, [r1] ldr r0, _0802AF54 @ =0x05000340 str r0, [r1, #4] ldr r0, _0802AF58 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0802AF5C @ =0x020314E0 ldr r0, [r2] adds r0, #0x6f movs r1, #2 strb r1, [r0] ldr r0, [r2] adds r0, #0x70 movs r1, #1 strb r1, [r0] _0802AF34: ldr r1, _0802AF50 @ =0x040000D4 ldr r0, _0802AF60 @ =0x08137F14 str r0, [r1] ldr r0, _0802AF64 @ =0x05000220 str r0, [r1, #4] ldr r0, _0802AF68 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] bl _0802C4D2 .align 2, 0 _0802AF48: .4byte 0x05000240 _0802AF4C: .4byte 0x80000070 _0802AF50: .4byte 0x040000D4 _0802AF54: .4byte 0x05000340 _0802AF58: .4byte 0x80000030 _0802AF5C: .4byte 0x020314E0 _0802AF60: .4byte 0x08137F14 _0802AF64: .4byte 0x05000220 _0802AF68: .4byte 0x80000010 _0802AF6C: ldr r3, _0802AFDC @ =0x020314E0 ldr r4, [r3] movs r7, #0xb5 lsls r7, r7, #3 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #4 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 beq _0802AF8C cmp r0, #6 bne _0802AFFC _0802AF8C: ldr r0, _0802AFE0 @ =0x0200B0C0 ldrb r1, [r0, #4] mov ip, r0 cmp r1, #3 bhi _0802AFC2 movs r1, #0x13 ldrsb r1, [r4, r1] cmp r1, #4 bne _0802AFA6 movs r0, #0x17 ldrsb r0, [r4, r0] cmp r0, #9 beq _0802AFB2 _0802AFA6: cmp r1, #8 bne _0802AFC2 movs r0, #0x17 ldrsb r0, [r4, r0] cmp r0, #3 bne _0802AFC2 _0802AFB2: ldr r1, _0802AFE4 @ =0x040000D4 ldr r0, _0802AFE8 @ =0x02030710 str r0, [r1] ldr r0, _0802AFEC @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802AFF0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802AFC2: ldr r1, _0802AFE4 @ =0x040000D4 ldr r0, _0802AFF4 @ =0x08137F14 str r0, [r1] ldr r0, _0802AFF8 @ =0x05000220 str r0, [r1, #4] ldr r0, _0802AFF0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] mov r1, ip ldrh r0, [r1, #0x3c] movs r0, #6 strh r0, [r1, #0x3c] b _0802B026 .align 2, 0 _0802AFDC: .4byte 0x020314E0 _0802AFE0: .4byte 0x0200B0C0 _0802AFE4: .4byte 0x040000D4 _0802AFE8: .4byte 0x02030710 _0802AFEC: .4byte 0x050003A0 _0802AFF0: .4byte 0x80000010 _0802AFF4: .4byte 0x08137F14 _0802AFF8: .4byte 0x05000220 _0802AFFC: ldr r2, _0802B0EC @ =0x040000D4 ldr r7, _0802B0F0 @ =0x000005F6 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802B0F4 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B0F8 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B0FC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802B100 @ =0x0200B0C0 ldrh r1, [r0, #0x3c] movs r1, #7 strh r1, [r0, #0x3c] mov ip, r0 _0802B026: mov r1, ip ldr r0, [r1, #0x44] ldr r6, [r0, #0xc] ldrh r0, [r6] cmp r0, #0 bne _0802B034 b _0802B1AC _0802B034: ldr r4, _0802B104 @ =0x020314E0 ldr r2, [r4] ldr r7, _0802B108 @ =0x0000132C adds r1, r2, r7 ldr r0, [r1] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r1] ldrh r0, [r0, #0x26] strh r0, [r6, #4] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #5 bne _0802B11C movs r5, #0 lsls r0, r3, #0x10 ldr r1, _0802B10C @ =0x03005000 mov r8, r1 ldr r2, _0802B110 @ =0x081B0FE4 mov sb, r2 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov sl, r0 _0802B066: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B114 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _0802B118 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B066 b _0802B1AC .align 2, 0 _0802B0EC: .4byte 0x040000D4 _0802B0F0: .4byte 0x000005F6 _0802B0F4: .4byte 0x08137E14 _0802B0F8: .4byte 0x05000220 _0802B0FC: .4byte 0x80000010 _0802B100: .4byte 0x0200B0C0 _0802B104: .4byte 0x020314E0 _0802B108: .4byte 0x0000132C _0802B10C: .4byte 0x03005000 _0802B110: .4byte 0x081B0FE4 _0802B114: .4byte 0x000001FF _0802B118: .4byte 0xFFFFFE00 _0802B11C: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802B1E8 @ =0x03005000 mov sb, r3 ldr r4, _0802B1EC @ =0x081B0FE4 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 str r0, [sp] ldr r7, _0802B1F0 @ =0xFFFFFE00 mov sl, r7 _0802B136: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r4, [sp] adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r4 add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B1F4 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B136 _0802B1AC: mov r3, ip ldr r0, [r3, #0x44] ldr r1, [r0, #0xc] movs r0, #1 strh r0, [r1] ldr r0, _0802B1F8 @ =0x020314E0 ldr r1, [r0] movs r4, #0xb5 lsls r4, r4, #3 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa beq _0802B1CE bl _0802C4D2 _0802B1CE: ldr r7, _0802B1FC @ =0x000005A6 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #3 beq _0802B1DC bl _0802C4D2 _0802B1DC: ldr r0, [r3, #0x44] ldr r1, [r0, #0xc] movs r0, #0 strh r0, [r1] bl _0802C4D2 .align 2, 0 _0802B1E8: .4byte 0x03005000 _0802B1EC: .4byte 0x081B0FE4 _0802B1F0: .4byte 0xFFFFFE00 _0802B1F4: .4byte 0x000001FF _0802B1F8: .4byte 0x020314E0 _0802B1FC: .4byte 0x000005A6 _0802B200: ldr r2, _0802B29C @ =0x040000D4 ldr r6, _0802B2A0 @ =0x020314E0 ldr r3, [r6] ldr r1, _0802B2A4 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802B2A8 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B2AC @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B2B0 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xa2 lsls r2, r2, #2 adds r0, r3, r2 ldrh r2, [r0] lsls r2, r2, #8 ldr r4, _0802B2B4 @ =0x0000132C adds r0, r3, r4 ldr r1, [r0] ldr r0, [r1, #0x34] subs r2, r2, r0 lsls r2, r2, #0x10 ldr r7, _0802B2B8 @ =0x0000028A adds r0, r3, r7 ldrh r0, [r0] lsls r0, r0, #8 ldr r1, [r1, #0x38] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r7, r2, #0x10 orrs r7, r0 ldr r5, _0802B2BC @ =0x000005AC adds r3, r3, r5 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r1, r0, #0 muls r1, r0, r1 adds r0, r1, #0 asrs r4, r7, #0x10 adds r1, r4, #0 muls r1, r4, r1 adds r0, r0, r1 str r0, [r3] lsls r0, r0, #2 bl Sqrt ldr r1, [r6] adds r1, r1, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] rsbs r0, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r4, #0 bl ArcTan2 ldr r6, [r6] movs r2, #0xb6 lsls r2, r2, #3 adds r1, r6, r2 strh r0, [r1] ldr r0, _0802B2C0 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #3 bls _0802B2C8 ldr r3, _0802B2C4 @ =0x00000389 adds r1, r6, r3 movs r0, #0 strb r0, [r1] b _0802B2F4 .align 2, 0 _0802B29C: .4byte 0x040000D4 _0802B2A0: .4byte 0x020314E0 _0802B2A4: .4byte 0x000005F6 _0802B2A8: .4byte 0x08137E14 _0802B2AC: .4byte 0x05000220 _0802B2B0: .4byte 0x80000010 _0802B2B4: .4byte 0x0000132C _0802B2B8: .4byte 0x0000028A _0802B2BC: .4byte 0x000005AC _0802B2C0: .4byte 0x0200B0C0 _0802B2C4: .4byte 0x00000389 _0802B2C8: movs r1, #0x13 ldrsb r1, [r6, r1] cmp r1, #4 bne _0802B2D8 movs r0, #0x17 ldrsb r0, [r6, r0] cmp r0, #9 beq _0802B2E4 _0802B2D8: cmp r1, #8 bne _0802B2F4 movs r0, #0x17 ldrsb r0, [r6, r0] cmp r0, #3 bne _0802B2F4 _0802B2E4: ldr r1, _0802B324 @ =0x040000D4 ldr r0, _0802B328 @ =0x020306D0 str r0, [r1] ldr r0, _0802B32C @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802B330 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802B2F4: movs r5, #0 ldr r7, _0802B334 @ =0x020314E0 ldr r6, _0802B338 @ =0x0000132C _0802B2FA: ldr r4, [r7] adds r4, r4, r6 ldr r0, [r4] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #2 adds r3, r0, r2 ldrh r0, [r0, #0x10] strh r0, [r3, #0x14] ldr r0, [r4] adds r2, r0, r2 ldrh r0, [r0, #0x12] strh r0, [r2, #0x16] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _0802B2FA bl _0802C4D2 .align 2, 0 _0802B324: .4byte 0x040000D4 _0802B328: .4byte 0x020306D0 _0802B32C: .4byte 0x050003A0 _0802B330: .4byte 0x80000010 _0802B334: .4byte 0x020314E0 _0802B338: .4byte 0x0000132C _0802B33C: ldr r4, _0802B410 @ =0x020314E0 mov sl, r4 ldr r5, [r4] ldr r7, _0802B414 @ =0x000005A6 adds r0, r5, r7 ldrh r0, [r0] movs r4, #0x63 subs r4, r4, r0 movs r0, #0xb6 lsls r0, r0, #3 adds r6, r5, r0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x64 bl __divsi3 ldr r1, _0802B418 @ =0xFFFFE000 adds r2, r1, #0 adds r0, r0, r2 ldrh r1, [r6] subs r1, r1, r0 strh r1, [r6] ldr r7, _0802B41C @ =0x0000132C adds r1, r5, r7 ldr r0, [r1] ldrh r3, [r0, #0xa] adds r2, r2, r3 strh r2, [r0, #0xa] subs r4, #0x14 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 cmp r4, #0 bge _0802B388 movs r5, #0 ldr r1, [r1] movs r0, #0 strb r0, [r1] _0802B388: mov r0, sl ldr r4, [r0] ldr r2, _0802B420 @ =0x000005AC adds r1, r4, r2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 ldr r1, [r1] muls r0, r1, r0 movs r1, #0x50 bl __divsi3 mov sb, r0 movs r3, #0xb6 lsls r3, r3, #3 adds r4, r4, r3 ldrh r0, [r4] bl sub_C74 mov r4, sl ldr r5, [r4] adds r1, r5, r7 ldr r6, [r1] movs r2, #0xa2 lsls r2, r2, #2 adds r1, r5, r2 movs r3, #0 ldrsh r4, [r1, r3] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sb muls r1, r0, r1 adds r0, r1, #0 ldr r2, _0802B424 @ =0x00004E20 mov r8, r2 mov r1, r8 bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] movs r3, #0xb6 lsls r3, r3, #3 adds r5, r5, r3 ldrh r0, [r5] bl sub_C24 mov r4, sl ldr r1, [r4] adds r2, r1, r7 ldr r5, [r2] ldr r7, _0802B428 @ =0x0000028A adds r1, r1, r7 movs r2, #0 ldrsh r4, [r1, r2] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r3, sb muls r3, r0, r3 adds r0, r3, #0 mov r1, r8 bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] bl _0802C4D2 .align 2, 0 _0802B410: .4byte 0x020314E0 _0802B414: .4byte 0x000005A6 _0802B418: .4byte 0xFFFFE000 _0802B41C: .4byte 0x0000132C _0802B420: .4byte 0x000005AC _0802B424: .4byte 0x00004E20 _0802B428: .4byte 0x0000028A _0802B42C: ldr r5, _0802B454 @ =0x020314E0 ldr r1, [r5] ldr r4, _0802B458 @ =0x0000132C adds r0, r1, r4 ldr r2, [r0] movs r3, #0 movs r0, #0 strh r0, [r2, #6] adds r1, #0x71 strb r3, [r1] ldr r0, [r5] adds r0, r0, r4 ldr r1, [r0] ldr r4, _0802B45C @ =0xFFFFE000 adds r0, r4, #0 ldrh r7, [r1, #0xa] adds r0, r0, r7 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B454: .4byte 0x020314E0 _0802B458: .4byte 0x0000132C _0802B45C: .4byte 0xFFFFE000 _0802B460: ldr r2, _0802B498 @ =0x040000D4 ldr r0, _0802B49C @ =0x020314E0 ldr r3, [r0] ldr r1, _0802B4A0 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802B4A4 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B4A8 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B4AC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802B4B0 @ =0x0000132C adds r3, r3, r2 ldr r1, [r3] ldr r3, _0802B4B4 @ =0xFFFFE000 adds r0, r3, #0 ldrh r4, [r1, #0xa] adds r0, r0, r4 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B498: .4byte 0x040000D4 _0802B49C: .4byte 0x020314E0 _0802B4A0: .4byte 0x000005F6 _0802B4A4: .4byte 0x08137E14 _0802B4A8: .4byte 0x05000220 _0802B4AC: .4byte 0x80000010 _0802B4B0: .4byte 0x0000132C _0802B4B4: .4byte 0xFFFFE000 _0802B4B8: ldr r2, _0802B4F0 @ =0x040000D4 ldr r0, _0802B4F4 @ =0x020314E0 ldr r3, [r0] ldr r7, _0802B4F8 @ =0x000005F6 adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 lsls r0, r0, #5 ldr r1, _0802B4FC @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B500 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B504 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802B508 @ =0x0000132C adds r3, r3, r0 ldr r1, [r3] ldr r2, _0802B50C @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B4F0: .4byte 0x040000D4 _0802B4F4: .4byte 0x020314E0 _0802B4F8: .4byte 0x000005F6 _0802B4FC: .4byte 0x08137E14 _0802B500: .4byte 0x05000220 _0802B504: .4byte 0x80000010 _0802B508: .4byte 0x0000132C _0802B50C: .4byte 0xFFFFE000 _0802B510: ldr r4, _0802B554 @ =0x020314E0 ldr r0, [r4] ldr r7, _0802B558 @ =0x000005A6 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0 bne _0802B524 movs r0, #0x9b bl m4aSongNumStart _0802B524: ldr r2, _0802B55C @ =0x040000D4 ldr r3, [r4] ldr r1, _0802B560 @ =0x000005F6 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802B564 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802B568 @ =0x05000220 str r0, [r2, #4] ldr r0, _0802B56C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802B570 @ =0x0000132C adds r3, r3, r2 ldr r1, [r3] movs r0, #0xe0 lsls r0, r0, #7 strh r0, [r1, #0xa] bl _0802C4D2 .align 2, 0 _0802B554: .4byte 0x020314E0 _0802B558: .4byte 0x000005A6 _0802B55C: .4byte 0x040000D4 _0802B560: .4byte 0x000005F6 _0802B564: .4byte 0x08137E14 _0802B568: .4byte 0x05000220 _0802B56C: .4byte 0x80000010 _0802B570: .4byte 0x0000132C _0802B574: ldr r0, _0802B664 @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r6, [r1, #0xc] ldrh r1, [r6] mov ip, r0 cmp r1, #0 bne _0802B584 b _0802B714 _0802B584: ldr r3, _0802B668 @ =0x020314E0 ldr r0, [r3] ldr r1, _0802B66C @ =0x0000132C adds r0, r0, r1 ldr r2, [r0] movs r0, #1 strb r0, [r2] ldr r2, [r3] adds r1, r2, r1 ldr r0, [r1] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r1] ldrh r0, [r0, #0x26] strh r0, [r6, #4] ldr r1, _0802B670 @ =0x086ACFF4 movs r4, #0xb5 lsls r4, r4, #3 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #0x11 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #7 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #5 bne _0802B684 movs r5, #0 lsls r0, r3, #0x10 ldr r7, _0802B674 @ =0x03005000 mov r8, r7 ldr r1, _0802B678 @ =0x081B0FE4 mov sb, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov sl, r0 _0802B5DE: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B67C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _0802B680 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B5DE b _0802B714 .align 2, 0 _0802B664: .4byte 0x0200B0C0 _0802B668: .4byte 0x020314E0 _0802B66C: .4byte 0x0000132C _0802B670: .4byte 0x086ACFF4 _0802B674: .4byte 0x03005000 _0802B678: .4byte 0x081B0FE4 _0802B67C: .4byte 0x000001FF _0802B680: .4byte 0xFFFFFE00 _0802B684: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802B75C @ =0x03005000 mov sb, r3 ldr r4, _0802B760 @ =0x081B0FE4 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 str r0, [sp] ldr r7, _0802B764 @ =0xFFFFFE00 mov sl, r7 _0802B69E: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r4, [sp] adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r4 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r4 add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B768 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B69E _0802B714: mov r3, ip ldr r0, [r3, #0x44] ldr r1, [r0, #0xc] movs r0, #1 strh r0, [r1] ldr r4, _0802B76C @ =0x020314E0 ldr r1, [r4] movs r7, #0xb5 lsls r7, r7, #3 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 beq _0802B73A cmp r0, #0x14 beq _0802B73A cmp r0, #0x15 bne _0802B7AC _0802B73A: ldr r1, _0802B76C @ =0x020314E0 ldr r0, [r1] ldr r2, _0802B770 @ =0x000005A9 adds r0, r0, r2 movs r1, #0xc8 strb r1, [r0] mov r3, ip ldrb r0, [r3, #4] cmp r0, #3 bls _0802B778 ldr r4, _0802B76C @ =0x020314E0 ldr r0, [r4] ldr r7, _0802B774 @ =0x00000389 adds r0, r0, r7 movs r1, #1 strb r1, [r0] b _0802B7F8 .align 2, 0 _0802B75C: .4byte 0x03005000 _0802B760: .4byte 0x081B0FE4 _0802B764: .4byte 0xFFFFFE00 _0802B768: .4byte 0x000001FF _0802B76C: .4byte 0x020314E0 _0802B770: .4byte 0x000005A9 _0802B774: .4byte 0x00000389 _0802B778: ldr r0, _0802B7A0 @ =0x020314E0 ldr r1, [r0] movs r2, #0x13 ldrsb r2, [r1, r2] cmp r2, #4 bne _0802B78C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 beq _0802B798 _0802B78C: cmp r2, #8 bne _0802B7F8 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #3 bne _0802B7F8 _0802B798: ldr r1, _0802B7A4 @ =0x040000D4 ldr r0, _0802B7A8 @ =0x020306F0 b _0802B7EC .align 2, 0 _0802B7A0: .4byte 0x020314E0 _0802B7A4: .4byte 0x040000D4 _0802B7A8: .4byte 0x020306F0 _0802B7AC: cmp r0, #0x13 beq _0802B7B4 cmp r0, #0x16 bne _0802B7F8 _0802B7B4: mov r2, ip ldrb r0, [r2, #4] cmp r0, #3 bls _0802B7CC ldr r3, _0802B7C8 @ =0x00000389 adds r1, r1, r3 movs r0, #3 strb r0, [r1] b _0802B7F8 .align 2, 0 _0802B7C8: .4byte 0x00000389 _0802B7CC: movs r2, #0x13 ldrsb r2, [r1, r2] cmp r2, #4 bne _0802B7DC movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 beq _0802B7E8 _0802B7DC: cmp r2, #8 bne _0802B7F8 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #3 bne _0802B7F8 _0802B7E8: ldr r1, _0802B820 @ =0x040000D4 ldr r0, _0802B824 @ =0x02030730 _0802B7EC: str r0, [r1] ldr r0, _0802B828 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802B82C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802B7F8: ldr r4, _0802B830 @ =0x020314E0 ldr r1, [r4] movs r7, #0xb5 lsls r7, r7, #3 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x17 bne _0802B880 mov r2, ip ldrb r0, [r2, #4] cmp r0, #3 bls _0802B838 ldr r3, _0802B834 @ =0x00000389 adds r1, r1, r3 movs r0, #0xa strb r0, [r1] b _0802B880 .align 2, 0 _0802B820: .4byte 0x040000D4 _0802B824: .4byte 0x02030730 _0802B828: .4byte 0x050003A0 _0802B82C: .4byte 0x80000010 _0802B830: .4byte 0x020314E0 _0802B834: .4byte 0x00000389 _0802B838: movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0802B85A movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #9 bne _0802B85A bl sub_28E2C ldr r0, [r4] ldr r4, _0802B8C4 @ =0x000005F2 adds r0, r0, r4 movs r1, #0 strb r1, [r0] bl m4aMPlayAllStop _0802B85A: ldr r4, _0802B8C8 @ =0x020314E0 ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #8 bne _0802B880 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #3 bne _0802B880 bl sub_292A0 ldr r0, [r4] ldr r7, _0802B8C4 @ =0x000005F2 adds r0, r0, r7 movs r1, #0 strb r1, [r0] bl m4aMPlayAllStop _0802B880: ldr r5, _0802B8C8 @ =0x020314E0 ldr r1, [r5] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1c beq _0802B898 bl _0802C4D2 _0802B898: ldr r4, _0802B8CC @ =0x000005A6 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0 bne _0802B8AC bl m4aMPlayAllStop movs r0, #8 bl sub_11B0 _0802B8AC: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #2 beq _0802B8BA bl _0802C4D2 _0802B8BA: movs r0, #0x9c bl m4aSongNumStart bl _0802C4D2 .align 2, 0 _0802B8C4: .4byte 0x000005F2 _0802B8C8: .4byte 0x020314E0 _0802B8CC: .4byte 0x000005A6 _0802B8D0: ldr r0, _0802B9B8 @ =0x0200B0C0 ldr r0, [r0, #0x44] ldr r6, [r0, #0xc] ldrh r0, [r6] cmp r0, #0 bne _0802B8E0 bl _0802C4D2 _0802B8E0: ldr r3, _0802B9BC @ =0x020314E0 ldr r2, [r3] ldr r4, _0802B9C0 @ =0x0000132C adds r1, r2, r4 ldr r0, [r1] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r1] ldrh r0, [r0, #0x26] strh r0, [r6, #4] ldr r1, _0802B9C4 @ =0x086ACFF4 movs r7, #0xb5 lsls r7, r7, #3 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #0x11 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #7 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #5 bne _0802B9D8 movs r5, #0 lsls r0, r3, #0x10 ldr r1, _0802B9C8 @ =0x03005000 mov r8, r1 ldr r2, _0802B9CC @ =0x081B0FE4 mov sb, r2 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov sl, r0 _0802B930: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r4, r8 adds r2, r0, r4 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, sl add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, sl add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, r8 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802B9D0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _0802B9D4 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xd rsbs r0, r0, #0 ands r0, r2 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B930 bl _0802C4D2 .align 2, 0 _0802B9B8: .4byte 0x0200B0C0 _0802B9BC: .4byte 0x020314E0 _0802B9C0: .4byte 0x0000132C _0802B9C4: .4byte 0x086ACFF4 _0802B9C8: .4byte 0x03005000 _0802B9CC: .4byte 0x081B0FE4 _0802B9D0: .4byte 0x000001FF _0802B9D4: .4byte 0xFFFFFE00 _0802B9D8: movs r5, #0 lsls r0, r3, #0x10 ldr r3, _0802BA6C @ =0x03005000 mov sb, r3 ldr r4, _0802BA70 @ =0x081B0FE4 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 mov ip, r0 ldr r7, _0802BA74 @ =0xFFFFFE00 mov sl, r7 _0802B9F2: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, ip add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, ip add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802BA78 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0xf ble _0802B9F2 bl _0802C4D2 .align 2, 0 _0802BA6C: .4byte 0x03005000 _0802BA70: .4byte 0x081B0FE4 _0802BA74: .4byte 0xFFFFFE00 _0802BA78: .4byte 0x000001FF _0802BA7C: ldr r3, _0802BB28 @ =0x0200B0C0 ldrh r0, [r3, #0x3c] movs r0, #4 strh r0, [r3, #0x3c] ldr r2, _0802BB2C @ =0x040000D4 ldr r4, _0802BB30 @ =0x020314E0 ldr r0, [r4] ldr r7, _0802BB34 @ =0x000005F6 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0802BB38 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0802BB3C @ =0x05000220 str r0, [r2, #4] ldr r0, _0802BB40 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #0x44] ldr r6, [r0, #0xc] ldrh r0, [r6] mov ip, r3 cmp r0, #0 beq _0802BAD6 movs r5, #0 ldr r3, _0802BB44 @ =0x03005000 movs r2, #0xbe _0802BAB8: lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 adds r1, #8 adds r5, r6, r1 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r3 strb r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0802BAB8 _0802BAD6: mov r1, ip ldr r0, [r1, #0x44] ldr r1, [r0, #0xc] movs r5, #0 movs r0, #0 strh r0, [r1] ldr r1, _0802BB30 @ =0x020314E0 ldr r0, [r1] ldr r2, _0802BB48 @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] strb r5, [r0] ldr r4, [r1] adds r2, r4, r2 ldr r1, [r2] movs r0, #0xff lsls r0, r0, #8 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #0x28 strh r0, [r1, #0x30] ldr r1, [r2] adds r0, #0xd8 strh r0, [r1, #6] ldr r1, [r2] movs r7, #0x32 ldrsh r3, [r1, r7] ldr r0, [r1, #0x38] adds r0, r0, r3 str r0, [r1, #0x38] ldr r1, [r2] movs r0, #0x30 ldrsh r2, [r1, r0] ldr r0, [r1, #0x34] adds r0, r0, r2 str r0, [r1, #0x34] adds r4, #0xe4 strb r5, [r4] bl _0802C4D2 .align 2, 0 _0802BB28: .4byte 0x0200B0C0 _0802BB2C: .4byte 0x040000D4 _0802BB30: .4byte 0x020314E0 _0802BB34: .4byte 0x000005F6 _0802BB38: .4byte 0x08137E14 _0802BB3C: .4byte 0x05000220 _0802BB40: .4byte 0x80000010 _0802BB44: .4byte 0x03005000 _0802BB48: .4byte 0x0000132C _0802BB4C: ldr r1, _0802BB90 @ =0x020314E0 ldr r0, [r1] ldr r2, _0802BB94 @ =0x000005A6 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #7 bls _0802BB5C b _0802BC92 _0802BB5C: cmp r0, #3 bhi _0802BC04 cmp r0, #0 beq _0802BB66 b _0802BC92 _0802BB66: ldr r2, _0802BB98 @ =0x040000D4 ldr r1, _0802BB9C @ =0x02031520 ldr r3, [r1, #0x30] str r3, [r2] ldr r0, _0802BBA0 @ =0x05000200 str r0, [r2, #4] ldr r0, _0802BBA4 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802BBA8 @ =0x0200B0C0 ldrb r0, [r0, #4] adds r4, r1, #0 cmp r0, #1 bne _0802BBB4 adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BBAC @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BBB0 @ =0x80000060 b _0802BBC0 .align 2, 0 _0802BB90: .4byte 0x020314E0 _0802BB94: .4byte 0x000005A6 _0802BB98: .4byte 0x040000D4 _0802BB9C: .4byte 0x02031520 _0802BBA0: .4byte 0x05000200 _0802BBA4: .4byte 0x80000010 _0802BBA8: .4byte 0x0200B0C0 _0802BBAC: .4byte 0x05000240 _0802BBB0: .4byte 0x80000060 _0802BBB4: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BBEC @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BBF0 @ =0x80000070 _0802BBC0: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802BBF4 @ =0x040000D4 ldr r0, [r4, #0x30] movs r3, #0xa0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0802BBF8 @ =0x05000340 str r0, [r1, #4] ldr r0, _0802BBFC @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r4, _0802BC00 @ =0x020314E0 ldr r0, [r4] adds r0, #0x6f movs r1, #1 strb r1, [r0] ldr r0, [r4] adds r0, #0x70 b _0802BC90 .align 2, 0 _0802BBEC: .4byte 0x05000240 _0802BBF0: .4byte 0x80000070 _0802BBF4: .4byte 0x040000D4 _0802BBF8: .4byte 0x05000340 _0802BBFC: .4byte 0x80000030 _0802BC00: .4byte 0x020314E0 _0802BC04: ldr r4, _0802BC3C @ =0x0200B0C0 ldrh r0, [r4, #0x3c] movs r0, #0 strh r0, [r4, #0x3c] ldrh r0, [r1] cmp r0, #4 bls _0802BC92 ldr r2, _0802BC40 @ =0x040000D4 ldr r1, _0802BC44 @ =0x02031520 ldr r3, [r1, #0x2c] str r3, [r2] ldr r0, _0802BC48 @ =0x05000200 str r0, [r2, #4] ldr r0, _0802BC4C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldrb r0, [r4, #4] adds r4, r1, #0 cmp r0, #1 bne _0802BC58 adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BC50 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BC54 @ =0x80000060 b _0802BC64 .align 2, 0 _0802BC3C: .4byte 0x0200B0C0 _0802BC40: .4byte 0x040000D4 _0802BC44: .4byte 0x02031520 _0802BC48: .4byte 0x05000200 _0802BC4C: .4byte 0x80000010 _0802BC50: .4byte 0x05000240 _0802BC54: .4byte 0x80000060 _0802BC58: adds r0, r3, #0 adds r0, #0x40 str r0, [r2] ldr r0, _0802BDA0 @ =0x05000240 str r0, [r2, #4] ldr r0, _0802BDA4 @ =0x80000070 _0802BC64: str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, _0802BDA8 @ =0x040000D4 ldr r0, [r4, #0x2c] movs r7, #0xa0 lsls r7, r7, #1 adds r0, r0, r7 str r0, [r1] ldr r0, _0802BDAC @ =0x05000340 str r0, [r1, #4] ldr r0, _0802BDB0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0802BDB4 @ =0x020314E0 ldr r0, [r1] adds r0, #0x6f movs r1, #0 strb r1, [r0] ldr r2, _0802BDB4 @ =0x020314E0 ldr r0, [r2] adds r0, #0x70 movs r1, #1 _0802BC90: strb r1, [r0] _0802BC92: ldr r3, _0802BDB4 @ =0x020314E0 ldr r5, [r3] movs r0, #0x13 ldrsb r0, [r5, r0] cmp r0, #5 beq _0802BCA4 cmp r0, #8 beq _0802BCA4 b _0802BDC4 _0802BCA4: ldr r7, _0802BDB8 @ =0x0000132C adds r5, r5, r7 ldr r1, [r5] ldrh r0, [r1, #0x32] adds r0, #0x10 strh r0, [r1, #0x32] ldr r1, [r5] movs r4, #0x32 ldrsh r2, [r1, r4] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] ldr r6, [r5] ldr r4, [r6, #0x34] movs r0, #0xec lsls r0, r0, #7 subs r0, r0, r4 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] ldr r3, [r5] ldr r1, [r3, #0x38] ldr r0, _0802BDBC @ =0x000139FF cmp r1, r0 ble _0802BD70 movs r1, #0x32 ldrsh r0, [r3, r1] cmp r0, #0x31 ble _0802BCE8 movs r0, #0x9d bl m4aSongNumStart _0802BCE8: ldr r2, _0802BDB4 @ =0x020314E0 ldr r0, [r2] adds r0, r0, r7 ldr r0, [r0] movs r3, #0x32 ldrsh r1, [r0, r3] movs r0, #0x32 rsbs r0, r0, #0 cmp r1, r0 bgt _0802BD02 movs r0, #0x9d bl m4aSongNumStart _0802BD02: ldr r0, _0802BDB4 @ =0x020314E0 ldr r4, [r0] adds r4, r4, r7 ldr r1, [r4] movs r0, #0x9d lsls r0, r0, #9 str r0, [r1, #0x38] ldr r5, [r4] movs r2, #0x32 ldrsh r1, [r5, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r1, r0, #4 subs r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0x32] ldr r5, [r4] movs r3, #6 ldrsh r1, [r5, r3] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r5, #6] ldr r4, [r4] ldrh r1, [r4, #6] movs r2, #6 ldrsh r0, [r4, r2] cmp r0, #0 ble _0802BD48 rsbs r0, r1, #0 strh r0, [r4, #6] _0802BD48: ldr r3, _0802BDB4 @ =0x020314E0 ldr r4, [r3] adds r4, r4, r7 ldr r5, [r4] movs r7, #0x30 ldrsh r1, [r5, r7] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r5, #0x30] ldr r4, [r4] ldrh r1, [r4, #0x30] movs r2, #0x30 ldrsh r0, [r4, r2] cmp r0, #0 ble _0802BD70 rsbs r0, r1, #0 strh r0, [r4, #0x30] _0802BD70: ldr r3, _0802BDB4 @ =0x020314E0 ldr r2, [r3] ldr r4, _0802BDB8 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] ldrh r1, [r0, #0x32] movs r7, #0x32 ldrsh r0, [r0, r7] cmp r0, #0 bge _0802BD8A rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0802BD8A: lsls r1, r1, #0x10 movs r0, #0x80 lsls r0, r0, #0x11 cmp r1, r0 ble _0802BE78 ldr r0, _0802BDC0 @ =0x000005A6 adds r1, r2, r0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] b _0802BE78 .align 2, 0 _0802BDA0: .4byte 0x05000240 _0802BDA4: .4byte 0x80000070 _0802BDA8: .4byte 0x040000D4 _0802BDAC: .4byte 0x05000340 _0802BDB0: .4byte 0x80000030 _0802BDB4: .4byte 0x020314E0 _0802BDB8: .4byte 0x0000132C _0802BDBC: .4byte 0x000139FF _0802BDC0: .4byte 0x000005A6 _0802BDC4: ldr r6, _0802BE88 @ =0x0000132C adds r3, r5, r6 ldr r1, [r3] ldrh r0, [r1, #0x32] adds r0, #0x10 strh r0, [r1, #0x32] ldr r1, [r3] movs r4, #0x32 ldrsh r2, [r1, r4] ldr r0, [r1, #0x38] adds r0, r0, r2 str r0, [r1, #0x38] ldr r1, [r3] movs r7, #0x30 ldrsh r2, [r1, r7] ldr r0, [r1, #0x34] adds r0, r0, r2 str r0, [r1, #0x34] ldr r1, [r3] ldr r2, _0802BE8C @ =0x0000028A adds r0, r5, r2 movs r3, #0 ldrsh r0, [r0, r3] adds r0, #0x32 lsls r0, r0, #8 ldr r1, [r1, #0x38] cmp r1, r0 blt _0802BE78 movs r0, #0x9d bl m4aSongNumStart ldr r4, _0802BE90 @ =0x020314E0 ldr r0, [r4] adds r5, r0, r6 ldr r1, [r5] ldr r7, _0802BE8C @ =0x0000028A adds r0, r0, r7 movs r2, #0 ldrsh r0, [r0, r2] adds r0, #0x32 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r4, [r5] movs r3, #0x32 ldrsh r1, [r4, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r1, r0, #4 subs r0, r0, r1 movs r1, #0x64 bl __divsi3 strh r0, [r4, #0x32] ldr r4, [r5] movs r7, #6 ldrsh r1, [r4, r7] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r4, #6] ldr r5, [r5] ldrh r1, [r5, #6] movs r2, #6 ldrsh r0, [r5, r2] cmp r0, #0 ble _0802BE50 rsbs r0, r1, #0 strh r0, [r5, #6] _0802BE50: ldr r3, _0802BE90 @ =0x020314E0 ldr r4, [r3] adds r4, r4, r6 ldr r5, [r4] movs r7, #0x30 ldrsh r1, [r5, r7] lsls r0, r1, #3 subs r0, r0, r1 movs r1, #0xa bl __divsi3 strh r0, [r5, #0x30] ldr r1, [r4] ldrh r2, [r1, #0x30] movs r3, #0x30 ldrsh r0, [r1, r3] cmp r0, #0 ble _0802BE78 rsbs r0, r2, #0 strh r0, [r1, #0x30] _0802BE78: ldr r0, _0802BE90 @ =0x020314E0 ldr r0, [r0] movs r4, #0xb6 lsls r4, r4, #3 adds r0, r0, r4 movs r1, #0 strh r1, [r0] b _0802C4D2 .align 2, 0 _0802BE88: .4byte 0x0000132C _0802BE8C: .4byte 0x0000028A _0802BE90: .4byte 0x020314E0 _0802BE94: ldr r0, _0802BEAC @ =0x020314E0 ldr r1, [r0] ldr r7, _0802BEB0 @ =0x0000132C adds r1, r1, r7 ldr r0, [r1] movs r2, #0 strh r2, [r0, #0x30] ldr r0, [r1] strh r2, [r0, #0x32] ldr r0, [r1] strh r2, [r0, #6] b _0802C4D2 .align 2, 0 _0802BEAC: .4byte 0x020314E0 _0802BEB0: .4byte 0x0000132C _0802BEB4: ldr r6, _0802BF00 @ =0x020314E0 ldr r2, [r6] ldr r1, _0802BF04 @ =0x000005A6 adds r0, r2, r1 ldrh r1, [r0] movs r0, #0xed subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r4, r0, #0x10 cmp r4, #0xbf ble _0802BECE b _0802C036 _0802BECE: cmp r4, #0xb7 ble _0802BF10 cmp r4, #0xb9 bne _0802BEDC movs r0, #6 bl sub_11B0 _0802BEDC: cmp r4, #0xb8 bne _0802BEE6 movs r0, #0x9e bl m4aSongNumStart _0802BEE6: ldr r1, [r6] ldr r2, _0802BF08 @ =0x0000132C adds r1, r1, r2 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r3, _0802BF0C @ =0xFFFFFC00 adds r0, r3, #0 ldrh r4, [r1, #0xa] adds r0, r0, r4 b _0802C034 .align 2, 0 _0802BF00: .4byte 0x020314E0 _0802BF04: .4byte 0x000005A6 _0802BF08: .4byte 0x0000132C _0802BF0C: .4byte 0xFFFFFC00 _0802BF10: cmp r4, #0xaf ble _0802BF20 ldr r7, _0802BF1C @ =0x0000132C adds r2, r2, r7 b _0802C020 .align 2, 0 _0802BF1C: .4byte 0x0000132C _0802BF20: cmp r4, #0xa7 ble _0802BF5C cmp r4, #0xa9 bne _0802BF2E movs r0, #6 bl sub_11B0 _0802BF2E: cmp r4, #0xa8 bne _0802BF38 movs r0, #0x9e bl m4aSongNumStart _0802BF38: ldr r1, [r6] ldr r4, _0802BF54 @ =0x0000132C adds r1, r1, r4 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r7, _0802BF58 @ =0xFFFFFC00 adds r0, r7, #0 ldrh r2, [r1, #0xa] adds r0, r0, r2 b _0802C034 .align 2, 0 _0802BF54: .4byte 0x0000132C _0802BF58: .4byte 0xFFFFFC00 _0802BF5C: cmp r4, #0x9f ble _0802BF80 ldr r3, _0802BF7C @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] ldr r0, [r1, #0x34] adds r0, #0x60 str r0, [r1, #0x34] ldr r1, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r0, r4, #0 ldrh r7, [r1, #0xa] adds r0, r0, r7 b _0802C034 .align 2, 0 _0802BF7C: .4byte 0x0000132C _0802BF80: cmp r4, #0x7b bgt _0802C036 cmp r4, #0x73 ble _0802BFB8 cmp r4, #0x75 bne _0802BF92 movs r0, #6 bl sub_11B0 _0802BF92: cmp r4, #0x74 bne _0802BF9C movs r0, #0x9e bl m4aSongNumStart _0802BF9C: ldr r1, [r6] ldr r0, _0802BFB0 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r2, _0802BFB4 @ =0xFFFFFC00 b _0802C02E .align 2, 0 _0802BFB0: .4byte 0x0000132C _0802BFB4: .4byte 0xFFFFFC00 _0802BFB8: cmp r4, #0x6b ble _0802BFDC ldr r4, _0802BFD8 @ =0x0000132C adds r2, r2, r4 ldr r1, [r2] ldr r0, [r1, #0x34] adds r0, #0x60 str r0, [r1, #0x34] ldr r1, [r2] movs r7, #0x80 lsls r7, r7, #3 adds r0, r7, #0 ldrh r2, [r1, #0xa] adds r0, r0, r2 b _0802C034 .align 2, 0 _0802BFD8: .4byte 0x0000132C _0802BFDC: cmp r4, #0x63 ble _0802C018 cmp r4, #0x65 bne _0802BFEA movs r0, #6 bl sub_11B0 _0802BFEA: cmp r4, #0x64 bne _0802BFF4 movs r0, #0x9e bl m4aSongNumStart _0802BFF4: ldr r1, [r6] ldr r3, _0802C010 @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] ldr r0, [r2, #0x34] subs r0, #0x60 str r0, [r2, #0x34] ldr r1, [r1] ldr r4, _0802C014 @ =0xFFFFFC00 adds r0, r4, #0 ldrh r7, [r1, #0xa] adds r0, r0, r7 b _0802C034 .align 2, 0 _0802C010: .4byte 0x0000132C _0802C014: .4byte 0xFFFFFC00 _0802C018: cmp r4, #0x5b ble _0802C036 ldr r0, _0802C048 @ =0x0000132C adds r2, r2, r0 _0802C020: ldr r1, [r2] ldr r0, [r1, #0x34] adds r0, #0x60 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x80 lsls r2, r2, #3 _0802C02E: adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 _0802C034: strh r0, [r1, #0xa] _0802C036: cmp r5, #0 beq _0802C03C b _0802C4D2 _0802C03C: movs r0, #0x11 bl m4aSongNumStart bl sub_2312C b _0802C4D2 .align 2, 0 _0802C048: .4byte 0x0000132C _0802C04C: ldr r4, _0802C208 @ =0x020314E0 ldr r0, [r4] ldr r7, _0802C20C @ =0x0000132C adds r0, r0, r7 ldr r1, [r0] movs r0, #3 strb r0, [r1, #1] bl sub_23300 ldr r4, [r4] ldr r1, _0802C210 @ =0x000005A6 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0xe5 bhi _0802C07A movs r2, #0x84 lsls r2, r2, #2 adds r4, r4, r2 ldrh r0, [r4] cmp r0, #0x96 bne _0802C07A subs r0, #1 strh r0, [r4] _0802C07A: ldr r4, _0802C208 @ =0x020314E0 ldr r0, [r4] ldr r3, _0802C210 @ =0x000005A6 adds r0, r0, r3 ldrh r1, [r0] movs r0, #0x87 lsls r0, r0, #1 cmp r1, r0 bne _0802C0A6 ldr r0, _0802C214 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bhi _0802C0A6 movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r4, _0802C218 @ =0x000006C4 adds r0, r0, r4 movs r1, #0 strb r1, [r0] _0802C0A6: ldr r1, _0802C208 @ =0x020314E0 ldr r3, [r1] ldr r7, _0802C210 @ =0x000005A6 adds r4, r3, r7 ldrh r0, [r4] cmp r0, #0x1d bhi _0802C11C ldr r1, _0802C214 @ =0x0200B0C0 movs r0, #1 strh r0, [r1, #0x2c] ldrh r5, [r4] movs r1, #0xa6 lsls r1, r1, #2 adds r0, r3, r1 strh r5, [r0] movs r1, #0 lsls r0, r5, #0x10 asrs r0, r0, #0x10 ldr r2, _0802C21C @ =0x03005C00 mov r8, r2 cmp r1, r0 bgt _0802C10C mov r7, r8 adds r4, r0, #0 movs r6, #0xc1 lsls r6, r6, #8 _0802C0DA: movs r5, #1 lsls r2, r1, #0x10 asrs r3, r2, #0x10 _0802C0E0: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r7 strh r6, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802C0E0 movs r3, #0x80 lsls r3, r3, #9 adds r0, r2, r3 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 ble _0802C0DA _0802C10C: ldr r1, _0802C220 @ =0x040000D4 mov r4, r8 str r4, [r1] ldr r0, _0802C224 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802C228 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _0802C11C: ldr r7, _0802C208 @ =0x020314E0 ldr r0, [r7] ldr r1, _0802C210 @ =0x000005A6 adds r0, r0, r1 ldrh r0, [r0] subs r0, #0xf0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1d bhi _0802C1AE movs r1, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _0802C21C @ =0x03005C00 mov r8, r2 cmp r1, r0 bgt _0802C176 mov r6, r8 ldr r4, _0802C22C @ =0x000001FF adds r7, r0, #0 _0802C144: movs r5, #1 lsls r2, r1, #0x10 asrs r3, r2, #0x10 _0802C14A: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802C14A movs r3, #0x80 lsls r3, r3, #9 adds r0, r2, r3 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r7 ble _0802C144 _0802C176: ldr r1, _0802C220 @ =0x040000D4 mov r4, r8 str r4, [r1] ldr r0, _0802C224 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802C228 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _0802C208 @ =0x020314E0 ldr r0, [r7] ldr r1, _0802C210 @ =0x000005A6 adds r0, r0, r1 ldrh r1, [r0] ldr r0, _0802C230 @ =0x0000010D cmp r1, r0 bne _0802C1AE ldr r1, _0802C214 @ =0x0200B0C0 movs r2, #0 strh r2, [r1, #0x2c] ldrb r0, [r1, #4] cmp r0, #1 bhi _0802C1AE ldrh r0, [r1, #0x38] strh r2, [r1, #0x38] ldrh r0, [r1, #0x3c] strh r2, [r1, #0x3c] ldrh r0, [r1, #0x3a] strh r2, [r1, #0x3a] _0802C1AE: ldr r2, _0802C208 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0802C1C0 ldr r3, _0802C210 @ =0x000005A6 adds r1, r1, r3 movs r0, #0xb5 strh r0, [r1] _0802C1C0: ldr r4, _0802C208 @ =0x020314E0 ldr r1, [r4] ldr r7, _0802C210 @ =0x000005A6 adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0xb4 beq _0802C1D0 b _0802C4D2 _0802C1D0: movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 beq _0802C1DC cmp r0, #8 bne _0802C28C _0802C1DC: movs r0, #1 strb r0, [r1, #0x1c] ldr r0, _0802C208 @ =0x020314E0 ldr r1, [r0] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x8d beq _0802C268 cmp r0, #0x8d bgt _0802C23E cmp r0, #0x84 beq _0802C268 cmp r0, #0x84 bgt _0802C234 cmp r0, #0x3b beq _0802C268 cmp r0, #0x72 beq _0802C268 b _0802C284 .align 2, 0 _0802C208: .4byte 0x020314E0 _0802C20C: .4byte 0x0000132C _0802C210: .4byte 0x000005A6 _0802C214: .4byte 0x0200B0C0 _0802C218: .4byte 0x000006C4 _0802C21C: .4byte 0x03005C00 _0802C220: .4byte 0x040000D4 _0802C224: .4byte 0x06002000 _0802C228: .4byte 0x80000400 _0802C22C: .4byte 0x000001FF _0802C230: .4byte 0x0000010D _0802C234: cmp r0, #0x86 beq _0802C268 cmp r0, #0x8b beq _0802C268 b _0802C284 _0802C23E: cmp r0, #0xa0 beq _0802C268 cmp r0, #0xa0 bgt _0802C250 cmp r0, #0x90 beq _0802C268 cmp r0, #0x97 beq _0802C268 b _0802C284 _0802C250: cmp r0, #0xc4 bgt _0802C284 cmp r0, #0xc3 blt _0802C284 ldr r0, _0802C260 @ =0x000222E0 str r0, [r1, #0x38] ldr r0, _0802C264 @ =0x00989680 b _0802C28A .align 2, 0 _0802C260: .4byte 0x000222E0 _0802C264: .4byte 0x00989680 _0802C268: ldr r3, _0802C278 @ =0x020314E0 ldr r0, [r3] ldr r1, _0802C27C @ =0x00013880 str r1, [r0, #0x38] ldr r1, _0802C280 @ =0x004C4B40 str r1, [r0, #0x3c] b _0802C28C .align 2, 0 _0802C278: .4byte 0x020314E0 _0802C27C: .4byte 0x00013880 _0802C280: .4byte 0x004C4B40 _0802C284: ldr r4, _0802C2B4 @ =0x020314E0 ldr r1, [r4] ldr r0, _0802C2B8 @ =0x000F4240 _0802C28A: str r0, [r1, #0x3c] _0802C28C: ldr r7, _0802C2B4 @ =0x020314E0 ldr r1, [r7] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _0802C2C8 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x9a bne _0802C2C4 ldr r0, _0802C2BC @ =0x000222E0 str r0, [r1, #0x38] ldr r0, _0802C2C0 @ =0x00989680 b _0802C2C6 .align 2, 0 _0802C2B4: .4byte 0x020314E0 _0802C2B8: .4byte 0x000F4240 _0802C2BC: .4byte 0x000222E0 _0802C2C0: .4byte 0x00989680 _0802C2C4: ldr r0, _0802C2EC @ =0x002DC6C0 _0802C2C6: str r0, [r1, #0x3c] _0802C2C8: ldr r3, _0802C2F0 @ =0x0200B0C0 ldrb r0, [r3, #4] cmp r0, #2 bhi _0802C2D2 b _0802C4D2 _0802C2D2: ldr r2, _0802C2F4 @ =0x020314E0 ldr r0, [r2] movs r1, #1 strb r1, [r0, #0x1c] ldrb r0, [r3, #4] cmp r0, #6 bne _0802C300 ldr r0, [r2] ldr r1, _0802C2F8 @ =0x00061A80 str r1, [r0, #0x38] ldr r1, _0802C2FC @ =0x01C9C380 str r1, [r0, #0x3c] b _0802C4D2 .align 2, 0 _0802C2EC: .4byte 0x002DC6C0 _0802C2F0: .4byte 0x0200B0C0 _0802C2F4: .4byte 0x020314E0 _0802C2F8: .4byte 0x00061A80 _0802C2FC: .4byte 0x01C9C380 _0802C300: ldr r0, [r2] ldr r1, _0802C30C @ =0x00061A80 str r1, [r0, #0x38] ldr r1, _0802C310 @ =0x00989680 str r1, [r0, #0x3c] b _0802C4D2 .align 2, 0 _0802C30C: .4byte 0x00061A80 _0802C310: .4byte 0x00989680 _0802C314: ldr r3, _0802C38C @ =0x020314E0 ldr r0, [r3] ldr r4, _0802C390 @ =0x000005F7 adds r0, r0, r4 movs r3, #0 strb r3, [r0] ldr r7, _0802C38C @ =0x020314E0 ldr r0, [r7] ldr r1, _0802C394 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] movs r4, #3 strb r4, [r0, #1] ldr r0, [r7] ldr r2, _0802C398 @ =0x000005A4 adds r0, r0, r2 strb r3, [r0] ldr r0, [r7] ldr r7, _0802C39C @ =0x000005A6 adds r1, r0, r7 movs r2, #0 strh r3, [r1] movs r1, #0xb5 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, _0802C3A0 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bls _0802C352 b _0802C48C _0802C352: ldr r3, _0802C38C @ =0x020314E0 ldr r0, [r3] strb r2, [r0, #0x1f] ldr r0, [r3] ldr r4, _0802C394 @ =0x0000132C adds r0, r0, r4 ldr r2, [r0] ldr r1, _0802C3A4 @ =0x0000FFF6 strh r1, [r2, #0x32] ldr r1, [r0] movs r0, #0x14 strh r0, [r1, #0x30] movs r5, #0 ldr r3, _0802C3A8 @ =0x0000071D _0802C36E: ldr r7, _0802C38C @ =0x020314E0 ldr r2, [r7] ldr r1, _0802C3AC @ =0x00000723 adds r0, r2, r1 lsls r1, r5, #0x10 asrs r1, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bge _0802C3B0 adds r0, r2, r3 adds r0, r0, r1 movs r1, #1 b _0802C3B6 .align 2, 0 _0802C38C: .4byte 0x020314E0 _0802C390: .4byte 0x000005F7 _0802C394: .4byte 0x0000132C _0802C398: .4byte 0x000005A4 _0802C39C: .4byte 0x000005A6 _0802C3A0: .4byte 0x0200B0C0 _0802C3A4: .4byte 0x0000FFF6 _0802C3A8: .4byte 0x0000071D _0802C3AC: .4byte 0x00000723 _0802C3B0: adds r0, r2, r3 adds r0, r0, r1 movs r1, #0 _0802C3B6: strb r1, [r0] lsls r0, r5, #0x10 movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0802C36E ldr r4, _0802C474 @ =0x020314E0 ldr r1, [r4] ldr r3, _0802C478 @ =0x00000723 adds r0, r1, r3 ldrb r3, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0802C41A ldr r2, _0802C47C @ =0x00000721 adds r0, r1, r2 strb r3, [r0] ldr r0, [r4] ldr r7, _0802C478 @ =0x00000723 adds r1, r0, r7 ldrb r1, [r1] ldr r3, _0802C480 @ =0x00000722 adds r0, r0, r3 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 movs r1, #0 ldrsb r1, [r2, r1] subs r7, #6 adds r0, r0, r7 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r1, #0xe4 lsls r1, r1, #3 adds r0, r0, r1 movs r1, #0x78 strb r1, [r0] ldr r1, [r4] ldr r2, _0802C478 @ =0x00000723 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0802C41A: ldr r2, [r4] movs r3, #0xbe lsls r3, r3, #3 adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _0802C438 ldr r7, _0802C484 @ =0x00000286 adds r1, r2, r7 movs r0, #0x5a strh r0, [r1] _0802C438: ldr r0, [r4] ldr r2, _0802C488 @ =0x0000062A adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x62 bhi _0802C448 adds r0, #1 strb r0, [r1] _0802C448: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0802C456 movs r0, #0xa strb r0, [r1, #0x17] _0802C456: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #8 bne _0802C464 movs r0, #5 strb r0, [r1, #0x17] _0802C464: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _0802C4CC movs r0, #6 strb r0, [r1, #0x17] b _0802C4CC .align 2, 0 _0802C474: .4byte 0x020314E0 _0802C478: .4byte 0x00000723 _0802C47C: .4byte 0x00000721 _0802C480: .4byte 0x00000722 _0802C484: .4byte 0x00000286 _0802C488: .4byte 0x0000062A _0802C48C: ldr r7, _0802C528 @ =0x020314E0 ldr r1, [r7] movs r0, #1 strb r0, [r1, #0x1f] ldr r1, [r7] ldr r0, _0802C52C @ =0x0000132C adds r2, r1, r0 ldr r0, [r2] strh r3, [r0, #0x32] ldr r0, [r2] strh r3, [r0, #0x30] ldr r2, _0802C530 @ =0x000006C4 adds r1, r1, r2 strb r4, [r1] ldr r1, [r7] movs r0, #4 strb r0, [r1, #0x13] ldr r2, [r7] movs r3, #0xbe lsls r3, r3, #3 adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xf bne _0802C4CC ldr r4, _0802C534 @ =0x00000286 adds r1, r2, r4 movs r0, #0x5b strh r0, [r1] _0802C4CC: movs r0, #0 bl sub_31CF8 _0802C4D2: ldr r4, _0802C528 @ =0x020314E0 ldr r1, [r4] ldr r3, _0802C52C @ =0x0000132C adds r1, r1, r3 ldr r2, [r1] ldrh r0, [r2, #0x10] strh r0, [r2, #0x14] ldr r1, [r1] ldrh r0, [r1, #0x12] strh r0, [r1, #0x16] movs r5, #2 adds r7, r4, #0 adds r6, r3, #0 _0802C4EC: ldr r3, [r7] adds r3, r3, r6 ldr r0, [r3] lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r2, r1, #1 lsls r2, r2, #2 adds r4, r0, r2 lsls r5, r1, #2 adds r0, r0, r5 ldrh r0, [r0, #0x14] strh r0, [r4, #0x14] ldr r0, [r3] adds r2, r0, r2 adds r0, r0, r5 ldrh r0, [r0, #0x16] strh r0, [r2, #0x16] subs r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 cmp r1, #0 bge _0802C4EC thumb_func_start sub_2C518 sub_2C518: @ 0x0802C518 add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802C528: .4byte 0x020314E0 _0802C52C: .4byte 0x0000132C _0802C530: .4byte 0x000006C4 _0802C534: .4byte 0x00000286 thumb_func_start sub_2C538 sub_2C538: @ 0x0802C538 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r0, #0 mov sb, r0 ldr r1, _0802C568 @ =0x020314E0 ldr r0, [r1] movs r2, #0xc0 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 cmp r0, #5 bls _0802C55C b _0802C784 _0802C55C: lsls r0, r0, #2 ldr r1, _0802C56C @ =_0802C570 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802C568: .4byte 0x020314E0 _0802C56C: .4byte _0802C570 _0802C570: @ jump table .4byte _0802C588 @ case 0 .4byte _0802C5BC @ case 1 .4byte _0802C614 @ case 2 .4byte _0802C650 @ case 3 .4byte _0802C6C0 @ case 4 .4byte _0802C708 @ case 5 _0802C588: ldr r5, [r7] movs r3, #0xc1 lsls r3, r3, #2 adds r6, r5, r3 ldrh r4, [r6] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 movs r0, #0 strh r4, [r6] ldr r1, _0802C5B8 @ =0x00000301 adds r5, r5, r1 strb r0, [r5] b _0802C784 .align 2, 0 _0802C5B8: .4byte 0x00000301 _0802C5BC: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 strh r4, [r5] ldr r2, _0802C610 @ =0x00000301 adds r0, r6, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802C608 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #2 strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _0802C608: ldr r0, [r7] adds r0, r0, r2 b _0802C780 .align 2, 0 _0802C610: .4byte 0x00000301 _0802C614: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #9 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #3 bl __udivsi3 adds r0, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #9 beq _0802C646 b _0802C784 _0802C646: movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #3 b _0802C6F8 _0802C650: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 mov r8, r2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 movs r2, #0 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0x41 bls _0802C698 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #1 strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 strh r2, [r0] _0802C698: ldr r1, [r7] mov r3, r8 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #6 bls _0802C784 ldr r3, _0802C6BC @ =0x00000301 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802C784 movs r0, #0xc0 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #4 b _0802C772 .align 2, 0 _0802C6BC: .4byte 0x00000301 _0802C6C0: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #9 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #3 bl __udivsi3 adds r0, #7 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #9 bne _0802C784 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #5 _0802C6F8: strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strh r1, [r0] b _0802C784 _0802C708: ldr r6, [r7] movs r2, #0xc1 lsls r2, r2, #2 mov r8, r2 adds r5, r6, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x12 bl __udivsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 adds r4, #1 movs r2, #0 strh r4, [r5] lsls r4, r4, #0x10 lsrs r4, r4, #0x10 cmp r4, #0x41 bls _0802C750 movs r3, #0xc0 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #1 strb r0, [r1] ldr r0, [r7] movs r1, #0xc1 lsls r1, r1, #2 adds r0, r0, r1 strh r2, [r0] _0802C750: ldr r1, [r7] mov r3, r8 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #6 bls _0802C784 ldr r3, _0802C7B8 @ =0x00000301 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802C784 movs r0, #0xc0 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #2 _0802C772: strb r0, [r1] ldr r0, [r7] mov r3, r8 adds r1, r0, r3 strh r2, [r1] ldr r1, _0802C7B8 @ =0x00000301 adds r0, r0, r1 _0802C780: movs r1, #0 strb r1, [r0] _0802C784: ldr r6, _0802C7BC @ =0x0200E498 ldrh r0, [r6] cmp r0, #0 beq _0802C83C ldr r1, [r7] movs r2, #0xc0 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0802C7C4 adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xbc subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] ldr r3, _0802C7C0 @ =0x00000119 adds r0, r3, #0 b _0802C7DC .align 2, 0 _0802C7B8: .4byte 0x00000301 _0802C7BC: .4byte 0x0200E498 _0802C7C0: .4byte 0x00000119 _0802C7C4: adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc0 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r2, #0x8b lsls r2, r2, #1 adds r0, r2, #0 _0802C7DC: subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r7] ldr r3, _0802C95C @ =0x00000302 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0802C808 subs r0, r2, #1 strb r0, [r1] ldr r0, [r7] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0802C808 ldr r0, _0802C960 @ =0x0200B0C0 ldr r2, _0802C964 @ =0x000033D8 adds r0, r0, r2 strh r1, [r0] _0802C808: adds r5, r6, #0 adds r5, #8 ldr r4, _0802C968 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802C96C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802C970 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _0802C83C: ldr r2, [r7] movs r1, #0xc0 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _0802C852 cmp r0, #2 bne _0802C8C0 _0802C852: ldr r4, _0802C974 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] movs r3, #0x10 ldrsh r1, [r0, r3] subs r1, #0xbe movs r3, #0x12 ldrsh r0, [r0, r3] ldr r3, _0802C978 @ =0xFFFFFEE3 adds r0, r0, r3 adds r3, r1, #0 muls r3, r1, r3 adds r1, r3, #0 adds r3, r0, #0 muls r3, r0, r3 adds r0, r3, #0 adds r1, r1, r0 cmp r1, #0x8c bhi _0802C8C0 ldr r1, _0802C95C @ =0x00000302 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0802C8C0 movs r0, #0xc5 bl m4aSongNumStart ldr r1, [r7] ldr r0, _0802C97C @ =0x00002710 str r0, [r1, #0x3c] adds r1, r1, r4 ldr r2, [r1] movs r3, #0 ldr r0, _0802C980 @ =0x0000FDA8 strh r0, [r2, #0x30] ldr r2, [r1] ldr r0, _0802C984 @ =0x0000FED4 strh r0, [r2, #0x32] ldr r0, [r1] strh r3, [r0, #6] ldr r0, _0802C960 @ =0x0200B0C0 ldr r2, _0802C964 @ =0x000033D8 adds r0, r0, r2 movs r1, #1 strh r1, [r0] ldr r0, [r7] ldr r3, _0802C95C @ =0x00000302 adds r0, r0, r3 movs r1, #6 strb r1, [r0] movs r0, #8 bl sub_11B0 _0802C8C0: ldr r6, _0802C988 @ =0x0200DD68 ldrh r0, [r6] cmp r0, #0 beq _0802C94E ldr r2, _0802C98C @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xb8 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] ldr r2, _0802C990 @ =0x00000115 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r2, _0802C994 @ =0x040000D4 mov r3, sb lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0802C998 @ =0x0847DF0C adds r0, r0, r1 str r0, [r2] ldr r0, _0802C99C @ =0x06013580 str r0, [r2, #4] ldr r0, _0802C9A0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _0802C968 @ =0x03005000 ldr r1, _0802C970 @ =0xFFFFFE00 mov r8, r1 _0802C90A: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802C96C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _0802C90A _0802C94E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802C95C: .4byte 0x00000302 _0802C960: .4byte 0x0200B0C0 _0802C964: .4byte 0x000033D8 _0802C968: .4byte 0x03005000 _0802C96C: .4byte 0x000001FF _0802C970: .4byte 0xFFFFFE00 _0802C974: .4byte 0x0000132C _0802C978: .4byte 0xFFFFFEE3 _0802C97C: .4byte 0x00002710 _0802C980: .4byte 0x0000FDA8 _0802C984: .4byte 0x0000FED4 _0802C988: .4byte 0x0200DD68 _0802C98C: .4byte 0x020314E0 _0802C990: .4byte 0x00000115 _0802C994: .4byte 0x040000D4 _0802C998: .4byte 0x0847DF0C _0802C99C: .4byte 0x06013580 _0802C9A0: .4byte 0x80000180 thumb_func_start sub_2C9A4 sub_2C9A4: @ 0x0802C9A4 push {r4, r5, r6, lr} ldr r6, _0802C9E0 @ =0x0200E328 ldrh r0, [r6] cmp r0, #0 beq _0802CA7A ldr r0, _0802C9E4 @ =0x020314E0 ldr r2, [r0] ldr r3, _0802C9E8 @ =0x0000029F adds r1, r2, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r3, r0, #0 cmp r1, #0 beq _0802C9EC movs r1, #0xa4 lsls r1, r1, #2 adds r0, r2, r1 ldr r1, [r0] movs r0, #0x1f ands r1, r0 lsrs r1, r1, #3 adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] subs r0, #0x34 subs r1, r1, r0 strh r1, [r6, #4] b _0802C9F0 .align 2, 0 _0802C9E0: .4byte 0x0200E328 _0802C9E4: .4byte 0x020314E0 _0802C9E8: .4byte 0x0000029F _0802C9EC: movs r0, #0xb4 strh r0, [r6, #4] _0802C9F0: ldr r2, [r3] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _0802CA20 @ =0x0000029F adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0802CA24 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r2, r1 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 adds r0, #4 b _0802CA32 .align 2, 0 _0802CA20: .4byte 0x0000029F _0802CA24: movs r3, #0xa4 lsls r3, r3, #2 adds r0, r2, r3 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 _0802CA32: ldr r2, _0802CA80 @ =0x040000D4 lsls r0, r0, #7 ldr r1, _0802CA84 @ =0x084FEF0C adds r0, r0, r1 str r0, [r2] ldr r0, _0802CA88 @ =0x06014B00 str r0, [r2, #4] ldr r0, _0802CA8C @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _0802CA90 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802CA94 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802CA98 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _0802CA7A: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0802CA80: .4byte 0x040000D4 _0802CA84: .4byte 0x084FEF0C _0802CA88: .4byte 0x06014B00 _0802CA8C: .4byte 0x80000040 _0802CA90: .4byte 0x03005000 _0802CA94: .4byte 0x000001FF _0802CA98: .4byte 0xFFFFFE00 thumb_func_start sub_2CA9C sub_2CA9C: @ 0x0802CA9C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r0, #0 mov ip, r0 ldr r0, _0802CADC @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xc8 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 bne _0802CAB8 b _0802CCF2 _0802CAB8: movs r0, #0xca strh r0, [r6, #2] ldr r0, _0802CAE0 @ =0x020314E0 ldr r0, [r0] ldr r1, _0802CAE4 @ =0x00000286 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x30 bls _0802CB44 subs r0, #0x30 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x21 ble _0802CAE8 movs r1, #0x2a subs r1, r1, r0 lsls r1, r1, #1 b _0802CB12 .align 2, 0 _0802CADC: .4byte 0x0200B0C0 _0802CAE0: .4byte 0x020314E0 _0802CAE4: .4byte 0x00000286 _0802CAE8: cmp r0, #0x17 ble _0802CAFC movs r0, #0x82 strh r0, [r6, #4] movs r0, #1 ldr r3, _0802CAF8 @ =0x0000FFF7 mov ip, r3 b _0802CB1A .align 2, 0 _0802CAF8: .4byte 0x0000FFF7 _0802CAFC: cmp r0, #7 ble _0802CB10 movs r0, #0x82 strh r0, [r6, #4] movs r0, #2 ldr r1, _0802CB0C @ =0x0000FFFC mov ip, r1 b _0802CB1A .align 2, 0 _0802CB0C: .4byte 0x0000FFFC _0802CB10: lsls r1, r0, #1 _0802CB12: movs r0, #0x92 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 _0802CB1A: ldr r2, _0802CB34 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #7 ldr r1, _0802CB38 @ =0x08455E8C adds r0, r0, r1 str r0, [r2] ldr r0, _0802CB3C @ =0x060152A0 str r0, [r2, #4] ldr r0, _0802CB40 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] b _0802CB48 .align 2, 0 _0802CB34: .4byte 0x040000D4 _0802CB38: .4byte 0x08455E8C _0802CB3C: .4byte 0x060152A0 _0802CB40: .4byte 0x80000100 _0802CB44: movs r0, #0xb4 strh r0, [r6, #4] _0802CB48: adds r5, r6, #0 adds r5, #8 ldr r4, _0802CB90 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802CB94 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802CB98 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r0, _0802CB9C @ =0x020314E0 ldr r0, [r0] ldr r1, _0802CBA0 @ =0x00000286 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #0x38 bls _0802CBA4 movs r7, #0x80 lsls r7, r7, #1 b _0802CBD6 .align 2, 0 _0802CB90: .4byte 0x03005000 _0802CB94: .4byte 0x000001FF _0802CB98: .4byte 0xFFFFFE00 _0802CB9C: .4byte 0x020314E0 _0802CBA0: .4byte 0x00000286 _0802CBA4: subs r0, #0x24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 blt _0802CBCC lsls r0, r0, #7 movs r1, #0x14 bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 movs r0, #0x82 strh r0, [r6, #4] ldr r3, _0802CBC8 @ =0x0000FFFE mov ip, r3 b _0802CBD6 .align 2, 0 _0802CBC8: .4byte 0x0000FFFE _0802CBCC: movs r7, #0x80 movs r0, #0xb4 strh r0, [r6, #4] movs r0, #0 mov ip, r0 _0802CBD6: adds r5, r6, #0 adds r5, #0x10 ldrh r2, [r6, #0x10] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r0, _0802CCA8 @ =0x000001FF mov r8, r0 mov r3, r8 ands r1, r3 ldrh r3, [r2, #2] ldr r0, _0802CCAC @ =0xFFFFFE00 mov sb, r0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #0x10] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 add r0, ip strb r0, [r1] ldrh r2, [r6, #0x10] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #1] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r6, #0x10] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 movs r1, #0xc orrs r0, r1 strb r0, [r2, #3] lsls r1, r7, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #6 bl sub_7C0 ldr r0, _0802CCB0 @ =0x020314E0 ldr r1, [r0] ldr r0, _0802CCB4 @ =0x00000286 adds r3, r1, r0 ldrh r0, [r3] cmp r0, #0x39 bhi _0802CCC8 adds r0, r1, #0 adds r0, #0x30 movs r2, #0 ldrsb r2, [r0, r2] ldrh r1, [r3] movs r0, #0xf ands r1, r0 lsrs r1, r1, #3 lsls r0, r1, #3 adds r0, r0, r1 subs r0, #1 ldr r1, _0802CCB8 @ =0x040000D4 adds r2, r2, r0 lsls r2, r2, #6 ldr r0, _0802CCBC @ =0x0845648C adds r2, r2, r0 str r2, [r1] ldr r0, _0802CCC0 @ =0x06015520 str r0, [r1, #4] ldr r0, _0802CCC4 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] adds r5, r6, #0 adds r5, #0x18 ldrh r2, [r6, #0x18] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] adds r1, #0xd8 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #0x18] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r5, #4] subs r0, #0x70 b _0802CCF0 .align 2, 0 _0802CCA8: .4byte 0x000001FF _0802CCAC: .4byte 0xFFFFFE00 _0802CCB0: .4byte 0x020314E0 _0802CCB4: .4byte 0x00000286 _0802CCB8: .4byte 0x040000D4 _0802CCBC: .4byte 0x0845648C _0802CCC0: .4byte 0x06015520 _0802CCC4: .4byte 0x80000020 _0802CCC8: adds r5, r6, #0 adds r5, #0x18 ldrh r2, [r6, #0x18] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] adds r1, #0xd8 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #0x18] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r5, #4] subs r0, #0x4c _0802CCF0: strb r0, [r1] _0802CCF2: ldr r5, _0802CD74 @ =0x020314E0 ldr r0, [r5] ldr r4, _0802CD78 @ =0x00000286 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 beq _0802CD68 cmp r0, #0x5a bne _0802CD18 movs r0, #1 strh r0, [r6] ldr r1, _0802CD7C @ =0x040000D4 ldr r0, _0802CD80 @ =0x086AE324 str r0, [r1] ldr r0, _0802CD84 @ =0x05000380 str r0, [r1, #4] ldr r0, _0802CD88 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802CD18: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x55 bne _0802CD2A ldr r0, _0802CD8C @ =0x02032F20 ldr r1, _0802CD90 @ =0x086A1ABC bl MPlayStart _0802CD2A: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x3a bne _0802CD50 ldr r0, _0802CD8C @ =0x02032F20 ldr r1, _0802CD94 @ =0x0869F2A0 bl MPlayStart ldr r0, [r5] adds r1, r0, #0 adds r1, #0x30 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bgt _0802CD50 adds r0, r2, #1 strb r0, [r1] _0802CD50: ldr r0, _0802CD74 @ =0x020314E0 ldr r1, [r0] ldr r3, _0802CD78 @ =0x00000286 adds r1, r1, r3 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0 bne _0802CD68 strh r0, [r6] _0802CD68: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802CD74: .4byte 0x020314E0 _0802CD78: .4byte 0x00000286 _0802CD7C: .4byte 0x040000D4 _0802CD80: .4byte 0x086AE324 _0802CD84: .4byte 0x05000380 _0802CD88: .4byte 0x80000010 _0802CD8C: .4byte 0x02032F20 _0802CD90: .4byte 0x086A1ABC _0802CD94: .4byte 0x0869F2A0 thumb_func_start sub_2CD98 sub_2CD98: @ 0x0802CD98 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0802CE6C @ =0x0200B0C0 ldr r1, [r0, #0x44] ldr r6, [r1, #0x28] ldrh r1, [r6] mov sb, r0 ldr r0, _0802CE70 @ =0x020314E0 mov ip, r0 cmp r1, #0 beq _0802CE0E ldr r0, [r0] movs r1, #0xb5 lsls r1, r1, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r6, #2] movs r0, #0x2c strh r0, [r6, #4] movs r0, #0 ldr r7, _0802CE74 @ =0x03005000 ldr r2, _0802CE78 @ =0xFFFFFE00 mov r8, r2 _0802CDCA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r0, #2 ldrsh r1, [r3, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802CE7C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #6 ble _0802CDCA _0802CE0E: mov r4, ip ldr r0, [r4] adds r0, #0xf4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 ble _0802CE5E cmp r0, #0x78 bne _0802CE2A mov r2, sb ldr r0, [r2, #0x44] ldr r1, [r0, #0x28] movs r0, #1 strh r0, [r1] _0802CE2A: mov r4, ip ldr r3, [r4] adds r2, r3, #0 adds r2, #0xf4 movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x78 subs r0, r0, r1 lsls r1, r0, #1 adds r1, r1, r0 movs r4, #0x87 lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 adds r4, #0x5c adds r1, r3, r4 strh r0, [r1] movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #1 bne _0802CE5E mov r2, sb ldr r0, [r2, #0x44] ldr r1, [r0, #0x28] movs r0, #0 strh r0, [r1] _0802CE5E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802CE6C: .4byte 0x0200B0C0 _0802CE70: .4byte 0x020314E0 _0802CE74: .4byte 0x03005000 _0802CE78: .4byte 0xFFFFFE00 _0802CE7C: .4byte 0x000001FF thumb_func_start sub_2CE80 sub_2CE80: @ 0x0802CE80 push {r4, r5, lr} ldr r0, _0802CEC0 @ =0x020314E0 ldr r4, [r0] adds r1, r4, #0 adds r1, #0x68 movs r2, #0 ldrsh r1, [r1, r2] adds r5, r0, #0 cmp r1, #0xa9 bgt _0802CED8 ldr r3, _0802CEC4 @ =0x040000D4 ldr r0, _0802CEC8 @ =0x0200B0C0 ldrb r0, [r0, #4] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #6 adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #6 ldr r2, _0802CECC @ =0x08137B3C adds r0, r0, r2 adds r1, r1, r0 str r1, [r3] ldr r0, _0802CED0 @ =0x05000360 str r0, [r3, #4] ldr r0, _0802CED4 @ =0x80000010 str r0, [r3, #8] ldr r0, [r3, #8] b _0802CF02 .align 2, 0 _0802CEC0: .4byte 0x020314E0 _0802CEC4: .4byte 0x040000D4 _0802CEC8: .4byte 0x0200B0C0 _0802CECC: .4byte 0x08137B3C _0802CED0: .4byte 0x05000360 _0802CED4: .4byte 0x80000010 _0802CED8: ldr r2, _0802CF20 @ =0x040000D4 ldr r0, _0802CF24 @ =0x0200B0C0 ldrb r0, [r0, #4] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #6 ldr r0, _0802CF28 @ =0x08137B5C adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #6 adds r1, r1, r0 str r1, [r2] ldr r0, _0802CF2C @ =0x05000360 str r0, [r2, #4] ldr r0, _0802CF30 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0802CF02: ldr r0, [r5] ldr r3, _0802CF34 @ =0x00000163 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bls _0802CF14 b _0802D0FA _0802CF14: lsls r0, r0, #2 ldr r1, _0802CF38 @ =_0802CF3C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802CF20: .4byte 0x040000D4 _0802CF24: .4byte 0x0200B0C0 _0802CF28: .4byte 0x08137B5C _0802CF2C: .4byte 0x05000360 _0802CF30: .4byte 0x80000010 _0802CF34: .4byte 0x00000163 _0802CF38: .4byte _0802CF3C _0802CF3C: @ jump table .4byte _0802CF50 @ case 0 .4byte _0802CFAC @ case 1 .4byte _0802D02C @ case 2 .4byte _0802D074 @ case 3 .4byte _0802D0A4 @ case 4 _0802CF50: ldr r0, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r4, [r5] movs r2, #0xb4 lsls r2, r2, #1 adds r0, r4, r2 strh r1, [r0] ldr r3, _0802CF90 @ =0x00000165 adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 beq _0802CF94 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r4, r1 ldr r0, [r0] movs r1, #0x1e bl __umodsi3 movs r1, #0xf bl __udivsi3 movs r2, #0xb3 lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] b _0802CF9C .align 2, 0 _0802CF90: .4byte 0x00000165 _0802CF94: movs r3, #0xb3 lsls r3, r3, #1 adds r0, r4, r3 strh r1, [r0] _0802CF9C: ldr r0, [r5] ldr r4, _0802CFA8 @ =0x00000165 adds r1, r0, r4 movs r0, #0 strb r0, [r1] b _0802D0FA .align 2, 0 _0802CFA8: .4byte 0x00000165 _0802CFAC: ldr r1, [r5] movs r2, #0xb4 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #4 bhi _0802D00A cmp r0, #1 bhi _0802CFD4 movs r3, #0xb2 lsls r3, r3, #1 adds r1, r1, r3 movs r0, #2 strb r0, [r1] ldr r0, [r5] movs r4, #0xb3 lsls r4, r4, #1 adds r1, r0, r4 movs r0, #3 b _0802CFE8 _0802CFD4: movs r0, #0xb2 lsls r0, r0, #1 adds r1, r1, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] movs r2, #0xb3 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #5 _0802CFE8: strh r0, [r1] ldr r0, [r5] movs r4, #0xb4 lsls r4, r4, #1 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0802CFFE movs r0, #0xcc bl m4aSongNumStart _0802CFFE: ldr r1, [r5] adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0802D0FA _0802D00A: ldr r3, _0802D028 @ =0x00000163 adds r1, r1, r3 movs r2, #0 movs r0, #2 strb r0, [r1] ldr r0, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r0, r0, r4 movs r1, #4 strb r1, [r0] ldr r0, [r5] movs r1, #0xb4 lsls r1, r1, #1 b _0802D09A .align 2, 0 _0802D028: .4byte 0x00000163 _0802D02C: ldr r0, _0802D070 @ =0x086AE344 ldr r2, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r3, r2, r4 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r4, #0 ldrsh r0, [r1, r4] movs r4, #0xb4 lsls r4, r4, #1 adds r1, r2, r4 ldrh r2, [r1] cmp r0, r2 bgt _0802D0C8 movs r0, #0 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r5] movs r2, #0xb2 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #7 ble _0802D0FA movs r0, #4 strb r0, [r1] b _0802D0FA .align 2, 0 _0802D070: .4byte 0x086AE344 _0802D074: ldr r0, [r5] movs r3, #0xb2 lsls r3, r3, #1 adds r0, r0, r3 movs r2, #0 movs r1, #8 strb r1, [r0] ldr r1, [r5] movs r4, #0xb4 lsls r4, r4, #1 adds r0, r1, r4 strh r2, [r0] ldr r0, _0802D0A0 @ =0x00000163 adds r1, r1, r0 movs r0, #4 strb r0, [r1] ldr r0, [r5] movs r1, #0xb3 lsls r1, r1, #1 _0802D09A: adds r0, r0, r1 strh r2, [r0] b _0802D0FA .align 2, 0 _0802D0A0: .4byte 0x00000163 _0802D0A4: ldr r0, _0802D0D0 @ =0x086AE344 ldr r2, [r5] movs r4, #0xb2 lsls r4, r4, #1 adds r3, r2, r4 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r4, #0 ldrsh r0, [r1, r4] movs r4, #0xb4 lsls r4, r4, #1 adds r1, r2, r4 ldrh r2, [r1] cmp r0, r2 ble _0802D0D4 _0802D0C8: adds r0, r2, #1 strh r0, [r1] b _0802D0FA .align 2, 0 _0802D0D0: .4byte 0x086AE344 _0802D0D4: movs r2, #0 movs r0, #0 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r5] movs r3, #0xb2 lsls r3, r3, #1 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x13 ble _0802D0FA strb r2, [r1] ldr r0, [r5] ldr r4, _0802D100 @ =0x00000163 adds r0, r0, r4 strb r2, [r0] _0802D0FA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0802D100: .4byte 0x00000163 thumb_func_start sub_2D104 sub_2D104: @ 0x0802D104 push {r4, r5, r6, r7, lr} ldr r0, _0802D144 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xb0 ldr r6, [r0] ldrh r0, [r6] cmp r0, #0 beq _0802D1DC ldr r1, _0802D148 @ =0x020314E0 ldr r3, [r1] movs r0, #0xb2 lsls r0, r0, #1 adds r2, r3, r0 movs r0, #0 ldrsb r0, [r2, r0] adds r4, r1, #0 cmp r0, #0 bne _0802D14C movs r1, #0xa4 lsls r1, r1, #2 adds r0, r3, r1 ldr r0, [r0] movs r1, #0x1e bl __umodsi3 movs r1, #0xf bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 b _0802D158 .align 2, 0 _0802D144: .4byte 0x0200B0C0 _0802D148: .4byte 0x020314E0 _0802D14C: ldr r1, _0802D1E4 @ =0x086AE344 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] _0802D158: ldr r2, _0802D1E8 @ =0x040000D4 lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, _0802D1EC @ =0x083C076C adds r0, r0, r1 str r0, [r2] ldr r0, _0802D1F0 @ =0x060120E0 str r0, [r2, #4] ldr r0, _0802D1F4 @ =0x800000E0 str r0, [r2, #8] ldr r0, [r2, #8] ldr r1, [r4] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0xe7 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r2, #0xbc lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _0802D1F8 @ =0x03005000 ldr r1, _0802D1FC @ =0xFFFFFE00 mov ip, r1 _0802D198: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802D200 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _0802D198 _0802D1DC: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802D1E4: .4byte 0x086AE344 _0802D1E8: .4byte 0x040000D4 _0802D1EC: .4byte 0x083C076C _0802D1F0: .4byte 0x060120E0 _0802D1F4: .4byte 0x800000E0 _0802D1F8: .4byte 0x03005000 _0802D1FC: .4byte 0xFFFFFE00 _0802D200: .4byte 0x000001FF thumb_func_start sub_2D204 sub_2D204: @ 0x0802D204 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0802D358 @ =0xFFFFFDE0 add sp, r4 ldr r1, _0802D35C @ =0x020314E0 ldr r2, [r1] ldrh r3, [r2, #0x18] adds r4, r3, #0 movs r0, #0xb4 lsls r0, r0, #1 cmp r4, r0 bls _0802D226 bl sub_2DE54 _0802D226: cmp r4, #0 bne _0802D254 bl m4aMPlayAllStop ldr r1, _0802D360 @ =0x040000D4 ldr r0, _0802D364 @ =0x05000200 str r0, [r1] ldr r2, _0802D35C @ =0x020314E0 ldr r0, [r2] ldr r3, _0802D368 @ =0x0000111A adds r0, r0, r3 str r0, [r1, #4] ldr r0, _0802D36C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2] ldr r1, _0802D370 @ =0x000006DB adds r0, r0, r1 strb r4, [r0] ldr r0, [r2] ldr r2, _0802D374 @ =0x000005FA adds r0, r0, r2 strb r4, [r0] _0802D254: ldr r3, _0802D35C @ =0x020314E0 ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0xa bne _0802D2AA adds r1, #0xe4 movs r0, #0x10 strb r0, [r1] ldr r1, _0802D360 @ =0x040000D4 ldr r0, _0802D378 @ =0x08158284 str r0, [r1] ldr r0, _0802D37C @ =0x06015800 str r0, [r1, #4] ldr r0, _0802D380 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802D384 @ =0x0815A6A4 str r0, [r1] ldr r0, _0802D388 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802D38C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r2, _0802D390 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #0x60] movs r1, #1 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x64] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x68] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x6c] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x70] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x3c] strh r1, [r0] _0802D2AA: ldr r4, _0802D35C @ =0x020314E0 ldr r1, [r4] adds r0, r1, #0 adds r0, #0xcc movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xeb bgt _0802D2C2 ldrh r0, [r1, #0x18] lsrs r0, r0, #1 adds r1, #0xe6 strh r0, [r1] _0802D2C2: ldr r3, _0802D35C @ =0x020314E0 ldr r0, [r3] ldrh r0, [r0, #0x18] adds r3, r0, #0 cmp r3, #0x23 bhi _0802D2D0 b _0802D3F6 _0802D2D0: cmp r3, #0x43 bhi _0802D3A0 subs r0, #0x24 lsls r0, r0, #0x10 movs r3, #0 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 ldr r4, _0802D394 @ =0x03005C00 mov sb, r4 cmp r3, r0 bgt _0802D320 mov r2, sb mov r8, r0 movs r7, #0xc1 lsls r7, r7, #8 _0802D2EE: movs r6, #1 lsls r3, r3, #0x10 asrs r4, r3, #0x10 _0802D2F4: lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r4 lsls r0, r0, #1 adds r0, r0, r2 strh r7, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802D2F4 movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r8 ble _0802D2EE _0802D320: ldr r1, _0802D360 @ =0x040000D4 mov r2, sb str r2, [r1] ldr r0, _0802D398 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802D39C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] cmp r5, #0x1e bne _0802D33A movs r0, #0x1a bl m4aSongNumStart _0802D33A: ldr r0, _0802D390 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bne _0802D3F6 ldr r0, _0802D35C @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0x43 bne _0802D3F6 movs r3, #0xe0 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #0x78 strh r0, [r1] b _0802D3F6 .align 2, 0 _0802D358: .4byte 0xFFFFFDE0 _0802D35C: .4byte 0x020314E0 _0802D360: .4byte 0x040000D4 _0802D364: .4byte 0x05000200 _0802D368: .4byte 0x0000111A _0802D36C: .4byte 0x80000100 _0802D370: .4byte 0x000006DB _0802D374: .4byte 0x000005FA _0802D378: .4byte 0x08158284 _0802D37C: .4byte 0x06015800 _0802D380: .4byte 0x80001200 _0802D384: .4byte 0x0815A6A4 _0802D388: .4byte 0x050003C0 _0802D38C: .4byte 0x80000010 _0802D390: .4byte 0x0200B0C0 _0802D394: .4byte 0x03005C00 _0802D398: .4byte 0x06002000 _0802D39C: .4byte 0x80000400 _0802D3A0: movs r0, #0xac lsls r0, r0, #1 cmp r3, r0 bhi _0802D3F6 movs r3, #0 ldr r4, _0802D484 @ =0x03005C00 mov sb, r4 mov r5, sb movs r4, #0xc1 lsls r4, r4, #8 _0802D3B4: movs r6, #1 lsls r3, r3, #0x10 asrs r2, r3, #0x10 _0802D3BA: lsls r1, r6, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0802D3BA movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1e ble _0802D3B4 ldr r1, _0802D488 @ =0x040000D4 mov r2, sb str r2, [r1] ldr r0, _0802D48C @ =0x06002000 str r0, [r1, #4] ldr r0, _0802D490 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _0802D3F6: ldr r2, _0802D494 @ =0x020314E0 ldr r1, [r2] ldr r3, _0802D498 @ =0xFFFFFEF2 adds r0, r3, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1e bls _0802D40C b _0802D54C _0802D40C: lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 bne _0802D4A4 movs r6, #0 mov sl, r0 ldr r4, _0802D49C @ =0x020028A8 mov sb, r4 adds r0, r2, #0 mov r8, r0 ldr r7, _0802D4A0 @ =0x000012BA movs r1, #2 add r1, sb mov ip, r1 _0802D428: lsls r2, r6, #0x10 asrs r2, r2, #0x10 lsls r5, r2, #1 adds r4, r5, r2 mov r0, sb adds r3, r4, r0 mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r0, r0, r5 ldrb r1, [r0] movs r0, #0x1f ands r0, r1 strb r0, [r3] mov r3, sb adds r3, #1 adds r3, r4, r3 mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r0, r0, r5 ldrh r1, [r0] movs r0, #0xf8 lsls r0, r0, #2 ands r0, r1 lsrs r0, r0, #5 strb r0, [r3] add r4, ip mov r3, r8 ldr r0, [r3] adds r0, r0, r7 adds r0, r0, r5 ldrh r1, [r0] movs r0, #0xf8 lsls r0, r0, #7 ands r0, r1 lsrs r0, r0, #0xa strb r0, [r4] adds r2, #1 lsls r2, r2, #0x10 lsrs r6, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #0xf ble _0802D428 b _0802D53E .align 2, 0 _0802D484: .4byte 0x03005C00 _0802D488: .4byte 0x040000D4 _0802D48C: .4byte 0x06002000 _0802D490: .4byte 0x80000400 _0802D494: .4byte 0x020314E0 _0802D498: .4byte 0xFFFFFEF2 _0802D49C: .4byte 0x020028A8 _0802D4A0: .4byte 0x000012BA _0802D4A4: movs r6, #0 mov sl, r0 movs r4, #0xd8 lsls r4, r4, #1 add r4, sp str r4, [sp, #0x214] add r7, sp, #0x210 mov sb, r1 _0802D4B4: lsls r5, r6, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #1 mov r8, r0 adds r6, r0, r5 ldr r1, _0802D5B8 @ =0x020028A8 adds r0, r6, r1 ldrb r4, [r0] movs r2, #0x1f subs r0, r2, r4 mov r3, sb muls r3, r0, r3 adds r0, r3, #0 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 strb r4, [r7] ldr r0, _0802D5B8 @ =0x020028A8 adds r0, #1 adds r0, r6, r0 ldrb r4, [r0] movs r1, #0x1f subs r0, r1, r4 mov r2, sb muls r2, r0, r2 adds r0, r2, #0 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 strb r4, [r7, #1] ldr r3, _0802D5BC @ =0x020028AA adds r6, r6, r3 ldrb r4, [r6] movs r1, #0x1f subs r0, r1, r4 mov r2, sb muls r2, r0, r2 adds r0, r2, #0 movs r1, #0x1e bl __divsi3 adds r4, r4, r0 strb r4, [r7, #2] ldr r3, [sp, #0x214] add r8, r3 ldrb r1, [r7] ldrb r0, [r7, #1] lsls r0, r0, #5 orrs r1, r0 ldrb r0, [r7, #2] lsls r0, r0, #0xa orrs r1, r0 mov r4, r8 strh r1, [r4] adds r5, #1 lsls r5, r5, #0x10 lsrs r6, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #0xf ble _0802D4B4 ldr r1, _0802D5C0 @ =0x040000D4 str r3, [r1] ldr r0, _0802D5C4 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0802D5C8 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0802D53E: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0xa bne _0802D54C movs r0, #0xb0 bl m4aSongNumStart _0802D54C: ldr r1, _0802D5CC @ =0x020314E0 ldr r3, [r1] ldr r4, _0802D5D0 @ =0xFFFFFED4 adds r2, r4, #0 ldrh r4, [r3, #0x18] adds r0, r2, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x10 bhi _0802D582 movs r0, #0x88 lsls r0, r0, #5 adds r1, r3, r0 movs r0, #1 strb r0, [r1] ldr r1, _0802D5CC @ =0x020314E0 ldr r0, [r1] ldrh r0, [r0, #0x18] adds r0, r2, r0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 ldr r0, _0802D5D4 @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0x9f strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r5, [r0, #0x3c] _0802D582: ldr r2, _0802D5CC @ =0x020314E0 ldr r0, [r2] ldrh r2, [r0, #0x18] cmp r2, #0xa bhi _0802D58E b _0802DD32 _0802D58E: ldr r1, _0802D5D4 @ =0x0200B0C0 ldr r0, [r1, #0x44] ldr r7, [r0, #0x60] ldr r3, _0802D5D8 @ =0x0000FF88 adds r0, r2, r3 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0802D5DC mov r4, sp subs r0, #0x16 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa0 strh r1, [r4] b _0802D5E2 .align 2, 0 _0802D5B8: .4byte 0x020028A8 _0802D5BC: .4byte 0x020028AA _0802D5C0: .4byte 0x040000D4 _0802D5C4: .4byte 0x050003A0 _0802D5C8: .4byte 0x80000010 _0802D5CC: .4byte 0x020314E0 _0802D5D0: .4byte 0xFFFFFED4 _0802D5D4: .4byte 0x0200B0C0 _0802D5D8: .4byte 0x0000FF88 _0802D5DC: mov r1, sp ldr r0, _0802D604 @ =0x0000FF5E strh r0, [r1] _0802D5E2: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0 blt _0802D608 mov r4, sp adds r0, r1, #0 movs r1, #0x66 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #2] b _0802D60E .align 2, 0 _0802D604: .4byte 0x0000FF5E _0802D608: mov r1, sp ldr r0, _0802D62C @ =0x0000FF5E strh r0, [r1, #2] _0802D60E: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0x47 ble _0802D630 mov r4, sp subs r0, #0x48 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #4] b _0802D636 .align 2, 0 _0802D62C: .4byte 0x0000FF5E _0802D630: mov r1, sp ldr r0, _0802D654 @ =0x0000FF5E strh r0, [r1, #4] _0802D636: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x32 ble _0802D658 mov r4, sp subs r0, #0x33 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa1 strh r1, [r4, #6] b _0802D65E .align 2, 0 _0802D654: .4byte 0x0000FF5E _0802D658: mov r1, sp ldr r0, _0802D6F8 @ =0x0000FF5F strh r0, [r1, #6] _0802D65E: ldr r2, _0802D6FC @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r3, #0x9a lsls r3, r3, #1 adds r0, r3, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802D700 @ =0x03005000 ldr r4, _0802D704 @ =0xFFFFFE00 mov r8, r4 _0802D684: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r0, #2 ldrsh r2, [r7, r0] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802D708 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802D684 ldr r2, _0802D6FC @ =0x020314E0 ldr r1, [r2] ldr r3, _0802D70C @ =0x0000FFC4 adds r0, r3, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0802D710 mov r4, sp subs r0, #0x16 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa0 strh r1, [r4] b _0802D716 .align 2, 0 _0802D6F8: .4byte 0x0000FF5F _0802D6FC: .4byte 0x020314E0 _0802D700: .4byte 0x03005000 _0802D704: .4byte 0xFFFFFE00 _0802D708: .4byte 0x000001FF _0802D70C: .4byte 0x0000FFC4 _0802D710: mov r1, sp ldr r0, _0802D738 @ =0x0000FF5E strh r0, [r1] _0802D716: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0 blt _0802D73C mov r4, sp adds r0, r1, #0 movs r1, #0x66 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #2] b _0802D742 .align 2, 0 _0802D738: .4byte 0x0000FF5E _0802D73C: mov r1, sp ldr r0, _0802D760 @ =0x0000FF5E strh r0, [r1, #2] _0802D742: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0x47 ble _0802D764 mov r4, sp subs r0, #0x48 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa2 strh r1, [r4, #4] b _0802D76A .align 2, 0 _0802D760: .4byte 0x0000FF5E _0802D764: mov r1, sp ldr r0, _0802D788 @ =0x0000FF5E strh r0, [r1, #4] _0802D76A: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x32 ble _0802D78C mov r4, sp subs r0, #0x33 movs r1, #0x66 bl __modsi3 lsls r1, r0, #1 adds r1, r1, r0 subs r1, #0xa1 strh r1, [r4, #6] b _0802D792 .align 2, 0 _0802D788: .4byte 0x0000FF5E _0802D78C: mov r1, sp ldr r0, _0802D834 @ =0x0000FF5F strh r0, [r1, #6] _0802D792: ldr r2, _0802D838 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r7, [r0, #0x64] ldr r3, _0802D83C @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802D840 @ =0x03005000 ldr r0, _0802D844 @ =0xFFFFFE00 mov r8, r0 _0802D7BE: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802D848 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802D7BE ldr r2, _0802D838 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r7, [r0, #0x68] ldr r3, _0802D83C @ =0x020314E0 ldr r1, [r3] ldr r4, _0802D84C @ =0x0000FF9C adds r0, r4, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 blt _0802D850 mov r4, sp movs r1, #0x98 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf subs r0, #0xa0 strh r0, [r4] b _0802D856 .align 2, 0 _0802D834: .4byte 0x0000FF5F _0802D838: .4byte 0x0200B0C0 _0802D83C: .4byte 0x020314E0 _0802D840: .4byte 0x03005000 _0802D844: .4byte 0xFFFFFE00 _0802D848: .4byte 0x000001FF _0802D84C: .4byte 0x0000FF9C _0802D850: mov r1, sp ldr r0, _0802D874 @ =0x0000FF60 strh r0, [r1] _0802D856: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0x25 ble _0802D878 mov r4, sp adds r0, r1, #0 subs r0, #0x26 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #2] b _0802D87E .align 2, 0 _0802D874: .4byte 0x0000FF60 _0802D878: mov r1, sp ldr r0, _0802D898 @ =0x0000FF60 strh r0, [r1, #2] _0802D87E: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x4b ble _0802D89C mov r4, sp subs r0, #0x4c movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #4] b _0802D8A2 .align 2, 0 _0802D898: .4byte 0x0000FF60 _0802D89C: mov r1, sp ldr r0, _0802D8BC @ =0x0000FF60 strh r0, [r1, #4] _0802D8A2: mov r2, sl asrs r0, r2, #0x10 cmp r0, #0x71 ble _0802D8C0 mov r4, sp subs r0, #0x72 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #6] b _0802D8C6 .align 2, 0 _0802D8BC: .4byte 0x0000FF60 _0802D8C0: mov r1, sp ldr r0, _0802D964 @ =0x0000FF60 strh r0, [r1, #6] _0802D8C6: ldr r3, _0802D968 @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802D96C @ =0x03005000 ldr r0, _0802D970 @ =0xFFFFFE00 mov r8, r0 _0802D8EC: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802D974 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802D8EC ldr r2, _0802D978 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r7, [r0, #0x6c] ldr r3, _0802D968 @ =0x020314E0 ldr r1, [r3] ldr r4, _0802D97C @ =0x0000FFB0 adds r0, r4, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 blt _0802D980 mov r4, sp movs r1, #0x98 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf subs r0, #0xa0 strh r0, [r4] b _0802D986 .align 2, 0 _0802D964: .4byte 0x0000FF60 _0802D968: .4byte 0x020314E0 _0802D96C: .4byte 0x03005000 _0802D970: .4byte 0xFFFFFE00 _0802D974: .4byte 0x000001FF _0802D978: .4byte 0x0200B0C0 _0802D97C: .4byte 0x0000FFB0 _0802D980: mov r1, sp ldr r0, _0802D9A4 @ =0x0000FF60 strh r0, [r1] _0802D986: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0x25 ble _0802D9A8 mov r4, sp adds r0, r1, #0 subs r0, #0x26 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #2] b _0802D9AE .align 2, 0 _0802D9A4: .4byte 0x0000FF60 _0802D9A8: mov r1, sp ldr r0, _0802D9C8 @ =0x0000FF60 strh r0, [r1, #2] _0802D9AE: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x4b ble _0802D9CC mov r4, sp subs r0, #0x4c movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #4] b _0802D9D2 .align 2, 0 _0802D9C8: .4byte 0x0000FF60 _0802D9CC: mov r1, sp ldr r0, _0802D9EC @ =0x0000FF60 strh r0, [r1, #4] _0802D9D2: mov r2, sl asrs r0, r2, #0x10 cmp r0, #0x71 ble _0802D9F0 mov r4, sp subs r0, #0x72 movs r1, #0x98 bl __modsi3 lsls r0, r0, #1 subs r0, #0xa0 strh r0, [r4, #6] b _0802D9F6 .align 2, 0 _0802D9EC: .4byte 0x0000FF60 _0802D9F0: mov r1, sp ldr r0, _0802DA8C @ =0x0000FF60 strh r0, [r1, #6] _0802D9F6: ldr r3, _0802DA90 @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802DA94 @ =0x03005000 ldr r0, _0802DA98 @ =0xFFFFFE00 mov r8, r0 _0802DA1C: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802DA9C @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802DA1C ldr r2, _0802DA90 @ =0x020314E0 ldr r1, [r2] ldr r3, _0802DAA0 @ =0x0000FFA6 adds r0, r3, #0 ldrh r1, [r1, #0x18] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xeb ble _0802DAA4 mov r4, sp subs r0, #0xec movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4] b _0802DAAA .align 2, 0 _0802DA8C: .4byte 0x0000FF60 _0802DA90: .4byte 0x020314E0 _0802DA94: .4byte 0x03005000 _0802DA98: .4byte 0xFFFFFE00 _0802DA9C: .4byte 0x000001FF _0802DAA0: .4byte 0x0000FFA6 _0802DAA4: mov r1, sp ldr r0, _0802DAC8 @ =0x0000FF80 strh r0, [r1] _0802DAAA: lsls r0, r5, #0x10 asrs r1, r0, #0x10 mov sl, r0 cmp r1, #0xcb ble _0802DACC mov r4, sp adds r0, r1, #0 subs r0, #0xcc movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #2] b _0802DAD2 .align 2, 0 _0802DAC8: .4byte 0x0000FF80 _0802DACC: mov r1, sp ldr r0, _0802DAEC @ =0x0000FF80 strh r0, [r1, #2] _0802DAD2: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0xa7 ble _0802DAF0 mov r4, sp subs r0, #0xa8 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #4] b _0802DAF6 .align 2, 0 _0802DAEC: .4byte 0x0000FF80 _0802DAF0: mov r1, sp ldr r0, _0802DB10 @ =0x0000FF80 strh r0, [r1, #4] _0802DAF6: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0x87 ble _0802DB14 mov r4, sp subs r0, #0x88 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #6] b _0802DB1A .align 2, 0 _0802DB10: .4byte 0x0000FF80 _0802DB14: mov r1, sp ldr r0, _0802DB34 @ =0x0000FF80 strh r0, [r1, #6] _0802DB1A: mov r2, sl asrs r0, r2, #0x10 cmp r0, #0x63 ble _0802DB38 mov r4, sp subs r0, #0x64 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #8] b _0802DB3E .align 2, 0 _0802DB34: .4byte 0x0000FF80 _0802DB38: mov r1, sp ldr r0, _0802DB58 @ =0x0000FF80 strh r0, [r1, #8] _0802DB3E: mov r3, sl asrs r0, r3, #0x10 cmp r0, #0x43 ble _0802DB5C mov r4, sp subs r0, #0x44 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #0xa] b _0802DB62 .align 2, 0 _0802DB58: .4byte 0x0000FF80 _0802DB5C: mov r1, sp ldr r0, _0802DB7C @ =0x0000FF80 strh r0, [r1, #0xa] _0802DB62: mov r4, sl asrs r0, r4, #0x10 cmp r0, #0x1f ble _0802DB80 mov r4, sp subs r0, #0x20 movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #0xc] b _0802DB86 .align 2, 0 _0802DB7C: .4byte 0x0000FF80 _0802DB80: mov r1, sp ldr r0, _0802DBA0 @ =0x0000FF80 strh r0, [r1, #0xc] _0802DB86: mov r1, sl asrs r0, r1, #0x10 cmp r0, #0 blt _0802DBA4 mov r4, sp movs r1, #0x88 lsls r1, r1, #1 bl __modsi3 subs r0, #0x80 strh r0, [r4, #0xe] b _0802DBAA .align 2, 0 _0802DBA0: .4byte 0x0000FF80 _0802DBA4: mov r1, sp ldr r0, _0802DC74 @ =0x0000FF80 strh r0, [r1, #0xe] _0802DBAA: ldr r2, _0802DC78 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r7, [r0, #0x70] ldr r3, _0802DC7C @ =0x020314E0 ldr r1, [r3] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x60 subs r0, r0, r2 strh r0, [r7, #2] adds r1, #0x5a ldrh r1, [r1] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] movs r6, #0 ldr r5, _0802DC80 @ =0x03005000 ldr r0, _0802DC84 @ =0xFFFFFE00 mov r8, r0 _0802DBD6: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r4, [r6] lsls r4, r4, #3 adds r4, r4, r5 movs r1, #2 ldrsh r2, [r7, r1] lsls r0, r3, #1 add r0, sp movs r1, #0 ldrsh r0, [r0, r1] adds r2, r2, r0 ldr r1, _0802DC88 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r1, [r4, #2] mov r0, r8 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #7 ble _0802DBD6 ldr r2, _0802DC78 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r7, [r0, #0x3c] ldr r3, _0802DC7C @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 strh r0, [r7, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r1, [r0] movs r4, #0x9a lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r7, #4] ldr r1, _0802DC8C @ =0x0000FF88 adds r0, r1, #0 ldrh r2, [r2, #0x18] adds r0, r0, r2 lsls r0, r0, #0x10 asrs r2, r0, #0x10 cmp r2, #0 ble _0802DC90 mov r1, sp movs r0, #0 strh r0, [r1] adds r0, r2, #0 movs r1, #0x46 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #7 bl __divsi3 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 b _0802DC98 .align 2, 0 _0802DC74: .4byte 0x0000FF80 _0802DC78: .4byte 0x0200B0C0 _0802DC7C: .4byte 0x020314E0 _0802DC80: .4byte 0x03005000 _0802DC84: .4byte 0xFFFFFE00 _0802DC88: .4byte 0x000001FF _0802DC8C: .4byte 0x0000FF88 _0802DC90: mov r1, sp ldr r0, _0802DE04 @ =0x0000FF60 strh r0, [r1] movs r3, #0 _0802DC98: movs r6, #0 lsls r0, r3, #0x10 ldr r2, _0802DE08 @ =0x03005000 mov sl, r2 ldr r3, _0802DE0C @ =0x086B4112 mov sb, r3 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov r8, r0 ldr r4, _0802DE10 @ =0xFFFFFE00 mov ip, r4 _0802DCB2: lsls r4, r6, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r1, sl adds r2, r0, r1 lsls r1, r4, #1 adds r1, r1, r4 lsls r0, r1, #1 add r0, r8 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 add r0, r8 add r0, sb ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 add r1, r8 add r1, sb ldrh r0, [r1] strh r0, [r2, #2] ldrh r3, [r6] lsls r3, r3, #3 add r3, sl ldrh r5, [r3, #2] lsls r2, r5, #0x17 lsrs r2, r2, #0x17 str r2, [sp, #0x218] movs r2, #2 ldrsh r1, [r7, r2] mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r0, [sp, #0x218] adds r2, r0, r1 ldr r1, _0802DE14 @ =0x000001FF adds r0, r1, #0 ands r2, r0 mov r0, ip ands r0, r5 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r6, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _0802DCB2 _0802DD32: ldr r3, _0802DE18 @ =0x020314E0 ldr r0, [r3] ldrh r1, [r0, #0x18] movs r0, #0xaf lsls r0, r0, #1 cmp r1, r0 bne _0802DD84 movs r1, #0xf0 lsls r1, r1, #0x11 ldr r4, _0802DE1C @ =0x03005C00 mov sb, r4 ldr r3, _0802DE14 @ =0x000001FF ldr r2, _0802DE20 @ =0x0000033F _0802DD4C: asrs r0, r1, #0x10 lsls r1, r0, #1 adds r1, r1, r4 strh r3, [r1] adds r0, #1 lsls r1, r0, #0x10 asrs r0, r1, #0x10 cmp r0, r2 ble _0802DD4C ldr r1, _0802DE24 @ =0x040000D4 mov r0, sb str r0, [r1] ldr r0, _0802DE28 @ =0x06002000 str r0, [r1, #4] ldr r0, _0802DE2C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0802DE30 @ =0x0200B0C0 ldrb r0, [r1, #4] cmp r0, #1 bne _0802DD84 ldr r2, _0802DE18 @ =0x020314E0 ldr r0, [r2] movs r3, #0xe0 lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0 strh r1, [r0] _0802DD84: ldr r4, _0802DE18 @ =0x020314E0 ldr r3, [r4] ldrh r1, [r3, #0x18] movs r0, #0xb4 lsls r0, r0, #1 cmp r1, r0 beq _0802DD94 b _0802E052 _0802DD94: ldr r2, _0802DE30 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r0, [r0, #0x60] movs r1, #0 strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x64] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x68] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x6c] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x70] strh r1, [r0] ldr r0, [r2, #0x44] ldr r0, [r0, #0x3c] strh r1, [r0] ldr r1, _0802DE34 @ =0x000005A2 adds r0, r3, r1 ldrh r1, [r0] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r3, r2 strh r1, [r0] movs r0, #3 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] adds r0, #0xe4 movs r1, #0x11 strb r1, [r0] ldr r1, _0802DE24 @ =0x040000D4 ldr r0, _0802DE38 @ =0x083A562C str r0, [r1] ldr r0, _0802DE3C @ =0x06015800 str r0, [r1, #4] ldr r0, _0802DE40 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802DE44 @ =0x083A6E4C str r0, [r1] ldr r0, _0802DE48 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802DE4C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r4] ldr r3, _0802DE50 @ =0x000006DB adds r0, r0, r3 movs r1, #3 strb r1, [r0] b _0802E052 .align 2, 0 _0802DE04: .4byte 0x0000FF60 _0802DE08: .4byte 0x03005000 _0802DE0C: .4byte 0x086B4112 _0802DE10: .4byte 0xFFFFFE00 _0802DE14: .4byte 0x000001FF _0802DE18: .4byte 0x020314E0 _0802DE1C: .4byte 0x03005C00 _0802DE20: .4byte 0x0000033F _0802DE24: .4byte 0x040000D4 _0802DE28: .4byte 0x06002000 _0802DE2C: .4byte 0x80000400 _0802DE30: .4byte 0x0200B0C0 _0802DE34: .4byte 0x000005A2 _0802DE38: .4byte 0x083A562C _0802DE3C: .4byte 0x06015800 _0802DE40: .4byte 0x80000C00 _0802DE44: .4byte 0x083A6E4C _0802DE48: .4byte 0x050003C0 _0802DE4C: .4byte 0x80000010 _0802DE50: .4byte 0x000006DB thumb_func_start sub_2DE54 sub_2DE54: @ 0x0802DE54 ldr r4, _0802DED4 @ =0xFFFFFE98 adds r0, r3, r4 lsls r0, r0, #0x10 asrs r4, r0, #0x10 cmp r4, #0x40 bgt _0802DEF0 cmp r4, #1 bne _0802DE6A ldr r0, _0802DED8 @ =0x02032EE0 bl m4aMPlayStop _0802DE6A: ldr r5, _0802DEDC @ =0x0200B0C0 ldrh r0, [r5, #0x38] movs r0, #0x9f strh r0, [r5, #0x38] adds r0, r4, #0 cmp r4, #0 bge _0802DE7A adds r0, r4, #3 _0802DE7A: asrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r5, #0x3c] strh r1, [r5, #0x3c] cmp r4, #0x20 bne _0802DEB0 ldr r0, _0802DEE0 @ =0x020314E0 ldr r1, [r0] movs r3, #0xa7 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0x8c strh r0, [r2] ldr r2, _0802DEE4 @ =0x086A3700 movs r0, #0xb3 lsls r0, r0, #3 adds r1, r1, r0 ldrh r1, [r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC _0802DEB0: cmp r4, #0x40 beq _0802DEB6 b _0802E052 _0802DEB6: ldr r2, _0802DEE0 @ =0x020314E0 ldr r1, [r2] ldr r3, _0802DEE8 @ =0x00000604 adds r2, r1, r3 movs r0, #0 strh r0, [r2] ldr r4, _0802DEEC @ =0x00000603 adds r1, r1, r4 strb r0, [r1] ldr r0, [r5, #0x44] adds r0, #0x94 ldr r1, [r0] movs r0, #1 strh r0, [r1] b _0802E052 .align 2, 0 _0802DED4: .4byte 0xFFFFFE98 _0802DED8: .4byte 0x02032EE0 _0802DEDC: .4byte 0x0200B0C0 _0802DEE0: .4byte 0x020314E0 _0802DEE4: .4byte 0x086A3700 _0802DEE8: .4byte 0x00000604 _0802DEEC: .4byte 0x00000603 _0802DEF0: movs r1, #0x88 lsls r1, r1, #5 adds r0, r2, r1 movs r4, #0 strb r4, [r0] ldr r2, _0802DF20 @ =0x086AE0D0 ldr r3, _0802DF24 @ =0x020314E0 ldr r1, [r3] ldr r0, _0802DF28 @ =0x00000603 adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #1 adds r0, r0, r2 movs r2, #0 ldrsh r0, [r0, r2] ldr r2, _0802DF2C @ =0x00000604 adds r1, r1, r2 ldrh r2, [r1] cmp r0, r2 ble _0802DF30 adds r0, r2, #1 strh r0, [r1] b _0802DF80 .align 2, 0 _0802DF20: .4byte 0x086AE0D0 _0802DF24: .4byte 0x020314E0 _0802DF28: .4byte 0x00000603 _0802DF2C: .4byte 0x00000604 _0802DF30: strh r4, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r3, _0802E068 @ =0x020314E0 ldr r0, [r3] ldr r2, _0802E06C @ =0x00000603 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xa ble _0802DF80 ldr r3, _0802E070 @ =0x0200B0C0 ldr r0, [r3, #0x44] adds r0, #0x94 ldr r0, [r0] strh r4, [r0] movs r0, #0xa strb r0, [r1] ldr r0, _0802E068 @ =0x020314E0 ldr r1, [r0] strh r4, [r1, #0x18] ldrb r0, [r1, #0x17] adds r0, #1 strb r0, [r1, #0x17] ldr r1, _0802E074 @ =0x040000D4 ldr r2, _0802E068 @ =0x020314E0 ldr r0, [r2] ldr r3, _0802E078 @ =0x0000111A adds r0, r0, r3 str r0, [r1] ldr r0, _0802E07C @ =0x05000200 str r0, [r1, #4] ldr r0, _0802E080 @ =0x800000C0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2] adds r0, #0xe4 movs r1, #0 strb r1, [r0] _0802DF80: ldr r4, _0802E068 @ =0x020314E0 ldr r2, [r4] ldr r1, _0802E06C @ =0x00000603 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldr r4, _0802E070 @ =0x0200B0C0 ldr r0, [r4, #0x44] adds r0, #0x94 ldr r7, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x60 subs r0, r0, r1 strh r0, [r7, #2] adds r2, #0x5a ldrh r1, [r2] movs r2, #0x96 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0802DFC0 movs r0, #0xc8 strh r0, [r7, #4] _0802DFC0: movs r6, #0 lsls r0, r3, #0x10 ldr r3, _0802E084 @ =0x03005000 mov sb, r3 ldr r4, _0802E088 @ =0x086B4E62 mov r8, r4 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r5, r0, #3 ldr r0, _0802E08C @ =0xFFFFFE00 mov sl, r0 _0802DFD8: lsls r3, r6, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r1, sb adds r2, r0, r1 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 adds r0, r0, r5 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r5 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r5 add r1, r8 ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] adds r1, r0, #0 add r1, ip ldr r0, _0802E090 @ =0x000001FF mov ip, r0 mov r0, ip ands r1, r0 mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r6, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802DFD8 _0802E052: movs r3, #0x88 lsls r3, r3, #2 add sp, r3 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802E068: .4byte 0x020314E0 _0802E06C: .4byte 0x00000603 _0802E070: .4byte 0x0200B0C0 _0802E074: .4byte 0x040000D4 _0802E078: .4byte 0x0000111A _0802E07C: .4byte 0x05000200 _0802E080: .4byte 0x800000C0 _0802E084: .4byte 0x03005000 _0802E088: .4byte 0x086B4E62 _0802E08C: .4byte 0xFFFFFE00 _0802E090: .4byte 0x000001FF thumb_func_start sub_2E094 sub_2E094: @ 0x0802E094 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r7, #0 ldr r0, _0802E0FC @ =0x020314E0 ldr r6, [r0] ldrh r3, [r6, #0x18] adds r2, r3, #0 mov sb, r0 cmp r2, #0 bne _0802E180 ldr r2, _0802E100 @ =0x0200B0C0 ldr r0, [r2, #0x44] ldr r1, [r0, #0x40] movs r0, #1 strh r0, [r1] ldr r0, _0802E104 @ =0x0000060C adds r1, r6, r0 subs r0, #0x94 strh r0, [r1] ldr r3, _0802E108 @ =0x0000060E adds r1, r6, r3 ldr r0, _0802E10C @ =0x0000FDA8 strh r0, [r1] adds r1, r6, #0 adds r1, #0xe4 movs r0, #0x15 strb r0, [r1] ldrb r0, [r2, #4] cmp r0, #0 bne _0802E130 ldr r1, _0802E110 @ =0x040000D4 ldr r0, _0802E114 @ =0x081BCAA4 str r0, [r1] ldr r2, _0802E118 @ =0x06015800 str r2, [r1, #4] ldr r0, _0802E11C @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E120 @ =0x081BE2C4 str r0, [r1] ldr r0, _0802E124 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802E128 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E12C @ =0x08483D8C b _0802E150 .align 2, 0 _0802E0FC: .4byte 0x020314E0 _0802E100: .4byte 0x0200B0C0 _0802E104: .4byte 0x0000060C _0802E108: .4byte 0x0000060E _0802E10C: .4byte 0x0000FDA8 _0802E110: .4byte 0x040000D4 _0802E114: .4byte 0x081BCAA4 _0802E118: .4byte 0x06015800 _0802E11C: .4byte 0x80000C00 _0802E120: .4byte 0x081BE2C4 _0802E124: .4byte 0x050003C0 _0802E128: .4byte 0x80000010 _0802E12C: .4byte 0x08483D8C _0802E130: ldr r1, _0802E15C @ =0x040000D4 ldr r0, _0802E160 @ =0x081BE4C4 str r0, [r1] ldr r2, _0802E164 @ =0x06015800 str r2, [r1, #4] ldr r0, _0802E168 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E16C @ =0x081BFCE4 str r0, [r1] ldr r0, _0802E170 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0802E174 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0802E178 @ =0x08488A0C _0802E150: str r0, [r1] str r2, [r1, #4] ldr r0, _0802E17C @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] b _0802E610 .align 2, 0 _0802E15C: .4byte 0x040000D4 _0802E160: .4byte 0x081BE4C4 _0802E164: .4byte 0x06015800 _0802E168: .4byte 0x80000C00 _0802E16C: .4byte 0x081BFCE4 _0802E170: .4byte 0x050003C0 _0802E174: .4byte 0x80000010 _0802E178: .4byte 0x08488A0C _0802E17C: .4byte 0x80000240 _0802E180: cmp r2, #0x3b bhi _0802E234 ldrh r0, [r6, #0x18] lsls r0, r0, #0xe movs r1, #0x3c bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 adds r1, r0, #0 mov r6, sb ldr r5, [r6] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r1 lsls r0, r0, #2 ldr r6, _0802E218 @ =0x00004E20 adds r1, r6, #0 bl __divsi3 ldr r7, _0802E21C @ =0x000001E7 adds r0, r0, r7 ldr r1, _0802E220 @ =0x0000060C adds r5, r5, r1 strh r0, [r5] adds r0, r4, #0 bl sub_C24 mov r2, sb ldr r4, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 adds r1, r6, #0 bl __divsi3 ldr r3, _0802E224 @ =0xFFFFFD8B adds r0, r0, r3 ldr r5, _0802E228 @ =0x0000060E adds r1, r4, r5 strh r0, [r1] movs r6, #0xc2 lsls r6, r6, #3 adds r1, r4, r6 ldr r0, _0802E22C @ =0x0000FFEF strh r0, [r1] ldr r7, _0802E230 @ =0x00000612 adds r1, r4, r7 subs r0, #0xd strh r0, [r1] ldrh r0, [r4, #0x18] movs r1, #3 ands r1, r0 lsrs r7, r1, #1 movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0802E210 b _0802E4E0 _0802E210: movs r0, #0x97 bl m4aSongNumStart b _0802E4E0 .align 2, 0 _0802E218: .4byte 0x00004E20 _0802E21C: .4byte 0x000001E7 _0802E220: .4byte 0x0000060C _0802E224: .4byte 0xFFFFFD8B _0802E228: .4byte 0x0000060E _0802E22C: .4byte 0x0000FFEF _0802E230: .4byte 0x00000612 _0802E234: cmp r2, #0x59 bhi _0802E2D0 adds r0, r3, #0 subs r0, #0x3c lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb bgt _0802E25C movs r1, #0xc bl __modsi3 lsls r0, r0, #0x10 asrs r1, r0, #0x10 lsrs r0, r0, #0x1f adds r1, r1, r0 asrs r1, r1, #1 adds r1, #2 lsls r1, r1, #0x10 lsrs r7, r1, #0x10 b _0802E278 _0802E25C: subs r0, #0xc lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x12 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 adds r0, #2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 _0802E278: ldr r4, _0802E2BC @ =0x020314E0 ldr r1, [r4] ldr r0, _0802E2C0 @ =0x00000612 adds r3, r1, r0 ldrh r0, [r3] adds r0, #2 movs r5, #0 movs r2, #0 mov r8, r2 strh r0, [r3] ldr r6, _0802E2C4 @ =0x0000060C adds r2, r1, r6 adds r6, #4 adds r0, r1, r6 ldrh r0, [r0] ldrh r6, [r2] adds r0, r0, r6 strh r0, [r2] ldr r0, _0802E2C8 @ =0x0000060E adds r2, r1, r0 ldrh r0, [r3] ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] ldr r6, _0802E2CC @ =0x0000060A adds r1, r1, r6 strb r5, [r1] ldr r0, [r4] movs r1, #0xc1 lsls r1, r1, #3 adds r0, r0, r1 mov r2, r8 strh r2, [r0] b _0802E4E0 .align 2, 0 _0802E2BC: .4byte 0x020314E0 _0802E2C0: .4byte 0x00000612 _0802E2C4: .4byte 0x0000060C _0802E2C8: .4byte 0x0000060E _0802E2CC: .4byte 0x0000060A _0802E2D0: cmp r2, #0xbd bls _0802E2D6 b _0802E41C _0802E2D6: ldr r2, _0802E300 @ =0x086AE394 ldr r5, _0802E304 @ =0x0000060A adds r3, r6, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #4 adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] movs r2, #0xc1 lsls r2, r2, #3 adds r1, r6, r2 ldrh r2, [r1] cmp r0, r2 ble _0802E308 adds r0, r2, #1 strh r0, [r1] b _0802E37A .align 2, 0 _0802E300: .4byte 0x086AE394 _0802E304: .4byte 0x0000060A _0802E308: strh r7, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] mov r3, sb ldr r4, [r3] ldr r6, _0802E3C4 @ =0x0000060A adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0802E366 ldr r3, _0802E3C8 @ =0x08055A68 adds r0, r4, #0 adds r0, #0x32 movs r2, #0 ldrsb r2, [r0, r2] ldr r0, _0802E3CC @ =0x0200B0C0 ldrb r1, [r0, #4] lsls r0, r1, #3 subs r0, r0, r1 adds r0, r0, r2 lsls r0, r0, #1 adds r0, r0, r3 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x35 strb r1, [r0] mov r7, sb ldr r1, [r7] ldr r2, _0802E3D0 @ =0x08137928 adds r0, r1, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] ldr r2, _0802E3D4 @ =0x000006D9 adds r1, r1, r2 strb r0, [r1] movs r0, #0 movs r1, #0 bl sub_1C7F4 _0802E366: mov r3, sb ldr r1, [r3] adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xb bne _0802E37A movs r0, #0xbd strh r0, [r1, #0x18] _0802E37A: ldr r2, _0802E3D8 @ =0x086AE394 ldr r0, _0802E3DC @ =0x020314E0 ldr r3, [r0] ldr r5, _0802E3C4 @ =0x0000060A adds r0, r3, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 adds r0, r2, #2 adds r0, r1, r0 ldrh r7, [r0] adds r2, #4 adds r1, r1, r2 movs r6, #0 ldrsh r0, [r1, r6] cmp r0, #5 bne _0802E3B4 movs r1, #0xc1 lsls r1, r1, #3 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #1 bne _0802E3B4 movs r0, #0x98 bl m4aSongNumStart _0802E3B4: cmp r7, #0x10 bne _0802E3E8 ldr r0, _0802E3DC @ =0x020314E0 ldr r0, [r0] ldr r2, _0802E3E0 @ =0x0000060C adds r0, r0, r2 ldr r1, _0802E3E4 @ =0x0000FFB0 b _0802E3F2 .align 2, 0 _0802E3C4: .4byte 0x0000060A _0802E3C8: .4byte 0x08055A68 _0802E3CC: .4byte 0x0200B0C0 _0802E3D0: .4byte 0x08137928 _0802E3D4: .4byte 0x000006D9 _0802E3D8: .4byte 0x086AE394 _0802E3DC: .4byte 0x020314E0 _0802E3E0: .4byte 0x0000060C _0802E3E4: .4byte 0x0000FFB0 _0802E3E8: ldr r0, _0802E40C @ =0x020314E0 ldr r0, [r0] ldr r3, _0802E410 @ =0x0000060C adds r0, r0, r3 movs r1, #0 _0802E3F2: strh r1, [r0] ldr r0, _0802E40C @ =0x020314E0 ldr r1, [r0] movs r5, #0xc2 lsls r5, r5, #3 adds r2, r1, r5 ldr r0, _0802E414 @ =0x0000FFE8 strh r0, [r2] ldr r6, _0802E418 @ =0x00000612 adds r1, r1, r6 movs r0, #0xe strh r0, [r1] b _0802E4E0 .align 2, 0 _0802E40C: .4byte 0x020314E0 _0802E410: .4byte 0x0000060C _0802E414: .4byte 0x0000FFE8 _0802E418: .4byte 0x00000612 _0802E41C: ldr r0, _0802E454 @ =0x000001AD cmp r2, r0 bhi _0802E496 adds r0, r3, #0 subs r0, #0xbe lsls r0, r0, #0x10 asrs r3, r0, #0x10 cmp r3, #0x17 bgt _0802E45C lsls r0, r3, #3 subs r0, r0, r3 lsls r0, r0, #1 rsbs r0, r0, #0 ldr r7, _0802E458 @ =0x0000060C adds r1, r6, r7 strh r0, [r1] adds r0, r3, #0 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _0802E44E adds r0, #3 _0802E44E: asrs r0, r0, #2 adds r0, #2 b _0802E48C .align 2, 0 _0802E454: .4byte 0x000001AD _0802E458: .4byte 0x0000060C _0802E45C: cmp r3, #0x1d bgt _0802E46E movs r7, #0xc cmp r3, #0x18 bne _0802E4E0 movs r0, #0x11 bl m4aSongNumStart b _0802E4E0 _0802E46E: cmp r3, #0x29 bgt _0802E492 adds r0, r3, #0 subs r0, #0x1e lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xc bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #6 bl __divsi3 adds r0, #0xd _0802E48C: lsls r0, r0, #0x10 lsrs r7, r0, #0x10 b _0802E4E0 _0802E492: movs r7, #0xf b _0802E4E0 _0802E496: ldr r0, _0802E4F8 @ =0x000001E9 cmp r2, r0 bhi _0802E4E0 ldrh r0, [r6, #0x18] movs r1, #3 ands r0, r1 lsrs r7, r0, #1 ldr r0, _0802E4FC @ =0x00000612 adds r2, r6, r0 ldrh r0, [r2] subs r0, #1 strh r0, [r2] ldr r3, _0802E500 @ =0x0000060C adds r1, r6, r3 movs r5, #0xc2 lsls r5, r5, #3 adds r0, r6, r5 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] subs r5, #2 adds r1, r6, r5 ldrh r0, [r2] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldrh r0, [r6, #0x18] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _0802E4E0 movs r0, #0x97 bl m4aSongNumStart _0802E4E0: ldr r0, _0802E504 @ =0x0200B0C0 ldrb r1, [r0, #4] cmp r1, #0 bne _0802E510 ldr r2, _0802E508 @ =0x040000D4 lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802E50C @ =0x08483D8C b _0802E51E .align 2, 0 _0802E4F8: .4byte 0x000001E9 _0802E4FC: .4byte 0x00000612 _0802E500: .4byte 0x0000060C _0802E504: .4byte 0x0200B0C0 _0802E508: .4byte 0x040000D4 _0802E50C: .4byte 0x08483D8C _0802E510: ldr r2, _0802E640 @ =0x040000D4 lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802E644 @ =0x08488A0C _0802E51E: adds r0, r0, r1 str r0, [r2] ldr r0, _0802E648 @ =0x06015800 str r0, [r2, #4] ldr r0, _0802E64C @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802E650 @ =0x086AE394 ldr r5, _0802E654 @ =0x020314E0 ldr r4, [r5] ldr r3, _0802E658 @ =0x0000060A adds r0, r4, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r7, [r0] ldr r6, _0802E65C @ =0x0200B0C0 ldr r0, [r6, #0x44] ldr r6, [r0, #0x40] ldr r1, _0802E660 @ =0x0000060C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x60 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _0802E664 @ =0x0000060E adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 movs r2, #0x96 lsls r2, r2, #1 adds r0, r0, r2 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 mov sb, r5 ldr r3, _0802E668 @ =0x03005000 mov r8, r3 ldr r5, _0802E66C @ =0x086B3FE6 mov ip, r5 lsls r1, r7, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 str r0, [sp] ldr r7, _0802E670 @ =0xFFFFFE00 mov sl, r7 _0802E59C: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 lsls r1, r3, #1 adds r1, r1, r3 lsls r0, r1, #1 ldr r5, [sp] adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r2, #2 adds r0, r1, #1 lsls r0, r0, #1 adds r0, r0, r5 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #2 lsls r1, r1, #1 adds r1, r1, r5 add r1, ip ldrh r0, [r1] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, r8 ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802E674 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sl ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _0802E59C _0802E610: mov r3, sb ldr r4, [r3] ldrh r1, [r4, #0x18] ldr r0, _0802E678 @ =0x000001E9 cmp r1, r0 bne _0802E62E ldr r5, _0802E65C @ =0x0200B0C0 ldr r0, [r5, #0x44] ldr r1, [r0, #0x40] movs r2, #0 movs r0, #0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe4 strb r2, [r0] _0802E62E: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802E640: .4byte 0x040000D4 _0802E644: .4byte 0x08488A0C _0802E648: .4byte 0x06015800 _0802E64C: .4byte 0x80000240 _0802E650: .4byte 0x086AE394 _0802E654: .4byte 0x020314E0 _0802E658: .4byte 0x0000060A _0802E65C: .4byte 0x0200B0C0 _0802E660: .4byte 0x0000060C _0802E664: .4byte 0x0000060E _0802E668: .4byte 0x03005000 _0802E66C: .4byte 0x086B3FE6 _0802E670: .4byte 0xFFFFFE00 _0802E674: .4byte 0x000001FF _0802E678: .4byte 0x000001E9 thumb_func_start sub_2E67C sub_2E67C: @ 0x0802E67C ldr r0, _0802E6A0 @ =0x020314E0 ldr r1, [r0] ldr r0, _0802E6A4 @ =0x00000306 adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #1 bne _0802E6AA movs r0, #0xc3 lsls r0, r0, #2 adds r2, r1, r0 ldrh r0, [r2] adds r1, r0, #0 cmp r1, #0 beq _0802E6A8 subs r0, #1 strh r0, [r2] b _0802E6AA .align 2, 0 _0802E6A0: .4byte 0x020314E0 _0802E6A4: .4byte 0x00000306 _0802E6A8: strb r1, [r3] _0802E6AA: bx lr thumb_func_start sub_2E6AC sub_2E6AC: @ 0x0802E6AC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov sl, r0 movs r1, #0 str r1, [sp] ldr r1, _0802E6E0 @ =0x020314E0 ldr r0, [r1] ldr r2, _0802E6E4 @ =0x00000306 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0802E6D6 bl _0802EFFC _0802E6D6: lsls r0, r0, #2 ldr r1, _0802E6E8 @ =_0802E6EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E6E0: .4byte 0x020314E0 _0802E6E4: .4byte 0x00000306 _0802E6E8: .4byte _0802E6EC _0802E6EC: @ jump table .4byte _0802E718 @ case 0 .4byte _0802E75C @ case 1 .4byte _0802E7CC @ case 2 .4byte _0802E7D4 @ case 3 .4byte _0802E8DC @ case 4 .4byte _0802E99C @ case 5 .4byte _0802EB2C @ case 6 .4byte _0802EBE4 @ case 7 .4byte _0802EC40 @ case 8 .4byte _0802EEF8 @ case 9 .4byte _0802EFDC @ case 10 _0802E718: ldr r3, _0802E750 @ =0x020314E0 ldr r4, [r3] ldr r5, _0802E754 @ =0x0000030E adds r0, r4, r5 movs r5, #0 strh r5, [r0] movs r7, #0xa4 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 strh r5, [r0] ldr r2, _0802E758 @ =0x00000322 adds r4, r4, r2 strh r5, [r4] bl _0802EFFC .align 2, 0 _0802E750: .4byte 0x020314E0 _0802E754: .4byte 0x0000030E _0802E758: .4byte 0x00000322 _0802E75C: ldr r5, _0802E7B8 @ =0x086AE45A ldr r3, _0802E7BC @ =0x020314E0 ldr r4, [r3] movs r7, #0xa4 lsls r7, r7, #2 adds r0, r4, r7 ldr r0, [r0] movs r1, #0x28 bl __umodsi3 movs r1, #0xa bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] mov sl, r0 movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 movs r1, #0 strh r1, [r0] ldr r3, _0802E7C0 @ =0x00000322 adds r0, r4, r3 strh r1, [r0] ldr r5, _0802E7C4 @ =0x00000307 adds r4, r4, r5 strb r2, [r4] ldr r7, _0802E7BC @ =0x020314E0 ldr r3, [r7] ldr r4, _0802E7C8 @ =0x0000030A adds r0, r3, r4 strh r1, [r0] movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #2 bgt _0802E7AC bl _0802EFFC _0802E7AC: subs r5, #1 adds r0, r3, r5 strb r2, [r0] mov sl, r1 bl _0802EFFC .align 2, 0 _0802E7B8: .4byte 0x086AE45A _0802E7BC: .4byte 0x020314E0 _0802E7C0: .4byte 0x00000322 _0802E7C4: .4byte 0x00000307 _0802E7C8: .4byte 0x0000030A _0802E7CC: movs r7, #4 mov sl, r7 bl _0802EFFC _0802E7D4: ldr r0, _0802E83C @ =0x020314E0 ldr r1, [r0] movs r4, #0xc3 lsls r4, r4, #2 adds r0, r1, r4 ldrh r2, [r0] cmp r2, #2 bhi _0802E84C cmp r2, #0 bne _0802E81A ldr r3, _0802E840 @ =0x000005F7 adds r0, r1, r3 movs r1, #1 strb r1, [r0] ldr r5, _0802E83C @ =0x020314E0 ldr r0, [r5] strb r1, [r0, #0x1f] ldr r0, [r5] ldr r7, _0802E844 @ =0x0000132C adds r0, r0, r7 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] movs r0, #0xe2 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r1, [r5] ldr r0, _0802E848 @ =0x000186A0 str r0, [r1, #0x3c] _0802E81A: ldr r0, _0802E83C @ =0x020314E0 ldr r1, [r0] ldr r2, _0802E844 @ =0x0000132C adds r3, r1, r2 ldr r2, [r3] movs r0, #0x9c strh r0, [r2, #0x10] ldr r2, [r3] adds r1, r1, r4 ldrh r0, [r1] lsls r0, r0, #1 adds r0, #0x79 strh r0, [r2, #0x12] movs r3, #4 mov sl, r3 b _0802E886 .align 2, 0 _0802E83C: .4byte 0x020314E0 _0802E840: .4byte 0x000005F7 _0802E844: .4byte 0x0000132C _0802E848: .4byte 0x000186A0 _0802E84C: cmp r2, #0x16 bhi _0802E870 ldr r4, _0802E86C @ =0x0000132C adds r1, r1, r4 ldr r2, [r1] movs r0, #0x9d strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0x86 strh r0, [r2, #0x12] ldr r1, [r1] movs r0, #1 strb r0, [r1] movs r5, #5 mov sl, r5 b _0802E886 .align 2, 0 _0802E86C: .4byte 0x0000132C _0802E870: ldr r7, _0802E8D0 @ =0x00000306 adds r1, r1, r7 movs r2, #0 movs r0, #4 strb r0, [r1] ldr r1, _0802E8D4 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r4 strh r2, [r0] movs r2, #2 mov sl, r2 _0802E886: ldr r4, _0802E8D4 @ =0x020314E0 ldr r3, [r4] ldr r5, _0802E8D8 @ =0x0000132C adds r2, r3, r5 ldr r1, [r2] movs r7, #0x10 ldrsh r0, [r1, r7] lsls r0, r0, #1 movs r4, #0 strh r0, [r1, #0x28] ldr r1, [r2] movs r5, #0x12 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r2] movs r7, #0x10 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] movs r5, #0xc3 lsls r5, r5, #2 adds r1, r3, r5 ldrh r0, [r1] adds r0, #1 strh r0, [r1] movs r7, #0xc4 lsls r7, r7, #2 adds r3, r3, r7 strh r4, [r3] b _0802EFFC .align 2, 0 _0802E8D0: .4byte 0x00000306 _0802E8D4: .4byte 0x020314E0 _0802E8D8: .4byte 0x0000132C _0802E8DC: ldr r2, _0802E908 @ =0x086AE3DC ldr r5, _0802E90C @ =0x020314E0 ldr r3, [r5] ldr r6, _0802E910 @ =0x00000307 adds r4, r3, r6 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #4 adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] ldr r2, _0802E914 @ =0x0000030A adds r3, r3, r2 ldrh r1, [r3] cmp r0, r1 ble _0802E918 adds r0, r1, #1 strh r0, [r3] b _0802E95C .align 2, 0 _0802E908: .4byte 0x086AE3DC _0802E90C: .4byte 0x020314E0 _0802E910: .4byte 0x00000307 _0802E914: .4byte 0x0000030A _0802E918: movs r2, #0 strh r2, [r3] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r5] ldr r3, _0802E98C @ =0x00000307 adds r1, r0, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x15 bne _0802E948 movs r0, #0x14 strb r0, [r1] ldr r0, [r5] ldr r4, _0802E990 @ =0x00000306 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r5] movs r7, #0xc3 lsls r7, r7, #2 adds r0, r0, r7 strh r2, [r0] _0802E948: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0802E95C movs r0, #0xe3 bl m4aSongNumStart _0802E95C: ldr r2, _0802E994 @ =0x086AE3DC ldr r0, _0802E998 @ =0x020314E0 ldr r3, [r0] ldr r1, _0802E98C @ =0x00000307 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r1, [r1] str r1, [sp] adds r2, #2 adds r0, r0, r2 ldrh r0, [r0] mov sl, r0 movs r2, #0xc4 lsls r2, r2, #2 adds r3, r3, r2 ldrh r0, [r3] adds r1, r0, #1 strh r1, [r3] b _0802EB06 .align 2, 0 _0802E98C: .4byte 0x00000307 _0802E990: .4byte 0x00000306 _0802E994: .4byte 0x086AE3DC _0802E998: .4byte 0x020314E0 _0802E99C: ldr r3, _0802EABC @ =0x020314E0 ldr r2, [r3] movs r4, #0xc3 lsls r4, r4, #2 adds r0, r2, r4 ldrh r0, [r0] cmp r0, #0 bne _0802E9BE movs r5, #0xc8 lsls r5, r5, #2 adds r1, r2, r5 ldr r0, _0802EAC0 @ =0x0000FE98 strh r0, [r1] ldr r7, _0802EAC4 @ =0x00000322 adds r1, r2, r7 adds r0, #0xa0 strh r0, [r1] _0802E9BE: ldr r0, _0802EABC @ =0x020314E0 ldr r7, [r0] movs r1, #0xc3 lsls r1, r1, #2 adds r1, r1, r7 mov sb, r1 ldrh r0, [r1] movs r1, #0x1a bl __umodsi3 ldr r2, _0802EAC8 @ =0x08137CBC ldr r1, _0802EACC @ =0x0000FFFE ands r0, r1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 adds r2, #1 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r2, _0802EAD0 @ =0x0000030E adds r1, r7, r2 strh r0, [r1] movs r3, #0xc7 lsls r3, r3, #2 adds r2, r7, r3 ldr r4, _0802EAD4 @ =0x0000FFF4 mov r8, r4 mov r5, r8 strh r5, [r2] ldr r0, _0802EAD8 @ =0x0000031E adds r3, r7, r0 ldr r0, _0802EADC @ =0x0000FFF6 strh r0, [r3] movs r4, #0xc8 lsls r4, r4, #2 adds r1, r7, r4 ldrh r0, [r2] ldrh r5, [r1] adds r0, r0, r5 strh r0, [r1] ldr r0, _0802EAC4 @ =0x00000322 adds r5, r7, r0 ldrh r0, [r3] ldrh r2, [r5] adds r0, r0, r2 strh r0, [r5] ldr r3, _0802EAE0 @ =0x0000132C adds r4, r7, r3 ldr r6, [r4] movs r2, #0 ldrsh r0, [r1, r2] movs r1, #0xa bl __divsi3 adds r0, #0x9d strh r0, [r6, #0x10] ldr r6, [r4] movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __divsi3 adds r0, #0x86 strh r0, [r6, #0x12] ldr r1, [r4] movs r5, #0x10 ldrsh r0, [r1, r5] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] movs r5, #0x12 ldrsh r0, [r1, r5] lsls r0, r0, #8 str r0, [r1, #0x38] mov r1, sb ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r0, [r4] movs r2, #0x12 ldrsh r0, [r0, r2] mov r3, r8 lsls r3, r3, #0x10 asrs r3, r3, #0x10 mov r8, r3 cmp r0, r8 bge _0802EAF6 movs r4, #0xc2 lsls r4, r4, #2 adds r1, r7, r4 ldrh r0, [r1] cmp r0, #0x63 bls _0802EAE8 movs r5, #0 strh r5, [r1] ldr r0, _0802EAE4 @ =0x00000306 adds r1, r7, r0 movs r0, #6 strb r0, [r1] ldr r1, _0802EABC @ =0x020314E0 ldr r0, [r1] movs r2, #0xc3 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0x41 strh r1, [r0] bl m4aMPlayAllStop b _0802EAF6 .align 2, 0 _0802EABC: .4byte 0x020314E0 _0802EAC0: .4byte 0x0000FE98 _0802EAC4: .4byte 0x00000322 _0802EAC8: .4byte 0x08137CBC _0802EACC: .4byte 0x0000FFFE _0802EAD0: .4byte 0x0000030E _0802EAD4: .4byte 0x0000FFF4 _0802EAD8: .4byte 0x0000031E _0802EADC: .4byte 0x0000FFF6 _0802EAE0: .4byte 0x0000132C _0802EAE4: .4byte 0x00000306 _0802EAE8: movs r4, #0 mov r3, sb strh r4, [r3] ldr r5, _0802EB24 @ =0x00000306 adds r1, r7, r5 movs r0, #7 strb r0, [r1] _0802EAF6: ldr r0, _0802EB28 @ =0x020314E0 ldr r1, [r0] movs r7, #0xc4 lsls r7, r7, #2 adds r1, r1, r7 ldrh r0, [r1] adds r2, r0, #1 strh r2, [r1] _0802EB06: lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x23 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 beq _0802EB1A b _0802EFFC _0802EB1A: movs r0, #0xe3 bl m4aSongNumStart b _0802EFFC .align 2, 0 _0802EB24: .4byte 0x00000306 _0802EB28: .4byte 0x020314E0 _0802EB2C: ldr r1, _0802EBC4 @ =0x020314E0 ldr r0, [r1] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strb r1, [r0] ldr r0, _0802EBC8 @ =0x08137CBC ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 ldr r3, _0802EBC4 @ =0x020314E0 ldr r0, [r3] movs r5, #0xc3 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0x41 bne _0802EB66 movs r0, #0x9f bl m4aSongNumStart ldr r0, _0802EBCC @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0x9e strh r1, [r0, #0x38] _0802EB66: ldr r7, _0802EBC4 @ =0x020314E0 ldr r4, [r7] adds r3, r4, r5 ldrh r0, [r3] cmp r0, #0 bne _0802EB74 b _0802EFFC _0802EB74: subs r0, #1 strh r0, [r3] ldr r2, _0802EBCC @ =0x0200B0C0 ldrh r0, [r3] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3] cmp r0, #0 beq _0802EB8E b _0802EFFC _0802EB8E: movs r0, #0xa1 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #7 strb r0, [r1] ldr r0, [r7] ldr r1, _0802EBD0 @ =0x00000282 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r7] ldr r2, _0802EBD4 @ =0x0000072E adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0802EBD8 @ =0x0000073C adds r0, r0, r3 strb r1, [r0] ldr r0, [r7] ldr r4, _0802EBDC @ =0x0000072F adds r1, r0, r4 ldrb r1, [r1] ldr r5, _0802EBE0 @ =0x0000073D adds r0, r0, r5 strb r1, [r0] bl sub_1C73C b _0802EFFC .align 2, 0 _0802EBC4: .4byte 0x020314E0 _0802EBC8: .4byte 0x08137CBC _0802EBCC: .4byte 0x0200B0C0 _0802EBD0: .4byte 0x00000282 _0802EBD4: .4byte 0x0000072E _0802EBD8: .4byte 0x0000073C _0802EBDC: .4byte 0x0000072F _0802EBE0: .4byte 0x0000073D _0802EBE4: ldr r7, _0802EC28 @ =0x020314E0 ldr r1, [r7] movs r0, #0xc8 lsls r0, r0, #2 adds r2, r1, r0 movs r3, #0 ldr r0, _0802EC2C @ =0x0000F8A8 strh r0, [r2] ldr r4, _0802EC30 @ =0x00000322 adds r2, r1, r4 ldr r0, _0802EC34 @ =0x0000FCE0 strh r0, [r2] movs r5, #0xc7 lsls r5, r5, #2 adds r2, r1, r5 movs r0, #0x52 strh r0, [r2] ldr r7, _0802EC38 @ =0x0000031E adds r0, r1, r7 strh r3, [r0] movs r2, #0xc3 lsls r2, r2, #2 adds r0, r1, r2 strh r3, [r0] ldr r3, _0802EC3C @ =0x00000306 adds r1, r1, r3 movs r0, #8 strb r0, [r1] movs r4, #0xd mov sl, r4 movs r5, #9 str r5, [sp] b _0802EFFC .align 2, 0 _0802EC28: .4byte 0x020314E0 _0802EC2C: .4byte 0x0000F8A8 _0802EC30: .4byte 0x00000322 _0802EC34: .4byte 0x0000FCE0 _0802EC38: .4byte 0x0000031E _0802EC3C: .4byte 0x00000306 _0802EC40: ldr r6, _0802ECCC @ =0x020314E0 ldr r0, [r6] movs r5, #0xc3 lsls r5, r5, #2 adds r0, r0, r5 ldrh r4, [r0] adds r0, r4, #0 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 adds r0, #0xd lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 lsls r4, r4, #0x1a lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C24 adds r1, r0, #0 ldr r4, [r6] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _0802ECD0 @ =0x00004E20 bl __divsi3 ldr r7, _0802ECD4 @ =0x0000030E adds r1, r4, r7 movs r7, #0 strh r0, [r1] adds r4, r4, r5 ldrh r0, [r4] cmp r0, #0 bne _0802EC9A movs r0, #0xe4 bl m4aSongNumStart _0802EC9A: ldr r2, [r6] adds r1, r2, r5 ldrh r0, [r1] cmp r0, #0x27 bhi _0802ECE0 movs r0, #0xc8 lsls r0, r0, #2 adds r1, r2, r0 movs r3, #0xc7 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] ldr r5, _0802ECD8 @ =0x00000322 adds r1, r2, r5 ldr r7, _0802ECDC @ =0x0000031E adds r0, r2, r7 ldrh r0, [r0] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] b _0802ED14 .align 2, 0 _0802ECCC: .4byte 0x020314E0 _0802ECD0: .4byte 0x00004E20 _0802ECD4: .4byte 0x0000030E _0802ECD8: .4byte 0x00000322 _0802ECDC: .4byte 0x0000031E _0802ECE0: cmp r0, #0x45 bls _0802ED14 strh r7, [r1] ldr r3, _0802EDF4 @ =0x00000306 adds r1, r2, r3 movs r0, #9 strb r0, [r1] ldr r1, [r6] movs r4, #0xc8 lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0x96 lsls r0, r0, #3 strh r0, [r2] ldr r5, _0802EDF8 @ =0x00000322 adds r1, r1, r5 ldr r0, _0802EDFC @ =0x0000FC18 strh r0, [r1] movs r0, #0xe3 bl m4aSongNumStart ldr r0, [r6] movs r1, #0xc4 lsls r1, r1, #2 adds r0, r0, r1 strh r7, [r0] _0802ED14: ldr r0, _0802EE00 @ =0x020314E0 ldr r2, [r0] movs r6, #0xc3 lsls r6, r6, #2 adds r1, r2, r6 ldrh r1, [r1] cmp r1, #0xd bne _0802ED90 ldr r5, _0802EE04 @ =0x0000132C adds r0, r2, r5 ldr r1, [r0] movs r0, #0 strb r0, [r1] ldr r2, _0802EE00 @ =0x020314E0 ldr r4, [r2] movs r3, #0xc5 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #5 strh r0, [r1] ldr r7, _0802EE08 @ =0x00000316 adds r1, r4, r7 ldr r0, _0802EE0C @ =0x0000FFE7 strh r0, [r1] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x9d lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r3, #0xc6 lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] adds r7, #0xc adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x86 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r2, _0802EE10 @ =0x0000031A adds r0, r4, r2 strh r1, [r0] adds r4, r4, r5 ldr r1, [r4] movs r0, #1 strb r0, [r1, #1] _0802ED90: ldr r3, _0802EE00 @ =0x020314E0 ldr r7, [r3] ldrb r0, [r7, #0x1f] cmp r0, #0 bne _0802ED9C b _0802EED8 _0802ED9C: adds r0, r7, r6 ldrh r0, [r0] cmp r0, #0xc bhi _0802EE14 ldr r5, _0802EE04 @ =0x0000132C adds r4, r7, r5 ldr r5, [r4] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r7, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x9d strh r0, [r5, #0x10] ldr r5, [r4] ldr r3, _0802EDF8 @ =0x00000322 adds r0, r7, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r0, #0x86 strh r0, [r5, #0x12] ldr r1, [r4] movs r2, #0x10 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r5, #0x10 ldrsh r0, [r1, r5] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] b _0802EED0 .align 2, 0 _0802EDF4: .4byte 0x00000306 _0802EDF8: .4byte 0x00000322 _0802EDFC: .4byte 0x0000FC18 _0802EE00: .4byte 0x020314E0 _0802EE04: .4byte 0x0000132C _0802EE08: .4byte 0x00000316 _0802EE0C: .4byte 0x0000FFE7 _0802EE10: .4byte 0x0000031A _0802EE14: ldr r0, _0802EEE4 @ =0x00000316 adds r1, r7, r0 ldrh r0, [r1] adds r0, #2 movs r2, #0 mov r8, r2 strh r0, [r1] movs r3, #0xc6 lsls r3, r3, #2 adds r2, r7, r3 movs r4, #0xc5 lsls r4, r4, #2 adds r0, r7, r4 ldrh r0, [r0] ldrh r5, [r2] adds r0, r0, r5 strh r0, [r2] ldr r0, _0802EEE8 @ =0x0000031A adds r4, r7, r0 ldrh r0, [r1] ldrh r1, [r4] adds r0, r0, r1 strh r0, [r4] ldr r3, _0802EEEC @ =0x0000132C mov sb, r3 adds r5, r7, r3 ldr r6, [r5] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x10] ldr r6, [r5] movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x12] ldr r5, [r5] movs r3, #0x12 ldrsh r0, [r5, r3] cmp r0, #0x5a ble _0802EEAA movs r0, #0x5b strh r0, [r5, #0x12] ldr r4, _0802EEF0 @ =0x000005F7 adds r0, r7, r4 mov r5, r8 strb r5, [r0] ldr r7, _0802EEF4 @ =0x020314E0 ldr r0, [r7] strb r5, [r0, #0x1f] ldr r1, [r7] ldr r0, _0802EEEC @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0x30] ldr r2, [r1] adds r0, #0x80 strh r0, [r2, #0x32] ldr r1, [r1] movs r0, #3 strb r0, [r1, #1] ldr r0, [r7] adds r0, #0x24 strb r5, [r0] movs r0, #0xe5 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0802EEAA: ldr r2, _0802EEF4 @ =0x020314E0 ldr r1, [r2] add r1, sb ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r4, #0x12 ldrsh r0, [r2, r4] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] _0802EED0: movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x38] _0802EED8: movs r0, #9 str r0, [sp] ldr r2, _0802EEF4 @ =0x020314E0 ldr r1, [r2] b _0802EFBC .align 2, 0 _0802EEE4: .4byte 0x00000316 _0802EEE8: .4byte 0x0000031A _0802EEEC: .4byte 0x0000132C _0802EEF0: .4byte 0x000005F7 _0802EEF4: .4byte 0x020314E0 _0802EEF8: ldr r0, _0802EF64 @ =0x020314E0 ldr r4, [r0] movs r7, #0xc3 lsls r7, r7, #2 adds r5, r4, r7 ldrh r0, [r5] movs r1, #0x1a bl __umodsi3 ldr r2, _0802EF68 @ =0x08137CBC ldr r1, _0802EF6C @ =0x0000FFFE ands r0, r1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #4 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 adds r2, #1 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r0, r1] ldr r2, _0802EF70 @ =0x0000030E adds r0, r4, r2 strh r1, [r0] movs r3, #0xc7 lsls r3, r3, #2 adds r2, r4, r3 ldr r0, _0802EF74 @ =0x0000FFF4 strh r0, [r2] adds r7, #0x12 adds r3, r4, r7 movs r0, #0xa strh r0, [r3] ldrh r0, [r5] cmp r0, #0x63 bhi _0802EF7C movs r0, #0xc8 lsls r0, r0, #2 adds r1, r4, r0 ldrh r0, [r2] ldrh r2, [r1] adds r0, r0, r2 strh r0, [r1] ldr r5, _0802EF78 @ =0x00000322 adds r1, r4, r5 ldrh r0, [r3] ldrh r7, [r1] adds r0, r0, r7 strh r0, [r1] b _0802EF90 .align 2, 0 _0802EF64: .4byte 0x020314E0 _0802EF68: .4byte 0x08137CBC _0802EF6C: .4byte 0x0000FFFE _0802EF70: .4byte 0x0000030E _0802EF74: .4byte 0x0000FFF4 _0802EF78: .4byte 0x00000322 _0802EF7C: movs r0, #0 strh r0, [r5] ldr r0, _0802EFCC @ =0x00000306 adds r1, r4, r0 movs r0, #0xa strb r0, [r1] ldr r0, _0802EFD0 @ =0x02032F20 ldr r1, _0802EFD4 @ =0x086A11A4 bl MPlayStart _0802EF90: ldr r4, _0802EFD8 @ =0x020314E0 ldr r1, [r4] movs r2, #0xc4 lsls r2, r2, #2 adds r1, r1, r2 ldrh r0, [r1] adds r2, r0, #1 strh r2, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x23 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _0802EFBA ldr r0, _0802EFD0 @ =0x02032F20 ldr r1, _0802EFD4 @ =0x086A11A4 bl MPlayStart _0802EFBA: ldr r1, [r4] _0802EFBC: movs r3, #0xc3 lsls r3, r3, #2 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0802EFFC .align 2, 0 _0802EFCC: .4byte 0x00000306 _0802EFD0: .4byte 0x02032F20 _0802EFD4: .4byte 0x086A11A4 _0802EFD8: .4byte 0x020314E0 _0802EFDC: ldr r4, _0802F10C @ =0x020314E0 ldr r0, [r4] ldr r5, _0802F110 @ =0x0000030E adds r1, r0, r5 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r7, _0802F114 @ =0x00000306 adds r0, r0, r7 strb r2, [r0] ldr r0, [r4] movs r1, #0xc3 lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] mov sl, r3 _0802EFFC: ldr r2, _0802F118 @ =0x0200DED8 ldrh r0, [r2] cmp r0, #0 beq _0802F0FA ldr r2, _0802F11C @ =0x040000D4 mov r3, sl lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802F120 @ =0x084BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _0802F124 @ =0x060122A0 str r0, [r2, #4] ldr r0, _0802F128 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0802F10C @ =0x020314E0 ldr r4, [r0] movs r5, #0xc8 lsls r5, r5, #2 adds r0, r4, r5 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x92 subs r0, r0, r1 ldr r1, _0802F118 @ =0x0200DED8 strh r0, [r1, #2] ldr r2, _0802F12C @ =0x00000322 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r5, r0, #0 adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r0, #0x6e subs r5, r5, r0 ldr r7, _0802F110 @ =0x0000030E adds r4, r4, r7 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r5, r5, r0 ldr r2, _0802F118 @ =0x0200DED8 strh r5, [r2, #4] movs r2, #0 ldr r3, [sp] lsls r1, r3, #0x10 ldr r4, _0802F130 @ =0x086B3EF6 mov sb, r4 ldr r6, _0802F134 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r5, _0802F138 @ =0xFFFFFE00 mov r8, r5 _0802F08C: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 ldr r7, _0802F118 @ =0x0200DED8 adds r4, r7, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, sl ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] mov ip, r0 mov r5, ip lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _0802F13C @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 mov r5, ip ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 ldr r7, _0802F118 @ =0x0200DED8 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0802F08C _0802F0FA: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802F10C: .4byte 0x020314E0 _0802F110: .4byte 0x0000030E _0802F114: .4byte 0x00000306 _0802F118: .4byte 0x0200DED8 _0802F11C: .4byte 0x040000D4 _0802F120: .4byte 0x084BB16C _0802F124: .4byte 0x060122A0 _0802F128: .4byte 0x80000240 _0802F12C: .4byte 0x00000322 _0802F130: .4byte 0x086B3EF6 _0802F134: .4byte 0x03005000 _0802F138: .4byte 0xFFFFFE00 _0802F13C: .4byte 0x000001FF thumb_func_start sub_2F140 sub_2F140: @ 0x0802F140 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0802F240 @ =0x020314E0 ldr r5, [r0] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r5, r1 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r4, r0, #4 ldr r6, _0802F244 @ =0x0200E9A0 movs r2, #0xbd lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0802F170 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _0802F170: ldr r2, _0802F248 @ =0x086AE462 lsls r0, r4, #0x10 asrs r0, r0, #0xe adds r1, r0, r2 ldrh r3, [r1] adds r2, #2 adds r0, r0, r2 ldrh r4, [r0] adds r0, r5, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0xa4 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r5, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0xa6 subs r0, r0, r1 strh r0, [r6, #4] ldr r2, _0802F24C @ =0x040000D4 lsls r1, r4, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0802F250 @ =0x083FFD8C adds r0, r0, r1 str r0, [r2] ldr r0, _0802F254 @ =0x06012720 str r0, [r2, #4] ldr r0, _0802F258 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r7, _0802F25C @ =0x086B4A72 mov sb, r7 ldr r0, _0802F260 @ =0x03005000 mov sl, r0 lsls r3, r3, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #2 mov ip, r0 ldr r2, _0802F264 @ =0xFFFFFE00 mov r8, r2 _0802F1CE: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 add r2, sl lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 add r2, sl ldrh r5, [r2, #2] lsls r1, r5, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802F268 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r5 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 add r1, sl ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0802F1CE pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802F240: .4byte 0x020314E0 _0802F244: .4byte 0x0200E9A0 _0802F248: .4byte 0x086AE462 _0802F24C: .4byte 0x040000D4 _0802F250: .4byte 0x083FFD8C _0802F254: .4byte 0x06012720 _0802F258: .4byte 0x80000180 _0802F25C: .4byte 0x086B4A72 _0802F260: .4byte 0x03005000 _0802F264: .4byte 0xFFFFFE00 _0802F268: .4byte 0x000001FF thumb_func_start sub_2F26C sub_2F26C: @ 0x0802F26C push {r4, r5, r6, lr} ldr r1, _0802F290 @ =0x020314E0 ldr r0, [r1] movs r2, #0xde lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #4 bls _0802F286 b _0802F4FA _0802F286: lsls r0, r0, #2 ldr r1, _0802F294 @ =_0802F298 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F290: .4byte 0x020314E0 _0802F294: .4byte _0802F298 _0802F298: @ jump table .4byte _0802F2AC @ case 0 .4byte _0802F2F0 @ case 1 .4byte _0802F384 @ case 2 .4byte _0802F408 @ case 3 .4byte _0802F4DC @ case 4 _0802F2AC: ldr r4, [r5] movs r3, #0xa4 lsls r3, r3, #2 adds r0, r4, r3 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 adds r0, #2 ldr r2, _0802F2E8 @ =0x00000379 adds r4, r4, r2 movs r3, #0 strb r0, [r4] ldr r1, [r5] adds r2, r1, r2 ldrb r0, [r2] adds r0, #1 ldr r2, _0802F2EC @ =0x0000037A adds r1, r1, r2 strb r0, [r1] ldr r0, [r5] movs r1, #0xdf lsls r1, r1, #2 adds r0, r0, r1 strb r3, [r0] b _0802F4FA .align 2, 0 _0802F2E8: .4byte 0x00000379 _0802F2EC: .4byte 0x0000037A _0802F2F0: ldr r4, [r5] movs r2, #0xa4 lsls r2, r2, #2 adds r0, r4, r2 ldr r0, [r0] movs r1, #0x21 bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc bgt _0802F320 ldr r3, _0802F318 @ =0x00000379 adds r0, r4, r3 movs r1, #0 strb r1, [r0] ldr r0, [r5] ldr r2, _0802F31C @ =0x0000037A adds r0, r0, r2 b _0802F360 .align 2, 0 _0802F318: .4byte 0x00000379 _0802F31C: .4byte 0x0000037A _0802F320: cmp r0, #0x13 bgt _0802F330 ldr r3, _0802F32C @ =0x00000379 adds r1, r4, r3 b _0802F354 .align 2, 0 _0802F32C: .4byte 0x00000379 _0802F330: cmp r0, #0x19 bgt _0802F350 ldr r2, _0802F348 @ =0x00000379 adds r1, r4, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] ldr r3, _0802F34C @ =0x0000037A adds r0, r0, r3 movs r1, #2 b _0802F360 .align 2, 0 _0802F348: .4byte 0x00000379 _0802F34C: .4byte 0x0000037A _0802F350: ldr r0, _0802F37C @ =0x00000379 adds r1, r4, r0 _0802F354: movs r0, #9 strb r0, [r1] ldr r0, [r5] ldr r1, _0802F380 @ =0x0000037A adds r0, r0, r1 movs r1, #1 _0802F360: strb r1, [r0] ldr r1, [r5] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0802F374 b _0802F4FA _0802F374: movs r2, #0xdf lsls r2, r2, #2 adds r1, r1, r2 b _0802F4D0 .align 2, 0 _0802F37C: .4byte 0x00000379 _0802F380: .4byte 0x0000037A _0802F384: ldr r0, [r5] movs r3, #0xdf lsls r3, r3, #2 adds r0, r0, r3 movs r2, #0 strb r2, [r0] ldr r0, [r5] ldr r1, _0802F3E8 @ =0x0000037D adds r0, r0, r1 strb r2, [r0] ldr r1, [r5] adds r3, #2 adds r0, r1, r3 movs r3, #0 strh r2, [r0] movs r0, #0xde lsls r0, r0, #2 adds r1, r1, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] ldr r1, _0802F3EC @ =0x0000037B adds r0, r0, r1 strb r3, [r0] ldr r0, _0802F3F0 @ =0x0200B0C0 movs r2, #0xb3 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strh r1, [r0] ldr r0, [r5] adds r0, #0xe4 movs r1, #0x16 strb r1, [r0] ldr r1, _0802F3F4 @ =0x040000D4 ldr r0, _0802F3F8 @ =0x08526DCC str r0, [r1] ldr r0, _0802F3FC @ =0x06015800 str r0, [r1, #4] ldr r0, _0802F400 @ =0x80000600 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xec bl m4aSongNumStart ldr r1, [r5] ldr r0, _0802F404 @ =0x00001388 str r0, [r1, #0x3c] b _0802F4FA .align 2, 0 _0802F3E8: .4byte 0x0000037D _0802F3EC: .4byte 0x0000037B _0802F3F0: .4byte 0x0200B0C0 _0802F3F4: .4byte 0x040000D4 _0802F3F8: .4byte 0x08526DCC _0802F3FC: .4byte 0x06015800 _0802F400: .4byte 0x80000600 _0802F404: .4byte 0x00001388 _0802F408: ldr r3, _0802F434 @ =0x086AE496 ldr r2, [r5] ldr r0, _0802F438 @ =0x0000037D adds r4, r2, r0 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] ldr r1, _0802F43C @ =0x0000037E adds r2, r2, r1 ldrh r1, [r2] adds r6, r3, #0 cmp r0, r1 ble _0802F440 adds r0, r1, #1 strh r0, [r2] b _0802F46C .align 2, 0 _0802F434: .4byte 0x086AE496 _0802F438: .4byte 0x0000037D _0802F43C: .4byte 0x0000037E _0802F440: ldrb r0, [r4] adds r0, #1 movs r2, #0 strb r0, [r4] ldr r1, [r5] ldr r3, _0802F4B8 @ =0x0000037E adds r0, r1, r3 strh r2, [r0] ldr r0, _0802F4BC @ =0x0000037D adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x10 ble _0802F46C movs r0, #0x10 strb r0, [r1] ldr r0, [r5] movs r1, #0xde lsls r1, r1, #2 adds r0, r0, r1 movs r1, #4 strb r1, [r0] _0802F46C: ldr r2, [r5] ldr r3, _0802F4BC @ =0x0000037D adds r0, r2, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r6 ldrh r0, [r0] ldr r1, _0802F4C0 @ =0x0000037A adds r2, r2, r1 strb r0, [r2] ldr r2, [r5] adds r0, r2, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r6, #4 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _0802F4C4 @ =0x00000379 adds r2, r2, r1 strb r0, [r2] ldr r2, [r5] adds r3, r2, r3 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #5 bgt _0802F4CC adds r1, #1 ldr r3, _0802F4C8 @ =0x0000037B adds r0, r2, r3 strb r1, [r0] b _0802F4FA .align 2, 0 _0802F4B8: .4byte 0x0000037E _0802F4BC: .4byte 0x0000037D _0802F4C0: .4byte 0x0000037A _0802F4C4: .4byte 0x00000379 _0802F4C8: .4byte 0x0000037B _0802F4CC: ldr r0, _0802F4D8 @ =0x0000037B adds r1, r2, r0 _0802F4D0: movs r0, #0 strb r0, [r1] b _0802F4FA .align 2, 0 _0802F4D8: .4byte 0x0000037B _0802F4DC: ldr r0, [r5] adds r0, #0xe4 movs r1, #0 strb r1, [r0] ldr r0, _0802F500 @ =0x0200B0C0 movs r2, #0xb3 lsls r2, r2, #5 adds r0, r0, r2 movs r2, #0 strh r1, [r0] ldr r0, [r5] movs r3, #0xde lsls r3, r3, #2 adds r0, r0, r3 strb r2, [r0] _0802F4FA: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0802F500: .4byte 0x0200B0C0 thumb_func_start sub_2F504 sub_2F504: @ 0x0802F504 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0802F700 @ =0x0200C668 ldrh r0, [r6] movs r1, #0xb8 adds r1, r1, r6 mov sl, r1 cmp r0, #0 beq _0802F5EC ldr r3, _0802F704 @ =0x020314E0 ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc6 subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r3] movs r4, #0xe0 lsls r4, r4, #2 adds r2, r1, r4 movs r7, #0x8e lsls r7, r7, #1 adds r0, r7, #0 ldrh r2, [r2] adds r0, r0, r2 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #4] ldr r3, [r3] ldr r1, _0802F708 @ =0x00000379 adds r0, r3, r1 ldr r2, _0802F70C @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #7 ldr r1, _0802F710 @ =0x08512C4C adds r0, r0, r1 str r0, [r2] ldr r0, _0802F714 @ =0x06012A20 str r0, [r2, #4] ldr r0, _0802F718 @ =0x800001C0 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _0802F71C @ =0x0000037A adds r3, r3, r2 movs r2, #0 ldr r4, _0802F720 @ =0x086B3CA4 mov sb, r4 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 mov ip, r0 ldr r7, _0802F724 @ =0xFFFFFE00 mov r8, r7 _0802F580: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 ldr r1, _0802F728 @ =0x03005000 adds r2, r0, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, ip adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r7, _0802F728 @ =0x03005000 adds r2, r2, r7 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802F72C @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _0802F728 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0802F580 _0802F5EC: mov r6, sl ldrh r0, [r6] cmp r0, #0 beq _0802F69A ldr r2, _0802F704 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc6 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r3, #0x8e lsls r3, r3, #1 adds r0, r3, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r2] ldr r4, _0802F730 @ =0x0000037B adds r0, r0, r4 movs r2, #0 ldr r7, _0802F734 @ =0x086B3B7E mov sb, r7 ldr r1, _0802F728 @ =0x03005000 mov sl, r1 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0x2a adds r3, r1, #0 muls r3, r0, r3 mov ip, r3 ldr r4, _0802F724 @ =0xFFFFFE00 mov r8, r4 _0802F632: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r7, sl adds r2, r0, r7 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, ip adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sl ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0802F72C @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sl ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #6 ble _0802F632 _0802F69A: ldr r6, _0802F738 @ =0x0200E608 ldrh r0, [r6] cmp r0, #0 beq _0802F780 ldr r2, _0802F704 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xce subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r2] movs r3, #0xdf lsls r3, r3, #2 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802F748 adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r4, #0x82 lsls r4, r4, #1 adds r0, r4, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r2] movs r7, #0xa4 lsls r7, r7, #2 adds r0, r0, r7 ldr r0, [r0] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 ldr r2, _0802F70C @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #7 ldr r1, _0802F73C @ =0x084ED6CC adds r0, r0, r1 str r0, [r2] ldr r0, _0802F740 @ =0x06014FA0 str r0, [r2, #4] ldr r0, _0802F744 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] b _0802F74C .align 2, 0 _0802F700: .4byte 0x0200C668 _0802F704: .4byte 0x020314E0 _0802F708: .4byte 0x00000379 _0802F70C: .4byte 0x040000D4 _0802F710: .4byte 0x08512C4C _0802F714: .4byte 0x06012A20 _0802F718: .4byte 0x800001C0 _0802F71C: .4byte 0x0000037A _0802F720: .4byte 0x086B3CA4 _0802F724: .4byte 0xFFFFFE00 _0802F728: .4byte 0x03005000 _0802F72C: .4byte 0x000001FF _0802F730: .4byte 0x0000037B _0802F734: .4byte 0x086B3B7E _0802F738: .4byte 0x0200E608 _0802F73C: .4byte 0x084ED6CC _0802F740: .4byte 0x06014FA0 _0802F744: .4byte 0x80000100 _0802F748: movs r0, #0xc8 strh r0, [r6, #4] _0802F74C: adds r5, r6, #0 adds r5, #8 ldr r4, _0802F790 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r7, _0802F794 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802F798 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _0802F780: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802F790: .4byte 0x03005000 _0802F794: .4byte 0x000001FF _0802F798: .4byte 0xFFFFFE00 thumb_func_start sub_2F79C sub_2F79C: @ 0x0802F79C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r1, #0 ldr r0, _0802F7D0 @ =0x020314E0 mov r8, r0 _0802F7A8: mov r2, r8 ldr r0, [r2] lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldr r3, _0802F7D4 @ =0x0000036A adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r2, #0 cmp r0, #5 bls _0802F7C4 b _0802FB26 _0802F7C4: lsls r0, r0, #2 ldr r1, _0802F7D8 @ =_0802F7DC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802F7D0: .4byte 0x020314E0 _0802F7D4: .4byte 0x0000036A _0802F7D8: .4byte _0802F7DC _0802F7DC: @ jump table .4byte _0802F7F4 @ case 0 .4byte _0802F87E @ case 1 .4byte _0802F944 @ case 2 .4byte _0802F9E4 @ case 3 .4byte _0802FA28 @ case 4 .4byte _0802FAA2 @ case 5 _0802F7F4: ldr r1, _0802F828 @ =0x086AE4FC mov r4, r8 ldr r2, [r4] asrs r4, r6, #0x10 movs r5, #0xdb lsls r5, r5, #2 adds r0, r2, r5 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r5, r4, #1 ldr r1, _0802F82C @ =0x0000036E adds r2, r2, r1 adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0802F830 adds r0, r1, #1 strh r0, [r2] b _0802F858 .align 2, 0 _0802F828: .4byte 0x086AE4FC _0802F82C: .4byte 0x0000036E _0802F830: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] mov r3, r8 ldr r1, [r3] ldr r3, _0802F870 @ =0x0000036E adds r0, r1, r3 adds r0, r0, r5 movs r3, #0 strh r2, [r0] movs r5, #0xdb lsls r5, r5, #2 adds r1, r1, r5 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 ble _0802F858 strb r3, [r1] _0802F858: mov r1, r8 ldr r0, [r1] asrs r1, r6, #0xf ldr r2, _0802F874 @ =0x00000372 adds r0, r0, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0x97 bhi _0802F878 adds r0, #1 strh r0, [r1] b _0802FB26 .align 2, 0 _0802F870: .4byte 0x0000036E _0802F874: .4byte 0x00000372 _0802F878: movs r0, #0 strh r0, [r1] b _0802FB26 _0802F87E: ldr r2, _0802F8B0 @ =0x086AE4FC ldr r7, _0802F8B4 @ =0x020314E0 ldr r1, [r7] asrs r4, r6, #0x10 movs r3, #0xdb lsls r3, r3, #2 adds r0, r1, r3 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r2, #2 adds r0, r0, r2 movs r5, #0 ldrsh r0, [r0, r5] lsls r5, r4, #1 ldr r2, _0802F8B8 @ =0x0000036E adds r1, r1, r2 adds r1, r1, r5 ldrh r2, [r1] cmp r0, r2 ble _0802F8BC adds r0, r2, #1 strh r0, [r1] b _0802F8EC .align 2, 0 _0802F8B0: .4byte 0x086AE4FC _0802F8B4: .4byte 0x020314E0 _0802F8B8: .4byte 0x0000036E _0802F8BC: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] ldr r1, [r7] ldr r3, _0802F938 @ =0x0000036E adds r0, r1, r3 adds r0, r0, r5 strh r2, [r0] movs r5, #0xdb lsls r5, r5, #2 adds r1, r1, r5 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bne _0802F8EC movs r0, #0xe6 bl m4aSongNumStart ldr r1, [r7] movs r0, #0xfa lsls r0, r0, #3 str r0, [r1, #0x3c] _0802F8EC: ldr r0, _0802F93C @ =0x020314E0 ldr r3, [r0] asrs r2, r6, #0x10 movs r4, #0xdb lsls r4, r4, #2 adds r1, r3, r4 adds r5, r1, r2 movs r1, #0 ldrsb r1, [r5, r1] mov r8, r0 cmp r1, #6 beq _0802F906 b _0802FB16 _0802F906: ldr r1, _0802F940 @ =0x00000376 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #0 beq _0802F926 cmp r0, #1 bne _0802F926 movs r0, #7 strb r0, [r5] mov r3, r8 ldr r0, [r3] subs r4, #2 adds r0, r0, r4 adds r0, r0, r2 movs r1, #2 strb r1, [r0] _0802F926: mov r5, r8 ldr r0, [r5] asrs r1, r6, #0xf ldr r2, _0802F938 @ =0x0000036E adds r0, r0, r2 adds r0, r0, r1 movs r1, #0 strh r1, [r0] b _0802FB16 .align 2, 0 _0802F938: .4byte 0x0000036E _0802F93C: .4byte 0x020314E0 _0802F940: .4byte 0x00000376 _0802F944: ldr r1, _0802F978 @ =0x086AE4FC mov r5, r8 ldr r2, [r5] asrs r5, r6, #0x10 movs r7, #0xdb lsls r7, r7, #2 adds r0, r2, r7 adds r3, r0, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r4, r5, #1 ldr r1, _0802F97C @ =0x0000036E adds r2, r2, r1 adds r2, r2, r4 ldrh r1, [r2] cmp r0, r1 ble _0802F980 adds r0, r1, #1 strh r0, [r2] b _0802F9CA .align 2, 0 _0802F978: .4byte 0x086AE4FC _0802F97C: .4byte 0x0000036E _0802F980: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] mov r3, r8 ldr r1, [r3] ldr r3, _0802F9D8 @ =0x0000036E adds r0, r1, r3 adds r0, r0, r4 movs r4, #0 strh r2, [r0] movs r0, #0xdb lsls r0, r0, #2 adds r1, r1, r0 adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bne _0802F9AC movs r0, #0xe7 bl m4aSongNumStart _0802F9AC: mov r1, r8 ldr r0, [r1] adds r0, r0, r7 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 ble _0802F9CA strb r4, [r1] mov r2, r8 ldr r0, [r2] ldr r3, _0802F9DC @ =0x0000036A adds r0, r0, r3 adds r0, r0, r5 strb r4, [r0] _0802F9CA: mov r4, r8 ldr r0, [r4] asrs r1, r6, #0xf ldr r5, _0802F9E0 @ =0x00000372 adds r0, r0, r5 b _0802FB20 .align 2, 0 _0802F9D8: .4byte 0x0000036E _0802F9DC: .4byte 0x0000036A _0802F9E0: .4byte 0x00000372 _0802F9E4: mov r0, r8 ldr r1, [r0] asrs r2, r6, #0x10 movs r3, #0xdb lsls r3, r3, #2 adds r1, r1, r3 adds r1, r1, r2 movs r4, #0 movs r0, #9 strb r0, [r1] mov r5, r8 ldr r1, [r5] lsls r3, r2, #1 ldr r5, _0802FA1C @ =0x0000036E adds r0, r1, r5 adds r0, r0, r3 strh r4, [r0] ldr r0, _0802FA20 @ =0x0000036A adds r1, r1, r0 adds r1, r1, r2 movs r0, #4 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0802FA24 @ =0x00000372 adds r0, r0, r2 adds r0, r0, r3 b _0802FB22 .align 2, 0 _0802FA1C: .4byte 0x0000036E _0802FA20: .4byte 0x0000036A _0802FA24: .4byte 0x00000372 _0802FA28: ldr r1, _0802FA90 @ =0x086AE4FC mov r3, r8 ldr r2, [r3] asrs r5, r6, #0x10 movs r4, #0xdb lsls r4, r4, #2 adds r0, r2, r4 adds r3, r0, r5 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r4, r5, #1 ldr r1, _0802FA94 @ =0x0000036E adds r2, r2, r1 adds r2, r2, r4 ldrh r1, [r2] cmp r0, r1 bgt _0802FACE ldrb r0, [r3] adds r0, #1 movs r1, #0 strb r0, [r3] mov r3, r8 ldr r2, [r3] ldr r3, _0802FA94 @ =0x0000036E adds r0, r2, r3 adds r0, r0, r4 movs r3, #0 strh r1, [r0] movs r4, #0xdb lsls r4, r4, #2 adds r0, r2, r4 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x11 ble _0802FB16 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #6 bne _0802FA9C strb r3, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0802FA98 @ =0x0000036A adds r0, r0, r2 adds r0, r0, r5 b _0802FB14 .align 2, 0 _0802FA90: .4byte 0x086AE4FC _0802FA94: .4byte 0x0000036E _0802FA98: .4byte 0x0000036A _0802FA9C: movs r0, #9 strb r0, [r1] b _0802FB16 _0802FAA2: ldr r1, _0802FAD4 @ =0x086AE4FC mov r5, r8 ldr r2, [r5] asrs r4, r6, #0x10 movs r7, #0xdb lsls r7, r7, #2 adds r0, r2, r7 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] lsls r5, r4, #1 ldr r1, _0802FAD8 @ =0x0000036E adds r2, r2, r1 adds r2, r2, r5 ldrh r1, [r2] cmp r0, r1 ble _0802FADC _0802FACE: adds r0, r1, #1 strh r0, [r2] b _0802FB16 .align 2, 0 _0802FAD4: .4byte 0x086AE4FC _0802FAD8: .4byte 0x0000036E _0802FADC: ldrb r0, [r3] adds r0, #1 movs r1, #0 strb r0, [r3] mov r3, r8 ldr r2, [r3] ldr r3, _0802FC24 @ =0x0000036E adds r0, r2, r3 adds r0, r0, r5 movs r3, #0 strh r1, [r0] movs r5, #0xdb lsls r5, r5, #2 adds r0, r2, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x11 ble _0802FB16 ldr r1, _0802FC28 @ =0x0000036A adds r0, r2, r1 adds r0, r0, r4 strb r3, [r0] mov r2, r8 ldr r0, [r2] adds r0, r0, r7 adds r0, r0, r4 _0802FB14: strb r3, [r0] _0802FB16: mov r3, r8 ldr r0, [r3] asrs r1, r6, #0xf ldr r4, _0802FC2C @ =0x00000372 adds r0, r0, r4 _0802FB20: adds r0, r0, r1 _0802FB22: movs r1, #0x14 strh r1, [r0] _0802FB26: movs r5, #0x80 lsls r5, r5, #9 adds r0, r6, r5 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _0802FB36 b _0802F7A8 _0802FB36: mov r0, r8 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _0802FB56 ldr r2, _0802FC30 @ =0x00000376 adds r1, r1, r2 ldrh r0, [r1] cmp r0, #0 beq _0802FB56 subs r0, #1 strh r0, [r1] _0802FB56: mov r3, r8 ldr r2, [r3] ldr r4, _0802FC34 @ =0x00001328 adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0 beq _0802FB78 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802FB78 ldr r5, _0802FC38 @ =0x00001330 adds r1, r2, r5 ldr r3, _0802FC3C @ =0x00001334 adds r0, r2, r3 str r0, [r1] _0802FB78: mov r4, r8 ldr r0, [r4] movs r6, #0xda lsls r6, r6, #2 adds r0, r0, r6 ldrh r0, [r0] cmp r0, #0 beq _0802FBCE cmp r0, #0x11 bne _0802FB9E movs r0, #0xe8 bl m4aSongNumStart ldr r1, [r4] movs r0, #0xa str r0, [r1, #0x3c] movs r0, #0xd bl sub_11B0 _0802FB9E: ldr r5, _0802FC40 @ =0x08137CD6 mov r0, r8 ldr r4, [r0] adds r4, r4, r6 ldrh r0, [r4] movs r1, #3 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r5 movs r1, #0 ldrsh r2, [r0, r1] ldr r3, _0802FC44 @ =0x0400004C lsls r0, r2, #0xc lsls r1, r2, #8 orrs r0, r1 lsls r1, r2, #4 orrs r0, r1 orrs r0, r2 strh r0, [r3] ldrh r0, [r4] subs r0, #1 strh r0, [r4] _0802FBCE: mov r3, r8 ldr r1, [r3] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #2 ble _0802FC48 cmp r0, #6 beq _0802FCB8 movs r1, #0 movs r3, #0 _0802FBE2: mov r2, r8 ldr r0, [r2] lsls r1, r1, #0x10 asrs r2, r1, #0x10 ldr r4, _0802FC28 @ =0x0000036A adds r0, r0, r4 adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0802FC14 strb r3, [r1] mov r5, r8 ldr r0, [r5] movs r1, #0xdb lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r2 strb r3, [r0] ldr r0, [r5] lsls r1, r2, #1 adds r4, #4 adds r0, r0, r4 adds r0, r0, r1 strh r3, [r0] _0802FC14: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0802FBE2 b _0802FCB8 .align 2, 0 _0802FC24: .4byte 0x0000036E _0802FC28: .4byte 0x0000036A _0802FC2C: .4byte 0x00000372 _0802FC30: .4byte 0x00000376 _0802FC34: .4byte 0x00001328 _0802FC38: .4byte 0x00001330 _0802FC3C: .4byte 0x00001334 _0802FC40: .4byte 0x08137CD6 _0802FC44: .4byte 0x0400004C _0802FC48: ldr r5, _0802FC7C @ =0x0000072E adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0802FC8C ldr r2, _0802FC80 @ =0x00000281 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0802FCB8 ldr r4, _0802FC84 @ =0x0000036A adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bgt _0802FCB8 movs r1, #3 strb r1, [r2] ldr r0, [r3] ldr r5, _0802FC88 @ =0x0000036B b _0802FCB4 .align 2, 0 _0802FC7C: .4byte 0x0000072E _0802FC80: .4byte 0x00000281 _0802FC84: .4byte 0x0000036A _0802FC88: .4byte 0x0000036B _0802FC8C: ldr r0, _0802FCC4 @ =0x0000036A adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 ble _0802FCB8 movs r1, #0 strb r1, [r2] mov r2, r8 ldr r0, [r2] movs r3, #0xdb lsls r3, r3, #2 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] ldr r4, _0802FCC8 @ =0x0000036B adds r0, r0, r4 strb r1, [r0] ldr r0, [r2] ldr r5, _0802FCCC @ =0x0000036D _0802FCB4: adds r0, r0, r5 strb r1, [r0] _0802FCB8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0802FCC4: .4byte 0x0000036A _0802FCC8: .4byte 0x0000036B _0802FCCC: .4byte 0x0000036D thumb_func_start sub_2FCD0 sub_2FCD0: @ 0x0802FCD0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0802FDCC @ =0x0200DF90 ldrh r0, [r6] cmp r0, #0 bne _0802FCE4 b _080300B2 _0802FCE4: ldr r3, _0802FDD0 @ =0x020314E0 ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x44 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r3] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x90 subs r0, r0, r1 strh r0, [r6, #4] ldr r4, _0802FDD4 @ =0x086AE4FC ldr r0, [r3] movs r1, #0xdb lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 ldr r2, _0802FDD8 @ =0x040000D4 movs r5, #0 ldrsh r1, [r0, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0802FDDC @ =0x0847A40C adds r0, r0, r1 str r0, [r2] ldr r0, _0802FDE0 @ =0x06012DA0 str r0, [r2, #4] ldr r0, _0802FDE4 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 mov ip, r3 ldr r1, _0802FDE8 @ =0x03005000 mov sb, r1 ldr r2, _0802FDEC @ =0xFFFFFDD8 adds r2, r2, r6 mov sl, r2 mov r7, sb ldr r3, _0802FDF0 @ =0xFFFFFE00 mov r8, r3 _0802FD42: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802FDF4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0802FD42 mov r6, sl mov r3, ip ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x44 subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r3] ldr r5, _0802FDF8 @ =0x00000372 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xd bhi _0802FE08 adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x90 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r3] adds r0, r0, r5 ldrh r0, [r0] ldr r2, _0802FDD8 @ =0x040000D4 lsrs r0, r0, #1 lsls r0, r0, #9 ldr r1, _0802FDFC @ =0x0847D10C adds r0, r0, r1 str r0, [r2] ldr r0, _0802FE00 @ =0x06014720 str r0, [r2, #4] ldr r0, _0802FE04 @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] b _0802FE0C .align 2, 0 _0802FDCC: .4byte 0x0200DF90 _0802FDD0: .4byte 0x020314E0 _0802FDD4: .4byte 0x086AE4FC _0802FDD8: .4byte 0x040000D4 _0802FDDC: .4byte 0x0847A40C _0802FDE0: .4byte 0x06012DA0 _0802FDE4: .4byte 0x80000140 _0802FDE8: .4byte 0x03005000 _0802FDEC: .4byte 0xFFFFFDD8 _0802FDF0: .4byte 0xFFFFFE00 _0802FDF4: .4byte 0x000001FF _0802FDF8: .4byte 0x00000372 _0802FDFC: .4byte 0x0847D10C _0802FE00: .4byte 0x06014720 _0802FE04: .4byte 0x800000C0 _0802FE08: movs r0, #0xc8 strh r0, [r6, #4] _0802FE0C: adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802FF1C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r4, _0802FF20 @ =0xFFFFFE00 adds r0, r4, #0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r6, _0802FF24 @ =0x0200E048 mov r5, ip ldr r0, [r5] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x24 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r5] adds r0, #0x5a ldrh r1, [r0] movs r0, #0xa3 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r5] ldr r1, _0802FF28 @ =0x0000036D adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r2, _0802FF2C @ =0x086AE4FC adds r0, r0, r2 ldr r2, _0802FF30 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r5, _0802FF34 @ =0x084C1E6C adds r0, r0, r5 str r0, [r2] ldr r0, _0802FF38 @ =0x060130A0 str r0, [r2, #4] ldr r0, _0802FF3C @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 mov r7, sb mov r8, r4 _0802FE90: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0802FF1C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0802FE90 ldr r6, _0802FF40 @ =0x0200DE20 mov r3, ip ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x24 subs r0, r0, r1 strh r0, [r6, #2] ldr r1, [r3] movs r5, #0xdd lsls r5, r5, #2 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xd bhi _0802FF50 adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0xa3 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r3] adds r0, r0, r5 ldrh r0, [r0] ldr r2, _0802FF30 @ =0x040000D4 lsrs r0, r0, #1 lsls r0, r0, #9 ldr r1, _0802FF44 @ =0x084C4B6C adds r0, r0, r1 str r0, [r2] ldr r0, _0802FF48 @ =0x06014920 str r0, [r2, #4] ldr r0, _0802FF4C @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] b _0802FF54 .align 2, 0 _0802FF1C: .4byte 0x000001FF _0802FF20: .4byte 0xFFFFFE00 _0802FF24: .4byte 0x0200E048 _0802FF28: .4byte 0x0000036D _0802FF2C: .4byte 0x086AE4FC _0802FF30: .4byte 0x040000D4 _0802FF34: .4byte 0x084C1E6C _0802FF38: .4byte 0x060130A0 _0802FF3C: .4byte 0x80000140 _0802FF40: .4byte 0x0200DE20 _0802FF44: .4byte 0x084C4B6C _0802FF48: .4byte 0x06014920 _0802FF4C: .4byte 0x800000C0 _0802FF50: movs r0, #0xc8 strh r0, [r6, #4] _0802FF54: adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0802FFBC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0802FFC0 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldr r6, _0802FFC4 @ =0x0200EA58 mov r5, ip ldr r0, [r5] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x3d subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r5] adds r0, #0x5a ldrh r1, [r0] movs r0, #0xba subs r0, r0, r1 strh r0, [r6, #4] ldr r1, [r5] ldr r2, _0802FFC8 @ =0x00000367 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0802FFD0 ldr r3, _0802FFCC @ =0x00000366 adds r1, r1, r3 movs r0, #3 b _08030032 .align 2, 0 _0802FFBC: .4byte 0x000001FF _0802FFC0: .4byte 0xFFFFFE00 _0802FFC4: .4byte 0x0200EA58 _0802FFC8: .4byte 0x00000367 _0802FFCC: .4byte 0x00000366 _0802FFD0: ldr r5, _0802FFF4 @ =0x0000036A adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803000C ldr r2, _0802FFF8 @ =0x0000036B adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08030000 ldr r3, _0802FFFC @ =0x00000366 adds r1, r1, r3 movs r0, #3 b _08030032 .align 2, 0 _0802FFF4: .4byte 0x0000036A _0802FFF8: .4byte 0x0000036B _0802FFFC: .4byte 0x00000366 _08030000: ldr r5, _08030008 @ =0x00000366 adds r1, r1, r5 movs r0, #2 b _08030032 .align 2, 0 _08030008: .4byte 0x00000366 _0803000C: ldr r2, _08030024 @ =0x0000036B adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803002C ldr r3, _08030028 @ =0x00000366 adds r1, r1, r3 movs r0, #1 b _08030032 .align 2, 0 _08030024: .4byte 0x0000036B _08030028: .4byte 0x00000366 _0803002C: ldr r5, _08030064 @ =0x00000366 adds r1, r1, r5 movs r0, #0 _08030032: strb r0, [r1] mov r0, ip ldr r3, [r0] ldr r2, _08030064 @ =0x00000366 adds r1, r3, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08030068 lsls r4, r0, #1 adds r4, r4, r0 movs r5, #0xa4 lsls r5, r5, #2 adds r0, r3, r5 ldr r0, [r0] movs r1, #0x1e bl __umodsi3 movs r1, #0xa bl __udivsi3 adds r4, r4, r0 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 b _0803006A .align 2, 0 _08030064: .4byte 0x00000366 _08030068: movs r0, #9 _0803006A: ldr r1, _080300C0 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #9 ldr r2, _080300C4 @ =0x084FEA0C adds r0, r0, r2 str r0, [r1] ldr r0, _080300C8 @ =0x060146A0 str r0, [r1, #4] ldr r0, _080300CC @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _080300D0 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080300D4 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _080300B2: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080300C0: .4byte 0x040000D4 _080300C4: .4byte 0x084FEA0C _080300C8: .4byte 0x060146A0 _080300CC: .4byte 0x80000040 _080300D0: .4byte 0x000001FF _080300D4: .4byte 0xFFFFFE00 thumb_func_start sub_300D8 sub_300D8: @ 0x080300D8 push {r4, r5, lr} ldr r0, _08030170 @ =0x020314E0 ldr r5, [r0] movs r0, #0xbc lsls r0, r0, #1 adds r1, r5, r0 movs r0, #0xe6 lsls r0, r0, #2 strh r0, [r1] movs r2, #0xa4 lsls r2, r2, #2 adds r4, r5, r2 ldr r0, [r4] movs r1, #0x3c bl __umodsi3 movs r1, #0x1e bl __udivsi3 movs r1, #0x85 subs r1, r1, r0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xbd lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] movs r0, #0xbe lsls r0, r0, #1 adds r1, r5, r0 ldr r0, _08030174 @ =0x000004EC strh r0, [r1] ldr r0, [r4] adds r0, #0xa movs r1, #0x3c bl __umodsi3 movs r1, #0x1e bl __udivsi3 movs r1, #0x83 subs r1, r1, r0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xbf lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] movs r0, #0xc0 lsls r0, r0, #1 adds r1, r5, r0 movs r0, #0x87 lsls r0, r0, #3 strh r0, [r1] ldr r0, [r4] adds r0, #0x14 movs r1, #0x3c bl __umodsi3 movs r1, #0x1e bl __udivsi3 movs r1, #0xa1 subs r1, r1, r0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 movs r2, #0xc1 lsls r2, r2, #1 adds r1, r5, r2 strh r0, [r1] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08030170: .4byte 0x020314E0 _08030174: .4byte 0x000004EC thumb_func_start sub_30178 sub_30178: @ 0x08030178 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080301DC @ =0x0200E100 mov sl, r0 ldr r1, _080301E0 @ =0x020314E0 ldr r3, [r1] ldr r2, _080301E4 @ =0x00000624 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _0803019A b _080302D4 _0803019A: cmp r0, #2 beq _080301A0 b _080302C6 _080301A0: movs r0, #0xfa lsls r0, r0, #1 str r0, [r3, #0x3c] movs r0, #0xb6 bl m4aSongNumStart movs r0, #7 bl sub_11B0 ldr r3, _080301E0 @ =0x020314E0 ldr r1, [r3] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0803029C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #5 bne _0803029C ldr r6, _080301E8 @ =0x00000625 adds r1, r1, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0803029C cmp r0, #0 bne _080301EC movs r0, #1 b _080301F6 .align 2, 0 _080301DC: .4byte 0x0200E100 _080301E0: .4byte 0x020314E0 _080301E4: .4byte 0x00000624 _080301E8: .4byte 0x00000625 _080301EC: cmp r0, #1 bne _080301F4 movs r0, #3 b _080301F6 _080301F4: movs r0, #6 _080301F6: strb r0, [r1] ldr r7, _08030318 @ =0x020314E0 ldr r5, [r7] ldr r1, _0803031C @ =0x00000625 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0803029C ldr r2, _08030320 @ =0x000006C6 adds r0, r5, r2 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 bne _0803029C ldr r2, _08030324 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r5, #0 adds r0, #0xea movs r4, #0 movs r3, #0x32 strh r3, [r0] adds r1, r5, #0 adds r1, #0xec movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] subs r1, #4 movs r0, #0xec strh r0, [r1] adds r0, r5, #0 adds r0, #0xe6 strh r6, [r0] adds r1, #6 movs r0, #4 strh r0, [r1] adds r1, #4 movs r0, #7 strb r0, [r1] ldr r0, [r7] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r4, [r0] ldr r4, [r7] adds r1, r4, #0 adds r1, #0xf4 movs r0, #0x50 strh r0, [r1] adds r1, #2 ldr r0, _08030328 @ =0x0000F63C strh r0, [r1] adds r0, r4, #0 adds r0, #0xf0 strh r3, [r0] adds r0, #8 strh r6, [r0] ldr r1, _0803032C @ =0x040000D4 ldr r0, _08030330 @ =0x086ACEF8 ldr r0, [r0, #0x1c] str r0, [r1] ldr r0, _08030334 @ =0x06015800 str r0, [r1, #4] ldr r0, _08030338 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0803033C @ =0x086ACF18 ldr r0, [r0, #0x1c] str r0, [r1] ldr r0, _08030340 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08030344 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _0803029C: ldr r2, _08030318 @ =0x020314E0 ldr r0, [r2] movs r3, #0xbb lsls r3, r3, #1 adds r1, r0, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r3, [r2] movs r6, #0xc2 lsls r6, r6, #2 adds r1, r3, r6 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x64 bne _080302C6 ldr r0, _08030348 @ =0x0000C350 str r0, [r3, #0x3c] _080302C6: ldr r0, _08030318 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803034C @ =0x00000624 adds r1, r1, r2 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _080302D4: mov r3, sl ldrh r0, [r3] cmp r0, #0 bne _080302DE b _08030456 _080302DE: movs r0, #0 ldr r6, _0803032C @ =0x040000D4 mov sb, r6 _080302E4: ldr r1, _08030318 @ =0x020314E0 ldr r4, [r1] lsls r0, r0, #0x10 asrs r2, r0, #0x10 movs r3, #0xb8 lsls r3, r3, #1 adds r1, r4, r3 adds r3, r1, r2 ldrb r6, [r3] movs r1, #0 ldrsb r1, [r3, r1] adds r5, r0, #0 cmp r1, #0 ble _08030350 adds r0, r1, #0 cmp r0, #0 bge _08030308 adds r0, #3 _08030308: asrs r0, r0, #2 adds r0, #2 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 subs r0, r6, #1 strb r0, [r3] b _08030370 .align 2, 0 _08030318: .4byte 0x020314E0 _0803031C: .4byte 0x00000625 _08030320: .4byte 0x000006C6 _08030324: .4byte 0x0200B0C0 _08030328: .4byte 0x0000F63C _0803032C: .4byte 0x040000D4 _08030330: .4byte 0x086ACEF8 _08030334: .4byte 0x06015800 _08030338: .4byte 0x80001200 _0803033C: .4byte 0x086ACF18 _08030340: .4byte 0x050003C0 _08030344: .4byte 0x80000010 _08030348: .4byte 0x0000C350 _0803034C: .4byte 0x00000624 _08030350: movs r6, #0xa4 lsls r6, r6, #2 adds r0, r4, r6 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #1 ldr r0, [r0] adds r0, r0, r1 movs r1, #0x1e bl __umodsi3 movs r1, #0xf bl __udivsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _08030370: lsls r0, r1, #0x10 asrs r0, r0, #7 ldr r1, _08030464 @ =0x0845690C adds r0, r0, r1 mov r2, sb str r0, [r2] asrs r5, r5, #0x10 lsls r0, r5, #9 ldr r3, _08030468 @ =0x060133A0 adds r0, r0, r3 str r0, [r2, #4] ldr r0, _0803046C @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r6, _08030470 @ =0x020314E0 ldr r4, [r6] lsls r0, r5, #2 adds r7, r4, r0 movs r0, #0xbc lsls r0, r0, #1 adds r6, r7, r0 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 mov r2, sl strh r0, [r2, #2] movs r3, #0xbd lsls r3, r3, #1 adds r3, r3, r7 mov r8, r3 movs r1, #0 ldrsh r0, [r3, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 subs r0, #0xa mov r2, sl strh r0, [r2, #4] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #8 lsls r0, r0, #1 movs r6, #0xc2 lsls r6, r6, #1 adds r1, r7, r6 strh r0, [r1] mov r1, r8 movs r2, #0 ldrsh r0, [r1, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 rsbs r0, r0, #0 adds r0, #3 lsls r0, r0, #1 movs r3, #0xc3 lsls r3, r3, #1 adds r1, r7, r3 strh r0, [r1] lsls r3, r5, #3 adds r3, #8 add r3, sl ldrh r4, [r3] lsls r4, r4, #3 ldr r6, _08030474 @ =0x03005000 adds r4, r4, r6 movs r0, #2 ldrsh r2, [r3, r0] mov r1, sl movs r6, #2 ldrsh r0, [r1, r6] adds r2, r2, r0 ldr r1, _08030478 @ =0x000001FF adds r0, r1, #0 ands r2, r0 ldrh r0, [r4, #2] ldr r6, _0803047C @ =0xFFFFFE00 adds r1, r6, #0 ands r0, r1 orrs r0, r2 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 ldr r0, _08030474 @ =0x03005000 adds r1, r1, r0 mov r2, sl ldrb r0, [r2, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 bgt _08030456 b _080302E4 _08030456: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08030464: .4byte 0x0845690C _08030468: .4byte 0x060133A0 _0803046C: .4byte 0x80000100 _08030470: .4byte 0x020314E0 _08030474: .4byte 0x03005000 _08030478: .4byte 0x000001FF _0803047C: .4byte 0xFFFFFE00 thumb_func_start sub_30480 sub_30480: @ 0x08030480 ldr r2, _080304C4 @ =0x020314E0 ldr r0, [r2] movs r1, #0xf6 lsls r1, r1, #1 adds r0, r0, r1 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #1 adds r0, r0, r1 strb r3, [r0] ldr r0, [r2] subs r1, #1 adds r0, r0, r1 strb r3, [r0] ldr r2, [r2] adds r1, #3 adds r0, r2, r1 strh r3, [r0] movs r0, #0xfa lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0x82 lsls r0, r0, #4 strh r0, [r1] movs r0, #0xfb lsls r0, r0, #1 adds r1, r2, r0 adds r0, #0xc6 strh r0, [r1] bx lr .align 2, 0 _080304C4: .4byte 0x020314E0 thumb_func_start sub_304C8 sub_304C8: @ 0x080304C8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov r8, r0 mov ip, r0 movs r6, #0 ldr r7, _08030504 @ =0x0200D918 movs r1, #0 str r1, [sp] ldr r1, _08030508 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf6 lsls r2, r2, #1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #5 bhi _08030552 lsls r0, r0, #2 ldr r1, _0803050C @ =_08030510 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08030504: .4byte 0x0200D918 _08030508: .4byte 0x020314E0 _0803050C: .4byte _08030510 _08030510: @ jump table .4byte _08030552 @ case 0 .4byte _08030552 @ case 1 .4byte _08030528 @ case 2 .4byte _08030532 @ case 3 .4byte _0803053E @ case 4 .4byte _08030548 @ case 5 _08030528: movs r3, #4 mov r8, r3 mov ip, r3 movs r6, #3 b _08030552 _08030532: movs r6, #8 mov r8, r6 movs r0, #4 mov ip, r0 movs r6, #3 b _08030552 _0803053E: movs r1, #0xc mov r8, r1 mov ip, r1 movs r6, #5 b _08030552 _08030548: movs r2, #0x21 mov r8, r2 movs r3, #0 mov ip, r3 movs r6, #0 _08030552: mov r1, sb ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r0, r2 ldr r5, _080305D8 @ =0x000001ED adds r2, r0, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r0, #0 ldrsb r0, [r2, r0] cmp r1, r0 beq _0803059E ldr r1, _080305DC @ =0x086AD2EE lsls r0, r0, #3 adds r1, #6 adds r0, r0, r1 ldr r2, _080305E0 @ =0x040000D4 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #9 ldr r1, _080305E4 @ =0x084FD18C adds r0, r0, r1 str r0, [r2] ldr r0, _080305E8 @ =0x06011CE0 str r0, [r2, #4] ldr r0, _080305EC @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] mov r0, sb ldr r1, [r0] adds r0, r1, r5 ldrb r0, [r0] movs r2, #0xf7 lsls r2, r2, #1 adds r1, r1, r2 strb r0, [r1] _0803059E: mov r3, sb ldr r2, [r3] movs r0, #0xf6 lsls r0, r0, #1 mov sl, r0 adds r0, r2, r0 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _080305B6 b _08030700 _080305B6: ldr r0, _080305DC @ =0x086AD2EE adds r3, r2, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #3 adds r0, #2 adds r1, r1, r0 movs r0, #0xf8 lsls r0, r0, #1 adds r4, r2, r0 ldrh r2, [r4] ldrh r0, [r1] cmp r0, r2 bls _080305F0 adds r0, r2, #1 strh r0, [r4] b _080306E6 .align 2, 0 _080305D8: .4byte 0x000001ED _080305DC: .4byte 0x086AD2EE _080305E0: .4byte 0x040000D4 _080305E4: .4byte 0x084FD18C _080305E8: .4byte 0x06011CE0 _080305EC: .4byte 0x80000100 _080305F0: ldrb r0, [r3] adds r0, #1 movs r2, #0 strb r0, [r3] mov r3, sb ldr r1, [r3] movs r3, #0xf8 lsls r3, r3, #1 adds r0, r1, r3 strh r2, [r0] adds r1, r1, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, r8 blt _0803061A mov r0, ip strb r0, [r1] mov r1, sb ldr r0, [r1] add r0, sl strb r6, [r0] _0803061A: mov r2, sb ldr r0, [r2] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bne _0803062E bl sub_32484 _0803062E: mov r3, sb ldr r0, [r3] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x13 bne _0803065E bl sub_325E0 ldr r0, _08030780 @ =0x0200B0C0 ldrb r0, [r0, #2] cmp r0, #3 beq _0803065E mov r6, sb ldr r0, [r6] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #1 bl sub_52BB0 _0803065E: ldr r5, _08030784 @ =0x020314E0 ldr r0, [r5] ldr r4, _08030788 @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _08030674 bl sub_28BFC _08030674: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _08030686 cmp r0, #0x1b bne _08030696 _08030686: movs r3, #0xf8 lsls r3, r3, #1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _08030696 bl m4aMPlayAllStop _08030696: ldr r0, _08030784 @ =0x020314E0 ldr r1, [r0] ldr r6, _08030788 @ =0x000001ED adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _080306BA movs r2, #0xf8 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _080306BA movs r0, #0x16 bl m4aSongNumStart _080306BA: ldr r5, _08030784 @ =0x020314E0 ldr r0, [r5] ldr r4, _08030788 @ =0x000001ED adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1d bne _080306D2 movs r0, #5 bl sub_19B64 _080306D2: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1c bne _080306E6 movs r0, #0x92 bl m4aSongNumStart _080306E6: ldr r2, _0803078C @ =0x086AD2EE ldr r1, _08030784 @ =0x020314E0 ldr r0, [r1] ldr r3, _08030788 @ =0x000001ED adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0] str r0, [sp] mov sb, r1 _08030700: mov r6, sb ldr r4, [r6] movs r1, #0xfa lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] movs r3, #0xf6 lsls r3, r3, #1 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080307AC ldr r6, _08030788 @ =0x000001ED adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x20 bne _08030790 movs r0, #0xf8 lsls r0, r0, #1 adds r1, r4, r0 ldrh r0, [r1] cmp r0, #0xd0 bls _08030790 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #1 subs r0, r0, r1 cmp r0, #0 bge _08030756 adds r0, #0xf _08030756: asrs r0, r0, #4 ldr r1, _08030780 @ =0x0200B0C0 adds r0, #1 lsls r0, r0, #1 ldr r1, [r1, #0x4c] ands r1, r0 cmp r1, #0 beq _080307AC movs r1, #0xfb lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 b _080307AE .align 2, 0 _08030780: .4byte 0x0200B0C0 _08030784: .4byte 0x020314E0 _08030788: .4byte 0x000001ED _0803078C: .4byte 0x086AD2EE _08030790: mov r3, sb ldr r4, [r3] movs r6, #0xfb lsls r6, r6, #1 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 b _080307AE _080307AC: movs r0, #0xc8 _080307AE: strh r0, [r7, #4] movs r2, #0 ldr r3, _08030870 @ =0x03005000 mov sl, r3 ldr r6, [sp] lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 ldr r0, _08030874 @ =0xFFFFFE00 mov ip, r0 _080307C8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 ldr r1, _08030870 @ =0x03005000 adds r2, r2, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r6, _08030878 @ =0x086B4D4E adds r0, r0, r6 add r0, r8 ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r0, _08030870 @ =0x03005000 adds r2, r2, r0 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _0803087C @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _08030870 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _080307C8 ldr r7, _08030880 @ =0x0200D860 ldrh r0, [r7] cmp r0, #0 beq _080308C2 mov r3, sb ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xc0 subs r0, r0, r1 strh r0, [r7, #2] ldr r1, [r3] ldr r6, _08030884 @ =0x00000346 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0803088C ldr r2, _08030888 @ =0xFFFFD860 adds r0, r7, r2 ldrb r0, [r0, #0xf] cmp r0, #0 beq _0803088C adds r0, r1, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x38 subs r0, r0, r1 b _0803088E .align 2, 0 _08030870: .4byte 0x03005000 _08030874: .4byte 0xFFFFFE00 _08030878: .4byte 0x086B4D4E _0803087C: .4byte 0x000001FF _08030880: .4byte 0x0200D860 _08030884: .4byte 0x00000346 _08030888: .4byte 0xFFFFD860 _0803088C: movs r0, #0xc8 _0803088E: strh r0, [r7, #4] adds r5, r7, #0 adds r5, #8 ldrh r2, [r7, #8] lsls r2, r2, #3 add r2, sl movs r3, #2 ldrsh r1, [r5, r3] movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r3, _080308D4 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080308D8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 add r1, sl ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _080308C2: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080308D4: .4byte 0x000001FF _080308D8: .4byte 0xFFFFFE00 thumb_func_start sub_308DC sub_308DC: @ 0x080308DC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08030994 @ =0x020314E0 ldr r3, [r0] movs r2, #0xca lsls r2, r2, #2 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r7, r0, #0 cmp r1, #0 bne _080308FE b _08030A2A _080308FE: movs r0, #0x13 ldrsb r0, [r3, r0] cmp r0, #7 bne _08030908 b _08030A18 _08030908: cmp r0, #2 bgt _080309A8 ldr r5, _08030998 @ =0x000006BD adds r4, r3, r5 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #2 ble _0803091A b _08030A18 _0803091A: lsls r0, r0, #1 adds r2, #0x14 adds r1, r3, r2 adds r1, r1, r0 movs r2, #0 movs r5, #0 ldr r0, _0803099C @ =0x0000FF9C strh r0, [r1] movs r1, #0 ldrsb r1, [r4, r1] ldr r4, _080309A0 @ =0x00000332 adds r0, r3, r4 adds r0, r0, r1 strb r2, [r0] ldr r1, [r7] ldr r0, _08030998 @ =0x000006BD adds r3, r1, r0 movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #1 adds r4, #4 adds r0, r1, r4 adds r0, r0, r2 strh r5, [r0] movs r0, #0 ldrsb r0, [r3, r0] movs r2, #0xcb lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r0 movs r3, #1 strb r3, [r1] ldr r1, [r7] ldr r0, _08030998 @ =0x000006BD adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r1, r1, r4 adds r1, r1, r0 strh r5, [r1] ldrb r0, [r2] adds r0, #1 strb r0, [r2] ldr r2, [r7] subs r4, #0xc adds r1, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r5, _08030998 @ =0x000006BD adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08030A18 ldr r1, _080309A4 @ =0x000006C2 adds r0, r2, r1 strh r3, [r0] b _08030A18 .align 2, 0 _08030994: .4byte 0x020314E0 _08030998: .4byte 0x000006BD _0803099C: .4byte 0x0000FF9C _080309A0: .4byte 0x00000332 _080309A4: .4byte 0x000006C2 _080309A8: ldr r2, _08030A54 @ =0x000006BD adds r4, r3, r2 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #1 bgt _08030A18 lsls r0, r0, #1 movs r5, #0xcf lsls r5, r5, #2 adds r1, r3, r5 adds r1, r1, r0 movs r2, #0 movs r5, #0 ldr r0, _08030A58 @ =0x0000FF9C strh r0, [r1] movs r1, #0 ldrsb r1, [r4, r1] ldr r4, _08030A5C @ =0x00000332 adds r0, r3, r4 adds r0, r0, r1 strb r2, [r0] ldr r1, [r7] ldr r0, _08030A54 @ =0x000006BD adds r4, r1, r0 movs r2, #0 ldrsb r2, [r4, r2] lsls r2, r2, #1 ldr r3, _08030A60 @ =0x00000336 adds r0, r1, r3 adds r0, r0, r2 strh r5, [r0] movs r0, #0 ldrsb r0, [r4, r0] movs r2, #0xcb lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r0 movs r0, #1 strb r0, [r1] ldr r1, [r7] ldr r4, _08030A54 @ =0x000006BD adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 adds r3, r1, r3 adds r3, r3, r0 strh r5, [r3] ldr r5, _08030A64 @ =0x0000032A adds r1, r1, r5 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldrb r0, [r2] adds r0, #1 strb r0, [r2] _08030A18: ldr r0, [r7] movs r1, #0xca lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r1, [r7] ldr r0, _08030A68 @ =0x00000BB8 str r0, [r1, #0x3c] _08030A2A: movs r1, #0 ldr r2, _08030A6C @ =0x020314E0 mov sb, r2 _08030A30: mov r3, sb ldr r5, [r3] lsls r1, r1, #0x10 asrs r6, r1, #0x10 movs r4, #0xcb lsls r4, r4, #2 adds r0, r5, r4 adds r2, r0, r6 movs r4, #0 ldrsb r4, [r2, r4] mov sl, r1 cmp r4, #1 beq _08030AAC cmp r4, #1 bgt _08030A70 cmp r4, #0 beq _08030A7E b _08030C98 .align 2, 0 _08030A54: .4byte 0x000006BD _08030A58: .4byte 0x0000FF9C _08030A5C: .4byte 0x00000332 _08030A60: .4byte 0x00000336 _08030A64: .4byte 0x0000032A _08030A68: .4byte 0x00000BB8 _08030A6C: .4byte 0x020314E0 _08030A70: cmp r4, #2 bne _08030A76 b _08030B7C _08030A76: cmp r4, #3 bne _08030A7C b _08030BCE _08030A7C: b _08030C98 _08030A7E: lsls r2, r6, #1 movs r1, #0xcf lsls r1, r1, #2 adds r0, r5, r1 adds r0, r0, r2 ldr r1, _08030AA4 @ =0x0000FF9C strh r1, [r0] ldr r3, _08030AA8 @ =0x00000332 adds r0, r5, r3 adds r0, r0, r6 movs r5, #0 strb r5, [r0] mov r1, sb ldr r0, [r1] adds r3, #4 adds r0, r0, r3 adds r0, r0, r2 strh r4, [r0] b _08030C98 .align 2, 0 _08030AA4: .4byte 0x0000FF9C _08030AA8: .4byte 0x00000332 _08030AAC: lsls r7, r6, #1 ldr r0, _08030B28 @ =0x00000336 mov r8, r0 adds r0, r5, r0 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0x20 bhi _08030B58 cmp r0, #0 bne _08030AC6 movs r0, #0xe9 bl m4aSongNumStart _08030AC6: mov r1, sb ldr r0, [r1] add r0, r8 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0x1a bne _08030ADA movs r0, #0xea bl m4aSongNumStart _08030ADA: mov r3, sb ldr r2, [r3] mov r5, r8 adds r1, r2, r5 adds r1, r1, r7 ldrh r0, [r1] adds r0, #1 movs r3, #0 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bhi _08030B34 ldr r1, _08030B2C @ =0x0000032F adds r0, r2, r1 adds r0, r0, r6 strb r3, [r0] mov r2, sb ldr r3, [r2] movs r4, #0xcf lsls r4, r4, #2 adds r2, r3, r4 adds r2, r2, r7 adds r1, r3, r5 adds r1, r1, r7 ldrh r0, [r1] lsls r0, r0, #2 subs r0, #0x50 strh r0, [r2] ldrh r0, [r1] cmp r0, #0x14 beq _08030B1C b _08030C98 _08030B1C: ldr r5, _08030B30 @ =0x00000326 adds r1, r3, r5 movs r0, #0x17 strh r0, [r1] b _08030C98 .align 2, 0 _08030B28: .4byte 0x00000336 _08030B2C: .4byte 0x0000032F _08030B30: .4byte 0x00000326 _08030B34: cmp r0, #0x18 bhi _08030B48 ldr r1, _08030B44 @ =0x0000032F adds r0, r2, r1 adds r0, r0, r6 strb r4, [r0] b _08030C98 .align 2, 0 _08030B44: .4byte 0x0000032F _08030B48: ldr r3, _08030B54 @ =0x0000032F adds r0, r2, r3 adds r0, r0, r6 movs r1, #2 strb r1, [r0] b _08030C98 .align 2, 0 _08030B54: .4byte 0x0000032F _08030B58: movs r1, #0 movs r0, #2 strb r0, [r2] mov r4, sb ldr r0, [r4] ldr r5, _08030B78 @ =0x00000336 adds r0, r0, r5 adds r0, r0, r7 strh r1, [r0] cmp r6, #2 beq _08030B70 b _08030C98 _08030B70: movs r0, #7 bl sub_19B64 b _08030C98 .align 2, 0 _08030B78: .4byte 0x00000336 _08030B7C: ldr r2, _08030BB8 @ =0x0000032F adds r3, r5, r2 adds r3, r3, r6 movs r1, #0xa4 lsls r1, r1, #2 adds r0, r5, r1 ldr r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #4 lsls r0, r0, #1 adds r0, #1 movs r4, #0 strb r0, [r3] mov r5, sb ldr r3, [r5] adds r2, r3, r2 adds r2, r2, r6 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #1 bne _08030BC0 lsls r0, r6, #1 movs r2, #0xcf lsls r2, r2, #2 adds r1, r3, r2 adds r1, r1, r0 ldr r0, _08030BBC @ =0x0000FFFE strh r0, [r1] b _08030C98 .align 2, 0 _08030BB8: .4byte 0x0000032F _08030BBC: .4byte 0x0000FFFE _08030BC0: lsls r1, r6, #1 movs r5, #0xcf lsls r5, r5, #2 adds r0, r3, r5 adds r0, r0, r1 strh r4, [r0] b _08030C98 _08030BCE: lsls r1, r6, #1 ldr r3, _08030C04 @ =0x00000336 adds r0, r5, r3 adds r0, r0, r1 movs r1, #0 ldrsh r4, [r0, r1] cmp r4, #0x1f bgt _08030C10 ldr r2, _08030C08 @ =0x0000032F adds r0, r5, r2 adds r3, r0, r6 adds r0, r4, #0 cmp r4, #0 bge _08030BEC adds r0, #0xf _08030BEC: asrs r2, r0, #4 adds r0, r2, #4 strb r0, [r3] mov r3, sb ldr r0, [r3] ldr r5, _08030C0C @ =0x00000332 adds r0, r0, r5 adds r1, r0, r6 adds r0, r2, #1 strb r0, [r1] b _08030C84 .align 2, 0 _08030C04: .4byte 0x00000336 _08030C08: .4byte 0x0000032F _08030C0C: .4byte 0x00000332 _08030C10: cmp r4, #0x25 bgt _08030C58 cmp r4, #0x20 bne _08030C28 ldr r0, _08030C4C @ =0x0200B0C0 ldrb r0, [r0, #0xf] ands r4, r0 cmp r4, #0 bne _08030C28 movs r0, #0xeb bl m4aSongNumStart _08030C28: mov r0, sb ldr r1, [r0] mov r3, sl asrs r2, r3, #0x10 ldr r4, _08030C50 @ =0x0000032F adds r1, r1, r4 adds r1, r1, r2 movs r0, #6 strb r0, [r1] mov r5, sb ldr r0, [r5] ldr r1, _08030C54 @ =0x00000332 adds r0, r0, r1 adds r0, r0, r2 movs r1, #3 strb r1, [r0] b _08030C84 .align 2, 0 _08030C4C: .4byte 0x0200B0C0 _08030C50: .4byte 0x0000032F _08030C54: .4byte 0x00000332 _08030C58: cmp r4, #0x2d bgt _08030C6C ldr r2, _08030C68 @ =0x00000332 adds r0, r5, r2 adds r0, r0, r6 movs r1, #4 strb r1, [r0] b _08030C84 .align 2, 0 _08030C68: .4byte 0x00000332 _08030C6C: cmp r4, #0x35 bgt _08030C80 ldr r3, _08030C7C @ =0x00000332 adds r0, r5, r3 adds r0, r0, r6 movs r1, #5 strb r1, [r0] b _08030C84 .align 2, 0 _08030C7C: .4byte 0x00000332 _08030C80: movs r0, #0 strb r0, [r2] _08030C84: mov r4, sb ldr r0, [r4] mov r5, sl asrs r1, r5, #0xf ldr r2, _08030D00 @ =0x00000336 adds r0, r0, r2 adds r0, r0, r1 ldrh r1, [r0] adds r1, #1 strh r1, [r0] _08030C98: movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _08030CA8 b _08030A30 _08030CA8: ldr r1, _08030D04 @ =0x020314E0 ldr r5, [r1] ldr r4, _08030D08 @ =0x00000326 adds r3, r5, r4 ldrh r0, [r3] adds r7, r1, #0 cmp r0, #0 beq _08030CDC ldr r4, _08030D0C @ =0x086AE54A movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xc9 lsls r2, r2, #2 adds r0, r5, r2 strb r1, [r0] ldr r1, [r7] ldr r3, _08030D08 @ =0x00000326 adds r1, r1, r3 ldrh r0, [r1] subs r0, #1 strh r0, [r1] _08030CDC: ldr r2, [r7] ldr r4, _08030D10 @ =0x000006C2 adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0 beq _08030DA4 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08030DA4 adds r2, #0xe4 ldrb r0, [r2] cmp r0, #0 beq _08030D14 movs r0, #1 strh r0, [r1] b _08030D18 .align 2, 0 _08030D00: .4byte 0x00000336 _08030D04: .4byte 0x020314E0 _08030D08: .4byte 0x00000326 _08030D0C: .4byte 0x086AE54A _08030D10: .4byte 0x000006C2 _08030D14: movs r0, #4 strb r0, [r2] _08030D18: ldr r4, [r7] ldr r5, _08030E04 @ =0x000006C2 adds r0, r4, r5 ldrh r5, [r0] cmp r5, #0 bne _08030DA4 ldr r2, _08030E08 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r2, #0xf] adds r1, r4, #0 adds r1, #0xea movs r3, #0 movs r0, #0x46 strh r0, [r1] adds r1, #2 movs r0, #0xa0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r5, [r0] subs r0, #2 strh r5, [r0] adds r0, #8 strh r5, [r0] adds r1, #6 movs r0, #4 strb r0, [r1] ldr r0, [r7] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r7] adds r0, #0xfb strb r3, [r0] ldr r3, [r7] adds r1, r3, #0 adds r1, #0xf4 movs r0, #0x78 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf6 strh r5, [r0] subs r1, #4 movs r0, #0x32 strh r0, [r1] adds r0, r3, #0 adds r0, #0xf8 strh r5, [r0] ldr r1, _08030E0C @ =0x040000D4 ldr r0, _08030E10 @ =0x086ACEF8 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _08030E14 @ =0x06015800 str r0, [r1, #4] ldr r0, _08030E18 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08030E1C @ =0x086ACF18 ldr r0, [r0, #0x10] str r0, [r1] ldr r0, _08030E20 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08030E24 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r2, #0x38] movs r0, #0xce strh r0, [r2, #0x38] _08030DA4: ldr r5, [r7] ldr r0, _08030E28 @ =0x000006BE adds r3, r5, r0 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08030E3E movs r1, #0xd8 lsls r1, r1, #3 adds r0, r5, r1 ldrh r1, [r0] adds r2, r1, #1 strh r2, [r0] lsls r1, r1, #0x10 asrs r4, r1, #0x10 cmp r4, #0x3c bgt _08030E30 adds r0, r4, #0 movs r1, #0x1e bl __modsi3 lsls r0, r0, #0x10 asrs r6, r0, #0x10 cmp r6, #0 bne _08030E3E adds r0, r4, #0 movs r1, #0x1e bl __divsi3 lsls r0, r0, #0x10 asrs r1, r0, #0x10 movs r2, #0xcb lsls r2, r2, #2 adds r0, r5, r2 adds r2, r0, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _08030E3E movs r0, #3 strb r0, [r2] ldr r0, [r7] lsls r1, r1, #1 ldr r3, _08030E2C @ =0x00000336 adds r0, r0, r3 adds r0, r0, r1 strh r6, [r0] b _08030E3E .align 2, 0 _08030E04: .4byte 0x000006C2 _08030E08: .4byte 0x0200B0C0 _08030E0C: .4byte 0x040000D4 _08030E10: .4byte 0x086ACEF8 _08030E14: .4byte 0x06015800 _08030E18: .4byte 0x80001200 _08030E1C: .4byte 0x086ACF18 _08030E20: .4byte 0x050003C0 _08030E24: .4byte 0x80000010 _08030E28: .4byte 0x000006BE _08030E2C: .4byte 0x00000336 _08030E30: movs r1, #0 strb r1, [r3] ldr r0, [r7] movs r4, #0xd8 lsls r4, r4, #3 adds r0, r0, r4 strh r1, [r0] _08030E3E: ldr r2, [r7] ldr r4, _08030EA8 @ =0x0000032A adds r1, r2, r4 ldrh r0, [r1] cmp r0, #0 beq _08030E98 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #0 bne _08030E98 ldr r5, _08030EAC @ =0x000006BD adds r2, r2, r5 ldrb r0, [r2] subs r1, r0, #1 lsls r0, r1, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08030E98 strb r1, [r2] ldr r0, [r7] adds r1, r0, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 movs r2, #0xcb lsls r2, r2, #2 adds r0, r0, r2 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r2, [r7] adds r0, r2, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #1 ldr r5, _08030EB0 @ =0x00000336 adds r0, r2, r5 adds r0, r0, r1 strh r3, [r0] adds r2, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r2] _08030E98: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08030EA8: .4byte 0x0000032A _08030EAC: .4byte 0x000006BD _08030EB0: .4byte 0x00000336 thumb_func_start sub_30EB4 sub_30EB4: @ 0x08030EB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _0803100C @ =0x0200E1B8 ldrh r0, [r6] cmp r0, #0 bne _08030EC8 b _0803110C _08030EC8: ldr r3, _08031010 @ =0x020314E0 ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xa subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r3] adds r0, #0x5a ldrh r1, [r0] movs r2, #0x95 lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r3] movs r7, #0xc9 lsls r7, r7, #2 adds r0, r0, r7 ldr r2, _08031014 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08031018 @ =0x0844F20C adds r0, r0, r1 str r0, [r2] ldr r0, _0803101C @ =0x060139A0 str r0, [r2, #4] ldr r0, _08031020 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] movs r5, #0 mov sl, r3 ldr r0, _08031024 @ =0x03005000 mov sb, r0 mov r7, sb ldr r1, _08031028 @ =0xFFFFFE00 mov ip, r1 _08030F18: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r0, _0803102C @ =0x000001FF mov r8, r0 mov r2, r8 ands r1, r2 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08030F18 ldr r6, _08031030 @ =0x0200E498 mov r3, sl ldr r0, [r3] adds r0, #0x58 ldrh r1, [r0] movs r0, #0xa subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r3] adds r0, #0x5a ldrh r1, [r0] movs r7, #0x95 lsls r7, r7, #1 adds r0, r7, #0 subs r0, r0, r1 strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 add r2, sb movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r7, r8 ands r1, r7 ldrh r3, [r2, #2] ldr r0, _08031028 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 add r1, sb ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] movs r3, #0 ldr r0, _08031014 @ =0x040000D4 mov sl, r0 _08030FB4: lsls r3, r3, #0x10 asrs r2, r3, #0x10 movs r0, #0xb8 muls r0, r2, r0 ldr r1, _08031034 @ =0x0200E270 adds r6, r0, r1 lsls r5, r2, #1 ldr r7, _08031038 @ =0x086AE544 adds r0, r5, r7 ldrh r1, [r0] subs r1, r1, r2 ldr r0, _08031010 @ =0x020314E0 ldr r4, [r0] adds r0, r4, #0 adds r0, #0x58 ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #2] movs r1, #0xcb lsls r1, r1, #2 adds r0, r4, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r3 cmp r0, #0 ble _0803103C movs r2, #0xcf lsls r2, r2, #2 adds r0, r4, r2 adds r0, r0, r5 movs r3, #0x92 lsls r3, r3, #1 adds r1, r3, #0 ldrh r0, [r0] adds r1, r1, r0 adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #4] b _08031040 .align 2, 0 _0803100C: .4byte 0x0200E1B8 _08031010: .4byte 0x020314E0 _08031014: .4byte 0x040000D4 _08031018: .4byte 0x0844F20C _0803101C: .4byte 0x060139A0 _08031020: .4byte 0x80000140 _08031024: .4byte 0x03005000 _08031028: .4byte 0xFFFFFE00 _0803102C: .4byte 0x000001FF _08031030: .4byte 0x0200E498 _08031034: .4byte 0x0200E270 _08031038: .4byte 0x086AE544 _0803103C: movs r0, #0xc8 strh r0, [r6, #4] _08031040: ldr r7, _0803111C @ =0x020314E0 ldr r3, [r7] mov r0, sb asrs r2, r0, #0x10 ldr r1, _08031120 @ =0x0000032F adds r0, r3, r1 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r7, _08031124 @ =0x084FDF8C adds r0, r0, r7 mov r1, sl str r0, [r1] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r7, _08031128 @ =0x06013C20 adds r0, r0, r7 str r0, [r1, #4] ldr r0, _0803112C @ =0x800000B0 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08031130 @ =0x00000332 adds r3, r3, r0 adds r3, r3, r2 movs r5, #0 lsls r0, r2, #3 adds r0, r0, r2 lsls r0, r0, #3 mov r8, r0 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 _0803108E: lsls r3, r5, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 ldr r1, _08031134 @ =0x03005000 adds r2, r2, r1 ldr r1, _08031138 @ =0x086B3E1E add r1, ip add r1, r8 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r7, _08031134 @ =0x03005000 adds r2, r2, r7 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r6, r7] adds r1, r1, r0 ldr r7, _0803113C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _08031140 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _08031134 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0803108E movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _0803110C b _08030FB4 _0803110C: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803111C: .4byte 0x020314E0 _08031120: .4byte 0x0000032F _08031124: .4byte 0x084FDF8C _08031128: .4byte 0x06013C20 _0803112C: .4byte 0x800000B0 _08031130: .4byte 0x00000332 _08031134: .4byte 0x03005000 _08031138: .4byte 0x086B3E1E _0803113C: .4byte 0x000001FF _08031140: .4byte 0xFFFFFE00 thumb_func_start sub_31144 sub_31144: @ 0x08031144 push {r4, r5, r6, r7, lr} ldr r1, _08031190 @ =0x020314E0 ldr r5, [r1] movs r2, #0xd2 lsls r2, r2, #1 adds r0, r5, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r7, r1, #0 cmp r2, #0 beq _0803115C b _080312D0 _0803115C: ldr r3, _08031194 @ =0x000001A5 adds r0, r5, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _080311DC movs r4, #0xda lsls r4, r4, #1 adds r0, r5, r4 ldrh r1, [r0] cmp r1, #0x5f bhi _080311CC cmp r1, #7 bhi _0803119C ldr r1, _08031198 @ =0x08137CF6 ldrh r0, [r0] lsrs r0, r0, #1 lsls r0, r0, #1 adds r1, #8 adds r0, r0, r1 ldrh r1, [r0] movs r2, #0xd6 lsls r2, r2, #1 adds r0, r5, r2 b _080311B4 .align 2, 0 _08031190: .4byte 0x020314E0 _08031194: .4byte 0x000001A5 _08031198: .4byte 0x08137CF6 _0803119C: ldr r2, _080311C8 @ =0x08137CE2 ldrh r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 lsls r0, r0, #1 adds r2, #0xa adds r0, r0, r2 ldrh r1, [r0] movs r3, #0xd6 lsls r3, r3, #1 adds r0, r5, r3 _080311B4: strb r1, [r0] ldr r1, [r7] movs r4, #0xda lsls r4, r4, #1 adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _080311CE .align 2, 0 _080311C8: .4byte 0x08137CE2 _080311CC: strh r2, [r0] _080311CE: ldr r0, [r7] ldr r2, _080311D8 @ =0x000001AD adds r1, r0, r2 movs r0, #2 b _0803123E .align 2, 0 _080311D8: .4byte 0x000001AD _080311DC: movs r3, #0xda lsls r3, r3, #1 adds r0, r5, r3 ldrh r1, [r0] cmp r1, #0x77 bhi _08031234 cmp r1, #7 bhi _08031204 ldr r1, _08031200 @ =0x08137CF6 ldrh r0, [r0] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] movs r4, #0xd6 lsls r4, r4, #1 adds r0, r5, r4 b _0803121E .align 2, 0 _08031200: .4byte 0x08137CF6 _08031204: ldr r4, _08031230 @ =0x08137CE2 ldrh r0, [r0] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x13 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xd6 lsls r2, r2, #1 adds r0, r5, r2 _0803121E: strb r1, [r0] ldr r1, [r7] movs r3, #0xda lsls r3, r3, #1 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _08031236 .align 2, 0 _08031230: .4byte 0x08137CE2 _08031234: strh r2, [r0] _08031236: ldr r0, [r7] ldr r4, _08031288 @ =0x000001AD adds r1, r0, r4 movs r0, #0 _0803123E: strb r0, [r1] ldr r1, [r7] ldr r2, _0803128C @ =0x0000072E adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08031298 ldr r3, _08031290 @ =0x00000281 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _08031260 b _08031396 _08031260: ldr r4, _08031294 @ =0x000001A5 adds r0, r1, r4 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 beq _0803126E b _08031396 _0803126E: movs r2, #0xd2 lsls r2, r2, #1 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r2, [r7] adds r4, #0xf adds r0, r2, r4 strh r3, [r0] ldr r3, _08031294 @ =0x000001A5 adds r0, r2, r3 strb r1, [r0] b _08031396 .align 2, 0 _08031288: .4byte 0x000001AD _0803128C: .4byte 0x0000072E _08031290: .4byte 0x00000281 _08031294: .4byte 0x000001A5 _08031298: movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #6 bne _080312A2 b _08031396 _080312A2: ldr r4, _080312CC @ =0x000001A5 adds r0, r1, r4 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #1 bne _08031396 movs r2, #0xd2 lsls r2, r2, #1 adds r0, r1, r2 movs r2, #0 strb r3, [r0] ldr r3, [r7] adds r4, #0xf adds r0, r3, r4 movs r1, #0 strh r2, [r0] ldr r2, _080312CC @ =0x000001A5 adds r0, r3, r2 strb r1, [r0] b _08031396 .align 2, 0 _080312CC: .4byte 0x000001A5 _080312D0: ldr r4, _0803131C @ =0x08137D06 movs r6, #0xda lsls r6, r6, #1 adds r0, r5, r6 ldrh r0, [r0] movs r1, #3 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf ldr r3, _08031320 @ =0x000001A5 adds r1, r5, r3 movs r2, #0 ldrsb r2, [r1, r2] lsls r1, r2, #3 subs r1, r1, r2 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r4 ldrh r2, [r0] movs r0, #0xd6 lsls r0, r0, #1 adds r1, r5, r0 movs r3, #0 strb r2, [r1] ldr r1, [r7] adds r0, r1, r0 ldrb r0, [r0] subs r0, #4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08031328 ldr r4, _08031324 @ =0x000001AD adds r1, r1, r4 movs r0, #1 strb r0, [r1] b _0803136A .align 2, 0 _0803131C: .4byte 0x08137D06 _08031320: .4byte 0x000001A5 _08031324: .4byte 0x000001AD _08031328: ldr r2, _08031344 @ =0x000001A5 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _0803134C adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0xe bls _08031364 ldr r0, _08031348 @ =0x000001AD adds r1, r1, r0 b _08031358 .align 2, 0 _08031344: .4byte 0x000001A5 _08031348: .4byte 0x000001AD _0803134C: adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0xe bhi _08031364 ldr r2, _08031360 @ =0x000001AD adds r1, r1, r2 _08031358: movs r0, #2 strb r0, [r1] b _0803136A .align 2, 0 _08031360: .4byte 0x000001AD _08031364: ldr r4, _0803139C @ =0x000001AD adds r0, r1, r4 strb r3, [r0] _0803136A: ldr r2, [r7] movs r0, #0xda lsls r0, r0, #1 adds r1, r2, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x2a bne _08031396 movs r3, #0xd2 lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0 strb r0, [r1] ldr r0, [r7] movs r4, #0xda lsls r4, r4, #1 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08031396: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803139C: .4byte 0x000001AD thumb_func_start sub_313A0 sub_313A0: @ 0x080313A0 push {r4, r5, r6, r7, lr} ldr r6, _08031464 @ =0x0200E550 ldrh r0, [r6] cmp r0, #0 beq _0803145C ldr r0, _08031468 @ =0x020314E0 ldr r3, [r0] adds r0, r3, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x10 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r3, #0 adds r0, #0x5a ldrh r1, [r0] movs r0, #0x73 subs r0, r0, r1 strh r0, [r6, #4] ldr r1, _0803146C @ =0x000001AD adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] adds r0, r3, #0 adds r0, #0x6f movs r2, #0 ldrsb r2, [r0, r2] lsls r0, r2, #1 adds r0, r0, r2 ldr r2, _08031470 @ =0x040000D4 adds r1, r1, r0 lsls r1, r1, #5 ldr r0, _08031474 @ =0x081BC984 adds r1, r1, r0 str r1, [r2] ldr r0, _08031478 @ =0x05000300 str r0, [r2, #4] ldr r0, _0803147C @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0xd6 lsls r1, r1, #1 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08031480 @ =0x0848108C adds r0, r0, r1 str r0, [r2] ldr r0, _08031484 @ =0x06014B20 str r0, [r2, #4] ldr r0, _08031488 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _0803148C @ =0x03005000 ldr r2, _08031490 @ =0xFFFFFE00 mov ip, r2 _08031418: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r0, #2 ldrsh r1, [r3, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08031494 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _08031418 _0803145C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031464: .4byte 0x0200E550 _08031468: .4byte 0x020314E0 _0803146C: .4byte 0x000001AD _08031470: .4byte 0x040000D4 _08031474: .4byte 0x081BC984 _08031478: .4byte 0x05000300 _0803147C: .4byte 0x80000010 _08031480: .4byte 0x0848108C _08031484: .4byte 0x06014B20 _08031488: .4byte 0x80000240 _0803148C: .4byte 0x03005000 _08031490: .4byte 0xFFFFFE00 _08031494: .4byte 0x000001FF thumb_func_start sub_31498 sub_31498: @ 0x08031498 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _080314C4 @ =0x020314E0 ldr r0, [r1] ldr r2, _080314C8 @ =0x00000346 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #6 bls _080314B8 b _080319AC _080314B8: lsls r0, r0, #2 ldr r1, _080314CC @ =_080314D0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080314C4: .4byte 0x020314E0 _080314C8: .4byte 0x00000346 _080314CC: .4byte _080314D0 _080314D0: @ jump table .4byte _080314EC @ case 0 .4byte _08031610 @ case 1 .4byte _080319AC @ case 2 .4byte _080316F4 @ case 3 .4byte _080317E0 @ case 4 .4byte _080318A8 @ case 5 .4byte _08031988 @ case 6 _080314EC: ldr r4, [r5] movs r3, #0xd1 lsls r3, r3, #2 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08031500 b _080319AC _08031500: movs r0, #0x13 ldrsb r0, [r4, r0] cmp r0, #2 bgt _080315A4 ldr r7, _08031528 @ =0x00000345 adds r1, r4, r7 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08031530 adds r0, r2, #1 strb r0, [r1] ldr r1, [r5] ldr r0, _0803152C @ =0x00004E20 str r0, [r1, #0x3c] movs r0, #0xde bl m4aSongNumStart b _080315C2 .align 2, 0 _08031528: .4byte 0x00000345 _0803152C: .4byte 0x00004E20 _08031530: ldr r2, _08031594 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 movs r3, #0 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r3, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0xe6 lsls r0, r0, #2 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r0, #4 strb r2, [r0] ldr r0, [r5] adds r0, #0xfa movs r1, #1 strb r1, [r0] ldr r0, [r5] adds r0, #0xfb strb r2, [r0] ldr r0, [r5] ldr r2, _08031598 @ =0x00000346 adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] movs r4, #0xd2 lsls r4, r4, #2 adds r0, r0, r4 strh r3, [r0] ldr r0, _0803159C @ =0x02032EE0 bl m4aMPlayStop ldr r1, [r5] ldr r0, _080315A0 @ =0x00030D40 str r0, [r1, #0x3c] movs r0, #0xdf bl m4aSongNumStart b _080315C2 .align 2, 0 _08031594: .4byte 0x0200B0C0 _08031598: .4byte 0x00000346 _0803159C: .4byte 0x02032EE0 _080315A0: .4byte 0x00030D40 _080315A4: ldr r7, _080315F4 @ =0x00000345 adds r1, r4, r7 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _080315C2 adds r0, r2, #1 strb r0, [r1] ldr r1, [r5] ldr r0, _080315F8 @ =0x00004E20 str r0, [r1, #0x3c] movs r0, #0xde bl m4aSongNumStart _080315C2: ldr r0, _080315FC @ =0x020314E0 ldr r3, [r0] ldr r1, _080315F4 @ =0x00000345 adds r0, r3, r1 ldr r2, _08031600 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031604 @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _08031608 @ =0x0600D900 str r0, [r2, #4] ldr r0, _0803160C @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0xd1 lsls r2, r2, #2 adds r3, r3, r2 movs r0, #0 strb r0, [r3] b _080319AC .align 2, 0 _080315F4: .4byte 0x00000345 _080315F8: .4byte 0x00004E20 _080315FC: .4byte 0x020314E0 _08031600: .4byte 0x040000D4 _08031604: .4byte 0x08490A4C _08031608: .4byte 0x0600D900 _0803160C: .4byte 0x80000220 _08031610: ldr r0, [r5] movs r3, #0xd2 lsls r3, r3, #2 adds r2, r0, r3 ldrh r1, [r2] ldr r0, _08031654 @ =0x0000010D cmp r1, r0 bhi _08031668 adds r0, r1, #0 movs r1, #0x3c bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x1e bl __udivsi3 adds r0, #4 ldr r2, _08031658 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 adds r1, r1, r0 lsls r1, r1, #6 ldr r0, _0803165C @ =0x08490A4C adds r1, r1, r0 str r1, [r2] ldr r0, _08031660 @ =0x0600D900 str r0, [r2, #4] ldr r0, _08031664 @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] b _0803168C .align 2, 0 _08031654: .4byte 0x0000010D _08031658: .4byte 0x040000D4 _0803165C: .4byte 0x08490A4C _08031660: .4byte 0x0600D900 _08031664: .4byte 0x80000220 _08031668: ldr r1, _080316D8 @ =0x040000D4 movs r2, #0 ldr r0, _080316DC @ =0x08490A4C str r0, [r1] ldr r0, _080316E0 @ =0x0600D900 str r0, [r1, #4] ldr r0, _080316E4 @ =0x80000220 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5] ldr r4, _080316E8 @ =0x00000346 adds r0, r0, r4 movs r1, #2 strb r1, [r0] ldr r0, [r5] ldr r7, _080316EC @ =0x00000345 adds r0, r0, r7 strb r2, [r0] _0803168C: ldr r0, [r5] movs r4, #0xd2 lsls r4, r4, #2 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x3c bne _080316CC movs r0, #0x16 bl m4aSongNumStart ldr r0, [r5] movs r1, #0xe5 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r5] movs r3, #0xf6 lsls r3, r3, #1 adds r0, r0, r3 movs r1, #5 strb r1, [r0] ldr r0, [r5] ldr r7, _080316F0 @ =0x000001ED adds r1, r0, r7 movs r0, #0xc strb r0, [r1] ldr r0, [r5] movs r1, #0xf8 lsls r1, r1, #1 adds r0, r0, r1 strh r2, [r0] _080316CC: ldr r1, [r5] adds r1, r1, r4 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _080319AC .align 2, 0 _080316D8: .4byte 0x040000D4 _080316DC: .4byte 0x08490A4C _080316E0: .4byte 0x0600D900 _080316E4: .4byte 0x80000220 _080316E8: .4byte 0x00000346 _080316EC: .4byte 0x00000345 _080316F0: .4byte 0x000001ED _080316F4: ldr r6, _0803171C @ =0x086AE5A0 ldr r2, [r5] ldr r4, _08031720 @ =0x00000345 adds r3, r2, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, r6, #2 adds r0, r0, r1 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xd2 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] cmp r0, r1 ble _08031724 adds r0, r1, #1 strh r0, [r2] b _08031784 .align 2, 0 _0803171C: .4byte 0x086AE5A0 _08031720: .4byte 0x00000345 _08031724: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r5] ldr r2, _080317A0 @ =0x00000345 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08031746 ldr r3, _080317A4 @ =0x00000346 adds r1, r1, r3 movs r0, #4 strb r0, [r1] _08031746: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bne _0803175A movs r0, #0xe0 bl m4aSongNumStart _0803175A: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r6 ldr r2, _080317A8 @ =0x040000D4 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _080317AC @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _080317B0 @ =0x0600D900 str r0, [r2, #4] ldr r0, _080317B4 @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] _08031784: ldr r1, [r5] ldr r7, _080317A0 @ =0x00000345 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bgt _080317B8 movs r0, #0x80 lsls r0, r0, #2 adds r1, r1, r0 subs r0, #0xe8 str r0, [r1] b _080319AC .align 2, 0 _080317A0: .4byte 0x00000345 _080317A4: .4byte 0x00000346 _080317A8: .4byte 0x040000D4 _080317AC: .4byte 0x08490A4C _080317B0: .4byte 0x0600D900 _080317B4: .4byte 0x80000220 _080317B8: movs r2, #0x80 lsls r2, r2, #2 adds r3, r1, r2 ldr r2, [r3] adds r0, r2, #6 str r0, [r3] ldr r4, _080317DC @ =0x00000346 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 beq _080317D4 b _080319AC _080317D4: adds r0, r2, #0 adds r0, #0x1a str r0, [r3] b _080319AC .align 2, 0 _080317DC: .4byte 0x00000346 _080317E0: ldr r5, _08031894 @ =0x020314E0 ldr r4, [r5] ldr r7, _08031898 @ =0x00000343 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08031882 movs r1, #0xd1 lsls r1, r1, #2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08031882 ldr r2, _0803189C @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #1 movs r3, #0 orrs r0, r1 strb r0, [r2, #0xf] adds r0, r4, #0 adds r0, #0xea movs r2, #0 strh r3, [r0] adds r1, r4, #0 adds r1, #0xec movs r0, #0xa0 strh r0, [r1] adds r0, r4, #0 adds r0, #0xe8 strh r3, [r0] subs r0, #2 strh r3, [r0] adds r0, #8 strh r3, [r0] adds r0, #4 strb r2, [r0] ldr r0, [r5] adds r0, #0xfa movs r4, #1 strb r4, [r0] ldr r0, [r5] adds r0, #0xfb strb r2, [r0] ldr r0, [r5] ldr r2, _080318A0 @ =0x00000346 adds r0, r0, r2 movs r1, #5 strb r1, [r0] ldr r0, [r5] adds r7, #5 adds r1, r0, r7 strh r3, [r1] ldr r1, _080318A4 @ =0x00000345 adds r0, r0, r1 movs r1, #0xa strb r1, [r0] movs r0, #0xe0 bl m4aSongNumStart ldr r0, [r5] movs r2, #0xf6 lsls r2, r2, #1 adds r0, r0, r2 strb r4, [r0] ldr r2, [r5] movs r3, #0xfa lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0x82 lsls r0, r0, #4 strh r0, [r1] movs r4, #0xfb lsls r4, r4, #1 adds r1, r2, r4 movs r0, #0xf0 lsls r0, r0, #2 strh r0, [r1] _08031882: ldr r0, _08031894 @ =0x020314E0 ldr r0, [r0] movs r7, #0xd1 lsls r7, r7, #2 adds r0, r0, r7 movs r1, #0 strb r1, [r0] b _080319AC .align 2, 0 _08031894: .4byte 0x020314E0 _08031898: .4byte 0x00000343 _0803189C: .4byte 0x0200B0C0 _080318A0: .4byte 0x00000346 _080318A4: .4byte 0x00000345 _080318A8: ldr r6, _080318D0 @ =0x086AE5A0 ldr r2, [r5] ldr r4, _080318D4 @ =0x00000345 adds r3, r2, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r1, r6, #2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] movs r7, #0xd2 lsls r7, r7, #2 adds r2, r2, r7 ldrh r1, [r2] cmp r0, r1 ble _080318D8 adds r0, r1, #1 strh r0, [r2] b _08031924 .align 2, 0 _080318D0: .4byte 0x086AE5A0 _080318D4: .4byte 0x00000345 _080318D8: movs r0, #0 strh r0, [r2] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r1, [r5] ldr r2, _08031968 @ =0x00000345 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _080318FA ldr r3, _0803196C @ =0x00000346 adds r1, r1, r3 movs r0, #6 strb r0, [r1] _080318FA: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r6 ldr r2, _08031970 @ =0x040000D4 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031974 @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _08031978 @ =0x0600D900 str r0, [r2, #4] ldr r0, _0803197C @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] _08031924: ldr r0, _08031980 @ =0x020314E0 ldr r1, [r0] ldr r7, _08031968 @ =0x00000345 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _08031948 movs r2, #0xd2 lsls r2, r2, #2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xa bne _08031948 movs r0, #0xe1 bl m4aSongNumStart _08031948: ldr r0, _08031980 @ =0x020314E0 ldr r0, [r0] movs r3, #0xfb lsls r3, r3, #1 adds r1, r0, r3 ldrh r3, [r1] movs r4, #0 ldrsh r0, [r1, r4] movs r2, #0xaf lsls r2, r2, #2 cmp r0, r2 ble _08031984 subs r0, r3, #5 strh r0, [r1] b _080319AC .align 2, 0 _08031968: .4byte 0x00000345 _0803196C: .4byte 0x00000346 _08031970: .4byte 0x040000D4 _08031974: .4byte 0x08490A4C _08031978: .4byte 0x0600D900 _0803197C: .4byte 0x80000220 _08031980: .4byte 0x020314E0 _08031984: strh r2, [r1] b _080319AC _08031988: ldr r0, [r5] ldr r7, _080319F8 @ =0x00000345 adds r0, r0, r7 movs r2, #0 strb r2, [r0] ldr r0, [r5] movs r3, #0xd2 lsls r3, r3, #2 adds r1, r0, r3 movs r3, #0 strh r2, [r1] ldr r4, _080319FC @ =0x00000346 adds r0, r0, r4 strb r3, [r0] ldr r0, [r5] subs r7, #2 adds r0, r0, r7 strb r3, [r0] _080319AC: movs r1, #0 ldr r0, _08031A00 @ =0x040000D4 mov sb, r0 ldr r2, _08031A04 @ =0x086AE554 mov sl, r2 _080319B6: lsls r1, r1, #0x10 asrs r4, r1, #0x10 movs r0, #0xb8 muls r0, r4, r0 ldr r3, _08031A08 @ =0x0200D580 adds r6, r0, r3 ldrh r0, [r6] mov r8, r1 cmp r0, #0 bne _080319CC b _08031AEA _080319CC: ldr r5, _08031A0C @ =0x020314E0 ldr r1, [r5] ldr r7, _08031A10 @ =0x00000355 adds r0, r1, r7 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 ldr r2, _08031A14 @ =0x086AE58A adds r0, r0, r2 movs r7, #0 ldrsh r2, [r0, r7] lsls r0, r4, #1 ldr r7, _08031A18 @ =0x0000035E adds r1, r1, r7 adds r1, r1, r0 ldrh r0, [r1] cmp r2, r0 ble _08031A1C adds r0, #1 strh r0, [r1] b _08031A3C .align 2, 0 _080319F8: .4byte 0x00000345 _080319FC: .4byte 0x00000346 _08031A00: .4byte 0x040000D4 _08031A04: .4byte 0x086AE554 _08031A08: .4byte 0x0200D580 _08031A0C: .4byte 0x020314E0 _08031A10: .4byte 0x00000355 _08031A14: .4byte 0x086AE58A _08031A18: .4byte 0x0000035E _08031A1C: movs r2, #0 strh r2, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, [r5] ldr r1, _08031B08 @ =0x00000355 adds r0, r0, r1 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bne _08031A3C strh r2, [r6] movs r0, #5 strb r0, [r1] _08031A3C: ldr r2, _08031B0C @ =0x020314E0 ldr r4, [r2] mov r7, r8 asrs r3, r7, #0x10 ldr r1, _08031B08 @ =0x00000355 adds r0, r4, r1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r2, _08031B10 @ =0x086AE588 adds r0, r0, r2 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 ldr r1, _08031B14 @ =0x0845A08C adds r0, r0, r1 mov r1, sb str r0, [r1] lsls r0, r3, #8 ldr r2, _08031B18 @ =0x060140A0 adds r0, r0, r2 str r0, [r1, #4] ldr r0, _08031B1C @ =0x80000080 str r0, [r1, #8] ldr r0, [r1, #8] ldr r7, _08031B20 @ =0x00000359 adds r2, r4, r7 adds r2, r2, r3 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 add r0, sl adds r1, r4, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 add r0, sl adds r4, #0x5a ldrh r0, [r0, #2] ldrh r1, [r4] subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08031B24 @ =0x03005000 ldr r1, _08031B28 @ =0xFFFFFE00 mov ip, r1 _08031AA6: lsls r3, r0, #0x10 asrs r3, r3, #0x10 lsls r5, r3, #3 adds r5, #8 adds r5, r6, r5 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r4, #2 ldrsh r1, [r5, r4] movs r4, #2 ldrsh r0, [r6, r4] adds r1, r1, r0 ldr r4, _08031B2C @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r0, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08031AA6 _08031AEA: movs r0, #0x80 lsls r0, r0, #9 add r0, r8 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _08031AFA b _080319B6 _08031AFA: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031B08: .4byte 0x00000355 _08031B0C: .4byte 0x020314E0 _08031B10: .4byte 0x086AE588 _08031B14: .4byte 0x0845A08C _08031B18: .4byte 0x060140A0 _08031B1C: .4byte 0x80000080 _08031B20: .4byte 0x00000359 _08031B24: .4byte 0x03005000 _08031B28: .4byte 0xFFFFFE00 _08031B2C: .4byte 0x000001FF thumb_func_start sub_31B30 sub_31B30: @ 0x08031B30 push {r4, r5, r6, r7, lr} ldr r1, _08031B64 @ =0x0200B0C0 ldrb r0, [r1, #4] ldr r2, _08031B68 @ =0x00004010 adds r6, r1, r2 cmp r0, #0 bne _08031B42 ldr r0, _08031B6C @ =0x00003D30 adds r6, r1, r0 _08031B42: ldrh r0, [r6] cmp r0, #0 beq _08031BD6 ldr r0, _08031B70 @ =0x020314E0 ldr r1, [r0] adds r0, r1, #0 adds r0, #0x4c movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #7 bgt _08031B74 adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r2, #8 rsbs r2, r2, #0 b _08031B7E .align 2, 0 _08031B64: .4byte 0x0200B0C0 _08031B68: .4byte 0x00004010 _08031B6C: .4byte 0x00003D30 _08031B70: .4byte 0x020314E0 _08031B74: adds r0, r1, #0 adds r0, #0x58 ldrh r1, [r0] movs r2, #0x80 lsls r2, r2, #1 _08031B7E: adds r0, r2, #0 subs r0, r0, r1 strh r0, [r6, #2] movs r0, #0 strh r0, [r6, #4] ldr r7, _08031BDC @ =0x03005000 ldr r1, _08031BE0 @ =0xFFFFFE00 mov ip, r1 _08031B8E: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08031BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r2, [r3] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 lsls r1, r5, #5 adds r0, r0, r1 strb r0, [r2] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #4 ble _08031B8E _08031BD6: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031BDC: .4byte 0x03005000 _08031BE0: .4byte 0xFFFFFE00 _08031BE4: .4byte 0x000001FF thumb_func_start sub_31BE8 sub_31BE8: @ 0x08031BE8 push {r4, r5, r6, r7, lr} lsls r0, r0, #0x10 lsrs r3, r0, #0x10 ldr r1, _08031C40 @ =0x020314E0 ldr r0, [r1] adds r0, #0x70 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r1, #0 ldr r5, _08031C44 @ =0x02031520 cmp r0, #1 bne _08031C1C ldr r2, _08031C48 @ =0x040000D4 lsls r0, r3, #0x10 asrs r0, r0, #0xe adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, _08031C4C @ =0x05000200 str r0, [r2, #4] ldr r0, _08031C50 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _08031C1C: ldr r0, _08031C54 @ =0x0200B0C0 ldrb r1, [r0, #4] adds r6, r0, #0 cmp r1, #1 bne _08031C60 ldr r2, _08031C48 @ =0x040000D4 lsls r3, r3, #0x10 asrs r0, r3, #0xe adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] adds r0, #0x40 str r0, [r2] ldr r0, _08031C58 @ =0x05000240 str r0, [r2, #4] ldr r0, _08031C5C @ =0x80000060 b _08031C78 .align 2, 0 _08031C40: .4byte 0x020314E0 _08031C44: .4byte 0x02031520 _08031C48: .4byte 0x040000D4 _08031C4C: .4byte 0x05000200 _08031C50: .4byte 0x80000010 _08031C54: .4byte 0x0200B0C0 _08031C58: .4byte 0x05000240 _08031C5C: .4byte 0x80000060 _08031C60: ldr r2, _08031CB8 @ =0x040000D4 lsls r3, r3, #0x10 asrs r0, r3, #0xe adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] adds r0, #0x40 str r0, [r2] ldr r0, _08031CBC @ =0x05000240 str r0, [r2, #4] ldr r0, _08031CC0 @ =0x80000070 _08031C78: str r0, [r2, #8] ldr r0, [r2, #8] ldr r4, _08031CB8 @ =0x040000D4 asrs r3, r3, #0x10 lsls r0, r3, #2 adds r1, r5, #0 adds r1, #0x2c adds r0, r0, r1 ldr r0, [r0] movs r1, #0xa0 lsls r1, r1, #1 adds r0, r0, r1 str r0, [r4] ldr r0, _08031CC4 @ =0x05000340 str r0, [r4, #4] ldr r5, _08031CC8 @ =0x80000010 str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, [r7] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xa9 bgt _08031CD0 ldrb r1, [r6, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 lsls r1, r3, #6 ldr r2, _08031CCC @ =0x08137B3C adds r1, r1, r2 b _08031CDE .align 2, 0 _08031CB8: .4byte 0x040000D4 _08031CBC: .4byte 0x05000240 _08031CC0: .4byte 0x80000070 _08031CC4: .4byte 0x05000340 _08031CC8: .4byte 0x80000010 _08031CCC: .4byte 0x08137B3C _08031CD0: ldrb r1, [r6, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _08031CF0 @ =0x08137B5C adds r0, r0, r1 lsls r1, r3, #6 _08031CDE: adds r0, r0, r1 str r0, [r4] ldr r0, _08031CF4 @ =0x05000360 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031CF0: .4byte 0x08137B5C _08031CF4: .4byte 0x05000360 thumb_func_start sub_31CF8 sub_31CF8: @ 0x08031CF8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 cmp r0, #0 bne _08031D90 ldr r0, _08031D80 @ =0x0200B0C0 ldrb r0, [r0, #2] cmp r0, #3 beq _08031D20 ldr r0, _08031D84 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #4 bl sub_52BB0 _08031D20: ldr r2, _08031D88 @ =0x086A3700 ldr r1, _08031D84 @ =0x020314E0 ldr r4, [r1] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 ldrh r3, [r0] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #3 adds r2, r0, r2 movs r0, #0x14 ldrsb r0, [r2, r0] mov r8, r1 cmp r0, #0 bne _08031D42 b _08031F5E _08031D42: ldrb r0, [r2, #0x15] cmp r0, #0xcc bls _08031D4A b _08031F5E _08031D4A: ldr r0, _08031D8C @ =0x00000281 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf bgt _08031D58 b _08031F00 _08031D58: movs r2, #0 mov r4, r8 movs r3, #0x9c lsls r3, r3, #2 _08031D60: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r2, r1, r0 adds r0, #1 adds r1, r1, r0 ldrb r1, [r1] strb r1, [r2] lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _08031D60 b _08031F4C .align 2, 0 _08031D80: .4byte 0x0200B0C0 _08031D84: .4byte 0x020314E0 _08031D88: .4byte 0x086A3700 _08031D8C: .4byte 0x00000281 _08031D90: ldr r2, _08031E10 @ =0x020314E0 ldr r1, [r2] ldr r6, _08031E14 @ =0x00000281 adds r1, r1, r6 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r0, [r2] movs r3, #0xa0 lsls r3, r3, #2 adds r1, r0, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r6 lsls r3, r1, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r4, _08031E18 @ =0x0200B0C0 mov r8, r2 cmp r1, r0 bge _08031DE6 mov r5, r8 movs r7, #0x9c lsls r7, r7, #2 _08031DC4: ldr r0, [r5] asrs r1, r3, #0x10 adds r0, r0, r7 adds r2, r0, r1 adds r1, #1 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, [r5] adds r0, r0, r6 lsls r3, r1, #0x10 asrs r1, r3, #0x10 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _08031DC4 _08031DE6: mov r1, r8 ldr r0, [r1] movs r5, #0xb3 lsls r5, r5, #3 adds r3, r0, r5 ldrh r0, [r3] cmp r0, #0xd bne _08031E32 ldr r0, [r4, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08031E20 adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0, #0xe] cmp r0, #3 bhi _08031E1C movs r0, #0xe b _08031EB2 .align 2, 0 _08031E10: .4byte 0x020314E0 _08031E14: .4byte 0x00000281 _08031E18: .4byte 0x0200B0C0 _08031E1C: movs r0, #0x10 b _08031EB2 _08031E20: adds r0, r4, #0 adds r0, #0x74 ldrb r0, [r0, #0x10] cmp r0, #3 bhi _08031E2E movs r0, #0x10 b _08031EB2 _08031E2E: movs r0, #0xe b _08031EB2 _08031E32: cmp r0, #0x58 bne _08031E44 ldrb r0, [r4, #4] cmp r0, #0 bne _08031E40 movs r0, #0x59 b _08031EB2 _08031E40: movs r0, #0x5a b _08031EB2 _08031E44: cmp r0, #0xaf bne _08031E7C ldr r0, [r4, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08031E66 movs r2, #0x92 lsls r2, r2, #1 adds r0, r4, r2 ldrb r0, [r0] cmp r0, #3 bhi _08031E62 movs r0, #0xb0 b _08031EB2 _08031E62: movs r0, #0xb1 b _08031EB2 _08031E66: ldr r1, _08031E74 @ =0x00000125 adds r0, r4, r1 ldrb r0, [r0] cmp r0, #3 bhi _08031E78 movs r0, #0xb1 b _08031EB2 .align 2, 0 _08031E74: .4byte 0x00000125 _08031E78: movs r0, #0xb0 b _08031EB2 _08031E7C: cmp r0, #0x29 bne _08031EA4 movs r0, #0x2b strh r0, [r3] ldr r4, _08031EA0 @ =0x0200B0C0 ldrb r0, [r4, #2] cmp r0, #3 beq _08031E94 movs r0, #0x2b movs r1, #4 bl sub_52BB0 _08031E94: mov r2, r8 ldr r0, [r2] adds r0, r0, r5 movs r1, #0x2a strh r1, [r0] b _08031EB4 .align 2, 0 _08031EA0: .4byte 0x0200B0C0 _08031EA4: ldr r2, _08031F1C @ =0x086A3700 ldrh r1, [r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 ldrb r0, [r0, #0x15] _08031EB2: strh r0, [r3] _08031EB4: ldrb r0, [r4, #2] cmp r0, #3 beq _08031ECE ldr r0, _08031F20 @ =0x020314E0 ldr r0, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #4 bl sub_52BB0 _08031ECE: ldr r2, _08031F1C @ =0x086A3700 ldr r1, _08031F20 @ =0x020314E0 ldr r4, [r1] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r4, r3 ldrh r3, [r0] lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #3 adds r2, r0, r2 movs r0, #0x14 ldrsb r0, [r2, r0] mov r8, r1 cmp r0, #0 beq _08031F5E ldrb r0, [r2, #0x15] cmp r0, #0xcc bhi _08031F5E ldr r0, _08031F24 @ =0x00000281 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf bgt _08031F28 _08031F00: adds r1, r0, #0 movs r2, #0x9c lsls r2, r2, #2 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] mov r3, r8 ldr r1, [r3] ldr r0, _08031F24 @ =0x00000281 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08031F5E .align 2, 0 _08031F1C: .4byte 0x086A3700 _08031F20: .4byte 0x020314E0 _08031F24: .4byte 0x00000281 _08031F28: movs r2, #0 mov r4, r8 movs r3, #0x9c lsls r3, r3, #2 _08031F30: ldr r1, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r3 adds r2, r1, r0 adds r0, #1 adds r1, r1, r0 ldrb r1, [r1] strb r1, [r2] lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _08031F30 _08031F4C: mov r1, r8 ldr r0, [r1] movs r2, #0xb3 lsls r2, r2, #3 adds r1, r0, r2 ldrh r1, [r1] ldr r3, _08031F68 @ =0x0000027F adds r0, r0, r3 strb r1, [r0] _08031F5E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08031F68: .4byte 0x0000027F thumb_func_start sub_31F6C sub_31F6C: @ 0x08031F6C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, _08031FE0 @ =0x020314E0 ldr r0, [r4] movs r1, #0x97 lsls r1, r1, #1 adds r3, r0, r1 movs r1, #0 strh r1, [r3] ldr r3, _08031FE4 @ =0x0000073D adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _08031F96 movs r1, #1 _08031F96: movs r2, #0 lsls r1, r1, #4 str r1, [sp] ldr r5, _08031FE8 @ =0x0200B134 mov r8, r5 mov sl, r4 _08031FA2: lsls r2, r2, #0x10 asrs r1, r2, #0xf ldr r0, [sp] adds r1, r1, r0 mov r3, sl ldr r0, [r3] adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 ldr r5, _08031FEC @ =0x08055A84 adds r1, r1, r5 ldrh r6, [r1] movs r3, #0 ldrsh r0, [r1, r3] mov sb, r2 cmp r0, #0x8d beq _08032018 cmp r0, #0x8d bgt _08031FFA cmp r0, #0x84 beq _08032018 cmp r0, #0x84 bgt _08031FF0 cmp r0, #0x3b beq _08032018 cmp r0, #0x72 beq _08032018 b _080320A8 .align 2, 0 _08031FE0: .4byte 0x020314E0 _08031FE4: .4byte 0x0000073D _08031FE8: .4byte 0x0200B134 _08031FEC: .4byte 0x08055A84 _08031FF0: cmp r0, #0x86 beq _08032018 cmp r0, #0x8b beq _08032018 b _080320A8 _08031FFA: cmp r0, #0xa0 beq _08032018 cmp r0, #0xa0 bgt _0803200C cmp r0, #0x90 beq _08032018 cmp r0, #0x97 beq _08032018 b _080320A8 _0803200C: cmp r0, #0xaf beq _0803205E cmp r0, #0xcd bne _08032016 b _08032138 _08032016: b _080320A8 _08032018: ldr r0, _08032038 @ =0x0200B0C0 ldrb r0, [r0, #8] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803203C lsls r0, r6, #0x10 asrs r0, r0, #0x10 add r0, r8 ldrb r0, [r0] movs r5, #4 cmp r0, #1 bhi _0803204C movs r5, #2 b _0803204C .align 2, 0 _08032038: .4byte 0x0200B0C0 _0803203C: lsls r0, r6, #0x10 asrs r0, r0, #0x10 add r0, r8 ldrb r0, [r0] movs r5, #2 cmp r0, #1 bhi _0803204C movs r5, #1 _0803204C: mov r1, sl ldr r0, [r1] movs r3, #0xbe lsls r3, r3, #3 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0 bne _0803213A b _08032138 _0803205E: ldr r4, _080320A0 @ =0x086AE5E0 ldr r3, _080320A4 @ =0x0200B134 adds r0, r3, #0 adds r0, #0xaf ldrb r1, [r0] lsls r1, r1, #1 adds r1, r1, r4 adds r0, #1 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r2, [r0] ldrh r5, [r1] movs r0, #0 ldrsh r1, [r1, r0] lsls r2, r2, #0x10 asrs r0, r2, #0x10 cmp r1, r0 bge _08032086 lsrs r5, r2, #0x10 _08032086: adds r0, r3, #0 adds r0, #0xb1 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r2, [r0] lsls r0, r5, #0x10 lsls r1, r2, #0x10 cmp r0, r1 bge _0803213A lsrs r5, r1, #0x10 b _0803213A .align 2, 0 _080320A0: .4byte 0x086AE5E0 _080320A4: .4byte 0x0200B134 _080320A8: ldr r0, _0803218C @ =0x086AE5E0 lsls r1, r6, #0x10 asrs r1, r1, #0x10 add r1, r8 ldrb r1, [r1] lsls r1, r1, #1 adds r1, r1, r0 ldrh r5, [r1] movs r3, #0 ldr r1, _08032190 @ =0x086A3700 mov ip, r1 mov r7, ip adds r4, r0, #0 _080320C2: lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r7 ldrb r6, [r0, #0x15] adds r0, r6, #0 cmp r0, #0xcc bgt _080320FA add r0, r8 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r4 ldrh r2, [r0] lsls r0, r5, #0x10 lsls r1, r2, #0x10 cmp r0, r1 bge _080320EA lsrs r5, r1, #0x10 _080320EA: lsls r0, r3, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080320C2 _080320FA: mov r0, sb asrs r1, r0, #0xf ldr r3, [sp] adds r1, r1, r3 mov r0, sl ldr r2, [r0] adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 ldr r3, _08032194 @ =0x08055A84 adds r1, r1, r3 ldrh r6, [r1] movs r0, #0xbe lsls r0, r0, #3 adds r2, r2, r0 ldrh r0, [r2] cmp r0, #0 bne _0803213A lsls r0, r6, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #3 add r1, ip ldrb r0, [r1, #0x15] cmp r0, #0xcc bls _0803213A _08032138: movs r5, #0 _0803213A: mov r1, sl ldr r4, [r1] ldr r3, _08032198 @ =0x0000059C adds r0, r4, r3 ldrh r1, [r0] lsls r0, r6, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _0803214E movs r5, #0 _0803214E: movs r1, #0x97 lsls r1, r1, #1 adds r0, r4, r1 lsls r2, r5, #0x10 asrs r2, r2, #0x10 ldrh r3, [r0] adds r2, r2, r3 strh r2, [r0] mov r5, sb asrs r1, r5, #0x10 lsls r3, r1, #1 movs r5, #0x98 lsls r5, r5, #1 adds r0, r4, r5 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 bgt _0803217C b _08031FA2 _0803217C: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803218C: .4byte 0x086AE5E0 _08032190: .4byte 0x086A3700 _08032194: .4byte 0x08055A84 _08032198: .4byte 0x0000059C thumb_func_start sub_3219C sub_3219C: @ 0x0803219C push {r4, r5, r6, r7, lr} sub sp, #0xc ldr r4, _080321C8 @ =0x0200B0C0 movs r0, #7 ldrsb r0, [r4, r0] cmp r0, #0 beq _08032208 movs r0, #0 strb r0, [r4, #7] bl sub_C00 ldr r1, [r4, #0x4c] ldr r2, [r4, #0x50] adds r1, r1, r2 adds r3, r0, r1 movs r1, #3 ands r3, r1 movs r5, #0 adds r2, r4, #0 adds r2, #0x74 adds r0, r3, #0 b _080321DE .align 2, 0 _080321C8: .4byte 0x0200B0C0 _080321CC: lsls r0, r5, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _080321EA adds r0, r0, r3 _080321DE: ands r0, r1 adds r0, #0xc9 adds r0, r0, r2 ldrb r0, [r0] cmp r0, #3 bhi _080321CC _080321EA: ldr r0, _08032204 @ =0x020314E0 ldr r2, [r0] lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r0, r0, r3 movs r1, #3 ands r0, r1 adds r0, #0xc9 movs r1, #0xb3 lsls r1, r1, #3 adds r2, r2, r1 b _08032452 .align 2, 0 _08032204: .4byte 0x020314E0 _08032208: bl sub_C00 ldr r1, [r4, #0x4c] ldr r2, [r4, #0x50] adds r1, r1, r2 adds r3, r0, r1 movs r0, #8 ldrsb r0, [r4, r0] cmp r0, #0 beq _08032222 adds r0, r3, #0 movs r1, #0x32 b _08032226 _08032222: adds r0, r3, #0 movs r1, #0x64 _08032226: bl __umodsi3 adds r3, r0, #0 ldr r0, _08032338 @ =0x02031520 movs r2, #8 ldrsh r0, [r0, r2] cmp r0, #0x63 bgt _08032238 movs r3, #1 _08032238: ldr r7, _0803233C @ =0x020314E0 cmp r3, #0 bne _0803224C ldr r0, [r7] movs r3, #0xbe lsls r3, r3, #3 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #4 bhi _0803225E _0803224C: ldr r1, [r7] ldr r4, _08032340 @ =0x0000012B adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803225E b _080323C0 _0803225E: movs r4, #0 ldr r0, [r7] movs r1, #0xb3 lsls r1, r1, #3 adds r3, r0, r1 strh r4, [r3] ldr r1, _08032344 @ =0x0200B134 adds r0, r1, #0 adds r0, #0xcc ldrb r2, [r0] adds r5, r1, #0 cmp r2, #0 beq _08032286 movs r4, #1 mov r0, sp movs r1, #0xcc strh r1, [r0] cmp r2, #3 bhi _08032286 strh r1, [r3] _08032286: adds r0, r5, #0 adds r0, #0xc9 ldrb r2, [r0] cmp r2, #0 beq _080322B4 adds r0, r4, #0 lsls r1, r0, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r1, r1, r3 lsrs r4, r1, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0xf add r0, sp movs r1, #0xc9 strh r1, [r0] cmp r2, #3 bhi _080322B4 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _080322B4: adds r0, r5, #0 adds r0, #0xcb ldrb r2, [r0] cmp r2, #0 beq _080322E2 adds r0, r4, #0 lsls r1, r0, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r1, r1, r3 lsrs r4, r1, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0xf add r0, sp movs r1, #0xcb strh r1, [r0] cmp r2, #3 bhi _080322E2 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _080322E2: adds r0, r5, #0 adds r0, #0xca ldrb r2, [r0] cmp r2, #0 beq _08032310 adds r0, r4, #0 lsls r1, r0, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r1, r1, r3 lsrs r4, r1, #0x10 lsls r0, r0, #0x10 asrs r0, r0, #0xf add r0, sp movs r1, #0xca strh r1, [r0] cmp r2, #3 bhi _08032310 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _08032310: ldr r2, _08032348 @ =0x0200B0C0 ldrb r0, [r2, #4] cmp r0, #0 bne _0803234C adds r1, r4, #0 lsls r0, r1, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r4, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0xf mov r3, sp adds r0, r3, r1 movs r1, #0xc4 strh r1, [r0] movs r3, #0x9c lsls r3, r3, #1 b _08032366 .align 2, 0 _08032338: .4byte 0x02031520 _0803233C: .4byte 0x020314E0 _08032340: .4byte 0x0000012B _08032344: .4byte 0x0200B134 _08032348: .4byte 0x0200B0C0 _0803234C: adds r1, r4, #0 lsls r0, r1, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r4, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0xf mov r3, sp adds r0, r3, r1 movs r1, #0xc3 strh r1, [r0] ldr r3, _080323B4 @ =0x00000137 _08032366: adds r0, r2, r3 ldrb r0, [r0] cmp r0, #3 bhi _08032378 ldr r0, [r7] movs r2, #0xb3 lsls r2, r2, #3 adds r0, r0, r2 strh r1, [r0] _08032378: ldr r5, _080323B8 @ =0x020314E0 ldr r0, [r5] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0 bne _08032454 bl sub_C00 ldr r2, _080323BC @ =0x0200B0C0 ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] adds r1, r1, r2 adds r3, r0, r1 lsls r1, r4, #0x10 asrs r1, r1, #0x10 adds r0, r3, #0 bl __umodsi3 adds r3, r0, #0 ldr r1, [r5] lsls r0, r3, #1 add r0, sp ldrh r0, [r0] movs r4, #0xb3 lsls r4, r4, #3 adds r1, r1, r4 strh r0, [r1] b _08032454 .align 2, 0 _080323B4: .4byte 0x00000137 _080323B8: .4byte 0x020314E0 _080323BC: .4byte 0x0200B0C0 _080323C0: ldr r2, _08032470 @ =0x0000073D adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r6, #0 cmp r0, #3 bne _080323D2 movs r6, #1 _080323D2: bl sub_C00 ldr r2, _08032474 @ =0x0200B0C0 ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] adds r1, r1, r2 adds r3, r0, r1 ldr r4, [r7] movs r1, #0x97 lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r1, [r0, r2] adds r0, r3, #0 bl __umodsi3 adds r3, r0, #0 movs r5, #0 movs r1, #0x98 lsls r1, r1, #1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] lsls r6, r6, #0x10 cmp r0, r3 bhi _0803242A adds r4, r7, #0 adds r2, r1, #0 _0803240A: lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #7 bgt _0803242A ldr r0, [r4] lsls r1, r1, #1 adds r0, r0, r2 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, r3 bls _0803240A _0803242A: ldr r0, _08032478 @ =0x020314E0 ldr r2, [r0] ldr r3, _0803247C @ =0x08055A84 lsls r1, r5, #0x10 asrs r1, r1, #0xf asrs r0, r6, #0x10 lsls r0, r0, #4 adds r1, r1, r0 adds r0, r2, #0 adds r0, #0x35 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r1, r1, r0 adds r1, r1, r3 ldrh r0, [r1] movs r3, #0xb3 lsls r3, r3, #3 adds r2, r2, r3 _08032452: strh r0, [r2] _08032454: ldr r0, _08032478 @ =0x020314E0 ldr r0, [r0] movs r4, #0xb3 lsls r4, r4, #3 adds r1, r0, r4 ldrh r1, [r1] ldr r2, _08032480 @ =0x0000059C adds r0, r0, r2 strh r1, [r0] add sp, #0xc pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08032470: .4byte 0x0000073D _08032474: .4byte 0x0200B0C0 _08032478: .4byte 0x020314E0 _0803247C: .4byte 0x08055A84 _08032480: .4byte 0x0000059C thumb_func_start sub_32484 sub_32484: @ 0x08032484 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080324D4 @ =0x020314E0 ldr r1, [r0] movs r3, #0x97 lsls r3, r3, #1 adds r2, r1, r3 movs r1, #0 strh r1, [r2] movs r2, #0 ldr r4, _080324D8 @ =0x0200B0C0 mov sb, r4 mov ip, sb ldr r5, _080324DC @ =0x086AE5E0 mov sl, r5 _080324A8: lsls r2, r2, #0x10 asrs r1, r2, #0xf mov r0, ip ldrb r3, [r0, #4] movs r0, #0x34 muls r0, r3, r0 adds r1, r1, r0 ldr r4, _080324E0 @ =0x086A4A38 adds r1, r1, r4 ldrh r5, [r1] movs r4, #0 ldrsh r0, [r1, r4] mov r8, r2 cmp r0, #0x57 bne _080324F4 cmp r3, #0 bne _080324E4 mov r0, ip adds r0, #0xcd ldrb r0, [r0] b _080324E8 .align 2, 0 _080324D4: .4byte 0x020314E0 _080324D8: .4byte 0x0200B0C0 _080324DC: .4byte 0x086AE5E0 _080324E0: .4byte 0x086A4A38 _080324E4: ldr r1, _080324F0 @ =0x0200B18E ldrb r0, [r1] _080324E8: lsls r0, r0, #1 add r0, sl ldrh r3, [r0] b _0803257C .align 2, 0 _080324F0: .4byte 0x0200B18E _080324F4: mov r1, sb adds r1, #0x74 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #1 add r0, sl ldrh r3, [r0] movs r2, #0 ldr r7, _080325CC @ =0x086A3700 ldr r6, _080325D0 @ =0x086AE5E0 adds r4, r1, #0 _0803250A: lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r7 ldrb r5, [r0, #0x15] adds r0, r5, #0 cmp r0, #0xcc bgt _08032542 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r6 ldrh r0, [r0] lsls r1, r3, #0x10 lsls r0, r0, #0x10 cmp r1, r0 bge _08032532 lsrs r3, r0, #0x10 _08032532: lsls r0, r2, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0803250A _08032542: mov r4, r8 asrs r1, r4, #0xf mov r5, ip ldrb r2, [r5, #4] movs r0, #0x34 muls r0, r2, r0 adds r1, r1, r0 ldr r0, _080325D4 @ =0x086A4A38 adds r1, r1, r0 ldrh r5, [r1] ldr r1, _080325D8 @ =0x020314E0 ldr r0, [r1] movs r4, #0xbe lsls r4, r4, #3 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803257C lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #3 ldr r0, _080325CC @ =0x086A3700 adds r1, r1, r0 ldrb r0, [r1, #0x15] cmp r0, #0xcc bls _0803257C movs r3, #0 _0803257C: ldr r1, _080325D8 @ =0x020314E0 ldr r4, [r1] ldr r1, _080325DC @ =0x0000059E adds r0, r4, r1 ldrh r1, [r0] lsls r0, r5, #0x10 asrs r0, r0, #0x10 cmp r1, r0 bne _08032590 movs r3, #0 _08032590: movs r5, #0x97 lsls r5, r5, #1 adds r0, r4, r5 lsls r2, r3, #0x10 asrs r2, r2, #0x10 ldrh r1, [r0] adds r2, r2, r1 strh r2, [r0] mov r3, r8 asrs r1, r3, #0x10 lsls r3, r1, #1 adds r5, #2 adds r0, r4, r5 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x18 bgt _080325BC b _080324A8 _080325BC: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080325CC: .4byte 0x086A3700 _080325D0: .4byte 0x086AE5E0 _080325D4: .4byte 0x086A4A38 _080325D8: .4byte 0x020314E0 _080325DC: .4byte 0x0000059E thumb_func_start sub_325E0 sub_325E0: @ 0x080325E0 push {r4, r5, r6, lr} bl sub_C00 ldr r3, _08032600 @ =0x0200B0C0 ldr r1, [r3, #0x4c] ldr r2, [r3, #0x50] adds r1, r1, r2 adds r2, r0, r1 movs r0, #8 ldrsb r0, [r3, r0] cmp r0, #0 beq _08032604 adds r0, r2, #0 movs r1, #0x64 b _08032608 .align 2, 0 _08032600: .4byte 0x0200B0C0 _08032604: adds r0, r2, #0 movs r1, #0x32 _08032608: bl __umodsi3 adds r2, r0, #0 ldr r0, _08032650 @ =0x020314E0 ldr r3, [r0] ldr r4, _08032654 @ =0x0000059E adds r1, r3, r4 ldrh r1, [r1] adds r5, r0, #0 cmp r1, #0x9a bne _08032620 movs r2, #1 _08032620: cmp r2, #0 bne _08032630 movs r1, #0xbe lsls r1, r1, #3 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #4 bhi _08032640 _08032630: movs r2, #0x96 lsls r2, r2, #1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08032658 _08032640: ldr r0, [r5] movs r3, #0xb3 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0x9a strh r1, [r0] b _080326CC .align 2, 0 _08032650: .4byte 0x020314E0 _08032654: .4byte 0x0000059E _08032658: bl sub_C00 ldr r2, _080326E4 @ =0x0200B0C0 ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] adds r1, r1, r2 adds r2, r0, r1 ldr r4, [r5] movs r1, #0x97 lsls r1, r1, #1 adds r0, r4, r1 movs r3, #0 ldrsh r1, [r0, r3] adds r0, r2, #0 bl __umodsi3 adds r2, r0, #0 movs r6, #0 movs r1, #0x98 lsls r1, r1, #1 adds r0, r4, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, r2 bhi _080326AC adds r3, r1, #0 _0803268C: lsls r0, r6, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r6, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0x18 bgt _080326AC ldr r0, [r5] lsls r1, r1, #1 adds r0, r0, r3 adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, r2 bls _0803268C _080326AC: ldr r5, _080326E8 @ =0x020314E0 ldr r3, [r5] ldr r4, _080326EC @ =0x086A4A38 lsls r0, r6, #0x10 asrs r0, r0, #0xf ldr r1, _080326E4 @ =0x0200B0C0 ldrb r2, [r1, #4] movs r1, #0x34 muls r1, r2, r1 adds r0, r0, r1 adds r0, r0, r4 ldrh r0, [r0] movs r2, #0xb3 lsls r2, r2, #3 adds r3, r3, r2 strh r0, [r3] _080326CC: ldr r0, [r5] movs r3, #0xb3 lsls r3, r3, #3 adds r1, r0, r3 ldrh r1, [r1] ldr r4, _080326F0 @ =0x0000059E adds r0, r0, r4 strh r1, [r0] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080326E4: .4byte 0x0200B0C0 _080326E8: .4byte 0x020314E0 _080326EC: .4byte 0x086A4A38 _080326F0: .4byte 0x0000059E thumb_func_start sub_326F4 sub_326F4: @ 0x080326F4 push {r4, lr} ldr r4, _08032760 @ =0x020314E0 ldr r0, [r4] ldr r1, _08032764 @ =0x0000073D adds r0, r0, r1 movs r2, #0 movs r1, #2 strb r1, [r0] ldr r0, [r4] ldr r3, _08032768 @ =0x000001E5 adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] movs r2, #0xf3 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #1 strb r0, [r1] bl sub_1F2A4 bl sub_21B0C bl sub_1F59C bl sub_300D8 bl sub_30178 ldr r2, [r4] movs r3, #0xec lsls r3, r3, #1 adds r0, r2, r3 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] adds r3, #2 adds r0, r2, r3 strh r1, [r0] bl sub_30480 bl sub_304C8 bl sub_31144 bl sub_313A0 bl sub_2E6AC bl sub_31B30 pop {r4} pop {r0} bx r0 .align 2, 0 _08032760: .4byte 0x020314E0 _08032764: .4byte 0x0000073D _08032768: .4byte 0x000001E5 thumb_func_start sub_3276C sub_3276C: @ 0x0803276C push {lr} bl sub_19B90 bl sub_327C0 ldr r0, _080327B0 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _08032782 bl sub_328C8 _08032782: bl sub_32DF8 ldr r0, _080327B4 @ =0x020314E0 ldr r0, [r0] movs r2, #0xa7 lsls r2, r2, #2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _080327AC subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _080327AC ldr r0, _080327B8 @ =0x02032EE0 ldr r1, _080327BC @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _080327AC: pop {r0} bx r0 .align 2, 0 _080327B0: .4byte 0x0200B0C0 _080327B4: .4byte 0x020314E0 _080327B8: .4byte 0x02032EE0 _080327BC: .4byte 0x0000FFFF thumb_func_start sub_327C0 sub_327C0: @ 0x080327C0 push {r4, lr} bl sub_4F814 bl sub_1A0F4 bl sub_2CA9C ldr r4, _0803280C @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x59 bgt _080327E4 bl sub_304C8 bl sub_31498 _080327E4: ldr r2, [r4] movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08032814 movs r1, #0xd1 lsls r1, r1, #2 adds r0, r2, r1 ldr r0, [r0] ldr r1, _08032810 @ =0x00FFFF00 ands r0, r1 movs r1, #0xc0 lsls r1, r1, #2 cmp r0, r1 bne _08032814 movs r0, #0xe5 lsls r0, r0, #3 adds r1, r2, r0 movs r0, #1 b _0803281C .align 2, 0 _0803280C: .4byte 0x020314E0 _08032810: .4byte 0x00FFFF00 _08032814: movs r0, #0xe5 lsls r0, r0, #3 adds r1, r2, r0 movs r0, #0 _0803281C: strb r0, [r1] ldr r4, _080328C4 @ =0x020314E0 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x95 bgt _08032834 bl sub_2E6AC bl sub_313A0 _08032834: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xc3 bgt _08032848 bl sub_30178 bl sub_2F140 _08032848: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xc9 bgt _08032858 bl sub_2FCD0 _08032858: ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xdb bgt _08032868 bl sub_1F59C _08032868: bl sub_308DC ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x76 ble _08032880 bl sub_2F504 bl sub_30EB4 _08032880: bl sub_2CE80 ldr r0, [r4] adds r0, #0x68 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xa8 ble _08032894 bl sub_2D104 _08032894: bl sub_203CC bl sub_21B0C bl sub_1D128 bl sub_31B30 ldr r0, [r4] movs r1, #0xca lsls r1, r1, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080328BA bl sub_225F0 _080328BA: bl sub_472E4 pop {r4} pop {r0} bx r0 .align 2, 0 _080328C4: .4byte 0x020314E0 thumb_func_start sub_328C8 sub_328C8: @ 0x080328C8 push {lr} bl sub_300D8 bl sub_32968 bl sub_1F2A4 ldr r0, _0803290C @ =0x020314E0 ldr r0, [r0] movs r2, #0xc0 lsls r2, r2, #3 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _080328EA subs r0, #1 strh r0, [r1] _080328EA: bl sub_2F26C bl sub_2E67C bl sub_31144 ldr r0, _08032910 @ =0x0200B0C0 ldrb r1, [r0, #0xf] movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _08032906 bl sub_2F79C _08032906: pop {r0} bx r0 .align 2, 0 _0803290C: .4byte 0x020314E0 _08032910: .4byte 0x0200B0C0 thumb_func_start sub_32914 sub_32914: @ 0x08032914 push {lr} ldr r0, _08032938 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _0803295E ldr r0, _0803293C @ =0x020314E0 ldr r0, [r0] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _0803294C cmp r0, #3 bgt _08032940 cmp r0, #1 beq _08032946 b _08032956 .align 2, 0 _08032938: .4byte 0x0200B0C0 _0803293C: .4byte 0x020314E0 _08032940: cmp r0, #4 beq _08032952 b _08032956 _08032946: bl sub_32B74 b _08032956 _0803294C: bl sub_329B0 b _08032956 _08032952: bl sub_1C560 _08032956: ldr r0, _08032964 @ =0x020314E0 ldr r1, [r0] movs r0, #0x3c strh r0, [r1, #0x26] _0803295E: pop {r0} bx r0 .align 2, 0 _08032964: .4byte 0x020314E0 thumb_func_start sub_32968 sub_32968: @ 0x08032968 push {lr} ldr r2, _08032990 @ =0x020314E0 ldr r1, [r2] ldrh r0, [r1, #0x26] cmp r0, #0 beq _08032978 subs r0, #1 strh r0, [r1, #0x26] _08032978: ldr r0, [r2] adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _080329A0 cmp r0, #3 bgt _08032994 cmp r0, #1 beq _0803299A b _080329AA .align 2, 0 _08032990: .4byte 0x020314E0 _08032994: cmp r0, #4 beq _080329A6 b _080329AA _0803299A: bl sub_32BE4 b _080329AA _080329A0: bl sub_329F4 b _080329AA _080329A6: bl sub_1C5AC _080329AA: pop {r0} bx r0 thumb_func_start sub_329B0 sub_329B0: @ 0x080329B0 push {r4, lr} ldr r0, _080329E4 @ =0x020314E0 ldr r2, [r0] movs r3, #0 movs r0, #0xb4 strh r0, [r2, #0x28] movs r4, #0xdd lsls r4, r4, #1 adds r1, r2, r4 strh r0, [r1] ldr r0, _080329E8 @ =0x0007A120 str r0, [r2, #0x3c] ldr r0, _080329EC @ =0x0200B0C0 ldrh r1, [r0, #0x38] movs r1, #0xce strh r1, [r0, #0x38] ldrh r1, [r0, #0x3c] strh r3, [r0, #0x3c] ldr r0, _080329F0 @ =0x000005F7 adds r2, r2, r0 movs r0, #1 strb r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080329E4: .4byte 0x020314E0 _080329E8: .4byte 0x0007A120 _080329EC: .4byte 0x0200B0C0 _080329F0: .4byte 0x000005F7 thumb_func_start sub_329F4 sub_329F4: @ 0x080329F4 push {r4, r5, r6, r7, lr} ldr r6, _08032ABC @ =0x020314E0 ldr r2, [r6] ldrh r0, [r2, #0x28] adds r7, r0, #0 cmp r7, #0x18 bls _08032AD0 ldr r1, _08032AC0 @ =0x0000132C adds r0, r2, r1 ldr r0, [r0] movs r3, #0 movs r2, #1 strb r2, [r0] ldr r0, [r6] strb r2, [r0, #0x1f] ldr r4, [r6] ldrh r0, [r4, #0x28] subs r0, #1 strh r0, [r4, #0x28] adds r1, r4, r1 ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r2, [r1] movs r0, #0x3a strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xb2 strh r0, [r2, #0x12] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x38] ldrh r0, [r4, #0x28] cmp r0, #0x31 bhi _08032A62 adds r0, #1 strh r0, [r4, #0x28] _08032A62: ldr r0, [r6] ldr r4, _08032AC4 @ =0x000001A5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_1B140 ldr r0, [r6] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08032B5C movs r0, #0 adds r4, r6, #0 movs r6, #0 movs r5, #0xdb lsls r5, r5, #2 _08032A8A: ldr r1, [r4] lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r1, r1, r5 adds r1, r1, r2 movs r0, #0xa strb r0, [r1] ldr r1, [r4] lsls r3, r2, #1 ldr r7, _08032AC8 @ =0x0000036E adds r0, r1, r7 adds r0, r0, r3 strh r6, [r0] ldr r0, _08032ACC @ =0x0000036A adds r1, r1, r0 adds r1, r1, r2 movs r0, #4 strb r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _08032A8A b _08032B5C .align 2, 0 _08032ABC: .4byte 0x020314E0 _08032AC0: .4byte 0x0000132C _08032AC4: .4byte 0x000001A5 _08032AC8: .4byte 0x0000036E _08032ACC: .4byte 0x0000036A _08032AD0: cmp r7, #0 beq _08032ADA subs r0, #1 strh r0, [r2, #0x28] b _08032B5C _08032ADA: ldr r4, _08032B64 @ =0x0000132C adds r0, r2, r4 ldr r0, [r0] strb r7, [r0] ldr r0, [r6] strb r7, [r0, #0x1f] ldr r3, [r6] movs r2, #0 mov ip, r2 movs r5, #0x3c strh r5, [r3, #0x26] adds r1, r3, r4 ldr r2, [r1] movs r0, #0x60 strh r0, [r2, #0x30] ldr r2, [r1] movs r0, #0xc0 strh r0, [r2, #0x32] ldr r0, [r1] strh r5, [r0, #0x10] ldr r2, [r1] movs r0, #0xb4 strh r0, [r2, #0x12] ldr r0, [r1] strh r7, [r0, #6] ldr r7, _08032B68 @ =0x000005F7 adds r3, r3, r7 mov r0, ip strb r0, [r3] ldr r2, [r6] adds r4, r2, r4 ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #1 strh r0, [r1, #0x2a] adds r2, #0x25 mov r0, ip strb r0, [r2] movs r0, #0xc3 bl m4aSongNumStart ldr r1, [r6] ldr r2, _08032B6C @ =0x0000072E adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08032B5C ldr r3, _08032B70 @ =0x00000281 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08032B5C movs r0, #6 bl sub_19B64 _08032B5C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08032B64: .4byte 0x0000132C _08032B68: .4byte 0x000005F7 _08032B6C: .4byte 0x0000072E _08032B70: .4byte 0x00000281 thumb_func_start sub_32B74 sub_32B74: @ 0x08032B74 push {r4, r5, lr} ldr r4, _08032BD0 @ =0x020314E0 ldr r0, [r4] ldr r1, _08032BD4 @ =0x0000072F adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _08032B8E movs r0, #4 bl sub_19B64 _08032B8E: ldr r1, [r4] movs r3, #0 movs r2, #0 movs r0, #0x64 strh r0, [r1, #0x28] movs r5, #0xbd lsls r5, r5, #2 adds r1, r1, r5 movs r0, #2 strb r0, [r1] ldr r1, [r4] ldr r5, _08032BD8 @ =0x000005FC adds r0, r1, r5 strh r2, [r0] ldr r0, _08032BDC @ =0x000005FE adds r2, r1, r0 movs r0, #0x1e strh r0, [r2] subs r5, #1 adds r1, r1, r5 strb r3, [r1] ldr r1, [r4] ldr r0, _08032BE0 @ =0x0000C350 str r0, [r1, #0x3c] movs r0, #0xd5 bl m4aSongNumStart movs r0, #8 bl sub_11B0 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08032BD0: .4byte 0x020314E0 _08032BD4: .4byte 0x0000072F _08032BD8: .4byte 0x000005FC _08032BDC: .4byte 0x000005FE _08032BE0: .4byte 0x0000C350 thumb_func_start sub_32BE4 sub_32BE4: @ 0x08032BE4 push {r4, r5, r6, r7, lr} ldr r6, _08032C44 @ =0x020314E0 ldr r0, [r6] ldrh r7, [r0, #0x28] mov ip, r6 cmp r7, #0 bne _08032BF4 b _08032D54 _08032BF4: ldr r1, _08032C48 @ =0x000005F7 adds r0, r0, r1 movs r1, #0 movs r5, #1 strb r5, [r0] ldr r0, [r6] strb r5, [r0, #0x1f] ldr r3, [r6] ldrh r0, [r3, #0x28] subs r0, #1 strh r0, [r3, #0x28] ldr r2, _08032C4C @ =0x0000132C adds r4, r3, r2 ldr r0, [r4] strh r1, [r0, #0x30] ldr r0, [r4] strh r1, [r0, #0x32] ldr r0, [r4] strh r1, [r0, #6] ldrh r0, [r3, #0x28] cmp r0, #0x61 bls _08032C54 ldr r2, _08032C50 @ =0x000005FA adds r0, r3, r2 strb r5, [r0] ldr r0, [r6] movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 movs r1, #2 strb r1, [r0] ldr r0, [r6] ldr r1, _08032C4C @ =0x0000132C adds r0, r0, r1 ldr r2, [r0] movs r1, #0xb5 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xc3 b _08032D1A .align 2, 0 _08032C44: .4byte 0x020314E0 _08032C48: .4byte 0x000005F7 _08032C4C: .4byte 0x0000132C _08032C50: .4byte 0x000005FA _08032C54: cmp r0, #0x5e bls _08032C72 movs r0, #0xbd lsls r0, r0, #2 adds r1, r3, r0 movs r0, #3 strb r0, [r1] ldr r0, [r6] adds r0, r0, r2 ldr r2, [r0] movs r1, #0xb8 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xbb b _08032D1A _08032C72: cmp r0, #0x5b bls _08032C88 ldr r0, [r4] strb r5, [r0] ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #4 strb r1, [r0] b _08032D1C _08032C88: cmp r0, #0x53 bls _08032C98 movs r2, #0xbd lsls r2, r2, #2 adds r1, r3, r2 movs r0, #5 strb r0, [r1] b _08032D1C _08032C98: cmp r0, #0x22 bls _08032CA8 movs r0, #0xbd lsls r0, r0, #2 adds r1, r3, r0 movs r0, #6 strb r0, [r1] b _08032D1C _08032CA8: cmp r0, #0x1a bls _08032CB8 movs r2, #0xbd lsls r2, r2, #2 adds r1, r3, r2 movs r0, #7 strb r0, [r1] b _08032D1C _08032CB8: cmp r0, #0x12 bls _08032CC8 movs r0, #0xbd lsls r0, r0, #2 adds r1, r3, r0 movs r0, #8 strb r0, [r1] b _08032D1C _08032CC8: cmp r0, #0xa bls _08032CD8 movs r2, #0xbd lsls r2, r2, #2 adds r1, r3, r2 movs r0, #9 strb r0, [r1] b _08032D1C _08032CD8: cmp r0, #4 bls _08032CFE ldr r1, [r4] movs r0, #0 strb r0, [r1] ldr r0, [r6] movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] ldr r0, [r6] adds r0, r0, r2 ldr r2, [r0] movs r1, #0xb5 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xc3 b _08032D1A _08032CFE: ldr r0, [r6] movs r1, #0xbd lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0xb strb r1, [r0] ldr r0, [r6] ldr r2, _08032D50 @ =0x0000132C adds r0, r0, r2 ldr r2, [r0] movs r1, #0xb0 strh r1, [r2, #0x10] ldr r1, [r0] movs r0, #0xca _08032D1A: strh r0, [r1, #0x12] _08032D1C: mov r3, ip ldr r1, [r3] ldr r0, _08032D50 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r3, #0x12 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] b _08032DDA .align 2, 0 _08032D50: .4byte 0x0000132C _08032D54: movs r3, #0xbd lsls r3, r3, #2 adds r0, r0, r3 strb r7, [r0] ldr r0, [r6] strb r7, [r0, #0x1f] ldr r1, [r6] movs r5, #0 movs r0, #0x3c strh r0, [r1, #0x26] ldr r4, _08032DE0 @ =0x0000132C adds r1, r1, r4 ldr r0, [r1] strh r7, [r0, #6] ldr r2, [r1] ldr r0, _08032DE4 @ =0x0000FF9A strh r0, [r2, #0x30] ldr r1, [r1] movs r0, #0xc8 strh r0, [r1, #0x32] movs r0, #7 bl sub_11B0 ldr r2, [r6] adds r4, r2, r4 ldr r0, [r4] strh r7, [r0, #6] ldr r1, [r4] movs r0, #0xab strh r0, [r1, #0x10] ldr r1, [r4] movs r0, #0xd4 strh r0, [r1, #0x12] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r3, #0x12 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] adds r2, #0x25 strb r5, [r2] ldr r0, [r6] ldr r1, _08032DE8 @ =0x000005F7 adds r0, r0, r1 strb r5, [r0] movs r0, #0xd6 bl m4aSongNumStart ldr r0, [r6] ldr r2, _08032DEC @ =0x000005FE adds r1, r0, r2 strh r7, [r1] ldr r3, _08032DF0 @ =0x000005FB adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r6] ldr r1, _08032DF4 @ =0x000005FA adds r0, r0, r1 strb r5, [r0] _08032DDA: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08032DE0: .4byte 0x0000132C _08032DE4: .4byte 0x0000FF9A _08032DE8: .4byte 0x000005F7 _08032DEC: .4byte 0x000005FE _08032DF0: .4byte 0x000005FB _08032DF4: .4byte 0x000005FA thumb_func_start sub_32DF8 sub_32DF8: @ 0x08032DF8 push {r4, r5, lr} ldr r0, _08032F28 @ =0x020314E0 ldr r2, [r0] ldrb r1, [r2, #4] adds r5, r0, #0 cmp r1, #0 beq _08032E90 movs r1, #0xe2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0 bne _08032E3A movs r3, #0xf1 lsls r3, r3, #1 adds r1, r2, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 beq _08032E3A subs r3, #0x22 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _08032E3A ldr r3, _08032F2C @ =0x0000061C adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08032E3A strb r0, [r1] _08032E3A: ldr r0, [r5] movs r2, #0xe2 lsls r2, r2, #3 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] adds r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _08032F30 @ =0x00000712 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] adds r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #6 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] adds r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #7 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08032E90: ldr r1, [r5] ldrb r0, [r1, #5] cmp r0, #0 beq _08032F22 movs r2, #0xe2 lsls r2, r2, #1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 bne _08032ECE movs r3, #0xf1 lsls r3, r3, #1 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 beq _08032ECE subs r3, #0x22 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0 bne _08032ECE ldr r3, _08032F2C @ =0x0000061C adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08032ECE movs r0, #1 strb r0, [r2] _08032ECE: ldr r0, [r5] ldr r2, _08032F34 @ =0x00000713 adds r1, r0, r2 movs r4, #0 ldrsb r4, [r1, r4] subs r2, #1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] ldr r3, _08032F38 @ =0x00000711 adds r1, r0, r3 ldrb r1, [r1] adds r0, r0, r2 strb r1, [r0] ldr r0, [r5] subs r2, #2 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r1, r0, r3 movs r4, #0 ldrsb r4, [r1, r4] subs r3, #1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r2, #8 adds r1, r0, r2 ldrb r1, [r1] adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r0, r0, r2 strb r4, [r0] _08032F22: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08032F28: .4byte 0x020314E0 _08032F2C: .4byte 0x0000061C _08032F30: .4byte 0x00000712 _08032F34: .4byte 0x00000713 _08032F38: .4byte 0x00000711 thumb_func_start sub_32F3C sub_32F3C: @ 0x08032F3C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r3, _080330F0 @ =0x020314E0 ldr r0, [r3] movs r5, #0 movs r6, #0 strh r6, [r0, #0x18] strb r5, [r0, #0x17] ldr r0, [r3] strb r5, [r0, #0x13] ldr r0, [r3] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #1 mov r8, r2 mov r4, r8 strb r4, [r0] ldr r2, [r3] adds r4, r2, #0 adds r4, #0x6c movs r7, #0xe1 lsls r7, r7, #5 adds r0, r7, #0 ldrh r1, [r4] adds r0, r0, r1 ldr r7, _080330F4 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r6, [r4] ldr r0, _080330F8 @ =0x00000383 adds r2, r2, r0 strb r5, [r2] ldr r0, [r3] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r2, _080330FC @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] mov r4, r8 strb r4, [r0] ldr r0, [r3] adds r7, #0xef adds r0, r0, r7 strb r5, [r0] ldr r0, [r3] ldr r1, _08033100 @ =0x00000386 adds r0, r0, r1 strb r5, [r0] ldr r0, [r3] ldr r2, _08033104 @ =0x00000387 adds r0, r0, r2 strb r5, [r0] ldr r0, [r3] ldr r4, _08033108 @ =0x00000392 adds r1, r0, r4 strh r6, [r1] adds r7, #0xf adds r1, r0, r7 strh r6, [r1] ldr r1, _0803310C @ =0x00000396 adds r0, r0, r1 strb r5, [r0] movs r1, #0 adds r6, r3, #0 adds r5, r6, #0 movs r4, #0 _08032FCC: ldr r0, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r3, _08033110 @ =0x00000397 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r7, _08033114 @ =0x0000039A adds r0, r0, r7 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r1, _08033118 @ =0x0000039D adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r7, #9 adds r0, r0, r7 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r1, #9 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #9 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r7, #9 adds r0, r0, r7 adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] lsls r3, r2, #1 adds r7, #4 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] adds r7, #6 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] adds r7, #6 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] lsls r0, r2, #2 adds r1, r1, r0 movs r3, #0xf1 lsls r3, r3, #2 adds r0, r1, r3 strh r4, [r0] adds r7, #0xa adds r0, r1, r7 strh r4, [r0] adds r3, #0xc adds r0, r1, r3 strh r4, [r0] adds r7, #0xc adds r1, r1, r7 strh r4, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _08032FCC ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r6] adds r3, #0xe adds r0, r0, r3 strb r2, [r0] ldr r0, [r6] ldr r4, _0803311C @ =0x000003DF adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r7, #0xe adds r0, r0, r7 strb r2, [r0] ldr r1, [r6] adds r3, #4 adds r0, r1, r3 movs r3, #0 strh r2, [r0] adds r4, #5 adds r0, r1, r4 strh r2, [r0] adds r7, #6 adds r0, r1, r7 strh r2, [r0] adds r4, #4 adds r0, r1, r4 strh r2, [r0] adds r7, #4 adds r0, r1, r7 strh r2, [r0] adds r4, #4 adds r0, r1, r4 strh r2, [r0] adds r7, #4 adds r0, r1, r7 strh r2, [r0] adds r4, #4 adds r0, r1, r4 strh r2, [r0] adds r7, #4 adds r0, r1, r7 strh r2, [r0] strb r3, [r1, #0x1a] bl sub_336E0 bl sub_340EC movs r0, #0x25 bl m4aSongNumStart ldr r1, _08033120 @ =0x040000D4 ldr r0, _08033124 @ =0x081B36A4 str r0, [r1] ldr r0, _08033128 @ =0x05000320 str r0, [r1, #4] ldr r0, _0803312C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080330F0: .4byte 0x020314E0 _080330F4: .4byte 0x00000296 _080330F8: .4byte 0x00000383 _080330FC: .4byte 0x0000132C _08033100: .4byte 0x00000386 _08033104: .4byte 0x00000387 _08033108: .4byte 0x00000392 _0803310C: .4byte 0x00000396 _08033110: .4byte 0x00000397 _08033114: .4byte 0x0000039A _08033118: .4byte 0x0000039D _0803311C: .4byte 0x000003DF _08033120: .4byte 0x040000D4 _08033124: .4byte 0x081B36A4 _08033128: .4byte 0x05000320 _0803312C: .4byte 0x80000010 thumb_func_start sub_33130 sub_33130: @ 0x08033130 push {r4, r5, r6, r7, lr} ldr r0, _0803314C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _08033142 b _080333C4 _08033142: lsls r0, r0, #2 ldr r1, _08033150 @ =_08033154 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803314C: .4byte 0x020314E0 _08033150: .4byte _08033154 _08033154: @ jump table .4byte _08033170 @ case 0 .4byte _08033208 @ case 1 .4byte _08033254 @ case 2 .4byte _080332A8 @ case 3 .4byte _080332E0 @ case 4 .4byte _08033344 @ case 5 .4byte _080333B4 @ case 6 _08033170: ldr r5, _080331C4 @ =0x020314E0 ldr r0, [r5] ldr r1, _080331C8 @ =0x000005F7 adds r0, r0, r1 movs r6, #0 movs r3, #1 strb r3, [r0] ldr r4, [r5] ldrh r0, [r4, #0x18] cmp r0, #0x77 bhi _080331DC movs r1, #0x18 bl __udivsi3 ldr r2, _080331CC @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #5 ldr r0, _080331D0 @ =0x082EE0E0 adds r1, r1, r0 str r1, [r2] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r0, _080331D4 @ =0x80000050 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r0, [r4, #0x18] movs r1, #5 bl __udivsi3 ldr r2, _080331D8 @ =0x0000FFE8 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] b _080333C4 .align 2, 0 _080331C4: .4byte 0x020314E0 _080331C8: .4byte 0x000005F7 _080331CC: .4byte 0x040000D4 _080331D0: .4byte 0x082EE0E0 _080331D4: .4byte 0x80000050 _080331D8: .4byte 0x0000FFE8 _080331DC: adds r0, r4, #0 adds r0, #0xe6 strh r6, [r0] ldr r1, _08033204 @ =0x0200B0C0 movs r7, #0x80 lsls r7, r7, #4 adds r0, r1, r7 movs r2, #1 strh r3, [r0] adds r7, #0xb8 adds r0, r1, r7 strh r3, [r0] movs r0, #0x97 lsls r0, r0, #4 adds r1, r1, r0 strh r3, [r1] strb r2, [r4, #0x13] ldr r0, [r5] strh r6, [r0, #0x18] b _080333C4 .align 2, 0 _08033204: .4byte 0x0200B0C0 _08033208: ldr r2, _0803323C @ =0x020314E0 ldr r0, [r2] ldr r1, _08033240 @ =0x00000386 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08033228 ldr r1, _08033244 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _08033248 @ =0x00001C10 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _0803324C @ =0x0000030D strh r0, [r1, #0x3a] _08033228: ldr r0, [r2] ldr r2, _08033250 @ =0x00000387 adds r0, r0, r2 movs r1, #1 strb r1, [r0] bl sub_336E0 bl sub_340EC b _080333C4 .align 2, 0 _0803323C: .4byte 0x020314E0 _08033240: .4byte 0x00000386 _08033244: .4byte 0x0200B0C0 _08033248: .4byte 0x00001C10 _0803324C: .4byte 0x0000030D _08033250: .4byte 0x00000387 _08033254: ldr r3, _08033290 @ =0x020314E0 ldr r1, [r3] movs r0, #3 strb r0, [r1, #0x13] ldr r2, _08033294 @ =0x0200B0C0 movs r5, #0xc5 lsls r5, r5, #4 adds r0, r2, r5 movs r4, #0 movs r1, #1 strh r1, [r0] ldr r7, _08033298 @ =0x00000D08 adds r0, r2, r7 strh r1, [r0] ldr r0, _0803329C @ =0x00000B98 adds r2, r2, r0 strh r1, [r2] ldr r0, [r3] ldr r1, _080332A0 @ =0x00000387 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] ldr r2, _080332A4 @ =0x00000385 adds r0, r0, r2 strb r4, [r0] movs r0, #0x26 bl m4aSongNumStart b _080333C4 .align 2, 0 _08033290: .4byte 0x020314E0 _08033294: .4byte 0x0200B0C0 _08033298: .4byte 0x00000D08 _0803329C: .4byte 0x00000B98 _080332A0: .4byte 0x00000387 _080332A4: .4byte 0x00000385 _080332A8: ldr r0, _080332D0 @ =0x020314E0 ldr r0, [r0] ldr r5, _080332D4 @ =0x00000386 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080332CA ldr r1, _080332D8 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _080332DC @ =0x00001C10 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] movs r0, #0x80 lsls r0, r0, #5 strh r0, [r1, #0x3a] _080332CA: bl sub_34450 b _080333C4 .align 2, 0 _080332D0: .4byte 0x020314E0 _080332D4: .4byte 0x00000386 _080332D8: .4byte 0x0200B0C0 _080332DC: .4byte 0x00001C10 _080332E0: ldr r3, _080332F0 @ =0x020314E0 ldr r2, [r3] ldrh r0, [r2, #0x18] cmp r0, #0x77 bhi _080332F4 adds r0, #1 strh r0, [r2, #0x18] b _080333C4 .align 2, 0 _080332F0: .4byte 0x020314E0 _080332F4: movs r1, #0 movs r0, #5 strb r0, [r2, #0x13] ldr r3, [r3] strh r1, [r3, #0x18] ldr r0, _08033330 @ =0x0200B0C0 movs r7, #0xe9 lsls r7, r7, #3 adds r1, r0, r7 movs r2, #1 strh r2, [r1] movs r1, #0xd2 lsls r1, r1, #3 adds r0, r0, r1 strh r2, [r0] ldr r1, _08033334 @ =0x040000D4 ldr r0, _08033338 @ =0x08138834 str r0, [r1] ldr r0, _0803333C @ =0x06015800 str r0, [r1, #4] ldr r0, _08033340 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0xe5 lsls r2, r2, #2 adds r3, r3, r2 movs r0, #0x88 strh r0, [r3] b _080333C4 .align 2, 0 _08033330: .4byte 0x0200B0C0 _08033334: .4byte 0x040000D4 _08033338: .4byte 0x08138834 _0803333C: .4byte 0x06015800 _08033340: .4byte 0x80001000 _08033344: bl sub_351A8 ldr r4, _0803338C @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _08033356 movs r0, #0xb5 strh r0, [r1, #0x18] _08033356: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803336C movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08033390 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08033394 @ =0x01C9C380 str r0, [r1, #0x3c] _0803336C: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _08033398 cmp r0, #0x14 bne _08033382 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08033382: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _080333C4 .align 2, 0 _0803338C: .4byte 0x020314E0 _08033390: .4byte 0x00061A80 _08033394: .4byte 0x01C9C380 _08033398: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r5, _080333B0 @ =0x00000283 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _080333C4 .align 2, 0 _080333B0: .4byte 0x00000283 _080333B4: bl sub_351A8 ldr r0, _0803341C @ =0x020314E0 ldr r0, [r0] ldr r7, _08033420 @ =0x00000386 adds r0, r0, r7 movs r1, #1 strb r1, [r0] _080333C4: ldr r0, _0803341C @ =0x020314E0 ldr r1, [r0] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080333FC ldr r5, _08033424 @ =0x00000296 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #1 bhi _080333FC ldr r4, _08033428 @ =0x0200B0C0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080333FC bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _080333FC: ldr r0, _0803341C @ =0x020314E0 ldr r0, [r0] ldr r7, _08033420 @ =0x00000386 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08033412 bl sub_350F0 _08033412: bl sub_472E4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803341C: .4byte 0x020314E0 _08033420: .4byte 0x00000386 _08033424: .4byte 0x00000296 _08033428: .4byte 0x0200B0C0 thumb_func_start sub_3342C sub_3342C: @ 0x0803342C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x40 ldr r5, _080336B0 @ =0x020314E0 ldr r3, [r5] lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _080336B4 @ =0x00000397 adds r2, r2, r3 mov ip, r2 adds r2, r2, r0 str r2, [sp, #4] ldrb r4, [r2] str r4, [sp, #8] ldr r4, _080336B8 @ =0x0000039A adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0xc] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x10] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x14] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x18] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x1c] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x20] adds r4, #3 adds r2, r3, r4 adds r2, r2, r0 ldrb r2, [r2] str r2, [sp, #0x24] lsls r2, r0, #1 mov r8, r2 adds r4, #4 adds r2, r3, r4 add r2, r8 ldrh r2, [r2] str r2, [sp, #0x28] adds r4, #6 adds r2, r3, r4 add r2, r8 ldrh r2, [r2] str r2, [sp, #0x2c] adds r4, #6 adds r2, r3, r4 add r2, r8 ldrh r2, [r2] str r2, [sp, #0x30] lsls r6, r0, #2 adds r3, r3, r6 movs r2, #0xf1 lsls r2, r2, #2 adds r2, r3, r2 str r2, [sp, #0x3c] ldr r4, _080336BC @ =0xFFFF0000 mov sb, r4 ldr r4, _080336C0 @ =0x000003C6 adds r2, r3, r4 ldrh r2, [r2] lsls r2, r2, #0x10 ldr r4, _080336C4 @ =0x0000FFFF mov sl, r4 ldr r4, [sp, #0x3c] ldrh r4, [r4] orrs r4, r2 str r4, [sp] movs r4, #0xf4 lsls r4, r4, #2 adds r2, r3, r4 ldrh r2, [r2] mov r4, sb ands r7, r4 orrs r7, r2 ldr r2, _080336C8 @ =0x000003D2 adds r3, r3, r2 ldrh r2, [r3] lsls r2, r2, #0x10 mov r3, sl ands r7, r3 orrs r7, r2 lsls r1, r1, #0x10 asrs r1, r1, #0x10 mov r4, ip adds r2, r4, r1 ldrb r2, [r2] ldr r3, [sp, #4] strb r2, [r3] ldr r2, [r5] ldr r4, _080336B8 @ =0x0000039A adds r2, r2, r4 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] ldr r3, _080336CC @ =0x0000039D adds r2, r2, r3 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] adds r4, #6 adds r2, r2, r4 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] ldr r3, _080336D0 @ =0x000003A3 adds r2, r2, r3 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] adds r4, #6 adds r2, r2, r4 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] ldr r3, _080336D4 @ =0x000003A9 adds r2, r2, r3 adds r3, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r3] ldr r2, [r5] adds r4, #6 adds r2, r2, r4 adds r0, r2, r0 adds r2, r2, r1 ldrb r2, [r2] strb r2, [r0] ldr r4, [r5] movs r2, #0xec lsls r2, r2, #2 adds r0, r4, r2 mov r3, r8 adds r2, r0, r3 lsls r3, r1, #1 mov sb, r3 add r0, sb ldrh r0, [r0] strh r0, [r2] ldr r2, _080336D8 @ =0x000003B6 adds r0, r4, r2 mov r3, r8 adds r2, r0, r3 add r0, sb ldrh r0, [r0] strh r0, [r2] movs r2, #0xef lsls r2, r2, #2 adds r0, r4, r2 add r8, r0 add r0, sb ldrh r0, [r0] mov r3, r8 strh r0, [r3] adds r6, r4, r6 lsls r0, r1, #2 mov r8, r0 adds r2, r4, r0 movs r3, #0xf1 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] mov sl, r0 adds r0, r6, r3 mov r3, sl strh r3, [r0] ldr r3, _080336C0 @ =0x000003C6 adds r0, r2, r3 ldrh r0, [r0] mov sl, r0 adds r0, r6, r3 mov r3, sl strh r3, [r0] movs r3, #0xf4 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] mov sl, r0 adds r0, r6, r3 mov r3, sl strh r3, [r0] ldr r0, _080336C8 @ =0x000003D2 adds r2, r2, r0 ldrh r0, [r2] ldr r2, _080336C8 @ =0x000003D2 adds r6, r6, r2 strh r0, [r6] ldr r3, _080336B4 @ =0x00000397 adds r4, r4, r3 adds r4, r4, r1 mov r0, sp ldrb r0, [r0, #8] strb r0, [r4] ldr r0, [r5] subs r2, #0x38 adds r0, r0, r2 adds r0, r0, r1 mov r3, sp ldrb r3, [r3, #0xc] strb r3, [r0] ldr r0, [r5] ldr r4, _080336CC @ =0x0000039D adds r0, r0, r4 adds r0, r0, r1 mov r2, sp ldrb r2, [r2, #0x10] strb r2, [r0] ldr r0, [r5] movs r3, #0xe8 lsls r3, r3, #2 adds r0, r0, r3 adds r0, r0, r1 mov r4, sp ldrb r4, [r4, #0x14] strb r4, [r0] ldr r0, [r5] ldr r2, _080336D0 @ =0x000003A3 adds r0, r0, r2 adds r0, r0, r1 mov r3, sp ldrb r3, [r3, #0x18] strb r3, [r0] ldr r0, [r5] ldr r4, _080336DC @ =0x000003A6 adds r0, r0, r4 adds r0, r0, r1 mov r2, sp ldrb r2, [r2, #0x1c] strb r2, [r0] ldr r0, [r5] ldr r3, _080336D4 @ =0x000003A9 adds r0, r0, r3 adds r0, r0, r1 add r4, sp, #0x20 ldrb r4, [r4] strb r4, [r0] ldr r0, [r5] movs r2, #0xeb lsls r2, r2, #2 adds r0, r0, r2 adds r0, r0, r1 add r3, sp, #0x24 ldrb r3, [r3] strb r3, [r0] ldr r0, [r5] movs r4, #0xec lsls r4, r4, #2 adds r1, r0, r4 add r1, sb mov r2, sp ldrh r2, [r2, #0x28] strh r2, [r1] ldr r3, _080336D8 @ =0x000003B6 adds r1, r0, r3 add r1, sb mov r4, sp ldrh r4, [r4, #0x2c] strh r4, [r1] movs r1, #0xef lsls r1, r1, #2 adds r1, r0, r1 str r1, [sp, #0x34] add r1, sb mov r2, sp ldrh r2, [r2, #0x30] strh r2, [r1] add r0, r8 adds r3, #0xe adds r1, r0, r3 mov r4, sp ldrh r4, [r4] strh r4, [r1] ldr r2, [sp] asrs r1, r2, #0x10 adds r3, #2 adds r2, r0, r3 strh r1, [r2] movs r4, #0xf4 lsls r4, r4, #2 adds r1, r0, r4 strh r7, [r1] asrs r1, r7, #0x10 ldr r2, _080336C8 @ =0x000003D2 adds r0, r0, r2 strh r1, [r0] add sp, #0x40 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080336B0: .4byte 0x020314E0 _080336B4: .4byte 0x00000397 _080336B8: .4byte 0x0000039A _080336BC: .4byte 0xFFFF0000 _080336C0: .4byte 0x000003C6 _080336C4: .4byte 0x0000FFFF _080336C8: .4byte 0x000003D2 _080336CC: .4byte 0x0000039D _080336D0: .4byte 0x000003A3 _080336D4: .4byte 0x000003A9 _080336D8: .4byte 0x000003B6 _080336DC: .4byte 0x000003A6 thumb_func_start sub_336E0 sub_336E0: @ 0x080336E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 movs r4, #1 movs r0, #0 str r0, [sp] movs r7, #0 ldr r0, _0803377C @ =0x020314E0 ldr r3, [r0] ldr r2, _08033780 @ =0x00000385 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #0x12 ble _08033750 movs r2, #0 ldr r5, _08033784 @ =0x000003A6 adds r1, r3, r5 _0803370C: lsls r0, r2, #0x10 asrs r2, r0, #0x10 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803371E movs r4, #0 _0803371E: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0803370C cmp r4, #0 beq _08033750 ldr r6, _0803377C @ =0x020314E0 ldr r1, [r6] movs r2, #0 movs r0, #2 strb r0, [r1, #0x13] ldr r0, _08033788 @ =0x0200B0C0 movs r3, #0x80 lsls r3, r3, #4 adds r1, r0, r3 strh r2, [r1] ldr r4, _0803378C @ =0x000008B8 adds r1, r0, r4 strh r2, [r1] movs r5, #0x97 lsls r5, r5, #4 adds r0, r0, r5 strh r2, [r0] _08033750: movs r2, #0 _08033752: ldr r6, _0803377C @ =0x020314E0 ldr r0, [r6] lsls r2, r2, #0x10 asrs r1, r2, #0x10 movs r3, #0xe8 lsls r3, r3, #2 adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 str r2, [sp, #4] cmp r0, #9 bls _08033772 bl _08033FD8 _08033772: lsls r0, r0, #2 ldr r1, _08033790 @ =_08033794 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803377C: .4byte 0x020314E0 _08033780: .4byte 0x00000385 _08033784: .4byte 0x000003A6 _08033788: .4byte 0x0200B0C0 _0803378C: .4byte 0x000008B8 _08033790: .4byte _08033794 _08033794: @ jump table .4byte _080337BC @ case 0 .4byte _0803394C @ case 1 .4byte _08033A20 @ case 2 .4byte _08033B4C @ case 3 .4byte _08033C7C @ case 4 .4byte _08033D28 @ case 5 .4byte _08033DF4 @ case 6 .4byte _08033E70 @ case 7 .4byte _08033EF0 @ case 8 .4byte _08033F90 @ case 9 _080337BC: ldr r4, _080338E0 @ =0x020314E0 ldr r1, [r4] ldr r5, _080338E4 @ =0x00000385 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 ble _080337D0 b _08033910 _080337D0: ldr r6, _080338E8 @ =0x00000396 adds r1, r1, r6 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 ble _080337E0 b _08033910 _080337E0: adds r0, r2, #1 movs r2, #0 mov sl, r2 strb r0, [r1] ldr r1, [r4] ldr r3, [sp, #4] asrs r6, r3, #0x10 movs r4, #0xe8 lsls r4, r4, #2 adds r1, r1, r4 adds r1, r1, r6 movs r0, #1 strb r0, [r1] ldr r5, _080338E0 @ =0x020314E0 ldr r0, [r5] ldr r1, _080338EC @ =0x000003A3 adds r0, r0, r1 adds r0, r0, r6 mov r2, sl strb r2, [r0] ldr r0, [r5] lsls r3, r6, #1 mov r8, r3 adds r4, #0x10 adds r0, r0, r4 add r0, r8 movs r7, #0 mov r5, sl strh r5, [r0] bl sub_C00 ldr r1, _080338E0 @ =0x020314E0 ldr r4, [r1] lsls r5, r6, #2 adds r4, r4, r5 movs r1, #0xaf lsls r1, r1, #3 bl __umodsi3 ldr r2, _080338F0 @ =0xFFFFFD44 adds r0, r0, r2 movs r3, #0xf1 lsls r3, r3, #2 adds r4, r4, r3 strh r0, [r4] bl sub_C00 ldr r1, _080338E0 @ =0x020314E0 ldr r4, [r1] adds r4, r4, r5 movs r1, #9 bl __umodsi3 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #4 ldr r2, _080338F4 @ =0x000003C6 mov sb, r2 add r4, sb strh r1, [r4] bl sub_C00 ldr r3, _080338E0 @ =0x020314E0 ldr r4, [r3] movs r1, #0xef lsls r1, r1, #2 adds r5, r4, r1 add r5, r8 adds r1, #0x2c bl __umodsi3 adds r0, #0xc8 strh r0, [r5] ldr r2, _080338F8 @ =0x000003A6 adds r4, r4, r2 adds r4, r4, r6 strb r7, [r4] ldr r3, _080338E0 @ =0x020314E0 ldr r0, [r3] ldr r4, _080338FC @ =0x000003A9 adds r0, r0, r4 adds r0, r0, r6 strb r7, [r0] movs r5, #4 str r5, [sp] movs r7, #4 ldr r0, [r3] ldr r6, _08033900 @ =0x000003B6 adds r0, r0, r6 add r0, r8 mov r1, sl strh r1, [r0] ldr r0, _08033904 @ =0x02032F20 ldr r1, _08033908 @ =0x086A1588 bl MPlayStart movs r5, #2 mov r8, sb _080338A4: ldr r0, _080338E0 @ =0x020314E0 ldr r2, [r0] lsls r0, r5, #0x10 asrs r4, r0, #0x10 lsls r1, r4, #2 adds r1, r2, r1 add r1, r8 subs r3, r4, #1 lsls r0, r3, #2 adds r2, r2, r0 add r2, r8 movs r6, #0 ldrsh r1, [r1, r6] movs r6, #0 ldrsh r0, [r2, r6] cmp r1, r0 ble _080338D2 lsls r1, r3, #0x10 asrs r1, r1, #0x10 adds r0, r4, #0 bl sub_3342C movs r5, #3 _080338D2: lsls r0, r5, #0x10 ldr r1, _0803390C @ =0xFFFF0000 adds r0, r0, r1 lsrs r5, r0, #0x10 cmp r0, #0 bgt _080338A4 b _08033FD8 .align 2, 0 _080338E0: .4byte 0x020314E0 _080338E4: .4byte 0x00000385 _080338E8: .4byte 0x00000396 _080338EC: .4byte 0x000003A3 _080338F0: .4byte 0xFFFFFD44 _080338F4: .4byte 0x000003C6 _080338F8: .4byte 0x000003A6 _080338FC: .4byte 0x000003A9 _08033900: .4byte 0x000003B6 _08033904: .4byte 0x02032F20 _08033908: .4byte 0x086A1588 _0803390C: .4byte 0xFFFF0000 _08033910: ldr r0, _08033940 @ =0x020314E0 ldr r2, [r0] ldr r3, [sp, #4] asrs r4, r3, #0x10 lsls r1, r4, #2 adds r1, r2, r1 movs r5, #0xf1 lsls r5, r5, #2 adds r3, r1, r5 movs r5, #0 movs r0, #0 strh r0, [r3] ldr r6, _08033944 @ =0x000003C6 adds r1, r1, r6 movs r0, #0x78 strh r0, [r1] ldr r0, _08033948 @ =0x000003A6 adds r2, r2, r0 adds r2, r2, r4 strb r5, [r2] bl sub_C00 b _08033FD8 .align 2, 0 _08033940: .4byte 0x020314E0 _08033944: .4byte 0x000003C6 _08033948: .4byte 0x000003A6 _0803394C: ldr r1, _08033980 @ =0x020314E0 ldr r2, [r1] ldr r3, [sp, #4] asrs r4, r3, #0x10 lsls r1, r4, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r2, r5 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0x13 bhi _08033988 adds r0, #1 strh r0, [r1] ldr r6, _08033984 @ =0x000003A6 adds r2, r2, r6 adds r2, r2, r4 ldrh r0, [r1] movs r1, #3 ands r0, r1 lsrs r0, r0, #1 strb r0, [r2] movs r0, #4 str r0, [sp] movs r7, #4 b _08033FD8 .align 2, 0 _08033980: .4byte 0x020314E0 _08033984: .4byte 0x000003A6 _08033988: ldr r0, _080339B0 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 beq _080339BC movs r3, #0xe8 lsls r3, r3, #2 adds r1, r2, r3 adds r1, r1, r4 movs r2, #0 movs r0, #2 strb r0, [r1] ldr r5, _080339B4 @ =0x020314E0 ldr r0, [r5] ldr r6, _080339B8 @ =0x000003A3 adds r0, r0, r6 adds r0, r0, r4 strb r2, [r0] b _080339D6 .align 2, 0 _080339B0: .4byte 0x0200B0C0 _080339B4: .4byte 0x020314E0 _080339B8: .4byte 0x000003A3 _080339BC: movs r1, #0xe8 lsls r1, r1, #2 adds r0, r2, r1 adds r0, r0, r4 movs r1, #3 strb r1, [r0] ldr r2, _08033A0C @ =0x020314E0 ldr r0, [r2] ldr r3, _08033A10 @ =0x000003A3 adds r0, r0, r3 adds r0, r0, r4 movs r1, #7 strb r1, [r0] _080339D6: ldr r4, _08033A0C @ =0x020314E0 ldr r2, [r4] ldr r5, [sp, #4] asrs r3, r5, #0x10 lsls r1, r3, #1 movs r6, #0xec lsls r6, r6, #2 adds r0, r2, r6 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r0, _08033A14 @ =0x000003A6 adds r2, r2, r0 adds r2, r2, r3 movs r1, #1 strb r1, [r2] ldr r0, [r4] ldr r2, _08033A18 @ =0x000003A9 adds r0, r0, r2 adds r0, r0, r3 strb r1, [r0] ldr r2, _08033A1C @ =0x086AE5EC ldr r0, [r4] ldr r4, _08033A10 @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r3 b _08033FC2 .align 2, 0 _08033A0C: .4byte 0x020314E0 _08033A10: .4byte 0x000003A3 _08033A14: .4byte 0x000003A6 _08033A18: .4byte 0x000003A9 _08033A1C: .4byte 0x086AE5EC _08033A20: ldr r6, _08033AA4 @ =0x020314E0 ldr r5, [r6] ldr r0, [sp, #4] asrs r4, r0, #0x10 lsls r7, r4, #1 ldr r2, _08033AA8 @ =0x000003B6 adds r1, r5, r2 adds r1, r1, r7 ldrh r0, [r1] adds r0, #1 movs r3, #0 mov sb, r3 movs r6, #0 mov r8, r6 strh r0, [r1] lsls r0, r4, #2 adds r0, r5, r0 movs r1, #0xf1 lsls r1, r1, #2 adds r2, r0, r1 ldrh r3, [r2] movs r6, #0 ldrsh r1, [r2, r6] ldr r0, _08033AAC @ =0xFFFFFCE0 cmp r1, r0 ble _08033AB8 subs r0, r3, #3 strh r0, [r2] ldr r2, _08033AB0 @ =0x086AE5EC ldr r1, _08033AB4 @ =0x000003A3 adds r0, r5, r1 adds r6, r0, r4 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r3, #0 ldrsh r1, [r0, r3] movs r3, #0xec lsls r3, r3, #2 adds r0, r5, r3 adds r5, r0, r7 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 bgt _08033AE2 mov r0, r8 strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033AA4 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033AB4 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 ble _08033B20 mov r4, sb strb r4, [r1] b _08033B20 .align 2, 0 _08033AA4: .4byte 0x020314E0 _08033AA8: .4byte 0x000003B6 _08033AAC: .4byte 0xFFFFFCE0 _08033AB0: .4byte 0x086AE5EC _08033AB4: .4byte 0x000003A3 _08033AB8: ldr r2, _08033AE8 @ =0x086AE5EC ldr r6, _08033AEC @ =0x000003A3 adds r0, r5, r6 adds r6, r0, r4 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r3, #0 ldrsh r1, [r0, r3] movs r3, #0xec lsls r3, r3, #2 adds r0, r5, r3 adds r5, r0, r7 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 ble _08033AF0 _08033AE2: adds r0, #1 strh r0, [r5] b _08033B20 .align 2, 0 _08033AE8: .4byte 0x086AE5EC _08033AEC: .4byte 0x000003A3 _08033AF0: mov r0, r8 strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033B44 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033B48 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 ble _08033B20 movs r0, #7 strb r0, [r1] ldr r5, _08033B44 @ =0x020314E0 ldr r0, [r5] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r4 movs r1, #3 strb r1, [r0] _08033B20: ldr r0, _08033B44 @ =0x020314E0 ldr r0, [r0] ldr r2, [sp, #4] asrs r1, r2, #0x10 ldr r4, _08033B48 @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033B44: .4byte 0x020314E0 _08033B48: .4byte 0x000003A3 _08033B4C: ldr r5, _08033BD4 @ =0x020314E0 ldr r4, [r5] ldr r6, [sp, #4] asrs r7, r6, #0x10 lsls r0, r7, #1 mov r8, r0 ldr r2, _08033BD8 @ =0x000003B6 adds r1, r4, r2 add r1, r8 ldrh r0, [r1] adds r0, #1 movs r3, #0 mov sl, r3 movs r5, #0 mov sb, r5 strh r0, [r1] lsls r0, r7, #2 adds r5, r4, r0 movs r6, #0xf1 lsls r6, r6, #2 adds r2, r5, r6 ldrh r3, [r2] movs r0, #0 ldrsh r1, [r2, r0] ldr r0, _08033BDC @ =0x0000031F cmp r1, r0 bgt _08033BE8 adds r0, r3, #3 strh r0, [r2] ldr r2, _08033BE0 @ =0x086AE5EC ldr r3, _08033BE4 @ =0x000003A3 adds r0, r4, r3 adds r6, r0, r7 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r5, #0 ldrsh r1, [r0, r5] adds r3, #0xd adds r0, r4, r3 mov r4, r8 adds r5, r0, r4 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 bgt _08033C12 mov r0, sb strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033BD4 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033BE4 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r7 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xa ble _08033C50 movs r0, #7 strb r0, [r1] b _08033C50 .align 2, 0 _08033BD4: .4byte 0x020314E0 _08033BD8: .4byte 0x000003B6 _08033BDC: .4byte 0x0000031F _08033BE0: .4byte 0x086AE5EC _08033BE4: .4byte 0x000003A3 _08033BE8: ldr r2, _08033C18 @ =0x086AE5EC ldr r3, _08033C1C @ =0x000003A3 adds r0, r4, r3 adds r6, r0, r7 movs r1, #0 ldrsb r1, [r6, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r2, #2 adds r0, r0, r1 movs r5, #0 ldrsh r1, [r0, r5] adds r3, #0xd adds r0, r4, r3 mov r4, r8 adds r5, r0, r4 ldrh r0, [r5] adds r3, r2, #0 cmp r1, r0 ble _08033C20 _08033C12: adds r0, #1 strh r0, [r5] b _08033C50 .align 2, 0 _08033C18: .4byte 0x086AE5EC _08033C1C: .4byte 0x000003A3 _08033C20: mov r0, sb strh r0, [r5] ldrb r0, [r6] adds r0, #1 strb r0, [r6] ldr r1, _08033C74 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033C78 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r7 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xd ble _08033C50 mov r4, sl strb r4, [r1] ldr r5, _08033C74 @ =0x020314E0 ldr r0, [r5] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r7 movs r1, #2 strb r1, [r0] _08033C50: ldr r0, _08033C74 @ =0x020314E0 ldr r0, [r0] ldr r2, [sp, #4] asrs r1, r2, #0x10 ldr r4, _08033C78 @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033C74: .4byte 0x020314E0 _08033C78: .4byte 0x000003A3 _08033C7C: ldr r3, _08033D0C @ =0x086AE5EC ldr r6, _08033D10 @ =0x020314E0 ldr r2, [r6] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r0, _08033D14 @ =0x000003A3 adds r2, r2, r0 adds r2, r2, r4 movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r3, #4 adds r0, r0, r3 ldrh r7, [r0] movs r3, #0 movs r0, #0xe strb r0, [r2] ldr r5, [r6] lsls r1, r4, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r5, r2 adds r0, r0, r1 movs r2, #0 strh r3, [r0] movs r3, #0xe8 lsls r3, r3, #2 adds r0, r5, r3 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r6] movs r5, #0xeb lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r1, _08033D18 @ =0x000003A9 adds r0, r0, r1 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r2, _08033D1C @ =0x00000396 adds r1, r0, r2 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08033CEE subs r0, r2, #1 strb r0, [r1] _08033CEE: ldr r1, [r6] ldr r0, _08033D20 @ =0x000186A0 str r0, [r1, #0x3c] ldr r3, _08033D24 @ =0x00000385 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xf2 bl m4aSongNumStart movs r0, #7 bl sub_11B0 b _08033FD8 .align 2, 0 _08033D0C: .4byte 0x086AE5EC _08033D10: .4byte 0x020314E0 _08033D14: .4byte 0x000003A3 _08033D18: .4byte 0x000003A9 _08033D1C: .4byte 0x00000396 _08033D20: .4byte 0x000186A0 _08033D24: .4byte 0x00000385 _08033D28: ldr r3, _08033D60 @ =0x086AE5EC ldr r4, _08033D64 @ =0x020314E0 ldr r2, [r4] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r6, _08033D68 @ =0x000003A3 adds r0, r2, r6 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r4, #1 movs r6, #0xec lsls r6, r6, #2 adds r2, r2, r6 adds r2, r2, r0 ldrh r0, [r2] cmp r1, r0 ble _08033D6C adds r0, #1 strh r0, [r2] b _08033DA8 .align 2, 0 _08033D60: .4byte 0x086AE5EC _08033D64: .4byte 0x020314E0 _08033D68: .4byte 0x000003A3 _08033D6C: movs r6, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r1, _08033DEC @ =0x020314E0 ldr r0, [r1] ldr r2, _08033DF0 @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xf ble _08033DA8 movs r0, #0xf strb r0, [r1] ldr r5, _08033DEC @ =0x020314E0 ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r4 movs r1, #9 strb r1, [r0] ldr r0, [r5] adds r2, #3 adds r0, r0, r2 adds r0, r0, r4 strb r6, [r0] _08033DA8: ldr r6, _08033DEC @ =0x020314E0 ldr r1, [r6] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r5, _08033DF0 @ =0x000003A3 adds r0, r1, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _08033DCE movs r0, #0xeb lsls r0, r0, #2 adds r1, r1, r0 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08033DCE: ldr r0, [r6] adds r0, r0, r5 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033DEC: .4byte 0x020314E0 _08033DF0: .4byte 0x000003A3 _08033DF4: ldr r5, _08033E14 @ =0x020314E0 ldr r4, [r5] ldr r1, [sp, #4] asrs r3, r1, #0x10 lsls r1, r3, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r4, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #5 bhi _08033E18 adds r0, #1 strh r0, [r1] movs r3, #3 b _08033E8E .align 2, 0 _08033E14: .4byte 0x020314E0 _08033E18: movs r2, #0 movs r0, #0 strh r0, [r1] ldr r6, _08033E64 @ =0x000003A3 adds r0, r4, r6 adds r0, r0, r3 movs r1, #0x12 strb r1, [r0] ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r5] ldr r4, _08033E68 @ =0x000003A9 adds r0, r0, r4 adds r0, r0, r3 strb r2, [r0] ldr r0, [r5] ldr r5, _08033E6C @ =0x00000396 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08033E54 subs r0, r2, #1 strb r0, [r1] _08033E54: movs r6, #3 str r6, [sp] movs r7, #3 movs r0, #0xf3 bl m4aSongNumStart b _08033FD8 .align 2, 0 _08033E64: .4byte 0x000003A3 _08033E68: .4byte 0x000003A9 _08033E6C: .4byte 0x00000396 _08033E70: ldr r5, _08033E94 @ =0x020314E0 ldr r4, [r5] ldr r0, [sp, #4] asrs r3, r0, #0x10 lsls r1, r3, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r4, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #5 bhi _08033E98 adds r0, #1 strh r0, [r1] movs r3, #9 _08033E8E: str r3, [sp] movs r7, #3 b _08033FD8 .align 2, 0 _08033E94: .4byte 0x020314E0 _08033E98: movs r2, #0 movs r0, #0 strh r0, [r1] ldr r6, _08033EE4 @ =0x000003A3 adds r0, r4, r6 adds r0, r0, r3 movs r1, #0x12 strb r1, [r0] ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #2 adds r0, r0, r1 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r5] ldr r4, _08033EE8 @ =0x000003A9 adds r0, r0, r4 adds r0, r0, r3 strb r2, [r0] ldr r0, [r5] ldr r5, _08033EEC @ =0x00000396 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08033ED4 subs r0, r2, #1 strb r0, [r1] _08033ED4: movs r0, #0xf3 bl m4aSongNumStart movs r6, #9 str r6, [sp] movs r7, #3 b _08033FD8 .align 2, 0 _08033EE4: .4byte 0x000003A3 _08033EE8: .4byte 0x000003A9 _08033EEC: .4byte 0x00000396 _08033EF0: ldr r3, _08033F28 @ =0x086AE5EC ldr r0, _08033F2C @ =0x020314E0 ldr r2, [r0] ldr r1, [sp, #4] asrs r4, r1, #0x10 ldr r5, _08033F30 @ =0x000003A3 adds r0, r2, r5 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r3, #2 adds r0, r0, r1 movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r4, #1 movs r6, #0xec lsls r6, r6, #2 adds r2, r2, r6 adds r2, r2, r0 ldrh r0, [r2] cmp r1, r0 ble _08033F34 adds r0, #1 strh r0, [r2] b _08033F64 .align 2, 0 _08033F28: .4byte 0x086AE5EC _08033F2C: .4byte 0x020314E0 _08033F30: .4byte 0x000003A3 _08033F34: movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r1, _08033F88 @ =0x020314E0 ldr r0, [r1] ldr r2, _08033F8C @ =0x000003A3 adds r0, r0, r2 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x19 ble _08033F64 movs r0, #0x19 strb r0, [r1] ldr r5, _08033F88 @ =0x020314E0 ldr r0, [r5] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r0, r6 adds r0, r0, r4 movs r1, #9 strb r1, [r0] _08033F64: ldr r0, _08033F88 @ =0x020314E0 ldr r0, [r0] ldr r2, [sp, #4] asrs r1, r2, #0x10 ldr r4, _08033F8C @ =0x000003A3 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r3 ldrh r1, [r1] str r1, [sp] adds r1, r3, #4 adds r0, r0, r1 b _08033FD6 .align 2, 0 _08033F88: .4byte 0x020314E0 _08033F8C: .4byte 0x000003A3 _08033F90: ldr r3, _0803401C @ =0x020314E0 ldr r0, [r3] ldr r5, [sp, #4] asrs r4, r5, #0x10 ldr r6, _08034020 @ =0x000003A6 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r0, [r3] ldr r2, _08034024 @ =0x000003A9 adds r0, r0, r2 adds r0, r0, r4 strb r1, [r0] ldr r0, [r3] movs r5, #0xe8 lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r4 strb r1, [r0] ldr r2, _08034028 @ =0x086AE5EC ldr r0, [r3] subs r6, #3 adds r0, r0, r6 adds r0, r0, r4 _08033FC2: movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r0, r2 ldrh r1, [r1] str r1, [sp] adds r2, #4 adds r0, r0, r2 _08033FD6: ldrh r7, [r0] _08033FD8: ldr r2, _0803401C @ =0x020314E0 ldr r3, [r2] ldr r0, [sp, #4] asrs r6, r0, #0x10 lsls r1, r6, #1 ldr r4, _0803402C @ =0x000003B6 adds r0, r3, r4 adds r5, r0, r1 adds r4, #6 adds r0, r3, r4 adds r0, r0, r1 ldrh r1, [r5] ldrh r0, [r0] cmp r1, r0 bls _0803404C ldr r1, _08034030 @ =0x00000385 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 bgt _0803404C movs r0, #0 strh r0, [r5] movs r2, #0xe8 lsls r2, r2, #2 adds r0, r3, r2 adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bne _08034034 movs r0, #6 b _08034036 .align 2, 0 _0803401C: .4byte 0x020314E0 _08034020: .4byte 0x000003A6 _08034024: .4byte 0x000003A9 _08034028: .4byte 0x086AE5EC _0803402C: .4byte 0x000003B6 _08034030: .4byte 0x00000385 _08034034: movs r0, #7 _08034036: strb r0, [r1] ldr r3, _080340D8 @ =0x020314E0 ldr r0, [r3] ldr r4, [sp, #4] asrs r1, r4, #0xf movs r5, #0xec lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _0803404C: ldr r6, _080340D8 @ =0x020314E0 ldr r0, [r6] ldr r1, [sp, #4] asrs r5, r1, #0x10 ldr r2, _080340DC @ =0x00000397 adds r1, r0, r2 adds r1, r1, r5 adds r2, #3 adds r0, r0, r2 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [r6] adds r0, r0, r2 adds r0, r0, r5 strb r7, [r0] ldr r0, [r6] ldr r3, _080340E0 @ =0x0000039D adds r0, r0, r3 adds r0, r0, r5 mov r4, sp ldrb r4, [r4] strb r4, [r0] ldr r4, [r6] lsls r0, r5, #2 adds r4, r4, r0 movs r6, #0xf1 lsls r6, r6, #2 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xd0 movs r2, #0xf4 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] ldr r3, _080340E4 @ =0x000003C6 adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x42 ldr r1, _080340E8 @ =0x000003D2 adds r4, r4, r1 strh r0, [r4] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 bgt _080340C8 bl _08033752 _080340C8: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080340D8: .4byte 0x020314E0 _080340DC: .4byte 0x00000397 _080340E0: .4byte 0x0000039D _080340E4: .4byte 0x000003C6 _080340E8: .4byte 0x000003D2 thumb_func_start sub_340EC sub_340EC: @ 0x080340EC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 movs r4, #0 _080340FA: ldr r0, _08034198 @ =0x020314E0 ldr r5, [r0] lsls r4, r4, #0x10 asrs r3, r4, #0x10 ldr r1, _0803419C @ =0x00000397 adds r0, r5, r1 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #0x10 ldr r2, _080341A0 @ =0x040000D4 lsrs r7, r1, #0x10 mov r8, r7 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _080341A4 @ =0x08510E4C adds r0, r0, r1 str r0, [r2] lsls r7, r3, #2 adds r0, r7, r3 lsls r0, r0, #7 ldr r1, _080341A8 @ =0x06010920 adds r0, r0, r1 str r0, [r2, #4] ldr r0, _080341AC @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] ldr r2, _080341B0 @ =0x0000039D adds r0, r5, r2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 movs r0, #0xb8 adds r1, r3, #0 muls r1, r0, r1 ldr r0, _080341B4 @ =0x0200B8C0 adds r6, r1, r0 ldr r1, _080341B8 @ =0x000003A6 adds r0, r5, r1 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r4 cmp r0, #0 beq _080341C0 adds r4, r5, r7 adds r2, #0x27 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r0, #0x6c adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldr r7, _080341BC @ =0x000003C6 adds r4, r4, r7 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r0, #0x1c adds r1, r5, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 b _080341C6 .align 2, 0 _08034198: .4byte 0x020314E0 _0803419C: .4byte 0x00000397 _080341A0: .4byte 0x040000D4 _080341A4: .4byte 0x08510E4C _080341A8: .4byte 0x06010920 _080341AC: .4byte 0x80000140 _080341B0: .4byte 0x0000039D _080341B4: .4byte 0x0200B8C0 _080341B8: .4byte 0x000003A6 _080341BC: .4byte 0x000003C6 _080341C0: movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xb4 _080341C6: strh r0, [r6, #4] mov r2, r8 lsls r0, r2, #0x10 asrs r5, r0, #0x10 cmp r5, #6 beq _080341D4 b _08034368 _080341D4: ldr r3, _0803420C @ =0x020314E0 ldr r0, [r3] mov r7, sl asrs r1, r7, #0x10 movs r2, #0xeb lsls r2, r2, #2 adds r0, r0, r2 adds r1, r0, r1 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bgt _08034210 adds r4, r0, #0 lsls r0, r4, #7 movs r1, #6 bl __divsi3 movs r3, #0x80 lsls r3, r3, #1 adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 subs r4, r5, r4 lsls r4, r4, #7 adds r0, r4, #0 movs r1, #6 b _08034238 .align 2, 0 _0803420C: .4byte 0x020314E0 _08034210: movs r4, #0 ldrsb r4, [r1, r4] movs r1, #0x18 subs r1, r1, r4 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 subs r0, r0, r1 lsls r0, r0, #4 movs r1, #0x12 bl __divsi3 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 subs r4, #6 lsls r0, r4, #3 subs r0, r0, r4 lsls r0, r0, #6 movs r1, #0x12 _08034238: bl __divsi3 adds r0, #0x80 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 lsls r0, r7, #0x10 asrs r0, r0, #0x10 lsls r1, r1, #0x10 asrs r1, r1, #0x10 mov r5, sl asrs r4, r5, #0x10 adds r5, r4, #2 lsls r2, r5, #0x10 asrs r2, r2, #0x10 bl sub_7C0 ldrh r0, [r6, #2] subs r0, #0x10 strh r0, [r6, #2] ldrh r0, [r6, #4] subs r0, #0x10 strh r0, [r6, #4] movs r2, #0 mov r7, sb lsls r0, r7, #0x10 ldr r7, _08034350 @ =0x03005000 asrs r1, r0, #0x10 mov ip, r4 mov sb, r5 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 _0803427A: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r7 lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #1 ldr r1, _08034354 @ =0x086BA0A0 adds r0, r0, r1 mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 str r3, [sp, #0xc] ldrh r2, [r3, #2] lsls r0, r2, #0x17 lsrs r0, r0, #0x17 str r0, [sp, #8] movs r1, #2 ldrsh r0, [r6, r1] ldr r3, [sp, #8] adds r0, r3, r0 ldr r1, _08034358 @ =0x000001FF ands r0, r1 ldr r3, _0803435C @ =0xFFFFFE00 ands r2, r3 orrs r2, r0 ldr r0, [sp, #0xc] strh r2, [r0, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 str r3, [sp, #0xc] ldrh r0, [r3, #4] mov r3, sp strh r0, [r3, #0x10] adds r2, r0, #0 lsls r1, r2, #0x16 lsrs r1, r1, #0x16 strh r1, [r3] mov r3, ip lsls r0, r3, #2 add r0, ip lsls r0, r0, #2 str r0, [sp, #8] mov r0, sp ldrh r2, [r0] ldr r0, [sp, #8] adds r1, r2, r0 ldr r3, _08034360 @ =0x000003FF ands r1, r3 mov r0, sp ldrh r2, [r0, #0x10] ldr r0, _08034364 @ =0xFFFFFC00 ands r2, r0 orrs r2, r1 ldr r1, [sp, #0xc] strh r2, [r1, #4] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r7 ldrb r1, [r0, #1] movs r2, #3 orrs r1, r2 strb r1, [r0, #1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #7 mov r1, sb ands r1, r0 lsls r1, r1, #1 ldrb r0, [r3, #3] movs r5, #0xf rsbs r5, r5, #0 adds r2, r5, #0 ands r0, r2 orrs r0, r1 strb r0, [r3, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0803427A b _08034416 .align 2, 0 _08034350: .4byte 0x03005000 _08034354: .4byte 0x086BA0A0 _08034358: .4byte 0x000001FF _0803435C: .4byte 0xFFFFFE00 _08034360: .4byte 0x000003FF _08034364: .4byte 0xFFFFFC00 _08034368: movs r2, #0 mov r7, sb lsls r0, r7, #0x10 ldr r1, _08034438 @ =0x086BA0A0 mov sb, r1 ldr r3, _0803443C @ =0x03005000 mov ip, r3 asrs r1, r0, #0x10 mov r5, sl asrs r5, r5, #0x10 str r5, [sp, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 _08034386: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r7, ip adds r2, r0, r7 lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #1 add r0, sb mov r3, r8 adds r1, r3, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r3, [r5] lsls r3, r3, #3 add r3, ip ldrh r2, [r3, #2] lsls r0, r2, #0x17 lsrs r0, r0, #0x17 movs r7, #2 ldrsh r1, [r6, r7] adds r0, r0, r1 ldr r7, _08034440 @ =0x000001FF adds r1, r7, #0 ands r0, r1 ldr r7, _08034444 @ =0xFFFFFE00 adds r1, r7, #0 ands r2, r1 orrs r2, r0 strh r2, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 add r3, ip ldrh r2, [r3, #4] lsls r1, r2, #0x16 lsrs r1, r1, #0x16 ldr r5, [sp, #4] lsls r0, r5, #2 adds r0, r0, r5 lsls r0, r0, #2 adds r1, r1, r0 ldr r7, _08034448 @ =0x000003FF adds r0, r7, #0 ands r1, r0 ldr r5, _0803444C @ =0xFFFFFC00 adds r0, r5, #0 ands r2, r0 orrs r2, r1 strh r2, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08034386 _08034416: movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _08034426 b _080340FA _08034426: add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08034438: .4byte 0x086BA0A0 _0803443C: .4byte 0x03005000 _08034440: .4byte 0x000001FF _08034444: .4byte 0xFFFFFE00 _08034448: .4byte 0x000003FF _0803444C: .4byte 0xFFFFFC00 thumb_func_start sub_34450 sub_34450: @ 0x08034450 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov sb, r0 ldr r1, _08034488 @ =0x0200BDC8 str r1, [sp] ldr r1, _0803448C @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sl, r1 cmp r0, #8 bls _0803447E bl _08034D7E _0803447E: lsls r0, r0, #2 ldr r1, _08034490 @ =_08034494 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08034488: .4byte 0x0200BDC8 _0803448C: .4byte 0x020314E0 _08034490: .4byte _08034494 _08034494: @ jump table .4byte _080344B8 @ case 0 .4byte _08034510 @ case 1 .4byte _080345F0 @ case 2 .4byte _080346D8 @ case 3 .4byte _080348CA @ case 4 .4byte _08034910 @ case 5 .4byte _08034998 @ case 6 .4byte _08034A7C @ case 7 .4byte _08034CD0 @ case 8 _080344B8: ldr r3, _08034500 @ =0x020314E0 ldr r1, [r3] movs r4, #0xfa lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0xdc lsls r0, r0, #2 strh r0, [r2] ldr r5, _08034504 @ =0x000003EA adds r2, r1, r5 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r2] movs r6, #0xf7 lsls r6, r6, #2 adds r1, r1, r6 movs r4, #1 strb r4, [r1] ldr r1, [r3] ldr r7, _08034508 @ =0x000003E6 adds r2, r1, r7 movs r0, #0xb8 strh r0, [r2] ldr r0, _0803450C @ =0x000003E2 adds r2, r1, r0 movs r0, #0x15 strh r0, [r2] movs r2, #0 mov sb, r2 movs r3, #0xa5 lsls r3, r3, #2 adds r1, r1, r3 strb r4, [r1] bl _08034D7E .align 2, 0 _08034500: .4byte 0x020314E0 _08034504: .4byte 0x000003EA _08034508: .4byte 0x000003E6 _0803450C: .4byte 0x000003E2 _08034510: ldr r0, _0803453C @ =0x086AE68E mov r5, sl ldr r4, [r5] ldr r6, _08034540 @ =0x000003E2 adds r3, r4, r6 movs r7, #0 ldrsh r1, [r3, r7] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r2, #0 ldrsh r0, [r1, r2] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r4, r5 ldrh r2, [r1] cmp r0, r2 ble _08034544 adds r0, r2, #1 strh r0, [r1] b _080345DC .align 2, 0 _0803453C: .4byte 0x086AE68E _08034540: .4byte 0x000003E2 _08034544: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1c ble _08034582 movs r0, #0x15 strh r0, [r3] movs r6, #0xf8 lsls r6, r6, #2 adds r1, r4, r6 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08034570 adds r0, r2, #1 strb r0, [r1] b _08034582 _08034570: movs r0, #0 strb r0, [r1] mov r7, sl ldr r0, [r7] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] _08034582: ldr r4, _080345E4 @ =0x020314E0 ldr r1, [r4] ldr r5, _080345E8 @ =0x000003E2 adds r0, r1, r5 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x17 bne _080345B2 ldr r3, _080345EC @ =0x00000129 adds r1, r1, r3 movs r0, #0 strb r0, [r1] ldr r0, [r4] movs r6, #0x94 lsls r6, r6, #1 adds r0, r0, r6 movs r1, #1 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080345B2: ldr r1, [r4] adds r0, r1, r5 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0x1b bne _080345DC ldr r2, _080345EC @ =0x00000129 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r3, #0x94 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080345DC: movs r4, #0 mov sb, r4 b _08034D7E .align 2, 0 _080345E4: .4byte 0x020314E0 _080345E8: .4byte 0x000003E2 _080345EC: .4byte 0x00000129 _080345F0: mov r5, sl ldr r4, [r5] movs r6, #0xf9 lsls r6, r6, #2 adds r3, r4, r6 ldrh r0, [r3] cmp r0, #0xff bhi _08034670 ldr r2, _08034660 @ =0x08137D40 adds r1, r0, #0 movs r0, #0x3f ands r0, r1 lsrs r0, r0, #4 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 adds r1, #1 movs r5, #0 strh r1, [r3] lsls r1, r1, #0x10 movs r0, #0x80 lsls r0, r0, #0x11 cmp r1, r0 bne _08034670 movs r7, #0xf7 lsls r7, r7, #2 adds r1, r4, r7 movs r0, #3 strb r0, [r1] mov r0, sl ldr r1, [r0] adds r0, r1, r6 strh r5, [r0] movs r2, #0xf8 lsls r2, r2, #2 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #3 ble _08034646 movs r0, #0 strb r0, [r1] _08034646: mov r3, sl ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08034668 ldr r4, _08034664 @ =0x000003E2 adds r0, r1, r4 strh r5, [r0] b _08034670 .align 2, 0 _08034660: .4byte 0x08137D40 _08034664: .4byte 0x000003E2 _08034668: ldr r5, _0803468C @ =0x000003E2 adds r1, r1, r5 movs r0, #7 strh r0, [r1] _08034670: mov r6, sl ldr r3, [r6] ldr r7, _08034690 @ =0x000003E6 adds r1, r3, r7 ldrh r0, [r1] movs r4, #0 ldrsh r2, [r1, r4] cmp r2, #0 ble _080346BC cmp r2, #0x40 ble _08034694 subs r0, #1 b _08034696 .align 2, 0 _0803468C: .4byte 0x000003E2 _08034690: .4byte 0x000003E6 _08034694: subs r0, #2 _08034696: strh r0, [r1] ldr r0, _080346B4 @ =0x020314E0 ldr r0, [r0] ldr r5, _080346B8 @ =0x000003E6 adds r0, r0, r5 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0x9a beq _080346AA b _08034D7E _080346AA: movs r0, #0xf5 bl m4aSongNumStart b _08034D7E .align 2, 0 _080346B4: .4byte 0x020314E0 _080346B8: .4byte 0x000003E6 _080346BC: ldr r7, _080346D4 @ =0x00000387 adds r0, r3, r7 movs r1, #2 strb r1, [r0] mov r2, sl ldr r0, [r2] movs r3, #0xa5 lsls r3, r3, #2 adds r0, r0, r3 strb r1, [r0] b _08034D7E .align 2, 0 _080346D4: .4byte 0x00000387 _080346D8: ldr r0, _08034704 @ =0x086AE68E mov r4, sl ldr r3, [r4] ldr r4, _08034708 @ =0x000003E2 adds r6, r3, r4 movs r5, #0 ldrsh r1, [r6, r5] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r7, #0 ldrsh r0, [r1, r7] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r3, r5 ldrh r2, [r1] cmp r0, r2 ble _0803470C adds r0, r2, #1 strh r0, [r1] b _080347F0 .align 2, 0 _08034704: .4byte 0x086AE68E _08034708: .4byte 0x000003E2 _0803470C: movs r7, #0 strh r7, [r1] movs r2, #0xf8 lsls r2, r2, #2 adds r1, r3, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08034758 ldrh r0, [r6] adds r0, #1 strh r0, [r6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #7 ble _08034796 strh r7, [r6] ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r0, sl ldr r1, [r0] adds r0, r1, r2 ldrb r0, [r0] movs r2, #1 ands r2, r0 cmp r2, #0 bne _08034796 movs r3, #0xf7 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #2 strb r0, [r1] mov r4, sl ldr r0, [r4] adds r0, r0, r5 strh r2, [r0] b _08034796 _08034758: ldrh r0, [r6] subs r0, #1 strh r0, [r6] lsls r0, r0, #0x10 cmp r0, #0 bge _08034796 ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r6, sl ldr r1, [r6] adds r0, r1, r2 ldrb r0, [r0] movs r2, #1 ands r2, r0 cmp r2, #0 bne _08034790 movs r7, #0xf7 lsls r7, r7, #2 adds r1, r1, r7 movs r0, #2 strb r0, [r1] ldr r0, [r6] adds r1, r0, r5 strh r2, [r1] adds r0, r0, r4 strh r2, [r0] b _08034796 _08034790: adds r1, r1, r4 movs r0, #7 strh r0, [r1] _08034796: ldr r4, _08034840 @ =0x020314E0 ldr r1, [r4] ldr r5, _08034844 @ =0x000003E2 adds r0, r1, r5 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #2 bne _080347C6 ldr r3, _08034848 @ =0x00000129 adds r1, r1, r3 movs r0, #0 strb r0, [r1] ldr r0, [r4] movs r6, #0x94 lsls r6, r6, #1 adds r0, r0, r6 movs r1, #1 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080347C6: ldr r1, [r4] adds r0, r1, r5 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #6 bne _080347F0 ldr r2, _08034848 @ =0x00000129 adds r0, r1, r2 movs r1, #1 strb r1, [r0] ldr r0, [r4] movs r3, #0x94 lsls r3, r3, #1 adds r0, r0, r3 strb r1, [r0] movs r0, #0xf4 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _080347F0: ldr r1, _0803484C @ =0x086AE68E ldr r7, _08034840 @ =0x020314E0 ldr r4, [r7] ldr r5, _08034844 @ =0x000003E2 mov r8, r5 adds r3, r4, r5 movs r6, #0 ldrsh r0, [r3, r6] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] mov sb, r0 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 bne _08034812 b _08034D7E _08034812: cmp r0, #4 bne _08034818 b _08034D7E _08034818: movs r6, #0xf8 lsls r6, r6, #2 adds r0, r4, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08034880 adds r5, #8 adds r2, r4, r5 ldrh r5, [r2] movs r0, #0 ldrsh r1, [r2, r0] ldr r0, _08034850 @ =0x00000247 cmp r1, r0 bgt _08034854 adds r0, r5, #1 strh r0, [r2] b _08034D7E .align 2, 0 _08034840: .4byte 0x020314E0 _08034844: .4byte 0x000003E2 _08034848: .4byte 0x00000129 _0803484C: .4byte 0x086AE68E _08034850: .4byte 0x00000247 _08034854: ldrh r3, [r3] movs r0, #3 ands r3, r0 cmp r3, #0 beq _08034860 b _08034D7E _08034860: movs r1, #0xf7 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #2 strb r2, [r0] ldr r0, [r7] movs r4, #0xf9 lsls r4, r4, #2 adds r1, r0, r4 strh r3, [r1] mov r5, r8 adds r1, r0, r5 strh r3, [r1] adds r0, r0, r6 strb r2, [r0] b _08034D7E _08034880: ldr r0, _08034898 @ =0x000003EA adds r2, r4, r0 ldrh r5, [r2] movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x96 lsls r0, r0, #1 cmp r1, r0 ble _0803489C subs r0, r5, #1 strh r0, [r2] b _08034D7E .align 2, 0 _08034898: .4byte 0x000003EA _0803489C: ldrh r2, [r3] movs r0, #3 ands r2, r0 cmp r2, #0 beq _080348A8 b _08034D7E _080348A8: movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #2 strb r0, [r1] ldr r1, [r7] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 strh r2, [r0] mov r5, r8 adds r0, r1, r5 strh r2, [r0] adds r1, r1, r6 movs r0, #4 strb r0, [r1] b _08034D7E _080348CA: ldr r4, _08034904 @ =0x020314E0 ldr r1, [r4] movs r6, #0xf9 lsls r6, r6, #2 adds r0, r1, r6 movs r5, #0 movs r2, #0 strh r2, [r0] ldr r7, _08034908 @ =0x000003E2 adds r0, r1, r7 strh r2, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #5 strb r0, [r1] movs r1, #7 mov sb, r1 movs r0, #0xf6 bl m4aSongNumStart ldr r0, [r4] ldr r2, _0803490C @ =0x00000387 adds r0, r0, r2 strb r5, [r0] movs r0, #7 bl sub_11B0 b _08034D7E .align 2, 0 _08034904: .4byte 0x020314E0 _08034908: .4byte 0x000003E2 _0803490C: .4byte 0x00000387 _08034910: mov r4, sl ldr r3, [r4] movs r5, #0xf9 lsls r5, r5, #2 adds r4, r3, r5 ldrh r0, [r4] cmp r0, #0x1b bhi _0803492A movs r6, #7 mov sb, r6 adds r0, #1 strh r0, [r4] b _08034D7E _0803492A: ldr r7, _08034960 @ =0x00000385 adds r0, r3, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bgt _08034968 movs r2, #0 movs r1, #0 movs r0, #0x80 strh r0, [r4] ldr r4, _08034964 @ =0x000003E2 adds r0, r3, r4 strh r1, [r0] movs r5, #0xf7 lsls r5, r5, #2 adds r1, r3, r5 movs r0, #2 strb r0, [r1] mov r6, sl ldr r0, [r6] adds r7, #2 adds r0, r0, r7 strb r2, [r0] movs r0, #7 mov sb, r0 b _08034976 .align 2, 0 _08034960: .4byte 0x00000385 _08034964: .4byte 0x000003E2 _08034968: movs r2, #0xf7 lsls r2, r2, #2 adds r1, r3, r2 movs r0, #8 strb r0, [r1] movs r3, #7 mov sb, r3 _08034976: ldr r2, _0803498C @ =0x020314E0 ldr r1, [r2] ldr r4, _08034990 @ =0x00000385 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, [r2] ldr r0, _08034994 @ =0x000493E0 str r0, [r1, #0x3c] b _08034D7E .align 2, 0 _0803498C: .4byte 0x020314E0 _08034990: .4byte 0x00000385 _08034994: .4byte 0x000493E0 _08034998: ldr r5, _08034A64 @ =0x020314E0 mov r8, r5 ldr r1, [r5] ldr r6, _08034A68 @ =0x000003E2 adds r2, r1, r6 movs r3, #0 movs r0, #9 strh r0, [r2] movs r7, #0xf9 lsls r7, r7, #2 adds r0, r1, r7 strh r3, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #7 strb r0, [r1] ldr r0, [r5] ldr r1, _08034A6C @ =0x000005A6 adds r0, r0, r1 strh r3, [r0] movs r2, #8 mov sb, r2 movs r0, #0xf7 bl m4aSongNumStart ldr r4, [r5] movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r0, #0x20 movs r6, #0xa2 lsls r6, r6, #2 adds r5, r4, r6 strh r0, [r5] adds r7, #6 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x24 ldr r2, _08034A70 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] ldrh r1, [r5] lsls r1, r1, #8 ldr r3, _08034A74 @ =0x0000132C adds r2, r4, r3 ldr r3, [r2] ldr r2, [r3, #0x34] subs r1, r1, r2 lsls r1, r1, #0x10 lsls r0, r0, #8 ldr r2, [r3, #0x38] subs r0, r0, r2 lsls r0, r0, #0x10 lsrs r7, r1, #0x10 orrs r7, r0 ldr r6, _08034A78 @ =0x000005AC adds r4, r4, r6 lsls r0, r7, #0x10 asrs r0, r0, #0x10 adds r5, r0, #0 muls r5, r0, r5 adds r0, r5, #0 asrs r5, r7, #0x10 adds r1, r5, #0 muls r1, r5, r1 adds r0, r0, r1 str r0, [r4] lsls r0, r0, #2 bl Sqrt mov r2, r8 ldr r1, [r2] adds r1, r1, r6 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] rsbs r0, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r1, r5, #0 bl ArcTan2 mov r3, r8 ldr r1, [r3] movs r4, #0xb6 lsls r4, r4, #3 adds r1, r1, r4 strh r0, [r1] movs r0, #0xd bl sub_11B0 b _08034D7E .align 2, 0 _08034A64: .4byte 0x020314E0 _08034A68: .4byte 0x000003E2 _08034A6C: .4byte 0x000005A6 _08034A70: .4byte 0x0000028A _08034A74: .4byte 0x0000132C _08034A78: .4byte 0x000005AC _08034A7C: ldr r0, _08034AA8 @ =0x086AE68E mov r5, sl ldr r2, [r5] ldr r5, _08034AAC @ =0x000003E2 adds r4, r2, r5 movs r6, #0 ldrsh r1, [r4, r6] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r7, #0 ldrsh r0, [r1, r7] movs r1, #0xf9 lsls r1, r1, #2 mov r8, r1 adds r1, r2, r1 ldrh r3, [r1] cmp r0, r3 ble _08034AB0 adds r0, r3, #1 strh r0, [r1] b _08034B2C .align 2, 0 _08034AA8: .4byte 0x086AE68E _08034AAC: .4byte 0x000003E2 _08034AB0: movs r6, #0 movs r7, #0 strh r7, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf bne _08034AFA ldr r3, _08034B58 @ =0x0000132C adds r2, r2, r3 ldr r3, [r2] ldr r0, _08034B5C @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #1 ands r0, r1 lsls r1, r0, #2 adds r1, r1, r0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 ldr r4, _08034B60 @ =0x0000FF6A adds r0, r0, r4 strh r0, [r3, #0x30] ldr r1, [r2] movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1, #0x32] ldr r0, [r2] strb r6, [r0] movs r0, #0xf8 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _08034AFA: mov r0, sl ldr r1, [r0] adds r0, r1, r5 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x10 bne _08034B0A strb r6, [r1, #0x1f] _08034B0A: mov r3, sl ldr r2, [r3] adds r3, r2, r5 movs r4, #0 ldrsh r0, [r3, r4] cmp r0, #0x10 ble _08034B2C mov r5, r8 adds r1, r2, r5 movs r0, #0x80 strh r0, [r1] strh r7, [r3] movs r6, #0xf7 lsls r6, r6, #2 adds r1, r2, r6 movs r0, #2 strb r0, [r1] _08034B2C: mov r7, sl ldr r1, [r7] adds r0, r1, #0 adds r0, #0x31 ldrb r0, [r0] cmp r0, #0 beq _08034B6C ldr r2, _08034B64 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x10 bne _08034B8C movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #4 bls _08034B8C ldr r5, _08034B68 @ =0x00000387 adds r1, r1, r5 b _08034B88 .align 2, 0 _08034B58: .4byte 0x0000132C _08034B5C: .4byte 0x0200B0C0 _08034B60: .4byte 0x0000FF6A _08034B64: .4byte 0x000003E2 _08034B68: .4byte 0x00000387 _08034B6C: ldr r6, _08034CA8 @ =0x000003E2 adds r0, r1, r6 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0x10 bne _08034B8C movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0 beq _08034B8C ldr r3, _08034CAC @ =0x00000387 adds r1, r1, r3 _08034B88: movs r0, #2 strb r0, [r1] _08034B8C: ldr r4, _08034CB0 @ =0x020314E0 ldr r7, [r4] ldr r5, _08034CB4 @ =0x000005A6 adds r0, r7, r5 ldrh r0, [r0] cmp r0, #0x1d bhi _08034C60 movs r4, #0x1d subs r4, r4, r0 movs r6, #0xb6 lsls r6, r6, #3 adds r5, r7, r6 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x1e bl __divsi3 ldr r1, _08034CB8 @ =0xFFFFE000 adds r2, r1, #0 adds r0, r0, r2 ldrh r1, [r5] subs r1, r1, r0 strh r1, [r5] ldr r6, _08034CBC @ =0x0000132C adds r0, r7, r6 ldr r0, [r0] ldrh r3, [r0, #0xa] adds r2, r2, r3 strh r2, [r0, #0xa] ldr r1, _08034CC0 @ =0x000005AC adds r0, r7, r1 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x1e bl __divsi3 mov sl, r0 ldrh r0, [r5] bl sub_C74 ldr r2, _08034CB0 @ =0x020314E0 ldr r5, [r2] adds r1, r5, r6 ldr r1, [r1] mov r8, r1 movs r3, #0xa2 lsls r3, r3, #2 adds r1, r5, r3 movs r7, #0 ldrsh r4, [r1, r7] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sl muls r1, r0, r1 adds r0, r1, #0 ldr r2, _08034CC4 @ =0x00004E20 mov sb, r2 mov r1, sb bl __divsi3 adds r4, r4, r0 mov r3, r8 str r4, [r3, #0x34] movs r4, #0xb6 lsls r4, r4, #3 adds r5, r5, r4 ldrh r0, [r5] bl sub_C24 ldr r5, _08034CB0 @ =0x020314E0 ldr r1, [r5] adds r6, r1, r6 ldr r5, [r6] ldr r7, _08034CC8 @ =0x0000028A adds r1, r1, r7 movs r2, #0 ldrsh r4, [r1, r2] lsls r4, r4, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r3, sl muls r3, r0, r3 adds r0, r3, #0 mov r1, sb bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] ldr r4, [r6] movs r5, #0x30 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r6] movs r6, #0x32 ldrsh r0, [r4, r6] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] _08034C60: ldr r7, _08034CB0 @ =0x020314E0 ldr r1, [r7] ldr r2, _08034CB4 @ =0x000005A6 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x28 bne _08034C86 ldr r2, _08034CBC @ =0x0000132C adds r0, r1, r2 ldr r1, [r0] movs r3, #0 movs r0, #1 strb r0, [r1] ldr r0, [r7] adds r0, r0, r2 ldr r1, [r0] strh r3, [r1, #0x30] ldr r0, [r0] strh r3, [r0, #0x32] _08034C86: ldr r3, _08034CB0 @ =0x020314E0 ldr r1, [r3] ldr r4, _08034CB4 @ =0x000005A6 adds r2, r1, r4 ldrh r0, [r2] adds r0, #1 strh r0, [r2] ldr r2, _08034CCC @ =0x086AE68E ldr r5, _08034CA8 @ =0x000003E2 adds r1, r1, r5 movs r6, #0 ldrsh r0, [r1, r6] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 b _08034D7E .align 2, 0 _08034CA8: .4byte 0x000003E2 _08034CAC: .4byte 0x00000387 _08034CB0: .4byte 0x020314E0 _08034CB4: .4byte 0x000005A6 _08034CB8: .4byte 0xFFFFE000 _08034CBC: .4byte 0x0000132C _08034CC0: .4byte 0x000005AC _08034CC4: .4byte 0x00004E20 _08034CC8: .4byte 0x0000028A _08034CCC: .4byte 0x086AE68E _08034CD0: mov r7, sl ldr r0, [r7] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, _08034D24 @ =0x0200B0C0 movs r0, #0x80 strb r0, [r4, #0xf] ldr r1, [r7] ldr r2, _08034D28 @ =0x000003E6 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08034D06 movs r6, #0xe2 lsls r6, r6, #2 adds r1, r1, r6 movs r0, #2 strb r0, [r1] ldr r0, [r7] ldr r7, _08034D2C @ =0x00000392 adds r0, r0, r7 strh r5, [r0] _08034D06: movs r0, #0xf mov sb, r0 mov r1, sl ldr r3, [r1] adds r1, r3, r2 ldrh r0, [r1] movs r6, #0 ldrsh r2, [r1, r6] cmp r2, #0xb7 bgt _08034D60 cmp r2, #0x3f bgt _08034D30 adds r0, #1 b _08034D32 .align 2, 0 _08034D24: .4byte 0x0200B0C0 _08034D28: .4byte 0x000003E6 _08034D2C: .4byte 0x00000392 _08034D30: adds r0, #2 _08034D32: strh r0, [r1] ldr r0, _08034D50 @ =0x020314E0 ldr r0, [r0] ldr r7, _08034D54 @ =0x000003E6 adds r0, r0, r7 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x1e bne _08034D7E ldr r0, _08034D58 @ =0x02032F20 ldr r1, _08034D5C @ =0x086A17D8 bl MPlayStart b _08034D7E .align 2, 0 _08034D50: .4byte 0x020314E0 _08034D54: .4byte 0x000003E6 _08034D58: .4byte 0x02032F20 _08034D5C: .4byte 0x086A17D8 _08034D60: movs r2, #0xc5 lsls r2, r2, #4 adds r0, r4, r2 strh r5, [r0] ldr r6, _08034E38 @ =0x00000D08 adds r0, r4, r6 strh r5, [r0] ldr r7, _08034E3C @ =0x00000B98 adds r0, r4, r7 strh r5, [r0] movs r0, #4 strb r0, [r3, #0x13] mov r1, sl ldr r0, [r1] strh r5, [r0, #0x18] _08034D7E: ldr r2, _08034E40 @ =0x040000D4 mov r3, sb lsls r0, r3, #0x10 asrs r5, r0, #0x10 lsls r0, r5, #0xb ldr r1, _08034E44 @ =0x084EDACC adds r0, r0, r1 str r0, [r2] ldr r0, _08034E48 @ =0x060110A0 str r0, [r2, #4] ldr r0, _08034E4C @ =0x80000400 str r0, [r2, #8] ldr r0, [r2, #8] ldr r4, _08034E50 @ =0x020314E0 ldr r6, [r4] mov r8, r6 movs r7, #0xfa lsls r7, r7, #2 add r7, r8 movs r1, #0 ldrsh r0, [r7, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x10 movs r1, #0xfc lsls r1, r1, #2 add r1, r8 strh r0, [r1] ldr r6, _08034E54 @ =0x000003EA add r6, r8 movs r2, #0 ldrsh r0, [r6, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x10 ldr r1, _08034E58 @ =0x000003F2 add r1, r8 strh r0, [r1] ldr r3, [sp] ldrh r0, [r3] mov sl, r4 cmp r0, #0 beq _08034EB4 mov r0, r8 adds r0, #0x58 ldrh r4, [r0] rsbs r4, r4, #0 movs r1, #0 ldrsh r0, [r7, r1] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r2, [sp] strh r4, [r2, #2] mov r0, r8 adds r0, #0x5a ldrh r4, [r0] rsbs r4, r4, #0 movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r6, [sp] strh r4, [r6, #4] adds r6, #8 cmp r5, #7 bne _08034E6C movs r0, #0xf9 lsls r0, r0, #2 add r0, r8 ldrh r0, [r0] cmp r0, #5 bhi _08034E60 ldr r3, _08034E5C @ =0x03005000 ldr r7, [sp] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r3 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x40 b _08034E7E .align 2, 0 _08034E38: .4byte 0x00000D08 _08034E3C: .4byte 0x00000B98 _08034E40: .4byte 0x040000D4 _08034E44: .4byte 0x084EDACC _08034E48: .4byte 0x060110A0 _08034E4C: .4byte 0x80000400 _08034E50: .4byte 0x020314E0 _08034E54: .4byte 0x000003EA _08034E58: .4byte 0x000003F2 _08034E5C: .4byte 0x03005000 _08034E60: ldr r3, _08034E68 @ =0x03005000 ldr r0, [sp] ldrh r2, [r0, #8] b _08034E72 .align 2, 0 _08034E68: .4byte 0x03005000 _08034E6C: ldr r3, _08034F28 @ =0x03005000 ldr r1, [sp] ldrh r2, [r1, #8] _08034E72: lsls r2, r2, #3 adds r2, r2, r3 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x30 _08034E7E: orrs r0, r1 strb r0, [r2, #5] adds r4, r3, #0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r6, r3] ldr r5, [sp] movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r3, _08034F2C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08034F30 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r5, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _08034EB4: ldr r4, _08034F34 @ =0x0200BC58 str r4, [sp] ldrh r0, [r4] adds r4, #0xb8 mov r8, r4 cmp r0, #0 bne _08034EC4 b _08034FC4 _08034EC4: mov r5, sl ldr r1, [r5] ldr r6, _08034F38 @ =0x00000386 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08034F40 adds r0, r1, #0 adds r0, #0x58 ldrh r4, [r0] rsbs r4, r4, #0 movs r7, #0xfa lsls r7, r7, #2 adds r0, r1, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r2, [sp] strh r4, [r2, #2] ldr r5, [r5] adds r0, r5, #0 adds r0, #0x5a ldrh r4, [r0] rsbs r4, r4, #0 ldr r3, _08034F3C @ =0x000003EA adds r0, r5, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r4, r4, r0 subs r7, #2 adds r5, r5, r7 movs r1, #0 ldrsh r0, [r5, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 subs r0, #0x5c adds r4, r4, r0 ldr r2, [sp] strh r4, [r2, #4] b _08034F4A .align 2, 0 _08034F28: .4byte 0x03005000 _08034F2C: .4byte 0x000001FF _08034F30: .4byte 0xFFFFFE00 _08034F34: .4byte 0x0200BC58 _08034F38: .4byte 0x00000386 _08034F3C: .4byte 0x000003EA _08034F40: movs r0, #0xf0 ldr r3, [sp] strh r0, [r3, #2] movs r0, #0xa0 strh r0, [r3, #4] _08034F4A: ldr r3, _08035060 @ =0x0200B0C0 ldr r1, [r3, #0x4c] movs r0, #3 ands r1, r0 ldr r2, _08035064 @ =0x040000D4 lsrs r1, r1, #1 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #0xa ldr r1, _08035068 @ =0x08494E4C adds r0, r0, r1 str r0, [r2] ldr r0, _0803506C @ =0x06011AA0 str r0, [r2, #4] ldr r0, _08035070 @ =0x80000600 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 movs r4, #0xc5 lsls r4, r4, #4 adds r4, r4, r3 mov r8, r4 ldr r5, _08035074 @ =0x03005000 ldr r6, _08035078 @ =0xFFFFFE00 mov sb, r6 _08034F7C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r7, [sp] adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0803507C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08034F7C _08034FC4: mov r3, r8 str r3, [sp] ldrh r0, [r3] cmp r0, #0 bne _08034FD0 b _080350D4 _08034FD0: mov r5, sl ldr r4, [r5] movs r6, #0xfa lsls r6, r6, #2 adds r0, r4, r6 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r0, #0x10 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 ldr r1, [sp] strh r0, [r1, #2] ldr r4, [r5] ldr r2, _08035080 @ =0x000003E2 adds r0, r4, r2 ldrh r0, [r0] subs r0, #0xa lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bhi _08035098 ldr r3, _08035084 @ =0x000003EA adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r0, #0x14 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 ldr r6, [sp] strh r0, [r6, #4] mov r7, sl ldr r0, [r7] ldr r1, _08035088 @ =0x000005A6 adds r0, r0, r1 ldrh r0, [r0] movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0 mov sb, r2 cmp r0, #0xa ble _08035046 movs r3, #2 mov sb, r3 cmp r0, #0x11 bgt _08035046 movs r4, #1 mov sb, r4 _08035046: ldr r2, _08035064 @ =0x040000D4 mov r5, sb lsls r0, r5, #0x10 asrs r0, r0, #7 ldr r1, _0803508C @ =0x084FF30C adds r0, r0, r1 str r0, [r2] ldr r0, _08035090 @ =0x060118A0 str r0, [r2, #4] ldr r0, _08035094 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] b _0803509E .align 2, 0 _08035060: .4byte 0x0200B0C0 _08035064: .4byte 0x040000D4 _08035068: .4byte 0x08494E4C _0803506C: .4byte 0x06011AA0 _08035070: .4byte 0x80000600 _08035074: .4byte 0x03005000 _08035078: .4byte 0xFFFFFE00 _0803507C: .4byte 0x000001FF _08035080: .4byte 0x000003E2 _08035084: .4byte 0x000003EA _08035088: .4byte 0x000005A6 _0803508C: .4byte 0x084FF30C _08035090: .4byte 0x060118A0 _08035094: .4byte 0x80000100 _08035098: movs r0, #0xb4 ldr r6, [sp] strh r0, [r6, #4] _0803509E: ldr r6, [sp] adds r6, #8 ldr r4, _080350E4 @ =0x03005000 ldr r7, [sp] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r5, _080350E8 @ =0x000001FF adds r0, r5, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080350EC @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _080350D4: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080350E4: .4byte 0x03005000 _080350E8: .4byte 0x000001FF _080350EC: .4byte 0xFFFFFE00 thumb_func_start sub_350F0 sub_350F0: @ 0x080350F0 push {r4, r5, lr} ldr r5, _08035118 @ =0x020314E0 ldr r0, [r5] movs r1, #0x88 lsls r1, r1, #5 adds r0, r0, r1 movs r2, #0 movs r1, #1 strb r1, [r0] ldr r3, [r5] movs r4, #0x17 ldrsb r4, [r3, r4] cmp r4, #1 beq _08035138 cmp r4, #1 bgt _0803511C cmp r4, #0 beq _08035122 b _080351A0 .align 2, 0 _08035118: .4byte 0x020314E0 _0803511C: cmp r4, #2 beq _08035164 b _080351A0 _08035122: movs r0, #0x41 strh r0, [r3, #0x18] strb r1, [r3, #0x17] ldr r1, _08035134 @ =0x0200B0C0 ldrh r0, [r1, #0x38] movs r0, #0x9f strh r0, [r1, #0x38] b _080351A0 .align 2, 0 _08035134: .4byte 0x0200B0C0 _08035138: ldrh r0, [r3, #0x18] cmp r0, #0 beq _080351A0 subs r0, #1 strh r0, [r3, #0x18] ldr r2, _08035160 @ =0x0200B0C0 ldrh r0, [r3, #0x18] lsrs r0, r0, #2 movs r1, #0x10 subs r1, r1, r0 ldrh r0, [r2, #0x3c] strh r1, [r2, #0x3c] ldrh r0, [r3, #0x18] cmp r0, #0 bne _080351A0 ldrb r0, [r3, #0x17] adds r0, #1 strb r0, [r3, #0x17] b _080351A0 .align 2, 0 _08035160: .4byte 0x0200B0C0 _08035164: ldrh r0, [r3, #0x18] cmp r0, #0x1d bhi _08035170 adds r0, #1 strh r0, [r3, #0x18] b _080351A0 _08035170: movs r0, #0 strh r2, [r3, #0x18] strb r0, [r3, #0x17] ldr r1, _08035194 @ =0x0200B0C0 movs r3, #0xe9 lsls r3, r3, #3 adds r0, r1, r3 strh r2, [r0] subs r3, #0xb8 adds r0, r1, r3 strh r2, [r0] ldrb r0, [r1, #5] ldrb r1, [r1, #4] cmp r0, r1 beq _08035198 bl sub_357B8 b _080351A0 .align 2, 0 _08035194: .4byte 0x0200B0C0 _08035198: bl sub_438 ldr r0, [r5] strb r4, [r0, #0x1d] _080351A0: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_351A8 sub_351A8: @ 0x080351A8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 movs r4, #8 movs r0, #0 mov r8, r0 ldr r7, _080351F8 @ =0x0200B808 ldr r0, _080351FC @ =0x020314E0 ldr r1, [r0] movs r3, #0xe5 lsls r3, r3, #2 adds r2, r1, r3 ldrh r3, [r2] movs r5, #0 ldrsh r1, [r2, r5] mov sb, r0 cmp r1, #0 ble _080351E0 subs r0, r3, #6 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bge _080351E0 mov r6, r8 strh r6, [r2] _080351E0: ldr r1, _08035200 @ =0x0200B0C0 ldrb r0, [r1, #4] subs r0, #2 cmp r0, #4 bls _080351EC b _08035314 _080351EC: lsls r0, r0, #2 ldr r1, _08035204 @ =_08035208 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080351F8: .4byte 0x0200B808 _080351FC: .4byte 0x020314E0 _08035200: .4byte 0x0200B0C0 _08035204: .4byte _08035208 _08035208: @ jump table .4byte _0803521C @ case 0 .4byte _08035250 @ case 1 .4byte _08035280 @ case 2 .4byte _080352B4 @ case 3 .4byte _080352E8 @ case 4 _0803521C: mov r0, sb ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _08035244 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _08035244 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08035244: ldr r1, _0803524C @ =0x01C9C380 mov r8, r1 b _08035314 .align 2, 0 _0803524C: .4byte 0x01C9C380 _08035250: mov r2, sb ldr r1, [r2] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _08035278 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _08035278 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08035278: ldr r3, _0803527C @ =0x01C9C380 b _08035312 .align 2, 0 _0803527C: .4byte 0x01C9C380 _08035280: mov r5, sb ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _080352A8 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _080352A8 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _080352A8: ldr r6, _080352B0 @ =0x02FAF080 mov r8, r6 b _08035314 .align 2, 0 _080352B0: .4byte 0x02FAF080 _080352B4: mov r0, sb ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _080352DC ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _080352DC movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _080352DC: ldr r1, _080352E4 @ =0x02FAF080 mov r8, r1 b _08035314 .align 2, 0 _080352E4: .4byte 0x02FAF080 _080352E8: mov r2, sb ldr r1, [r2] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _08035310 ldrh r0, [r1, #0x18] cmp r0, #0xb3 bhi _08035310 movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xc bl __udivsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08035310: ldr r3, _080354A0 @ =0x05F5E0FF _08035312: mov r8, r3 _08035314: ldr r2, _080354A4 @ =0x040000D4 ldr r0, _080354A8 @ =0x02031520 lsls r1, r4, #0x10 asrs r1, r1, #0xb ldr r0, [r0, #0x2c] adds r0, r0, r1 str r0, [r2] ldr r0, _080354AC @ =0x05000300 str r0, [r2, #4] ldr r0, _080354B0 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] ldrh r0, [r7] cmp r0, #0 beq _080353F8 movs r0, #0x78 strh r0, [r7, #2] mov r5, sb ldr r0, [r5] movs r6, #0xe5 lsls r6, r6, #2 adds r0, r0, r6 ldrh r0, [r0] adds r0, #0x32 strh r0, [r7, #4] movs r0, #0 ldr r1, _080354B4 @ =0x0200B750 mov sl, r1 ldr r6, _080354B8 @ =0x03005000 ldr r2, _080354BC @ =0xFFFFFE00 mov ip, r2 _08035352: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080354C0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _08035352 mov r7, sl movs r0, #0x78 strh r0, [r7, #2] mov r3, sb ldr r0, [r3] movs r5, #0xe5 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] adds r0, #0x32 strh r0, [r7, #4] movs r0, #0 ldr r6, _080354B8 @ =0x03005000 ldr r1, _080354BC @ =0xFFFFFE00 mov ip, r1 _080353B4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080354C0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x11 ble _080353B4 _080353F8: mov r5, sp ldr r4, _080354C4 @ =0x00989680 mov r0, r8 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 ldr r4, _080354C8 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 ldr r4, _080354CC @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #4] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 ldr r4, _080354D0 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #6] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp mov r0, r8 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0xa] mov r4, sp mov r0, r8 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0xc] mov r4, sp mov r0, r8 movs r1, #0xa bl __modsi3 strh r0, [r4, #0xe] ldr r3, _080354D4 @ =0x0200B0C0 ldrb r0, [r3, #4] subs r0, #2 cmp r0, #4 bls _08035494 b _08035678 _08035494: lsls r0, r0, #2 ldr r1, _080354D8 @ =_080354DC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080354A0: .4byte 0x05F5E0FF _080354A4: .4byte 0x040000D4 _080354A8: .4byte 0x02031520 _080354AC: .4byte 0x05000300 _080354B0: .4byte 0x80000010 _080354B4: .4byte 0x0200B750 _080354B8: .4byte 0x03005000 _080354BC: .4byte 0xFFFFFE00 _080354C0: .4byte 0x000001FF _080354C4: .4byte 0x00989680 _080354C8: .4byte 0x000F4240 _080354CC: .4byte 0x000186A0 _080354D0: .4byte 0x00002710 _080354D4: .4byte 0x0200B0C0 _080354D8: .4byte _080354DC _080354DC: @ jump table .4byte _080354F0 @ case 0 .4byte _0803553C @ case 1 .4byte _08035588 @ case 2 .4byte _080355D4 @ case 3 .4byte _08035620 @ case 4 _080354F0: movs r0, #0 ldr r5, _0803552C @ =0x08138834 ldr r3, _08035530 @ =0x040000D4 adds r4, r5, #0 _080354F8: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035534 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _08035538 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _080354F8 b _08035658 .align 2, 0 _0803552C: .4byte 0x08138834 _08035530: .4byte 0x040000D4 _08035534: .4byte 0x06017180 _08035538: .4byte 0x80000020 _0803553C: movs r0, #0 ldr r5, _08035578 @ =0x0813A854 ldr r3, _0803557C @ =0x040000D4 adds r4, r5, #0 _08035544: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035580 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _08035584 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _08035544 b _08035658 .align 2, 0 _08035578: .4byte 0x0813A854 _0803557C: .4byte 0x040000D4 _08035580: .4byte 0x06017180 _08035584: .4byte 0x80000020 _08035588: movs r0, #0 ldr r5, _080355C4 @ =0x0813C874 ldr r3, _080355C8 @ =0x040000D4 adds r4, r5, #0 _08035590: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _080355CC @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _080355D0 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _08035590 b _08035658 .align 2, 0 _080355C4: .4byte 0x0813C874 _080355C8: .4byte 0x040000D4 _080355CC: .4byte 0x06017180 _080355D0: .4byte 0x80000020 _080355D4: movs r0, #0 ldr r5, _08035610 @ =0x0813E894 ldr r3, _08035614 @ =0x040000D4 adds r4, r5, #0 _080355DC: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035618 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _0803561C @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _080355DC b _08035658 .align 2, 0 _08035610: .4byte 0x0813E894 _08035614: .4byte 0x040000D4 _08035618: .4byte 0x06017180 _0803561C: .4byte 0x80000020 _08035620: movs r0, #0 ldr r5, _08035688 @ =0x081408B4 ldr r3, _0803568C @ =0x040000D4 adds r4, r5, #0 _08035628: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 mov r6, sp adds r0, r6, r2 movs r6, #0 ldrsh r0, [r0, r6] adds r0, #0x70 lsls r0, r0, #6 adds r0, r0, r4 str r0, [r3] lsls r2, r2, #5 ldr r0, _08035690 @ =0x06017180 adds r2, r2, r0 str r2, [r3, #4] ldr r2, _08035694 @ =0x80000020 str r2, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #7 ble _08035628 _08035658: mov r1, sb ldr r0, [r1] ldr r3, _08035698 @ =0x000005F6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, _0803568C @ =0x040000D4 adds r0, #0x71 lsls r0, r0, #6 adds r0, r0, r5 str r0, [r1] ldr r0, _0803569C @ =0x06017380 str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] _08035678: add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08035688: .4byte 0x081408B4 _0803568C: .4byte 0x040000D4 _08035690: .4byte 0x06017180 _08035694: .4byte 0x80000020 _08035698: .4byte 0x000005F6 _0803569C: .4byte 0x06017380 thumb_func_start sub_356A0 sub_356A0: @ 0x080356A0 push {r4, r5, r6, r7, lr} ldr r6, _080356C4 @ =0x0200BDC8 ldr r1, _080356C8 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r1, #0 cmp r0, #8 bhi _08035740 lsls r0, r0, #2 ldr r1, _080356CC @ =_080356D0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080356C4: .4byte 0x0200BDC8 _080356C8: .4byte 0x020314E0 _080356CC: .4byte _080356D0 _080356D0: @ jump table .4byte _08035702 @ case 0 .4byte _08035702 @ case 1 .4byte _080356F4 @ case 2 .4byte _08035740 @ case 3 .4byte _08035740 @ case 4 .4byte _08035740 @ case 5 .4byte _08035740 @ case 6 .4byte _08035740 @ case 7 .4byte _08035702 @ case 8 _080356F4: ldr r0, [r2] ldr r1, _080357A4 @ =0x000003E6 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 ble _08035740 _08035702: ldrh r0, [r6] cmp r0, #0 beq _08035740 movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldr r4, _080357A8 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] adds r1, #0xf0 ldr r3, _080357AC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080357B0 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08035740: ldr r6, _080357B4 @ =0x0200BC58 ldrh r0, [r6] cmp r0, #0 beq _0803579C movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] movs r0, #0 ldr r7, _080357A8 @ =0x03005000 ldr r1, _080357B0 @ =0xFFFFFE00 mov ip, r1 _08035758: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080357AC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08035758 _0803579C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080357A4: .4byte 0x000003E6 _080357A8: .4byte 0x03005000 _080357AC: .4byte 0x000001FF _080357B0: .4byte 0xFFFFFE00 _080357B4: .4byte 0x0200BC58 thumb_func_start sub_357B8 sub_357B8: @ 0x080357B8 push {r4, r5, lr} bl m4aMPlayAllStop bl sub_D10 ldr r2, _08035844 @ =0x0200B0C0 ldrb r1, [r2, #5] ldrb r0, [r2, #4] movs r3, #0 strb r0, [r2, #5] strb r1, [r2, #4] strb r3, [r2, #6] strb r3, [r2, #0xf] ldr r4, _08035848 @ =0x020314E0 ldr r0, [r4] ldr r5, _0803584C @ =0x00000296 adds r1, r0, r5 movs r5, #0 strh r3, [r1] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] subs r1, #0x11 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #4 bls _080357F6 movs r0, #1 strb r0, [r2, #8] _080357F6: strb r5, [r2, #3] ldr r1, [r4] movs r0, #3 strb r0, [r1, #0x15] ldr r1, [r4] movs r0, #1 strb r0, [r1, #0x13] ldr r0, [r4] strb r5, [r0, #0x16] ldr r0, [r4] ldr r2, _08035850 @ =0x000005FA adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] adds r0, #0xe6 strh r3, [r0] movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, [r4] ldr r1, _08035854 @ =0x000006C4 adds r0, r0, r1 strb r5, [r0] ldr r1, [r4] ldr r2, _08035858 @ =0x00000714 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803583E ldr r5, _0803585C @ =0x000006EE adds r1, r1, r5 movs r0, #0x78 strh r0, [r1] _0803583E: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08035844: .4byte 0x0200B0C0 _08035848: .4byte 0x020314E0 _0803584C: .4byte 0x00000296 _08035850: .4byte 0x000005FA _08035854: .4byte 0x000006C4 _08035858: .4byte 0x00000714 _0803585C: .4byte 0x000006EE thumb_func_start sub_35860 sub_35860: @ 0x08035860 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r3, _08035A5C @ =0x020314E0 ldr r0, [r3] movs r4, #0 movs r6, #0 strh r6, [r0, #0x18] strb r4, [r0, #0x17] ldr r0, [r3] strb r4, [r0, #0x13] ldr r0, [r3] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #1 mov r8, r2 mov r7, r8 strb r7, [r0] ldr r2, [r3] adds r5, r2, #0 adds r5, #0x6c movs r1, #0xe1 lsls r1, r1, #5 adds r0, r1, #0 ldrh r7, [r5] adds r0, r0, r7 ldr r7, _08035A60 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r6, [r5] ldr r0, _08035A64 @ =0x00000383 adds r2, r2, r0 strb r4, [r2] ldr r0, [r3] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r5, #3 strb r5, [r0] ldr r0, [r3] ldr r2, _08035A68 @ =0x00000392 adds r1, r0, r2 strh r6, [r1] ldr r7, _08035A6C @ =0x0000132C adds r0, r0, r7 ldr r0, [r0] mov r1, r8 strb r1, [r0] ldr r0, [r3] subs r2, #0xc adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] ldr r7, _08035A70 @ =0x000003F7 adds r0, r0, r7 strb r1, [r0] ldr r0, [r3] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 strb r4, [r0] ldr r1, [r3] subs r7, #0xf adds r2, r1, r7 ldr r0, _08035A74 @ =0x000002EE strh r0, [r2] adds r0, #0xfc adds r2, r1, r0 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r2] ldr r2, _08035A78 @ =0x000003DF adds r1, r1, r2 strb r5, [r1] ldr r0, [r3] subs r7, #0x63 adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] ldr r1, _08035A7C @ =0x00000387 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] subs r2, #0x4b adds r1, r0, r2 strh r6, [r1] adds r7, #0x59 adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] movs r1, #0xf8 lsls r1, r1, #2 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #0x4e adds r1, r0, r2 strh r6, [r1] adds r7, #6 adds r1, r0, r7 strh r6, [r1] movs r1, #0xfd lsls r1, r1, #2 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #0x13 adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] adds r7, #0x12 adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] adds r1, #4 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #5 adds r1, r0, r2 strh r6, [r1] adds r7, #6 adds r1, r0, r7 strh r6, [r1] ldr r1, _08035A80 @ =0x00000404 adds r0, r0, r1 strb r4, [r0] ldr r0, [r3] adds r2, #0xb adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] adds r7, #0xa adds r0, r0, r7 strb r4, [r0] ldr r0, [r3] adds r2, #3 adds r1, r0, r2 strh r6, [r1] adds r7, #4 adds r1, r0, r7 strh r6, [r1] adds r2, #4 adds r1, r0, r2 strh r6, [r1] adds r7, #4 adds r1, r0, r7 strh r6, [r1] adds r2, #4 adds r1, r0, r2 strh r6, [r1] adds r7, #4 adds r0, r0, r7 strh r6, [r0] movs r2, #0 adds r6, r3, #0 adds r5, r6, #0 ldr r4, _08035A84 @ =0x0000041C movs r3, #0 _080359A0: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080359A0 movs r2, #0 ldr r5, _08035A5C @ =0x020314E0 movs r4, #0x84 lsls r4, r4, #3 movs r3, #0 _080359C2: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _080359C2 movs r2, #0 ldr r5, _08035A5C @ =0x020314E0 ldr r4, _08035A88 @ =0x0000042A movs r3, #0 _080359E2: ldr r1, [r5] lsls r0, r2, #0x10 asrs r0, r0, #0x10 adds r1, r1, r4 adds r1, r1, r0 strb r3, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #6 ble _080359E2 ldr r1, [r6] movs r0, #0 strb r0, [r1, #0x1a] ldr r4, [r6] ldr r1, _08035A8C @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x3a ldr r7, _08035A90 @ =0x00000402 adds r4, r4, r7 strh r0, [r4] bl sub_38218 ldr r0, [r6] ldr r1, _08035A7C @ =0x00000387 adds r0, r0, r1 movs r1, #1 strb r1, [r0] bl sub_35D54 bl sub_36CB4 movs r0, #0x24 bl m4aSongNumStart bl sub_372B4 bl sub_3751C bl sub_37850 ldr r1, _08035A94 @ =0x040000D4 ldr r0, _08035A98 @ =0x081B36A4 str r0, [r1] ldr r0, _08035A9C @ =0x05000320 str r0, [r1, #4] ldr r0, _08035AA0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08035A5C: .4byte 0x020314E0 _08035A60: .4byte 0x00000296 _08035A64: .4byte 0x00000383 _08035A68: .4byte 0x00000392 _08035A6C: .4byte 0x0000132C _08035A70: .4byte 0x000003F7 _08035A74: .4byte 0x000002EE _08035A78: .4byte 0x000003DF _08035A7C: .4byte 0x00000387 _08035A80: .4byte 0x00000404 _08035A84: .4byte 0x0000041C _08035A88: .4byte 0x0000042A _08035A8C: .4byte 0x000003EA _08035A90: .4byte 0x00000402 _08035A94: .4byte 0x040000D4 _08035A98: .4byte 0x081B36A4 _08035A9C: .4byte 0x05000320 _08035AA0: .4byte 0x80000010 thumb_func_start sub_35AA4 sub_35AA4: @ 0x08035AA4 push {r4, r5, r6, lr} bl sub_38218 ldr r0, _08035AC4 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bls _08035ABA b _08035CB4 _08035ABA: lsls r0, r0, #2 ldr r1, _08035AC8 @ =_08035ACC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035AC4: .4byte 0x020314E0 _08035AC8: .4byte _08035ACC _08035ACC: @ jump table .4byte _08035AE0 @ case 0 .4byte _08035B5C @ case 1 .4byte _08035BCC @ case 2 .4byte _08035C34 @ case 3 .4byte _08035CA4 @ case 4 _08035AE0: ldr r1, _08035B10 @ =0x020314E0 ldr r0, [r1] ldr r2, _08035B14 @ =0x000005F7 adds r0, r0, r2 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r4, [r1] ldrh r0, [r4, #0x18] cmp r0, #0x77 bhi _08035B1C movs r1, #5 bl __udivsi3 ldr r1, _08035B18 @ =0x0000FFE8 adds r0, r0, r1 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] b _08035B28 .align 2, 0 _08035B10: .4byte 0x020314E0 _08035B14: .4byte 0x000005F7 _08035B18: .4byte 0x0000FFE8 _08035B1C: adds r0, r4, #0 adds r0, #0xe6 strh r3, [r0] strb r2, [r4, #0x13] ldr r0, [r1] strh r3, [r0, #0x18] _08035B28: ldr r0, _08035B4C @ =0x020314E0 ldr r0, [r0] ldr r2, _08035B50 @ =0x00000386 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035B3C b _08035CB4 _08035B3C: ldr r1, _08035B54 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _08035B58 @ =0x00001C10 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] movs r0, #0x10 strh r0, [r1, #0x3a] b _08035CB4 .align 2, 0 _08035B4C: .4byte 0x020314E0 _08035B50: .4byte 0x00000386 _08035B54: .4byte 0x0200B0C0 _08035B58: .4byte 0x00001C10 _08035B5C: ldr r0, _08035B9C @ =0x020314E0 ldr r2, [r0] ldr r4, _08035BA0 @ =0x00000386 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035B70 b _08035CB4 _08035B70: ldr r1, _08035BA4 @ =0x0000040E adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0 bne _08035BB0 adds r4, #0x74 adds r2, r2, r4 ldrh r1, [r2] movs r0, #0x10 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldrh r3, [r2] ldr r2, _08035BA8 @ =0x0200B0C0 ldrh r1, [r2, #0x38] ldr r1, _08035BAC @ =0x00001C10 strh r1, [r2, #0x38] lsls r3, r3, #8 orrs r0, r3 ldrh r1, [r2, #0x3a] strh r0, [r2, #0x3a] b _08035CB4 .align 2, 0 _08035B9C: .4byte 0x020314E0 _08035BA0: .4byte 0x00000386 _08035BA4: .4byte 0x0000040E _08035BA8: .4byte 0x0200B0C0 _08035BAC: .4byte 0x00001C10 _08035BB0: ldr r1, _08035BC0 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _08035BC4 @ =0x00001C42 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _08035BC8 @ =0x00000907 strh r0, [r1, #0x3a] b _08035CB4 .align 2, 0 _08035BC0: .4byte 0x0200B0C0 _08035BC4: .4byte 0x00001C42 _08035BC8: .4byte 0x00000907 _08035BCC: ldr r2, _08035BDC @ =0x020314E0 ldr r3, [r2] ldrh r0, [r3, #0x18] cmp r0, #9 bhi _08035BE0 adds r0, #1 strh r0, [r3, #0x18] b _08035CB4 .align 2, 0 _08035BDC: .4byte 0x020314E0 _08035BE0: movs r1, #0 movs r0, #3 strb r0, [r3, #0x13] ldr r2, [r2] strh r1, [r2, #0x18] ldr r3, _08035C20 @ =0x0200B0C0 movs r1, #0xe9 lsls r1, r1, #3 adds r0, r3, r1 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _08035C24 @ =0x040000D4 ldr r0, _08035C28 @ =0x0813A854 str r0, [r1] ldr r0, _08035C2C @ =0x06015800 str r0, [r1, #4] ldr r0, _08035C30 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r2, r2, r0 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _08035CB4 .align 2, 0 _08035C20: .4byte 0x0200B0C0 _08035C24: .4byte 0x040000D4 _08035C28: .4byte 0x0813A854 _08035C2C: .4byte 0x06015800 _08035C30: .4byte 0x80001000 _08035C34: bl sub_351A8 ldr r4, _08035C7C @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _08035C46 movs r0, #0xb5 strh r0, [r1, #0x18] _08035C46: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _08035C5C movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08035C80 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08035C84 @ =0x01C9C380 str r0, [r1, #0x3c] _08035C5C: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _08035C88 cmp r0, #0x14 bne _08035C72 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08035C72: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _08035CB4 .align 2, 0 _08035C7C: .4byte 0x020314E0 _08035C80: .4byte 0x00061A80 _08035C84: .4byte 0x01C9C380 _08035C88: movs r0, #0 strh r0, [r1, #0x18] movs r0, #4 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _08035CA0 @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08035CB4 .align 2, 0 _08035CA0: .4byte 0x00000283 _08035CA4: bl sub_351A8 ldr r0, _08035D3C @ =0x020314E0 ldr r0, [r0] ldr r4, _08035D40 @ =0x00000386 adds r0, r0, r4 movs r1, #1 strb r1, [r0] _08035CB4: bl sub_35D54 bl sub_36CB4 bl sub_372B4 bl sub_3751C ldr r6, _08035D3C @ =0x020314E0 ldr r1, [r6] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035D16 ldr r4, _08035D44 @ =0x00000296 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #1 bhi _08035D16 ldr r5, _08035D48 @ =0x0200B0C0 ldrb r4, [r5, #0xf] cmp r4, #0 bne _08035D16 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldr r0, [r6] ldr r1, _08035D4C @ =0x00000404 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] movs r2, #0x81 lsls r2, r2, #3 adds r1, r0, r2 movs r2, #0 strh r4, [r1] ldr r4, _08035D50 @ =0x00000406 adds r0, r0, r4 strb r2, [r0] ldrb r1, [r5, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r5, #0xf] _08035D16: ldr r0, _08035D3C @ =0x020314E0 ldr r0, [r0] ldr r1, _08035D40 @ =0x00000386 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08035D2C bl sub_350F0 _08035D2C: bl sub_472E4 bl sub_37850 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08035D3C: .4byte 0x020314E0 _08035D40: .4byte 0x00000386 _08035D44: .4byte 0x00000296 _08035D48: .4byte 0x0200B0C0 _08035D4C: .4byte 0x00000404 _08035D50: .4byte 0x00000406 thumb_func_start sub_35D54 sub_35D54: @ 0x08035D54 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r1, _08035D84 @ =0x020314E0 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r1 cmp r0, #0xf bls _08035D78 bl _08036C9E _08035D78: lsls r0, r0, #2 ldr r1, _08035D88 @ =_08035D8C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08035D84: .4byte 0x020314E0 _08035D88: .4byte _08035D8C _08035D8C: @ jump table .4byte _08035DCC @ case 0 .4byte _08035E34 @ case 1 .4byte _08035EDC @ case 2 .4byte _08036008 @ case 3 .4byte _080360B8 @ case 4 .4byte _08036218 @ case 5 .4byte _0803631C @ case 6 .4byte _08036544 @ case 7 .4byte _0803662C @ case 8 .4byte _0803671C @ case 9 .4byte _08036808 @ case 10 .4byte _0803689C @ case 11 .4byte _08036908 @ case 12 .4byte _080369E4 @ case 13 .4byte _08036BA2 @ case 14 .4byte _08036C60 @ case 15 _08035DCC: mov r3, r8 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r2, #0 movs r1, #1 strb r1, [r0] ldr r1, [r3] ldr r5, _08035E24 @ =0x000003E2 adds r0, r1, r5 movs r4, #3 strh r4, [r0] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r1, r3 strh r2, [r0] adds r5, #6 adds r2, r1, r5 ldr r0, _08035E28 @ =0x000002EE strh r0, [r2] adds r0, #0xfc adds r1, r1, r0 movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] bl sub_C00 mov r1, r8 ldr r3, [r1] ldr r2, _08035E2C @ =0x086AE9E4 ldr r1, _08035E30 @ =0x0200B0C0 ldr r1, [r1, #0x4c] muls r0, r1, r0 ands r0, r4 adds r2, #0x50 adds r0, r0, r2 ldrb r0, [r0] movs r2, #0xfd lsls r2, r2, #2 adds r3, r3, r2 strb r0, [r3] bl _08036C9E .align 2, 0 _08035E24: .4byte 0x000003E2 _08035E28: .4byte 0x000002EE _08035E2C: .4byte 0x086AE9E4 _08035E30: .4byte 0x0200B0C0 _08035E34: ldr r2, _08035E60 @ =0x086AE718 mov r4, r8 ldr r3, [r4] ldr r5, _08035E64 @ =0x000003E2 adds r4, r3, r5 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _08035E68 adds r0, r1, #1 strh r0, [r3] b _08035E7E .align 2, 0 _08035E60: .4byte 0x086AE718 _08035E64: .4byte 0x000003E2 _08035E68: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bne _08035E7E movs r0, #3 strh r0, [r4] _08035E7E: mov r2, r8 ldr r3, [r2] movs r4, #0xfa lsls r4, r4, #2 adds r1, r3, r4 ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0 ble _08035E98 subs r0, r2, #6 strh r0, [r1] b _08035EB8 _08035E98: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r3, r0 movs r3, #0 movs r0, #2 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r4, _08035ED4 @ =0x000003E2 adds r2, r0, r4 movs r1, #0x3b strh r1, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r0, r5 strh r3, [r0] _08035EB8: mov r1, r8 ldr r0, [r1] ldr r2, _08035ED8 @ =0x00000392 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #2 bhi _08035ECA bl _08036C9E _08035ECA: subs r0, #1 strh r0, [r1] bl _08036C9E .align 2, 0 _08035ED4: .4byte 0x000003E2 _08035ED8: .4byte 0x00000392 _08035EDC: ldr r2, _08035F08 @ =0x086AE718 mov r4, r8 ldr r3, [r4] ldr r5, _08035F0C @ =0x000003E2 adds r4, r3, r5 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r3, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08035F10 adds r0, r1, #1 strh r0, [r2] b _08035FAE .align 2, 0 _08035F08: .4byte 0x086AE718 _08035F0C: .4byte 0x000003E2 _08035F10: movs r0, #0 strh r0, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x42 bne _08035F92 movs r0, #0x41 strh r0, [r4] ldr r4, _08035F3C @ =0x0000040E adds r0, r3, r4 ldrh r0, [r0] cmp r0, #7 bhi _08035F40 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r3, r5 movs r0, #3 strb r0, [r1] b _08035F92 .align 2, 0 _08035F3C: .4byte 0x0000040E _08035F40: ldr r0, _08035F54 @ =0x000003F5 adds r1, r3, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08035F58 movs r0, #0x14 strh r0, [r2] b _08035F5E .align 2, 0 _08035F54: .4byte 0x000003F5 _08035F58: strh r0, [r2] movs r0, #1 strb r0, [r1] _08035F5E: ldr r4, _08035FE8 @ =0x020314E0 ldr r0, [r4] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #5 strb r1, [r0] bl sub_C00 ldr r1, _08035FEC @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 ldr r2, [r4] ldr r3, _08035FF0 @ =0x086AE9E4 ands r0, r1 movs r4, #0xfd lsls r4, r4, #2 adds r2, r2, r4 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r2] _08035F92: ldr r0, _08035FE8 @ =0x020314E0 ldr r0, [r0] ldr r5, _08035FF4 @ =0x000003E2 adds r0, r0, r5 ldrh r0, [r0] subs r0, #0x3c lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bhi _08035FAE ldr r0, _08035FF8 @ =0x02032F20 ldr r1, _08035FFC @ =0x086A1ABC bl MPlayStart _08035FAE: ldr r0, _08035FE8 @ =0x020314E0 ldr r1, [r0] ldr r2, _08035FF4 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x40 beq _08035FC2 bl _08036C9E _08035FC2: movs r4, #0xf9 lsls r4, r4, #2 adds r2, r1, r4 ldrh r0, [r2] lsrs r0, r0, #1 ldr r5, _08036000 @ =0x000003FA adds r1, r1, r5 strh r0, [r1] ldrh r0, [r2] cmp r0, #4 beq _08035FDC bl _08036C9E _08035FDC: ldr r0, _08035FF8 @ =0x02032F20 ldr r1, _08036004 @ =0x086A1B9C bl MPlayStart bl _08036C9E .align 2, 0 _08035FE8: .4byte 0x020314E0 _08035FEC: .4byte 0x0200B0C0 _08035FF0: .4byte 0x086AE9E4 _08035FF4: .4byte 0x000003E2 _08035FF8: .4byte 0x02032F20 _08035FFC: .4byte 0x086A1ABC _08036000: .4byte 0x000003FA _08036004: .4byte 0x086A1B9C _08036008: mov r0, r8 ldr r1, [r0] ldr r3, _080360A0 @ =0x086AE9E4 movs r4, #0xfd lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #3 adds r0, r0, r3 ldrh r0, [r0, #4] movs r5, #0xfb lsls r5, r5, #2 adds r4, r1, r5 movs r5, #0 strh r0, [r4] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #3 adds r0, r0, r3 ldrh r0, [r0, #6] ldr r2, _080360A4 @ =0x000003EE adds r3, r1, r2 strh r0, [r3] movs r0, #0 ldrsh r2, [r4, r0] movs r4, #0xfa lsls r4, r4, #2 adds r0, r1, r4 movs r4, #0 ldrsh r0, [r0, r4] subs r6, r2, r0 movs r0, #0 ldrsh r2, [r3, r0] ldr r3, _080360A8 @ =0x000003EA adds r1, r1, r3 movs r4, #0 ldrsh r0, [r1, r4] subs r7, r2, r0 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 mov r2, r8 ldr r1, [r2] ldr r2, _080360AC @ =0x086AE9C4 lsrs r0, r0, #0x1d lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] ldr r0, _080360B0 @ =0x000003DE adds r1, r1, r0 strb r2, [r1] mov r3, r8 ldr r1, [r3] adds r0, r1, r0 movs r2, #0 ldrsb r2, [r0, r2] ldr r4, _080360B4 @ =0x000003E2 adds r0, r1, r4 strh r2, [r0] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 strh r5, [r0] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #4 strb r0, [r1] bl _08036C9E .align 2, 0 _080360A0: .4byte 0x086AE9E4 _080360A4: .4byte 0x000003EE _080360A8: .4byte 0x000003EA _080360AC: .4byte 0x086AE9C4 _080360B0: .4byte 0x000003DE _080360B4: .4byte 0x000003E2 _080360B8: ldr r4, _08036180 @ =0x020314E0 mov sb, r4 ldr r1, [r4] movs r5, #0xfb lsls r5, r5, #2 adds r0, r1, r5 movs r3, #0 ldrsh r2, [r0, r3] subs r5, #4 adds r0, r1, r5 movs r4, #0 ldrsh r0, [r0, r4] subs r6, r2, r0 ldr r2, _08036184 @ =0x000003EE adds r0, r1, r2 movs r3, #0 ldrsh r2, [r0, r3] ldr r4, _08036188 @ =0x000003EA adds r1, r1, r4 movs r3, #0 ldrsh r0, [r1, r3] subs r7, r2, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 mov r8, r1 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 ldr r6, _0803618C @ =0x00004E20 adds r0, r1, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp] adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 adds r1, r6, #0 bl __divsi3 str r0, [sp, #4] mov r0, sb ldr r1, [r0] adds r5, r1, r5 ldrh r0, [r5] ldr r2, [sp] adds r0, r2, r0 strh r0, [r5] adds r4, r1, r4 ldrh r0, [r4] ldr r3, [sp, #4] adds r0, r3, r0 strh r0, [r4] ldr r0, _08036190 @ =0x000009C3 cmp r8, r0 bgt _080361B8 movs r4, #0xf7 lsls r4, r4, #2 adds r1, r1, r4 movs r0, #8 strb r0, [r1] mov r5, sb ldr r0, [r5] ldr r1, _08036194 @ =0x000003DE adds r2, r0, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #3 bne _0803619C movs r1, #0x42 strb r1, [r2] ldr r0, [r5] ldr r2, _08036198 @ =0x000003E2 adds r0, r0, r2 b _080361A8 .align 2, 0 _08036180: .4byte 0x020314E0 _08036184: .4byte 0x000003EE _08036188: .4byte 0x000003EA _0803618C: .4byte 0x00004E20 _08036190: .4byte 0x000009C3 _08036194: .4byte 0x000003DE _08036198: .4byte 0x000003E2 _0803619C: movs r1, #0x45 strb r1, [r2] mov r3, sb ldr r0, [r3] ldr r4, _08036208 @ =0x000003E2 adds r0, r0, r4 _080361A8: strh r1, [r0] ldr r0, _0803620C @ =0x020314E0 ldr r0, [r0] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080361B8: ldr r2, _08036210 @ =0x086AE718 ldr r0, _0803620C @ =0x020314E0 ldr r4, [r0] ldr r0, _08036208 @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _080361E2 bl _08036BD0 _080361E2: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r2, _08036214 @ =0x000003DE adds r0, r4, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #6 cmp r1, r0 beq _08036202 bl _08036C9E _08036202: strh r2, [r3] bl _08036C9E .align 2, 0 _08036208: .4byte 0x000003E2 _0803620C: .4byte 0x020314E0 _08036210: .4byte 0x086AE718 _08036214: .4byte 0x000003DE _08036218: mov r3, r8 ldr r4, [r3] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r4, r5 ldrh r0, [r0] cmp r0, #0x11 bhi _0803627C cmp r0, #0 bne _08036234 ldr r0, _0803625C @ =0x02032F20 ldr r1, _08036260 @ =0x086A1BC8 bl MPlayStart _08036234: mov r4, r8 ldr r2, [r4] adds r1, r2, r5 ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldr r5, _08036264 @ =0x000003DE adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x42 bne _0803626C ldr r0, _08036268 @ =0x000003E2 adds r1, r2, r0 movs r0, #0x25 strh r0, [r1] bl _08036C9E .align 2, 0 _0803625C: .4byte 0x02032F20 _08036260: .4byte 0x086A1BC8 _08036264: .4byte 0x000003DE _08036268: .4byte 0x000003E2 _0803626C: ldr r3, _08036278 @ =0x000003E2 adds r1, r2, r3 movs r0, #0x30 strh r0, [r1] bl _08036C9E .align 2, 0 _08036278: .4byte 0x000003E2 _0803627C: ldr r2, _08036304 @ =0x086AE9E4 movs r5, #0xfd lsls r5, r5, #2 adds r1, r4, r5 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0, #4] subs r5, #8 adds r3, r4, r5 strh r0, [r3] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #3 adds r0, r0, r2 ldrh r0, [r0, #6] ldr r1, _08036308 @ =0x000003EE adds r2, r4, r1 strh r0, [r2] movs r5, #0 ldrsh r1, [r3, r5] movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] subs r6, r1, r0 movs r0, #0 ldrsh r1, [r2, r0] ldr r2, _0803630C @ =0x000003EA adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] subs r7, r1, r0 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 mov r4, r8 ldr r1, [r4] ldr r2, _08036310 @ =0x086AE9D4 lsrs r0, r0, #0x1d lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] ldr r0, _08036314 @ =0x000003DE adds r1, r1, r0 strb r2, [r1] ldr r1, [r4] adds r0, r1, r0 movs r2, #0 ldrsb r2, [r0, r2] ldr r5, _08036318 @ =0x000003E2 adds r0, r1, r5 strh r2, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #6 strb r0, [r1] bl _08036C9E .align 2, 0 _08036304: .4byte 0x086AE9E4 _08036308: .4byte 0x000003EE _0803630C: .4byte 0x000003EA _08036310: .4byte 0x086AE9D4 _08036314: .4byte 0x000003DE _08036318: .4byte 0x000003E2 _0803631C: ldr r5, _080363E0 @ =0x020314E0 ldr r1, [r5] movs r2, #0xfb lsls r2, r2, #2 adds r0, r1, r2 movs r3, #0 ldrsh r2, [r0, r3] movs r4, #0xfa lsls r4, r4, #2 mov sb, r4 adds r0, r1, r4 movs r3, #0 ldrsh r0, [r0, r3] subs r6, r2, r0 adds r4, #6 adds r0, r1, r4 movs r3, #0 ldrsh r2, [r0, r3] subs r4, #4 adds r1, r1, r4 movs r3, #0 ldrsh r0, [r1, r3] subs r7, r2, r0 adds r1, r6, #0 muls r1, r6, r1 adds r0, r7, #0 muls r0, r7, r0 adds r1, r1, r0 mov r8, r1 lsls r0, r6, #0x10 asrs r0, r0, #0x10 rsbs r1, r7, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r0, r7, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xfa lsls r1, r1, #3 bl __divsi3 str r0, [sp] adds r0, r7, #0 bl sub_C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 ldr r1, _080363E4 @ =0x00004E20 bl __divsi3 str r0, [sp, #4] ldr r2, [r5] mov r0, sb adds r1, r2, r0 ldrh r0, [r1] ldr r3, [sp] adds r0, r3, r0 strh r0, [r1] adds r4, r2, r4 ldrh r0, [r4] ldr r1, [sp, #4] adds r0, r1, r0 strh r0, [r4] ldr r0, _080363E8 @ =0x000009C3 cmp r8, r0 ble _080363B8 b _080364A6 _080363B8: ldr r3, _080363EC @ =0x00000385 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _08036430 ldr r4, _080363F0 @ =0x000003DE adds r1, r2, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x42 bne _080363F4 movs r0, #0x4b strb r0, [r1] ldr r1, [r5] add r1, sb ldrh r0, [r1] adds r0, #0xf0 b _08036400 .align 2, 0 _080363E0: .4byte 0x020314E0 _080363E4: .4byte 0x00004E20 _080363E8: .4byte 0x000009C3 _080363EC: .4byte 0x00000385 _080363F0: .4byte 0x000003DE _080363F4: movs r0, #0x5f strb r0, [r1] ldr r1, [r5] add r1, sb ldrh r0, [r1] subs r0, #0xf0 _08036400: strh r0, [r1] ldr r2, _08036424 @ =0x020314E0 ldr r0, [r2] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r2, _08036428 @ =0x000003DE adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 ldr r3, _0803642C @ =0x000003E2 adds r0, r0, r3 b _080364A4 .align 2, 0 _08036424: .4byte 0x020314E0 _08036428: .4byte 0x000003DE _0803642C: .4byte 0x000003E2 _08036430: ldr r4, _0803645C @ =0x000003FA adds r0, r2, r4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xf bgt _08036460 movs r3, #0xf7 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #2 strb r0, [r1] ldr r1, [r5] subs r4, #0x18 adds r2, r1, r4 movs r0, #0x3e strh r0, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #0 strh r0, [r1] b _080364A6 .align 2, 0 _0803645C: .4byte 0x000003FA _08036460: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #7 strb r0, [r1] ldr r0, [r5] ldr r1, _08036484 @ =0x000003DE adds r2, r0, r1 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0x26 bne _0803648C movs r1, #0x2a strb r1, [r2] ldr r0, [r5] ldr r2, _08036488 @ =0x000003E2 adds r0, r0, r2 b _08036496 .align 2, 0 _08036484: .4byte 0x000003DE _08036488: .4byte 0x000003E2 _0803648C: movs r1, #0x35 strb r1, [r2] ldr r0, [r5] ldr r3, _0803652C @ =0x000003E2 adds r0, r0, r3 _08036496: strh r1, [r0] ldr r0, _08036530 @ =0x020314E0 ldr r0, [r0] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 _080364A4: strh r1, [r0] _080364A6: ldr r2, _08036534 @ =0x086AE718 ldr r7, _08036530 @ =0x020314E0 ldr r4, [r7] ldr r6, _0803652C @ =0x000003E2 adds r3, r4, r6 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _080364CE b _08036BD0 _080364CE: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r5, _08036538 @ =0x000003DE adds r0, r4, r5 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #4 cmp r1, r0 bne _080364EC strh r2, [r3] _080364EC: ldr r0, [r7] adds r1, r0, r6 movs r2, #0 ldrsh r1, [r1, r2] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 cmp r1, r0 bne _0803650A ldr r0, _0803653C @ =0x02032F20 ldr r1, _08036540 @ =0x086A1C00 bl MPlayStart _0803650A: ldr r0, [r7] adds r1, r0, r6 movs r3, #0 ldrsh r1, [r1, r3] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #3 cmp r1, r0 beq _08036522 b _08036C9E _08036522: ldr r0, _0803653C @ =0x02032F20 ldr r1, _08036540 @ =0x086A1C00 bl MPlayStart b _08036C9E .align 2, 0 _0803652C: .4byte 0x000003E2 _08036530: .4byte 0x020314E0 _08036534: .4byte 0x086AE718 _08036538: .4byte 0x000003DE _0803653C: .4byte 0x02032F20 _08036540: .4byte 0x086A1C00 _08036544: ldr r2, _080365A0 @ =0x086AE718 mov r5, r8 ldr r4, [r5] ldr r0, _080365A4 @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r4, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bhi _08036652 movs r0, #0 strh r0, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r3, _080365A8 @ =0x000003DE adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #6 cmp r1, r0 beq _0803658A b _08036C9E _0803658A: ldr r5, _080365AC @ =0x0000040E adds r0, r4, r5 ldrh r0, [r0] cmp r0, #7 bhi _080365B0 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #3 strb r0, [r1] b _080365DC .align 2, 0 _080365A0: .4byte 0x086AE718 _080365A4: .4byte 0x000003E2 _080365A8: .4byte 0x000003DE _080365AC: .4byte 0x0000040E _080365B0: ldr r3, _080365C4 @ =0x000003F5 adds r1, r4, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _080365C8 movs r0, #0x14 strh r0, [r2] b _080365CE .align 2, 0 _080365C4: .4byte 0x000003F5 _080365C8: strh r0, [r2] movs r0, #1 strb r0, [r1] _080365CE: mov r4, r8 ldr r0, [r4] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #5 strb r1, [r0] _080365DC: bl sub_C00 ldr r1, _08036618 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 ldr r4, _0803661C @ =0x020314E0 ldr r2, [r4] ldr r3, _08036620 @ =0x086AE9E4 ands r0, r1 movs r1, #0xfd lsls r1, r1, #2 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r2] ldr r1, [r4] ldr r2, _08036624 @ =0x000003DE adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #5 ldr r3, _08036628 @ =0x000003E2 b _0803688A .align 2, 0 _08036618: .4byte 0x0200B0C0 _0803661C: .4byte 0x020314E0 _08036620: .4byte 0x086AE9E4 _08036624: .4byte 0x000003DE _08036628: .4byte 0x000003E2 _0803662C: ldr r2, _08036658 @ =0x086AE718 mov r5, r8 ldr r4, [r5] ldr r0, _0803665C @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r4, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08036660 _08036652: adds r0, r1, #1 strh r0, [r2] b _08036C9E .align 2, 0 _08036658: .4byte 0x086AE718 _0803665C: .4byte 0x000003E2 _08036660: movs r0, #0 strh r0, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r3, _08036698 @ =0x000003DE adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 cmp r1, r0 beq _08036680 b _08036C9E _08036680: ldr r5, _0803669C @ =0x0000040E adds r0, r4, r5 ldrh r0, [r0] cmp r0, #7 bhi _080366A0 movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #3 strb r0, [r1] b _080366CC .align 2, 0 _08036698: .4byte 0x000003DE _0803669C: .4byte 0x0000040E _080366A0: ldr r3, _080366B4 @ =0x000003F5 adds r1, r4, r3 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _080366B8 movs r0, #0x14 strh r0, [r2] b _080366BE .align 2, 0 _080366B4: .4byte 0x000003F5 _080366B8: strh r0, [r2] movs r0, #1 strb r0, [r1] _080366BE: mov r4, r8 ldr r0, [r4] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #5 strb r1, [r0] _080366CC: bl sub_C00 ldr r1, _08036708 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #3 ldr r4, _0803670C @ =0x020314E0 ldr r2, [r4] ldr r3, _08036710 @ =0x086AE9E4 ands r0, r1 movs r1, #0xfd lsls r1, r1, #2 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 ldrb r0, [r0] strb r0, [r2] ldr r1, [r4] ldr r2, _08036714 @ =0x000003DE adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 ldr r3, _08036718 @ =0x000003E2 b _0803688A .align 2, 0 _08036708: .4byte 0x0200B0C0 _0803670C: .4byte 0x020314E0 _08036710: .4byte 0x086AE9E4 _08036714: .4byte 0x000003DE _08036718: .4byte 0x000003E2 _0803671C: mov r4, r8 ldr r0, [r4] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0xa strb r1, [r0] ldr r0, _08036750 @ =0x0200B0C0 ldr r3, [r0, #0x4c] movs r4, #1 ands r3, r4 cmp r3, #0 beq _08036774 mov r0, r8 ldr r2, [r0] movs r1, #0xfa lsls r1, r1, #2 adds r0, r2, r1 movs r3, #0 ldrsh r1, [r0, r3] ldr r0, _08036754 @ =0xFFFFFD80 cmp r1, r0 bge _08036758 adds r5, #0x1a b _080367A6 .align 2, 0 _08036750: .4byte 0x0200B0C0 _08036754: .4byte 0xFFFFFD80 _08036758: ldr r3, _0803676C @ =0x000003F6 adds r1, r2, r3 movs r0, #0 strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r5, _08036770 @ =0x000003DE adds r0, r0, r5 movs r1, #0x1b b _080367B4 .align 2, 0 _0803676C: .4byte 0x000003F6 _08036770: .4byte 0x000003DE _08036774: mov r0, r8 ldr r2, [r0] movs r1, #0xfa lsls r1, r1, #2 adds r0, r2, r1 movs r5, #0 ldrsh r1, [r0, r5] movs r0, #0xa0 lsls r0, r0, #2 cmp r1, r0 ble _080367A4 ldr r1, _0803679C @ =0x000003F6 adds r0, r2, r1 strb r3, [r0] mov r2, r8 ldr r0, [r2] ldr r3, _080367A0 @ =0x000003DE adds r0, r0, r3 movs r1, #0x1b b _080367B4 .align 2, 0 _0803679C: .4byte 0x000003F6 _080367A0: .4byte 0x000003DE _080367A4: ldr r5, _080367F0 @ =0x000003F6 _080367A6: adds r0, r2, r5 strb r4, [r0] mov r1, r8 ldr r0, [r1] ldr r2, _080367F4 @ =0x000003DE adds r0, r0, r2 movs r1, #0x20 _080367B4: strb r1, [r0] mov r3, r8 ldr r0, [r3] ldr r4, _080367F8 @ =0x000003FA adds r1, r0, r4 movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0xf bgt _080367CA movs r0, #0 strh r0, [r1] _080367CA: mov r0, r8 ldr r1, [r0] ldr r2, _080367F4 @ =0x000003DE adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] ldr r3, _080367FC @ =0x000003E2 adds r0, r1, r3 movs r3, #0 strh r2, [r0] movs r4, #0xf9 lsls r4, r4, #2 adds r1, r1, r4 strh r3, [r1] ldr r0, _08036800 @ =0x02032F20 ldr r1, _08036804 @ =0x086A1C64 bl MPlayStart b _08036C9E .align 2, 0 _080367F0: .4byte 0x000003F6 _080367F4: .4byte 0x000003DE _080367F8: .4byte 0x000003FA _080367FC: .4byte 0x000003E2 _08036800: .4byte 0x02032F20 _08036804: .4byte 0x086A1C64 _08036808: ldr r2, _08036890 @ =0x086AE718 mov r0, r8 ldr r5, [r0] ldr r3, _08036894 @ =0x000003E2 adds r4, r5, r3 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r5, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08036830 b _08036BD0 _08036830: movs r0, #0 strh r0, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] movs r0, #0 ldrsh r1, [r4, r0] ldr r4, _08036898 @ =0x000003DE adds r0, r5, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 cmp r1, r0 bne _08036858 movs r2, #0xff lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0x17 strh r0, [r1] _08036858: mov r5, r8 ldr r2, [r5] adds r0, r2, r3 movs r5, #0 ldrsh r1, [r0, r5] adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 cmp r1, r0 beq _08036872 b _08036C9E _08036872: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0xd strb r0, [r1] mov r2, r8 ldr r1, [r2] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 _0803688A: adds r1, r1, r3 strh r0, [r1] b _08036C9E .align 2, 0 _08036890: .4byte 0x086AE718 _08036894: .4byte 0x000003E2 _08036898: .4byte 0x000003DE _0803689C: mov r3, r8 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r3, #0 movs r1, #0xc strb r1, [r0] mov r5, r8 ldr r1, [r5] ldr r2, _080368F0 @ =0x000003DE adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #2 adds r4, #6 adds r2, r1, r4 strh r0, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r1, r5 strh r3, [r0] ldr r2, _080368F4 @ =0x000003FA adds r0, r1, r2 strh r3, [r0] ldr r0, _080368F8 @ =0x0007A120 str r0, [r1, #0x3c] ldr r3, _080368FC @ =0x00000385 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08036900 @ =0x02032F20 ldr r1, _08036904 @ =0x086A1C88 bl MPlayStart movs r0, #7 bl sub_11B0 b _08036C9E .align 2, 0 _080368F0: .4byte 0x000003DE _080368F4: .4byte 0x000003FA _080368F8: .4byte 0x0007A120 _080368FC: .4byte 0x00000385 _08036900: .4byte 0x02032F20 _08036904: .4byte 0x086A1C88 _08036908: ldr r2, _08036970 @ =0x086AE718 mov r5, r8 ldr r4, [r5] ldr r0, _08036974 @ =0x000003E2 adds r3, r4, r0 movs r5, #0 ldrsh r1, [r3, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08036930 b _08036BD0 _08036930: movs r6, #0 movs r5, #0 strh r5, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r0, #0 ldrsh r1, [r3, r0] ldr r2, _08036978 @ =0x000003DE adds r0, r4, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #4 cmp r1, r0 beq _08036950 b _08036C9E _08036950: adds r0, r2, #3 strh r0, [r3] ldr r3, _0803697C @ =0x00000385 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036980 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r4, r5 movs r0, #0xd strb r0, [r1] b _08036C9E .align 2, 0 _08036970: .4byte 0x086AE718 _08036974: .4byte 0x000003E2 _08036978: .4byte 0x000003DE _0803697C: .4byte 0x00000385 _08036980: movs r0, #0xa5 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #3 strb r0, [r1] ldr r1, _080369D8 @ =0x0200B0C0 movs r0, #0x80 strb r0, [r1, #0xf] mov r1, r8 ldr r0, [r1] movs r2, #0xe2 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #2 strb r1, [r0] mov r3, r8 ldr r0, [r3] ldr r4, _080369DC @ =0x00000392 adds r1, r0, r4 strh r5, [r1] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0xd strb r1, [r0] ldr r0, [r3] adds r2, #0x7c adds r0, r0, r2 strb r6, [r0] ldr r0, [r3] movs r3, #0x81 lsls r3, r3, #3 adds r1, r0, r3 strh r5, [r1] adds r4, #0x74 adds r0, r0, r4 strb r6, [r0] mov r5, r8 ldr r0, [r5] ldr r1, _080369E0 @ =0x00000387 adds r0, r0, r1 strb r6, [r0] b _08036C9E .align 2, 0 _080369D8: .4byte 0x0200B0C0 _080369DC: .4byte 0x00000392 _080369E0: .4byte 0x00000387 _080369E4: mov r2, r8 ldr r1, [r2] ldr r3, _08036A0C @ =0x000003DE adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #4 ldr r4, _08036A10 @ =0x000003E2 adds r2, r1, r4 strh r0, [r2] movs r5, #0xf9 lsls r5, r5, #2 adds r3, r1, r5 ldrh r0, [r3] cmp r0, #7 bhi _08036A14 adds r0, #1 strh r0, [r3] b _08036C9E .align 2, 0 _08036A0C: .4byte 0x000003DE _08036A10: .4byte 0x000003E2 _08036A14: ldr r3, _08036A40 @ =0x00000385 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _08036A98 ldr r4, _08036A44 @ =0x000003F6 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08036A48 movs r0, #0x48 strh r0, [r2] movs r5, #0xfa lsls r5, r5, #2 adds r1, r1, r5 ldrh r0, [r1] subs r0, #0xf0 b _08036A56 .align 2, 0 _08036A40: .4byte 0x00000385 _08036A44: .4byte 0x000003F6 _08036A48: movs r0, #0x49 strh r0, [r2] movs r0, #0xfa lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #0xf0 _08036A56: strh r0, [r1] mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #5 strb r1, [r0] mov r3, r8 ldr r0, [r3] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0x14 strh r1, [r0] bl sub_C00 mov r5, r8 ldr r2, [r5] ldr r1, _08036A94 @ =0x0200B0C0 ldr r1, [r1, #0x4c] muls r0, r1, r0 movs r1, #3 ands r0, r1 adds r0, #3 movs r1, #0xfd lsls r1, r1, #2 adds r2, r2, r1 strb r0, [r2] b _08036C9E .align 2, 0 _08036A94: .4byte 0x0200B0C0 _08036A98: ldr r3, _08036AC4 @ =0x000003FA adds r0, r1, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0xf bgt _08036B18 ldr r5, _08036AC8 @ =0x000003F6 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08036ACC movs r0, #0x48 strh r0, [r2] movs r0, #0xfa lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] subs r0, #0xf0 b _08036ADA .align 2, 0 _08036AC4: .4byte 0x000003FA _08036AC8: .4byte 0x000003F6 _08036ACC: movs r0, #0x49 strh r0, [r2] movs r2, #0xfa lsls r2, r2, #2 adds r1, r1, r2 ldrh r0, [r1] adds r0, #0xf0 _08036ADA: strh r0, [r1] mov r3, r8 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #5 strb r1, [r0] ldr r0, [r3] movs r5, #0xf9 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0x14 strh r1, [r0] bl sub_C00 mov r1, r8 ldr r2, [r1] ldr r1, _08036B14 @ =0x0200B0C0 ldr r1, [r1, #0x4c] muls r0, r1, r0 movs r1, #3 ands r0, r1 adds r0, #3 movs r3, #0xfd lsls r3, r3, #2 adds r2, r2, r3 strb r0, [r2] b _08036C9E .align 2, 0 _08036B14: .4byte 0x0200B0C0 _08036B18: ldr r4, _08036B38 @ =0x000003F6 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08036B3C movs r0, #0x48 strh r0, [r2] movs r5, #0xfa lsls r5, r5, #2 adds r1, r1, r5 ldrh r0, [r1] subs r0, #0xf0 b _08036B4A .align 2, 0 _08036B38: .4byte 0x000003F6 _08036B3C: movs r0, #0x49 strh r0, [r2] movs r0, #0xfa lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #0xf0 _08036B4A: strh r0, [r1] mov r2, r8 ldr r1, [r2] movs r3, #0xf9 lsls r3, r3, #2 adds r2, r1, r3 movs r0, #0 strh r0, [r2] ldr r4, _08036B70 @ =0x0000040E adds r0, r1, r4 ldrh r0, [r0] cmp r0, #7 bhi _08036B74 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #3 strb r0, [r1] b _08036C9E .align 2, 0 _08036B70: .4byte 0x0000040E _08036B74: ldr r0, _08036B88 @ =0x000003F5 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08036B8C movs r0, #0x14 strh r0, [r2] b _08036B92 .align 2, 0 _08036B88: .4byte 0x000003F5 _08036B8C: strh r0, [r2] movs r0, #1 strb r0, [r1] _08036B92: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #5 strb r1, [r0] b _08036C9E _08036BA2: mov r3, r8 ldr r4, [r3] ldr r5, _08036BD8 @ =0x000003FA adds r0, r4, r5 movs r5, #0 strh r5, [r0] ldr r2, _08036BDC @ =0x086AE718 ldr r6, _08036BE0 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08036BE4 _08036BD0: adds r0, r2, #1 strh r0, [r1] b _08036C9E .align 2, 0 _08036BD8: .4byte 0x000003FA _08036BDC: .4byte 0x086AE718 _08036BE0: .4byte 0x000003E2 _08036BE4: strh r5, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] movs r5, #0 ldrsh r1, [r3, r5] ldr r5, _08036C50 @ =0x000003DE adds r0, r4, r5 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r2, #0 adds r0, #0x13 cmp r1, r0 bne _08036C0E subs r0, #1 strh r0, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #0xf strb r0, [r1] _08036C0E: mov r1, r8 ldr r0, [r1] adds r1, r0, r6 movs r2, #0 ldrsh r1, [r1, r2] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #6 cmp r1, r0 bne _08036C2E ldr r0, _08036C54 @ =0x02032F20 ldr r1, _08036C58 @ =0x086A1CCC bl MPlayStart _08036C2E: mov r3, r8 ldr r0, [r3] adds r1, r0, r6 movs r4, #0 ldrsh r1, [r1, r4] adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #8 cmp r1, r0 bne _08036C9E ldr r0, _08036C54 @ =0x02032F20 ldr r1, _08036C5C @ =0x086A1D64 bl MPlayStart b _08036C9E .align 2, 0 _08036C50: .4byte 0x000003DE _08036C54: .4byte 0x02032F20 _08036C58: .4byte 0x086A1CCC _08036C5C: .4byte 0x086A1D64 _08036C60: mov r5, r8 ldr r2, [r5] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r2, r3 ldrh r1, [r0] cmp r1, #0x63 bhi _08036C88 cmp r1, #0 bne _08036C7C movs r0, #2 strb r0, [r2, #0x13] ldr r0, [r5] strh r1, [r0, #0x18] _08036C7C: mov r0, r8 ldr r1, [r0] adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08036C88: mov r1, r8 ldr r0, [r1] ldr r2, _08036CAC @ =0x000003DE adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r1, #0xf ldr r3, _08036CB0 @ =0x000003E2 adds r0, r0, r3 strh r1, [r0] _08036C9E: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08036CAC: .4byte 0x000003DE _08036CB0: .4byte 0x000003E2 thumb_func_start sub_36CB4 sub_36CB4: @ 0x08036CB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r0, _08036DBC @ =0x02031590 ldrb r1, [r0, #0x17] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08036DC0 @ =0x0200B3B8 adds r5, r1, r0 ldrh r0, [r5] cmp r0, #0 bne _08036CD4 b _080372A2 _08036CD4: ldr r0, _08036DC4 @ =0x020314E0 mov sb, r0 ldr r0, [r0] ldr r1, _08036DC8 @ =0x000003DF adds r3, r0, r1 movs r2, #0 ldrsb r2, [r3, r2] lsls r2, r2, #0x10 ldr r6, _08036DCC @ =0x086AE718 ldr r4, _08036DD0 @ =0x000003E2 adds r0, r0, r4 movs r7, #0 ldrsh r1, [r0, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r6, #4 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r3] ldr r3, _08036DD4 @ =0x040000D4 lsrs r0, r2, #0x10 str r0, [sp] asrs r2, r2, #0x10 lsls r0, r2, #2 adds r0, r0, r2 lsls r0, r0, #7 ldr r1, _08036DD8 @ =0x0844F98C adds r0, r0, r1 str r0, [r3] ldr r0, _08036DDC @ =0x06010920 str r0, [r3, #4] ldr r0, _08036DE0 @ =0x80000140 str r0, [r3, #8] ldr r0, [r3, #8] mov r1, sb ldr r7, [r1] adds r4, r7, r4 movs r2, #0 ldrsh r1, [r4, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r6 ldrh r0, [r0] mov sl, r0 movs r3, #0xfa lsls r3, r3, #2 adds r6, r7, r3 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 adds r0, #0x68 adds r1, r7, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r2, _08036DE4 @ =0x000003EA adds r2, r2, r7 mov r8, r2 movs r3, #0 ldrsh r0, [r2, r3] movs r1, #0xa bl __divsi3 adds r0, #0x1c adds r1, r7, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #4] ldrh r4, [r4] adds r0, r4, #0 subs r0, #0x1c lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bhi _08036DF4 movs r4, #0 ldrsh r0, [r6, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x90 movs r2, #0xfc lsls r2, r2, #2 adds r1, r7, r2 strh r0, [r1] mov r3, r8 movs r4, #0 ldrsh r0, [r3, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x54 ldr r2, _08036DE8 @ =0x000003F2 adds r1, r7, r2 strh r0, [r1] ldr r3, _08036DEC @ =0x00000385 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036E9A ldr r4, _08036DF0 @ =0x00000387 adds r1, r7, r4 movs r0, #2 b _08036E98 .align 2, 0 _08036DBC: .4byte 0x02031590 _08036DC0: .4byte 0x0200B3B8 _08036DC4: .4byte 0x020314E0 _08036DC8: .4byte 0x000003DF _08036DCC: .4byte 0x086AE718 _08036DD0: .4byte 0x000003E2 _08036DD4: .4byte 0x040000D4 _08036DD8: .4byte 0x0844F98C _08036DDC: .4byte 0x06010920 _08036DE0: .4byte 0x80000140 _08036DE4: .4byte 0x000003EA _08036DE8: .4byte 0x000003F2 _08036DEC: .4byte 0x00000385 _08036DF0: .4byte 0x00000387 _08036DF4: adds r0, r4, #0 subs r0, #0x21 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bhi _08036E54 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xf0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r7, r2 strh r0, [r1] mov r3, r8 movs r4, #0 ldrsh r0, [r3, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x54 ldr r2, _08036E48 @ =0x000003F2 adds r1, r7, r2 strh r0, [r1] ldr r3, _08036E4C @ =0x00000385 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036E9A ldr r4, _08036E50 @ =0x00000387 adds r1, r7, r4 movs r0, #2 b _08036E98 .align 2, 0 _08036E48: .4byte 0x000003F2 _08036E4C: .4byte 0x00000385 _08036E50: .4byte 0x00000387 _08036E54: movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xd0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r7, r2 strh r0, [r1] mov r3, r8 movs r4, #0 ldrsh r0, [r3, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x38 ldr r2, _08036EDC @ =0x000003F2 adds r1, r7, r2 strh r0, [r1] ldr r3, _08036EE0 @ =0x00000385 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bgt _08036E9A ldr r4, _08036EE4 @ =0x00000387 adds r1, r7, r4 movs r0, #1 _08036E98: strb r0, [r1] _08036E9A: ldr r7, _08036EE8 @ =0x020314E0 ldr r4, [r7] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x78 movs r3, #0x80 lsls r3, r3, #3 adds r1, r4, r3 strh r0, [r1] ldr r7, _08036EEC @ =0x000003EA adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x3a ldr r2, _08036EF0 @ =0x00000402 adds r1, r4, r2 strh r0, [r1] ldr r3, _08036EF4 @ =0x0000040E adds r0, r4, r3 ldrh r0, [r0] cmp r0, #7 bls _08036EF8 adds r7, #0xd b _08036F16 .align 2, 0 _08036EDC: .4byte 0x000003F2 _08036EE0: .4byte 0x00000385 _08036EE4: .4byte 0x00000387 _08036EE8: .4byte 0x020314E0 _08036EEC: .4byte 0x000003EA _08036EF0: .4byte 0x00000402 _08036EF4: .4byte 0x0000040E _08036EF8: ldr r1, _08036F0C @ =0x000003FA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xf ble _08036F14 ldr r3, _08036F10 @ =0x000003F7 adds r1, r4, r3 movs r0, #0 b _08036F1A .align 2, 0 _08036F0C: .4byte 0x000003FA _08036F10: .4byte 0x000003F7 _08036F14: ldr r7, _08036FD8 @ =0x000003F7 _08036F16: adds r1, r4, r7 movs r0, #1 _08036F1A: strb r0, [r1] movs r7, #0 ldr r0, _08036FDC @ =0x03005000 mov r8, r0 mov r1, sl lsls r1, r1, #0x10 str r1, [sp, #4] mov ip, r8 asrs r1, r1, #0x10 mov sb, r1 movs r2, #0xf mov sl, r2 _08036F32: lsls r2, r7, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 adds r0, #8 adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r3, ip adds r4, r0, r3 mov r0, sb lsls r1, r0, #1 add r1, sb lsls r1, r1, #2 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 ldr r2, _08036FE0 @ =0x086B9DAC adds r0, r0, r2 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r4] adds r1, #2 adds r4, #2 ldrh r0, [r1] strh r0, [r4] ldrh r0, [r1, #2] strh r0, [r4, #2] ldr r3, _08036FE4 @ =0x020314E0 ldr r0, [r3] ldr r4, _08036FD8 @ =0x000003F7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08037008 ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r5, r4] adds r1, r1, r0 ldr r4, _08036FE8 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08036FEC @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r3, _08036FE4 @ =0x020314E0 ldr r1, [r3] ldr r4, _08036FF0 @ =0x000003DF adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _08036FF4 movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #9 bhi _08036FF4 ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0xa0 b _08037002 .align 2, 0 _08036FD8: .4byte 0x000003F7 _08036FDC: .4byte 0x03005000 _08036FE0: .4byte 0x086B9DAC _08036FE4: .4byte 0x020314E0 _08036FE8: .4byte 0x000001FF _08036FEC: .4byte 0xFFFFFE00 _08036FF0: .4byte 0x000003DF _08036FF4: ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0x20 _08037002: orrs r0, r1 strb r0, [r2, #5] b _08037024 _08037008: ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r1, [r2, #2] ldr r0, _08037120 @ =0xFFFFFE00 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 add r0, r8 movs r1, #0xb4 strb r1, [r0] _08037024: lsls r0, r7, #0x10 movs r3, #0x80 lsls r3, r3, #9 adds r0, r0, r3 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08037036 b _08036F32 _08037036: ldr r5, _08037124 @ =0x0200CA00 ldr r7, _08037128 @ =0x020314E0 ldr r4, [r7] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x68 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #2] ldr r4, [r7] ldr r3, _0803712C @ =0x000003EA adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r0, #0x3c adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r5, #4] movs r7, #0 ldr r0, _08037130 @ =0x03005000 mov ip, r0 ldr r1, [sp, #4] asrs r1, r1, #0x10 mov sb, r1 movs r2, #0xf mov sl, r2 _08037080: lsls r3, r7, #0x10 asrs r2, r3, #0x10 lsls r0, r2, #3 adds r0, #8 adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r7, ip adds r4, r0, r7 mov r0, sb lsls r1, r0, #1 add r1, sb lsls r1, r1, #2 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #1 ldr r2, _08037134 @ =0x086B9AB8 adds r0, r0, r2 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r4] adds r1, #2 adds r4, #2 ldrh r0, [r1] strh r0, [r4] ldrh r0, [r1, #2] strh r0, [r4, #2] ldr r4, _08037128 @ =0x020314E0 ldr r0, [r4] ldr r7, _08037138 @ =0x000003F7 adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r3, #0 cmp r0, #0 beq _08037154 ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r7, _0803713C @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldr r0, _08037120 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r3, [sp] cmp r3, #0x14 bne _08037140 ldr r7, _08037128 @ =0x020314E0 ldr r0, [r7] movs r1, #0xf9 lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] cmp r0, #9 bhi _08037140 ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0xb0 b _0803714E .align 2, 0 _08037120: .4byte 0xFFFFFE00 _08037124: .4byte 0x0200CA00 _08037128: .4byte 0x020314E0 _0803712C: .4byte 0x000003EA _08037130: .4byte 0x03005000 _08037134: .4byte 0x086B9AB8 _08037138: .4byte 0x000003F7 _0803713C: .4byte 0x000001FF _08037140: ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #5] mov r0, sl ands r0, r1 movs r1, #0x40 _0803714E: orrs r0, r1 strb r0, [r2, #5] b _08037170 _08037154: ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 ldrh r1, [r2, #2] ldr r0, _08037208 @ =0xFFFFFE00 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 add r0, r8 movs r1, #0xb4 strb r1, [r0] _08037170: movs r2, #0x80 lsls r2, r2, #9 adds r0, r4, r2 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _08037180 b _08037080 _08037180: ldr r5, _0803720C @ =0x0200BA30 ldr r3, _08037210 @ =0x020314E0 ldr r2, [r3] movs r4, #0xfe lsls r4, r4, #2 adds r0, r2, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r3, r0, r1 movs r6, #0xff lsls r6, r6, #2 adds r2, r2, r6 movs r7, #0 ldrsh r0, [r2, r7] cmp r0, #0 bge _080371A4 adds r0, #7 _080371A4: asrs r0, r0, #3 subs r0, #2 ldr r1, _08037214 @ =0x040000D4 subs r0, r3, r0 lsls r0, r0, #8 ldr r2, _08037218 @ =0x0845588C adds r0, r0, r2 str r0, [r1] ldr r0, _0803721C @ =0x06010BA0 str r0, [r1, #4] ldr r0, _08037220 @ =0x80000080 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _08037210 @ =0x020314E0 ldr r4, [r3] adds r1, r4, r6 ldrh r2, [r1] movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #0 ble _08037228 subs r0, r2, #1 strh r0, [r1] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x68 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r5, #2] ldr r3, _08037224 @ =0x000003EA adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 adds r0, #0x1a b _0803722E .align 2, 0 _08037208: .4byte 0xFFFFFE00 _0803720C: .4byte 0x0200BA30 _08037210: .4byte 0x020314E0 _08037214: .4byte 0x040000D4 _08037218: .4byte 0x0845588C _0803721C: .4byte 0x06010BA0 _08037220: .4byte 0x80000080 _08037224: .4byte 0x000003EA _08037228: movs r0, #0 strh r0, [r5, #2] movs r0, #0xb4 _0803722E: strh r0, [r5, #4] adds r6, r5, #0 adds r6, #8 ldrh r2, [r5, #8] lsls r2, r2, #3 add r2, r8 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r5, r3] adds r1, r1, r0 ldr r4, _08037284 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08037288 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 add r1, r8 ldrb r0, [r5, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] ldr r7, _0803728C @ =0x020314E0 ldr r0, [r7] ldr r1, _08037290 @ =0x000003F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08037294 ldrh r0, [r5, #8] lsls r0, r0, #3 add r0, r8 ldrb r2, [r0, #3] movs r1, #0x11 rsbs r1, r1, #0 ands r1, r2 b _080372A0 .align 2, 0 _08037284: .4byte 0x000001FF _08037288: .4byte 0xFFFFFE00 _0803728C: .4byte 0x020314E0 _08037290: .4byte 0x000003F6 _08037294: ldrh r0, [r5, #8] lsls r0, r0, #3 add r0, r8 ldrb r1, [r0, #3] movs r2, #0x10 orrs r1, r2 _080372A0: strb r1, [r0, #3] _080372A2: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_372B4 sub_372B4: @ 0x080372B4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08037478 @ =0x0200C4F8 mov sl, r0 ldrh r0, [r0] cmp r0, #0 bne _080372CA b _08037500 _080372CA: ldr r1, _0803747C @ =0x020314E0 mov sb, r1 ldr r1, [r1] ldr r2, _08037480 @ =0x00000404 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080372E0 b _080374C0 _080372E0: ldr r3, _08037484 @ =0x0000040A mov r8, r3 adds r0, r1, r3 ldrh r5, [r0] cmp r5, #0 bne _08037318 bl sub_C00 mov r1, sb ldr r4, [r1] ldr r1, _08037488 @ =0xFFFFEBC8 add r1, sl ldr r1, [r1, #0x4c] muls r0, r1, r0 movs r1, #5 bl __umodsi3 ldr r2, _0803748C @ =0x00000405 adds r4, r4, r2 strb r0, [r4] mov r3, sb ldr r0, [r3] adds r2, #0x11 adds r1, r0, r2 strh r5, [r1] ldr r3, _08037490 @ =0x0000041A adds r0, r0, r3 strh r5, [r0] _08037318: mov r1, sb ldr r0, [r1] mov r2, r8 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x27 bhi _0803732A adds r0, #1 strh r0, [r1] _0803732A: mov r3, sb ldr r0, [r3] add r0, r8 ldrh r0, [r0] cmp r0, #0x14 bne _0803733C ldr r0, _08037494 @ =0x02032F60 bl m4aMPlayStop _0803733C: mov r1, sb ldr r0, [r1] add r0, r8 ldrh r0, [r0] cmp r0, #0x16 bne _0803734E ldr r0, _08037498 @ =0x00000105 bl m4aSongNumStart _0803734E: mov r2, sb ldr r4, [r2] mov r3, r8 adds r0, r4, r3 ldrh r0, [r0] cmp r0, #0x14 bhi _0803735E b _080374B4 _0803735E: ldr r0, _0803749C @ =0x00000414 adds r1, r4, r0 movs r0, #4 strh r0, [r1] ldr r1, _080374A0 @ =0x00000416 adds r5, r4, r1 ldrh r0, [r5] adds r0, #3 strh r0, [r5] ldr r3, _080374A4 @ =0x086AEA3C ldr r0, _0803748C @ =0x00000405 adds r2, r4, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r3 ldrh r0, [r0] mov r8, r0 adds r1, #2 adds r0, r4, r1 mov r1, r8 strh r1, [r0] ldr r0, _08037490 @ =0x0000041A adds r4, r4, r0 ldrh r0, [r5] ldrh r1, [r4] adds r0, r0, r1 strh r0, [r4] movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #2 adds r1, r1, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldrh r2, [r1, #2] movs r3, #2 ldrsh r1, [r1, r3] cmp r0, r1 ble _080373BC strh r2, [r4] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #6 bl __divsi3 rsbs r0, r0, #0 strh r0, [r5] _080373BC: mov r2, sb ldr r2, [r2] mov r8, r2 ldr r0, _080374A8 @ =0x0000132C add r0, r8 ldr r5, [r0] movs r3, #0x10 ldrsh r4, [r5, r3] subs r4, #8 movs r0, #0x83 lsls r0, r0, #3 add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r6, r4, r0 movs r2, #0x12 ldrsh r4, [r5, r2] subs r4, #8 ldr r0, _08037490 @ =0x0000041A add r0, r8 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r7, r4, r0 adds r0, r6, #0 muls r0, r6, r0 adds r1, r7, #0 muls r1, r7, r1 adds r0, r0, r1 cmp r0, #0x78 bgt _08037438 ldr r1, _08037480 @ =0x00000404 add r1, r8 movs r0, #0 strb r0, [r1] mov r6, sb ldr r0, [r6] ldr r1, _080374AC @ =0x00000406 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r2, [r6] movs r3, #0x81 lsls r3, r3, #3 adds r1, r2, r3 movs r0, #0 strh r0, [r1] ldr r0, _080374B0 @ =0x00002710 str r0, [r2, #0x3c] movs r0, #0x83 lsls r0, r0, #1 bl m4aSongNumStart _08037438: mov r6, sb ldr r5, [r6] adds r0, r5, #0 adds r0, #0x58 ldrh r4, [r0] rsbs r4, r4, #0 movs r1, #0x83 lsls r1, r1, #3 adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, r4, r0 mov r3, sl strh r4, [r3, #2] adds r0, r5, #0 adds r0, #0x5a ldrh r4, [r0] rsbs r4, r4, #0 ldr r6, _08037490 @ =0x0000041A adds r5, r5, r6 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 adds r4, r4, r0 mov r2, sl strh r4, [r2, #4] b _080374C8 .align 2, 0 _08037478: .4byte 0x0200C4F8 _0803747C: .4byte 0x020314E0 _08037480: .4byte 0x00000404 _08037484: .4byte 0x0000040A _08037488: .4byte 0xFFFFEBC8 _0803748C: .4byte 0x00000405 _08037490: .4byte 0x0000041A _08037494: .4byte 0x02032F60 _08037498: .4byte 0x00000105 _0803749C: .4byte 0x00000414 _080374A0: .4byte 0x00000416 _080374A4: .4byte 0x086AEA3C _080374A8: .4byte 0x0000132C _080374AC: .4byte 0x00000406 _080374B0: .4byte 0x00002710 _080374B4: movs r0, #0 mov r3, sl strh r0, [r3, #2] movs r0, #0xb4 strh r0, [r3, #4] b _080374C8 _080374C0: mov r6, sl strh r0, [r6, #2] movs r0, #0xb4 strh r0, [r6, #4] _080374C8: mov r5, sl adds r5, #8 ldr r4, _08037510 @ =0x03005000 mov r0, sl ldrh r2, [r0, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r6, #2 ldrsh r0, [r0, r6] adds r1, r1, r0 ldr r3, _08037514 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08037518 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] mov r6, sl ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08037500: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08037510: .4byte 0x03005000 _08037514: .4byte 0x000001FF _08037518: .4byte 0xFFFFFE00 thumb_func_start sub_3751C sub_3751C: @ 0x0803751C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r1, _08037550 @ =0x020314E0 ldr r3, [r1] ldr r0, _08037554 @ =0x00000406 adds r4, r3, r0 movs r0, #0 ldrsb r0, [r4, r0] mov sb, r1 cmp r0, #0 beq _08037564 movs r1, #0x81 lsls r1, r1, #3 adds r2, r3, r1 ldrh r1, [r2] ldr r0, _08037558 @ =0x00000257 cmp r1, r0 bhi _0803755C adds r0, r1, #1 strh r0, [r2] b _08037564 .align 2, 0 _08037550: .4byte 0x020314E0 _08037554: .4byte 0x00000406 _08037558: .4byte 0x00000257 _0803755C: movs r1, #0 movs r0, #0 strh r0, [r2] strb r1, [r4] _08037564: mov r2, sb ldr r1, [r2] ldr r3, _08037588 @ =0x00000406 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08037590 ldr r0, _0803758C @ =0x0000040E adds r1, r1, r0 ldrh r0, [r1] cmp r0, #9 bhi _080375AE adds r0, #1 strh r0, [r1] b _080375AE .align 2, 0 _08037588: .4byte 0x00000406 _0803758C: .4byte 0x0000040E _08037590: ldr r2, _080375A4 @ =0x0000040E adds r3, r1, r2 ldrh r0, [r3] adds r2, r0, #0 cmp r2, #0 beq _080375A8 subs r0, #1 strh r0, [r3] b _080375AE .align 2, 0 _080375A4: .4byte 0x0000040E _080375A8: ldr r3, _08037804 @ =0x000003F5 adds r0, r1, r3 strb r2, [r0] _080375AE: ldr r3, _08037808 @ =0x0200B0C0 mov r0, sb ldr r2, [r0] ldr r0, _0803780C @ =0x0000040E adds r1, r2, r0 ldrh r0, [r1] lsls r0, r0, #4 strh r0, [r3, #0x2e] ldrh r1, [r1] lsls r0, r1, #0x16 lsrs r0, r0, #0x10 mov r8, r0 lsls r1, r1, #1 movs r0, #0x14 subs r0, r0, r1 lsls r0, r0, #0x15 lsrs r4, r0, #0x10 movs r1, #0x81 lsls r1, r1, #3 adds r2, r2, r1 ldrh r0, [r2] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #9 bl __udivsi3 ldr r2, _08037810 @ =0x086AEA60 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r2 ldrh r1, [r1] str r1, [sp] ldr r1, _08037814 @ =0x086AEA50 lsls r0, r0, #2 adds r0, r0, r1 ldr r5, [r0] movs r2, #0 mov r3, r8 lsls r0, r3, #0x10 asrs r1, r0, #0x10 cmp r2, r1 bge _0803763A ldr r0, _08037818 @ =0x03006400 ldr r3, _0803781C @ =0xFFFFF800 adds r7, r0, r3 movs r6, #0x80 lsls r6, r6, #3 lsls r0, r4, #0x10 asrs r4, r0, #0x10 adds r3, r1, #0 _0803761A: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 lsls r2, r2, #1 adds r2, r2, r7 adds r0, r4, r1 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 blt _0803761A _0803763A: mov r0, r8 lsls r1, r0, #0x10 asrs r0, r1, #0x10 ldr r2, _08037820 @ =0x0000027F cmp r0, r2 bgt _08037662 ldr r5, _08037824 @ =0x03005C00 movs r4, #0x80 lsls r4, r4, #3 ldr r3, _08037828 @ =0x000003FF _0803764E: asrs r0, r1, #0x10 adds r1, r0, r4 lsls r1, r1, #1 adds r1, r1, r5 strh r3, [r1] adds r0, #1 lsls r1, r0, #0x10 asrs r0, r1, #0x10 cmp r0, r2 ble _0803764E _08037662: mov r1, sb ldr r0, [r1] movs r4, #0x81 lsls r4, r4, #3 adds r0, r0, r4 ldrh r0, [r0] movs r1, #0x96 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 lsls r1, r0, #0x10 ldr r2, _0803782C @ =0xFFF60000 adds r0, r1, r2 lsrs r0, r0, #0x10 cmp r0, #0x45 bhi _08037726 movs r3, #0 mov sb, r1 ldr r0, [sp] lsls r1, r0, #0x10 ldr r2, _08037824 @ =0x03005C00 mov r8, r2 ldr r0, _08037830 @ =0x08327994 mov ip, r0 asrs r6, r1, #0xe adds r7, r4, #0 _0803769A: movs r2, #0 lsls r3, r3, #0x10 asrs r1, r3, #0x10 adds r0, r1, #6 lsls r5, r0, #5 adds r1, #0x15 lsls r4, r1, #5 _080376A8: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r7 adds r2, r5, r2 lsls r2, r2, #1 add r2, r8 adds r0, r1, r6 adds r0, r4, r0 lsls r0, r0, #1 add r0, ip ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _080376A8 movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0803769A mov r2, sb asrs r0, r2, #0x10 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _080376F0 movs r1, #5 _080376F0: movs r2, #0 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r2, r0 bge _08037726 ldr r7, _08037824 @ =0x03005C00 ldr r6, _08037834 @ =0x000004C3 ldr r5, _08037830 @ =0x08327994 movs r4, #0xbb lsls r4, r4, #2 adds r3, r0, #0 _08037706: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 lsls r2, r2, #1 adds r2, r2, r7 adds r0, r1, r4 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 blt _08037706 _08037726: mov r3, sl lsls r1, r3, #0x10 ldr r2, _08037838 @ =0xFFB00000 adds r0, r1, r2 lsrs r0, r0, #0x10 mov sb, r1 cmp r0, #0x45 bhi _080377E2 movs r3, #0 ldr r0, [sp] lsls r1, r0, #0x10 ldr r2, _08037824 @ =0x03005C00 mov ip, r2 ldr r0, _08037830 @ =0x08327994 mov r8, r0 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r6, r0, #0 adds r6, #0xc ldr r7, _0803783C @ =0x00000411 _08037752: movs r2, #0 lsls r3, r3, #0x10 asrs r1, r3, #0x10 adds r0, r1, #0 adds r0, #0xe lsls r5, r0, #5 adds r1, #0x15 lsls r4, r1, #5 _08037762: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r7 adds r2, r5, r2 lsls r2, r2, #1 add r2, ip adds r0, r1, r6 adds r0, r4, r0 lsls r0, r0, #1 add r0, r8 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #5 ble _08037762 movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _08037752 mov r2, sb asrs r0, r2, #0x10 subs r0, #0x46 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #5 ble _080377AC movs r1, #5 _080377AC: movs r2, #0 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r2, r0 bge _080377E2 ldr r7, _08037824 @ =0x03005C00 ldr r6, _08037840 @ =0x000005F7 ldr r5, _08037830 @ =0x08327994 movs r4, #0xbb lsls r4, r4, #2 adds r3, r0, #0 _080377C2: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 lsls r2, r2, #1 adds r2, r2, r7 adds r0, r1, r4 lsls r0, r0, #1 adds r0, r0, r5 ldrh r0, [r0] strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 blt _080377C2 _080377E2: ldr r1, _08037844 @ =0x040000D4 ldr r3, _08037818 @ =0x03006400 str r3, [r1] ldr r0, _08037848 @ =0x06001000 str r0, [r1, #4] ldr r0, _0803784C @ =0x80000280 str r0, [r1, #8] ldr r0, [r1, #8] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08037804: .4byte 0x000003F5 _08037808: .4byte 0x0200B0C0 _0803780C: .4byte 0x0000040E _08037810: .4byte 0x086AEA60 _08037814: .4byte 0x086AEA50 _08037818: .4byte 0x03006400 _0803781C: .4byte 0xFFFFF800 _08037820: .4byte 0x0000027F _08037824: .4byte 0x03005C00 _08037828: .4byte 0x000003FF _0803782C: .4byte 0xFFF60000 _08037830: .4byte 0x08327994 _08037834: .4byte 0x000004C3 _08037838: .4byte 0xFFB00000 _0803783C: .4byte 0x00000411 _08037840: .4byte 0x000005F7 _08037844: .4byte 0x040000D4 _08037848: .4byte 0x06001000 _0803784C: .4byte 0x80000280 thumb_func_start sub_37850 sub_37850: @ 0x08037850 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r4, _08037C18 @ =0x020314E0 ldr r3, [r4] movs r1, #0x80 lsls r1, r1, #3 adds r0, r3, r1 movs r2, #0 ldrsh r1, [r0, r2] lsls r1, r1, #0x11 lsrs r1, r1, #0x10 ldr r2, _08037C1C @ =0xFFFF0000 ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldr r5, _08037C20 @ =0x00000402 adds r3, r3, r5 movs r2, #0 ldrsh r1, [r3, r2] lsls r1, r1, #0x11 ldr r2, _08037C24 @ =0x0000FFFF ands r0, r2 orrs r0, r1 str r0, [sp] mov r0, sp bl sub_17C1C ldr r0, _08037C28 @ =0x02031590 ldrb r1, [r0, #0x10] movs r0, #0xb8 muls r1, r0, r1 ldr r0, _08037C2C @ =0x0200B3B8 adds r6, r1, r0 ldr r1, [r4] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r0, [r1] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r2, #0 ldr r5, _08037C30 @ =0x03005000 ldr r3, _08037C34 @ =0xFFFFFE00 mov sb, r3 _080378BC: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r0, _08037C38 @ =0x000001FF mov r8, r0 mov r2, r8 ands r1, r2 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _080378BC ldr r0, _08037C28 @ =0x02031590 ldrb r1, [r0, #0x11] movs r0, #0xb8 muls r0, r1, r0 ldr r3, _08037C2C @ =0x0200B3B8 mov sb, r3 adds r6, r0, r3 ldr r5, _08037C18 @ =0x020314E0 ldr r1, [r5] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r0, [r1] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldr r4, _08037C30 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08037C34 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] movs r6, #0xa1 lsls r6, r6, #3 add r6, sb ldr r0, [r5] ldr r1, _08037C3C @ =0x0000040C adds r0, r0, r1 ldrh r4, [r0] adds r0, r4, #0 movs r1, #0xa bl __umodsi3 movs r1, #5 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 movs r7, #0x14 cmp r4, #0x1e bhi _08037988 movs r7, #5 cmp r4, #0xa bls _08037988 movs r7, #0xa _08037988: ldr r4, _08037C18 @ =0x020314E0 ldr r0, [r4] ldr r2, _08037C3C @ =0x0000040C adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0x28 bne _080379A4 movs r0, #0x82 lsls r0, r0, #1 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _080379A4: lsls r0, r5, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _080379B2 rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 _080379B2: lsls r1, r5, #0x10 asrs r1, r1, #0x10 movs r0, #5 subs r0, r0, r1 muls r0, r7, r0 movs r1, #0xa bl __divsi3 adds r0, #0x78 ldr r2, [r4] adds r1, r2, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] adds r2, #0x5a ldrh r0, [r2] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r2, #0 ldr r5, _08037C30 @ =0x03005000 ldr r3, _08037C34 @ =0xFFFFFE00 mov r8, r3 _080379E2: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08037C38 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _080379E2 ldr r3, _08037C18 @ =0x020314E0 ldr r0, [r3] ldr r5, _08037C3C @ =0x0000040C adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _08037A38 subs r0, #1 strh r0, [r1] _08037A38: movs r0, #0 mov r8, r0 _08037A3C: mov r1, r8 lsls r3, r1, #0x10 asrs r3, r3, #0x10 adds r0, r3, #0 adds r0, #0xa ldr r2, _08037C28 @ =0x02031590 adds r0, r0, r2 ldrb r1, [r0] movs r0, #0xb8 muls r0, r1, r0 ldr r5, _08037C2C @ =0x0200B3B8 adds r6, r0, r5 ldr r0, _08037C18 @ =0x020314E0 ldr r2, [r0] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r1, #0 mov sb, r1 movs r5, #0x84 lsls r5, r5, #3 adds r2, r2, r5 adds r4, r2, r3 ldrb r5, [r4] movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _08037AA6 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 ldr r1, _08037C40 @ =0x086AEA68 adds r0, r0, r1 ldrh r0, [r0] mov sb, r0 subs r0, r5, #1 strb r0, [r4] _08037AA6: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037C30 @ =0x03005000 mov ip, r5 ldr r1, _08037C34 @ =0xFFFFFE00 mov sl, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0xd2 mov sb, r0 _08037AC0: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r2, [r7] lsls r2, r2, #3 add r2, ip movs r3, #2 ldrsh r1, [r7, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08037C38 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip add r5, sb ldr r3, _08037C44 @ =0x000003FF adds r0, r3, #0 ands r5, r0 ldrh r0, [r2, #4] ldr r3, _08037C48 @ =0xFFFFFC00 adds r1, r3, #0 ands r0, r1 orrs r0, r5 strh r0, [r2, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037AC0 mov r5, r8 lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r2, r0, #0x10 mov r8, r2 asrs r0, r0, #0x10 cmp r0, #5 ble _08037A3C movs r3, #6 mov r8, r3 _08037B38: mov r5, r8 lsls r4, r5, #0x10 asrs r3, r4, #0x10 adds r0, r3, #0 adds r0, #0xc ldr r1, _08037C28 @ =0x02031590 adds r0, r0, r1 ldrb r1, [r0] movs r0, #0xb8 muls r0, r1, r0 ldr r2, _08037C2C @ =0x0200B3B8 adds r6, r0, r2 ldr r5, _08037C18 @ =0x020314E0 ldr r2, [r5] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r0, #0 mov sb, r0 movs r1, #0x84 lsls r1, r1, #3 adds r2, r2, r1 adds r5, r2, r3 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] mov sl, r4 cmp r0, #0 beq _08037BA4 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 ldr r2, _08037C40 @ =0x086AEA68 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037BA4: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037C30 @ =0x03005000 mov ip, r5 ldr r1, _08037C34 @ =0xFFFFFE00 mov sb, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, #0xd2 mov r8, r0 _08037BBE: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r2, [r7] lsls r2, r2, #3 add r2, ip movs r3, #2 ldrsh r1, [r7, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08037C38 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip add r5, r8 ldr r3, _08037C44 @ =0x000003FF adds r0, r3, #0 ands r5, r0 ldrh r0, [r2, #4] ldr r3, _08037C48 @ =0xFFFFFC00 adds r1, r3, #0 ands r0, r1 orrs r0, r5 strh r0, [r2, #4] adds r4, #1 b _08037C4C .align 2, 0 _08037C18: .4byte 0x020314E0 _08037C1C: .4byte 0xFFFF0000 _08037C20: .4byte 0x00000402 _08037C24: .4byte 0x0000FFFF _08037C28: .4byte 0x02031590 _08037C2C: .4byte 0x0200B3B8 _08037C30: .4byte 0x03005000 _08037C34: .4byte 0xFFFFFE00 _08037C38: .4byte 0x000001FF _08037C3C: .4byte 0x0000040C _08037C40: .4byte 0x086AEA68 _08037C44: .4byte 0x000003FF _08037C48: .4byte 0xFFFFFC00 _08037C4C: lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037BBE movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r5, r0, #0x10 mov r8, r5 asrs r0, r0, #0x10 cmp r0, #9 bgt _08037C68 b _08037B38 _08037C68: ldr r6, _08037F58 @ =0x0200C5B0 ldr r1, _08037F5C @ =0x020314E0 ldr r0, [r1] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r2, _08037F5C @ =0x020314E0 ldr r0, [r2] adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r3, #0 mov sb, r3 ldr r0, [r2] ldr r1, _08037F60 @ =0x0000041C adds r5, r0, r1 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08037CBA ldr r4, _08037F64 @ =0x086AEA68 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037CBA: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037F68 @ =0x03005000 mov r8, r5 ldr r1, _08037F6C @ =0xFFFFFE00 mov ip, r1 asrs r0, r0, #0xd adds r0, #0xf6 mov sb, r0 ldr r3, _08037F70 @ =0xFFFFFC00 mov sl, r3 _08037CD2: lsls r4, r2, #0x10 asrs r5, r4, #0x10 lsls r0, r5, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, r8 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08037F74 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r3, [r7, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r7] lsls r3, r3, #3 add r3, r8 lsls r1, r5, #2 lsrs r4, r4, #0x1f adds r4, r5, r4 asrs r4, r4, #1 lsls r4, r4, #1 subs r1, r1, r4 add r1, sb ldr r2, _08037F78 @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #4] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _08037CD2 movs r3, #0 mov r8, r3 _08037D3E: mov r5, r8 lsls r4, r5, #0x10 asrs r3, r4, #0x10 movs r0, #0xb8 muls r0, r3, r0 ldr r1, _08037F7C @ =0x0200C668 adds r6, r0, r1 ldr r5, _08037F5C @ =0x020314E0 ldr r2, [r5] adds r0, r2, #0 adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r0, #0 mov sb, r0 adds r2, r2, r3 ldr r1, _08037F80 @ =0x0000041D adds r5, r2, r1 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] mov sl, r4 cmp r0, #0 beq _08037D9E movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 ldr r2, _08037F64 @ =0x086AEA68 adds r0, r0, r2 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037D9E: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037F68 @ =0x03005000 mov ip, r5 ldr r1, _08037F6C @ =0xFFFFFE00 mov sb, r1 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r3, #0x87 lsls r3, r3, #1 adds r3, r3, r0 mov r8, r3 _08037DBC: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r2, [r7] lsls r2, r2, #3 add r2, ip movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08037F74 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, ip ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip add r5, r8 ldr r3, _08037F78 @ =0x000003FF adds r0, r3, #0 ands r5, r0 ldrh r0, [r2, #4] ldr r3, _08037F70 @ =0xFFFFFC00 adds r1, r3, #0 ands r0, r1 orrs r0, r5 strh r0, [r2, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037DBC movs r0, #0x80 lsls r0, r0, #9 add r0, sl lsrs r5, r0, #0x10 mov r8, r5 asrs r0, r0, #0x10 cmp r0, #1 ble _08037D3E ldr r6, _08037F84 @ =0x0200C7D8 ldr r1, _08037F5C @ =0x020314E0 ldr r0, [r1] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r2, _08037F5C @ =0x020314E0 ldr r0, [r2] adds r0, #0x5a ldrh r0, [r0] rsbs r0, r0, #0 subs r0, #0x80 strh r0, [r6, #4] movs r3, #0 mov sb, r3 ldr r0, [r2] ldr r1, _08037F88 @ =0x0000041F adds r5, r0, r1 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #0 beq _08037E7E ldr r4, _08037F64 @ =0x086AEA68 movs r1, #0x18 bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 ldrh r0, [r0] mov sb, r0 subs r0, r7, #1 strb r0, [r5] _08037E7E: movs r2, #0 mov r3, sb lsls r0, r3, #0x10 ldr r5, _08037F68 @ =0x03005000 mov r8, r5 asrs r1, r0, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0x99 lsls r1, r1, #1 adds r1, r1, r0 mov ip, r1 _08037E98: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r5, r4, #3 adds r0, r5, #0 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r7, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r0, _08037F74 @ =0x000001FF mov sl, r0 mov r2, sl ands r1, r2 ldrh r2, [r3, #2] ldr r0, _08037F6C @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, r8 ldrb r0, [r6, #4] ldrb r3, [r7, #4] adds r0, r0, r3 strb r0, [r1] ldrh r1, [r7] lsls r1, r1, #3 add r1, r8 add r5, ip ldr r2, _08037F78 @ =0x000003FF adds r0, r2, #0 ands r5, r0 ldrh r2, [r1, #4] ldr r0, _08037F70 @ =0xFFFFFC00 ands r0, r2 orrs r0, r5 strh r0, [r1, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08037E98 ldr r6, _08037F8C @ =0x0200CAB8 ldr r3, _08037F5C @ =0x020314E0 ldr r0, [r3] ldr r4, _08037F90 @ =0x0000132C adds r0, r0, r4 ldr r0, [r0] ldrh r0, [r0, #0x24] strh r0, [r6, #2] ldr r0, [r3] adds r0, r0, r4 ldr r0, [r0] ldrh r0, [r0, #0x26] adds r0, #0xe strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldrh r2, [r6, #8] lsls r2, r2, #3 ldr r5, _08037F68 @ =0x03005000 adds r2, r2, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r5, sl ands r1, r5 ldrh r3, [r2, #2] ldr r0, _08037F6C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldr r1, _08037F5C @ =0x020314E0 ldr r0, [r1] adds r0, r0, r4 ldr r0, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08037F94 ldrh r0, [r6, #8] lsls r0, r0, #3 ldr r2, _08037F68 @ =0x03005000 adds r0, r0, r2 movs r1, #0xc8 strb r1, [r0] b _08037FA4 .align 2, 0 _08037F58: .4byte 0x0200C5B0 _08037F5C: .4byte 0x020314E0 _08037F60: .4byte 0x0000041C _08037F64: .4byte 0x086AEA68 _08037F68: .4byte 0x03005000 _08037F6C: .4byte 0xFFFFFE00 _08037F70: .4byte 0xFFFFFC00 _08037F74: .4byte 0x000001FF _08037F78: .4byte 0x000003FF _08037F7C: .4byte 0x0200C668 _08037F80: .4byte 0x0000041D _08037F84: .4byte 0x0200C7D8 _08037F88: .4byte 0x0000041F _08037F8C: .4byte 0x0200CAB8 _08037F90: .4byte 0x0000132C _08037F94: ldrh r1, [r6, #8] lsls r1, r1, #3 ldr r3, _08037FC0 @ =0x03005000 adds r1, r1, r3 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] _08037FA4: ldr r6, _08037FC4 @ =0x0200C890 ldr r5, _08037FC8 @ =0x020314E0 ldr r0, [r5] movs r2, #0x82 lsls r2, r2, #3 adds r1, r0, r2 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0xb bgt _08037FCC adds r0, r2, #1 b _08037FCE .align 2, 0 _08037FC0: .4byte 0x03005000 _08037FC4: .4byte 0x0200C890 _08037FC8: .4byte 0x020314E0 _08037FCC: movs r0, #0 _08037FCE: strh r0, [r1] movs r5, #0 mov r8, r5 ldr r0, _08038048 @ =0x020314E0 mov sl, r0 ldr r5, _0803804C @ =0x03005000 ldr r1, _08038050 @ =0xFFFFFE00 mov ip, r1 _08037FDE: mov r2, sl ldr r0, [r2] mov r3, r8 lsls r1, r3, #0x10 asrs r2, r1, #0x10 ldr r1, _08038054 @ =0x0000042A adds r0, r0, r1 adds r3, r0, r2 ldrb r4, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _0803805C adds r1, r0, #0 cmp r1, #0 bge _08038000 adds r1, #3 _08038000: asrs r1, r1, #2 movs r0, #2 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sb, r0 subs r0, r4, #1 strb r0, [r3] mov r0, sl ldr r3, [r0] lsls r2, r2, #2 adds r2, r3, r2 adds r0, r2, #0 adds r0, #0xd0 adds r1, r3, #0 adds r1, #0x4c ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 adds r0, #4 strh r0, [r6, #2] adds r2, #0xd2 adds r1, r3, #0 adds r1, #0x4e ldrh r0, [r2] ldrh r1, [r1] subs r0, r0, r1 ldr r2, _08038058 @ =0x000005FC adds r1, r3, r2 ldrh r1, [r1] subs r0, r0, r1 adds r3, #0xe6 ldrh r1, [r3] subs r0, r0, r1 adds r0, #4 b _08038062 .align 2, 0 _08038048: .4byte 0x020314E0 _0803804C: .4byte 0x03005000 _08038050: .4byte 0xFFFFFE00 _08038054: .4byte 0x0000042A _08038058: .4byte 0x000005FC _0803805C: movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xb4 _08038062: strh r0, [r6, #4] mov r3, r8 lsls r4, r3, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080380E8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r3, [r7, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 mov r0, sb lsls r1, r0, #0x10 asrs r1, r1, #0x10 movs r2, #0xb7 lsls r2, r2, #1 adds r1, r1, r2 ldr r2, _080380EC @ =0x000003FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #4] ldr r0, _080380F0 @ =0xFFFFFC00 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r3, r4, #0x10 mov r8, r3 asrs r4, r4, #0x10 cmp r4, #3 ble _08037FDE ldr r6, _080380F4 @ =0x0200C948 ldr r5, _080380F8 @ =0x020314E0 ldr r0, [r5] ldr r2, _080380FC @ =0x00000412 adds r1, r0, r2 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x17 bgt _08038100 adds r0, r2, #1 b _08038102 .align 2, 0 _080380E8: .4byte 0x000001FF _080380EC: .4byte 0x000003FF _080380F0: .4byte 0xFFFFFC00 _080380F4: .4byte 0x0200C948 _080380F8: .4byte 0x020314E0 _080380FC: .4byte 0x00000412 _08038100: movs r0, #0 _08038102: strh r0, [r1] movs r5, #0 mov r8, r5 _08038108: ldr r1, _08038168 @ =0x020314E0 ldr r0, [r1] mov r2, r8 lsls r1, r2, #0x10 asrs r4, r1, #0x10 adds r0, r0, r4 ldr r3, _0803816C @ =0x0000042E adds r5, r0, r3 ldrb r7, [r5] movs r0, #0 ldrsb r0, [r5, r0] mov sl, r1 cmp r0, #0 beq _08038178 movs r1, #6 bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r1, #2 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sb, r1 subs r0, r7, #1 strb r0, [r5] ldr r5, _08038168 @ =0x020314E0 ldr r3, [r5] lsls r2, r4, #2 adds r2, r3, r2 ldr r1, _08038170 @ =0x00000434 adds r0, r2, r1 adds r1, r3, #0 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 subs r0, #4 strh r0, [r6, #2] ldr r5, _08038174 @ =0x00000436 adds r2, r2, r5 adds r3, #0x5a ldrh r0, [r2] ldrh r1, [r3] subs r0, r0, r1 adds r0, #2 b _0803817E .align 2, 0 _08038168: .4byte 0x020314E0 _0803816C: .4byte 0x0000042E _08038170: .4byte 0x00000434 _08038174: .4byte 0x00000436 _08038178: movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xb4 _0803817E: strh r0, [r6, #4] mov r0, sl asrs r4, r0, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 ldr r1, _08038204 @ =0x03005000 adds r3, r3, r1 movs r5, #2 ldrsh r2, [r7, r5] movs r1, #2 ldrsh r0, [r6, r1] adds r2, r2, r0 ldr r5, _08038208 @ =0x000001FF adds r0, r5, #0 ands r2, r0 ldrh r0, [r3, #2] ldr r5, _0803820C @ =0xFFFFFE00 adds r1, r5, #0 ands r0, r1 orrs r0, r2 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 ldr r0, _08038204 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r2, [r7, #4] adds r0, r0, r2 strb r0, [r1] ldrh r3, [r7] lsls r3, r3, #3 ldr r5, _08038204 @ =0x03005000 adds r3, r3, r5 mov r0, sb lsls r1, r0, #0x10 asrs r1, r1, #0x10 movs r2, #0xb7 lsls r2, r2, #1 adds r1, r1, r2 ldr r5, _08038210 @ =0x000003FF adds r0, r5, #0 ands r1, r0 ldrh r0, [r3, #4] ldr r5, _08038214 @ =0xFFFFFC00 adds r2, r5, #0 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 mov r8, r0 asrs r4, r4, #0x10 cmp r4, #2 ble _08038108 add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08038204: .4byte 0x03005000 _08038208: .4byte 0x000001FF _0803820C: .4byte 0xFFFFFE00 _08038210: .4byte 0x000003FF _08038214: .4byte 0xFFFFFC00 thumb_func_start sub_38218 sub_38218: @ 0x08038218 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x74 movs r5, #0 ldr r0, _080382D8 @ =0x086AEA70 mov sl, r0 ldr r1, _080382DC @ =0x020314E0 mov r8, r1 add r6, sp, #0x64 ldr r4, _080382E0 @ =0x0202D880 ldr r3, _080382E4 @ =0x086BB420 _08038234: lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r2, r0, r4 adds r0, r0, r3 ldr r0, [r0] str r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x20 ble _08038234 mov r2, sl ldr r0, [r2, #0x60] ldr r1, [r2, #0x64] str r0, [sp, #0x60] str r1, [sp, #0x64] mov r3, r8 ldr r0, [r3] ldr r1, _080382E8 @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] ldrh r0, [r0, #0x12] strb r0, [r6] movs r5, #0 mov r7, sl mov r4, r8 ldr r0, [r4] mov ip, r1 add r0, ip str r0, [sp, #0x70] mov sb, sl _08038276: lsls r0, r5, #0x10 asrs r3, r0, #0x10 lsls r2, r3, #3 adds r4, r2, r7 ldrb r1, [r4, #4] ldr r6, [sp, #0x70] ldr r0, [r6] movs r6, #0x12 ldrsh r0, [r0, r6] cmp r1, r0 bge _080382EC movs r0, #0xb cmp r0, r3 blt _080382BA mov r6, sb adds r4, r3, #0 _08038296: lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r0, r2, #1 lsls r0, r0, #3 mov r1, sp adds r3, r1, r0 lsls r0, r2, #3 adds r0, r0, r6 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r3] str r1, [r3, #4] subs r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, r4 bge _08038296 _080382BA: lsls r0, r5, #0x10 asrs r0, r0, #0xd mov r3, sp adds r2, r3, r0 ldr r0, [r7, #0x60] ldr r1, [r7, #0x64] str r0, [r2] str r1, [r2, #4] mov r4, r8 ldr r0, [r4] add r0, ip ldr r0, [r0] ldrh r0, [r0, #0x12] strb r0, [r2, #4] b _08038304 .align 2, 0 _080382D8: .4byte 0x086AEA70 _080382DC: .4byte 0x020314E0 _080382E0: .4byte 0x0202D880 _080382E4: .4byte 0x086BB420 _080382E8: .4byte 0x0000132C _080382EC: mov r6, sp adds r0, r6, r2 ldr r1, [r4] ldr r2, [r4, #4] str r1, [r0] str r2, [r0, #4] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb ble _08038276 _08038304: mov r2, sl ldr r0, [r2, #0x68] ldr r1, [r2, #0x6c] str r0, [sp, #0x68] str r1, [sp, #0x6c] movs r5, #0 ldr r7, _08038374 @ =0x020314E0 ldr r0, [r7] ldr r6, _08038378 @ =0x00000402 adds r3, r0, r6 _08038318: lsls r0, r5, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #3 add r0, sp ldrb r1, [r0, #4] movs r4, #0 ldrsh r0, [r3, r4] cmp r1, r0 bge _0803837C movs r0, #0xc cmp r0, r2 blt _08038356 adds r4, r2, #0 _08038332: lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r0, r2, #1 lsls r0, r0, #3 mov r1, sp adds r3, r1, r0 lsls r0, r2, #3 add r0, sp ldr r1, [r0, #4] ldr r0, [r0] str r0, [r3] str r1, [r3, #4] subs r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 asrs r2, r2, #0x10 cmp r2, r4 bge _08038332 _08038356: lsls r0, r5, #0x10 asrs r0, r0, #0xd mov r3, sp adds r2, r3, r0 mov r4, sl ldr r0, [r4, #0x68] ldr r1, [r4, #0x6c] str r0, [r2] str r1, [r2, #4] ldr r0, [r7] adds r0, r0, r6 ldrh r0, [r0] strb r0, [r2, #4] b _08038388 .align 2, 0 _08038374: .4byte 0x020314E0 _08038378: .4byte 0x00000402 _0803837C: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc ble _08038318 _08038388: movs r5, #0 ldr r6, _080383D8 @ =0x02031590 ldr r4, _080383DC @ =0x0202D880 _0803838E: lsls r2, r5, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #3 mov r1, sp adds r3, r1, r0 ldrb r0, [r3, #5] adds r0, #0xa adds r0, r0, r6 adds r1, r5, #0 adds r1, #0xa strb r1, [r0] adds r0, r2, #0 adds r0, #0xa lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r3] str r1, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r5, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #0xd ble _0803838E ldr r0, _080383DC @ =0x0202D880 movs r1, #0x21 ldr r2, _080383E0 @ =0x0200B3B8 bl sub_358 add sp, #0x74 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080383D8: .4byte 0x02031590 _080383DC: .4byte 0x0202D880 _080383E0: .4byte 0x0200B3B8 thumb_func_start sub_383E4 sub_383E4: @ 0x080383E4 push {r4, r5, r6, r7, lr} ldr r4, _08038438 @ =0x020314E0 ldr r0, [r4] movs r1, #0 movs r3, #0 strh r3, [r0, #0x18] strb r1, [r0, #0x17] ldr r0, [r4] strb r1, [r0, #0x13] ldr r0, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r0, r2 strb r1, [r0] ldr r5, [r4] adds r2, r5, #0 adds r2, #0x6c ldr r6, _0803843C @ =0x00002A30 adds r0, r6, #0 ldrh r7, [r2] adds r0, r0, r7 ldr r6, _08038440 @ =0x00000296 adds r1, r5, r6 strh r0, [r1] strh r3, [r2] ldr r7, _08038444 @ =0x00000283 adds r0, r5, r7 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r6, r4, #0 cmp r0, #3 bne _08038448 movs r0, #0xe1 lsls r0, r0, #2 adds r1, r5, r0 movs r0, #0x12 b _08038450 .align 2, 0 _08038438: .4byte 0x020314E0 _0803843C: .4byte 0x00002A30 _08038440: .4byte 0x00000296 _08038444: .4byte 0x00000283 _08038448: movs r2, #0xe1 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0xf _08038450: strb r0, [r1] ldr r0, [r6] movs r3, #0xe4 lsls r3, r3, #2 adds r1, r0, r3 movs r2, #0 movs r3, #0 strh r3, [r1] ldr r4, _08038634 @ =0x00000389 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r5, _08038638 @ =0x00000383 adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] ldr r7, _0803863C @ =0x00000382 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r4, #3 strb r4, [r0] ldr r0, [r6] adds r5, #0xf adds r1, r0, r5 strh r3, [r1] ldr r7, _08038640 @ =0x0000132C adds r0, r0, r7 ldr r1, [r0] movs r0, #1 strb r0, [r1] ldr r0, [r6] ldr r1, _08038644 @ =0x00000386 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r5, #2 adds r1, r0, r5 strh r3, [r1] ldr r7, _08038648 @ =0x0000038E adds r1, r0, r7 strh r3, [r1] ldr r1, _0803864C @ =0x00000385 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] subs r5, #0xd adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] ldr r7, _08038650 @ =0x000006C4 adds r0, r0, r7 strb r4, [r0] ldr r0, [r6] adds r1, #0x5a adds r0, r0, r1 movs r1, #0xe strb r1, [r0] ldr r0, [r6] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r5, #0x61 adds r1, r0, r5 strh r3, [r1] ldr r7, _08038654 @ =0x000003EA adds r1, r0, r7 strh r3, [r1] ldr r1, _08038658 @ =0x000003DE adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r4, #4 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] subs r5, #6 adds r1, r0, r5 strh r3, [r1] subs r7, #6 adds r1, r0, r7 strh r3, [r1] movs r1, #0x88 lsls r1, r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r4, #0x65 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r5, #0x64 adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] adds r7, #0x63 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] adds r1, #8 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] adds r4, #4 adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] adds r5, #4 adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] adds r7, #7 adds r1, r0, r7 strh r3, [r1] ldr r2, _0803865C @ =0x00000452 adds r1, r0, r2 strh r3, [r1] adds r4, #0xb adds r1, r0, r4 strh r3, [r1] adds r5, #0xc adds r1, r0, r5 strh r3, [r1] adds r7, #2 adds r0, r0, r7 strh r3, [r0] movs r1, #0 adds r5, r6, #0 movs r4, #0 _0803855C: ldr r0, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r1, _08038660 @ =0x00000441 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r3, _08038664 @ =0x00000443 adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] lsls r3, r2, #1 movs r7, #0x8b lsls r7, r7, #3 adds r0, r1, r7 adds r0, r0, r3 strh r4, [r0] lsls r0, r2, #2 adds r1, r1, r0 ldr r3, _08038668 @ =0x0000045C adds r0, r1, r3 strh r4, [r0] adds r7, #6 adds r0, r1, r7 strh r4, [r0] adds r3, #8 adds r0, r1, r3 strh r4, [r0] adds r7, #8 adds r1, r1, r7 strh r4, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0803855C movs r1, #0 ldr r7, _0803866C @ =0x020314E0 ldr r5, _08038670 @ =0x0000046C movs r3, #0 ldr r4, _08038674 @ =0x0000046E _080385B4: ldr r2, [r7] lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r2, r2, r1 adds r1, r2, r5 strh r3, [r1] adds r2, r2, r4 strh r3, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _080385B4 ldr r1, [r6] movs r0, #1 strb r0, [r1, #0x1a] bl sub_38A20 bl sub_395D8 bl sub_39A40 bl sub_3AE14 movs r0, #0x29 bl m4aSongNumStart ldr r2, _08038678 @ =0x040000D4 ldr r0, [r6] ldr r1, _0803867C @ =0x000005F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _08038680 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08038684 @ =0x05000220 str r0, [r2, #4] ldr r1, _08038688 @ =0x80000010 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, _0803868C @ =0x086AEAE0 ldr r0, [r0] str r0, [r2] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r0, _08038690 @ =0x80000080 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08038694 @ =0x081B36A4 str r0, [r2] ldr r0, _08038698 @ =0x05000320 str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08038634: .4byte 0x00000389 _08038638: .4byte 0x00000383 _0803863C: .4byte 0x00000382 _08038640: .4byte 0x0000132C _08038644: .4byte 0x00000386 _08038648: .4byte 0x0000038E _0803864C: .4byte 0x00000385 _08038650: .4byte 0x000006C4 _08038654: .4byte 0x000003EA _08038658: .4byte 0x000003DE _0803865C: .4byte 0x00000452 _08038660: .4byte 0x00000441 _08038664: .4byte 0x00000443 _08038668: .4byte 0x0000045C _0803866C: .4byte 0x020314E0 _08038670: .4byte 0x0000046C _08038674: .4byte 0x0000046E _08038678: .4byte 0x040000D4 _0803867C: .4byte 0x000005F6 _08038680: .4byte 0x08137E14 _08038684: .4byte 0x05000220 _08038688: .4byte 0x80000010 _0803868C: .4byte 0x086AEAE0 _08038690: .4byte 0x80000080 _08038694: .4byte 0x081B36A4 _08038698: .4byte 0x05000320 thumb_func_start sub_3869C sub_3869C: @ 0x0803869C push {r4, r5, r6, lr} ldr r0, _080386B8 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _080386AE b _0803899C _080386AE: lsls r0, r0, #2 ldr r1, _080386BC @ =_080386C0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080386B8: .4byte 0x020314E0 _080386BC: .4byte _080386C0 _080386C0: @ jump table .4byte _080386DC @ case 0 .4byte _0803899C @ case 1 .4byte _080387D2 @ case 2 .4byte _08038848 @ case 3 .4byte _080388C8 @ case 4 .4byte _08038924 @ case 5 .4byte _08038984 @ case 6 _080386DC: ldr r6, _08038704 @ =0x020314E0 ldr r0, [r6] ldr r1, _08038708 @ =0x000005F7 adds r0, r0, r1 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r5, [r6] ldrh r1, [r5, #0x18] ldr r0, _0803870C @ =0x000001F3 cmp r1, r0 bhi _08038714 adds r1, r5, #0 adds r1, #0xe6 ldr r0, _08038710 @ =0x0000FFC0 strh r0, [r1] ldrh r0, [r5, #0x18] adds r0, #1 strh r0, [r5, #0x18] b _0803899C .align 2, 0 _08038704: .4byte 0x020314E0 _08038708: .4byte 0x000005F7 _0803870C: .4byte 0x000001F3 _08038710: .4byte 0x0000FFC0 _08038714: ldr r0, _080387A4 @ =0x00000333 cmp r1, r0 bhi _080387C4 ldrh r0, [r5, #0x18] ldr r4, _080387A8 @ =0xFFFFFE0C adds r0, r0, r4 movs r1, #5 bl __divsi3 subs r0, #0x40 adds r1, r5, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r5, #0x18] adds r0, r0, r4 movs r1, #0x18 bl __divsi3 ldr r2, _080387AC @ =0x00000382 adds r1, r5, r2 strb r0, [r1] ldr r0, [r6] adds r1, r0, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 ble _0803874E movs r0, #5 strb r0, [r1] _0803874E: ldr r4, [r6] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] ldr r1, _080387B0 @ =0x040000D4 ldr r3, _080387B4 @ =0x086AEAE0 adds r2, r4, r2 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] str r0, [r1] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _080387B8 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #2 adds r0, r0, r3 ldr r0, [r0] adds r0, #0x80 str r0, [r1] ldr r0, _080387BC @ =0x05000080 str r0, [r1, #4] ldr r0, _080387C0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] adds r0, r4, #0 adds r0, #0xe6 movs r2, #0 ldrsh r1, [r0, r2] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 bge _0803879E b _0803899C _0803879E: movs r0, #0 strb r0, [r4, #0x1a] b _0803899C .align 2, 0 _080387A4: .4byte 0x00000333 _080387A8: .4byte 0xFFFFFE0C _080387AC: .4byte 0x00000382 _080387B0: .4byte 0x040000D4 _080387B4: .4byte 0x086AEAE0 _080387B8: .4byte 0x80000030 _080387BC: .4byte 0x05000080 _080387C0: .4byte 0x80000040 _080387C4: adds r0, r5, #0 adds r0, #0xe6 strh r3, [r0] strb r2, [r5, #0x13] ldr r0, [r6] strh r3, [r0, #0x18] b _0803899C _080387D2: ldr r2, _080387E4 @ =0x020314E0 ldr r3, [r2] ldrh r0, [r3, #0x18] cmp r0, #0x77 bhi _080387E8 adds r0, #1 strh r0, [r3, #0x18] b _0803899C .align 2, 0 _080387E4: .4byte 0x020314E0 _080387E8: movs r1, #0 movs r0, #3 strb r0, [r3, #0x13] ldr r2, [r2] strh r1, [r2, #0x18] ldr r3, _08038830 @ =0x0200B0C0 movs r4, #0xe9 lsls r4, r4, #3 adds r0, r3, r4 movs r4, #1 movs r1, #1 strh r1, [r0] movs r5, #0xd2 lsls r5, r5, #3 adds r0, r3, r5 strh r1, [r0] ldr r1, _08038834 @ =0x040000D4 ldr r0, _08038838 @ =0x0813C874 str r0, [r1] ldr r0, _0803883C @ =0x06015800 str r0, [r1, #4] ldr r0, _08038840 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x88 strh r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] ldr r1, _08038844 @ =0x000005FA adds r2, r2, r1 strb r4, [r2] b _0803899C .align 2, 0 _08038830: .4byte 0x0200B0C0 _08038834: .4byte 0x040000D4 _08038838: .4byte 0x0813C874 _0803883C: .4byte 0x06015800 _08038840: .4byte 0x80001000 _08038844: .4byte 0x000005FA _08038848: bl sub_351A8 ldr r4, _08038890 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803885A movs r0, #0xb5 strh r0, [r1, #0x18] _0803885A: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _08038870 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _08038894 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08038898 @ =0x02FAF080 str r0, [r1, #0x3c] _08038870: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803889C cmp r0, #0x14 bne _08038886 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08038886: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _080388B0 .align 2, 0 _08038890: .4byte 0x020314E0 _08038894: .4byte 0x00061A80 _08038898: .4byte 0x02FAF080 _0803889C: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _080388BC @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _080388B0: ldr r0, _080388C0 @ =0x020314E0 ldr r0, [r0] ldr r4, _080388C4 @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _0803899A .align 2, 0 _080388BC: .4byte 0x00000283 _080388C0: .4byte 0x020314E0 _080388C4: .4byte 0x000005FA _080388C8: ldr r2, _0803890C @ =0x020314E0 ldr r1, [r2] movs r0, #5 strb r0, [r1, #0x13] ldr r2, [r2] movs r0, #0x8c strh r0, [r2, #0x18] ldr r3, _08038910 @ =0x0200B0C0 movs r5, #0xe9 lsls r5, r5, #3 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _08038914 @ =0x040000D4 ldr r0, _08038918 @ =0x0813C874 str r0, [r1] ldr r0, _0803891C @ =0x06015800 str r0, [r1, #4] ldr r0, _08038920 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0xe5 lsls r5, r5, #2 adds r2, r2, r5 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _0803899C .align 2, 0 _0803890C: .4byte 0x020314E0 _08038910: .4byte 0x0200B0C0 _08038914: .4byte 0x040000D4 _08038918: .4byte 0x0813C874 _0803891C: .4byte 0x06015800 _08038920: .4byte 0x80001000 _08038924: bl sub_351A8 ldr r2, _0803895C @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _08038936 movs r0, #0xb5 strh r0, [r1, #0x18] _08038936: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803894C movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r2] ldr r0, _08038960 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _08038964 @ =0x02FAF080 str r0, [r1, #0x3c] _0803894C: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _08038968 adds r0, #1 strh r0, [r1, #0x18] b _0803899C .align 2, 0 _0803895C: .4byte 0x020314E0 _08038960: .4byte 0x00061A80 _08038964: .4byte 0x02FAF080 _08038968: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r2] ldr r0, _08038980 @ =0x00000283 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803899C .align 2, 0 _08038980: .4byte 0x00000283 _08038984: bl sub_351A8 ldr r2, _08038A0C @ =0x020314E0 ldr r0, [r2] ldr r1, _08038A10 @ =0x00000386 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r2, _08038A14 @ =0x000005FA adds r0, r0, r2 _0803899A: strb r1, [r0] _0803899C: bl sub_39A40 bl sub_38A20 bl sub_395D8 bl sub_3AE14 ldr r0, _08038A0C @ =0x020314E0 ldr r1, [r0] movs r4, #0xa5 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080389E4 ldr r5, _08038A18 @ =0x00000296 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #1 bhi _080389E4 ldr r4, _08038A1C @ =0x0200B0C0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080389E4 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _080389E4: ldr r0, _08038A0C @ =0x020314E0 ldr r1, [r0] ldr r2, _08038A10 @ =0x00000386 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08038A02 ldr r4, _08038A14 @ =0x000005FA adds r1, r1, r4 movs r0, #1 strb r0, [r1] bl sub_350F0 _08038A02: bl sub_472E4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08038A0C: .4byte 0x020314E0 _08038A10: .4byte 0x00000386 _08038A14: .4byte 0x000005FA _08038A18: .4byte 0x00000296 _08038A1C: .4byte 0x0200B0C0 thumb_func_start sub_38A20 sub_38A20: @ 0x08038A20 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08038AE8 @ =0x020314E0 ldr r1, [r0] ldr r2, _08038AEC @ =0x00000452 adds r5, r1, r2 ldrh r4, [r5] mov r8, r0 cmp r4, #0 beq _08038AC6 subs r0, r4, #1 strh r0, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 beq _08038AB0 ldr r0, _08038AF0 @ =0x00000389 adds r1, r1, r0 movs r0, #1 strb r0, [r1] mov r1, r8 ldr r0, [r1] adds r0, r0, r2 ldrh r0, [r0] cmp r0, #4 bne _08038AB0 ldr r0, _08038AF4 @ =0x02032F20 ldr r1, _08038AF8 @ =0x086A1E74 bl MPlayStart movs r0, #7 bl sub_11B0 mov r2, r8 ldr r1, [r2] ldr r0, _08038AFC @ =0x0007A120 str r0, [r1, #0x3c] ldr r2, _08038B00 @ =0x00000385 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r6, r8 ldr r3, [r6] adds r2, r3, r2 movs r1, #0xe1 lsls r1, r1, #2 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _08038AB0 ldr r2, _08038B04 @ =0x00000387 adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08038AB0 adds r1, r3, r4 movs r0, #7 strb r0, [r1] _08038AB0: ldr r1, _08038AE8 @ =0x020314E0 ldr r5, [r1] ldr r3, _08038AEC @ =0x00000452 adds r0, r5, r3 ldrh r4, [r0] mov r8, r1 cmp r4, #0 bne _08038AC6 ldr r6, _08038AF0 @ =0x00000389 adds r0, r5, r6 strb r4, [r0] _08038AC6: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xd bls _08038ADE bl _08039562 _08038ADE: lsls r0, r0, #2 ldr r1, _08038B08 @ =_08038B0C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038AE8: .4byte 0x020314E0 _08038AEC: .4byte 0x00000452 _08038AF0: .4byte 0x00000389 _08038AF4: .4byte 0x02032F20 _08038AF8: .4byte 0x086A1E74 _08038AFC: .4byte 0x0007A120 _08038B00: .4byte 0x00000385 _08038B04: .4byte 0x00000387 _08038B08: .4byte _08038B0C _08038B0C: @ jump table .4byte _08038B44 @ case 0 .4byte _08038B88 @ case 1 .4byte _08038CE0 @ case 2 .4byte _08038D80 @ case 3 .4byte _08038E0C @ case 4 .4byte _08038EF2 @ case 5 .4byte _08038FE4 @ case 6 .4byte _080390D8 @ case 7 .4byte _08039562 @ case 8 .4byte _080391F0 @ case 9 .4byte _0803927C @ case 10 .4byte _08039350 @ case 11 .4byte _08039480 @ case 12 .4byte _08039562 @ case 13 _08038B44: ldr r2, _08038B80 @ =0x020314E0 ldr r0, [r2] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r0, r3 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r4, _08038B84 @ =0x000003E2 adds r2, r0, r4 movs r1, #0xc strh r1, [r2] movs r6, #0xf9 lsls r6, r6, #2 adds r1, r0, r6 strh r3, [r1] movs r2, #0xfa lsls r2, r2, #2 adds r1, r0, r2 strh r3, [r1] adds r4, #8 adds r1, r0, r4 strh r3, [r1] adds r6, #0x6c adds r0, r0, r6 strh r3, [r0] bl _08039562 .align 2, 0 _08038B80: .4byte 0x020314E0 _08038B84: .4byte 0x000003E2 _08038B88: ldr r5, _08038C00 @ =0x086AEDA4 ldr r7, _08038C04 @ =0x020314E0 ldr r6, [r7] movs r0, #0x8a lsls r0, r0, #3 adds r4, r6, r0 ldrh r0, [r4] movs r1, #0x8c lsls r1, r1, #1 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xe bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r5 ldr r5, _08038C08 @ =0x040000D4 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #5 ldr r2, _08038C0C @ =0x081B0DE4 adds r0, r0, r2 str r0, [r5] ldr r3, _08038C10 @ =0x050003E0 mov ip, r3 str r3, [r5, #4] ldr r0, _08038C14 @ =0x80000010 mov sl, r0 str r0, [r5, #8] ldr r0, [r5, #8] adds r3, r6, #0 ldrh r0, [r4] adds r0, #1 movs r1, #0 mov sb, r1 strh r0, [r4] ldr r2, _08038C18 @ =0x086AEAF8 ldr r4, _08038C1C @ =0x000003E2 mov r8, r4 adds r4, r3, r4 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _08038C20 adds r0, r1, #1 strh r0, [r3] b _08038CA4 .align 2, 0 _08038C00: .4byte 0x086AEDA4 _08038C04: .4byte 0x020314E0 _08038C08: .4byte 0x040000D4 _08038C0C: .4byte 0x081B0DE4 _08038C10: .4byte 0x050003E0 _08038C14: .4byte 0x80000010 _08038C18: .4byte 0x086AEAF8 _08038C1C: .4byte 0x000003E2 _08038C20: mov r2, sb strh r2, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _08038C6E strh r2, [r4] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r6, r3 movs r0, #4 strb r0, [r1] ldr r0, [r7] ldr r4, _08038CC0 @ =0x000003DD adds r0, r0, r4 movs r1, #6 strb r1, [r0] ldr r0, [r7] ldr r6, _08038CC4 @ =0x000003E1 adds r0, r0, r6 movs r1, #0 strb r1, [r0] ldr r0, [r7] movs r1, #0xe4 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0x3c strh r1, [r0] ldr r0, _08038CC8 @ =0x081B0DE4 adds r0, #0xa0 str r0, [r5] mov r2, ip str r2, [r5, #4] mov r3, sl str r3, [r5, #8] ldr r0, [r5, #8] _08038C6E: ldr r1, [r7] mov r4, r8 adds r0, r1, r4 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0x20 bne _08038C86 movs r0, #0xa5 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #1 strb r0, [r1] _08038C86: ldr r0, [r7] add r0, r8 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x21 bne _08038CA4 ldr r0, _08038CCC @ =0x02032F20 ldr r1, _08038CD0 @ =0x086A1F10 bl MPlayStart ldr r0, [r7] ldr r2, _08038CD4 @ =0x00000387 adds r0, r0, r2 movs r1, #1 strb r1, [r0] _08038CA4: ldr r0, _08038CD8 @ =0x020314E0 ldr r0, [r0] ldr r3, _08038CDC @ =0x00000392 adds r1, r0, r3 ldrh r0, [r1] cmp r0, #2 bhi _08038CB6 bl _08039562 _08038CB6: subs r0, #1 strh r0, [r1] bl _08039562 .align 2, 0 _08038CC0: .4byte 0x000003DD _08038CC4: .4byte 0x000003E1 _08038CC8: .4byte 0x081B0DE4 _08038CCC: .4byte 0x02032F20 _08038CD0: .4byte 0x086A1F10 _08038CD4: .4byte 0x00000387 _08038CD8: .4byte 0x020314E0 _08038CDC: .4byte 0x00000392 _08038CE0: ldr r2, _08038D60 @ =0x086AEAF8 ldr r5, _08038D64 @ =0x020314E0 ldr r4, [r5] ldr r6, _08038D68 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038D08 b _080394A6 _08038D08: movs r2, #0 strh r2, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc bne _08038D3A strh r2, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #4 strb r0, [r1] ldr r0, [r5] ldr r4, _08038D6C @ =0x000003DD adds r0, r0, r4 movs r1, #6 strb r1, [r0] ldr r0, [r5] ldr r1, _08038D70 @ =0x000003E1 adds r0, r0, r1 movs r1, #2 strb r1, [r0] _08038D3A: ldr r1, [r5] adds r0, r1, r6 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0xb beq _08038D4A bl _08039562 _08038D4A: ldr r3, _08038D74 @ =0x00000387 adds r1, r1, r3 movs r0, #1 strb r0, [r1] ldr r0, _08038D78 @ =0x02032F20 ldr r1, _08038D7C @ =0x086A1F10 bl MPlayStart bl _08039562 .align 2, 0 _08038D60: .4byte 0x086AEAF8 _08038D64: .4byte 0x020314E0 _08038D68: .4byte 0x000003E2 _08038D6C: .4byte 0x000003DD _08038D70: .4byte 0x000003E1 _08038D74: .4byte 0x00000387 _08038D78: .4byte 0x02032F20 _08038D7C: .4byte 0x086A1F10 _08038D80: ldr r2, _08038DF0 @ =0x086AEAF8 ldr r5, _08038DF4 @ =0x020314E0 ldr r4, [r5] ldr r6, _08038DF8 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038DA8 b _080394A6 _08038DA8: movs r2, #0 movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 bne _08038DD0 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #0xb strb r0, [r1] ldr r0, [r5] ldr r4, _08038DFC @ =0x000003E1 adds r0, r0, r4 strb r2, [r0] _08038DD0: ldr r1, [r5] adds r0, r1, r6 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #5 beq _08038DDE b _08039562 _08038DDE: ldr r3, _08038E00 @ =0x00000387 adds r0, r1, r3 strb r2, [r0] ldr r0, _08038E04 @ =0x02032F20 ldr r1, _08038E08 @ =0x086A1FC4 bl MPlayStart b _08039562 .align 2, 0 _08038DF0: .4byte 0x086AEAF8 _08038DF4: .4byte 0x020314E0 _08038DF8: .4byte 0x000003E2 _08038DFC: .4byte 0x000003E1 _08038E00: .4byte 0x00000387 _08038E04: .4byte 0x02032F20 _08038E08: .4byte 0x086A1FC4 _08038E0C: ldr r2, _08038E68 @ =0x086AEAF8 ldr r4, _08038E6C @ =0x020314E0 mov r8, r4 ldr r3, [r4] ldr r6, _08038E70 @ =0x000003E2 adds r4, r3, r6 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r3, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038E36 b _080394A6 _08038E36: movs r6, #0 mov sb, r6 movs r7, #0 strh r7, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r6, r0, #0x10 cmp r6, #4 beq _08038E4E b _08039562 _08038E4E: ldr r0, _08038E74 @ =0x000003E1 mov ip, r0 adds r1, r3, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _08038E78 strh r7, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08039562 .align 2, 0 _08038E68: .4byte 0x086AEAF8 _08038E6C: .4byte 0x020314E0 _08038E70: .4byte 0x000003E2 _08038E74: .4byte 0x000003E1 _08038E78: ldr r1, _08038EB8 @ =0x000003DD mov sl, r1 adds r5, r3, r1 movs r0, #0 ldrsb r0, [r5, r0] cmp r0, #3 bne _08038ECE ldr r2, _08038EBC @ =0x00000385 adds r0, r3, r2 subs r2, #1 adds r1, r3, r2 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 blt _08038EC0 strh r7, [r4] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r3, r4 strb r6, [r0] mov r6, r8 ldr r0, [r6] add r0, ip mov r1, sb strb r1, [r0] ldr r0, [r6] add r0, sl movs r1, #6 strb r1, [r0] b _08039562 .align 2, 0 _08038EB8: .4byte 0x000003DD _08038EBC: .4byte 0x00000385 _08038EC0: strh r6, [r4] ldrb r1, [r5] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r3, r2 strb r1, [r0] b _08039562 _08038ECE: movs r0, #0x22 strh r0, [r4] ldrb r1, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r3, r4 strb r1, [r0] mov r6, r8 ldr r0, [r6] movs r1, #0x88 lsls r1, r1, #3 adds r0, r0, r1 mov r2, sb strb r2, [r0] ldr r0, [r6] add r0, ip strb r2, [r0] b _08039562 _08038EF2: ldr r2, _08038F44 @ =0x086AEAF8 mov r3, r8 ldr r4, [r3] ldr r6, _08038F48 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08038F1A b _080394A6 _08038F1A: movs r2, #0 strh r2, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x43 bne _08038F74 ldr r6, _08038F4C @ =0x000003E1 adds r1, r4, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08038F50 movs r0, #0x2d strh r0, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _08038F74 .align 2, 0 _08038F44: .4byte 0x086AEAF8 _08038F48: .4byte 0x000003E2 _08038F4C: .4byte 0x000003E1 _08038F50: strh r2, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #4 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _08038FC8 @ =0x000003E1 adds r0, r0, r2 movs r1, #1 strb r1, [r0] mov r3, r8 ldr r0, [r3] ldr r4, _08038FCC @ =0x000003DD adds r0, r0, r4 movs r1, #3 strb r1, [r0] _08038F74: ldr r5, _08038FD0 @ =0x020314E0 ldr r3, [r5] ldr r4, _08038FD4 @ =0x000003E2 adds r0, r3, r4 movs r6, #0 ldrsh r0, [r0, r6] cmp r0, #0x34 bne _08038FA8 ldr r0, _08038FC8 @ =0x000003E1 adds r2, r3, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #1 movs r6, #0x8b lsls r6, r6, #3 adds r1, r3, r6 adds r1, r1, r0 movs r0, #0 strh r0, [r1] movs r1, #0 ldrsb r1, [r2, r1] ldr r2, _08038FD8 @ =0x00000441 adds r0, r3, r2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] _08038FA8: ldr r0, [r5] adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x32 beq _08038FBE cmp r0, #0x38 beq _08038FBE cmp r0, #0x3e beq _08038FBE b _08039562 _08038FBE: ldr r0, _08038FDC @ =0x02032F20 ldr r1, _08038FE0 @ =0x086A1FE4 bl MPlayStart b _08039562 .align 2, 0 _08038FC8: .4byte 0x000003E1 _08038FCC: .4byte 0x000003DD _08038FD0: .4byte 0x020314E0 _08038FD4: .4byte 0x000003E2 _08038FD8: .4byte 0x00000441 _08038FDC: .4byte 0x02032F20 _08038FE0: .4byte 0x086A1FE4 _08038FE4: ldr r2, _08039010 @ =0x086AEAF8 mov r4, r8 ldr r3, [r4] ldr r6, _08039014 @ =0x000003E2 adds r4, r3, r6 movs r0, #0 ldrsh r1, [r4, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r3, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08039018 adds r0, r2, #1 strh r0, [r1] b _08039098 .align 2, 0 _08039010: .4byte 0x086AEAF8 _08039014: .4byte 0x000003E2 _08039018: movs r0, #0 strh r0, [r1] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x28 bne _08039040 ldr r6, _080390B4 @ =0x000003E1 adds r1, r3, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _08039040 movs r0, #0x22 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] _08039040: ldr r4, _080390B8 @ =0x020314E0 ldr r1, [r4] ldr r5, _080390BC @ =0x000003E2 adds r3, r1, r5 movs r2, #0 ldrsh r0, [r3, r2] cmp r0, #0x2d bne _08039066 movs r2, #0 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #5 strb r0, [r1] ldr r0, [r4] ldr r6, _080390B4 @ =0x000003E1 adds r0, r0, r6 strb r2, [r0] _08039066: ldr r2, [r4] movs r1, #0x88 lsls r1, r1, #3 adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _08039098 adds r0, r2, r5 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x2a bne _08039098 ldr r0, _080390C0 @ =0x0200B0C0 ldr r6, _080390C4 @ =0x00001438 adds r0, r0, r6 movs r1, #1 strh r1, [r0] ldr r1, _080390C8 @ =0x00000456 adds r0, r2, r1 strh r3, [r0] ldr r0, _080390CC @ =0x02032F20 ldr r1, _080390D0 @ =0x086A2038 bl MPlayStart _08039098: ldr r0, _080390B8 @ =0x020314E0 ldr r1, [r0] ldr r2, _080390D4 @ =0x00000452 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #6 bhi _080390A8 b _08039562 _080390A8: movs r3, #0x88 lsls r3, r3, #3 adds r1, r1, r3 movs r0, #1 strb r0, [r1] b _08039562 .align 2, 0 _080390B4: .4byte 0x000003E1 _080390B8: .4byte 0x020314E0 _080390BC: .4byte 0x000003E2 _080390C0: .4byte 0x0200B0C0 _080390C4: .4byte 0x00001438 _080390C8: .4byte 0x00000456 _080390CC: .4byte 0x02032F20 _080390D0: .4byte 0x086A2038 _080390D4: .4byte 0x00000452 _080390D8: mov r4, r8 ldr r0, [r4] movs r6, #0xa5 lsls r6, r6, #2 adds r0, r0, r6 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, [r4] ldr r1, _08039158 @ =0x00000283 adds r0, r4, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bne _08039174 movs r2, #0xf7 lsls r2, r2, #2 adds r1, r4, r2 movs r0, #0xa strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803915C @ =0x000003E2 adds r0, r0, r4 movs r4, #0 strh r5, [r0] ldr r3, _08039160 @ =0x0200B0C0 ldr r6, _08039164 @ =0x00000A28 adds r0, r3, r6 movs r1, #1 strh r1, [r0] movs r2, #0x97 lsls r2, r2, #4 adds r0, r3, r2 strh r1, [r0] mov r6, r8 ldr r1, [r6] movs r0, #0xb3 lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0xc5 strh r0, [r2] ldr r2, _08039168 @ =0x0000038E adds r0, r1, r2 strh r5, [r0] movs r6, #0xb5 lsls r6, r6, #3 adds r1, r1, r6 strb r4, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0803916C @ =0x000005A6 adds r1, r0, r2 strh r5, [r1] ldr r4, _08039170 @ =0x000005A4 adds r0, r0, r4 movs r1, #2 strb r1, [r0] adds r2, r3, #0 b _080391A4 .align 2, 0 _08039158: .4byte 0x00000283 _0803915C: .4byte 0x000003E2 _08039160: .4byte 0x0200B0C0 _08039164: .4byte 0x00000A28 _08039168: .4byte 0x0000038E _0803916C: .4byte 0x000005A6 _08039170: .4byte 0x000005A4 _08039174: movs r6, #0xf7 lsls r6, r6, #2 adds r1, r4, r6 movs r0, #9 strb r0, [r1] mov r0, r8 ldr r1, [r0] ldr r3, _080391D4 @ =0x000003E2 adds r2, r1, r3 movs r0, #0x4f strh r0, [r2] ldr r2, _080391D8 @ =0x0200B0C0 movs r0, #0x80 strb r0, [r2, #0xf] movs r4, #0xe2 lsls r4, r4, #2 adds r1, r1, r4 movs r0, #2 strb r0, [r1] mov r6, r8 ldr r0, [r6] ldr r1, _080391DC @ =0x00000392 adds r0, r0, r1 strh r5, [r0] _080391A4: ldr r3, _080391E0 @ =0x00000E78 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 beq _080391C4 mov r4, r8 ldr r0, [r4] ldr r6, _080391E4 @ =0x00000445 adds r0, r0, r6 movs r1, #7 strb r1, [r0] ldr r0, [r4] ldr r1, _080391E8 @ =0x0000044E adds r0, r0, r1 movs r1, #1 strh r1, [r0] _080391C4: ldr r0, _080391EC @ =0x020314E0 ldr r0, [r0] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0 strh r1, [r0] b _08039562 .align 2, 0 _080391D4: .4byte 0x000003E2 _080391D8: .4byte 0x0200B0C0 _080391DC: .4byte 0x00000392 _080391E0: .4byte 0x00000E78 _080391E4: .4byte 0x00000445 _080391E8: .4byte 0x0000044E _080391EC: .4byte 0x020314E0 _080391F0: ldr r2, _08039264 @ =0x086AEAF8 ldr r5, _08039268 @ =0x020314E0 ldr r4, [r5] ldr r6, _0803926C @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _08039218 b _080394A6 _08039218: movs r2, #0 strh r2, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x6c bne _08039242 movs r0, #0x6b strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #0xd strb r0, [r1] ldr r1, [r5] movs r0, #2 strb r0, [r1, #0x13] ldr r0, [r5] strh r2, [r0, #0x18] _08039242: ldr r1, [r5] adds r0, r1, r6 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x61 beq _08039250 b _08039562 _08039250: ldr r6, _08039270 @ =0x00000387 adds r1, r1, r6 movs r0, #0 strb r0, [r1] ldr r0, _08039274 @ =0x02032F20 ldr r1, _08039278 @ =0x086A20F8 bl MPlayStart b _08039562 .align 2, 0 _08039264: .4byte 0x086AEAF8 _08039268: .4byte 0x020314E0 _0803926C: .4byte 0x000003E2 _08039270: .4byte 0x00000387 _08039274: .4byte 0x02032F20 _08039278: .4byte 0x086A20F8 _0803927C: ldr r2, _080392A8 @ =0x086AEAF8 mov r0, r8 ldr r3, [r0] ldr r1, _080392AC @ =0x000003E2 adds r4, r3, r1 movs r6, #0 ldrsh r1, [r4, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _080392B0 adds r0, r1, #1 strh r0, [r3] b _080392C4 .align 2, 0 _080392A8: .4byte 0x086AEAF8 _080392AC: .4byte 0x000003E2 _080392B0: movs r1, #0 strh r1, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bne _080392C4 strh r1, [r4] _080392C4: mov r2, r8 ldr r6, [r2] ldr r3, _0803933C @ =0x0000038E adds r4, r6, r3 ldrh r5, [r4] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _08039340 @ =0xFFFFFE0C cmp r0, r1 ble _08039304 subs r0, r1, r0 movs r1, #0x1e bl __divsi3 adds r0, r5, r0 strh r0, [r4] movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 adds r2, r6, #0 adds r2, #0xe6 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 rsbs r1, r1, #0 cmp r0, r1 bge _08039304 ldr r0, _08039344 @ =0x0000FFCE strh r0, [r2] _08039304: ldr r3, _08039348 @ =0x020314E0 ldr r1, [r3] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _08039320 ldr r4, _0803934C @ =0x000003E2 adds r1, r1, r4 movs r0, #0x72 strh r0, [r1] _08039320: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x16 beq _08039330 b _08039562 _08039330: ldr r6, _0803934C @ =0x000003E2 adds r1, r1, r6 movs r0, #0x73 strh r0, [r1] b _08039562 .align 2, 0 _0803933C: .4byte 0x0000038E _08039340: .4byte 0xFFFFFE0C _08039344: .4byte 0x0000FFCE _08039348: .4byte 0x020314E0 _0803934C: .4byte 0x000003E2 _08039350: ldr r5, _08039428 @ =0x020314E0 ldr r2, [r5] movs r6, #0xf9 lsls r6, r6, #2 adds r1, r2, r6 ldrh r3, [r1] ldr r0, _0803942C @ =0x0000012B cmp r3, r0 bhi _08039440 adds r0, r3, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xda bne _080393AE ldr r0, _08039430 @ =0x00000456 adds r1, r2, r0 movs r0, #0 strh r0, [r1] bl sub_C00 ldr r4, [r5] movs r1, #0x64 bl __umodsi3 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r2, #0xfa lsls r2, r2, #1 adds r0, r2, #0 subs r0, r0, r1 movs r3, #0xfa lsls r3, r3, #2 adds r4, r4, r3 strh r0, [r4] bl sub_C00 ldr r4, [r5] movs r1, #0x64 bl __umodsi3 lsls r0, r0, #2 adds r0, #0xc8 ldr r1, _08039434 @ =0x000003EA adds r4, r4, r1 strh r0, [r4] _080393AE: ldr r0, [r5] adds r0, r0, r6 ldrh r1, [r0] movs r0, #0x82 lsls r0, r0, #1 cmp r1, r0 beq _080393BE b _08039562 _080393BE: movs r1, #0 mov r8, r5 mov ip, r8 ldr r7, _08039438 @ =0x00000441 movs r6, #0x8b lsls r6, r6, #3 movs r5, #0 _080393CC: mov r3, ip ldr r2, [r3] lsls r0, r1, #0x10 asrs r4, r0, #0x10 adds r0, r2, r7 adds r3, r0, r4 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #3 bne _080393FE lsls r1, r4, #1 adds r0, r2, r6 adds r0, r0, r1 strh r5, [r0] movs r0, #4 strb r0, [r3] mov r0, r8 ldr r2, [r0] ldr r1, _0803943C @ =0x000005AC adds r2, r2, r1 ldr r0, [r2] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 str r0, [r2] _080393FE: mov r2, ip ldr r1, [r2] adds r0, r1, r7 adds r2, r0, r4 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bne _0803941A lsls r0, r4, #1 adds r1, r1, r6 adds r1, r1, r0 strh r5, [r1] movs r0, #5 strb r0, [r2] _0803941A: adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _080393CC b _08039562 .align 2, 0 _08039428: .4byte 0x020314E0 _0803942C: .4byte 0x0000012B _08039430: .4byte 0x00000456 _08039434: .4byte 0x000003EA _08039438: .4byte 0x00000441 _0803943C: .4byte 0x000005AC _08039440: movs r0, #0 strh r0, [r1] ldr r3, _08039470 @ =0x000003E2 adds r1, r2, r3 movs r0, #0x43 strh r0, [r1] movs r4, #0xf7 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0xc strb r0, [r1] ldr r0, [r5] ldr r6, _08039474 @ =0x00000387 adds r0, r0, r6 movs r1, #2 strb r1, [r0] ldr r0, _08039478 @ =0x02032F20 ldr r1, _0803947C @ =0x086A1F10 bl MPlayStart movs r0, #8 bl sub_11B0 b _08039562 .align 2, 0 _08039470: .4byte 0x000003E2 _08039474: .4byte 0x00000387 _08039478: .4byte 0x02032F20 _0803947C: .4byte 0x086A1F10 _08039480: ldr r2, _080394AC @ =0x086AEAF8 mov r7, r8 ldr r4, [r7] ldr r6, _080394B0 @ =0x000003E2 adds r3, r4, r6 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _080394B4 _080394A6: adds r0, r2, #1 strh r0, [r1] b _08039562 .align 2, 0 _080394AC: .4byte 0x086AEAF8 _080394B0: .4byte 0x000003E2 _080394B4: movs r5, #0 strh r5, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x4f bne _0803951C ldr r0, _080394F0 @ =0x000003E1 adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _080394F4 movs r0, #0x4e strh r0, [r3] movs r2, #0xf7 lsls r2, r2, #2 adds r1, r4, r2 movs r0, #0xb strb r0, [r1] ldr r1, [r7] ldr r3, _080394F0 @ =0x000003E1 adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803951C .align 2, 0 _080394F0: .4byte 0x000003E1 _080394F4: movs r0, #0 strb r0, [r1] mov r4, r8 ldr r1, [r4] adds r2, r1, r6 movs r0, #8 strh r0, [r2] movs r6, #0xf7 lsls r6, r6, #2 adds r1, r1, r6 movs r0, #2 strb r0, [r1] ldr r0, [r4] movs r2, #0xfa lsls r2, r2, #2 adds r1, r0, r2 strh r5, [r1] ldr r3, _080395B0 @ =0x000003EA adds r0, r0, r3 strh r5, [r0] _0803951C: ldr r3, _080395B4 @ =0x020314E0 ldr r1, [r3] ldr r2, _080395B8 @ =0x000003E2 adds r0, r1, r2 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x46 bne _08039534 ldr r6, _080395BC @ =0x00000387 adds r1, r1, r6 movs r0, #3 strb r0, [r1] _08039534: ldr r1, [r3] adds r0, r1, r2 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x49 bne _08039548 ldr r6, _080395BC @ =0x00000387 adds r1, r1, r6 movs r0, #0 strb r0, [r1] _08039548: ldr r0, [r3] adds r0, r0, r2 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x48 bne _08039562 ldr r0, _080395C0 @ =0x02032F20 ldr r1, _080395C4 @ =0x086A1FC4 bl MPlayStart movs r0, #8 bl sub_11B0 _08039562: ldr r5, _080395B4 @ =0x020314E0 ldr r0, [r5] movs r4, #0xe4 lsls r4, r4, #2 adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0 beq _080395A2 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _0803958C ldr r0, _080395C8 @ =0x086A3700 ldr r2, _080395CC @ =0x00001278 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0 bl sub_528DC _0803958C: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _080395A2 ldr r0, _080395D0 @ =0x02032EE0 ldr r1, _080395D4 @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _080395A2: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080395B0: .4byte 0x000003EA _080395B4: .4byte 0x020314E0 _080395B8: .4byte 0x000003E2 _080395BC: .4byte 0x00000387 _080395C0: .4byte 0x02032F20 _080395C4: .4byte 0x086A1FC4 _080395C8: .4byte 0x086A3700 _080395CC: .4byte 0x00001278 _080395D0: .4byte 0x02032EE0 _080395D4: .4byte 0x0000FFFF thumb_func_start sub_395D8 sub_395D8: @ 0x080395D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r7, _08039648 @ =0x0200C2D0 ldrh r0, [r7] cmp r0, #0 bne _080395EE b _080398D0 _080395EE: ldr r1, _0803964C @ =0x020314E0 ldr r0, [r1] ldr r2, _08039650 @ =0x000003DF adds r3, r0, r2 movs r5, #0 ldrsb r5, [r3, r5] ldr r4, _08039654 @ =0x086AEAF8 adds r2, #3 adds r0, r0, r2 movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r4, #4 adds r0, r0, r1 ldrh r0, [r0] strb r0, [r3] ldr r1, _0803964C @ =0x020314E0 ldr r0, [r1] adds r0, r0, r2 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] mov r8, r0 cmp r5, #0xe bgt _08039668 ldr r2, _08039658 @ =0x040000D4 lsls r0, r5, #1 adds r0, r0, r5 lsls r0, r0, #2 subs r0, r0, r5 lsls r0, r0, #7 ldr r1, _0803965C @ =0x0849664C adds r0, r0, r1 str r0, [r2] ldr r0, _08039660 @ =0x06010FA0 str r0, [r2, #4] ldr r0, _08039664 @ =0x800002C0 b _08039684 .align 2, 0 _08039648: .4byte 0x0200C2D0 _0803964C: .4byte 0x020314E0 _08039650: .4byte 0x000003DF _08039654: .4byte 0x086AEAF8 _08039658: .4byte 0x040000D4 _0803965C: .4byte 0x0849664C _08039660: .4byte 0x06010FA0 _08039664: .4byte 0x800002C0 _08039668: ldr r2, _08039720 @ =0x040000D4 adds r1, r5, #0 subs r1, #0xf lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, _08039724 @ =0x0849B8CC adds r0, r0, r1 str r0, [r2] ldr r0, _08039728 @ =0x06010FA0 str r0, [r2, #4] ldr r0, _0803972C @ =0x80000260 _08039684: str r0, [r2, #8] ldr r0, [r2, #8] ldr r3, _08039730 @ =0x020314E0 ldr r4, [r3] movs r6, #0xfa lsls r6, r6, #2 adds r5, r4, r6 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 adds r0, #0x48 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r2, _08039734 @ =0x000003EA adds r6, r4, r2 movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r0, #0x42 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 adds r0, #0x78 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r0, #0x32 ldr r2, _08039738 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] ldr r3, _0803973C @ =0x00000387 adds r0, r4, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _08039740 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xc0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x86 b _08039796 .align 2, 0 _08039720: .4byte 0x040000D4 _08039724: .4byte 0x0849B8CC _08039728: .4byte 0x06010FA0 _0803972C: .4byte 0x80000260 _08039730: .4byte 0x020314E0 _08039734: .4byte 0x000003EA _08039738: .4byte 0x0000028A _0803973C: .4byte 0x00000387 _08039740: cmp r0, #3 bne _0803976E movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xc0 movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x96 b _08039796 _0803976E: movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xb4 movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x74 _08039796: ldr r6, _080397FC @ =0x000003F2 adds r1, r4, r6 strh r0, [r1] ldr r1, _08039800 @ =0x020314E0 ldr r0, [r1] ldr r2, _08039804 @ =0x00000389 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _08039810 movs r2, #0 ldr r4, _08039808 @ =0x03005000 ldr r3, _0803980C @ =0xFFFFFE00 mov r8, r3 movs r6, #0xb0 _080397B8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 orrs r0, r6 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _080397B8 b _080398D0 .align 2, 0 _080397FC: .4byte 0x000003F2 _08039800: .4byte 0x020314E0 _08039804: .4byte 0x00000389 _08039808: .4byte 0x03005000 _0803980C: .4byte 0xFFFFFE00 _08039810: cmp r0, #1 bne _0803981C movs r3, #0xe mov r4, r8 lsls r0, r4, #0x10 b _0803983C _0803981C: cmp r0, #3 bne _08039828 movs r3, #0xb mov r6, r8 lsls r0, r6, #0x10 b _0803983C _08039828: mov r1, r8 lsls r0, r1, #0x10 asrs r1, r0, #0x10 movs r3, #4 cmp r1, #0x14 beq _0803983C movs r3, #0xf cmp r1, #0x15 bne _0803983C movs r3, #3 _0803983C: movs r2, #0 lsls r3, r3, #4 mov r8, r3 ldr r3, _080399BC @ =0x086B92FC mov sl, r3 ldr r6, _080399C0 @ =0x03005000 asrs r1, r0, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r4, _080399C4 @ =0xFFFFFE00 mov sb, r4 _08039856: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r4, #2 ldrsh r1, [r7, r4] ldr r0, [sp] adds r1, r0, r1 ldr r4, _080399C8 @ =0x000001FF ands r1, r4 mov r0, sb ldrh r4, [r2, #2] ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r4, r8 orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _08039856 _080398D0: ldr r7, _080399CC @ =0x0200C668 ldrh r0, [r7] cmp r0, #0 bne _080398DA b _08039A08 _080398DA: ldr r6, _080399D0 @ =0x020314E0 ldr r4, [r6] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x6c subs r0, r0, r1 strh r0, [r7, #2] ldr r4, [r6] ldr r3, _080399D4 @ =0x000003EA adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x52 subs r0, r0, r1 strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0803991E movs r0, #0xc8 strh r0, [r7, #4] _0803991E: ldr r4, _080399D8 @ =0x086AEDCC ldr r1, _080399D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080399DC @ =0x00000456 adds r0, r0, r2 ldrh r0, [r0] movs r1, #0x54 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r4 ldr r2, _080399E0 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _080399E4 @ =0x083C13AC adds r0, r0, r1 str r0, [r2] ldr r0, _080399E8 @ =0x06012420 str r0, [r2, #4] ldr r0, _080399EC @ =0x80000060 str r0, [r2, #8] ldr r0, [r2, #8] movs r2, #0 ldr r6, _080399C0 @ =0x03005000 ldr r4, _080399C4 @ =0xFFFFFE00 mov r8, r4 _08039964: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r7, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080399C8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08039964 ldr r3, _080399D0 @ =0x020314E0 ldr r0, [r3] ldr r6, _080399DC @ =0x00000456 adds r4, r0, r6 ldrh r0, [r4] cmp r0, #0x52 bhi _080399F0 adds r0, #1 strh r0, [r4] b _08039A2C .align 2, 0 _080399BC: .4byte 0x086B92FC _080399C0: .4byte 0x03005000 _080399C4: .4byte 0xFFFFFE00 _080399C8: .4byte 0x000001FF _080399CC: .4byte 0x0200C668 _080399D0: .4byte 0x020314E0 _080399D4: .4byte 0x000003EA _080399D8: .4byte 0x086AEDCC _080399DC: .4byte 0x00000456 _080399E0: .4byte 0x040000D4 _080399E4: .4byte 0x083C13AC _080399E8: .4byte 0x06012420 _080399EC: .4byte 0x80000060 _080399F0: movs r1, #0 strh r1, [r4] ldr r0, _08039A00 @ =0x0200B0C0 ldr r2, _08039A04 @ =0x000015A8 adds r0, r0, r2 strh r1, [r0] b _08039A2C .align 2, 0 _08039A00: .4byte 0x0200B0C0 _08039A04: .4byte 0x000015A8 _08039A08: ldr r3, _08039A3C @ =0x020314E0 ldr r1, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xb bne _08039A2C movs r6, #0xf9 lsls r6, r6, #2 adds r0, r1, r6 ldrh r0, [r0] cmp r0, #0xda bne _08039A2C movs r0, #1 strh r0, [r7] _08039A2C: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08039A3C: .4byte 0x020314E0 thumb_func_start sub_39A40 sub_39A40: @ 0x08039A40 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x40 movs r0, #0 str r0, [sp, #4] ldr r1, _08039A84 @ =0x0200BAE8 str r1, [sp] ldrh r0, [r1] movs r2, #0x8a lsls r2, r2, #3 adds r1, r1, r2 mov ip, r1 cmp r0, #0 bne _08039A64 b _08039BF8 _08039A64: ldr r0, _08039A88 @ =0x020314E0 ldr r1, [r0] ldr r3, _08039A8C @ =0x000006C4 adds r1, r1, r3 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #3 bne _08039A90 movs r0, #0xf0 ldr r4, [sp] strh r0, [r4, #2] movs r0, #0xb4 strh r0, [r4, #4] b _08039A9A .align 2, 0 _08039A84: .4byte 0x0200BAE8 _08039A88: .4byte 0x020314E0 _08039A8C: .4byte 0x000006C4 _08039A90: movs r0, #0x60 ldr r5, [sp] strh r0, [r5, #2] movs r0, #0x37 strh r0, [r5, #4] _08039A9A: ldr r6, _08039C24 @ =0x020314E0 ldr r1, [r6] ldr r7, [sp] ldrh r2, [r7, #2] ldr r3, _08039C28 @ =0x000006E4 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r7, #4] ldr r4, _08039C2C @ =0x000006E6 adds r1, r1, r4 strh r0, [r1] movs r5, #4 ldrsh r0, [r7, r5] cmp r0, #0xc7 ble _08039ABC movs r0, #0xc8 strh r0, [r7, #4] _08039ABC: movs r2, #0 ldr r6, _08039C30 @ =0x0200BA30 mov sl, r6 movs r7, #0xa1 lsls r7, r7, #3 add r7, sl mov ip, r7 ldr r5, _08039C34 @ =0x03005000 movs r0, #3 mov r8, r0 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 _08039AD6: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r2, [sp] adds r6, r2, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xd0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r7, _08039C24 @ =0x020314E0 ldr r0, [r7] ldr r1, _08039C38 @ =0x000006DB adds r0, r0, r1 ldrb r1, [r0] mov r2, r8 ands r1, r2 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r6, r7] ldr r2, [sp] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08039C3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08039C40 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _08039AD6 mov r4, sl str r4, [sp] ldr r5, _08039C24 @ =0x020314E0 ldr r0, [r5] ldr r6, _08039C28 @ =0x000006E4 adds r0, r0, r6 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #2] ldr r0, [r5] ldr r7, _08039C2C @ =0x000006E6 adds r0, r0, r7 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _08039B7C movs r0, #0xc8 strh r0, [r4, #4] _08039B7C: movs r2, #0 ldr r5, _08039C34 @ =0x03005000 movs r0, #3 mov r8, r0 movs r1, #0xd rsbs r1, r1, #0 mov sb, r1 ldr r3, _08039C40 @ =0xFFFFFE00 mov sl, r3 _08039B8E: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r7, [sp] adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r1, _08039C24 @ =0x020314E0 ldr r0, [r1] ldr r2, _08039C38 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] mov r7, r8 ands r1, r7 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r6, r0] ldr r2, [sp] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _08039C3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _08039B8E _08039BF8: mov r4, ip str r4, [sp] ldrh r0, [r4] cmp r0, #0 bne _08039C04 b _0803A14E _08039C04: ldr r1, _08039C24 @ =0x020314E0 ldr r0, [r1] ldr r5, _08039C44 @ =0x00000445 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bls _08039C18 b _08039EBA _08039C18: lsls r0, r0, #2 ldr r1, _08039C48 @ =_08039C4C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08039C24: .4byte 0x020314E0 _08039C28: .4byte 0x000006E4 _08039C2C: .4byte 0x000006E6 _08039C30: .4byte 0x0200BA30 _08039C34: .4byte 0x03005000 _08039C38: .4byte 0x000006DB _08039C3C: .4byte 0x000001FF _08039C40: .4byte 0xFFFFFE00 _08039C44: .4byte 0x00000445 _08039C48: .4byte _08039C4C _08039C4C: @ jump table .4byte _08039C6C @ case 0 .4byte _08039CFC @ case 1 .4byte _08039D30 @ case 2 .4byte _08039D90 @ case 3 .4byte _08039DC0 @ case 4 .4byte _08039E20 @ case 5 .4byte _08039E50 @ case 6 .4byte _08039EB0 @ case 7 _08039C6C: ldr r6, _08039CD0 @ =0x020314E0 ldr r0, [r6] ldr r7, _08039CD4 @ =0x00000449 adds r0, r0, r7 movs r2, #0 strb r2, [r0] ldr r0, [r6] ldr r1, _08039CD8 @ =0x00000446 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r0, [r6] ldr r3, _08039CDC @ =0x00000447 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r6] ldr r4, _08039CE0 @ =0x0000044A adds r0, r0, r4 strb r2, [r0] ldr r1, [r6] ldr r5, _08039CE4 @ =0x0000044E adds r0, r1, r5 strh r2, [r0] movs r6, #0x89 lsls r6, r6, #3 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _08039CAE b _08039EBA _08039CAE: ldr r2, _08039CE8 @ =0x040000D4 ldr r7, _08039CEC @ =0x000005F6 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #8 lsls r0, r0, #5 ldr r1, _08039CF0 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _08039CF4 @ =0x05000220 str r0, [r2, #4] ldr r0, _08039CF8 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] b _08039EBA .align 2, 0 _08039CD0: .4byte 0x020314E0 _08039CD4: .4byte 0x00000449 _08039CD8: .4byte 0x00000446 _08039CDC: .4byte 0x00000447 _08039CE0: .4byte 0x0000044A _08039CE4: .4byte 0x0000044E _08039CE8: .4byte 0x040000D4 _08039CEC: .4byte 0x000005F6 _08039CF0: .4byte 0x08137E14 _08039CF4: .4byte 0x05000220 _08039CF8: .4byte 0x80000010 _08039CFC: ldr r1, _08039D20 @ =0x020314E0 ldr r0, [r1] ldr r2, _08039D24 @ =0x0000044A adds r0, r0, r2 movs r1, #4 strb r1, [r0] ldr r3, _08039D20 @ =0x020314E0 ldr r1, [r3] ldr r4, _08039D28 @ =0x0000044E adds r2, r1, r4 movs r0, #0x5a strh r0, [r2] ldr r5, _08039D2C @ =0x00000445 adds r1, r1, r5 movs r0, #2 strb r0, [r1] b _08039EBA .align 2, 0 _08039D20: .4byte 0x020314E0 _08039D24: .4byte 0x0000044A _08039D28: .4byte 0x0000044E _08039D2C: .4byte 0x00000445 _08039D30: ldr r0, _08039D78 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #4] cmp r0, #0 beq _08039D54 ldr r6, _08039D7C @ =0x0000044E adds r1, r1, r6 ldrh r0, [r1] subs r0, #0x5a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08039D4E movs r0, #0 strh r0, [r1] _08039D4E: ldr r0, _08039D80 @ =0x00000111 bl m4aSongNumStart _08039D54: ldr r2, _08039D78 @ =0x020314E0 ldr r0, [r2] ldr r7, _08039D84 @ =0x00000449 adds r0, r0, r7 movs r1, #5 strb r1, [r0] ldr r0, [r2] ldr r1, _08039D88 @ =0x00000446 adds r0, r0, r1 movs r1, #9 strb r1, [r0] ldr r0, [r2] ldr r3, _08039D8C @ =0x00000447 adds r0, r0, r3 movs r1, #3 strb r1, [r0] b _08039EBA .align 2, 0 _08039D78: .4byte 0x020314E0 _08039D7C: .4byte 0x0000044E _08039D80: .4byte 0x00000111 _08039D84: .4byte 0x00000449 _08039D88: .4byte 0x00000446 _08039D8C: .4byte 0x00000447 _08039D90: ldr r4, _08039DB0 @ =0x020314E0 ldr r0, [r4] ldr r5, _08039DB4 @ =0x0000044A adds r0, r0, r5 movs r3, #4 strb r3, [r0] ldr r0, [r4] ldr r6, _08039DB8 @ =0x0000044E adds r2, r0, r6 movs r1, #0x5a strh r1, [r2] ldr r7, _08039DBC @ =0x00000445 adds r0, r0, r7 strb r3, [r0] b _08039EBA .align 2, 0 _08039DB0: .4byte 0x020314E0 _08039DB4: .4byte 0x0000044A _08039DB8: .4byte 0x0000044E _08039DBC: .4byte 0x00000445 _08039DC0: ldr r0, _08039E08 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #4] cmp r0, #0 beq _08039DE4 ldr r0, _08039E0C @ =0x0000044E adds r1, r1, r0 ldrh r0, [r1] subs r0, #0x5a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08039DDE movs r0, #0 strh r0, [r1] _08039DDE: ldr r0, _08039E10 @ =0x00000111 bl m4aSongNumStart _08039DE4: ldr r2, _08039E08 @ =0x020314E0 ldr r0, [r2] ldr r1, _08039E14 @ =0x00000449 adds r0, r0, r1 movs r1, #9 strb r1, [r0] ldr r0, [r2] ldr r3, _08039E18 @ =0x00000446 adds r0, r0, r3 movs r1, #0xd strb r1, [r0] ldr r0, [r2] ldr r4, _08039E1C @ =0x00000447 adds r0, r0, r4 movs r1, #5 strb r1, [r0] b _08039EBA .align 2, 0 _08039E08: .4byte 0x020314E0 _08039E0C: .4byte 0x0000044E _08039E10: .4byte 0x00000111 _08039E14: .4byte 0x00000449 _08039E18: .4byte 0x00000446 _08039E1C: .4byte 0x00000447 _08039E20: ldr r5, _08039E40 @ =0x020314E0 ldr r0, [r5] ldr r6, _08039E44 @ =0x0000044A adds r0, r0, r6 movs r1, #0 strb r1, [r0] ldr r1, [r5] ldr r7, _08039E48 @ =0x0000044E adds r2, r1, r7 movs r0, #0x5a strh r0, [r2] ldr r0, _08039E4C @ =0x00000445 adds r1, r1, r0 movs r0, #6 strb r0, [r1] b _08039EBA .align 2, 0 _08039E40: .4byte 0x020314E0 _08039E44: .4byte 0x0000044A _08039E48: .4byte 0x0000044E _08039E4C: .4byte 0x00000445 _08039E50: ldr r0, _08039E98 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #4] cmp r0, #0 beq _08039E74 ldr r2, _08039E9C @ =0x0000044E adds r1, r1, r2 ldrh r0, [r1] subs r0, #0x5a strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08039E6E movs r0, #0 strh r0, [r1] _08039E6E: ldr r0, _08039EA0 @ =0x00000111 bl m4aSongNumStart _08039E74: ldr r2, _08039E98 @ =0x020314E0 ldr r0, [r2] ldr r3, _08039EA4 @ =0x00000449 adds r0, r0, r3 movs r1, #0xd strb r1, [r0] ldr r0, [r2] ldr r4, _08039EA8 @ =0x00000446 adds r0, r0, r4 movs r1, #0x13 strb r1, [r0] ldr r0, [r2] ldr r5, _08039EAC @ =0x00000447 adds r0, r0, r5 movs r1, #7 strb r1, [r0] b _08039EBA .align 2, 0 _08039E98: .4byte 0x020314E0 _08039E9C: .4byte 0x0000044E _08039EA0: .4byte 0x00000111 _08039EA4: .4byte 0x00000449 _08039EA8: .4byte 0x00000446 _08039EAC: .4byte 0x00000447 _08039EB0: ldr r0, _08039EE0 @ =0x0200B0C0 ldr r6, _08039EE4 @ =0x00000E78 adds r0, r0, r6 movs r1, #0 strh r1, [r0] _08039EBA: ldr r7, _08039EE8 @ =0x020314E0 ldr r4, [r7] ldr r0, _08039EEC @ =0x0000044E adds r1, r4, r0 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _08039EF4 subs r0, r2, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 beq _08039ED8 b _08039FF4 _08039ED8: ldr r0, _08039EF0 @ =0x00000111 bl m4aSongNumStart b _08039FF4 .align 2, 0 _08039EE0: .4byte 0x0200B0C0 _08039EE4: .4byte 0x00000E78 _08039EE8: .4byte 0x020314E0 _08039EEC: .4byte 0x0000044E _08039EF0: .4byte 0x00000111 _08039EF4: ldr r2, _08039F20 @ =0x086AEE5E movs r5, #0x89 lsls r5, r5, #3 adds r3, r4, r5 movs r1, #0 ldrsb r1, [r3, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r6, #0 ldrsh r0, [r0, r6] ldr r7, _08039F24 @ =0x00000454 adds r1, r4, r7 ldrh r2, [r1] cmp r0, r2 ble _08039F28 adds r0, r2, #1 strh r0, [r1] b _08039FF4 .align 2, 0 _08039F20: .4byte 0x086AEE5E _08039F24: .4byte 0x00000454 _08039F28: movs r0, #0 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] ldr r0, _08039F74 @ =0x020314E0 ldr r2, [r0] movs r1, #0x89 lsls r1, r1, #3 adds r3, r2, r1 ldr r4, _08039F78 @ =0x00000446 adds r0, r2, r4 movs r1, #0 ldrsb r1, [r3, r1] ldrb r4, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _08039FA4 ldr r5, _08039F7C @ =0x0000044A adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08039F84 ldr r6, _08039F80 @ =0x00000449 adds r0, r2, r6 ldrb r0, [r0] strb r0, [r3] ldr r7, _08039F74 @ =0x020314E0 ldr r1, [r7] adds r1, r1, r5 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _08039F98 .align 2, 0 _08039F74: .4byte 0x020314E0 _08039F78: .4byte 0x00000446 _08039F7C: .4byte 0x0000044A _08039F80: .4byte 0x00000449 _08039F84: subs r0, r4, #1 strb r0, [r3] ldr r1, _0803A028 @ =0x020314E0 ldr r0, [r1] ldr r2, _0803A02C @ =0x00000447 adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0803A030 @ =0x00000445 adds r0, r0, r3 strb r1, [r0] _08039F98: ldr r4, _0803A028 @ =0x020314E0 ldr r0, [r4] ldr r5, _0803A034 @ =0x0000044E adds r0, r0, r5 movs r1, #0x5a strh r1, [r0] _08039FA4: ldr r5, _0803A028 @ =0x020314E0 ldr r0, [r5] movs r4, #0x89 lsls r4, r4, #3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08039FC0 movs r0, #0x88 lsls r0, r0, #1 bl m4aSongNumStart _08039FC0: ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _08039FF4 ldr r2, _0803A038 @ =0x040000D4 ldr r6, _0803A03C @ =0x000005F6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0803A040 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0803A044 @ =0x05000220 str r0, [r2, #4] ldr r0, _0803A048 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0x89 lsls r0, r0, #1 bl m4aSongNumStart _08039FF4: ldr r0, _0803A028 @ =0x020314E0 ldr r3, [r0] movs r7, #0x89 lsls r7, r7, #3 adds r1, r3, r7 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #0x11 bgt _0803A054 ldr r0, _0803A04C @ =0x00000383 adds r1, r3, r0 movs r2, #0 movs r0, #1 strb r0, [r1] ldr r1, _0803A028 @ =0x020314E0 ldr r0, [r1] ldr r3, _0803A050 @ =0x0000132C adds r0, r0, r3 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] b _0803A05C .align 2, 0 _0803A028: .4byte 0x020314E0 _0803A02C: .4byte 0x00000447 _0803A030: .4byte 0x00000445 _0803A034: .4byte 0x0000044E _0803A038: .4byte 0x040000D4 _0803A03C: .4byte 0x000005F6 _0803A040: .4byte 0x08137E14 _0803A044: .4byte 0x05000220 _0803A048: .4byte 0x80000010 _0803A04C: .4byte 0x00000383 _0803A050: .4byte 0x0000132C _0803A054: ldr r4, _0803A194 @ =0x00000383 adds r1, r3, r4 movs r0, #0 strb r0, [r1] _0803A05C: ldr r5, _0803A198 @ =0x020314E0 ldr r0, [r5] ldr r6, _0803A19C @ =0x0000132C adds r0, r0, r6 ldr r1, [r0] ldrh r1, [r1, #0x24] ldr r7, [sp] strh r1, [r7, #2] ldr r0, [r0] ldrh r0, [r0, #0x26] strh r0, [r7, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0803A07E movs r0, #0xc8 strh r0, [r7, #4] _0803A07E: ldr r4, _0803A1A0 @ =0x086AEE5E ldr r1, _0803A198 @ =0x020314E0 ldr r0, [r1] movs r3, #0x89 lsls r3, r3, #3 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r1, r4, #4 adds r0, r0, r1 ldr r2, _0803A1A4 @ =0x040000D4 ldrh r5, [r0] str r5, [sp, #4] movs r6, #0 ldrsh r1, [r0, r6] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #6 ldr r1, _0803A1A8 @ =0x083C1A6C adds r0, r0, r1 str r0, [r2] ldr r0, _0803A1AC @ =0x060124E0 str r0, [r2, #4] ldr r0, _0803A1B0 @ =0x800001E0 str r0, [r2, #8] ldr r0, [r2, #8] ldr r7, _0803A198 @ =0x020314E0 ldr r0, [r7] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 movs r2, #0 ldr r1, _0803A1B4 @ =0x086B91AC mov sb, r1 ldr r5, _0803A1B8 @ =0x03005000 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r4, _0803A1BC @ =0xFFFFFE00 mov r8, r4 _0803A0E2: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp] adds r6, r7, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb add r0, sl ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803A1C0 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0803A0E2 _0803A14E: movs r2, #0 thumb_func_start sub_3A150 sub_3A150: @ 0x0803A150 lsls r2, r2, #0x10 asrs r3, r2, #0x10 movs r0, #0xb8 adds r1, r3, #0 muls r1, r0, r1 ldr r0, _0803A1C4 @ =0x0200C388 adds r1, r1, r0 str r1, [sp] ldr r5, _0803A1C8 @ =0xFFFFED38 adds r0, r0, r5 ldrb r1, [r0, #0xf] movs r0, #0x80 ands r0, r1 str r2, [sp, #0x3c] cmp r0, #0 beq _0803A174 bl _0803A9A6 _0803A174: ldr r0, _0803A198 @ =0x020314E0 ldr r0, [r0] ldr r6, _0803A1CC @ =0x00000441 adds r0, r0, r6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _0803A18A b _0803A8A2 _0803A18A: lsls r0, r0, #2 ldr r1, _0803A1D0 @ =_0803A1D4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803A194: .4byte 0x00000383 _0803A198: .4byte 0x020314E0 _0803A19C: .4byte 0x0000132C _0803A1A0: .4byte 0x086AEE5E _0803A1A4: .4byte 0x040000D4 _0803A1A8: .4byte 0x083C1A6C _0803A1AC: .4byte 0x060124E0 _0803A1B0: .4byte 0x800001E0 _0803A1B4: .4byte 0x086B91AC _0803A1B8: .4byte 0x03005000 _0803A1BC: .4byte 0xFFFFFE00 _0803A1C0: .4byte 0x000001FF _0803A1C4: .4byte 0x0200C388 _0803A1C8: .4byte 0xFFFFED38 _0803A1CC: .4byte 0x00000441 _0803A1D0: .4byte _0803A1D4 _0803A1D4: @ jump table .4byte _0803A1EC @ case 0 .4byte _0803A218 @ case 1 .4byte _0803A2E4 @ case 2 .4byte _0803A4F0 @ case 3 .4byte _0803A6B8 @ case 4 .4byte _0803A860 @ case 5 _0803A1EC: movs r7, #0 str r7, [sp, #4] ldr r0, _0803A20C @ =0x020314E0 ldr r1, [r0] ldr r2, [sp, #0x3c] asrs r0, r2, #0xe adds r1, r1, r0 ldr r3, _0803A210 @ =0x0000045C adds r0, r1, r3 strh r7, [r0] ldr r5, _0803A214 @ =0x0000045E adds r1, r1, r5 mov r6, sp ldrh r6, [r6, #4] strh r6, [r1] b _0803A8A2 .align 2, 0 _0803A20C: .4byte 0x020314E0 _0803A210: .4byte 0x0000045C _0803A214: .4byte 0x0000045E _0803A218: ldr r7, _0803A248 @ =0x020314E0 mov r8, r7 mov r0, r8 ldr r6, [r0] ldr r1, [sp, #0x3c] asrs r7, r1, #0x10 lsls r1, r7, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r6, r2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #9 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] cmp r4, #0x61 bhi _0803A24C adds r0, r4, #1 strh r0, [r5] b _0803A2AA .align 2, 0 _0803A248: .4byte 0x020314E0 _0803A24C: movs r0, #0 strh r0, [r5] ldr r3, _0803A2C4 @ =0x00000441 adds r0, r6, r3 adds r0, r0, r7 movs r1, #2 strb r1, [r0] bl sub_C00 mov r4, r8 ldr r5, [r4] ldr r6, _0803A2C8 @ =0x00000443 adds r5, r5, r6 adds r5, r5, r7 lsls r4, r7, #3 subs r4, r4, r7 ldr r1, _0803A2CC @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 adds r4, r4, r0 strb r4, [r5] mov r5, r8 ldr r1, [r5] lsls r3, r7, #2 adds r3, r1, r3 ldr r4, _0803A2D0 @ =0x086AEDE8 adds r1, r1, r6 adds r1, r1, r7 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r2, [r0] adds r6, #0x21 adds r0, r3, r6 strh r2, [r0] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r0, [r0, #2] ldr r7, _0803A2D4 @ =0x00000466 adds r3, r3, r7 strh r0, [r3] _0803A2AA: ldr r0, _0803A2D8 @ =0x020314E0 ldr r1, [r0] ldr r2, [sp, #0x3c] asrs r0, r2, #0xe adds r1, r1, r0 ldr r3, _0803A2DC @ =0x0000045C adds r0, r1, r3 movs r2, #0 strh r2, [r0] ldr r4, _0803A2E0 @ =0x0000045E adds r1, r1, r4 strh r2, [r1] b _0803A8A2 .align 2, 0 _0803A2C4: .4byte 0x00000441 _0803A2C8: .4byte 0x00000443 _0803A2CC: .4byte 0x0200B0C0 _0803A2D0: .4byte 0x086AEDE8 _0803A2D4: .4byte 0x00000466 _0803A2D8: .4byte 0x020314E0 _0803A2DC: .4byte 0x0000045C _0803A2E0: .4byte 0x0000045E _0803A2E4: ldr r5, _0803A4AC @ =0x020314E0 mov sl, r5 ldr r7, [r5] ldr r6, [sp, #0x3c] asrs r6, r6, #0x10 mov sb, r6 lsls r6, r6, #1 str r6, [sp, #0x20] movs r1, #0x8b lsls r1, r1, #3 adds r0, r7, r1 adds r0, r0, r6 ldrh r0, [r0] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x13 adds r0, #6 str r0, [sp, #4] ldr r2, _0803A4B0 @ =0x00000441 adds r0, r7, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0803A31C b _0803A48A _0803A31C: ldr r3, _0803A4B4 @ =0x00000442 adds r0, r7, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _0803A32C b _0803A48A _0803A32C: ldr r4, _0803A4B8 @ =0x0000132C adds r0, r7, r4 ldr r6, [r0] movs r5, #0x10 ldrsh r4, [r6, r5] subs r4, #0x78 mov r0, sb lsls r0, r0, #2 str r0, [sp, #0x24] adds r5, r7, r0 ldr r1, _0803A4BC @ =0x0000045C adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r0, r4, r0 str r0, [sp, #0x10] movs r3, #0x12 ldrsh r4, [r6, r3] subs r4, #0x90 ldr r6, _0803A4C0 @ =0x0000045E adds r5, r5, r6 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r0, r4, r0 str r0, [sp, #0x14] ldr r2, [sp, #0x10] adds r1, r2, #0 muls r1, r2, r1 adds r3, r0, #0 adds r0, r3, #0 muls r0, r3, r0 adds r1, r1, r0 mov r8, r1 ldr r4, _0803A4C4 @ =0x00000383 adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803A48A movs r5, #0xe2 lsls r5, r5, #2 adds r0, r7, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803A48A ldr r1, _0803A4C8 @ =0x00000385 adds r0, r7, r1 movs r2, #0xe1 lsls r2, r2, #2 adds r1, r7, r2 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 bge _0803A48A ldr r3, _0803A4CC @ =0x00000452 adds r0, r7, r3 ldrh r5, [r0] cmp r5, #0 bne _0803A48A ldr r0, _0803A4D0 @ =0x0000018F cmp r8, r0 bgt _0803A48A subs r0, #0x7c bl m4aSongNumStart movs r0, #0xc bl sub_11B0 mov r4, sl ldr r0, [r4] movs r2, #1 strb r2, [r0, #0x1f] ldr r1, [r4] movs r7, #0x8b lsls r7, r7, #3 adds r0, r1, r7 ldr r3, [sp, #0x20] adds r0, r0, r3 strh r5, [r0] ldr r4, _0803A4B0 @ =0x00000441 adds r1, r1, r4 add r1, sb movs r0, #3 strb r0, [r1] mov r5, sl ldr r0, [r5] ldr r7, _0803A4D4 @ =0x000005FA adds r0, r0, r7 strb r2, [r0] ldr r5, [r5] ldr r0, [sp, #0x24] adds r4, r5, r0 ldr r1, _0803A4BC @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x78 str r0, [sp, #8] adds r4, r4, r6 movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x90 str r0, [sp, #0xc] ldr r4, [sp, #8] lsls r1, r4, #8 ldr r6, _0803A4B8 @ =0x0000132C adds r0, r5, r6 ldr r2, [r0] ldr r0, [r2, #0x34] subs r0, r1, r0 str r0, [sp, #0x10] ldr r7, [sp, #0xc] lsls r1, r7, #8 ldr r0, [r2, #0x38] subs r0, r1, r0 str r0, [sp, #0x14] ldr r4, _0803A4D8 @ =0x000005AC adds r5, r5, r4 ldr r1, [sp, #0x10] adds r0, r1, #0 muls r0, r1, r0 ldr r2, [sp, #0x14] adds r1, r2, #0 muls r1, r2, r1 adds r0, r0, r1 str r0, [r5] lsls r0, r0, #2 bl Sqrt mov r3, sl ldr r1, [r3] adds r1, r1, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] ldr r4, [sp, #0x10] rsbs r0, r4, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r5, [sp, #0x14] lsls r1, r5, #0x10 asrs r1, r1, #0x10 bl ArcTan2 mov r6, sl ldr r1, [r6] movs r7, #0xb6 lsls r7, r7, #3 adds r1, r1, r7 strh r0, [r1] _0803A48A: ldr r0, _0803A4AC @ =0x020314E0 ldr r3, [r0] ldr r0, [sp, #0x3c] asrs r4, r0, #0x10 lsls r1, r4, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r3, r2 adds r1, r0, r1 ldrh r2, [r1] ldr r0, _0803A4C4 @ =0x00000383 cmp r2, r0 bhi _0803A4DC adds r0, r2, #1 strh r0, [r1] b _0803A8A2 .align 2, 0 _0803A4AC: .4byte 0x020314E0 _0803A4B0: .4byte 0x00000441 _0803A4B4: .4byte 0x00000442 _0803A4B8: .4byte 0x0000132C _0803A4BC: .4byte 0x0000045C _0803A4C0: .4byte 0x0000045E _0803A4C4: .4byte 0x00000383 _0803A4C8: .4byte 0x00000385 _0803A4CC: .4byte 0x00000452 _0803A4D0: .4byte 0x0000018F _0803A4D4: .4byte 0x000005FA _0803A4D8: .4byte 0x000005AC _0803A4DC: movs r0, #0 strh r0, [r1] ldr r5, _0803A4EC @ =0x00000441 adds r0, r3, r5 adds r0, r0, r4 movs r1, #5 b _0803A8A0 .align 2, 0 _0803A4EC: .4byte 0x00000441 _0803A4F0: ldr r6, _0803A668 @ =0x020314E0 ldr r4, [r6] ldr r7, [sp, #0x3c] asrs r7, r7, #0x10 str r7, [sp, #0x28] lsls r0, r7, #1 str r0, [sp, #0x2c] movs r1, #0x8b lsls r1, r1, #3 adds r0, r4, r1 ldr r2, [sp, #0x2c] adds r6, r0, r2 ldrh r5, [r6] adds r0, r5, #0 movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x13 adds r0, #6 str r0, [sp, #4] ldrh r0, [r4, #4] cmp r0, #0 beq _0803A526 adds r0, r5, #0 adds r0, #8 strh r0, [r6] _0803A526: ldr r3, _0803A668 @ =0x020314E0 ldr r7, [r3] movs r4, #0x8b lsls r4, r4, #3 adds r0, r7, r4 ldr r5, [sp, #0x2c] adds r0, r0, r5 ldrh r1, [r0] movs r0, #0x1d subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bgt _0803A546 movs r4, #0xa _0803A546: movs r6, #0xb6 lsls r6, r6, #3 adds r5, r7, r6 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x1e bl __divsi3 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #6 subs r0, r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 ldrh r1, [r5] subs r1, r1, r0 strh r1, [r5] ldr r6, _0803A66C @ =0x0000132C adds r0, r7, r6 ldr r1, [r0] ldr r2, _0803A670 @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] ldr r1, _0803A674 @ =0x000005AC adds r0, r7, r1 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x1e bl __divsi3 mov sl, r0 ldr r2, [sp, #0x28] lsls r4, r2, #2 adds r4, r7, r4 ldr r3, _0803A678 @ =0x0000045C adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x78 str r0, [sp, #8] ldr r0, _0803A67C @ =0x0000045E adds r4, r4, r0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x90 str r0, [sp, #0xc] ldrh r0, [r5] bl sub_C74 ldr r2, _0803A668 @ =0x020314E0 ldr r5, [r2] adds r1, r5, r6 ldr r1, [r1] mov r8, r1 ldr r3, [sp, #8] lsls r4, r3, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r7, sl muls r7, r0, r7 adds r0, r7, #0 ldr r1, _0803A680 @ =0x00004E20 mov sb, r1 bl __divsi3 adds r4, r4, r0 mov r2, r8 str r4, [r2, #0x34] movs r3, #0xb6 lsls r3, r3, #3 adds r5, r5, r3 ldrh r0, [r5] bl sub_C24 ldr r4, _0803A668 @ =0x020314E0 ldr r7, [r4] adds r6, r7, r6 ldr r5, [r6] ldr r1, [sp, #0xc] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sl muls r2, r0, r2 adds r0, r2, #0 mov r1, sb bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] ldr r4, [r6] movs r3, #0x30 ldrsh r0, [r4, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r6] movs r5, #0x32 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] movs r6, #0x8b lsls r6, r6, #3 adds r0, r7, r6 ldr r2, [sp, #0x2c] adds r1, r0, r2 ldrh r2, [r1] ldr r0, _0803A684 @ =0x000001DF cmp r2, r0 bhi _0803A688 adds r0, r2, #1 strh r0, [r1] ldrh r0, [r1] movs r1, #9 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0803A65E b _0803A8A2 _0803A65E: movs r0, #0xc bl sub_11B0 b _0803A8A2 .align 2, 0 _0803A668: .4byte 0x020314E0 _0803A66C: .4byte 0x0000132C _0803A670: .4byte 0xFFFFE000 _0803A674: .4byte 0x000005AC _0803A678: .4byte 0x0000045C _0803A67C: .4byte 0x0000045E _0803A680: .4byte 0x00004E20 _0803A684: .4byte 0x000001DF _0803A688: movs r3, #0 strh r3, [r1] ldr r4, _0803A6AC @ =0x00000441 adds r0, r7, r4 ldr r5, [sp, #0x28] adds r0, r0, r5 movs r1, #4 strb r1, [r0] ldr r6, _0803A6B0 @ =0x020314E0 ldr r2, [r6] ldr r7, _0803A6B4 @ =0x000005AC adds r2, r2, r7 ldr r0, [r2] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 str r0, [r2] b _0803A8A2 .align 2, 0 _0803A6AC: .4byte 0x00000441 _0803A6B0: .4byte 0x020314E0 _0803A6B4: .4byte 0x000005AC _0803A6B8: ldr r0, _0803A7EC @ =0x020314E0 ldr r5, [r0] ldr r1, [sp, #0x3c] asrs r1, r1, #0x10 str r1, [sp, #0x30] lsls r2, r1, #1 str r2, [sp, #0x34] movs r3, #0x8b lsls r3, r3, #3 adds r0, r5, r3 adds r0, r0, r2 ldrh r2, [r0] lsrs r1, r2, #3 movs r0, #5 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] movs r4, #0x2f subs r4, r4, r2 movs r7, #0xb6 lsls r7, r7, #3 adds r6, r5, r7 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xc movs r1, #0x2f bl __divsi3 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #6 subs r0, r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 ldrh r1, [r6] subs r1, r1, r0 strh r1, [r6] ldr r0, _0803A7F0 @ =0x0000132C mov sb, r0 adds r0, r5, r0 ldr r1, [r0] ldr r2, _0803A7F4 @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] ldr r1, _0803A7F8 @ =0x000005AC adds r0, r5, r1 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x2f bl __divsi3 mov sl, r0 ldr r2, [sp, #0x30] lsls r0, r2, #2 adds r5, r5, r0 ldr r3, _0803A7FC @ =0x0000045C adds r0, r5, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x78 str r0, [sp, #8] ldr r0, _0803A800 @ =0x0000045E adds r5, r5, r0 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x90 str r0, [sp, #0xc] ldrh r0, [r6] bl sub_C74 ldr r2, _0803A7EC @ =0x020314E0 ldr r5, [r2] mov r3, sb adds r1, r5, r3 ldr r6, [r1] ldr r1, [sp, #8] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sl muls r2, r0, r2 adds r0, r2, #0 ldr r3, _0803A804 @ =0x00004E20 mov r8, r3 mov r1, r8 bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] adds r5, r5, r7 ldrh r0, [r5] bl sub_C24 ldr r4, _0803A7EC @ =0x020314E0 ldr r7, [r4] mov r5, sb adds r6, r7, r5 ldr r5, [r6] ldr r1, [sp, #0xc] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sl muls r2, r0, r2 adds r0, r2, #0 mov r1, r8 bl __divsi3 subs r4, r4, r0 str r4, [r5, #0x38] ldr r4, [r6] movs r3, #0x30 ldrsh r0, [r4, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r6] movs r5, #0x32 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] movs r0, #0x8b lsls r0, r0, #3 adds r0, r7, r0 str r0, [sp, #0x38] ldr r2, [sp, #0x34] adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x2e bhi _0803A808 adds r0, #1 strh r0, [r1] b _0803A8A2 .align 2, 0 _0803A7EC: .4byte 0x020314E0 _0803A7F0: .4byte 0x0000132C _0803A7F4: .4byte 0xFFFFE000 _0803A7F8: .4byte 0x000005AC _0803A7FC: .4byte 0x0000045C _0803A800: .4byte 0x0000045E _0803A804: .4byte 0x00004E20 _0803A808: movs r3, #0 strh r3, [r1] ldr r3, [r6] ldr r0, _0803A84C @ =0x0200B0C0 ldr r2, [r0, #0x4c] movs r0, #1 ands r2, r0 lsls r1, r2, #2 adds r1, r1, r2 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 ldr r4, _0803A850 @ =0x0000FF6A adds r0, r0, r4 strh r0, [r3, #0x30] ldr r1, [r6] movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1, #0x32] movs r5, #0 strb r5, [r7, #0x1f] ldr r6, _0803A854 @ =0x020314E0 ldr r0, [r6] ldr r7, _0803A858 @ =0x00000441 adds r0, r0, r7 ldr r1, [sp, #0x30] adds r0, r0, r1 strb r5, [r0] ldr r0, [r6] ldr r2, _0803A85C @ =0x000005FA adds r0, r0, r2 strb r5, [r0] b _0803A8A2 .align 2, 0 _0803A84C: .4byte 0x0200B0C0 _0803A850: .4byte 0x0000FF6A _0803A854: .4byte 0x020314E0 _0803A858: .4byte 0x00000441 _0803A85C: .4byte 0x000005FA _0803A860: ldr r0, _0803A890 @ =0x020314E0 ldr r6, [r0] ldr r3, [sp, #0x3c] asrs r7, r3, #0x10 lsls r1, r7, #1 movs r4, #0x8b lsls r4, r4, #3 adds r0, r6, r4 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #6 bl __udivsi3 movs r1, #5 subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 str r1, [sp, #4] cmp r4, #0x23 bhi _0803A894 adds r0, r4, #1 strh r0, [r5] b _0803A8A2 .align 2, 0 _0803A890: .4byte 0x020314E0 _0803A894: movs r1, #0 movs r0, #0 strh r0, [r5] ldr r5, _0803AA20 @ =0x00000441 adds r0, r6, r5 adds r0, r0, r7 _0803A8A0: strb r1, [r0] _0803A8A2: ldr r6, _0803AA24 @ =0x020314E0 mov sl, r6 ldr r1, [r6] ldr r0, [sp, #0x3c] asrs r7, r0, #0x10 ldr r2, _0803AA20 @ =0x00000441 adds r0, r1, r2 adds r0, r0, r7 ldrb r0, [r0] subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0803A9A6 lsls r3, r7, #2 mov sb, r3 add r1, sb ldr r4, _0803AA28 @ =0x00000464 adds r0, r1, r4 movs r5, #0 ldrsh r2, [r0, r5] ldr r5, _0803AA2C @ =0x0000045C adds r0, r1, r5 movs r6, #0 ldrsh r0, [r0, r6] subs r0, r2, r0 str r0, [sp, #0x10] ldr r2, _0803AA30 @ =0x00000466 adds r0, r1, r2 movs r3, #0 ldrsh r2, [r0, r3] ldr r6, _0803AA34 @ =0x0000045E adds r1, r1, r6 movs r4, #0 ldrsh r0, [r1, r4] subs r0, r2, r0 str r0, [sp, #0x14] ldr r0, [sp, #0x10] adds r1, r0, #0 muls r1, r0, r1 ldr r2, [sp, #0x14] adds r0, r2, #0 muls r0, r2, r0 adds r1, r1, r0 mov r8, r1 ldr r3, [sp, #0x10] lsls r0, r3, #0x10 asrs r0, r0, #0x10 rsbs r1, r2, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 bl ArcTan2 adds r4, r0, #0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 bl sub_C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, _0803AA38 @ =0x00001388 bl __divsi3 str r0, [sp, #0x18] adds r0, r4, #0 bl sub_C24 lsls r0, r0, #0x10 asrs r0, r0, #0xe rsbs r0, r0, #0 ldr r1, _0803AA3C @ =0x00004E20 bl __divsi3 str r0, [sp, #0x1c] mov r4, sl ldr r1, [r4] add r1, sb adds r5, r1, r5 ldrh r0, [r5] ldr r2, [sp, #0x18] adds r0, r2, r0 strh r0, [r5] adds r1, r1, r6 ldrh r0, [r1] ldr r3, [sp, #0x1c] adds r0, r3, r0 strh r0, [r1] ldr r0, _0803AA40 @ =0x000009C3 cmp r8, r0 bgt _0803A9A6 bl sub_C00 ldr r5, [r4] subs r6, #0x1b adds r5, r5, r6 adds r5, r5, r7 lsls r4, r7, #3 subs r4, r4, r7 ldr r1, _0803AA44 @ =0x0200B0C0 ldr r1, [r1, #0x4c] adds r0, r0, r1 movs r1, #7 bl __umodsi3 adds r4, r4, r0 strb r4, [r5] mov r4, sl ldr r1, [r4] mov r5, sb adds r3, r1, r5 ldr r4, _0803AA48 @ =0x086AEDE8 adds r1, r1, r6 adds r1, r1, r7 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r2, [r0] adds r6, #0x21 adds r0, r3, r6 strh r2, [r0] movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 adds r0, r0, r4 ldrh r0, [r0, #2] ldr r7, _0803AA30 @ =0x00000466 adds r3, r3, r7 strh r0, [r3] _0803A9A6: ldr r2, _0803AA4C @ =0x040000D4 ldr r1, [sp, #4] lsls r0, r1, #0x10 asrs r0, r0, #7 ldr r1, _0803AA50 @ =0x084FF90C adds r0, r0, r1 str r0, [r2] ldr r3, [sp, #0x3c] asrs r4, r3, #0x10 lsls r0, r4, #9 ldr r5, _0803AA54 @ =0x06011520 adds r0, r0, r5 str r0, [r2, #4] ldr r0, _0803AA58 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r6, [sp] ldrh r0, [r6] cmp r0, #0 beq _0803AA9E ldr r0, _0803AA24 @ =0x020314E0 ldr r5, [r0] ldr r7, _0803AA20 @ =0x00000441 adds r0, r5, r7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803AA5C lsls r4, r4, #2 adds r4, r5, r4 ldr r1, _0803AA2C @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x68 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _0803AA34 @ =0x0000045E adds r4, r4, r3 movs r6, #0 ldrsh r0, [r4, r6] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x5a ldrh r1, [r1] subs r1, #0x80 subs r0, r0, r1 ldr r7, [sp] strh r0, [r7, #4] b _0803AA66 .align 2, 0 _0803AA20: .4byte 0x00000441 _0803AA24: .4byte 0x020314E0 _0803AA28: .4byte 0x00000464 _0803AA2C: .4byte 0x0000045C _0803AA30: .4byte 0x00000466 _0803AA34: .4byte 0x0000045E _0803AA38: .4byte 0x00001388 _0803AA3C: .4byte 0x00004E20 _0803AA40: .4byte 0x000009C3 _0803AA44: .4byte 0x0200B0C0 _0803AA48: .4byte 0x086AEDE8 _0803AA4C: .4byte 0x040000D4 _0803AA50: .4byte 0x084FF90C _0803AA54: .4byte 0x06011520 _0803AA58: .4byte 0x80000100 _0803AA5C: movs r0, #0xf0 ldr r1, [sp] strh r0, [r1, #2] movs r0, #0xb4 strh r0, [r1, #4] _0803AA66: ldr r6, [sp] adds r6, #8 ldr r4, _0803AB38 @ =0x03005000 ldr r2, [sp] ldrh r3, [r2, #8] lsls r3, r3, #3 adds r3, r3, r4 movs r5, #2 ldrsh r1, [r6, r5] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0803AB3C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0803AB40 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldr r3, [sp] ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _0803AA9E: ldr r4, [sp, #0x3c] movs r5, #0x80 lsls r5, r5, #9 adds r0, r4, r5 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _0803AAB2 bl sub_3A150 _0803AAB2: ldr r6, _0803AB44 @ =0x0200C4F8 str r6, [sp] ldrh r0, [r6] cmp r0, #0 bne _0803AABE b _0803AD44 _0803AABE: ldr r0, _0803AB48 @ =0x020314E0 ldr r1, [r0] ldr r7, _0803AB4C @ =0x00000456 adds r3, r1, r7 ldrh r1, [r3] cmp r1, #0x23 bhi _0803AB7C adds r0, r1, #0 lsls r0, r0, #9 movs r1, #0x23 bl __divsi3 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #2 cmp r0, r1 ble _0803AAE8 adds r6, r1, #0 _0803AAE8: lsls r5, r6, #0x10 asrs r5, r5, #0x10 adds r0, r5, #0 adds r1, r5, #0 movs r2, #1 bl sub_7C0 rsbs r4, r5, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 adds r1, r5, #0 movs r2, #2 bl sub_7C0 adds r0, r5, #0 adds r1, r4, #0 movs r2, #3 bl sub_7C0 adds r0, r4, #0 adds r1, r4, #0 movs r2, #4 bl sub_7C0 ldr r1, _0803AB48 @ =0x020314E0 ldr r0, [r1] adds r1, r0, r7 ldrh r0, [r1] cmp r0, #0x1e bls _0803AB50 subs r0, #0x1e movs r1, #0xb muls r0, r1, r0 movs r1, #5 bl __divsi3 movs r1, #0xc b _0803AB5C .align 2, 0 _0803AB38: .4byte 0x03005000 _0803AB3C: .4byte 0x000001FF _0803AB40: .4byte 0xFFFFFE00 _0803AB44: .4byte 0x0200C4F8 _0803AB48: .4byte 0x020314E0 _0803AB4C: .4byte 0x00000456 _0803AB50: ldrh r0, [r1] lsls r0, r0, #2 movs r1, #0x1e bl __divsi3 movs r1, #0x10 _0803AB5C: subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 ldr r2, _0803AB74 @ =0x020314E0 ldr r1, [r2] ldr r3, _0803AB78 @ =0x00000456 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0803AB86 .align 2, 0 _0803AB74: .4byte 0x020314E0 _0803AB78: .4byte 0x00000456 _0803AB7C: movs r6, #0x80 lsls r6, r6, #1 movs r4, #0 ldr r5, [sp] strh r4, [r5] _0803AB86: ldr r7, _0803AD54 @ =0x020314E0 ldr r1, [r7] lsls r0, r6, #0x10 asrs r5, r0, #0x10 adds r0, r5, #0 cmp r5, #0 bge _0803AB96 adds r0, r5, #7 _0803AB96: asrs r3, r0, #3 movs r0, #0x20 subs r2, r0, r3 ldr r6, _0803AD58 @ =0x0000046C adds r0, r1, r6 strh r2, [r0] adds r3, #0x20 movs r7, #0x8e lsls r7, r7, #3 adds r0, r1, r7 strh r3, [r0] ldr r6, _0803AD5C @ =0x00000474 adds r0, r1, r6 strh r2, [r0] movs r7, #0x8f lsls r7, r7, #3 adds r0, r1, r7 strh r3, [r0] ldr r6, _0803AD60 @ =0x0000046E adds r0, r1, r6 strh r2, [r0] ldr r7, _0803AD64 @ =0x00000472 adds r0, r1, r7 strh r2, [r0] ldr r2, _0803AD68 @ =0x00000476 adds r0, r1, r2 strh r3, [r0] ldr r5, _0803AD6C @ =0x0000047A adds r0, r1, r5 strh r3, [r0] ldr r2, _0803AD70 @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #0xc0 ands r0, r1 mov sb, r2 cmp r0, #0 bne _0803ABF6 ldrh r0, [r2, #0x38] ldr r0, _0803AD74 @ =0x00001E10 strh r0, [r2, #0x38] movs r0, #0x10 lsls r1, r4, #0x10 asrs r1, r1, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 ldrh r1, [r2, #0x3a] strh r0, [r2, #0x3a] _0803ABF6: ldr r6, [sp] ldrh r0, [r6] cmp r0, #0 beq _0803ACAE ldr r7, _0803AD54 @ =0x020314E0 ldr r1, [r7] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x17 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x1e subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 ldr r7, _0803AD78 @ =0x03005000 ldr r0, _0803AD7C @ =0xFFFFFE00 mov sl, r0 movs r1, #0xf rsbs r1, r1, #0 mov r8, r1 _0803AC26: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #3 adds r0, #8 ldr r2, [sp] adds r6, r2, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 movs r4, #2 ldrsh r1, [r6, r4] movs r4, #2 ldrsh r0, [r2, r4] adds r1, r1, r0 ldr r0, _0803AD54 @ =0x020314E0 ldr r4, [r0] lsls r0, r5, #2 adds r4, r4, r0 ldr r2, _0803AD58 @ =0x0000046C adds r0, r4, r2 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _0803AD80 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldr r3, [sp] ldrb r1, [r3, #4] ldrb r0, [r6, #4] adds r1, r1, r0 ldr r3, _0803AD60 @ =0x0000046E adds r4, r4, r3 ldrb r0, [r4] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 adds r5, #1 movs r0, #7 adds r1, r5, #0 ands r1, r0 lsls r1, r1, #1 ldrb r2, [r3, #3] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #3] lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803AC26 _0803ACAE: ldr r4, _0803AD54 @ =0x020314E0 ldr r3, [r4] ldr r5, _0803AD84 @ =0x00000456 adds r4, r3, r5 ldrh r0, [r4] cmp r0, #0x1d bhi _0803AD30 ldr r6, _0803AD88 @ =0x0000132C adds r0, r3, r6 ldr r1, [r0] movs r7, #0x10 ldrsh r0, [r1, r7] subs r0, #0x77 str r0, [sp, #0x10] movs r2, #0x12 ldrsh r0, [r1, r2] subs r0, #0x7f str r0, [sp, #0x14] ldr r5, [sp, #0x10] adds r1, r5, #0 muls r1, r5, r1 adds r6, r0, #0 adds r0, r6, #0 muls r0, r6, r0 adds r1, r1, r0 mov r8, r1 movs r7, #0xe2 lsls r7, r7, #2 adds r0, r3, r7 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 bne _0803AD30 ldr r0, _0803AD8C @ =0x086AEE20 ldrh r1, [r4] lsls r1, r1, #1 adds r1, r1, r0 movs r4, #0 ldrsh r0, [r1, r4] cmp r8, r0 bge _0803AD30 ldr r5, _0803AD90 @ =0x00000445 adds r0, r3, r5 strb r2, [r0] ldr r6, _0803AD54 @ =0x020314E0 ldr r0, [r6] adds r7, #0xc0 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] ldr r1, _0803AD94 @ =0x00000454 adds r0, r0, r1 strh r2, [r0] ldr r5, _0803AD70 @ =0x0200B0C0 ldr r2, _0803AD98 @ =0x00000E78 adds r4, r5, r2 ldrh r0, [r4] cmp r0, #0 bne _0803AD2A movs r0, #8 bl sub_11B0 _0803AD2A: movs r0, #1 strh r0, [r4] mov sb, r5 _0803AD30: mov r3, sb ldrb r1, [r3, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 beq _0803AD44 ldr r1, _0803AD9C @ =0x00001438 add r1, sb movs r0, #0 strh r0, [r1] _0803AD44: add sp, #0x40 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803AD54: .4byte 0x020314E0 _0803AD58: .4byte 0x0000046C _0803AD5C: .4byte 0x00000474 _0803AD60: .4byte 0x0000046E _0803AD64: .4byte 0x00000472 _0803AD68: .4byte 0x00000476 _0803AD6C: .4byte 0x0000047A _0803AD70: .4byte 0x0200B0C0 _0803AD74: .4byte 0x00001E10 _0803AD78: .4byte 0x03005000 _0803AD7C: .4byte 0xFFFFFE00 _0803AD80: .4byte 0x000001FF _0803AD84: .4byte 0x00000456 _0803AD88: .4byte 0x0000132C _0803AD8C: .4byte 0x086AEE20 _0803AD90: .4byte 0x00000445 _0803AD94: .4byte 0x00000454 _0803AD98: .4byte 0x00000E78 _0803AD9C: .4byte 0x00001438 thumb_func_start sub_3ADA0 sub_3ADA0: @ 0x0803ADA0 push {r4, r5, r6, r7, lr} ldr r6, _0803AE04 @ =0x0200C4F8 ldrh r0, [r6] cmp r0, #0 beq _0803ADFE movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] movs r0, #0 ldr r7, _0803AE08 @ =0x03005000 ldr r1, _0803AE0C @ =0xFFFFFE00 mov ip, r1 _0803ADBA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0803AE10 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803ADBA _0803ADFE: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803AE04: .4byte 0x0200C4F8 _0803AE08: .4byte 0x03005000 _0803AE0C: .4byte 0xFFFFFE00 _0803AE10: .4byte 0x000001FF thumb_func_start sub_3AE14 sub_3AE14: @ 0x0803AE14 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0803AE80 @ =0x020314E0 ldr r5, [r0] movs r1, #0x13 ldrsb r1, [r5, r1] cmp r1, #0 bne _0803AEA8 ldrh r1, [r5, #0x18] ldr r0, _0803AE84 @ =0x00000257 cmp r1, r0 bhi _0803AEA8 ldr r4, _0803AE88 @ =0x086AEF04 adds r0, r1, #0 movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r4 ldr r1, _0803AE8C @ =0x040000D4 movs r3, #0 ldrsh r2, [r0, r3] lsls r2, r2, #5 ldr r0, _0803AE90 @ =0x083529D8 adds r0, r2, r0 str r0, [r1] ldr r0, _0803AE94 @ =0x05000340 str r0, [r1, #4] ldr r3, _0803AE98 @ =0x80000010 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, _0803AE9C @ =0x0833FF58 adds r2, r2, r0 str r2, [r1] ldr r0, _0803AEA0 @ =0x050002A0 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] movs r6, #2 ldr r0, _0803AEA4 @ =0x0000044C adds r1, r5, r0 movs r0, #0 strh r0, [r1] b _0803AED2 .align 2, 0 _0803AE80: .4byte 0x020314E0 _0803AE84: .4byte 0x00000257 _0803AE88: .4byte 0x086AEF04 _0803AE8C: .4byte 0x040000D4 _0803AE90: .4byte 0x083529D8 _0803AE94: .4byte 0x05000340 _0803AE98: .4byte 0x80000010 _0803AE9C: .4byte 0x0833FF58 _0803AEA0: .4byte 0x050002A0 _0803AEA4: .4byte 0x0000044C _0803AEA8: ldr r6, _0803B0C4 @ =0x086AEEE6 ldr r1, _0803B0C8 @ =0x020314E0 ldr r5, [r1] ldr r2, _0803B0CC @ =0x0000044C adds r5, r5, r2 ldrh r4, [r5] adds r0, r4, #0 movs r1, #0x60 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf adds r0, r0, r6 ldrh r6, [r0] adds r4, #1 strh r4, [r5] _0803AED2: ldr r4, _0803B0D0 @ =0x086AEED6 ldr r3, _0803B0C8 @ =0x020314E0 ldr r0, [r3] movs r1, #0xa4 lsls r1, r1, #2 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 movs r2, #0 ldr r3, _0803B0D4 @ =0x03006C00 mov r8, r3 ldr r1, _0803B0D8 @ =0x086AEEDE mov sl, r1 lsls r6, r6, #0x10 mov sb, r6 ldr r7, _0803B0DC @ =0xFFFFF000 add r7, r8 ldr r6, _0803B0E0 @ =0x08333004 movs r3, #0 ldrsh r0, [r0, r3] lsls r3, r0, #2 ldr r5, _0803B0E4 @ =0x000003FF movs r4, #0x80 lsls r4, r4, #4 _0803AF10: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r4 lsls r2, r2, #1 adds r2, r2, r7 lsls r0, r1, #1 adds r0, r0, r6 ldrh r0, [r0] adds r0, r0, r3 strh r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r5 ble _0803AF10 ldr r4, _0803B0E8 @ =0x040000D4 mov r0, r8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0803B0EC @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r1, _0803B0F0 @ =0x0200B0C0 ldr r0, [r1, #0x4c] movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 add r0, sl ldr r2, _0803B0C8 @ =0x020314E0 ldr r1, [r2] ldr r3, _0803B0F4 @ =0x00000382 adds r1, r1, r3 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #2 ldr r1, _0803B0F8 @ =0x086AEAE0 adds r2, r2, r1 movs r3, #0 ldrsh r1, [r0, r3] lsls r1, r1, #5 ldr r0, [r2] adds r0, r0, r1 str r0, [r4] ldr r0, _0803B0FC @ =0x05000060 str r0, [r4, #4] ldr r0, _0803B100 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] movs r3, #0 ldr r7, _0803B104 @ =0x03005000 mov r0, sb asrs r0, r0, #0xd mov r8, r0 ldr r1, _0803B108 @ =0x086AEEFE mov sb, r1 ldr r2, _0803B10C @ =0xFFFFFC00 mov sl, r2 _0803AF90: lsls r3, r3, #0x10 asrs r1, r3, #0x10 movs r0, #0xb8 muls r0, r1, r0 ldr r1, _0803B110 @ =0x0200BBA0 adds r6, r0, r1 ldr r2, _0803B0C8 @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x80 subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 mov ip, r3 _0803AFBA: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0803B114 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0803B118 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r5, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 lsls r0, r4, #1 add r0, sb ldrh r1, [r0] add r1, r8 ldr r3, _0803B0E4 @ =0x000003FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #4] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _0803AFBA movs r0, #0x80 lsls r0, r0, #9 add r0, ip lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0803AF90 ldr r6, _0803B11C @ =0x0200BE80 ldrh r0, [r6] cmp r0, #0 beq _0803B0B4 ldr r1, _0803B0C8 @ =0x020314E0 ldr r0, [r1] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x78 subs r0, r0, r1 strh r0, [r6, #2] ldr r2, _0803B0C8 @ =0x020314E0 ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x80 subs r0, r0, r1 strh r0, [r6, #4] movs r2, #0 ldr r7, _0803B104 @ =0x03005000 ldr r3, _0803B118 @ =0xFFFFFE00 mov r8, r3 _0803B056: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0803B114 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #7 ble _0803B056 ldr r3, _0803B0C8 @ =0x020314E0 ldr r0, [r3] ldrh r1, [r0, #0x18] movs r0, #0xf0 lsls r0, r0, #1 cmp r1, r0 bne _0803B0B4 ldr r0, _0803B0F0 @ =0x0200B0C0 movs r2, #0xdc lsls r2, r2, #4 adds r1, r0, r2 movs r0, #0 strh r0, [r1] _0803B0B4: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803B0C4: .4byte 0x086AEEE6 _0803B0C8: .4byte 0x020314E0 _0803B0CC: .4byte 0x0000044C _0803B0D0: .4byte 0x086AEED6 _0803B0D4: .4byte 0x03006C00 _0803B0D8: .4byte 0x086AEEDE _0803B0DC: .4byte 0xFFFFF000 _0803B0E0: .4byte 0x08333004 _0803B0E4: .4byte 0x000003FF _0803B0E8: .4byte 0x040000D4 _0803B0EC: .4byte 0x80000400 _0803B0F0: .4byte 0x0200B0C0 _0803B0F4: .4byte 0x00000382 _0803B0F8: .4byte 0x086AEAE0 _0803B0FC: .4byte 0x05000060 _0803B100: .4byte 0x80000010 _0803B104: .4byte 0x03005000 _0803B108: .4byte 0x086AEEFE _0803B10C: .4byte 0xFFFFFC00 _0803B110: .4byte 0x0200BBA0 _0803B114: .4byte 0x000001FF _0803B118: .4byte 0xFFFFFE00 _0803B11C: .4byte 0x0200BE80 thumb_func_start sub_3B120 sub_3B120: @ 0x0803B120 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r4, _0803B158 @ =0x020314E0 ldr r1, [r4] movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] strb r2, [r1, #0x17] ldr r0, [r4] strb r2, [r0, #0x13] ldr r5, [r4] ldr r1, _0803B15C @ =0x00000283 adds r0, r5, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 mov ip, r4 cmp r0, #3 bne _0803B160 movs r2, #0xe1 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #0x12 b _0803B168 .align 2, 0 _0803B158: .4byte 0x020314E0 _0803B15C: .4byte 0x00000283 _0803B160: movs r3, #0xe1 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #0xf _0803B168: strb r0, [r1] mov r4, ip ldr r0, [r4] movs r5, #0xa5 lsls r5, r5, #2 adds r0, r0, r5 movs r3, #0 strb r3, [r0] ldr r1, [r4] adds r5, r1, #0 adds r5, #0x6c ldr r6, _0803B42C @ =0x00002A30 adds r0, r6, #0 ldrh r2, [r5] adds r0, r0, r2 ldr r4, _0803B430 @ =0x00000296 adds r2, r1, r4 movs r4, #0 strh r0, [r2] strh r3, [r5] movs r5, #0xe2 lsls r5, r5, #2 adds r1, r1, r5 movs r2, #3 strb r2, [r1] mov r6, ip ldr r0, [r6] adds r5, #0xa adds r1, r0, r5 strh r3, [r1] ldr r6, _0803B434 @ =0x0000132C adds r0, r0, r6 ldr r0, [r0] movs r1, #1 strb r1, [r0] mov r5, ip ldr r0, [r5] ldr r6, _0803B438 @ =0x00000386 adds r0, r0, r6 strb r4, [r0] ldr r0, [r5] ldr r5, _0803B43C @ =0x00000387 adds r0, r0, r5 strb r1, [r0] mov r6, ip ldr r0, [r6] ldr r1, _0803B440 @ =0x000006C4 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] ldr r2, _0803B444 @ =0x00000382 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] subs r5, #4 adds r0, r0, r5 strb r4, [r0] ldr r0, [r6] ldr r6, _0803B448 @ =0x00000385 adds r0, r0, r6 strb r4, [r0] mov r1, ip ldr r0, [r1] adds r2, #7 adds r0, r0, r2 strb r4, [r0] ldr r1, [r1] adds r5, #0xb adds r0, r1, r5 strh r3, [r0] adds r6, #0xb adds r0, r1, r6 strh r3, [r0] adds r2, #0xb adds r0, r1, r2 strh r3, [r0] adds r5, #0x4e adds r0, r1, r5 strb r4, [r0] mov r6, ip ldr r0, [r6] ldr r1, _0803B44C @ =0x000003DD adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] adds r2, #0x4a adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] adds r5, #3 adds r0, r0, r5 strb r4, [r0] ldr r0, [r6] movs r6, #0xf8 lsls r6, r6, #2 adds r0, r0, r6 strb r4, [r0] mov r1, ip ldr r0, [r1] adds r2, #4 adds r1, r0, r2 strh r3, [r1] adds r5, #2 adds r0, r0, r5 strb r4, [r0] mov r6, ip ldr r1, [r6] adds r2, #2 adds r0, r1, r2 strh r3, [r0] adds r5, #5 adds r0, r1, r5 strh r3, [r0] movs r6, #0xfa lsls r6, r6, #2 adds r0, r1, r6 strh r3, [r0] adds r2, #6 adds r0, r1, r2 strh r3, [r0] adds r5, #6 adds r0, r1, r5 strh r3, [r0] adds r6, #6 adds r0, r1, r6 strh r3, [r0] adds r2, #6 adds r0, r1, r2 strh r3, [r0] adds r5, #6 adds r0, r1, r5 strh r3, [r0] adds r6, #0x64 adds r0, r1, r6 strh r3, [r0] adds r2, #0x66 adds r0, r1, r2 strh r3, [r0] adds r5, #0x8a adds r1, r1, r5 strb r4, [r1] mov r6, ip ldr r0, [r6] ldr r1, _0803B450 @ =0x0000047D adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] adds r2, #0x28 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] adds r5, #3 adds r0, r0, r5 strb r4, [r0] ldr r0, [r6] movs r6, #0x90 lsls r6, r6, #3 adds r1, r0, r6 strh r3, [r1] adds r2, #4 adds r1, r0, r2 strh r3, [r1] adds r5, #5 adds r1, r0, r5 strh r3, [r1] adds r6, #6 adds r1, r0, r6 strh r3, [r1] adds r2, #6 adds r1, r0, r2 strh r3, [r1] adds r5, #6 adds r1, r0, r5 strh r3, [r1] adds r6, #0x3e adds r1, r0, r6 strh r3, [r1] adds r2, #0x3e adds r1, r0, r2 strh r3, [r1] adds r5, #0x3e adds r0, r0, r5 strb r4, [r0] mov r6, ip ldr r0, [r6] adds r2, #4 adds r1, r0, r2 strh r3, [r1] ldr r3, _0803B454 @ =0x000004C9 adds r0, r0, r3 strb r4, [r0] movs r1, #0 mov r5, ip movs r6, #0 movs r7, #0 _0803B2EE: ldr r3, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r4, r2, #2 adds r1, r3, r4 ldr r0, _0803B458 @ =0x0000046C strh r7, [r0, r1] adds r0, #2 adds r1, r1, r0 strh r7, [r1] ldr r1, _0803B45C @ =0x0000048C adds r3, r3, r1 adds r3, r3, r2 strb r6, [r3] ldr r0, [r5] movs r3, #0x92 lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #8 adds r0, r0, r1 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r3, #8 adds r0, r0, r3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #8 adds r0, r0, r1 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r3, #8 adds r0, r0, r3 adds r0, r0, r2 strb r6, [r0] ldr r0, [r5] adds r1, #8 adds r0, r0, r1 adds r0, r0, r2 strb r6, [r0] ldr r1, [r5] lsls r3, r2, #1 mov r8, r3 ldr r3, _0803B460 @ =0x000004AC adds r0, r1, r3 add r0, r8 strh r7, [r0] adds r1, r1, r4 ldr r4, _0803B464 @ =0x000004B4 adds r0, r1, r4 strh r7, [r0] ldr r0, _0803B468 @ =0x000004B6 adds r1, r1, r0 strh r7, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _0803B2EE movs r1, #0 ldr r5, _0803B46C @ =0x020314E0 movs r4, #0 _0803B376: ldr r0, [r5] lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r1, _0803B470 @ =0x000004CC adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r3, _0803B474 @ =0x000004CF adds r0, r0, r3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r6, _0803B478 @ =0x000004D2 adds r0, r0, r6 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r1, #9 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r1, [r5] lsls r3, r2, #1 adds r6, #6 adds r0, r1, r6 adds r0, r0, r3 strh r4, [r0] adds r6, #6 adds r0, r1, r6 adds r0, r0, r3 strh r4, [r0] adds r6, #6 adds r0, r1, r6 adds r0, r0, r3 strh r4, [r0] lsls r0, r2, #2 adds r1, r1, r0 ldr r3, _0803B47C @ =0x000004EC adds r0, r1, r3 strh r4, [r0] adds r6, #0xa adds r0, r1, r6 strh r4, [r0] adds r3, #0xc adds r0, r1, r3 strh r4, [r0] adds r6, #0xc adds r1, r1, r6 strh r4, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _0803B376 mov r0, ip ldr r1, [r0] movs r0, #1 strb r0, [r1, #0x1a] bl sub_3CBC4 bl sub_3B7C4 bl sub_3C6E0 ldr r4, _0803B480 @ =0x040000D4 ldr r0, _0803B484 @ =0x0849F1CC str r0, [r4] ldr r0, _0803B488 @ =0x06015800 str r0, [r4, #4] ldr r0, _0803B48C @ =0x80001000 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_3E644 movs r0, #0x28 bl m4aSongNumStart ldr r0, _0803B490 @ =0x081B36A4 str r0, [r4] ldr r0, _0803B494 @ =0x05000320 str r0, [r4, #4] ldr r0, _0803B498 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803B42C: .4byte 0x00002A30 _0803B430: .4byte 0x00000296 _0803B434: .4byte 0x0000132C _0803B438: .4byte 0x00000386 _0803B43C: .4byte 0x00000387 _0803B440: .4byte 0x000006C4 _0803B444: .4byte 0x00000382 _0803B448: .4byte 0x00000385 _0803B44C: .4byte 0x000003DD _0803B450: .4byte 0x0000047D _0803B454: .4byte 0x000004C9 _0803B458: .4byte 0x0000046C _0803B45C: .4byte 0x0000048C _0803B460: .4byte 0x000004AC _0803B464: .4byte 0x000004B4 _0803B468: .4byte 0x000004B6 _0803B46C: .4byte 0x020314E0 _0803B470: .4byte 0x000004CC _0803B474: .4byte 0x000004CF _0803B478: .4byte 0x000004D2 _0803B47C: .4byte 0x000004EC _0803B480: .4byte 0x040000D4 _0803B484: .4byte 0x0849F1CC _0803B488: .4byte 0x06015800 _0803B48C: .4byte 0x80001000 _0803B490: .4byte 0x081B36A4 _0803B494: .4byte 0x05000320 _0803B498: .4byte 0x80000010 thumb_func_start sub_3B49C sub_3B49C: @ 0x0803B49C push {r4, r5, r6, lr} ldr r0, _0803B4B8 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _0803B4AE b _0803B740 _0803B4AE: lsls r0, r0, #2 ldr r1, _0803B4BC @ =_0803B4C0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B4B8: .4byte 0x020314E0 _0803B4BC: .4byte _0803B4C0 _0803B4C0: @ jump table .4byte _0803B4DC @ case 0 .4byte _0803B740 @ case 1 .4byte _0803B576 @ case 2 .4byte _0803B5EC @ case 3 .4byte _0803B66C @ case 4 .4byte _0803B6C8 @ case 5 .4byte _0803B728 @ case 6 _0803B4DC: ldr r5, _0803B504 @ =0x020314E0 ldr r0, [r5] ldr r1, _0803B508 @ =0x000005F7 adds r0, r0, r1 movs r2, #0 movs r6, #1 strb r6, [r0] ldr r4, [r5] ldrh r1, [r4, #0x18] ldr r0, _0803B50C @ =0x000001F3 cmp r1, r0 bhi _0803B514 adds r1, r4, #0 adds r1, #0xe6 ldr r0, _0803B510 @ =0x0000FFC0 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] b _0803B740 .align 2, 0 _0803B504: .4byte 0x020314E0 _0803B508: .4byte 0x000005F7 _0803B50C: .4byte 0x000001F3 _0803B510: .4byte 0x0000FFC0 _0803B514: ldr r0, _0803B55C @ =0x00000333 cmp r1, r0 bhi _0803B568 ldrh r0, [r4, #0x18] ldr r2, _0803B560 @ =0xFFFFFE0C adds r0, r0, r2 movs r1, #5 bl __divsi3 subs r0, #0x40 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r4, #0x18] adds r0, #1 strh r0, [r4, #0x18] movs r0, #0 ldrsh r1, [r1, r0] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 blt _0803B544 movs r0, #0 strb r0, [r4, #0x1a] _0803B544: ldr r2, [r5] ldrh r1, [r2, #0x18] ldr r0, _0803B564 @ =0x0000028A cmp r1, r0 beq _0803B550 b _0803B740 _0803B550: movs r1, #0xa5 lsls r1, r1, #2 adds r0, r2, r1 strb r6, [r0] b _0803B740 .align 2, 0 _0803B55C: .4byte 0x00000333 _0803B560: .4byte 0xFFFFFE0C _0803B564: .4byte 0x0000028A _0803B568: adds r0, r4, #0 adds r0, #0xe6 strh r2, [r0] strb r6, [r4, #0x13] ldr r0, [r5] strh r2, [r0, #0x18] b _0803B740 _0803B576: ldr r2, _0803B588 @ =0x020314E0 ldr r3, [r2] ldrh r0, [r3, #0x18] cmp r0, #0x77 bhi _0803B58C adds r0, #1 strh r0, [r3, #0x18] b _0803B740 .align 2, 0 _0803B588: .4byte 0x020314E0 _0803B58C: movs r1, #0 movs r0, #3 strb r0, [r3, #0x13] ldr r2, [r2] strh r1, [r2, #0x18] ldr r3, _0803B5D4 @ =0x0200B0C0 movs r4, #0xe9 lsls r4, r4, #3 adds r0, r3, r4 movs r4, #1 movs r1, #1 strh r1, [r0] movs r5, #0xd2 lsls r5, r5, #3 adds r0, r3, r5 strh r1, [r0] ldr r1, _0803B5D8 @ =0x040000D4 ldr r0, _0803B5DC @ =0x0813E894 str r0, [r1] ldr r0, _0803B5E0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803B5E4 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x88 strh r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] ldr r1, _0803B5E8 @ =0x000005FA adds r2, r2, r1 strb r4, [r2] b _0803B740 .align 2, 0 _0803B5D4: .4byte 0x0200B0C0 _0803B5D8: .4byte 0x040000D4 _0803B5DC: .4byte 0x0813E894 _0803B5E0: .4byte 0x06015800 _0803B5E4: .4byte 0x80001000 _0803B5E8: .4byte 0x000005FA _0803B5EC: bl sub_351A8 ldr r4, _0803B634 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803B5FE movs r0, #0xb5 strh r0, [r1, #0x18] _0803B5FE: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803B614 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _0803B638 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803B63C @ =0x02FAF080 str r0, [r1, #0x3c] _0803B614: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803B640 cmp r0, #0x14 bne _0803B62A bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _0803B62A: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _0803B654 .align 2, 0 _0803B634: .4byte 0x020314E0 _0803B638: .4byte 0x00061A80 _0803B63C: .4byte 0x02FAF080 _0803B640: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _0803B660 @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803B654: ldr r0, _0803B664 @ =0x020314E0 ldr r0, [r0] ldr r4, _0803B668 @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _0803B73E .align 2, 0 _0803B660: .4byte 0x00000283 _0803B664: .4byte 0x020314E0 _0803B668: .4byte 0x000005FA _0803B66C: ldr r2, _0803B6B0 @ =0x020314E0 ldr r1, [r2] movs r0, #5 strb r0, [r1, #0x13] ldr r2, [r2] movs r0, #0x8c strh r0, [r2, #0x18] ldr r3, _0803B6B4 @ =0x0200B0C0 movs r5, #0xe9 lsls r5, r5, #3 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _0803B6B8 @ =0x040000D4 ldr r0, _0803B6BC @ =0x0813E894 str r0, [r1] ldr r0, _0803B6C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803B6C4 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0xe5 lsls r5, r5, #2 adds r2, r2, r5 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _0803B740 .align 2, 0 _0803B6B0: .4byte 0x020314E0 _0803B6B4: .4byte 0x0200B0C0 _0803B6B8: .4byte 0x040000D4 _0803B6BC: .4byte 0x0813E894 _0803B6C0: .4byte 0x06015800 _0803B6C4: .4byte 0x80001000 _0803B6C8: bl sub_351A8 ldr r2, _0803B700 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803B6DA movs r0, #0xb5 strh r0, [r1, #0x18] _0803B6DA: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803B6F0 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r2] ldr r0, _0803B704 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803B708 @ =0x02FAF080 str r0, [r1, #0x3c] _0803B6F0: ldr r1, [r2] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803B70C adds r0, #1 strh r0, [r1, #0x18] b _0803B740 .align 2, 0 _0803B700: .4byte 0x020314E0 _0803B704: .4byte 0x00061A80 _0803B708: .4byte 0x02FAF080 _0803B70C: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r2] ldr r0, _0803B724 @ =0x00000283 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803B740 .align 2, 0 _0803B724: .4byte 0x00000283 _0803B728: bl sub_351A8 ldr r2, _0803B7B0 @ =0x020314E0 ldr r0, [r2] ldr r1, _0803B7B4 @ =0x00000386 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r2, _0803B7B8 @ =0x000005FA adds r0, r0, r2 _0803B73E: strb r1, [r0] _0803B740: bl sub_3CBC4 bl sub_3B7C4 bl sub_3C6E0 bl sub_3E644 ldr r0, _0803B7B0 @ =0x020314E0 ldr r1, [r0] movs r4, #0xa5 lsls r4, r4, #2 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803B788 ldr r5, _0803B7BC @ =0x00000296 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #1 bhi _0803B788 ldr r4, _0803B7C0 @ =0x0200B0C0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0803B788 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _0803B788: ldr r0, _0803B7B0 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803B7B4 @ =0x00000386 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803B7A6 ldr r4, _0803B7B8 @ =0x000005FA adds r1, r1, r4 movs r0, #1 strb r0, [r1] bl sub_350F0 _0803B7A6: bl sub_472E4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0803B7B0: .4byte 0x020314E0 _0803B7B4: .4byte 0x00000386 _0803B7B8: .4byte 0x000005FA _0803B7BC: .4byte 0x00000296 _0803B7C0: .4byte 0x0200B0C0 thumb_func_start sub_3B7C4 sub_3B7C4: @ 0x0803B7C4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0803B874 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803B878 @ =0x00000452 adds r4, r1, r2 ldrh r3, [r4] mov r8, r0 cmp r3, #0 beq _0803B850 subs r0, r3, #1 strh r0, [r4] ldr r3, _0803B87C @ =0x00000389 adds r1, r1, r3 movs r0, #1 strb r0, [r1] mov r4, r8 ldr r0, [r4] adds r0, r0, r2 ldrh r0, [r0] cmp r0, #0x23 bne _0803B838 ldr r0, _0803B880 @ =0x02032F20 ldr r1, _0803B884 @ =0x086A22D8 bl MPlayStart ldr r1, [r4] ldr r0, _0803B888 @ =0x0007A120 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 ldr r1, [r4] ldr r2, _0803B88C @ =0x00000385 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r3, [r4] adds r2, r3, r2 movs r1, #0xe1 lsls r1, r1, #2 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _0803B838 movs r2, #0xf7 lsls r2, r2, #2 adds r1, r3, r2 movs r0, #6 strb r0, [r1] _0803B838: ldr r0, _0803B874 @ =0x020314E0 ldr r3, [r0] ldr r4, _0803B878 @ =0x00000452 adds r1, r3, r4 ldrh r1, [r1] mov r8, r0 cmp r1, #0x1e bhi _0803B850 ldr r0, _0803B87C @ =0x00000389 adds r1, r3, r0 movs r0, #0 strb r0, [r1] _0803B850: mov r1, r8 ldr r0, [r1] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0803B868 bl _0803C476 _0803B868: lsls r0, r0, #2 ldr r1, _0803B890 @ =_0803B894 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803B874: .4byte 0x020314E0 _0803B878: .4byte 0x00000452 _0803B87C: .4byte 0x00000389 _0803B880: .4byte 0x02032F20 _0803B884: .4byte 0x086A22D8 _0803B888: .4byte 0x0007A120 _0803B88C: .4byte 0x00000385 _0803B890: .4byte _0803B894 _0803B894: @ jump table .4byte _0803B8C0 @ case 0 .4byte _0803B91C @ case 1 .4byte _0803BB2C @ case 2 .4byte _0803BC74 @ case 3 .4byte _0803BEF8 @ case 4 .4byte _0803BFD4 @ case 5 .4byte _0803C098 @ case 6 .4byte _0803C1BC @ case 7 .4byte _0803C26C @ case 8 .4byte _0803C3C0 @ case 9 .4byte _0803C476 @ case 10 _0803B8C0: ldr r3, _0803B904 @ =0x020314E0 ldr r0, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r4, #0 movs r1, #1 strb r1, [r0] ldr r1, [r3] ldr r0, _0803B908 @ =0x000003E2 adds r2, r1, r0 movs r5, #0 movs r0, #0x16 strh r0, [r2] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 strh r4, [r0] ldr r0, _0803B90C @ =0x000003E1 adds r1, r1, r0 strb r5, [r1] ldr r1, [r3] adds r2, #4 adds r0, r1, r2 strh r4, [r0] ldr r3, _0803B910 @ =0x000003EA adds r2, r1, r3 ldr r0, _0803B914 @ =0x0000FB50 strh r0, [r2] ldr r0, _0803B918 @ =0x000004C6 adds r1, r1, r0 strh r4, [r1] bl _0803C476 .align 2, 0 _0803B904: .4byte 0x020314E0 _0803B908: .4byte 0x000003E2 _0803B90C: .4byte 0x000003E1 _0803B910: .4byte 0x000003EA _0803B914: .4byte 0x0000FB50 _0803B918: .4byte 0x000004C6 _0803B91C: ldr r0, _0803B944 @ =0x086AF140 mov r1, r8 ldr r5, [r1] ldr r2, _0803B948 @ =0x000003E2 adds r4, r5, r2 movs r3, #0 ldrsh r1, [r4, r3] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r0, #0xf9 lsls r0, r0, #2 adds r2, r5, r0 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803B94C adds r0, r3, #1 strh r0, [r2] b _0803B99E .align 2, 0 _0803B944: .4byte 0x086AF140 _0803B948: .4byte 0x000003E2 _0803B94C: movs r3, #0 strh r3, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x24 bne _0803B99E ldr r2, _0803B978 @ =0x000003E1 adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x11 bgt _0803B97C movs r0, #0x22 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803B99E .align 2, 0 _0803B978: .4byte 0x000003E1 _0803B97C: strh r3, [r4] movs r3, #0xf7 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #2 strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r1, _0803BAF8 @ =0x000003DD adds r0, r0, r1 movs r1, #4 strb r1, [r0] ldr r0, [r4] ldr r2, _0803BAFC @ =0x000003E1 adds r0, r0, r2 movs r1, #9 strb r1, [r0] _0803B99E: ldr r0, _0803BB00 @ =0x020314E0 ldr r4, [r0] ldr r3, _0803BB04 @ =0x000003E2 adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x16 beq _0803B9B0 b _0803BABA _0803B9B0: adds r3, #2 adds r2, r4, r3 ldrh r1, [r2] ldr r0, _0803BB08 @ =0x000001F3 cmp r1, r0 bhi _0803BA54 cmp r1, #0x32 beq _0803B9C6 subs r0, #0xe5 cmp r1, r0 bne _0803B9E8 _0803B9C6: ldr r0, _0803BB0C @ =0x000004CA adds r1, r4, r0 movs r0, #0x1f strh r0, [r1] ldrh r0, [r2] movs r1, #0x6e bl __udivsi3 ldr r2, _0803BB10 @ =0x000004C9 adds r1, r4, r2 strb r0, [r1] ldr r0, _0803BB14 @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803B9E8: ldr r0, _0803BB00 @ =0x020314E0 ldr r4, [r0] movs r3, #0xf9 lsls r3, r3, #2 adds r2, r4, r3 ldrh r1, [r2] cmp r1, #0xa0 beq _0803BA00 movs r0, #0xbe lsls r0, r0, #1 cmp r1, r0 bne _0803BA22 _0803BA00: ldr r0, _0803BB0C @ =0x000004CA adds r1, r4, r0 movs r0, #0x1f strh r0, [r1] ldrh r0, [r2] movs r1, #0x6e bl __udivsi3 ldr r2, _0803BB10 @ =0x000004C9 adds r1, r4, r2 strb r0, [r1] ldr r0, _0803BB14 @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803BA22: ldr r0, _0803BB00 @ =0x020314E0 ldr r2, [r0] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r2, r3 ldrh r1, [r0] movs r0, #0xf5 lsls r0, r0, #1 cmp r1, r0 bne _0803BA54 ldr r4, _0803BB0C @ =0x000004CA adds r1, r2, r4 movs r0, #0x1f strh r0, [r1] ldr r0, _0803BB10 @ =0x000004C9 adds r1, r2, r0 movs r0, #4 strb r0, [r1] movs r0, #0x8d lsls r0, r0, #1 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803BA54: ldr r2, _0803BB00 @ =0x020314E0 ldr r3, [r2] movs r1, #0xf9 lsls r1, r1, #2 adds r0, r3, r1 ldrh r1, [r0] ldr r0, _0803BB18 @ =0x00000275 mov r8, r2 cmp r1, r0 bls _0803BA8E ldr r4, _0803BB1C @ =0x000003EA adds r2, r3, r4 movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0 bge _0803BA9E adds r4, #0xdc adds r0, r3, r4 ldrh r1, [r0] adds r1, #4 strh r1, [r0] ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 ble _0803BA8E movs r0, #0 strh r0, [r2] _0803BA8E: mov r1, r8 ldr r0, [r1] ldr r2, _0803BB1C @ =0x000003EA adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 blt _0803BABA _0803BA9E: ldr r0, _0803BB00 @ =0x020314E0 ldr r0, [r0] movs r4, #0x99 lsls r4, r4, #3 adds r0, r0, r4 movs r1, #0x3c strb r1, [r0] ldr r0, _0803BB20 @ =0x02032F20 ldr r1, _0803BB24 @ =0x086A2454 bl MPlayStart movs r0, #0xd bl sub_11B0 _0803BABA: ldr r0, _0803BB00 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803BB04 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 bne _0803BAE0 movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0 bne _0803BAE0 movs r0, #0xe4 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0x29 strh r0, [r1] _0803BAE0: ldr r0, _0803BB00 @ =0x020314E0 ldr r0, [r0] ldr r2, _0803BB28 @ =0x00000392 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x78 bhi _0803BAF2 bl _0803C476 _0803BAF2: subs r0, #1 bl _0803C474 .align 2, 0 _0803BAF8: .4byte 0x000003DD _0803BAFC: .4byte 0x000003E1 _0803BB00: .4byte 0x020314E0 _0803BB04: .4byte 0x000003E2 _0803BB08: .4byte 0x000001F3 _0803BB0C: .4byte 0x000004CA _0803BB10: .4byte 0x000004C9 _0803BB14: .4byte 0x00000119 _0803BB18: .4byte 0x00000275 _0803BB1C: .4byte 0x000003EA _0803BB20: .4byte 0x02032F20 _0803BB24: .4byte 0x086A2454 _0803BB28: .4byte 0x00000392 _0803BB2C: mov r3, r8 ldr r4, [r3] ldr r1, _0803BB50 @ =0x00000452 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0x1e bls _0803BB58 ldr r2, _0803BB54 @ =0x000003E2 adds r1, r4, r2 movs r2, #0 movs r0, #0x15 strh r0, [r1] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r4, r3 strh r2, [r0] bl _0803C476 .align 2, 0 _0803BB50: .4byte 0x00000452 _0803BB54: .4byte 0x000003E2 _0803BB58: ldr r0, _0803BB7C @ =0x086AF140 ldr r1, _0803BB80 @ =0x000003E2 adds r3, r4, r1 movs r2, #0 ldrsh r1, [r3, r2] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r0, #0xf9 lsls r0, r0, #2 adds r2, r4, r0 ldrh r5, [r2] ldrh r0, [r1] cmp r0, r5 bls _0803BB84 adds r0, r5, #1 strh r0, [r2] b _0803BC50 .align 2, 0 _0803BB7C: .4byte 0x086AF140 _0803BB80: .4byte 0x000003E2 _0803BB84: movs r6, #0 movs r5, #0 strh r5, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bne _0803BC50 ldr r2, _0803BBF4 @ =0x000003E1 adds r1, r4, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb bgt _0803BC00 strh r5, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] mov r2, r8 ldr r1, [r2] ldr r3, _0803BBF4 @ =0x000003E1 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _0803BC50 ldr r4, _0803BBF8 @ =0x000003DD adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _0803BC50 movs r3, #0 ldr r5, _0803BBFC @ =0x0000048C movs r4, #9 _0803BBD2: ldr r0, [r2] lsls r1, r3, #0x10 asrs r1, r1, #0x10 adds r0, r0, r5 adds r3, r0, r1 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #8 bgt _0803BBE6 strb r4, [r3] _0803BBE6: adds r0, r1, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0803BBD2 b _0803BC50 .align 2, 0 _0803BBF4: .4byte 0x000003E1 _0803BBF8: .4byte 0x000003DD _0803BBFC: .4byte 0x0000048C _0803BC00: ldr r1, _0803BC20 @ =0x000003DD adds r0, r4, r1 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #4 bne _0803BC24 movs r0, #0x24 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r4, r3 strb r1, [r0] mov r4, r8 ldr r0, [r4] b _0803BC4C .align 2, 0 _0803BC20: .4byte 0x000003DD _0803BC24: cmp r1, #3 bne _0803BC3A movs r0, #0x4c strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r4, r3 strb r1, [r0] mov r4, r8 ldr r0, [r4] b _0803BC4C _0803BC3A: movs r0, #0x3a strh r0, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #5 strb r0, [r1] mov r1, r8 ldr r0, [r1] _0803BC4C: adds r0, r0, r2 strb r6, [r0] _0803BC50: ldr r0, _0803BC6C @ =0x020314E0 ldr r0, [r0] ldr r2, _0803BC70 @ =0x000003E2 adds r1, r0, r2 movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x15 beq _0803BC64 bl _0803C476 _0803BC64: movs r0, #0 bl _0803C474 .align 2, 0 _0803BC6C: .4byte 0x020314E0 _0803BC70: .4byte 0x000003E2 _0803BC74: ldr r1, _0803BCA0 @ =0x086AF140 mov r4, r8 ldr r2, [r4] ldr r0, _0803BCA4 @ =0x000003E2 adds r3, r2, r0 movs r4, #0 ldrsh r0, [r3, r4] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _0803BCA8 adds r0, r1, #1 strh r0, [r2] bl _0803C476 .align 2, 0 _0803BCA0: .4byte 0x086AF140 _0803BCA4: .4byte 0x000003E2 _0803BCA8: movs r0, #0 strh r0, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x5d beq _0803BCC2 cmp r0, #0x60 beq _0803BCC2 cmp r0, #0x63 bne _0803BD1E _0803BCC2: mov r2, r8 ldr r1, [r2] ldr r3, _0803BCF4 @ =0x000003E2 adds r2, r1, r3 movs r0, #0 strh r0, [r2] movs r4, #0xf7 lsls r4, r4, #2 adds r1, r1, r4 movs r0, #2 strb r0, [r1] mov r0, r8 ldr r2, [r0] ldr r1, _0803BCF8 @ =0x0000047C adds r0, r2, r1 ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0803BCFC subs r3, #5 adds r1, r2, r3 movs r0, #4 b _0803BD02 .align 2, 0 _0803BCF4: .4byte 0x000003E2 _0803BCF8: .4byte 0x0000047C _0803BCFC: ldr r3, _0803BDF8 @ =0x000003DD adds r1, r2, r3 movs r0, #5 _0803BD02: strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r1, _0803BDFC @ =0x000003E1 adds r0, r0, r1 movs r1, #8 strb r1, [r0] mov r2, r8 ldr r1, [r2] ldr r3, _0803BE00 @ =0x0000047C adds r1, r1, r3 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803BD1E: ldr r5, _0803BE04 @ =0x020314E0 ldr r0, [r5] ldr r4, _0803BE08 @ =0x000003E2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x5a beq _0803BD30 b _0803C476 _0803BD30: ldr r0, _0803BE0C @ =0x02032F20 ldr r1, _0803BE10 @ =0x086A24F0 bl MPlayStart ldr r0, [r5] ldr r2, _0803BE14 @ =0x0000047E adds r0, r0, r2 movs r1, #8 strb r1, [r0] ldr r4, [r5] ldr r3, _0803BE18 @ =0x00000482 adds r1, r4, r3 movs r0, #0 mov sb, r0 movs r0, #0x23 strh r0, [r1] ldr r1, _0803BE1C @ =0x0200B0C0 mov sl, r1 ldr r1, _0803BE20 @ =0x000012C8 add r1, sl movs r0, #1 strh r0, [r1] adds r2, #0xa mov r8, r2 adds r2, r4, r2 movs r0, #0x96 lsls r0, r0, #3 strh r0, [r2] adds r3, #8 adds r1, r4, r3 adds r0, #0x28 strh r0, [r1] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _0803BE24 @ =0x0000132C adds r4, r4, r2 ldr r2, [r4] movs r3, #0x10 ldrsh r1, [r2, r3] subs r6, r0, r1 movs r1, #0x7c movs r4, #0x12 ldrsh r0, [r2, r4] subs r7, r1, r0 rsbs r0, r6, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r7, #0x10 asrs r1, r1, #0x10 bl ArcTan2 ldr r1, [r5] ldr r6, _0803BE28 @ =0x00000484 adds r2, r1, r6 strh r0, [r2] movs r0, #0xe2 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _0803BDE0 bl sub_C00 ldr r4, [r5] mov r2, sl ldr r1, [r2, #0x4c] muls r0, r1, r0 movs r1, #0x64 bl __umodsi3 adds r1, r0, #0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #0xc movs r1, #0x64 bl __udivsi3 movs r3, #0x98 lsls r3, r3, #8 adds r0, r0, r3 adds r4, r4, r6 strh r0, [r4] _0803BDE0: ldr r1, [r5] adds r3, r1, r6 ldrh r2, [r3] ldr r0, _0803BE2C @ =0x00003FFF cmp r2, r0 bhi _0803BE34 movs r0, #0xe8 lsls r0, r0, #8 strh r0, [r3] ldr r4, _0803BE30 @ =0x0000047D adds r1, r1, r4 b _0803BEB6 .align 2, 0 _0803BDF8: .4byte 0x000003DD _0803BDFC: .4byte 0x000003E1 _0803BE00: .4byte 0x0000047C _0803BE04: .4byte 0x020314E0 _0803BE08: .4byte 0x000003E2 _0803BE0C: .4byte 0x02032F20 _0803BE10: .4byte 0x086A24F0 _0803BE14: .4byte 0x0000047E _0803BE18: .4byte 0x00000482 _0803BE1C: .4byte 0x0200B0C0 _0803BE20: .4byte 0x000012C8 _0803BE24: .4byte 0x0000132C _0803BE28: .4byte 0x00000484 _0803BE2C: .4byte 0x00003FFF _0803BE30: .4byte 0x0000047D _0803BE34: ldr r0, _0803BE50 @ =0x000097FF cmp r2, r0 bhi _0803BE5C adds r0, #1 strh r0, [r3] ldr r2, _0803BE54 @ =0x0000047D adds r0, r1, r2 movs r3, #1 strb r3, [r0] ldr r0, [r5] add r0, r8 ldr r1, _0803BE58 @ =0x00000424 b _0803BEC0 .align 2, 0 _0803BE50: .4byte 0x000097FF _0803BE54: .4byte 0x0000047D _0803BE58: .4byte 0x00000424 _0803BE5C: ldr r0, _0803BE74 @ =0x0000AFFF cmp r2, r0 bhi _0803BE80 ldr r4, _0803BE78 @ =0x0000047D adds r0, r1, r4 movs r1, #1 strb r1, [r0] ldr r0, [r5] add r0, r8 ldr r1, _0803BE7C @ =0x00000424 b _0803BEC0 .align 2, 0 _0803BE74: .4byte 0x0000AFFF _0803BE78: .4byte 0x0000047D _0803BE7C: .4byte 0x00000424 _0803BE80: ldr r0, _0803BE90 @ =0x0000CFFF cmp r2, r0 bhi _0803BE98 ldr r2, _0803BE94 @ =0x0000047D adds r0, r1, r2 mov r3, sb strb r3, [r0] b _0803BEC2 .align 2, 0 _0803BE90: .4byte 0x0000CFFF _0803BE94: .4byte 0x0000047D _0803BE98: ldr r0, _0803BEA4 @ =0x0000E7FF cmp r2, r0 bhi _0803BEAC ldr r4, _0803BEA8 @ =0x0000047D adds r1, r1, r4 b _0803BEB6 .align 2, 0 _0803BEA4: .4byte 0x0000E7FF _0803BEA8: .4byte 0x0000047D _0803BEAC: movs r0, #0xe8 lsls r0, r0, #8 strh r0, [r3] ldr r0, _0803BEE8 @ =0x0000047D adds r1, r1, r0 _0803BEB6: movs r0, #2 strb r0, [r1] ldr r0, [r5] add r0, r8 ldr r1, _0803BEEC @ =0x0000053C _0803BEC0: strh r1, [r0] _0803BEC2: ldr r0, _0803BEF0 @ =0x020314E0 ldr r2, [r0] ldr r1, _0803BEF4 @ =0x000003E2 adds r3, r2, r1 ldr r4, _0803BEE8 @ =0x0000047D adds r0, r2, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 ldrh r1, [r3] adds r0, r0, r1 strh r0, [r3] movs r3, #0xe2 lsls r3, r3, #2 adds r2, r2, r3 movs r0, #0 ldrsb r0, [r2, r0] b _0803C476 .align 2, 0 _0803BEE8: .4byte 0x0000047D _0803BEEC: .4byte 0x0000053C _0803BEF0: .4byte 0x020314E0 _0803BEF4: .4byte 0x000003E2 _0803BEF8: ldr r0, _0803BF48 @ =0x086AF140 mov r4, r8 ldr r5, [r4] ldr r1, _0803BF4C @ =0x000003E2 adds r4, r5, r1 movs r2, #0 ldrsh r1, [r4, r2] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r3, #0xf9 lsls r3, r3, #2 adds r2, r5, r3 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803BF1C b _0803C28E _0803BF1C: movs r3, #0 strh r3, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x38 bne _0803BF76 ldr r0, _0803BF50 @ =0x000003E1 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0803BF54 movs r0, #0x36 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803BF76 .align 2, 0 _0803BF48: .4byte 0x086AF140 _0803BF4C: .4byte 0x000003E2 _0803BF50: .4byte 0x000003E1 _0803BF54: strh r3, [r4] movs r2, #0xf7 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #2 strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803BFB0 @ =0x000003DD adds r0, r0, r4 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r1, _0803BFB4 @ =0x000003E1 adds r0, r0, r1 movs r1, #6 strb r1, [r0] _0803BF76: ldr r0, _0803BFB8 @ =0x020314E0 ldr r2, [r0] ldr r3, _0803BFBC @ =0x000003E2 adds r0, r2, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x32 beq _0803BF88 b _0803C476 _0803BF88: movs r1, #0xf9 lsls r1, r1, #2 adds r0, r2, r1 ldrh r3, [r0] cmp r3, #0 beq _0803BF96 b _0803C476 _0803BF96: ldr r0, _0803BFC0 @ =0x0200B0C0 ldr r4, _0803BFC4 @ =0x00001888 adds r0, r0, r4 movs r1, #1 strh r1, [r0] ldr r1, _0803BFC8 @ =0x00000456 adds r0, r2, r1 strh r3, [r0] ldr r0, _0803BFCC @ =0x02032F20 ldr r1, _0803BFD0 @ =0x086A2548 bl MPlayStart b _0803C476 .align 2, 0 _0803BFB0: .4byte 0x000003DD _0803BFB4: .4byte 0x000003E1 _0803BFB8: .4byte 0x020314E0 _0803BFBC: .4byte 0x000003E2 _0803BFC0: .4byte 0x0200B0C0 _0803BFC4: .4byte 0x00001888 _0803BFC8: .4byte 0x00000456 _0803BFCC: .4byte 0x02032F20 _0803BFD0: .4byte 0x086A2548 _0803BFD4: ldr r1, _0803BFFC @ =0x086AF140 ldr r5, _0803C000 @ =0x020314E0 ldr r4, [r5] ldr r6, _0803C004 @ =0x000003E2 adds r2, r4, r6 movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r7, #0xf9 lsls r7, r7, #2 adds r1, r4, r7 ldrh r3, [r1] ldrh r0, [r0] cmp r0, r3 bls _0803C008 adds r0, r3, #1 b _0803C474 .align 2, 0 _0803BFFC: .4byte 0x086AF140 _0803C000: .4byte 0x020314E0 _0803C004: .4byte 0x000003E2 _0803C008: movs r3, #0 strh r3, [r1] ldrh r0, [r2] adds r0, #1 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x4a bne _0803C03A strh r3, [r2] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #2 strb r0, [r1] ldr r0, [r5] ldr r1, _0803C084 @ =0x000003DD adds r0, r0, r1 movs r1, #3 strb r1, [r0] ldr r0, [r5] ldr r2, _0803C088 @ =0x000003E1 adds r0, r0, r2 movs r1, #8 strb r1, [r0] _0803C03A: ldr r1, [r5] adds r0, r1, r6 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x47 beq _0803C048 b _0803C476 _0803C048: adds r0, r1, r7 ldrh r0, [r0] cmp r0, #0 beq _0803C052 b _0803C476 _0803C052: ldr r4, _0803C08C @ =0x00000129 adds r1, r1, r4 movs r0, #0 strb r0, [r1] ldr r0, [r5] movs r1, #0x94 lsls r1, r1, #1 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r5] movs r2, #0x99 lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0x3c strb r1, [r0] movs r0, #0xd bl sub_11B0 ldr r0, _0803C090 @ =0x02032F20 ldr r1, _0803C094 @ =0x086A2454 bl MPlayStart b _0803C476 .align 2, 0 _0803C084: .4byte 0x000003DD _0803C088: .4byte 0x000003E1 _0803C08C: .4byte 0x00000129 _0803C090: .4byte 0x02032F20 _0803C094: .4byte 0x086A2454 _0803C098: mov r3, r8 ldr r0, [r3] movs r4, #0xa5 lsls r4, r4, #2 adds r0, r0, r4 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, [r3] ldr r1, _0803C118 @ =0x00000283 adds r0, r4, r1 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bne _0803C134 movs r2, #0xf7 lsls r2, r2, #2 adds r1, r4, r2 movs r0, #9 strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803C11C @ =0x000003E2 adds r0, r0, r4 movs r4, #0 strh r5, [r0] ldr r3, _0803C120 @ =0x0200B0C0 ldr r1, _0803C124 @ =0x00000A28 adds r0, r3, r1 movs r1, #1 strh r1, [r0] movs r2, #0x97 lsls r2, r2, #4 adds r0, r3, r2 strh r1, [r0] mov r0, r8 ldr r1, [r0] movs r0, #0xb3 lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0xc6 strh r0, [r2] ldr r2, _0803C128 @ =0x0000038E adds r0, r1, r2 strh r5, [r0] movs r0, #0xb5 lsls r0, r0, #3 adds r1, r1, r0 strb r4, [r1] mov r1, r8 ldr r0, [r1] ldr r2, _0803C12C @ =0x000005A6 adds r1, r0, r2 strh r5, [r1] ldr r4, _0803C130 @ =0x000005A4 adds r0, r0, r4 movs r1, #2 strb r1, [r0] b _0803C172 .align 2, 0 _0803C118: .4byte 0x00000283 _0803C11C: .4byte 0x000003E2 _0803C120: .4byte 0x0200B0C0 _0803C124: .4byte 0x00000A28 _0803C128: .4byte 0x0000038E _0803C12C: .4byte 0x000005A6 _0803C130: .4byte 0x000005A4 _0803C134: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r4, r0 movs r0, #7 strb r0, [r1] mov r2, r8 ldr r1, [r2] ldr r3, _0803C19C @ =0x000003E2 adds r2, r1, r3 movs r3, #0 movs r0, #0x20 strh r0, [r2] ldr r4, _0803C1A0 @ =0x00000387 adds r1, r1, r4 strb r3, [r1] ldr r2, _0803C1A4 @ =0x0200B0C0 movs r0, #0x80 strb r0, [r2, #0xf] mov r1, r8 ldr r0, [r1] movs r3, #0xe2 lsls r3, r3, #2 adds r0, r0, r3 movs r1, #2 strb r1, [r0] mov r4, r8 ldr r0, [r4] ldr r1, _0803C1A8 @ =0x00000392 adds r0, r0, r1 strh r5, [r0] adds r3, r2, #0 _0803C172: ldr r2, _0803C1AC @ =0x020314E0 ldr r0, [r2] ldr r4, _0803C1B0 @ =0x000003E1 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r2, [r2] adds r4, #3 adds r0, r2, r4 strh r1, [r0] ldr r1, _0803C1B4 @ =0x00001438 adds r0, r3, r1 ldrh r0, [r0] cmp r0, #0 bne _0803C192 b _0803C476 _0803C192: ldr r3, _0803C1B8 @ =0x00000486 adds r1, r2, r3 movs r0, #1 b _0803C474 .align 2, 0 _0803C19C: .4byte 0x000003E2 _0803C1A0: .4byte 0x00000387 _0803C1A4: .4byte 0x0200B0C0 _0803C1A8: .4byte 0x00000392 _0803C1AC: .4byte 0x020314E0 _0803C1B0: .4byte 0x000003E1 _0803C1B4: .4byte 0x00001438 _0803C1B8: .4byte 0x00000486 _0803C1BC: ldr r0, _0803C1E4 @ =0x086AF140 mov r4, r8 ldr r5, [r4] ldr r1, _0803C1E8 @ =0x000003E2 adds r4, r5, r1 movs r2, #0 ldrsh r1, [r4, r2] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r3, #0xf9 lsls r3, r3, #2 adds r2, r5, r3 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803C1EC adds r0, r3, #1 strh r0, [r2] b _0803C236 .align 2, 0 _0803C1E4: .4byte 0x086AF140 _0803C1E8: .4byte 0x000003E2 _0803C1EC: movs r0, #0 strh r0, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x24 bne _0803C236 ldr r0, _0803C218 @ =0x000003E1 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x11 bgt _0803C21C movs r0, #0x22 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803C236 .align 2, 0 _0803C218: .4byte 0x000003E1 _0803C21C: movs r0, #2 strh r0, [r4] movs r2, #0xf7 lsls r2, r2, #2 adds r1, r5, r2 movs r0, #8 strb r0, [r1] mov r3, r8 ldr r0, [r3] ldr r4, _0803C260 @ =0x000003E1 adds r0, r0, r4 movs r1, #0 strb r1, [r0] _0803C236: ldr r0, _0803C264 @ =0x020314E0 ldr r1, [r0] ldr r2, _0803C268 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 beq _0803C248 b _0803C476 _0803C248: movs r4, #0xf9 lsls r4, r4, #2 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #0 beq _0803C256 b _0803C476 _0803C256: movs r0, #0xe4 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #0x29 b _0803C474 .align 2, 0 _0803C260: .4byte 0x000003E1 _0803C264: .4byte 0x020314E0 _0803C268: .4byte 0x000003E2 _0803C26C: ldr r0, _0803C294 @ =0x086AF140 mov r1, r8 ldr r5, [r1] ldr r2, _0803C298 @ =0x000003E2 adds r4, r5, r2 movs r3, #0 ldrsh r1, [r4, r3] lsls r1, r1, #2 adds r0, #2 adds r1, r1, r0 movs r0, #0xf9 lsls r0, r0, #2 adds r2, r5, r0 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _0803C29C _0803C28E: adds r0, r3, #1 strh r0, [r2] b _0803C476 .align 2, 0 _0803C294: .4byte 0x086AF140 _0803C298: .4byte 0x000003E2 _0803C29C: movs r3, #0 strh r3, [r2] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x14 bne _0803C2E8 ldr r2, _0803C2C8 @ =0x000003E1 adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bgt _0803C2CC movs r0, #3 strh r0, [r4] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803C2E8 .align 2, 0 _0803C2C8: .4byte 0x000003E1 _0803C2CC: movs r0, #3 strh r0, [r4] movs r4, #0xf7 lsls r4, r4, #2 adds r1, r5, r4 movs r0, #0xa strb r0, [r1] mov r0, r8 ldr r1, [r0] movs r0, #2 strb r0, [r1, #0x13] mov r1, r8 ldr r0, [r1] strh r3, [r0, #0x18] _0803C2E8: mov r2, r8 ldr r1, [r2] ldr r3, _0803C3A8 @ =0x000003E2 adds r0, r1, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #3 beq _0803C2FC cmp r0, #0xc bne _0803C306 _0803C2FC: ldr r0, _0803C3AC @ =0x000003EA adds r1, r1, r0 ldrh r0, [r1] subs r0, #0xa strh r0, [r1] _0803C306: mov r1, r8 ldr r0, [r1] ldr r2, _0803C3A8 @ =0x000003E2 adds r0, r0, r2 ldrh r1, [r0] subs r0, r1, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bls _0803C326 lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xd beq _0803C326 cmp r0, #0xe bne _0803C334 _0803C326: mov r3, r8 ldr r1, [r3] ldr r4, _0803C3AC @ =0x000003EA adds r1, r1, r4 ldrh r0, [r1] subs r0, #0x14 strh r0, [r1] _0803C334: ldr r0, _0803C3B0 @ =0x020314E0 ldr r2, [r0] ldr r1, _0803C3A8 @ =0x000003E2 adds r0, r2, r1 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #5 bne _0803C36C movs r4, #0xf9 lsls r4, r4, #2 adds r0, r2, r4 ldrh r0, [r0] cmp r0, #0 bne _0803C36C ldr r0, _0803C3B4 @ =0x000004CA adds r1, r2, r0 movs r0, #0x1f strh r0, [r1] ldr r3, _0803C3B8 @ =0x000004C9 adds r1, r2, r3 movs r0, #6 strb r0, [r1] ldr r0, _0803C3BC @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0803C36C: ldr r0, _0803C3B0 @ =0x020314E0 ldr r2, [r0] ldr r4, _0803C3A8 @ =0x000003E2 adds r0, r2, r4 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xe beq _0803C37E b _0803C476 _0803C37E: movs r3, #0xf9 lsls r3, r3, #2 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0 bne _0803C476 adds r4, #0xe8 adds r1, r2, r4 movs r0, #0x1f strh r0, [r1] ldr r0, _0803C3B8 @ =0x000004C9 adds r1, r2, r0 movs r0, #5 strb r0, [r1] ldr r0, _0803C3BC @ =0x00000119 bl m4aSongNumStart movs r0, #8 bl sub_11B0 b _0803C476 .align 2, 0 _0803C3A8: .4byte 0x000003E2 _0803C3AC: .4byte 0x000003EA _0803C3B0: .4byte 0x020314E0 _0803C3B4: .4byte 0x000004CA _0803C3B8: .4byte 0x000004C9 _0803C3BC: .4byte 0x00000119 _0803C3C0: ldr r1, _0803C3E8 @ =0x086AF140 mov r3, r8 ldr r2, [r3] ldr r4, _0803C3EC @ =0x000003E2 adds r3, r2, r4 movs r4, #0 ldrsh r0, [r3, r4] lsls r0, r0, #2 adds r1, #2 adds r0, r0, r1 movs r1, #0xf9 lsls r1, r1, #2 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _0803C3F0 adds r0, r1, #1 strh r0, [r2] b _0803C404 .align 2, 0 _0803C3E8: .4byte 0x086AF140 _0803C3EC: .4byte 0x000003E2 _0803C3F0: movs r1, #0 strh r1, [r2] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bne _0803C404 strh r1, [r3] _0803C404: mov r2, r8 ldr r6, [r2] ldr r3, _0803C4BC @ =0x0000038E adds r4, r6, r3 ldrh r5, [r4] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _0803C4C0 @ =0xFFFFFE0C cmp r0, r1 ble _0803C444 subs r0, r1, r0 movs r1, #0x1e bl __divsi3 adds r0, r5, r0 strh r0, [r4] movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 adds r2, r6, #0 adds r2, #0xe6 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x26 rsbs r1, r1, #0 cmp r0, r1 bge _0803C444 ldr r0, _0803C4C4 @ =0x0000FFDA strh r0, [r2] _0803C444: ldr r3, _0803C4C8 @ =0x020314E0 ldr r1, [r3] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0803C460 ldr r4, _0803C4CC @ =0x000003E2 adds r1, r1, r4 movs r0, #0x4a strh r0, [r1] _0803C460: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x16 bne _0803C476 ldr r0, _0803C4CC @ =0x000003E2 adds r1, r1, r0 movs r0, #0x4b _0803C474: strh r0, [r1] _0803C476: ldr r0, _0803C4C8 @ =0x020314E0 ldr r1, [r0] movs r2, #0x99 lsls r2, r2, #3 adds r3, r1, r2 ldrb r4, [r3] movs r1, #0 ldrsb r1, [r3, r1] mov r8, r0 cmp r1, #0 bgt _0803C48E b _0803C5BC _0803C48E: subs r0, r4, #1 strb r0, [r3] mov r3, r8 ldr r5, [r3] adds r1, r5, r2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x13 bgt _0803C4D4 ldr r4, _0803C4D0 @ =0x086AEF28 movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r4, #0 ldrsh r0, [r0, r4] lsls r0, r0, #1 movs r2, #0xab lsls r2, r2, #2 adds r1, r5, r2 b _0803C4F2 .align 2, 0 _0803C4BC: .4byte 0x0000038E _0803C4C0: .4byte 0xFFFFFE0C _0803C4C4: .4byte 0x0000FFDA _0803C4C8: .4byte 0x020314E0 _0803C4CC: .4byte 0x000003E2 _0803C4D0: .4byte 0x086AEF28 _0803C4D4: ldr r4, _0803C600 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #2 movs r4, #0xab lsls r4, r4, #2 adds r1, r5, r4 _0803C4F2: strh r0, [r1] mov r0, r8 ldr r2, [r0] movs r5, #0x99 lsls r5, r5, #3 adds r0, r2, r5 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0803C50E movs r3, #0xab lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] _0803C50E: mov r0, r8 ldr r4, [r0] adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _0803C548 movs r3, #0 ldr r0, _0803C604 @ =0x0200B0C0 movs r2, #0 movs r1, #0xdc lsls r1, r1, #4 adds r0, r0, r1 movs r1, #1 strh r1, [r0] ldr r1, _0803C608 @ =0x000004CF adds r0, r4, r1 strb r2, [r0] mov r4, r8 ldr r0, [r4] adds r1, #3 adds r0, r0, r1 strb r2, [r0] ldr r0, [r4] movs r2, #0x9b lsls r2, r2, #3 adds r0, r0, r2 strh r3, [r0] _0803C548: mov r3, r8 ldr r4, [r3] adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 bne _0803C582 movs r3, #1 ldr r0, _0803C604 @ =0x0200B0C0 ldr r1, _0803C60C @ =0x00000E78 adds r0, r0, r1 movs r1, #0 movs r2, #0 strh r3, [r0] movs r3, #0x9a lsls r3, r3, #3 adds r0, r4, r3 strb r1, [r0] mov r4, r8 ldr r0, [r4] ldr r1, _0803C610 @ =0x000004D3 adds r0, r0, r1 movs r1, #0xd strb r1, [r0] ldr r0, [r4] adds r3, #0xa adds r0, r0, r3 strh r2, [r0] _0803C582: mov r0, r8 ldr r4, [r0] adds r0, r4, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x35 bne _0803C5BC ldr r1, _0803C604 @ =0x0200B0C0 movs r2, #0xf3 lsls r2, r2, #4 adds r1, r1, r2 movs r2, #0 movs r3, #0 movs r0, #1 strh r0, [r1] ldr r1, _0803C614 @ =0x000004D1 adds r0, r4, r1 strb r2, [r0] mov r2, r8 ldr r0, [r2] ldr r4, _0803C618 @ =0x000004D4 adds r0, r0, r4 movs r1, #0x16 strb r1, [r0] ldr r0, [r2] ldr r1, _0803C61C @ =0x000004DC adds r0, r0, r1 strh r3, [r0] _0803C5BC: mov r2, r8 ldr r5, [r2] ldr r3, _0803C620 @ =0x000004CA adds r1, r5, r3 ldrh r0, [r1] cmp r0, #0 beq _0803C662 subs r0, #1 strh r0, [r1] ldr r4, _0803C624 @ =0x000004C9 adds r6, r5, r4 ldrb r0, [r6] cmp r0, #5 bhi _0803C62C ldr r4, _0803C628 @ =0x086AEF40 ldrh r0, [r1] movs r1, #0x1f bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x1e subs r1, r1, r0 ldrb r2, [r6] lsls r0, r2, #5 subs r0, r0, r2 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xab lsls r2, r2, #2 adds r0, r5, r2 b _0803C64A .align 2, 0 _0803C600: .4byte 0x086AEF28 _0803C604: .4byte 0x0200B0C0 _0803C608: .4byte 0x000004CF _0803C60C: .4byte 0x00000E78 _0803C610: .4byte 0x000004D3 _0803C614: .4byte 0x000004D1 _0803C618: .4byte 0x000004D4 _0803C61C: .4byte 0x000004DC _0803C620: .4byte 0x000004CA _0803C624: .4byte 0x000004C9 _0803C628: .4byte 0x086AEF40 _0803C62C: ldr r4, _0803C6C4 @ =0x086AF0B4 ldrh r0, [r1] movs r1, #0x46 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x45 subs r1, r1, r0 lsls r1, r1, #1 adds r1, r1, r4 ldrh r1, [r1] movs r3, #0xab lsls r3, r3, #2 adds r0, r5, r3 _0803C64A: strh r1, [r0] mov r4, r8 ldr r2, [r4] ldr r1, _0803C6C8 @ =0x000004CA adds r0, r2, r1 ldrh r1, [r0] cmp r1, #0 bne _0803C662 movs r3, #0xab lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] _0803C662: mov r4, r8 ldr r0, [r4] movs r5, #0xe4 lsls r5, r5, #2 adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0 beq _0803C6B6 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _0803C69E ldr r0, _0803C6CC @ =0x086A3700 ldr r1, _0803C6D0 @ =0x00001290 adds r0, r0, r1 ldrh r0, [r0] movs r1, #0 bl sub_528DC ldr r1, [r4] ldr r3, _0803C6C8 @ =0x000004CA adds r2, r1, r3 movs r0, #0x46 strh r0, [r2] ldr r4, _0803C6D4 @ =0x000004C9 adds r1, r1, r4 movs r0, #6 strb r0, [r1] _0803C69E: mov r1, r8 ldr r0, [r1] adds r0, r0, r5 ldrh r0, [r0] cmp r0, #0 bne _0803C6B6 ldr r0, _0803C6D8 @ =0x02032EE0 ldr r1, _0803C6DC @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _0803C6B6: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803C6C4: .4byte 0x086AF0B4 _0803C6C8: .4byte 0x000004CA _0803C6CC: .4byte 0x086A3700 _0803C6D0: .4byte 0x00001290 _0803C6D4: .4byte 0x000004C9 _0803C6D8: .4byte 0x02032EE0 _0803C6DC: .4byte 0x0000FFFF thumb_func_start sub_3C6E0 sub_3C6E0: @ 0x0803C6E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r7, _0803C820 @ =0x0200C890 ldrh r0, [r7] ldr r1, _0803C824 @ =0x020314E0 mov sl, r1 cmp r0, #0 bne _0803C6FA b _0803CA2E _0803C6FA: ldr r1, _0803C828 @ =0x086AF140 mov r2, sl ldr r4, [r2] ldr r3, _0803C82C @ =0x000003E2 adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] mov r8, r0 movs r6, #0xfa lsls r6, r6, #2 adds r0, r4, r6 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r0, #0x64 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 strh r0, [r7, #2] mov r2, sl ldr r4, [r2] ldr r5, _0803C830 @ =0x000003EA adds r0, r4, r5 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r0, #0x54 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 strh r0, [r7, #4] mov r0, sl ldr r4, [r0] adds r6, r4, r6 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 adds r0, #0x76 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] adds r5, r4, r5 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __divsi3 adds r0, #0x3c ldr r2, _0803C834 @ =0x0000028A adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xb8 movs r6, #0xfc lsls r6, r6, #2 adds r1, r4, r6 strh r0, [r1] movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0x9c ldr r2, _0803C838 @ =0x000003F2 adds r4, r4, r2 strh r0, [r4] movs r3, #4 ldrsh r1, [r7, r3] movs r0, #0x3c rsbs r0, r0, #0 cmp r1, r0 bge _0803C7B2 ldr r0, _0803C83C @ =0x0000FFC4 strh r0, [r7, #4] _0803C7B2: movs r4, #4 ldrsh r0, [r7, r4] cmp r0, #0xb4 ble _0803C7BE movs r0, #0xb4 strh r0, [r7, #4] _0803C7BE: mov r6, sl ldr r0, [r6] ldr r1, _0803C840 @ =0x00000389 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 ble _0803C84C movs r2, #0 ldr r4, _0803C844 @ =0x03005000 ldr r3, _0803C848 @ =0xFFFFFE00 mov r8, r3 movs r6, #0xb0 _0803C7DA: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 orrs r0, r6 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C7DA b _0803CA2E .align 2, 0 _0803C820: .4byte 0x0200C890 _0803C824: .4byte 0x020314E0 _0803C828: .4byte 0x086AF140 _0803C82C: .4byte 0x000003E2 _0803C830: .4byte 0x000003EA _0803C834: .4byte 0x0000028A _0803C838: .4byte 0x000003F2 _0803C83C: .4byte 0x0000FFC4 _0803C840: .4byte 0x00000389 _0803C844: .4byte 0x03005000 _0803C848: .4byte 0xFFFFFE00 _0803C84C: cmp r0, #1 bne _0803C8FC movs r2, #0 mov r4, r8 lsls r0, r4, #0x10 ldr r6, _0803C8EC @ =0x03005000 asrs r1, r0, #0x10 movs r0, #0x72 adds r3, r1, #0 muls r3, r0, r3 mov r8, r3 ldr r4, _0803C8F0 @ =0xFFFFFE00 mov ip, r4 movs r0, #0xe0 mov sb, r0 _0803C86A: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0803C8F4 @ =0x086B65EA adds r0, r0, r1 mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r4, #2 ldrsh r1, [r7, r4] ldr r0, [sp] adds r1, r0, r1 ldr r4, _0803C8F8 @ =0x000001FF ands r1, r4 mov r0, ip ldrh r4, [r2, #2] ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r4, sb orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C86A b _0803CA2E .align 2, 0 _0803C8EC: .4byte 0x03005000 _0803C8F0: .4byte 0xFFFFFE00 _0803C8F4: .4byte 0x086B65EA _0803C8F8: .4byte 0x000001FF _0803C8FC: cmp r0, #3 bne _0803C9AC movs r2, #0 mov r6, r8 lsls r0, r6, #0x10 ldr r6, _0803C99C @ =0x03005000 asrs r1, r0, #0x10 movs r0, #0x72 adds r3, r1, #0 muls r3, r0, r3 mov r8, r3 ldr r4, _0803C9A0 @ =0xFFFFFE00 mov ip, r4 movs r0, #0xb0 mov sb, r0 _0803C91A: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 adds r2, r0, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0803C9A4 @ =0x086B65EA adds r0, r0, r1 mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 str r1, [sp] movs r4, #2 ldrsh r1, [r7, r4] ldr r0, [sp] adds r1, r0, r1 ldr r4, _0803C9A8 @ =0x000001FF ands r1, r4 mov r0, ip ldrh r4, [r2, #2] ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r4, sb orrs r0, r4 strb r0, [r1, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C91A b _0803CA2E .align 2, 0 _0803C99C: .4byte 0x03005000 _0803C9A0: .4byte 0xFFFFFE00 _0803C9A4: .4byte 0x086B65EA _0803C9A8: .4byte 0x000001FF _0803C9AC: movs r2, #0 mov r6, r8 lsls r0, r6, #0x10 ldr r1, _0803CB6C @ =0x03005000 mov sb, r1 asrs r1, r0, #0x10 movs r0, #0x72 adds r3, r1, #0 muls r3, r0, r3 mov r8, r3 ldr r4, _0803CB70 @ =0xFFFFFE00 mov ip, r4 _0803C9C4: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 mov r6, sb adds r2, r0, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r1, _0803CB74 @ =0x086B65EA adds r0, r0, r1 mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 add r2, sb ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _0803CB78 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 add r1, sb ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #0x12 ble _0803C9C4 _0803CA2E: ldr r7, _0803CB7C @ =0x0200C440 ldrh r0, [r7] cmp r0, #0 bne _0803CA38 b _0803CB98 _0803CA38: mov r3, sl ldr r0, [r3] ldr r4, _0803CB80 @ =0x0000047E adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0803CA5E subs r0, r2, #1 strb r0, [r1] ldr r0, [r3] adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803CA5E strh r0, [r7] _0803CA5E: mov r6, sl ldr r4, [r6] ldr r1, _0803CB84 @ =0x0000047D adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r1, r0, #1 ldr r2, _0803CB80 @ =0x0000047E adds r0, r4, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bge _0803CA80 adds r0, #3 _0803CA80: asrs r0, r0, #2 subs r0, r1, r0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r0, #0x64 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #2] ldr r1, _0803CB88 @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x54 adds r1, r4, #0 adds r1, #0x5a ldrh r1, [r1] subs r0, r0, r1 strh r0, [r7, #4] movs r2, #0 ldr r3, _0803CB8C @ =0x086B6512 mov sb, r3 mov r4, r8 lsls r1, r4, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 ldr r6, _0803CB70 @ =0xFFFFFE00 mov ip, r6 _0803CAD8: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 adds r5, r7, r0 ldrh r0, [r5] lsls r0, r0, #3 ldr r1, _0803CB6C @ =0x03005000 adds r2, r0, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r5] lsls r2, r2, #3 ldr r6, _0803CB6C @ =0x03005000 adds r2, r2, r6 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r6, #2 ldrsh r0, [r7, r6] adds r1, r1, r0 ldr r6, _0803CB78 @ =0x000001FF adds r0, r6, #0 ands r1, r0 mov r0, ip ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r0, _0803CB6C @ =0x03005000 adds r1, r1, r0 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _0803CAD8 mov r3, sl ldr r0, [r3] ldr r4, _0803CB90 @ =0x000005A4 adds r0, r0, r4 ldrb r0, [r0] cmp r0, #2 bne _0803CBAE ldr r0, _0803CB94 @ =0x0200B0C0 movs r6, #0x9c lsls r6, r6, #5 adds r0, r0, r6 movs r2, #0 movs r1, #0 strh r1, [r0] ldr r0, [r3] ldr r1, _0803CB80 @ =0x0000047E adds r0, r0, r1 strb r2, [r0] b _0803CBAE .align 2, 0 _0803CB6C: .4byte 0x03005000 _0803CB70: .4byte 0xFFFFFE00 _0803CB74: .4byte 0x086B65EA _0803CB78: .4byte 0x000001FF _0803CB7C: .4byte 0x0200C440 _0803CB80: .4byte 0x0000047E _0803CB84: .4byte 0x0000047D _0803CB88: .4byte 0x000003EA _0803CB8C: .4byte 0x086B6512 _0803CB90: .4byte 0x000005A4 _0803CB94: .4byte 0x0200B0C0 _0803CB98: mov r2, sl ldr r0, [r2] ldr r3, _0803CBC0 @ =0x0000047E adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _0803CBAE movs r0, #1 strh r0, [r7] _0803CBAE: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803CBC0: .4byte 0x0000047E thumb_func_start sub_3CBC4 sub_3CBC4: @ 0x0803CBC4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x1c movs r0, #0 mov sl, r0 ldr r1, _0803CBFC @ =0x0200BAE8 str r1, [sp, #4] ldrh r0, [r1] cmp r0, #0 bne _0803CBE0 b _0803CD68 _0803CBE0: ldr r2, _0803CC00 @ =0x020314E0 ldr r0, [r2] ldr r3, _0803CC04 @ =0x000006C4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 bne _0803CC08 movs r0, #0xf0 strh r0, [r1, #2] movs r0, #0xb4 strh r0, [r1, #4] b _0803CC12 .align 2, 0 _0803CBFC: .4byte 0x0200BAE8 _0803CC00: .4byte 0x020314E0 _0803CC04: .4byte 0x000006C4 _0803CC08: movs r0, #0x60 ldr r4, [sp, #4] strh r0, [r4, #2] movs r0, #0x37 strh r0, [r4, #4] _0803CC12: ldr r5, _0803CD94 @ =0x020314E0 ldr r1, [r5] ldr r6, [sp, #4] ldrh r2, [r6, #2] ldr r7, _0803CD98 @ =0x000006E4 adds r0, r1, r7 strh r2, [r0] ldrh r0, [r6, #4] ldr r2, _0803CD9C @ =0x000006E6 adds r1, r1, r2 strh r0, [r1] movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc7 ble _0803CC34 movs r0, #0xc8 strh r0, [r6, #4] _0803CC34: movs r2, #0 ldr r4, _0803CDA0 @ =0x0200BA30 mov ip, r4 ldr r5, _0803CDA4 @ =0x03005000 movs r6, #3 mov r8, r6 movs r7, #0xd rsbs r7, r7, #0 mov sb, r7 _0803CC46: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r1, [sp, #4] adds r6, r1, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xd0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r2, _0803CD94 @ =0x020314E0 ldr r0, [r2] ldr r7, _0803CDA8 @ =0x000006DB adds r0, r0, r7 ldrb r1, [r0] mov r0, r8 ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r6, r2] ldr r7, [sp, #4] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _0803CDAC @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _0803CDB0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0803CC46 mov r3, ip str r3, [sp, #4] ldr r4, _0803CD94 @ =0x020314E0 ldr r0, [r4] ldr r5, _0803CD98 @ =0x000006E4 adds r0, r0, r5 ldrh r0, [r0] subs r0, #8 strh r0, [r3, #2] ldr r0, [r4] ldr r6, _0803CD9C @ =0x000006E6 adds r0, r0, r6 ldrh r0, [r0] subs r0, #8 strh r0, [r3, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _0803CCEC movs r0, #0xc8 strh r0, [r3, #4] _0803CCEC: movs r2, #0 ldr r5, _0803CDA4 @ =0x03005000 movs r7, #3 mov r8, r7 movs r0, #0xd rsbs r0, r0, #0 mov sb, r0 ldr r1, _0803CDB0 @ =0xFFFFFE00 mov ip, r1 _0803CCFE: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r2, [sp, #4] adds r6, r2, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r7, _0803CD94 @ =0x020314E0 ldr r0, [r7] ldr r1, _0803CDA8 @ =0x000006DB adds r0, r0, r1 ldrb r1, [r0] mov r2, r8 ands r1, r2 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sb ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r7, #2 ldrsh r1, [r6, r7] ldr r2, [sp, #4] movs r7, #2 ldrsh r0, [r2, r7] adds r1, r1, r0 ldr r2, _0803CDAC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp, #4] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0803CCFE _0803CD68: ldr r4, _0803CDB4 @ =0x0200C4F8 str r4, [sp, #4] ldrh r0, [r4] cmp r0, #0 bne _0803CD74 b _0803CFD4 _0803CD74: ldr r5, _0803CD94 @ =0x020314E0 ldr r7, [r5] ldr r6, _0803CDB8 @ =0x00000486 adds r4, r7, r6 ldrh r5, [r4] subs r0, r5, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r1, r0, #0x10 ldr r0, _0803CDBC @ =0x00000257 cmp r1, r0 ble _0803CDC0 movs r7, #0 mov sl, r7 b _0803CEC2 .align 2, 0 _0803CD94: .4byte 0x020314E0 _0803CD98: .4byte 0x000006E4 _0803CD9C: .4byte 0x000006E6 _0803CDA0: .4byte 0x0200BA30 _0803CDA4: .4byte 0x03005000 _0803CDA8: .4byte 0x000006DB _0803CDAC: .4byte 0x000001FF _0803CDB0: .4byte 0xFFFFFE00 _0803CDB4: .4byte 0x0200C4F8 _0803CDB8: .4byte 0x00000486 _0803CDBC: .4byte 0x00000257 _0803CDC0: cmp r1, #5 bgt _0803CDC6 b _0803CEBE _0803CDC6: movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xf bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #5 bl __divsi3 adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 ldr r1, _0803CE04 @ =0x0000047F adds r0, r7, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803CE58 cmp r0, #7 bne _0803CE0C ldr r2, _0803CE08 @ =0x0000132C adds r0, r7, r2 ldr r1, [r0] ldr r0, [r1, #0x34] movs r3, #0x80 lsls r3, r3, #1 adds r0, r0, r3 b _0803CE3A .align 2, 0 _0803CE04: .4byte 0x0000047F _0803CE08: .4byte 0x0000132C _0803CE0C: cmp r0, #4 bne _0803CE28 ldr r4, _0803CE20 @ =0x0000132C adds r0, r7, r4 ldr r1, [r0] ldr r0, [r1, #0x34] ldr r5, _0803CE24 @ =0xFFFFFE00 adds r0, r0, r5 b _0803CE3A .align 2, 0 _0803CE20: .4byte 0x0000132C _0803CE24: .4byte 0xFFFFFE00 _0803CE28: cmp r0, #1 bne _0803CE3C ldr r6, _0803CE4C @ =0x0000132C adds r0, r7, r6 ldr r1, [r0] ldr r0, [r1, #0x34] movs r7, #0x80 lsls r7, r7, #1 adds r0, r0, r7 _0803CE3A: str r0, [r1, #0x34] _0803CE3C: ldr r0, _0803CE50 @ =0x020314E0 ldr r1, [r0] ldr r0, _0803CE54 @ =0x0000047F adds r1, r1, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0803CE82 .align 2, 0 _0803CE4C: .4byte 0x0000132C _0803CE50: .4byte 0x020314E0 _0803CE54: .4byte 0x0000047F _0803CE58: ldrh r0, [r7, #4] cmp r0, #0 beq _0803CE82 adds r0, r5, #0 subs r0, #0x1f strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _0803CE70 movs r0, #5 strh r0, [r4] _0803CE70: ldr r2, _0803CEA4 @ =0x020314E0 ldr r0, [r2] adds r0, r0, r1 movs r1, #7 strb r1, [r0] movs r0, #0x8f lsls r0, r0, #1 bl m4aSongNumStart _0803CE82: ldr r0, _0803CEA4 @ =0x020314E0 ldr r2, [r0] movs r3, #0x90 lsls r3, r3, #3 adds r1, r2, r3 ldrh r7, [r1] cmp r7, #0 beq _0803CEB2 subs r0, r7, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x32 bls _0803CEA8 movs r4, #4 mov sl, r4 b _0803CEC2 .align 2, 0 _0803CEA4: .4byte 0x020314E0 _0803CEA8: cmp r0, #0x28 bls _0803CEC2 movs r5, #5 mov sl, r5 b _0803CEC2 _0803CEB2: ldrh r0, [r2, #4] cmp r0, #0 beq _0803CEC2 movs r0, #0x3c strh r0, [r1] b _0803CEC2 _0803CEBE: movs r6, #4 mov sl, r6 _0803CEC2: ldr r7, _0803CEF0 @ =0x020314E0 ldr r1, [r7] ldr r2, _0803CEF4 @ =0x00000486 adds r0, r1, r2 movs r4, #0 ldrsh r3, [r0, r4] cmp r3, #0 bne _0803CF04 ldr r0, _0803CEF8 @ =0x0200B0C0 ldr r5, _0803CEFC @ =0x00001438 adds r0, r0, r5 movs r2, #0 strh r3, [r0] ldr r0, [r7] movs r6, #0x90 lsls r6, r6, #3 adds r1, r0, r6 strh r3, [r1] ldr r7, _0803CF00 @ =0x00000383 adds r0, r0, r7 strb r2, [r0] b _0803CF22 .align 2, 0 _0803CEF0: .4byte 0x020314E0 _0803CEF4: .4byte 0x00000486 _0803CEF8: .4byte 0x0200B0C0 _0803CEFC: .4byte 0x00001438 _0803CF00: .4byte 0x00000383 _0803CF04: ldr r0, _0803D10C @ =0x00000383 adds r1, r1, r0 movs r2, #0 movs r0, #1 strb r0, [r1] ldr r1, _0803D110 @ =0x020314E0 ldr r0, [r1] ldr r3, _0803D114 @ =0x0000132C adds r0, r0, r3 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] _0803CF22: ldr r4, _0803D110 @ =0x020314E0 ldr r2, [r4] ldr r5, _0803D114 @ =0x0000132C adds r3, r2, r5 ldr r0, [r3] adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0, #0x10] ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 ldr r6, [sp, #4] strh r0, [r6, #2] ldr r0, [r3] adds r2, #0x5a ldrh r0, [r0, #0x12] ldrh r1, [r2] subs r0, r0, r1 subs r0, #8 strh r0, [r6, #4] movs r2, #0 mov r7, sl lsls r1, r7, #0x10 ldr r0, _0803D118 @ =0x086B63AA mov sb, r0 ldr r5, _0803D11C @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r1, _0803D120 @ =0xFFFFFE00 mov r8, r1 _0803CF64: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r2, [sp, #4] adds r6, r2, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, ip adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 str r1, [sp, #0x18] ldr r7, [sp, #4] movs r1, #2 ldrsh r0, [r7, r1] ldr r7, [sp, #0x18] adds r1, r7, r0 ldr r7, _0803D124 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _0803CF64 _0803CFD4: ldr r5, _0803D128 @ =0x0200C388 str r5, [sp, #4] ldrh r0, [r5] cmp r0, #0 bne _0803CFE0 b _0803D2C6 _0803CFE0: ldr r6, _0803D110 @ =0x020314E0 ldr r5, [r6] movs r7, #0x91 lsls r7, r7, #3 adds r6, r5, r7 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, _0803D114 @ =0x0000132C adds r2, r2, r5 mov sb, r2 ldr r4, [r2] movs r3, #0x10 ldrsh r1, [r4, r3] subs r1, r0, r1 str r1, [sp, #8] ldr r0, _0803D12C @ =0x0000048A adds r7, r5, r0 movs r1, #0 ldrsh r0, [r7, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0x12 ldrsh r1, [r4, r2] subs r1, r0, r1 str r1, [sp, #0xc] ldr r3, [sp, #8] adds r1, r3, #0 muls r1, r3, r1 ldr r4, [sp, #0xc] adds r0, r4, #0 muls r0, r4, r0 adds r3, r1, r0 ldr r4, _0803D130 @ =0x00000482 adds r1, r5, r4 ldrh r0, [r1] cmp r0, #0 bne _0803D03C b _0803D1E2 _0803D03C: subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _0803D04A b _0803D150 _0803D04A: ldrh r1, [r1] movs r0, #7 ands r1, r0 lsrs r1, r1, #2 ldr r6, _0803D134 @ =0x0000047D adds r0, r5, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r1, r1, r0 lsls r1, r1, #0x10 lsrs r1, r1, #0x10 mov sl, r1 cmp r3, #0xf0 bgt _0803D0B6 movs r7, #0xe2 lsls r7, r7, #2 adds r0, r5, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D0B6 ldr r1, _0803D138 @ =0x00000486 adds r0, r5, r1 movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0803D13C @ =0x00000257 cmp r1, r0 bgt _0803D0B6 ldr r0, _0803D140 @ =0x02032F20 ldr r1, _0803D144 @ =0x086A26A0 bl MPlayStart ldr r3, _0803D110 @ =0x020314E0 ldr r1, [r3] adds r2, r1, r4 movs r0, #0xa strh r0, [r2] ldr r4, [sp, #4] movs r5, #0xb8 lsls r5, r5, #1 adds r2, r4, r5 movs r0, #1 strh r0, [r2] adds r6, #9 adds r1, r1, r6 movs r0, #0x99 lsls r0, r0, #2 strh r0, [r1] movs r0, #9 bl sub_11B0 _0803D0B6: ldr r5, _0803D110 @ =0x020314E0 ldr r0, [r5] ldr r7, _0803D148 @ =0x00000484 mov r8, r7 add r0, r8 ldrh r0, [r0] bl sub_C74 ldr r4, [r5] movs r1, #0x91 lsls r1, r1, #3 adds r6, r4, r1 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xfa lsls r1, r1, #1 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 strh r1, [r6] add r4, r8 ldrh r0, [r4] bl sub_C24 adds r1, r0, #0 ldr r4, [r5] ldr r2, _0803D12C @ =0x0000048A adds r4, r4, r2 lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 rsbs r0, r0, #0 ldr r1, _0803D14C @ =0x00004E20 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 strh r1, [r4] b _0803D1CC .align 2, 0 _0803D10C: .4byte 0x00000383 _0803D110: .4byte 0x020314E0 _0803D114: .4byte 0x0000132C _0803D118: .4byte 0x086B63AA _0803D11C: .4byte 0x03005000 _0803D120: .4byte 0xFFFFFE00 _0803D124: .4byte 0x000001FF _0803D128: .4byte 0x0200C388 _0803D12C: .4byte 0x0000048A _0803D130: .4byte 0x00000482 _0803D134: .4byte 0x0000047D _0803D138: .4byte 0x00000486 _0803D13C: .4byte 0x00000257 _0803D140: .4byte 0x02032F20 _0803D144: .4byte 0x086A26A0 _0803D148: .4byte 0x00000484 _0803D14C: .4byte 0x00004E20 _0803D150: ldr r4, _0803D1A0 @ =0x0000047D adds r4, r4, r5 mov r8, r4 ldrb r4, [r4] lsls r4, r4, #0x18 asrs r4, r4, #0x18 lsls r4, r4, #1 ldrh r5, [r1] adds r0, r5, #0 movs r1, #5 str r3, [sp, #0x14] bl __udivsi3 subs r0, #7 subs r4, r4, r0 lsls r4, r4, #0x10 lsrs r4, r4, #0x10 mov sl, r4 ldr r3, [sp, #0x14] cmp r5, #9 bne _0803D1CC cmp r3, #0xf0 bgt _0803D1A4 mov r5, sb ldr r0, [r5] movs r2, #0x10 ldrsh r1, [r0, r2] adds r1, #4 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 strh r0, [r6] ldr r0, [r5] movs r3, #0x12 ldrsh r1, [r0, r3] adds r1, #0xe lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 b _0803D1C2 .align 2, 0 _0803D1A0: .4byte 0x0000047D _0803D1A4: mov r4, r8 movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 beq _0803D1BE cmp r0, #1 bne _0803D1B8 ldrh r0, [r6] subs r0, #0x78 b _0803D1BC _0803D1B8: ldrh r0, [r6] adds r0, #0x78 _0803D1BC: strh r0, [r6] _0803D1BE: ldrh r0, [r7] adds r0, #0xf0 _0803D1C2: strh r0, [r7] movs r0, #0x90 lsls r0, r0, #1 bl m4aSongNumStart _0803D1CC: ldr r1, _0803D308 @ =0x020314E0 ldr r0, [r1] ldr r5, _0803D30C @ =0x00000482 adds r0, r0, r5 ldrh r7, [r0] cmp r7, #0 bne _0803D1E2 ldr r0, _0803D310 @ =0x0200B0C0 ldr r6, _0803D314 @ =0x000012C8 adds r0, r0, r6 strh r7, [r0] _0803D1E2: ldr r7, _0803D308 @ =0x020314E0 ldr r4, [r7] movs r1, #0x91 lsls r1, r1, #3 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 subs r0, #0xc ldr r3, [sp, #4] strh r0, [r3, #2] ldr r5, _0803D318 @ =0x0000048A adds r0, r4, r5 movs r6, #0 ldrsh r0, [r0, r6] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 subs r0, #0x16 ldr r7, [sp, #4] strh r0, [r7, #4] movs r2, #0 mov r0, sl lsls r1, r0, #0x10 ldr r3, _0803D31C @ =0x086B63F2 mov sb, r3 ldr r5, _0803D320 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 mov sl, r0 ldr r4, _0803D324 @ =0xFFFFFE00 mov r8, r4 _0803D238: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp, #4] adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, sl adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803D328 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _0803D238 ldr r5, _0803D308 @ =0x020314E0 ldr r0, [r5] ldr r6, _0803D32C @ =0x000005A4 adds r0, r0, r6 ldrb r0, [r0] cmp r0, #2 bne _0803D2C6 ldr r0, _0803D310 @ =0x0200B0C0 ldr r7, _0803D314 @ =0x000012C8 adds r0, r0, r7 movs r1, #0 strh r1, [r0] ldr r0, [r5] ldr r2, _0803D30C @ =0x00000482 adds r0, r0, r2 strh r1, [r0] _0803D2C6: movs r3, #0 str r3, [sp] _0803D2CA: ldr r4, [sp] lsls r2, r4, #0x10 asrs r3, r2, #0x10 movs r0, #0xb8 adds r1, r3, #0 muls r1, r0, r1 ldr r0, _0803D330 @ =0x0200BE80 adds r1, r1, r0 str r1, [sp, #4] ldrh r0, [r1] str r2, [sp, #0x10] cmp r0, #0 bne _0803D2E8 bl _0803DABA _0803D2E8: ldr r5, _0803D308 @ =0x020314E0 ldr r0, [r5] ldr r6, _0803D334 @ =0x000004CF adds r0, r0, r6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bls _0803D2FE b _0803D982 _0803D2FE: lsls r0, r0, #2 ldr r1, _0803D338 @ =_0803D33C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803D308: .4byte 0x020314E0 _0803D30C: .4byte 0x00000482 _0803D310: .4byte 0x0200B0C0 _0803D314: .4byte 0x000012C8 _0803D318: .4byte 0x0000048A _0803D31C: .4byte 0x086B63F2 _0803D320: .4byte 0x03005000 _0803D324: .4byte 0xFFFFFE00 _0803D328: .4byte 0x000001FF _0803D32C: .4byte 0x000005A4 _0803D330: .4byte 0x0200BE80 _0803D334: .4byte 0x000004CF _0803D338: .4byte _0803D33C _0803D33C: @ jump table .4byte _0803D354 @ case 0 .4byte _0803D4E4 @ case 1 .4byte _0803D600 @ case 2 .4byte _0803D710 @ case 3 .4byte _0803D824 @ case 4 .4byte _0803D954 @ case 5 _0803D354: ldr r6, _0803D4B4 @ =0x020314E0 ldr r1, [r6] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 ldr r0, _0803D4B8 @ =0x000004D2 adds r1, r1, r0 adds r1, r1, r5 ldr r2, _0803D4BC @ =0x086AF3AC lsls r0, r5, #1 adds r0, r0, r2 ldrh r0, [r0] strb r0, [r1] bl sub_C00 ldr r4, [r6] lsls r1, r5, #2 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 adds r1, r0, #0 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #4 adds r0, r0, r1 movs r1, #0x64 bl __udivsi3 adds r0, #0x1e lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r2, _0803D4C0 @ =0x000004EC adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r2, [r6] ldr r3, _0803D4C4 @ =0x000004CC adds r2, r2, r3 adds r2, r2, r5 movs r1, #0xf ands r1, r0 strb r1, [r2] ldr r4, [r6] adds r4, r4, r3 adds r6, r4, r5 adds r5, #1 adds r0, r5, #0 movs r1, #3 bl __modsi3 adds r4, r4, r0 movs r1, #0 ldrsb r1, [r6, r1] movs r0, #0 ldrsb r0, [r4, r0] cmp r1, r0 bne _0803D3E0 adds r2, r1, #0 adds r1, r2, #1 adds r0, r1, #0 cmp r1, #0 bge _0803D3D8 adds r0, r2, #0 adds r0, #0x10 _0803D3D8: asrs r0, r0, #4 lsls r0, r0, #4 subs r0, r1, r0 strb r0, [r6] _0803D3E0: ldr r5, _0803D4B4 @ =0x020314E0 ldr r4, [r5] ldr r3, [sp, #0x10] asrs r0, r3, #0x10 ldr r6, _0803D4C4 @ =0x000004CC adds r4, r4, r6 adds r7, r4, r0 adds r0, #2 movs r1, #3 bl __modsi3 adds r4, r4, r0 movs r1, #0 ldrsb r1, [r7, r1] movs r0, #0 ldrsb r0, [r4, r0] cmp r1, r0 bne _0803D41A adds r2, r1, #0 adds r1, r2, #1 adds r0, r1, #0 cmp r1, #0 bge _0803D412 adds r0, r2, #0 adds r0, #0x10 _0803D412: asrs r0, r0, #4 lsls r0, r0, #4 subs r0, r1, r0 strb r0, [r7] _0803D41A: ldr r7, _0803D4B4 @ =0x020314E0 ldr r3, [r7] ldr r0, [sp, #0x10] asrs r0, r0, #0x10 mov sb, r0 lsls r5, r0, #2 adds r6, r3, r5 ldr r4, _0803D4C8 @ =0x086AF34C ldr r1, _0803D4C4 @ =0x000004CC adds r2, r3, r1 add r2, sb movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r4 movs r7, #0 ldrsh r0, [r0, r7] lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r7, _0803D4C0 @ =0x000004EC adds r0, r6, r7 movs r7, #0 mov sl, r7 movs r7, #0 mov r8, r7 strh r1, [r0] movs r1, #0 ldrsb r1, [r2, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r4, #2 adds r0, r0, r4 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r4, _0803D4CC @ =0x000004EE adds r6, r6, r4 strh r0, [r6] mov r6, sb lsls r2, r6, #1 ldr r7, _0803D4D0 @ =0x000004E4 adds r0, r3, r7 adds r0, r0, r2 ldr r1, _0803D4D4 @ =0x0000FB50 strh r1, [r0] ldr r1, _0803D4D8 @ =0x000004DE adds r0, r3, r1 adds r0, r0, r2 mov r2, r8 strh r2, [r0] subs r4, #0x1f adds r3, r3, r4 add r3, sb movs r0, #1 strb r0, [r3] ldr r6, _0803D4B4 @ =0x020314E0 ldr r1, [r6] adds r5, r1, r5 adds r7, #0x14 adds r0, r5, r7 strh r2, [r0] ldr r0, _0803D4DC @ =0x000004FA adds r5, r5, r0 strh r2, [r5] ldr r2, _0803D4E0 @ =0x000004D5 adds r1, r1, r2 add r1, sb mov r3, sl strb r3, [r1] b _0803D982 .align 2, 0 _0803D4B4: .4byte 0x020314E0 _0803D4B8: .4byte 0x000004D2 _0803D4BC: .4byte 0x086AF3AC _0803D4C0: .4byte 0x000004EC _0803D4C4: .4byte 0x000004CC _0803D4C8: .4byte 0x086AF34C _0803D4CC: .4byte 0x000004EE _0803D4D0: .4byte 0x000004E4 _0803D4D4: .4byte 0x0000FB50 _0803D4D8: .4byte 0x000004DE _0803D4DC: .4byte 0x000004FA _0803D4E0: .4byte 0x000004D5 _0803D4E4: ldr r4, _0803D568 @ =0x020314E0 ldr r1, [r4] ldr r5, [sp, #0x10] asrs r3, r5, #0xf ldr r5, _0803D56C @ =0x000004E4 adds r0, r1, r5 adds r2, r0, r3 movs r6, #0 ldrsh r0, [r2, r6] cmp r0, #0 bge _0803D526 ldr r7, _0803D570 @ =0x000004DE adds r0, r1, r7 adds r0, r0, r3 ldrh r1, [r0] adds r1, #3 movs r4, #0 strh r1, [r0] ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 ble _0803D516 strh r4, [r2] _0803D516: ldr r1, _0803D568 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r5 adds r0, r0, r3 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0 blt _0803D5D0 _0803D526: ldr r7, _0803D568 @ =0x020314E0 ldr r0, [r7] ldr r3, [sp, #0x10] asrs r5, r3, #0x10 lsls r4, r5, #1 movs r6, #0x9b lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803D54A ldr r0, _0803D574 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D54A: ldr r1, [r7] adds r0, r1, r6 adds r2, r0, r4 ldrh r0, [r2] cmp r0, #4 bhi _0803D580 ldr r6, _0803D578 @ =0x000004D2 adds r0, r1, r6 adds r0, r0, r5 ldr r1, _0803D57C @ =0x086AF3AC adds r1, r4, r1 ldrb r1, [r1] adds r1, #1 b _0803D5B8 .align 2, 0 _0803D568: .4byte 0x020314E0 _0803D56C: .4byte 0x000004E4 _0803D570: .4byte 0x000004DE _0803D574: .4byte 0x00000121 _0803D578: .4byte 0x000004D2 _0803D57C: .4byte 0x086AF3AC _0803D580: cmp r0, #9 bhi _0803D59C ldr r7, _0803D594 @ =0x000004D2 adds r0, r1, r7 adds r0, r0, r5 ldr r1, _0803D598 @ =0x086AF3AC adds r1, r4, r1 ldrb r1, [r1] adds r1, #2 b _0803D5B8 .align 2, 0 _0803D594: .4byte 0x000004D2 _0803D598: .4byte 0x086AF3AC _0803D59C: movs r0, #0 strh r0, [r2] ldr r0, _0803D5EC @ =0x000004D2 adds r1, r1, r0 adds r1, r1, r5 ldr r0, _0803D5F0 @ =0x086AF3AC adds r0, r4, r0 ldrh r0, [r0] strb r0, [r1] ldr r0, [r7] ldr r1, _0803D5F4 @ =0x000004CF adds r0, r0, r1 adds r0, r0, r5 movs r1, #2 _0803D5B8: strb r1, [r0] ldr r2, _0803D5F8 @ =0x020314E0 ldr r1, [r2] ldr r3, [sp, #0x10] asrs r0, r3, #0xf movs r4, #0x9b lsls r4, r4, #3 adds r1, r1, r4 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0803D5D0: ldr r5, _0803D5F8 @ =0x020314E0 ldr r1, [r5] ldr r6, [sp, #0x10] asrs r0, r6, #0xe adds r1, r1, r0 movs r7, #0x9f lsls r7, r7, #3 adds r0, r1, r7 movs r2, #0 strh r2, [r0] ldr r0, _0803D5FC @ =0x000004FA adds r1, r1, r0 strh r2, [r1] b _0803D982 .align 2, 0 _0803D5EC: .4byte 0x000004D2 _0803D5F0: .4byte 0x086AF3AC _0803D5F4: .4byte 0x000004CF _0803D5F8: .4byte 0x020314E0 _0803D5FC: .4byte 0x000004FA _0803D600: ldr r1, _0803D694 @ =0x020314E0 ldr r6, [r1] ldr r2, [sp, #0x10] asrs r5, r2, #0x10 lsls r4, r5, #2 adds r4, r6, r4 ldr r3, _0803D698 @ =0x000004EC adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #1 movs r2, #0x9f lsls r2, r2, #3 adds r1, r4, r2 movs r3, #0 mov sl, r3 movs r7, #0 mov sb, r7 strh r0, [r1] ldr r1, _0803D69C @ =0x000004EE adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #8 ldr r3, _0803D6A0 @ =0x000004FA adds r4, r4, r3 strh r0, [r4] ldr r4, _0803D6A4 @ =0x000004D5 mov r8, r4 adds r0, r6, r4 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D65A b _0803D982 _0803D65A: lsls r7, r5, #1 adds r4, #3 adds r0, r6, r4 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bne _0803D674 ldr r0, _0803D6A8 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D674: ldr r6, _0803D694 @ =0x020314E0 ldr r1, [r6] adds r0, r1, r4 adds r0, r0, r7 ldrh r2, [r0] cmp r2, #4 bhi _0803D6B4 ldr r2, _0803D6AC @ =0x000004D2 adds r0, r1, r2 adds r0, r0, r5 ldr r1, _0803D6B0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #3 strb r1, [r0] b _0803D92E .align 2, 0 _0803D694: .4byte 0x020314E0 _0803D698: .4byte 0x000004EC _0803D69C: .4byte 0x000004EE _0803D6A0: .4byte 0x000004FA _0803D6A4: .4byte 0x000004D5 _0803D6A8: .4byte 0x00000121 _0803D6AC: .4byte 0x000004D2 _0803D6B0: .4byte 0x086AF3AC _0803D6B4: cmp r2, #9 bhi _0803D6D4 ldr r3, _0803D6CC @ =0x000004D2 adds r0, r1, r3 adds r0, r0, r5 ldr r1, _0803D6D0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #4 strb r1, [r0] b _0803D92E .align 2, 0 _0803D6CC: .4byte 0x000004D2 _0803D6D0: .4byte 0x086AF3AC _0803D6D4: mov r4, sb strh r4, [r0] ldr r6, _0803D700 @ =0x000004D2 adds r1, r1, r6 adds r1, r1, r5 ldr r0, _0803D704 @ =0x086AF3AC adds r0, r7, r0 ldrb r0, [r0] adds r0, #5 strb r0, [r1] ldr r7, _0803D708 @ =0x020314E0 ldr r0, [r7] ldr r1, _0803D70C @ =0x000004CF adds r0, r0, r1 adds r0, r0, r5 movs r1, #3 strb r1, [r0] ldr r0, [r7] add r0, r8 adds r0, r0, r5 mov r2, sl b _0803D92C .align 2, 0 _0803D700: .4byte 0x000004D2 _0803D704: .4byte 0x086AF3AC _0803D708: .4byte 0x020314E0 _0803D70C: .4byte 0x000004CF _0803D710: ldr r5, _0803D7A8 @ =0x020314E0 ldr r6, [r5] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 lsls r4, r5, #2 adds r4, r6, r4 ldr r1, _0803D7AC @ =0x000004EC adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #1 movs r3, #0x9f lsls r3, r3, #3 adds r1, r4, r3 movs r7, #0 mov sl, r7 movs r2, #0 mov sb, r2 strh r0, [r1] subs r3, #0xa adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #8 ldr r1, _0803D7B0 @ =0x000004FA adds r4, r4, r1 strh r0, [r4] ldr r2, _0803D7B4 @ =0x000004D5 mov r8, r2 adds r0, r6, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D76A b _0803D982 _0803D76A: lsls r7, r5, #1 movs r4, #0x9b lsls r4, r4, #3 adds r0, r6, r4 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bne _0803D786 ldr r0, _0803D7B8 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D786: ldr r3, _0803D7A8 @ =0x020314E0 ldr r1, [r3] adds r0, r1, r4 adds r0, r0, r7 ldrh r2, [r0] cmp r2, #4 bhi _0803D7C4 ldr r4, _0803D7BC @ =0x000004D2 adds r0, r1, r4 adds r0, r0, r5 ldr r1, _0803D7C0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #6 strb r1, [r0] b _0803D92E .align 2, 0 _0803D7A8: .4byte 0x020314E0 _0803D7AC: .4byte 0x000004EC _0803D7B0: .4byte 0x000004FA _0803D7B4: .4byte 0x000004D5 _0803D7B8: .4byte 0x00000121 _0803D7BC: .4byte 0x000004D2 _0803D7C0: .4byte 0x086AF3AC _0803D7C4: cmp r2, #9 bhi _0803D7E4 ldr r6, _0803D7DC @ =0x000004D2 adds r0, r1, r6 adds r0, r0, r5 ldr r1, _0803D7E0 @ =0x086AF3AC adds r1, r7, r1 ldrb r1, [r1] adds r1, #7 strb r1, [r0] b _0803D92E .align 2, 0 _0803D7DC: .4byte 0x000004D2 _0803D7E0: .4byte 0x086AF3AC _0803D7E4: mov r2, sb strh r2, [r0] ldr r3, _0803D814 @ =0x000004D2 adds r1, r1, r3 adds r1, r1, r5 ldr r0, _0803D818 @ =0x086AF3AC adds r0, r7, r0 ldrb r0, [r0] adds r0, #8 strb r0, [r1] ldr r4, _0803D81C @ =0x020314E0 ldr r0, [r4] ldr r6, _0803D820 @ =0x000004CF adds r0, r0, r6 adds r0, r0, r5 movs r1, #4 strb r1, [r0] ldr r0, [r4] add r0, r8 _0803D80A: adds r0, r0, r5 mov r7, sl strb r7, [r0] b _0803D92E .align 2, 0 _0803D814: .4byte 0x000004D2 _0803D818: .4byte 0x086AF3AC _0803D81C: .4byte 0x020314E0 _0803D820: .4byte 0x000004CF _0803D824: ldr r5, _0803D8B4 @ =0x020314E0 ldr r6, [r5] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 lsls r4, r5, #2 adds r4, r6, r4 ldr r1, _0803D8B8 @ =0x000004EC adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r3, #0xa mov sl, r3 movs r1, #0xa bl __divsi3 lsls r0, r0, #1 movs r7, #0x9f lsls r7, r7, #3 adds r1, r4, r7 movs r2, #0 mov sb, r2 strh r0, [r1] ldr r3, _0803D8BC @ =0x000004EE adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #8 ldr r1, _0803D8C0 @ =0x000004FA adds r4, r4, r1 strh r0, [r4] ldr r2, _0803D8C4 @ =0x000004D5 mov r8, r2 adds r0, r6, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803D87E b _0803D982 _0803D87E: lsls r7, r5, #1 movs r4, #0x9b lsls r4, r4, #3 adds r0, r6, r4 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #1 bne _0803D89A ldr r0, _0803D8C8 @ =0x00000121 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _0803D89A: ldr r3, _0803D8B4 @ =0x020314E0 ldr r2, [r3] adds r0, r2, r4 adds r0, r0, r7 ldrh r1, [r0] cmp r1, #2 bhi _0803D8D0 ldr r4, _0803D8CC @ =0x000004D2 adds r0, r2, r4 adds r0, r0, r5 movs r1, #9 strb r1, [r0] b _0803D92E .align 2, 0 _0803D8B4: .4byte 0x020314E0 _0803D8B8: .4byte 0x000004EC _0803D8BC: .4byte 0x000004EE _0803D8C0: .4byte 0x000004FA _0803D8C4: .4byte 0x000004D5 _0803D8C8: .4byte 0x00000121 _0803D8CC: .4byte 0x000004D2 _0803D8D0: cmp r1, #7 bhi _0803D8E0 ldr r6, _0803D8DC @ =0x000004D2 adds r0, r2, r6 b _0803D80A .align 2, 0 _0803D8DC: .4byte 0x000004D2 _0803D8E0: cmp r1, #0xd bhi _0803D8F4 ldr r1, _0803D8F0 @ =0x000004D2 adds r0, r2, r1 adds r0, r0, r5 movs r1, #0xb strb r1, [r0] b _0803D92E .align 2, 0 _0803D8F0: .4byte 0x000004D2 _0803D8F4: cmp r1, #0x16 bhi _0803D908 ldr r3, _0803D904 @ =0x000004D2 adds r0, r2, r3 adds r0, r0, r5 movs r1, #0xc strb r1, [r0] b _0803D92E .align 2, 0 _0803D904: .4byte 0x000004D2 _0803D908: mov r4, sb strh r4, [r0] ldr r6, _0803D948 @ =0x000004D2 adds r0, r2, r6 adds r0, r0, r5 movs r1, #0xc strb r1, [r0] ldr r7, _0803D94C @ =0x020314E0 ldr r0, [r7] ldr r1, _0803D950 @ =0x000004CF adds r0, r0, r1 adds r0, r0, r5 movs r1, #5 strb r1, [r0] ldr r0, [r7] add r0, r8 adds r0, r0, r5 movs r2, #0 _0803D92C: strb r2, [r0] _0803D92E: ldr r2, _0803D94C @ =0x020314E0 ldr r1, [r2] ldr r3, [sp, #0x10] asrs r0, r3, #0xf movs r4, #0x9b lsls r4, r4, #3 adds r1, r1, r4 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0803D982 .align 2, 0 _0803D948: .4byte 0x000004D2 _0803D94C: .4byte 0x020314E0 _0803D950: .4byte 0x000004CF _0803D954: ldr r5, _0803DB14 @ =0x020314E0 ldr r1, [r5] ldr r6, [sp, #0x10] asrs r2, r6, #0x10 lsls r0, r2, #2 adds r1, r1, r0 movs r7, #0x9f lsls r7, r7, #3 adds r0, r1, r7 movs r3, #0 strh r3, [r0] ldr r0, _0803DB18 @ =0x000004FA adds r1, r1, r0 strh r3, [r1] ldr r1, _0803DB1C @ =0x0200B0C0 adds r2, #0xf movs r0, #0xb8 muls r0, r2, r0 adds r0, r0, r1 movs r1, #0xbe lsls r1, r1, #2 adds r0, r0, r1 strh r3, [r0] _0803D982: ldr r2, _0803DB14 @ =0x020314E0 ldr r0, [r2] ldr r3, [sp, #0x10] asrs r4, r3, #0x10 ldr r5, _0803DB20 @ =0x000004D2 adds r0, r0, r5 adds r0, r0, r4 ldr r2, _0803DB24 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0803DB28 @ =0x084A11EC adds r0, r0, r1 str r0, [r2] lsls r3, r4, #1 adds r0, r3, r4 lsls r0, r0, #8 ldr r6, _0803DB2C @ =0x06010FA0 adds r0, r0, r6 str r0, [r2, #4] ldr r0, _0803DB30 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] ldr r7, _0803DB14 @ =0x020314E0 ldr r6, [r7] lsls r5, r4, #2 adds r5, r6, r5 ldr r1, _0803DB34 @ =0x000004EC adds r0, r5, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa str r3, [sp, #0x14] bl __divsi3 adds r4, r4, r0 adds r0, r6, #0 adds r0, #0x58 ldrh r0, [r0] subs r4, r4, r0 ldr r7, [sp, #4] strh r4, [r7, #2] ldr r1, _0803DB38 @ =0x000004E4 adds r0, r6, r1 ldr r3, [sp, #0x14] adds r0, r0, r3 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, r0, #0 ldr r3, _0803DB3C @ =0x000004EE adds r5, r5, r3 movs r7, #0 ldrsh r0, [r5, r7] movs r1, #0xa bl __divsi3 adds r4, r4, r0 adds r6, #0x5a ldrh r0, [r6] subs r4, r4, r0 ldr r0, [sp, #4] strh r4, [r0, #4] movs r2, #0 ldr r5, _0803DB40 @ =0x03005000 ldr r1, _0803DB44 @ =0xFFFFFE00 mov r8, r1 _0803DA10: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r2, [sp, #4] adds r6, r2, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 movs r4, #2 ldrsh r1, [r6, r4] ldr r7, [sp, #4] movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r7, _0803DB48 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0803DA10 ldr r3, _0803DB14 @ =0x020314E0 ldr r6, [r3] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DB4C @ =0x000004CF adds r0, r6, r5 adds r4, r0, r3 ldrb r0, [r4] subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bhi _0803DABA ldr r2, _0803DB50 @ =0x086AF34C ldr r7, _0803DB54 @ =0x000004CC adds r0, r6, r7 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #4 adds r0, r0, r2 movs r2, #0 ldrsh r1, [r0, r2] subs r5, #0x79 adds r0, r6, r5 ldrh r0, [r0] cmp r1, r0 bne _0803DABA movs r2, #0 movs r0, #4 strb r0, [r4] ldr r6, _0803DB14 @ =0x020314E0 ldr r0, [r6] adds r7, #9 adds r0, r0, r7 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r6] lsls r1, r3, #1 movs r3, #0x9b lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r1 strh r2, [r0] _0803DABA: ldr r4, [sp] lsls r0, r4, #0x10 movs r5, #0x80 lsls r5, r5, #9 adds r0, r0, r5 lsrs r6, r0, #0x10 str r6, [sp] asrs r0, r0, #0x10 cmp r0, #2 bgt _0803DAD2 bl _0803D2CA _0803DAD2: movs r7, #0 str r7, [sp] _0803DAD6: ldr r0, [sp] lsls r2, r0, #0x10 asrs r4, r2, #0x10 movs r0, #0xb8 adds r1, r4, #0 muls r1, r0, r1 ldr r0, _0803DB58 @ =0x0200C0A8 adds r1, r1, r0 str r1, [sp, #4] ldrh r3, [r1] str r2, [sp, #0x10] cmp r3, #0 bne _0803DAF2 b _0803E1B0 _0803DAF2: ldr r1, _0803DB14 @ =0x020314E0 ldr r0, [r1] ldr r2, _0803DB5C @ =0x0000048C adds r0, r0, r2 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bls _0803DB08 b _0803DF08 _0803DB08: lsls r0, r0, #2 ldr r1, _0803DB60 @ =_0803DB64 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803DB14: .4byte 0x020314E0 _0803DB18: .4byte 0x000004FA _0803DB1C: .4byte 0x0200B0C0 _0803DB20: .4byte 0x000004D2 _0803DB24: .4byte 0x040000D4 _0803DB28: .4byte 0x084A11EC _0803DB2C: .4byte 0x06010FA0 _0803DB30: .4byte 0x80000180 _0803DB34: .4byte 0x000004EC _0803DB38: .4byte 0x000004E4 _0803DB3C: .4byte 0x000004EE _0803DB40: .4byte 0x03005000 _0803DB44: .4byte 0xFFFFFE00 _0803DB48: .4byte 0x000001FF _0803DB4C: .4byte 0x000004CF _0803DB50: .4byte 0x086AF34C _0803DB54: .4byte 0x000004CC _0803DB58: .4byte 0x0200C0A8 _0803DB5C: .4byte 0x0000048C _0803DB60: .4byte _0803DB64 _0803DB64: @ jump table .4byte _0803DB90 @ case 0 .4byte _0803DBD4 @ case 1 .4byte _0803DC2C @ case 2 .4byte _0803DC80 @ case 3 .4byte _0803DCD8 @ case 4 .4byte _0803DD2C @ case 5 .4byte _0803DD84 @ case 6 .4byte _0803DDD8 @ case 7 .4byte _0803DE34 @ case 8 .4byte _0803DEA8 @ case 9 .4byte _0803DEF0 @ case 10 _0803DB90: ldr r2, _0803DBC8 @ =0x020314E0 ldr r0, [r2] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DBCC @ =0x0000049C adds r0, r0, r5 adds r0, r0, r3 movs r4, #0 strb r4, [r0] ldr r0, [r2] movs r6, #0x92 lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r2] ldr r7, _0803DBD0 @ =0x00000494 adds r0, r0, r7 adds r0, r0, r3 movs r1, #1 strb r1, [r0] ldr r0, [r2] movs r1, #0x94 lsls r1, r1, #3 adds r0, r0, r1 b _0803DEDE .align 2, 0 _0803DBC8: .4byte 0x020314E0 _0803DBCC: .4byte 0x0000049C _0803DBD0: .4byte 0x00000494 _0803DBD4: ldr r2, _0803DC1C @ =0x020314E0 ldr r1, [r2] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DC20 @ =0x0000049C adds r1, r1, r5 adds r1, r1, r3 movs r0, #8 strb r0, [r1] ldr r0, [r2] movs r6, #0x92 lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r3 movs r1, #0xc strb r1, [r0] ldr r0, [r2] ldr r7, _0803DC24 @ =0x00000494 adds r0, r0, r7 adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r2] movs r1, #0x94 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r2, _0803DC28 @ =0x0000048C adds r0, r0, r2 adds r0, r0, r3 movs r1, #2 strb r1, [r0] b _0803DF08 .align 2, 0 _0803DC1C: .4byte 0x020314E0 _0803DC20: .4byte 0x0000049C _0803DC24: .4byte 0x00000494 _0803DC28: .4byte 0x0000048C _0803DC2C: ldr r5, _0803DC70 @ =0x020314E0 ldr r0, [r5] ldr r3, [sp, #0x10] asrs r4, r3, #0x10 ldr r6, _0803DC74 @ =0x000004A4 adds r0, r0, r6 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DC46 b _0803DF08 _0803DC46: subs r0, r2, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 beq _0803DC5C b _0803DF08 _0803DC5C: ldr r0, _0803DC78 @ =0x00000123 bl m4aSongNumStart ldr r0, [r5] ldr r7, _0803DC7C @ =0x0000048C adds r0, r0, r7 adds r0, r0, r4 movs r1, #3 strb r1, [r0] b _0803DE98 .align 2, 0 _0803DC70: .4byte 0x020314E0 _0803DC74: .4byte 0x000004A4 _0803DC78: .4byte 0x00000123 _0803DC7C: .4byte 0x0000048C _0803DC80: ldr r2, _0803DCC8 @ =0x020314E0 ldr r1, [r2] ldr r0, [sp, #0x10] asrs r3, r0, #0x10 ldr r4, _0803DCCC @ =0x0000049C adds r1, r1, r4 adds r1, r1, r3 movs r0, #0xc strb r0, [r1] ldr r0, [r2] movs r5, #0x92 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 movs r1, #0x10 strb r1, [r0] ldr r0, [r2] ldr r6, _0803DCD0 @ =0x00000494 adds r0, r0, r6 adds r0, r0, r3 movs r1, #5 strb r1, [r0] ldr r0, [r2] movs r7, #0x94 lsls r7, r7, #3 adds r0, r0, r7 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r1, _0803DCD4 @ =0x0000048C adds r0, r0, r1 adds r0, r0, r3 movs r1, #4 strb r1, [r0] b _0803DF08 .align 2, 0 _0803DCC8: .4byte 0x020314E0 _0803DCCC: .4byte 0x0000049C _0803DCD0: .4byte 0x00000494 _0803DCD4: .4byte 0x0000048C _0803DCD8: ldr r5, _0803DD1C @ =0x020314E0 ldr r0, [r5] ldr r2, [sp, #0x10] asrs r4, r2, #0x10 ldr r3, _0803DD20 @ =0x000004A4 adds r0, r0, r3 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DCF2 b _0803DF08 _0803DCF2: subs r0, r2, #1 strb r0, [r1] ldr r0, [r5] adds r0, r0, r3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 beq _0803DD08 b _0803DF08 _0803DD08: ldr r0, _0803DD24 @ =0x00000123 bl m4aSongNumStart ldr r0, [r5] ldr r5, _0803DD28 @ =0x0000048C adds r0, r0, r5 adds r0, r0, r4 movs r1, #5 strb r1, [r0] b _0803DE98 .align 2, 0 _0803DD1C: .4byte 0x020314E0 _0803DD20: .4byte 0x000004A4 _0803DD24: .4byte 0x00000123 _0803DD28: .4byte 0x0000048C _0803DD2C: ldr r2, _0803DD74 @ =0x020314E0 ldr r1, [r2] ldr r6, [sp, #0x10] asrs r3, r6, #0x10 ldr r7, _0803DD78 @ =0x0000049C adds r1, r1, r7 adds r1, r1, r3 movs r0, #0x10 strb r0, [r1] ldr r0, [r2] movs r1, #0x92 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0x14 strb r1, [r0] ldr r0, [r2] ldr r4, _0803DD7C @ =0x00000494 adds r0, r0, r4 adds r0, r0, r3 movs r1, #7 strb r1, [r0] ldr r0, [r2] movs r5, #0x94 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] ldr r6, _0803DD80 @ =0x0000048C adds r0, r0, r6 adds r0, r0, r3 movs r1, #6 strb r1, [r0] b _0803DF08 .align 2, 0 _0803DD74: .4byte 0x020314E0 _0803DD78: .4byte 0x0000049C _0803DD7C: .4byte 0x00000494 _0803DD80: .4byte 0x0000048C _0803DD84: ldr r6, _0803DDC8 @ =0x020314E0 ldr r0, [r6] ldr r7, [sp, #0x10] asrs r5, r7, #0x10 ldr r1, _0803DDCC @ =0x000004A4 adds r0, r0, r1 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DD9E b _0803DF08 _0803DD9E: subs r0, r2, #1 strb r0, [r1] ldr r0, [r6] ldr r2, _0803DDCC @ =0x000004A4 adds r0, r0, r2 adds r0, r0, r5 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #7 beq _0803DDB4 b _0803DF08 _0803DDB4: ldr r0, _0803DDD0 @ =0x00000123 bl m4aSongNumStart ldr r0, [r6] ldr r3, _0803DDD4 @ =0x0000048C adds r0, r0, r3 adds r0, r0, r5 strb r4, [r0] b _0803DE98 .align 2, 0 _0803DDC8: .4byte 0x020314E0 _0803DDCC: .4byte 0x000004A4 _0803DDD0: .4byte 0x00000123 _0803DDD4: .4byte 0x0000048C _0803DDD8: ldr r2, _0803DE28 @ =0x020314E0 ldr r1, [r2] ldr r4, [sp, #0x10] asrs r3, r4, #0x10 ldr r5, _0803DE2C @ =0x0000049C adds r1, r1, r5 adds r1, r1, r3 movs r4, #0 movs r0, #0x14 strb r0, [r1] ldr r0, [r2] movs r6, #0x92 lsls r6, r6, #3 adds r0, r0, r6 adds r0, r0, r3 movs r1, #0x18 strb r1, [r0] ldr r0, [r2] ldr r7, _0803DE30 @ =0x00000494 adds r0, r0, r7 adds r0, r0, r3 movs r1, #9 strb r1, [r0] ldr r0, [r2] movs r1, #0x94 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xe strb r1, [r0] ldr r0, [r2] subs r5, #0x10 adds r0, r0, r5 adds r0, r0, r3 movs r1, #8 strb r1, [r0] ldr r0, [r2] adds r6, #0x18 adds r0, r0, r6 b _0803DEDE .align 2, 0 _0803DE28: .4byte 0x020314E0 _0803DE2C: .4byte 0x0000049C _0803DE30: .4byte 0x00000494 _0803DE34: ldr r4, _0803DE7C @ =0x020314E0 ldr r0, [r4] ldr r7, [sp, #0x10] asrs r3, r7, #0x10 ldr r1, _0803DE80 @ =0x000004A4 adds r0, r0, r1 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0803DF08 subs r0, r2, #1 movs r5, #0 strb r0, [r1] ldr r1, [r4] ldr r2, _0803DE80 @ =0x000004A4 adds r0, r1, r2 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _0803DF08 movs r6, #0x95 lsls r6, r6, #3 adds r0, r1, r6 adds r1, r0, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0803DE84 adds r0, r2, #1 strb r0, [r1] b _0803DE92 .align 2, 0 _0803DE7C: .4byte 0x020314E0 _0803DE80: .4byte 0x000004A4 _0803DE84: strb r5, [r1] ldr r0, [r4] ldr r7, _0803DEA0 @ =0x0000048C adds r0, r0, r7 adds r0, r0, r3 movs r1, #9 strb r1, [r0] _0803DE92: ldr r0, _0803DEA4 @ =0x00000123 bl m4aSongNumStart _0803DE98: movs r0, #7 bl sub_11B0 b _0803DF08 .align 2, 0 _0803DEA0: .4byte 0x0000048C _0803DEA4: .4byte 0x00000123 _0803DEA8: ldr r2, _0803DEE4 @ =0x020314E0 ldr r1, [r2] ldr r0, [sp, #0x10] asrs r3, r0, #0x10 ldr r4, _0803DEE8 @ =0x0000049C adds r1, r1, r4 adds r1, r1, r3 movs r4, #0 movs r0, #0x18 strb r0, [r1] ldr r0, [r2] movs r5, #0x92 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 movs r1, #0x1b strb r1, [r0] ldr r0, [r2] ldr r6, _0803DEEC @ =0x00000494 adds r0, r0, r6 adds r0, r0, r3 movs r1, #0xa strb r1, [r0] ldr r0, [r2] movs r7, #0x94 lsls r7, r7, #3 adds r0, r0, r7 _0803DEDE: adds r0, r0, r3 strb r4, [r0] b _0803DF08 .align 2, 0 _0803DEE4: .4byte 0x020314E0 _0803DEE8: .4byte 0x0000049C _0803DEEC: .4byte 0x00000494 _0803DEF0: ldr r2, _0803DF3C @ =0x0200B0C0 ldr r1, [sp, #0x10] asrs r0, r1, #0x10 adds r0, #0x12 movs r1, #0xb8 muls r0, r1, r0 adds r0, r0, r2 movs r2, #0xbe lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0 strh r1, [r0] _0803DF08: ldr r4, _0803DF40 @ =0x086AF2DC ldr r3, _0803DF44 @ =0x020314E0 ldr r2, [r3] ldr r6, [sp, #0x10] asrs r5, r6, #0x10 movs r7, #0x93 lsls r7, r7, #3 adds r0, r2, r7 adds r7, r0, r5 movs r1, #0 ldrsb r1, [r7, r1] lsls r1, r1, #2 adds r0, r4, #2 adds r1, r1, r0 lsls r0, r5, #1 ldr r6, _0803DF48 @ =0x000004AC adds r2, r2, r6 adds r2, r2, r0 ldrh r6, [r2] ldrh r0, [r1] cmp r0, r6 bls _0803DF4C adds r0, r6, #1 strh r0, [r2] b _0803DFC8 .align 2, 0 _0803DF3C: .4byte 0x0200B0C0 _0803DF40: .4byte 0x086AF2DC _0803DF44: .4byte 0x020314E0 _0803DF48: .4byte 0x000004AC _0803DF4C: movs r0, #0 strh r0, [r2] ldrb r0, [r7] adds r0, #1 strb r0, [r7] ldr r7, _0803DFA8 @ =0x020314E0 ldr r2, [r7] movs r1, #0x93 lsls r1, r1, #3 adds r0, r2, r1 adds r3, r0, r5 movs r6, #0x92 lsls r6, r6, #3 adds r0, r2, r6 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r3, r1] ldrb r6, [r0] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _0803DFC8 movs r7, #0x94 lsls r7, r7, #3 adds r0, r2, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803DFB0 ldr r1, _0803DFAC @ =0x0000049C adds r0, r2, r1 adds r0, r0, r5 ldrb r0, [r0] strb r0, [r3] ldr r2, _0803DFA8 @ =0x020314E0 ldr r1, [r2] adds r3, r7, #0 adds r1, r1, r3 adds r1, r1, r5 ldrb r0, [r1] subs r0, #1 b _0803DFC6 .align 2, 0 _0803DFA8: .4byte 0x020314E0 _0803DFAC: .4byte 0x0000049C _0803DFB0: subs r0, r6, #1 strb r0, [r3] ldr r6, _0803E0EC @ =0x020314E0 ldr r0, [r6] ldr r7, _0803E0F0 @ =0x0000048C adds r1, r0, r7 adds r1, r1, r5 ldr r2, _0803E0F4 @ =0x00000494 adds r0, r0, r2 adds r0, r0, r5 ldrb r0, [r0] _0803DFC6: strb r0, [r1] _0803DFC8: ldr r3, _0803E0EC @ =0x020314E0 ldr r2, [r3] ldr r6, [sp, #0x10] asrs r5, r6, #0x10 movs r7, #0x93 lsls r7, r7, #3 adds r0, r2, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 ldrh r0, [r0] mov sl, r0 ldr r0, _0803E0F8 @ =0x086AF2CC lsls r4, r5, #2 adds r3, r4, r0 ldrh r1, [r3] adds r1, #0x41 adds r0, r2, #0 adds r0, #0x58 ldrh r0, [r0] subs r1, r1, r0 ldr r0, [sp, #4] strh r1, [r0, #2] ldrh r1, [r3, #2] adds r1, #0x3c adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 ldr r6, [sp, #4] strh r1, [r6, #4] subs r7, #0xc adds r0, r2, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bgt _0803E03A adds r2, r2, r4 movs r1, #0 ldrsh r0, [r3, r1] adds r0, #0x3d lsls r0, r0, #1 ldr r4, _0803E0FC @ =0x000004B4 adds r1, r2, r4 strh r0, [r1] movs r6, #2 ldrsh r0, [r3, r6] adds r0, #0x60 lsls r0, r0, #1 adds r7, #0x2a adds r2, r2, r7 strh r0, [r2] _0803E03A: ldr r1, _0803E0EC @ =0x020314E0 ldr r0, [r1] ldr r2, _0803E100 @ =0x000004A4 adds r0, r0, r2 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0803E114 movs r2, #0 mov r3, sl lsls r1, r3, #0x10 ldr r4, _0803E104 @ =0x086B8AE0 mov sb, r4 ldr r5, _0803E108 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r6, _0803E10C @ =0xFFFFFE00 mov r8, r6 _0803E068: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp, #4] adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, sl adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803E110 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0x20 orrs r0, r1 strb r0, [r2, #5] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _0803E068 b _0803E1C4 .align 2, 0 _0803E0EC: .4byte 0x020314E0 _0803E0F0: .4byte 0x0000048C _0803E0F4: .4byte 0x00000494 _0803E0F8: .4byte 0x086AF2CC _0803E0FC: .4byte 0x000004B4 _0803E100: .4byte 0x000004A4 _0803E104: .4byte 0x086B8AE0 _0803E108: .4byte 0x03005000 _0803E10C: .4byte 0xFFFFFE00 _0803E110: .4byte 0x000001FF _0803E114: movs r2, #0 mov r5, sl lsls r1, r5, #0x10 ldr r6, _0803E1A0 @ =0x086B8AE0 mov sb, r6 ldr r5, _0803E1A4 @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 mov sl, r0 ldr r7, _0803E1A8 @ =0xFFFFFE00 mov r8, r7 _0803E12E: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r1, [sp, #4] adds r6, r1, r0 ldrh r0, [r6] lsls r0, r0, #3 adds r2, r0, r5 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sb mov r4, sl adds r1, r4, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov ip, r1 ldr r7, [sp, #4] movs r1, #2 ldrsh r0, [r7, r1] mov r7, ip adds r1, r7, r0 ldr r7, _0803E1AC @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #4] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _0803E12E b _0803E1C4 .align 2, 0 _0803E1A0: .4byte 0x086B8AE0 _0803E1A4: .4byte 0x03005000 _0803E1A8: .4byte 0xFFFFFE00 _0803E1AC: .4byte 0x000001FF _0803E1B0: ldr r5, _0803E2BC @ =0x020314E0 ldr r0, [r5] lsls r1, r4, #2 adds r0, r0, r1 ldr r6, _0803E2C0 @ =0x000004B4 adds r1, r0, r6 strh r3, [r1] ldr r7, _0803E2C4 @ =0x000004B6 adds r0, r0, r7 strh r3, [r0] _0803E1C4: ldr r1, [sp, #0x10] movs r2, #0x80 lsls r2, r2, #9 adds r0, r1, r2 lsrs r3, r0, #0x10 str r3, [sp] asrs r0, r0, #0x10 cmp r0, #3 bgt _0803E1D8 b _0803DAD6 _0803E1D8: ldr r4, _0803E2BC @ =0x020314E0 ldr r0, [r4] ldr r4, _0803E2C8 @ =0x000004C4 adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0 beq _0803E236 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x24 bne _0803E1FA movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E1FA: ldr r5, _0803E2BC @ =0x020314E0 ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x18 bne _0803E20E movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E20E: ldr r6, _0803E2BC @ =0x020314E0 ldr r0, [r6] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0xc bne _0803E222 movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E222: ldr r7, _0803E2BC @ =0x020314E0 ldr r0, [r7] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803E236 movs r0, #0x91 lsls r0, r0, #1 bl m4aSongNumStart _0803E236: ldr r0, _0803E2CC @ =0x0200C948 str r0, [sp, #4] ldrh r0, [r0] cmp r0, #0 bne _0803E242 b _0803E574 _0803E242: ldr r0, _0803E2BC @ =0x020314E0 ldr r1, [r0] ldr r6, _0803E2D0 @ =0x00000456 adds r7, r1, r6 ldrh r1, [r7] cmp r1, #0x23 bhi _0803E300 adds r0, r1, #0 lsls r0, r0, #9 movs r1, #0x23 bl __divsi3 adds r0, #0x10 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #2 cmp r0, r1 ble _0803E26C adds r7, r1, #0 _0803E26C: lsls r5, r7, #0x10 asrs r5, r5, #0x10 adds r0, r5, #0 adds r1, r5, #0 movs r2, #1 bl sub_7C0 rsbs r4, r5, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 adds r1, r5, #0 movs r2, #2 bl sub_7C0 adds r0, r5, #0 adds r1, r4, #0 movs r2, #3 bl sub_7C0 adds r0, r4, #0 adds r1, r4, #0 movs r2, #4 bl sub_7C0 ldr r1, _0803E2BC @ =0x020314E0 ldr r0, [r1] adds r1, r0, r6 ldrh r0, [r1] cmp r0, #0x1e bls _0803E2D4 subs r0, #0x1e movs r1, #0xb muls r0, r1, r0 movs r1, #5 bl __divsi3 movs r1, #0xc b _0803E2E0 .align 2, 0 _0803E2BC: .4byte 0x020314E0 _0803E2C0: .4byte 0x000004B4 _0803E2C4: .4byte 0x000004B6 _0803E2C8: .4byte 0x000004C4 _0803E2CC: .4byte 0x0200C948 _0803E2D0: .4byte 0x00000456 _0803E2D4: ldrh r0, [r1] lsls r0, r0, #2 movs r1, #0x1e bl __divsi3 movs r1, #0x10 _0803E2E0: subs r1, r1, r0 lsls r1, r1, #0x10 lsrs r6, r1, #0x10 ldr r2, _0803E2F8 @ =0x020314E0 ldr r1, [r2] ldr r3, _0803E2FC @ =0x00000456 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _0803E30A .align 2, 0 _0803E2F8: .4byte 0x020314E0 _0803E2FC: .4byte 0x00000456 _0803E300: movs r7, #0x80 lsls r7, r7, #1 movs r6, #0 ldr r4, [sp, #4] strh r6, [r4] _0803E30A: ldr r5, _0803E584 @ =0x020314E0 ldr r0, [r5] ldr r1, _0803E588 @ =0x00000456 adds r0, r0, r1 ldrh r0, [r0] ldr r2, _0803E58C @ =0x0200B0C0 mov r8, r2 lsls r7, r7, #0x10 mov sl, r7 cmp r0, #0x22 bne _0803E382 movs r3, #0 str r3, [sp] mov sb, r8 movs r4, #0 movs r7, #0 adds r3, r5, #0 _0803E32C: ldr r5, [sp] lsls r2, r5, #0x10 asrs r2, r2, #0x10 adds r1, r2, #0 adds r1, #0x12 movs r0, #0xb8 muls r0, r1, r0 add r0, sb movs r1, #0xbe lsls r1, r1, #2 adds r0, r0, r1 movs r1, #1 strh r1, [r0] ldr r0, [r3] ldr r5, _0803E590 @ =0x0000048C adds r0, r0, r5 adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] movs r1, #0x93 lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r2 strb r4, [r0] ldr r0, [r3] lsls r1, r2, #1 adds r5, #0x20 adds r0, r0, r5 adds r0, r0, r1 strh r7, [r0] adds r2, #1 lsls r2, r2, #0x10 lsrs r0, r2, #0x10 str r0, [sp] asrs r2, r2, #0x10 cmp r2, #3 ble _0803E32C ldr r1, _0803E584 @ =0x020314E0 ldr r0, [r1] ldr r2, _0803E594 @ =0x000004C4 adds r0, r0, r2 movs r1, #0x25 strh r1, [r0] _0803E382: ldr r3, _0803E584 @ =0x020314E0 ldr r1, [r3] mov r4, sl asrs r5, r4, #0x10 adds r0, r5, #0 cmp r5, #0 bge _0803E392 adds r0, r5, #7 _0803E392: asrs r3, r0, #3 movs r0, #0x20 subs r2, r0, r3 ldr r7, _0803E598 @ =0x0000046C adds r0, r1, r7 strh r2, [r0] adds r3, #0x20 movs r4, #0x8e lsls r4, r4, #3 adds r0, r1, r4 strh r3, [r0] ldr r7, _0803E59C @ =0x00000474 adds r0, r1, r7 strh r2, [r0] movs r4, #0x8f lsls r4, r4, #3 adds r0, r1, r4 strh r3, [r0] ldr r7, _0803E5A0 @ =0x0000046E adds r0, r1, r7 strh r2, [r0] ldr r4, _0803E5A4 @ =0x00000472 adds r0, r1, r4 strh r2, [r0] ldr r7, _0803E5A8 @ =0x00000476 adds r0, r1, r7 strh r3, [r0] ldr r2, _0803E5AC @ =0x0000047A adds r0, r1, r2 strh r3, [r0] mov r3, r8 ldrb r1, [r3, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _0803E3F0 ldrh r0, [r3, #0x38] ldr r0, _0803E5B0 @ =0x00001E10 strh r0, [r3, #0x38] movs r0, #0x10 lsls r1, r6, #0x10 asrs r1, r1, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 ldrh r1, [r3, #0x3a] strh r0, [r3, #0x3a] _0803E3F0: ldr r4, [sp, #4] ldrh r0, [r4] cmp r0, #0 beq _0803E4AA ldr r5, _0803E584 @ =0x020314E0 ldr r1, [r5] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x17 subs r0, r0, r2 strh r0, [r4, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x32 subs r0, r0, r1 strh r0, [r4, #4] movs r2, #0 ldr r7, _0803E5B4 @ =0x03005000 ldr r6, _0803E5B8 @ =0xFFFFFE00 mov sb, r6 movs r0, #0xf rsbs r0, r0, #0 mov r8, r0 _0803E420: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r0, r5, #3 adds r0, #8 ldr r1, [sp, #4] adds r6, r1, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r6, r2] ldr r4, [sp, #4] movs r2, #2 ldrsh r0, [r4, r2] adds r1, r1, r0 ldr r0, _0803E584 @ =0x020314E0 ldr r4, [r0] lsls r0, r5, #2 adds r4, r4, r0 ldr r2, _0803E598 @ =0x0000046C adds r0, r4, r2 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _0803E5BC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldr r3, [sp, #4] ldrb r1, [r3, #4] ldrb r0, [r6, #4] adds r1, r1, r0 ldr r3, _0803E5A0 @ =0x0000046E adds r4, r4, r3 ldrb r0, [r4] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r7 adds r5, #1 movs r0, #7 adds r1, r5, #0 ands r1, r0 lsls r1, r1, #1 ldrb r2, [r3, #3] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3, #3] lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803E420 _0803E4AA: ldr r4, _0803E584 @ =0x020314E0 ldr r2, [r4] ldr r5, _0803E588 @ =0x00000456 adds r4, r2, r5 ldrh r0, [r4] cmp r0, #0x1d bhi _0803E560 ldr r7, _0803E5C0 @ =0x0000132C adds r0, r2, r7 ldr r1, [r0] movs r6, #0x10 ldrsh r0, [r1, r6] subs r0, #0x77 str r0, [sp, #8] movs r3, #0x12 ldrsh r0, [r1, r3] subs r0, #0x93 str r0, [sp, #0xc] ldr r5, [sp, #8] adds r1, r5, #0 muls r1, r5, r1 adds r6, r0, #0 adds r0, r6, #0 muls r0, r6, r0 adds r3, r1, r0 movs r1, #0xe2 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803E560 ldr r0, _0803E5C4 @ =0x086AEE20 ldrh r1, [r4] lsls r1, r1, #1 adds r1, r1, r0 movs r2, #0 ldrsh r0, [r1, r2] cmp r3, r0 bge _0803E560 rsbs r0, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r3, r6, #0 lsls r1, r3, #0x10 asrs r1, r1, #0x10 bl ArcTan2 ldr r4, _0803E584 @ =0x020314E0 ldr r1, [r4] movs r6, #0xb6 lsls r6, r6, #3 adds r1, r1, r6 strh r0, [r1] ldrh r0, [r1] bl sub_C74 adds r1, r0, #0 ldr r4, [r4] adds r0, r4, r7 ldr r5, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r1 lsls r0, r0, #4 rsbs r0, r0, #0 ldr r1, _0803E5C8 @ =0x00004E20 bl __divsi3 strh r0, [r5, #0x30] adds r4, r4, r6 ldrh r0, [r4] bl sub_C24 ldr r5, _0803E584 @ =0x020314E0 ldr r1, [r5] adds r1, r1, r7 ldr r4, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x32 bl __divsi3 strh r0, [r4, #0x32] movs r0, #9 bl sub_11B0 _0803E560: ldr r2, _0803E58C @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 beq _0803E574 ldr r6, _0803E5CC @ =0x00001888 adds r1, r2, r6 movs r0, #0 strh r0, [r1] _0803E574: add sp, #0x1c pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803E584: .4byte 0x020314E0 _0803E588: .4byte 0x00000456 _0803E58C: .4byte 0x0200B0C0 _0803E590: .4byte 0x0000048C _0803E594: .4byte 0x000004C4 _0803E598: .4byte 0x0000046C _0803E59C: .4byte 0x00000474 _0803E5A0: .4byte 0x0000046E _0803E5A4: .4byte 0x00000472 _0803E5A8: .4byte 0x00000476 _0803E5AC: .4byte 0x0000047A _0803E5B0: .4byte 0x00001E10 _0803E5B4: .4byte 0x03005000 _0803E5B8: .4byte 0xFFFFFE00 _0803E5BC: .4byte 0x000001FF _0803E5C0: .4byte 0x0000132C _0803E5C4: .4byte 0x086AEE20 _0803E5C8: .4byte 0x00004E20 _0803E5CC: .4byte 0x00001888 thumb_func_start sub_3E5D0 sub_3E5D0: @ 0x0803E5D0 push {r4, r5, r6, r7, lr} ldr r6, _0803E634 @ =0x0200C948 ldrh r0, [r6] cmp r0, #0 beq _0803E62E movs r0, #0xf0 strh r0, [r6, #2] movs r0, #0xa0 strh r0, [r6, #4] movs r0, #0 ldr r7, _0803E638 @ =0x03005000 ldr r1, _0803E63C @ =0xFFFFFE00 mov ip, r1 _0803E5EA: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0803E640 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _0803E5EA _0803E62E: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803E634: .4byte 0x0200C948 _0803E638: .4byte 0x03005000 _0803E63C: .4byte 0xFFFFFE00 _0803E640: .4byte 0x000001FF thumb_func_start sub_3E644 sub_3E644: @ 0x0803E644 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _0803E760 @ =0x086AF3B2 ldr r6, _0803E764 @ =0x0200B0C0 ldr r5, [r6, #0x4c] adds r0, r5, #0 movs r1, #0x90 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 ldr r2, _0803E768 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] lsls r0, r1, #5 ldr r4, _0803E76C @ =0x08352BD8 adds r0, r0, r4 str r0, [r2] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2, #4] ldr r3, _0803E770 @ =0x80000010 str r3, [r2, #8] ldr r0, [r2, #8] adds r1, #4 lsls r1, r1, #5 adds r1, r1, r4 str r1, [r2] ldr r0, _0803E774 @ =0x05000080 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] ldr r4, _0803E778 @ =0x086AF3BE adds r0, r5, #0 movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 movs r3, #0 ldr r7, _0803E77C @ =0x03005000 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #3 mov r8, r0 ldr r2, _0803E780 @ =0x086AF3C6 mov sb, r2 ldr r0, _0803E784 @ =0xFFFFFC00 mov sl, r0 _0803E6B8: lsls r3, r3, #0x10 asrs r1, r3, #0x10 movs r0, #0xb8 muls r0, r1, r0 ldr r1, _0803E788 @ =0x0200BBA0 adds r6, r0, r1 ldr r2, _0803E78C @ =0x020314E0 ldr r1, [r2] adds r0, r1, #0 adds r0, #0x58 ldrh r2, [r0] movs r0, #0x78 subs r0, r0, r2 strh r0, [r6, #2] adds r1, #0x5a ldrh r1, [r1] movs r0, #0x80 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 mov ip, r3 _0803E6E2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r4, #8 adds r4, r6, r4 ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 movs r3, #2 ldrsh r1, [r4, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _0803E790 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _0803E794 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 lsls r0, r5, #1 add r0, sb ldrh r1, [r0] add r1, r8 ldr r3, _0803E798 @ =0x000003FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #4] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #4] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #2 ble _0803E6E2 movs r0, #0x80 lsls r0, r0, #9 add r0, ip lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0803E6B8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803E760: .4byte 0x086AF3B2 _0803E764: .4byte 0x0200B0C0 _0803E768: .4byte 0x040000D4 _0803E76C: .4byte 0x08352BD8 _0803E770: .4byte 0x80000010 _0803E774: .4byte 0x05000080 _0803E778: .4byte 0x086AF3BE _0803E77C: .4byte 0x03005000 _0803E780: .4byte 0x086AF3C6 _0803E784: .4byte 0xFFFFFC00 _0803E788: .4byte 0x0200BBA0 _0803E78C: .4byte 0x020314E0 _0803E790: .4byte 0x000001FF _0803E794: .4byte 0xFFFFFE00 _0803E798: .4byte 0x000003FF thumb_func_start sub_3E79C sub_3E79C: @ 0x0803E79C push {r4, r5, r6, r7, lr} ldr r0, _0803E7FC @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0xa bl __umodsi3 movs r4, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r4, r0 bge _0803E7C8 adds r5, r0, #0 _0803E7B4: bl sub_C00 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r5 blt _0803E7B4 _0803E7C8: ldr r4, _0803E800 @ =0x020314E0 ldr r1, [r4] movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] strb r2, [r1, #0x17] ldr r0, [r4] strb r2, [r0, #0x13] ldr r5, [r4] ldr r2, _0803E804 @ =0x00000283 adds r0, r5, r2 ldrb r0, [r0] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r6, r4, #0 cmp r0, #9 bne _0803E808 movs r3, #0xe1 lsls r3, r3, #2 adds r1, r5, r3 movs r0, #0x12 b _0803E810 .align 2, 0 _0803E7FC: .4byte 0x0200B0C0 _0803E800: .4byte 0x020314E0 _0803E804: .4byte 0x00000283 _0803E808: movs r4, #0xe1 lsls r4, r4, #2 adds r1, r5, r4 movs r0, #0xf _0803E810: strb r0, [r1] ldr r0, [r6] movs r5, #0xa5 lsls r5, r5, #2 adds r0, r0, r5 movs r3, #0 strb r3, [r0] ldr r1, [r6] adds r4, r1, #0 adds r4, #0x6c ldr r7, _0803EAB4 @ =0x00002A30 adds r0, r7, #0 ldrh r2, [r4] adds r0, r0, r2 adds r5, #2 adds r2, r1, r5 movs r5, #0 strh r0, [r2] strh r3, [r4] movs r7, #0xe2 lsls r7, r7, #2 adds r1, r1, r7 movs r4, #3 strb r4, [r1] ldr r0, [r6] ldr r2, _0803EAB8 @ =0x00000392 adds r1, r0, r2 strh r3, [r1] ldr r7, _0803EABC @ =0x0000132C adds r0, r0, r7 ldr r0, [r0] movs r2, #1 strb r2, [r0] ldr r0, [r6] movs r1, #0xe6 adds r1, r1, r0 mov ip, r1 ldr r1, _0803EAC0 @ =0x0000FFA8 mov r7, ip strh r1, [r7] ldr r1, _0803EAC4 @ =0x00000387 adds r0, r0, r1 strb r2, [r0] ldr r0, [r6] ldr r2, _0803EAC8 @ =0x000006C4 adds r0, r0, r2 strb r4, [r0] ldr r0, [r6] ldr r4, _0803EACC @ =0x00000382 adds r0, r0, r4 strb r5, [r0] ldr r0, [r6] ldr r7, _0803EAD0 @ =0x00000383 adds r0, r0, r7 strb r5, [r0] ldr r0, [r6] subs r1, #2 adds r0, r0, r1 strb r5, [r0] ldr r0, [r6] ldr r2, _0803EAD4 @ =0x00000386 adds r0, r0, r2 strb r5, [r0] ldr r0, [r6] adds r4, #7 adds r0, r0, r4 strb r5, [r0] ldr r0, [r6] ldr r5, _0803EAD8 @ =0x0000038A adds r1, r0, r5 strh r3, [r1] adds r7, #9 adds r1, r0, r7 strh r3, [r1] adds r2, #8 adds r1, r0, r2 strh r3, [r1] adds r4, #7 adds r1, r0, r4 strh r3, [r1] adds r5, #0xa adds r0, r0, r5 strh r3, [r0] movs r4, #0 mov ip, r6 adds r7, #0x38 adds r5, #0x32 _0803E8BE: mov r0, ip ldr r2, [r0] lsls r0, r4, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #2 adds r2, r2, r1 adds r1, r2, r7 strh r3, [r1] adds r2, r2, r5 strh r3, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _0803E8BE ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 strb r2, [r0] ldr r0, [r6] ldr r3, _0803EADC @ =0x000003DD adds r0, r0, r3 strb r2, [r0] ldr r0, [r6] ldr r4, _0803EAE0 @ =0x000003DE adds r0, r0, r4 strb r2, [r0] ldr r0, [r6] ldr r5, _0803EAE4 @ =0x000003DF adds r0, r0, r5 strb r2, [r0] ldr r0, [r6] movs r7, #0xf8 lsls r7, r7, #2 adds r0, r0, r7 strb r2, [r0] ldr r0, [r6] adds r3, #5 adds r1, r0, r3 movs r3, #0 strh r2, [r1] adds r4, #3 adds r0, r0, r4 strb r3, [r0] ldr r0, [r6] adds r5, #5 adds r1, r0, r5 strh r2, [r1] adds r7, #6 adds r1, r0, r7 strh r2, [r1] movs r3, #0xfa lsls r3, r3, #2 adds r1, r0, r3 strh r2, [r1] adds r4, #9 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #0x28 adds r1, r0, r5 strh r2, [r1] adds r7, #0x28 adds r1, r0, r7 strh r2, [r1] adds r3, #0x28 adds r1, r0, r3 strh r2, [r1] adds r4, #0x28 adds r1, r0, r4 strh r2, [r1] adds r5, #0x3e adds r0, r0, r5 strh r2, [r0] movs r4, #0 adds r7, r6, #0 movs r5, #0 _0803E974: ldr r0, [r7] lsls r2, r4, #0x10 asrs r2, r2, #0x10 ldr r1, _0803EAE8 @ =0x00000441 adds r0, r0, r1 adds r0, r0, r2 strb r5, [r0] ldr r0, [r7] ldr r3, _0803EAEC @ =0x00000443 adds r0, r0, r3 adds r0, r0, r2 strb r5, [r0] ldr r1, [r7] lsls r3, r2, #1 movs r4, #0x8b lsls r4, r4, #3 adds r0, r1, r4 adds r0, r0, r3 strh r5, [r0] lsls r0, r2, #2 adds r1, r1, r0 ldr r3, _0803EAF0 @ =0x0000045C adds r0, r1, r3 strh r5, [r0] adds r4, #6 adds r0, r1, r4 strh r5, [r0] adds r3, #8 adds r0, r1, r3 strh r5, [r0] adds r4, #8 adds r1, r1, r4 strh r5, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r4, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0803E974 ldr r0, [r6] movs r5, #0x99 lsls r5, r5, #3 adds r0, r0, r5 movs r2, #0 strb r2, [r0] ldr r0, [r6] ldr r7, _0803EAF4 @ =0x0000047F adds r0, r0, r7 strb r2, [r0] ldr r1, [r6] adds r3, #0x1c adds r0, r1, r3 movs r3, #0 strh r2, [r0] ldr r4, _0803EAF8 @ =0x00000486 adds r0, r1, r4 strh r2, [r0] adds r5, #0x3c adds r1, r1, r5 strb r3, [r1] ldr r0, [r6] adds r7, #0x86 adds r0, r0, r7 strb r3, [r0] ldr r0, [r6] ldr r1, _0803EAFC @ =0x00000506 adds r0, r0, r1 strb r3, [r0] ldr r0, [r6] adds r4, #0x81 adds r0, r0, r4 strb r3, [r0] ldr r0, [r6] adds r5, #4 adds r1, r0, r5 strh r2, [r1] adds r7, #5 adds r1, r0, r7 strh r2, [r1] ldr r3, _0803EB00 @ =0x0000050C adds r1, r0, r3 strh r2, [r1] adds r4, #7 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] adds r3, #8 adds r1, r0, r3 strh r2, [r1] adds r4, #8 adds r1, r0, r4 strh r2, [r1] adds r5, #8 adds r1, r0, r5 strh r2, [r1] adds r7, #8 adds r1, r0, r7 strh r2, [r1] movs r1, #1 strb r1, [r0, #0x1a] bl sub_423D8 ldr r4, _0803EB04 @ =0x040000D4 ldr r0, _0803EB08 @ =0x083C5A2C str r0, [r4] ldr r0, _0803EB0C @ =0x06015800 str r0, [r4, #4] ldr r0, _0803EB10 @ =0x80001400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0803EB14 @ =0x084AA18C str r0, [r4] ldr r0, _0803EB18 @ =0x06011620 str r0, [r4, #4] ldr r0, _0803EB1C @ =0x80000430 str r0, [r4, #8] ldr r0, [r4, #8] bl sub_3EDF0 bl sub_3FAE0 ldr r0, _0803EB20 @ =0x081B36A4 str r0, [r4] ldr r0, _0803EB24 @ =0x05000320 str r0, [r4, #4] ldr r0, _0803EB28 @ =0x80000010 str r0, [r4, #8] ldr r0, [r4, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803EAB4: .4byte 0x00002A30 _0803EAB8: .4byte 0x00000392 _0803EABC: .4byte 0x0000132C _0803EAC0: .4byte 0x0000FFA8 _0803EAC4: .4byte 0x00000387 _0803EAC8: .4byte 0x000006C4 _0803EACC: .4byte 0x00000382 _0803EAD0: .4byte 0x00000383 _0803EAD4: .4byte 0x00000386 _0803EAD8: .4byte 0x0000038A _0803EADC: .4byte 0x000003DD _0803EAE0: .4byte 0x000003DE _0803EAE4: .4byte 0x000003DF _0803EAE8: .4byte 0x00000441 _0803EAEC: .4byte 0x00000443 _0803EAF0: .4byte 0x0000045C _0803EAF4: .4byte 0x0000047F _0803EAF8: .4byte 0x00000486 _0803EAFC: .4byte 0x00000506 _0803EB00: .4byte 0x0000050C _0803EB04: .4byte 0x040000D4 _0803EB08: .4byte 0x083C5A2C _0803EB0C: .4byte 0x06015800 _0803EB10: .4byte 0x80001400 _0803EB14: .4byte 0x084AA18C _0803EB18: .4byte 0x06011620 _0803EB1C: .4byte 0x80000430 _0803EB20: .4byte 0x081B36A4 _0803EB24: .4byte 0x05000320 _0803EB28: .4byte 0x80000010 thumb_func_start sub_3EB2C sub_3EB2C: @ 0x0803EB2C push {r4, r5, lr} ldr r0, _0803EB48 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bls _0803EB3E b _0803ED6C _0803EB3E: lsls r0, r0, #2 ldr r1, _0803EB4C @ =_0803EB50 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803EB48: .4byte 0x020314E0 _0803EB4C: .4byte _0803EB50 _0803EB50: @ jump table .4byte _0803EB6C @ case 0 .4byte _0803ED6C @ case 1 .4byte _0803EBA4 @ case 2 .4byte _0803EC0C @ case 3 .4byte _0803EC8C @ case 4 .4byte _0803ECE8 @ case 5 .4byte _0803ED54 @ case 6 _0803EB6C: ldr r3, _0803EB98 @ =0x020314E0 ldr r0, [r3] ldr r1, _0803EB9C @ =0x000005F7 adds r0, r0, r1 movs r4, #0 movs r1, #1 strb r1, [r0] ldr r1, [r3] ldr r2, _0803EBA0 @ =0x00000506 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 beq _0803EB8A b _0803ED6C _0803EB8A: adds r0, r1, #0 adds r0, #0xe6 strh r4, [r0] strb r2, [r1, #0x13] ldr r0, [r3] strh r4, [r0, #0x18] b _0803ED6C .align 2, 0 _0803EB98: .4byte 0x020314E0 _0803EB9C: .4byte 0x000005F7 _0803EBA0: .4byte 0x00000506 _0803EBA4: ldr r2, _0803EBF0 @ =0x020314E0 ldr r1, [r2] movs r3, #0 movs r0, #3 strb r0, [r1, #0x13] ldr r2, [r2] strh r3, [r2, #0x18] ldr r3, _0803EBF4 @ =0x0200B0C0 movs r4, #0xe9 lsls r4, r4, #3 adds r0, r3, r4 movs r4, #1 movs r1, #1 strh r1, [r0] movs r5, #0xd2 lsls r5, r5, #3 adds r0, r3, r5 strh r1, [r0] ldr r1, _0803EBF8 @ =0x040000D4 ldr r0, _0803EBFC @ =0x081408B4 str r0, [r1] ldr r0, _0803EC00 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803EC04 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xe5 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x88 strh r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] ldr r1, _0803EC08 @ =0x000005FA adds r2, r2, r1 strb r4, [r2] b _0803ED6C .align 2, 0 _0803EBF0: .4byte 0x020314E0 _0803EBF4: .4byte 0x0200B0C0 _0803EBF8: .4byte 0x040000D4 _0803EBFC: .4byte 0x081408B4 _0803EC00: .4byte 0x06015800 _0803EC04: .4byte 0x80001000 _0803EC08: .4byte 0x000005FA _0803EC0C: bl sub_351A8 ldr r4, _0803EC54 @ =0x020314E0 ldr r1, [r4] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803EC1E movs r0, #0xb5 strh r0, [r1, #0x18] _0803EC1E: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803EC34 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r4] ldr r0, _0803EC58 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803EC5C @ =0x05F5E0FF str r0, [r1, #0x3c] _0803EC34: ldr r1, [r4] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803EC60 cmp r0, #0x14 bne _0803EC4A bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _0803EC4A: ldr r1, [r4] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _0803EC74 .align 2, 0 _0803EC54: .4byte 0x020314E0 _0803EC58: .4byte 0x00061A80 _0803EC5C: .4byte 0x05F5E0FF _0803EC60: movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r4] ldr r2, _0803EC80 @ =0x00000283 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] _0803EC74: ldr r0, _0803EC84 @ =0x020314E0 ldr r0, [r0] ldr r4, _0803EC88 @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _0803ED6A .align 2, 0 _0803EC80: .4byte 0x00000283 _0803EC84: .4byte 0x020314E0 _0803EC88: .4byte 0x000005FA _0803EC8C: ldr r2, _0803ECD0 @ =0x020314E0 ldr r1, [r2] movs r0, #5 strb r0, [r1, #0x13] ldr r2, [r2] movs r0, #0x8c strh r0, [r2, #0x18] ldr r3, _0803ECD4 @ =0x0200B0C0 movs r5, #0xe9 lsls r5, r5, #3 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xd2 lsls r4, r4, #3 adds r0, r3, r4 strh r1, [r0] ldr r1, _0803ECD8 @ =0x040000D4 ldr r0, _0803ECDC @ =0x081408B4 str r0, [r1] ldr r0, _0803ECE0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803ECE4 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] movs r5, #0xe5 lsls r5, r5, #2 adds r2, r2, r5 movs r0, #0x88 strh r0, [r2] movs r0, #0x80 strb r0, [r3, #0xf] b _0803ED6C .align 2, 0 _0803ECD0: .4byte 0x020314E0 _0803ECD4: .4byte 0x0200B0C0 _0803ECD8: .4byte 0x040000D4 _0803ECDC: .4byte 0x081408B4 _0803ECE0: .4byte 0x06015800 _0803ECE4: .4byte 0x80001000 _0803ECE8: bl sub_351A8 ldr r3, _0803ED20 @ =0x020314E0 ldr r1, [r3] ldrb r0, [r1, #0x1c] cmp r0, #0 beq _0803ECFA movs r0, #0xb5 strh r0, [r1, #0x18] _0803ECFA: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0xb4 bne _0803ED10 movs r0, #1 strb r0, [r1, #0x1c] ldr r1, [r3] ldr r0, _0803ED24 @ =0x00061A80 str r0, [r1, #0x38] ldr r0, _0803ED28 @ =0x05F5E0FF str r0, [r1, #0x3c] _0803ED10: ldr r1, [r3] ldrh r0, [r1, #0x18] cmp r0, #0xef bhi _0803ED2C adds r0, #1 strh r0, [r1, #0x18] b _0803ED6C .align 2, 0 _0803ED20: .4byte 0x020314E0 _0803ED24: .4byte 0x00061A80 _0803ED28: .4byte 0x05F5E0FF _0803ED2C: movs r2, #0 movs r0, #0 strh r0, [r1, #0x18] movs r0, #6 strb r0, [r1, #0x13] ldr r1, [r3] ldr r0, _0803ED4C @ =0x00000283 adds r1, r1, r0 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r3] ldr r1, _0803ED50 @ =0x000001AF adds r0, r0, r1 strb r2, [r0] b _0803ED6C .align 2, 0 _0803ED4C: .4byte 0x00000283 _0803ED50: .4byte 0x000001AF _0803ED54: bl sub_351A8 ldr r2, _0803EDDC @ =0x020314E0 ldr r0, [r2] ldr r4, _0803EDE0 @ =0x00000386 adds r0, r0, r4 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r5, _0803EDE4 @ =0x000005FA adds r0, r0, r5 _0803ED6A: strb r1, [r0] _0803ED6C: bl sub_423D8 bl sub_40288 bl sub_3EDF0 bl sub_3FAE0 ldr r0, _0803EDDC @ =0x020314E0 ldr r1, [r0] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803EDB4 ldr r4, _0803EDE8 @ =0x00000296 adds r0, r1, r4 ldrh r0, [r0] cmp r0, #1 bhi _0803EDB4 ldr r4, _0803EDEC @ =0x0200B0C0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _0803EDB4 bl m4aMPlayAllStop movs r0, #0x2c bl m4aSongNumStart ldrb r1, [r4, #0xf] movs r0, #0x40 orrs r0, r1 strb r0, [r4, #0xf] _0803EDB4: ldr r0, _0803EDDC @ =0x020314E0 ldr r1, [r0] ldr r5, _0803EDE0 @ =0x00000386 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0803EDD2 ldr r0, _0803EDE4 @ =0x000005FA adds r1, r1, r0 movs r0, #1 strb r0, [r1] bl sub_350F0 _0803EDD2: bl sub_472E4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0803EDDC: .4byte 0x020314E0 _0803EDE0: .4byte 0x00000386 _0803EDE4: .4byte 0x000005FA _0803EDE8: .4byte 0x00000296 _0803EDEC: .4byte 0x0200B0C0 thumb_func_start sub_3EDF0 sub_3EDF0: @ 0x0803EDF0 push {r4, r5, r6, r7, lr} ldr r0, _0803EE9C @ =0x020314E0 ldr r1, [r0] ldr r2, _0803EEA0 @ =0x00000452 adds r5, r1, r2 ldrh r4, [r5] adds r6, r0, #0 cmp r4, #0 beq _0803EE80 subs r0, r4, #1 strh r0, [r5] ldr r3, _0803EEA4 @ =0x00000389 adds r1, r1, r3 movs r0, #1 strb r0, [r1] ldr r0, [r6] adds r0, r0, r2 ldrh r0, [r0] cmp r0, #5 bne _0803EE60 movs r0, #0x93 lsls r0, r0, #1 bl m4aSongNumStart ldr r1, [r6] ldr r0, _0803EEA8 @ =0x000F4240 str r0, [r1, #0x3c] ldr r4, _0803EEAC @ =0x00000385 adds r1, r1, r4 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #7 bl sub_11B0 ldr r2, [r6] adds r4, r2, r4 movs r5, #0xe1 lsls r5, r5, #2 adds r0, r2, r5 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 blt _0803EE60 movs r7, #0xf7 lsls r7, r7, #2 adds r1, r2, r7 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 beq _0803EE60 movs r0, #9 strb r0, [r1] _0803EE60: ldr r2, _0803EE9C @ =0x020314E0 ldr r5, [r2] ldr r0, _0803EEB0 @ =0x0000050C adds r1, r5, r0 movs r0, #0x14 strh r0, [r1] ldr r1, _0803EEA0 @ =0x00000452 adds r0, r5, r1 ldrh r0, [r0] adds r6, r2, #0 cmp r0, #0 bne _0803EE80 ldr r2, _0803EEA4 @ =0x00000389 adds r1, r5, r2 movs r0, #0 strb r0, [r1] _0803EE80: ldr r2, [r6] ldr r4, _0803EEB0 @ =0x0000050C adds r3, r2, r4 ldrh r0, [r3] cmp r0, #0 beq _0803EEB8 subs r0, #1 movs r1, #0 strh r0, [r3] ldr r5, _0803EEB4 @ =0x00000387 adds r0, r2, r5 strb r1, [r0] b _0803EEC0 .align 2, 0 _0803EE9C: .4byte 0x020314E0 _0803EEA0: .4byte 0x00000452 _0803EEA4: .4byte 0x00000389 _0803EEA8: .4byte 0x000F4240 _0803EEAC: .4byte 0x00000385 _0803EEB0: .4byte 0x0000050C _0803EEB4: .4byte 0x00000387 _0803EEB8: ldr r7, _0803EEE0 @ =0x00000387 adds r1, r2, r7 movs r0, #1 strb r0, [r1] _0803EEC0: ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bls _0803EED6 bl _0803FA78 _0803EED6: lsls r0, r0, #2 ldr r1, _0803EEE4 @ =_0803EEE8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803EEE0: .4byte 0x00000387 _0803EEE4: .4byte _0803EEE8 _0803EEE8: @ jump table .4byte _0803EF28 @ case 0 .4byte _0803EF84 @ case 1 .4byte _0803F00C @ case 2 .4byte _0803F0A4 @ case 3 .4byte _0803F154 @ case 4 .4byte _0803F210 @ case 5 .4byte _0803F334 @ case 6 .4byte _0803F460 @ case 7 .4byte _0803F550 @ case 8 .4byte _0803F68C @ case 9 .4byte _0803F788 @ case 10 .4byte _0803F814 @ case 11 .4byte _0803F8DC @ case 12 .4byte _0803F9D0 @ case 13 .4byte _0803FA2E @ case 14 .4byte _0803FA78 @ case 15 _0803EF28: ldr r3, _0803EF74 @ =0x020314E0 ldr r1, [r3] movs r4, #0xfa lsls r4, r4, #2 adds r2, r1, r4 movs r5, #0 movs r4, #0 ldr r0, _0803EF78 @ =0x00000474 strh r0, [r2] ldr r7, _0803EF7C @ =0x000003EA adds r2, r1, r7 movs r0, #0x96 lsls r0, r0, #4 strh r0, [r2] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #1 strb r0, [r1] ldr r1, [r3] subs r7, #8 adds r2, r1, r7 movs r0, #0xd strh r0, [r2] movs r2, #0xf9 lsls r2, r2, #2 adds r0, r1, r2 strh r4, [r0] subs r7, #1 adds r1, r1, r7 strb r5, [r1] ldr r0, [r3] ldr r1, _0803EF80 @ =0x0000051A adds r0, r0, r1 strh r4, [r0] bl _0803FA78 .align 2, 0 _0803EF74: .4byte 0x020314E0 _0803EF78: .4byte 0x00000474 _0803EF7C: .4byte 0x000003EA _0803EF80: .4byte 0x0000051A _0803EF84: ldr r2, [r6] ldr r7, _0803EFF4 @ =0x00000516 adds r0, r2, r7 ldrh r1, [r0] ldr r0, _0803EFF8 @ =0x00000212 cmp r1, r0 bls _0803EFD2 ldr r3, _0803EFFC @ =0x000003EA adds r2, r2, r3 ldrh r5, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803F000 @ =0xFFFFFB50 cmp r1, r0 ble _0803EFA8 adds r0, r5, #0 subs r0, #0x46 strh r0, [r2] _0803EFA8: ldr r2, [r6] adds r0, r2, r7 ldrh r1, [r0] movs r0, #0xa8 lsls r0, r0, #2 cmp r1, r0 bne _0803EFD2 movs r5, #0xf7 lsls r5, r5, #2 adds r1, r2, r5 movs r2, #0 movs r0, #2 strb r0, [r1] ldr r0, [r6] movs r7, #0xfa lsls r7, r7, #2 adds r1, r0, r7 strh r2, [r1] adds r0, r0, r3 ldr r1, _0803F004 @ =0x0000FD80 strh r1, [r0] _0803EFD2: ldr r0, _0803F008 @ =0x020314E0 ldr r2, [r0] ldr r1, _0803EFF4 @ =0x00000516 adds r0, r2, r1 ldrh r1, [r0] ldr r0, _0803EFF8 @ =0x00000212 cmp r1, r0 beq _0803EFE6 bl _0803FA78 _0803EFE6: movs r3, #0xe4 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #0x19 strh r0, [r1] bl _0803FA78 .align 2, 0 _0803EFF4: .4byte 0x00000516 _0803EFF8: .4byte 0x00000212 _0803EFFC: .4byte 0x000003EA _0803F000: .4byte 0xFFFFFB50 _0803F004: .4byte 0x0000FD80 _0803F008: .4byte 0x020314E0 _0803F00C: ldr r2, _0803F038 @ =0x086AF3CC ldr r3, [r6] ldr r4, _0803F03C @ =0x000003E2 adds r5, r3, r4 movs r7, #0 ldrsh r1, [r5, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r3, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F040 adds r0, r2, #1 strh r0, [r1] b _0803F056 .align 2, 0 _0803F038: .4byte 0x086AF3CC _0803F03C: .4byte 0x000003E2 _0803F040: movs r0, #0 strh r0, [r1] ldrh r0, [r5] adds r0, #1 strh r0, [r5] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x3f bne _0803F056 movs r0, #0xd strh r0, [r5] _0803F056: ldr r0, _0803F09C @ =0x020314E0 ldr r0, [r0] ldr r3, _0803F0A0 @ =0x000003EA adds r1, r0, r3 ldrh r2, [r1] movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 bge _0803F07E adds r0, r2, #0 adds r0, #0x12 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 ble _0803F07E movs r0, #0 strh r0, [r1] movs r0, #0x2a bl m4aSongNumStart _0803F07E: ldr r3, _0803F09C @ =0x020314E0 ldr r1, [r3] ldr r5, _0803F0A0 @ =0x000003EA adds r0, r1, r5 movs r7, #0 ldrsh r2, [r0, r7] cmp r2, #0 beq _0803F092 bl _0803FA78 _0803F092: movs r0, #0xf7 lsls r0, r0, #2 adds r1, r1, r0 b _0803F128 .align 2, 0 _0803F09C: .4byte 0x020314E0 _0803F0A0: .4byte 0x000003EA _0803F0A4: ldr r2, _0803F0D0 @ =0x086AF3CC ldr r3, [r6] ldr r5, _0803F0D4 @ =0x000003E2 adds r4, r3, r5 movs r7, #0 ldrsh r1, [r4, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _0803F0D8 adds r0, r1, #1 strh r0, [r3] b _0803F0EE .align 2, 0 _0803F0D0: .4byte 0x086AF3CC _0803F0D4: .4byte 0x000003E2 _0803F0D8: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x3f bne _0803F0EE movs r0, #0xd strh r0, [r4] _0803F0EE: ldr r0, [r6] ldr r2, _0803F144 @ =0x000003EA adds r1, r0, r2 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 bge _0803F10E adds r0, r2, #0 adds r0, #0x12 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 ble _0803F10E movs r0, #0 strh r0, [r1] _0803F10E: ldr r3, _0803F148 @ =0x020314E0 ldr r1, [r3] ldr r4, _0803F144 @ =0x000003EA adds r0, r1, r4 movs r5, #0 ldrsh r2, [r0, r5] cmp r2, #0 beq _0803F122 bl _0803FA78 _0803F122: movs r7, #0xf7 lsls r7, r7, #2 adds r1, r1, r7 _0803F128: movs r0, #5 strb r0, [r1] ldr r0, [r3] ldr r1, _0803F14C @ =0x000003E1 adds r0, r0, r1 strb r2, [r0] ldr r0, [r3] ldr r2, _0803F150 @ =0x000003DD adds r0, r0, r2 movs r1, #6 strb r1, [r0] bl _0803FA78 .align 2, 0 _0803F144: .4byte 0x000003EA _0803F148: .4byte 0x020314E0 _0803F14C: .4byte 0x000003E1 _0803F150: .4byte 0x000003DD _0803F154: ldr r2, _0803F180 @ =0x086AF3CC ldr r3, [r6] ldr r5, _0803F184 @ =0x000003E2 adds r4, r3, r5 movs r7, #0 ldrsh r1, [r4, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _0803F188 adds r0, r1, #1 strh r0, [r3] b _0803F19E .align 2, 0 _0803F180: .4byte 0x086AF3CC _0803F184: .4byte 0x000003E2 _0803F188: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _0803F19E movs r0, #0x21 strh r0, [r4] _0803F19E: ldr r1, [r6] ldr r2, _0803F200 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 bne _0803F1D0 ldr r4, _0803F204 @ =0x000003EA adds r1, r1, r4 ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] ldr r3, _0803F208 @ =0xFFFFFD00 cmp r0, r3 ble _0803F1D0 adds r0, r2, #0 subs r0, #0x18 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r3 bge _0803F1D0 movs r0, #0xfd lsls r0, r0, #8 strh r0, [r1] _0803F1D0: ldr r4, _0803F20C @ =0x020314E0 ldr r3, [r4] ldr r7, _0803F204 @ =0x000003EA adds r0, r3, r7 movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0803F208 @ =0xFFFFFD00 cmp r1, r0 beq _0803F1E6 bl _0803FA78 _0803F1E6: ldr r5, _0803F200 @ =0x000003E2 adds r0, r3, r5 movs r2, #0 movs r1, #0 strh r1, [r0] subs r7, #6 adds r0, r3, r7 strh r1, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r3, r0 movs r0, #7 b _0803F8BC .align 2, 0 _0803F200: .4byte 0x000003E2 _0803F204: .4byte 0x000003EA _0803F208: .4byte 0xFFFFFD00 _0803F20C: .4byte 0x020314E0 _0803F210: ldr r2, _0803F23C @ =0x086AF3CC ldr r5, [r6] ldr r4, _0803F240 @ =0x000003E2 adds r3, r5, r4 movs r7, #0 ldrsh r1, [r3, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r5, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F244 adds r0, r2, #1 strh r0, [r1] b _0803F2DC .align 2, 0 _0803F23C: .4byte 0x086AF3CC _0803F240: .4byte 0x000003E2 _0803F244: movs r4, #0 mov ip, r4 movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x3f bne _0803F2DC ldr r4, _0803F274 @ =0x000003E1 adds r1, r5, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bgt _0803F278 movs r0, #0xd strh r0, [r3] ldrb r0, [r1] adds r0, #1 strb r0, [r1] b _0803F2DC .align 2, 0 _0803F274: .4byte 0x000003E1 _0803F278: ldr r7, _0803F2A8 @ =0x000003DD adds r0, r5, r7 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #6 bne _0803F2C6 ldr r1, _0803F2AC @ =0x00000385 adds r0, r5, r1 movs r1, #0 ldrsb r1, [r0, r1] subs r7, #0x59 adds r0, r5, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #1 cmp r1, r0 blt _0803F2B0 movs r0, #0xd strh r0, [r3] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r5, r0 b _0803F2D0 .align 2, 0 _0803F2A8: .4byte 0x000003DD _0803F2AC: .4byte 0x00000385 _0803F2B0: movs r0, #0x62 strh r0, [r3] movs r3, #0xf7 lsls r3, r3, #2 adds r0, r5, r3 strb r2, [r0] ldr r0, [r6] adds r0, r0, r4 mov r4, ip strb r4, [r0] b _0803F2DC _0803F2C6: movs r0, #0xd strh r0, [r3] movs r7, #0xf7 lsls r7, r7, #2 adds r1, r5, r7 _0803F2D0: movs r0, #4 strb r0, [r1] ldr r0, [r6] adds r0, r0, r4 mov r1, ip strb r1, [r0] _0803F2DC: ldr r4, _0803F324 @ =0x020314E0 ldr r1, [r4] ldr r2, _0803F328 @ =0x000003E1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _0803F2F0 b _0803FA78 _0803F2F0: ldr r3, _0803F32C @ =0x00000512 adds r1, r1, r3 ldrh r0, [r1] adds r0, #0x80 strh r0, [r1] ldrh r0, [r1] bl sub_C24 adds r1, r0, #0 ldr r4, [r4] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #5 subs r0, r0, r1 lsls r0, r0, #1 ldr r1, _0803F330 @ =0x00004E20 bl __divsi3 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r5, #0xfa lsls r5, r5, #2 adds r4, r4, r5 strh r1, [r4] b _0803FA78 .align 2, 0 _0803F324: .4byte 0x020314E0 _0803F328: .4byte 0x000003E1 _0803F32C: .4byte 0x00000512 _0803F330: .4byte 0x00004E20 _0803F334: ldr r0, [r6] ldr r7, _0803F438 @ =0x00000389 adds r0, r0, r7 movs r1, #2 strb r1, [r0] ldr r2, _0803F43C @ =0x086AF3CC ldr r4, [r6] ldr r5, _0803F440 @ =0x000003E2 adds r3, r4, r5 movs r0, #0 ldrsh r1, [r3, r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F364 b _0803F7AE _0803F364: movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x74 bne _0803F390 ldr r3, _0803F444 @ =0x000003E1 adds r1, r4, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe bgt _0803F390 adds r0, r2, #1 strb r0, [r1] ldr r0, [r6] adds r0, r0, r5 movs r1, #0x72 strh r1, [r0] _0803F390: ldr r3, [r6] ldr r5, _0803F440 @ =0x000003E2 adds r1, r3, r5 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0x83 bne _0803F3C8 movs r2, #0 movs r0, #0x1d strh r0, [r1] ldr r7, _0803F444 @ =0x000003E1 adds r0, r3, r7 strb r2, [r0] ldr r0, [r6] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #5 strb r1, [r0] ldr r0, [r6] ldr r3, _0803F448 @ =0x000003DD adds r0, r0, r3 movs r1, #4 strb r1, [r0] ldr r0, [r6] ldr r4, _0803F438 @ =0x00000389 adds r0, r0, r4 strb r2, [r0] _0803F3C8: ldr r4, [r6] adds r0, r4, r5 movs r5, #0 ldrsh r0, [r0, r5] cmp r0, #0x72 bne _0803F404 ldr r7, _0803F444 @ =0x000003E1 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0803F404 ldr r2, _0803F44C @ =0x0200B0C0 movs r1, #0xf3 lsls r1, r1, #4 adds r0, r2, r1 movs r3, #1 movs r1, #1 strh r1, [r0] ldr r5, _0803F450 @ =0x00000FE8 adds r0, r2, r5 strh r1, [r0] movs r7, #0x85 lsls r7, r7, #5 adds r2, r2, r7 strh r1, [r2] ldr r1, _0803F454 @ =0x00000507 adds r0, r4, r1 strb r3, [r0] _0803F404: ldr r3, _0803F458 @ =0x020314E0 ldr r1, [r3] ldr r2, _0803F440 @ =0x000003E2 adds r0, r1, r2 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x78 bne _0803F41E movs r5, #0xe4 lsls r5, r5, #2 adds r1, r1, r5 movs r0, #0x15 strh r0, [r1] _0803F41E: ldr r1, [r3] adds r0, r1, r2 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0x7c beq _0803F42C b _0803FA78 _0803F42C: ldr r0, _0803F45C @ =0x0000050A adds r1, r1, r0 movs r0, #0x10 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F438: .4byte 0x00000389 _0803F43C: .4byte 0x086AF3CC _0803F440: .4byte 0x000003E2 _0803F444: .4byte 0x000003E1 _0803F448: .4byte 0x000003DD _0803F44C: .4byte 0x0200B0C0 _0803F450: .4byte 0x00000FE8 _0803F454: .4byte 0x00000507 _0803F458: .4byte 0x020314E0 _0803F45C: .4byte 0x0000050A _0803F460: ldr r2, [r6] movs r3, #0xf9 lsls r3, r3, #2 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #0x77 bhi _0803F470 b _0803F9EA _0803F470: movs r4, #0xf7 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #8 strb r0, [r1] ldr r1, _0803F4B0 @ =0x040000D4 ldr r0, _0803F4B4 @ =0x084A856C str r0, [r1] ldr r0, _0803F4B8 @ =0x06015800 str r0, [r1, #4] ldr r0, _0803F4BC @ =0x80000E00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r6] ldr r5, _0803F4C0 @ =0x00000504 adds r0, r0, r5 ldrb r1, [r0] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0803F4D4 ldr r0, _0803F4C4 @ =0x0200B0C0 ldr r7, _0803F4C8 @ =0x000012C8 adds r1, r0, r7 strh r2, [r1] ldr r3, _0803F4CC @ =0x00001438 adds r1, r0, r3 strh r2, [r1] ldr r4, _0803F4D0 @ =0x000014F0 adds r0, r0, r4 b _0803F4EA .align 2, 0 _0803F4B0: .4byte 0x040000D4 _0803F4B4: .4byte 0x084A856C _0803F4B8: .4byte 0x06015800 _0803F4BC: .4byte 0x80000E00 _0803F4C0: .4byte 0x00000504 _0803F4C4: .4byte 0x0200B0C0 _0803F4C8: .4byte 0x000012C8 _0803F4CC: .4byte 0x00001438 _0803F4D0: .4byte 0x000014F0 _0803F4D4: ldr r0, _0803F530 @ =0x0200B0C0 movs r5, #0x9c lsls r5, r5, #5 adds r1, r0, r5 strh r2, [r1] ldr r7, _0803F534 @ =0x00001888 adds r1, r0, r7 strh r2, [r1] movs r1, #0xca lsls r1, r1, #5 adds r0, r0, r1 _0803F4EA: strh r2, [r0] ldr r3, _0803F538 @ =0x020314E0 ldr r1, [r3] ldr r2, _0803F53C @ =0x00000504 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 movs r2, #0 strb r0, [r1] ldr r0, [r3] ldr r3, _0803F540 @ =0x00000524 adds r1, r0, r3 strh r2, [r1] ldr r4, _0803F544 @ =0x00000526 adds r1, r0, r4 strh r2, [r1] movs r5, #0xa5 lsls r5, r5, #3 adds r1, r0, r5 strh r2, [r1] ldr r7, _0803F548 @ =0x0000052A adds r1, r0, r7 strh r2, [r1] subs r3, #0x10 adds r1, r0, r3 strh r2, [r1] movs r4, #0xf9 lsls r4, r4, #2 adds r0, r0, r4 strh r2, [r0] ldr r0, _0803F54C @ =0x00000127 bl m4aSongNumStart b _0803FA78 .align 2, 0 _0803F530: .4byte 0x0200B0C0 _0803F534: .4byte 0x00001888 _0803F538: .4byte 0x020314E0 _0803F53C: .4byte 0x00000504 _0803F540: .4byte 0x00000524 _0803F544: .4byte 0x00000526 _0803F548: .4byte 0x0000052A _0803F54C: .4byte 0x00000127 _0803F550: ldr r7, _0803F578 @ =0x0200B0C0 ldr r0, _0803F57C @ =0x000012C8 adds r5, r7, r0 ldrh r4, [r5] cmp r4, #0 beq _0803F5CC ldr r0, [r6] ldr r1, _0803F580 @ =0x00000524 adds r2, r0, r1 ldrh r3, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803F584 @ =0x000012BF cmp r1, r0 bgt _0803F588 adds r0, r3, #0 adds r0, #0x8c strh r0, [r2] b _0803F58C .align 2, 0 _0803F578: .4byte 0x0200B0C0 _0803F57C: .4byte 0x000012C8 _0803F580: .4byte 0x00000524 _0803F584: .4byte 0x000012BF _0803F588: movs r0, #0 strh r0, [r5] _0803F58C: ldr r2, [r6] ldr r5, _0803F5C0 @ =0x00000524 adds r0, r2, r5 movs r7, #0 ldrsh r1, [r0, r7] movs r0, #0x96 lsls r0, r0, #4 cmp r1, r0 ble _0803F62C movs r0, #0xa5 lsls r0, r0, #3 adds r2, r2, r0 ldrh r3, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803F5C4 @ =0x0000135F cmp r1, r0 bgt _0803F5B6 adds r0, r3, #0 adds r0, #0xc8 strh r0, [r2] _0803F5B6: ldr r1, [r6] ldr r5, _0803F5C8 @ =0x00000514 adds r1, r1, r5 b _0803F626 .align 2, 0 _0803F5C0: .4byte 0x00000524 _0803F5C4: .4byte 0x0000135F _0803F5C8: .4byte 0x00000514 _0803F5CC: ldr r0, [r6] ldr r1, _0803F5E8 @ =0x00000524 adds r2, r0, r1 ldrh r3, [r2] movs r5, #0 ldrsh r1, [r2, r5] ldr r0, _0803F5EC @ =0xFFFFED40 cmp r1, r0 ble _0803F5F0 adds r0, r3, #0 subs r0, #0x8c strh r0, [r2] b _0803F5F8 .align 2, 0 _0803F5E8: .4byte 0x00000524 _0803F5EC: .4byte 0xFFFFED40 _0803F5F0: movs r1, #0x9c lsls r1, r1, #5 adds r0, r7, r1 strh r4, [r0] _0803F5F8: ldr r2, [r6] ldr r3, _0803F674 @ =0x00000524 adds r0, r2, r3 movs r4, #0 ldrsh r1, [r0, r4] ldr r0, _0803F678 @ =0xFFFFF6A0 cmp r1, r0 bge _0803F62C movs r5, #0xa5 lsls r5, r5, #3 adds r2, r2, r5 ldrh r3, [r2] movs r7, #0 ldrsh r1, [r2, r7] ldr r0, _0803F67C @ =0xFFFFECA0 cmp r1, r0 ble _0803F620 adds r0, r3, #0 subs r0, #0xc8 strh r0, [r2] _0803F620: ldr r1, [r6] ldr r0, _0803F680 @ =0x00000514 adds r1, r1, r0 _0803F626: ldrh r0, [r1] adds r0, #1 strh r0, [r1] _0803F62C: ldr r2, _0803F684 @ =0x020314E0 ldr r1, [r2] movs r3, #0xf9 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] cmp r0, #0x14 bne _0803F646 movs r4, #0x99 lsls r4, r4, #3 adds r1, r1, r4 movs r0, #0x3c strb r0, [r1] _0803F646: ldr r2, [r2] adds r1, r2, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc7 bhi _0803F65A b _0803FA78 _0803F65A: movs r0, #0 strh r0, [r1] ldr r5, _0803F688 @ =0x000003E2 adds r1, r2, r5 movs r0, #0xd strh r0, [r1] movs r7, #0xf7 lsls r7, r7, #2 adds r1, r2, r7 movs r0, #3 strb r0, [r1] b _0803FA78 .align 2, 0 _0803F674: .4byte 0x00000524 _0803F678: .4byte 0xFFFFF6A0 _0803F67C: .4byte 0xFFFFECA0 _0803F680: .4byte 0x00000514 _0803F684: .4byte 0x020314E0 _0803F688: .4byte 0x000003E2 _0803F68C: ldr r0, [r6] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r5, #0 movs r1, #3 strb r1, [r0] ldr r4, [r6] ldr r2, _0803F704 @ =0x00000283 adds r0, r4, r2 ldrb r0, [r0] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #9 bne _0803F720 movs r3, #0xf7 lsls r3, r3, #2 adds r1, r4, r3 movs r0, #0xe strb r0, [r1] ldr r0, [r6] ldr r4, _0803F708 @ =0x000003E2 adds r0, r0, r4 movs r4, #0 strh r5, [r0] ldr r3, _0803F70C @ =0x0200B0C0 ldr r7, _0803F710 @ =0x00000A28 adds r0, r3, r7 movs r1, #1 strh r1, [r0] movs r2, #0x97 lsls r2, r2, #4 adds r0, r3, r2 strh r1, [r0] ldr r1, [r6] movs r7, #0xb3 lsls r7, r7, #3 adds r2, r1, r7 movs r0, #0xc7 strh r0, [r2] ldr r2, _0803F714 @ =0x0000038E adds r0, r1, r2 strh r5, [r0] adds r7, #0x10 adds r1, r1, r7 strb r4, [r1] ldr r0, [r6] ldr r2, _0803F718 @ =0x000005A6 adds r1, r0, r2 strh r5, [r1] ldr r4, _0803F71C @ =0x000005A4 adds r0, r0, r4 movs r1, #2 strb r1, [r0] adds r2, r3, #0 b _0803F74C .align 2, 0 _0803F704: .4byte 0x00000283 _0803F708: .4byte 0x000003E2 _0803F70C: .4byte 0x0200B0C0 _0803F710: .4byte 0x00000A28 _0803F714: .4byte 0x0000038E _0803F718: .4byte 0x000005A6 _0803F71C: .4byte 0x000005A4 _0803F720: movs r7, #0xf7 lsls r7, r7, #2 adds r1, r4, r7 movs r0, #0xa strb r0, [r1] ldr r1, [r6] ldr r0, _0803F770 @ =0x000003E2 adds r2, r1, r0 movs r0, #0x62 strh r0, [r2] ldr r2, _0803F774 @ =0x0200B0C0 movs r0, #0x80 strb r0, [r2, #0xf] movs r3, #0xe2 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #2 strb r0, [r1] ldr r0, [r6] ldr r4, _0803F778 @ =0x00000392 adds r0, r0, r4 strh r5, [r0] _0803F74C: ldr r0, _0803F77C @ =0x020314E0 ldr r4, [r0] movs r5, #0xf9 lsls r5, r5, #2 adds r1, r4, r5 movs r0, #0 strh r0, [r1] ldr r7, _0803F780 @ =0x00001CD8 adds r0, r2, r7 ldrh r0, [r0] cmp r0, #0 bne _0803F766 b _0803FA78 _0803F766: ldr r0, _0803F784 @ =0x00000486 adds r1, r4, r0 movs r0, #1 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F770: .4byte 0x000003E2 _0803F774: .4byte 0x0200B0C0 _0803F778: .4byte 0x00000392 _0803F77C: .4byte 0x020314E0 _0803F780: .4byte 0x00001CD8 _0803F784: .4byte 0x00000486 _0803F788: ldr r2, _0803F7B4 @ =0x086AF3CC ldr r5, _0803F7B8 @ =0x020314E0 ldr r4, [r5] ldr r6, _0803F7BC @ =0x000003E2 adds r3, r4, r6 movs r7, #0 ldrsh r1, [r3, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r2, #0xf9 lsls r2, r2, #2 adds r1, r4, r2 ldrh r2, [r1] ldrh r0, [r0] cmp r0, r2 bls _0803F7C0 _0803F7AE: adds r0, r2, #1 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F7B4: .4byte 0x086AF3CC _0803F7B8: .4byte 0x020314E0 _0803F7BC: .4byte 0x000003E2 _0803F7C0: movs r2, #0 movs r0, #0 strh r0, [r1] ldrh r0, [r3] adds r0, #1 strh r0, [r3] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x83 bne _0803F7F2 movs r0, #0xd strh r0, [r3] ldr r3, _0803F80C @ =0x000003E1 adds r0, r4, r3 strb r2, [r0] ldr r0, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0xb strb r1, [r0] ldr r0, [r5] ldr r7, _0803F810 @ =0x00000389 adds r0, r0, r7 strb r2, [r0] _0803F7F2: ldr r1, [r5] adds r0, r1, r6 movs r2, #0 ldrsh r0, [r0, r2] cmp r0, #0x78 beq _0803F800 b _0803FA78 _0803F800: movs r3, #0xe4 lsls r3, r3, #2 adds r1, r1, r3 movs r0, #0x15 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F80C: .4byte 0x000003E1 _0803F810: .4byte 0x00000389 _0803F814: ldr r2, _0803F840 @ =0x086AF3CC ldr r3, [r6] ldr r5, _0803F844 @ =0x000003E2 adds r4, r3, r5 movs r7, #0 ldrsh r1, [r4, r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r2, #2 adds r0, r0, r2 movs r1, #0xf9 lsls r1, r1, #2 adds r3, r3, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r0, r1 bls _0803F848 adds r0, r1, #1 strh r0, [r3] b _0803F85E .align 2, 0 _0803F840: .4byte 0x086AF3CC _0803F844: .4byte 0x000003E2 _0803F848: movs r0, #0 strh r0, [r3] ldrh r0, [r4] adds r0, #1 strh r0, [r4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x22 bne _0803F85E movs r0, #0x21 strh r0, [r4] _0803F85E: ldr r1, [r6] ldr r2, _0803F8C8 @ =0x000003E2 adds r0, r1, r2 movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0x21 bne _0803F890 ldr r4, _0803F8CC @ =0x000003EA adds r1, r1, r4 ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] ldr r3, _0803F8D0 @ =0xFFFFFD00 cmp r0, r3 ble _0803F890 adds r0, r2, #0 subs r0, #0x18 strh r0, [r1] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r3 bge _0803F890 movs r0, #0xfd lsls r0, r0, #8 strh r0, [r1] _0803F890: ldr r4, _0803F8D4 @ =0x020314E0 ldr r3, [r4] ldr r7, _0803F8CC @ =0x000003EA adds r0, r3, r7 movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0803F8D0 @ =0xFFFFFD00 cmp r1, r0 beq _0803F8A4 b _0803FA78 _0803F8A4: ldr r5, _0803F8C8 @ =0x000003E2 adds r0, r3, r5 movs r2, #0 movs r1, #0 strh r1, [r0] subs r7, #6 adds r0, r3, r7 strh r1, [r0] movs r0, #0xf7 lsls r0, r0, #2 adds r1, r3, r0 movs r0, #0xc _0803F8BC: strb r0, [r1] ldr r0, [r4] ldr r1, _0803F8D8 @ =0x000003E1 adds r0, r0, r1 strb r2, [r0] b _0803FA78 .align 2, 0 _0803F8C8: .4byte 0x000003E2 _0803F8CC: .4byte 0x000003EA _0803F8D0: .4byte 0xFFFFFD00 _0803F8D4: .4byte 0x020314E0 _0803F8D8: .4byte 0x000003E1 _0803F8DC: ldr r1, _0803F980 @ =0x040000D4 ldr r0, _0803F984 @ =0x084AA18C str r0, [r1] ldr r0, _0803F988 @ =0x06011620 str r0, [r1, #4] ldr r0, _0803F98C @ =0x80000430 str r0, [r1, #8] ldr r0, [r1, #8] ldr r3, _0803F990 @ =0x020314E0 ldr r0, [r3] movs r2, #0xf7 lsls r2, r2, #2 adds r0, r0, r2 movs r4, #0 movs r1, #0xd strb r1, [r0] ldr r1, [r3] movs r5, #0xfa lsls r5, r5, #2 adds r2, r1, r5 ldr r0, _0803F994 @ =0x00000474 strh r0, [r2] ldr r7, _0803F998 @ =0x000003EA adds r2, r1, r7 ldr r0, _0803F99C @ =0x0000FB50 strh r0, [r2] ldr r0, _0803F9A0 @ =0x00000506 adds r1, r1, r0 movs r0, #2 strb r0, [r1] ldr r0, [r3] ldr r2, _0803F9A4 @ =0x00000516 adds r1, r0, r2 strh r4, [r1] ldr r5, _0803F9A8 @ =0x000005FA adds r0, r0, r5 movs r2, #1 strb r2, [r0] ldr r0, _0803F9AC @ =0x0200B0C0 movs r1, #0x80 strb r1, [r0, #0xf] ldr r7, _0803F9B0 @ =0x00000D08 adds r0, r0, r7 strh r2, [r0] ldr r1, [r3] movs r2, #0xf1 lsls r2, r2, #2 adds r0, r1, r2 strh r4, [r0] ldr r3, _0803F9B4 @ =0x000003C6 adds r2, r1, r3 ldr r0, _0803F9B8 @ =0x0000EC78 strh r0, [r2] movs r4, #0xf2 lsls r4, r4, #2 adds r2, r1, r4 movs r0, #0xaf lsls r0, r0, #3 strh r0, [r2] ldr r5, _0803F9BC @ =0x000003CA adds r2, r1, r5 ldr r0, _0803F9C0 @ =0x0000F830 strh r0, [r2] movs r7, #0x83 lsls r7, r7, #3 adds r2, r1, r7 ldr r0, _0803F9C4 @ =0x0000FF38 strh r0, [r2] ldr r0, _0803F9C8 @ =0x0000041A adds r2, r1, r0 subs r0, #0xfa strh r0, [r2] adds r3, #0x4e adds r2, r1, r3 movs r0, #0x18 strh r0, [r2] adds r4, #0x4e adds r1, r1, r4 ldr r0, _0803F9CC @ =0x0000FFF0 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F980: .4byte 0x040000D4 _0803F984: .4byte 0x084AA18C _0803F988: .4byte 0x06011620 _0803F98C: .4byte 0x80000430 _0803F990: .4byte 0x020314E0 _0803F994: .4byte 0x00000474 _0803F998: .4byte 0x000003EA _0803F99C: .4byte 0x0000FB50 _0803F9A0: .4byte 0x00000506 _0803F9A4: .4byte 0x00000516 _0803F9A8: .4byte 0x000005FA _0803F9AC: .4byte 0x0200B0C0 _0803F9B0: .4byte 0x00000D08 _0803F9B4: .4byte 0x000003C6 _0803F9B8: .4byte 0x0000EC78 _0803F9BC: .4byte 0x000003CA _0803F9C0: .4byte 0x0000F830 _0803F9C4: .4byte 0x0000FF38 _0803F9C8: .4byte 0x0000041A _0803F9CC: .4byte 0x0000FFF0 _0803F9D0: ldr r3, _0803F9F0 @ =0x020314E0 ldr r2, [r3] ldr r5, _0803F9F4 @ =0x00000516 adds r0, r2, r5 ldrh r0, [r0] cmp r0, #0xff bhi _0803FA18 movs r7, #0xf9 lsls r7, r7, #2 adds r1, r2, r7 ldrh r0, [r1] cmp r0, #0x4f bhi _0803F9F8 _0803F9EA: adds r0, #1 strh r0, [r1] b _0803FA78 .align 2, 0 _0803F9F0: .4byte 0x020314E0 _0803F9F4: .4byte 0x00000516 _0803F9F8: ldr r0, _0803FA10 @ =0x000003EA adds r2, r2, r0 ldrh r3, [r2] movs r4, #0 ldrsh r1, [r2, r4] ldr r0, _0803FA14 @ =0x0000095F cmp r1, r0 bgt _0803FA78 adds r0, r3, #0 adds r0, #0x50 b _0803FA76 .align 2, 0 _0803FA10: .4byte 0x000003EA _0803FA14: .4byte 0x0000095F _0803FA18: movs r1, #0 movs r0, #2 strb r0, [r2, #0x13] ldr r0, [r3] strh r1, [r0, #0x18] movs r5, #0xf7 lsls r5, r5, #2 adds r0, r0, r5 movs r1, #0xf strb r1, [r0] b _0803FA78 _0803FA2E: ldr r0, _0803FAC0 @ =0x020314E0 ldr r5, [r0] movs r7, #0xe3 lsls r7, r7, #2 adds r1, r5, r7 movs r0, #1 strh r0, [r1] ldr r0, _0803FAC4 @ =0x0000038E adds r4, r5, r0 ldrh r6, [r4] movs r1, #0 ldrsh r0, [r4, r1] ldr r1, _0803FAC8 @ =0xFFFFFE0C cmp r0, r1 ble _0803FA78 subs r0, r1, r0 movs r1, #0x1e bl __divsi3 adds r0, r6, r0 strh r0, [r4] movs r3, #0 ldrsh r0, [r4, r3] movs r1, #0xa bl __divsi3 adds r2, r5, #0 adds r2, #0xe6 strh r0, [r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x26 rsbs r1, r1, #0 cmp r0, r1 bge _0803FA78 ldr r0, _0803FACC @ =0x0000FFDA _0803FA76: strh r0, [r2] _0803FA78: ldr r5, _0803FAC0 @ =0x020314E0 ldr r0, [r5] movs r4, #0xe4 lsls r4, r4, #2 adds r1, r0, r4 ldrh r0, [r1] cmp r0, #0 beq _0803FAB8 subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _0803FAA2 ldr r0, _0803FAD0 @ =0x086A3700 ldr r7, _0803FAD4 @ =0x000012A8 adds r0, r0, r7 ldrh r0, [r0] movs r1, #0 bl sub_528DC _0803FAA2: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _0803FAB8 ldr r0, _0803FAD8 @ =0x02032EE0 ldr r1, _0803FADC @ =0x0000FFFF movs r2, #0x80 lsls r2, r2, #1 bl m4aMPlayVolumeControl _0803FAB8: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0803FAC0: .4byte 0x020314E0 _0803FAC4: .4byte 0x0000038E _0803FAC8: .4byte 0xFFFFFE0C _0803FACC: .4byte 0x0000FFDA _0803FAD0: .4byte 0x086A3700 _0803FAD4: .4byte 0x000012A8 _0803FAD8: .4byte 0x02032EE0 _0803FADC: .4byte 0x0000FFFF thumb_func_start sub_3FAE0 sub_3FAE0: @ 0x0803FAE0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 movs r0, #0 mov sl, r0 movs r1, #0 str r1, [sp] ldr r7, _0803FB74 @ =0x0200D2A0 ldrh r0, [r7] movs r2, #0xb8 rsbs r2, r2, #0 adds r2, r2, r7 mov sb, r2 cmp r0, #0 beq _0803FBC4 ldr r4, _0803FB78 @ =0x020314E0 ldr r0, [r4] movs r3, #0xfa lsls r3, r3, #2 adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r7, #2] ldr r0, [r4] ldr r2, _0803FB7C @ =0x000003EA adds r0, r0, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 strh r0, [r7, #4] movs r2, #0 ldr r4, _0803FB80 @ =0x03005000 ldr r0, _0803FB84 @ =0xFFFFFE00 mov r8, r0 _0803FB34: lsls r1, r2, #0x10 asrs r0, r1, #0xd adds r0, #8 adds r6, r7, r0 movs r0, #4 ldrsb r0, [r6, r0] ldrh r2, [r7, #4] adds r0, r0, r2 lsls r0, r0, #0x10 movs r3, #0xf0 lsls r3, r3, #0xe adds r0, r0, r3 lsrs r0, r0, #0x10 adds r5, r1, #0 cmp r0, #0xf0 bls _0803FB88 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] b _0803FBB6 .align 2, 0 _0803FB74: .4byte 0x0200D2A0 _0803FB78: .4byte 0x020314E0 _0803FB7C: .4byte 0x000003EA _0803FB80: .4byte 0x03005000 _0803FB84: .4byte 0xFFFFFE00 _0803FB88: ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0803FC40 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _0803FBB6: movs r3, #0x80 lsls r3, r3, #9 adds r0, r5, r3 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xd ble _0803FB34 _0803FBC4: mov r7, sb ldrh r4, [r7] mov sb, r4 cmp r4, #0 bne _0803FBD0 b _0803FCD4 _0803FBD0: ldr r4, _0803FC44 @ =0x020314E0 ldr r0, [r4] movs r1, #0xfa lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r7, #2] ldr r0, [r4] ldr r3, _0803FC48 @ =0x000003EA adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r7, #4] movs r2, #0 ldr r4, _0803FC4C @ =0x03005000 ldr r3, _0803FC50 @ =0xFFFFFE00 mov r8, r3 _0803FC00: lsls r1, r2, #0x10 asrs r0, r1, #0xd adds r0, #8 adds r6, r7, r0 movs r0, #4 ldrsb r0, [r6, r0] ldrh r2, [r7, #4] adds r0, r0, r2 lsls r0, r0, #0x10 movs r3, #0xf0 lsls r3, r3, #0xe adds r0, r0, r3 lsrs r0, r0, #0x10 adds r5, r1, #0 cmp r0, #0xf0 bls _0803FC54 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r4 ldrh r1, [r2, #2] mov r0, r8 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r6] lsls r0, r0, #3 adds r0, r0, r4 movs r1, #0xb4 strb r1, [r0] b _0803FC82 .align 2, 0 _0803FC40: .4byte 0x000001FF _0803FC44: .4byte 0x020314E0 _0803FC48: .4byte 0x000003EA _0803FC4C: .4byte 0x03005000 _0803FC50: .4byte 0xFFFFFE00 _0803FC54: ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _0803FCB8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] _0803FC82: movs r3, #0x80 lsls r3, r3, #9 adds r0, r5, r3 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xd ble _0803FC00 ldr r4, _0803FCBC @ =0x020314E0 ldr r0, [r4] ldr r1, _0803FCC0 @ =0x00000516 adds r0, r0, r1 ldrh r1, [r0] ldr r0, _0803FCC4 @ =0x0000029F cmp r1, r0 beq _0803FCA2 b _0804024A _0803FCA2: movs r0, #0 strh r0, [r7] ldr r0, _0803FCC8 @ =0x0200B0C0 ldr r2, _0803FCCC @ =0x00002070 adds r1, r0, r2 movs r2, #1 strh r2, [r1] ldr r3, _0803FCD0 @ =0x00002350 adds r0, r0, r3 strh r2, [r0] b _0804024A .align 2, 0 _0803FCB8: .4byte 0x000001FF _0803FCBC: .4byte 0x020314E0 _0803FCC0: .4byte 0x00000516 _0803FCC4: .4byte 0x0000029F _0803FCC8: .4byte 0x0200B0C0 _0803FCCC: .4byte 0x00002070 _0803FCD0: .4byte 0x00002350 _0803FCD4: subs r7, #0xb8 ldrh r0, [r7] cmp r0, #0 bne _0803FCDE b _0803FF98 _0803FCDE: ldr r5, _0803FD84 @ =0x020314E0 ldr r4, [r5] movs r0, #0xfa lsls r0, r0, #2 mov r8, r0 adds r0, r4, r0 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x58 subs r0, r0, r1 strh r0, [r7, #2] ldr r4, [r5] ldr r6, _0803FD88 @ =0x000003EA adds r0, r4, r6 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x4e subs r0, r0, r1 strh r0, [r7, #4] ldr r4, [r5] add r8, r4 mov r3, r8 movs r1, #0 ldrsh r0, [r3, r1] movs r1, #0xa bl __divsi3 adds r0, #0x74 movs r2, #0xa2 lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] adds r6, r4, r6 movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 adds r0, #0x3c ldr r2, _0803FD8C @ =0x0000028A adds r1, r4, r2 strh r0, [r1] ldr r3, _0803FD90 @ =0x0000051A adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x5b ble _0803FD98 mov r2, r8 movs r3, #0 ldrsh r0, [r2, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xac movs r2, #0xfc lsls r2, r2, #2 adds r1, r4, r2 strh r0, [r1] movs r3, #0 ldrsh r0, [r6, r3] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, #0xb8 ldr r2, _0803FD94 @ =0x000003F2 adds r1, r4, r2 b _0803FDA8 .align 2, 0 _0803FD84: .4byte 0x020314E0 _0803FD88: .4byte 0x000003EA _0803FD8C: .4byte 0x0000028A _0803FD90: .4byte 0x0000051A _0803FD94: .4byte 0x000003F2 _0803FD98: movs r3, #0xfc lsls r3, r3, #2 adds r0, r4, r3 mov r1, sb strh r1, [r0] ldr r2, _0803FE1C @ =0x000003F2 adds r1, r4, r2 ldr r0, _0803FE20 @ =0x0000FF60 _0803FDA8: strh r0, [r1] movs r3, #4 ldrsh r1, [r7, r3] movs r0, #0x46 rsbs r0, r0, #0 cmp r1, r0 bge _0803FDBA ldr r0, _0803FE24 @ =0x0000FFBA strh r0, [r7, #4] _0803FDBA: movs r4, #4 ldrsh r0, [r7, r4] cmp r0, #0xb4 ble _0803FDC6 movs r0, #0xb4 strh r0, [r7, #4] _0803FDC6: ldr r2, _0803FE28 @ =0x086AF3CC ldr r0, _0803FE2C @ =0x020314E0 ldr r3, [r0] ldr r1, _0803FE30 @ =0x000003E2 adds r0, r3, r1 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r1, [r0] ldr r4, _0803FE34 @ =0x00000389 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r2 cmp r0, #9 ble _0803FE40 movs r0, #0xb str r0, [sp] ldr r3, _0803FE38 @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r3 ldrh r1, [r2, #2] ldr r0, _0803FE3C @ =0xFFFFFE00 ands r0, r1 movs r1, #0xf0 orrs r0, r1 strh r0, [r2, #2] ldrh r0, [r7, #8] lsls r0, r0, #3 adds r0, r0, r3 movs r1, #0xb4 strb r1, [r0] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r3 movs r3, #0xb0 b _0803FF24 .align 2, 0 _0803FE1C: .4byte 0x000003F2 _0803FE20: .4byte 0x0000FF60 _0803FE24: .4byte 0x0000FFBA _0803FE28: .4byte 0x086AF3CC _0803FE2C: .4byte 0x020314E0 _0803FE30: .4byte 0x000003E2 _0803FE34: .4byte 0x00000389 _0803FE38: .4byte 0x03005000 _0803FE3C: .4byte 0xFFFFFE00 _0803FE40: cmp r0, #1 bne _0803FE4C movs r2, #2 mov sl, r2 movs r3, #0xe b _0803FE6C _0803FE4C: cmp r0, #3 bne _0803FE5A movs r4, #2 mov sl, r4 movs r0, #0xb str r0, [sp] b _0803FE6E _0803FE5A: ldr r2, _0803FF30 @ =0x000003DF adds r0, r3, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r3, #0xf _0803FE6C: str r3, [sp] _0803FE6E: ldr r4, _0803FF34 @ =0x020314E0 ldr r0, [r4] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0803FE86 movs r3, #8 mov sl, r3 _0803FE86: cmp r0, #0x16 bne _0803FE8E movs r4, #9 mov sl, r4 _0803FE8E: ldrh r2, [r7, #8] lsls r2, r2, #3 ldr r6, _0803FF38 @ =0x03005000 adds r2, r2, r6 lsls r0, r1, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #1 ldr r0, _0803FF3C @ =0x086B612E adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldrh r0, [r7, #8] lsls r0, r0, #3 adds r0, r0, r6 ldr r1, _0803FF34 @ =0x020314E0 ldr r5, [r1] movs r4, #0 ldrsb r4, [r0, r4] adds r4, #0x4e ldr r2, _0803FF40 @ =0x000003EA adds r0, r5, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, r4, r0 ldr r0, _0803FF44 @ =0x0000051A adds r5, r5, r0 strh r4, [r5] ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r6 ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r4, _0803FF48 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _0803FF4C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r6 ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] ldr r3, _0803FF34 @ =0x020314E0 ldr r0, [r3] ldr r4, _0803FF50 @ =0x00000389 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _0803FF54 ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r6 ldr r0, [sp] lsls r3, r0, #4 _0803FF24: ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 orrs r0, r3 strb r0, [r1, #5] b _0803FF60 .align 2, 0 _0803FF30: .4byte 0x000003DF _0803FF34: .4byte 0x020314E0 _0803FF38: .4byte 0x03005000 _0803FF3C: .4byte 0x086B612E _0803FF40: .4byte 0x000003EA _0803FF44: .4byte 0x0000051A _0803FF48: .4byte 0x000001FF _0803FF4C: .4byte 0xFFFFFE00 _0803FF50: .4byte 0x00000389 _0803FF54: ldrh r0, [r7, #8] lsls r0, r0, #3 adds r0, r0, r6 ldrb r0, [r0, #5] lsrs r0, r0, #4 str r0, [sp] _0803FF60: ldr r1, _0803FFB8 @ =0x020314E0 ldr r2, [r1] ldr r3, _0803FFBC @ =0x000003E2 adds r0, r2, r3 movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 mov r1, r8 adds r1, #4 adds r0, r0, r1 ldrh r0, [r0] ldr r1, _0803FFC0 @ =0x000003DF adds r2, r2, r1 strb r0, [r2] ldr r2, _0803FFC4 @ =0x040000D4 mov r3, sl lsls r0, r3, #0x10 asrs r0, r0, #5 ldr r1, _0803FFC8 @ =0x084AA9EC adds r0, r0, r1 str r0, [r2] ldr r0, _0803FFCC @ =0x06011620 str r0, [r2, #4] ldr r0, _0803FFD0 @ =0x80000400 str r0, [r2, #8] ldr r0, [r2, #8] _0803FF98: ldr r7, _0803FFD4 @ =0x0200C2D0 ldrh r0, [r7] cmp r0, #0 bne _0803FFA2 b _080400C0 _0803FFA2: mov r4, sl lsls r0, r4, #0x10 asrs r5, r0, #0x10 cmp r5, #7 ble _0803FFD8 movs r0, #0 strh r0, [r7, #2] strh r0, [r7, #4] mov sl, r0 b _0804002E .align 2, 0 _0803FFB8: .4byte 0x020314E0 _0803FFBC: .4byte 0x000003E2 _0803FFC0: .4byte 0x000003DF _0803FFC4: .4byte 0x040000D4 _0803FFC8: .4byte 0x084AA9EC _0803FFCC: .4byte 0x06011620 _0803FFD0: .4byte 0x80000400 _0803FFD4: .4byte 0x0200C2D0 _0803FFD8: cmp r5, #5 ble _08040028 ldr r0, _08040020 @ =0x020314E0 ldr r4, [r0] movs r1, #0xfa lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x58 subs r0, r0, r1 strh r0, [r7, #2] ldr r3, _08040024 @ =0x000003EA adds r0, r4, r3 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 adds r0, #0x60 strh r0, [r7, #4] subs r0, r5, #6 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 b _0804002E .align 2, 0 _08040020: .4byte 0x020314E0 _08040024: .4byte 0x000003EA _08040028: movs r0, #0 strh r0, [r7, #2] strh r0, [r7, #4] _0804002E: movs r2, #0 ldr r3, [sp] lsls r3, r3, #4 mov sb, r3 mov r4, sl lsls r1, r4, #0x10 ldr r0, _080400F0 @ =0x03005000 mov r8, r0 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r1, _080400F4 @ =0xFFFFFC00 mov sl, r1 _0804004C: lsls r5, r2, #0x10 asrs r5, r5, #0x10 lsls r4, r5, #3 adds r0, r4, #0 adds r0, #8 adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 add r3, r8 movs r2, #2 ldrsh r1, [r6, r2] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r2, _080400F8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080400FC @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r0, [r7, #4] ldrb r3, [r6, #4] adds r0, r0, r3 strb r0, [r1] ldrh r2, [r6] lsls r2, r2, #3 add r2, r8 add r4, ip ldr r0, _08040100 @ =0x00000109 adds r4, r4, r0 ldr r1, _08040104 @ =0x000003FF adds r0, r1, #0 ands r4, r0 ldrh r1, [r2, #4] mov r0, sl ands r0, r1 orrs r0, r4 strh r0, [r2, #4] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldrb r2, [r1, #5] movs r0, #0xf ands r0, r2 mov r2, sb orrs r0, r2 strb r0, [r1, #5] adds r5, #1 lsls r5, r5, #0x10 lsrs r2, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #1 ble _0804004C _080400C0: ldr r7, _08040108 @ =0x0200D410 ldrh r0, [r7] cmp r0, #0 bne _080400CA b _0804024A _080400CA: ldr r4, _0804010C @ =0x020314E0 ldr r0, [r4] ldr r3, _08040110 @ =0x0000051A adds r0, r0, r3 movs r1, #0 ldrsh r0, [r0, r1] subs r0, #0x46 movs r1, #3 bl __divsi3 adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0 bge _08040114 movs r1, #0 b _0804011A .align 2, 0 _080400F0: .4byte 0x03005000 _080400F4: .4byte 0xFFFFFC00 _080400F8: .4byte 0x000001FF _080400FC: .4byte 0xFFFFFE00 _08040100: .4byte 0x00000109 _08040104: .4byte 0x000003FF _08040108: .4byte 0x0200D410 _0804010C: .4byte 0x020314E0 _08040110: .4byte 0x0000051A _08040114: cmp r0, #9 ble _0804011A movs r1, #9 _0804011A: ldr r3, _08040154 @ =0x020314E0 ldr r2, [r3] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r6, r1, #0x10 cmp r0, #0xe beq _08040180 ldr r0, _08040158 @ =0x0000050A adds r3, r2, r0 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0 ble _08040160 ldr r1, _0804015C @ =0x0200B0C0 ldrh r0, [r1, #0x38] movs r0, #0x9e strh r0, [r1, #0x38] ldrh r0, [r3] ldrh r2, [r1, #0x3c] strh r0, [r1, #0x3c] ldrh r0, [r3] subs r0, #1 strh r0, [r3] b _08040180 .align 2, 0 _08040154: .4byte 0x020314E0 _08040158: .4byte 0x0000050A _0804015C: .4byte 0x0200B0C0 _08040160: ldr r2, _0804025C @ =0x0200B0C0 ldrb r1, [r2, #0xf] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _08040180 ldrh r0, [r2, #0x38] ldr r0, _08040260 @ =0x00001E10 strh r0, [r2, #0x38] movs r0, #0x10 asrs r1, r6, #0x10 subs r0, r0, r1 lsls r0, r0, #8 orrs r0, r1 ldrh r1, [r2, #0x3a] strh r0, [r2, #0x3a] _08040180: ldr r5, _08040264 @ =0x020314E0 ldr r4, [r5] movs r2, #0xfa lsls r2, r2, #2 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r1, r4, #0 adds r1, #0x58 ldrh r1, [r1] subs r1, #0x58 subs r0, r0, r1 movs r1, #0 mov r8, r1 strh r0, [r7, #2] ldr r2, _08040268 @ =0x000003EA adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x4e subs r0, r0, r1 asrs r1, r6, #0x10 adds r1, #0x24 adds r0, r0, r1 strh r0, [r7, #4] adds r6, r7, #0 adds r6, #8 ldr r4, _0804026C @ =0x03005000 ldrh r2, [r7, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r6, r0] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r3, _08040270 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08040274 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] ldr r0, [r5] movs r4, #0xf7 lsls r4, r4, #2 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xc bne _08040226 ldr r1, _0804025C @ =0x0200B0C0 ldr r0, _08040278 @ =0x000021E0 adds r2, r1, r0 movs r0, #1 strh r0, [r2] ldr r2, _0804027C @ =0x00002070 adds r0, r1, r2 mov r3, r8 strh r3, [r0] ldr r4, _08040280 @ =0x00002350 adds r0, r1, r4 strh r3, [r0] ldr r0, _08040284 @ =0x00001210 adds r1, r1, r0 strh r3, [r1] _08040226: ldr r1, _08040264 @ =0x020314E0 ldr r0, [r1] movs r2, #0xb5 lsls r2, r2, #3 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x15 bne _0804024A ldr r0, _0804025C @ =0x0200B0C0 ldr r3, _08040280 @ =0x00002350 adds r1, r0, r3 mov r4, r8 strh r4, [r1] ldr r1, _08040284 @ =0x00001210 adds r0, r0, r1 strh r4, [r0] _0804024A: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804025C: .4byte 0x0200B0C0 _08040260: .4byte 0x00001E10 _08040264: .4byte 0x020314E0 _08040268: .4byte 0x000003EA _0804026C: .4byte 0x03005000 _08040270: .4byte 0x000001FF _08040274: .4byte 0xFFFFFE00 _08040278: .4byte 0x000021E0 _0804027C: .4byte 0x00002070 _08040280: .4byte 0x00002350 _08040284: .4byte 0x00001210 thumb_func_start sub_40288 sub_40288: @ 0x08040288 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x44 movs r0, #0 str r0, [sp, #8] movs r1, #0 str r1, [sp, #4] movs r7, #0 movs r2, #0 str r2, [sp] ldr r3, _080402CC @ =0x0200BAE8 str r3, [sp, #0x10] ldrh r0, [r3] cmp r0, #0 bne _080402AE b _08040444 _080402AE: ldr r0, _080402D0 @ =0x020314E0 ldr r1, [r0] ldr r4, _080402D4 @ =0x000006C4 adds r1, r1, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 cmp r1, #3 bne _080402D8 movs r0, #0xf0 strh r0, [r3, #2] movs r0, #0xb4 strh r0, [r3, #4] b _080402E2 .align 2, 0 _080402CC: .4byte 0x0200BAE8 _080402D0: .4byte 0x020314E0 _080402D4: .4byte 0x000006C4 _080402D8: movs r0, #0x60 ldr r5, [sp, #0x10] strh r0, [r5, #2] movs r0, #0x37 strh r0, [r5, #4] _080402E2: ldr r0, _08040468 @ =0x020314E0 ldr r1, [r0] ldr r3, [sp, #0x10] ldrh r2, [r3, #2] ldr r4, _0804046C @ =0x000006E4 adds r0, r1, r4 strh r2, [r0] ldrh r0, [r3, #4] ldr r5, _08040470 @ =0x000006E6 adds r1, r1, r5 strh r0, [r1] movs r1, #4 ldrsh r0, [r3, r1] cmp r0, #0xc7 ble _08040304 movs r0, #0xc8 strh r0, [r3, #4] _08040304: movs r2, #0 ldr r3, _08040474 @ =0x0200BA30 mov ip, r3 ldr r5, _08040478 @ =0x03005000 movs r4, #3 mov sb, r4 movs r0, #0xd rsbs r0, r0, #0 mov sl, r0 ldr r1, _0804047C @ =0xFFFFFE00 mov r8, r1 _0804031A: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r2, [sp, #0x10] adds r6, r2, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 ldrb r1, [r2, #5] movs r0, #0xf ands r0, r1 movs r1, #0xd0 orrs r0, r1 strb r0, [r2, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r1, _08040468 @ =0x020314E0 ldr r0, [r1] ldr r2, _08040480 @ =0x000006DB adds r0, r0, r2 ldrb r1, [r0] mov r0, sb ands r1, r0 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r6, r2] str r1, [sp, #0x3c] ldr r1, [sp, #0x10] movs r2, #2 ldrsh r0, [r1, r2] ldr r2, [sp, #0x3c] adds r1, r2, r0 ldr r2, _08040484 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp, #0x10] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _0804031A mov r4, ip str r4, [sp, #0x10] ldr r5, _08040468 @ =0x020314E0 ldr r0, [r5] ldr r1, _0804046C @ =0x000006E4 adds r0, r0, r1 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #2] ldr r0, [r5] ldr r2, _08040470 @ =0x000006E6 adds r0, r0, r2 ldrh r0, [r0] subs r0, #8 strh r0, [r4, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc7 ble _080403C4 movs r0, #0xc8 strh r0, [r4, #4] _080403C4: movs r2, #0 ldr r5, _08040478 @ =0x03005000 movs r3, #3 mov sb, r3 movs r4, #0xd rsbs r4, r4, #0 mov sl, r4 ldr r0, _0804047C @ =0xFFFFFE00 mov r8, r0 _080403D6: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 ldr r2, _08040468 @ =0x020314E0 ldr r0, [r2] ldr r1, _08040480 @ =0x000006DB adds r0, r0, r1 ldrb r1, [r0] mov r2, sb ands r1, r2 lsls r1, r1, #2 ldrb r2, [r3, #5] mov r0, sl ands r0, r2 orrs r0, r1 strb r0, [r3, #5] ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r1, #2 ldrsh r0, [r6, r1] mov ip, r0 ldr r2, [sp, #0x10] movs r1, #2 ldrsh r0, [r2, r1] mov r2, ip adds r1, r2, r0 ldr r2, _08040484 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r3, [sp, #0x10] ldrb r0, [r3, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _080403D6 _08040444: bl sub_41580 ldr r0, _08040468 @ =0x020314E0 ldr r0, [r0] ldr r4, _08040488 @ =0x00000507 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bls _0804045C b _08040802 _0804045C: lsls r0, r0, #2 ldr r1, _0804048C @ =_08040490 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08040468: .4byte 0x020314E0 _0804046C: .4byte 0x000006E4 _08040470: .4byte 0x000006E6 _08040474: .4byte 0x0200BA30 _08040478: .4byte 0x03005000 _0804047C: .4byte 0xFFFFFE00 _08040480: .4byte 0x000006DB _08040484: .4byte 0x000001FF _08040488: .4byte 0x00000507 _0804048C: .4byte _08040490 _08040490: @ jump table .4byte _080404A4 @ case 0 .4byte _080404C4 @ case 1 .4byte _080405E8 @ case 2 .4byte _080406C0 @ case 3 .4byte _080407EC @ case 4 _080404A4: ldr r0, _080404C0 @ =0x020314E0 ldr r0, [r0] movs r5, #0xa2 lsls r5, r5, #3 adds r0, r0, r5 movs r1, #0 strh r1, [r0] movs r7, #7 movs r0, #0xc str r0, [sp, #4] movs r1, #5 str r1, [sp, #8] b _08040802 .align 2, 0 _080404C0: .4byte 0x020314E0 _080404C4: ldr r5, _08040548 @ =0x020314E0 ldr r0, [r5] movs r4, #0xa2 lsls r4, r4, #3 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _080404DC movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStart _080404DC: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #8 bne _080404EE movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStop _080404EE: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x18 bne _08040500 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStart _08040500: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x24 bne _08040512 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStop _08040512: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x32 bne _08040524 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStart _08040524: ldr r0, [r5] adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x38 bne _08040536 movs r0, #0x94 lsls r0, r0, #1 bl m4aSongNumStop _08040536: ldr r0, [r5] adds r0, r0, r4 ldrh r1, [r0] cmp r1, #0xd bhi _0804054C adds r0, r1, #0 lsrs r7, r0, #1 b _0804056E .align 2, 0 _08040548: .4byte 0x020314E0 _0804054C: cmp r1, #0x29 bls _0804055E cmp r1, #0x37 bhi _0804055A ldrh r0, [r0] subs r0, #0x2a b _08040566 _0804055A: cmp r1, #0x3c bhi _08040562 _0804055E: movs r7, #7 b _0804056E _08040562: ldrh r0, [r0] subs r0, #0x3d _08040566: lsrs r1, r0, #0x1f adds r0, r0, r1 lsls r0, r0, #0xf lsrs r7, r0, #0x10 _0804056E: ldr r0, _08040588 @ =0x020314E0 ldr r0, [r0] movs r2, #0xa2 lsls r2, r2, #3 adds r0, r0, r2 ldrh r1, [r0] cmp r1, #7 bhi _0804058C adds r0, r1, #0 lsrs r0, r0, #1 str r0, [sp, #4] b _080405B2 .align 2, 0 _08040588: .4byte 0x020314E0 _0804058C: cmp r1, #0x2f bhi _08040596 movs r3, #0xc str r3, [sp, #4] b _080405B2 _08040596: cmp r1, #0x3f bhi _080405AE ldrh r0, [r0] subs r0, #0x30 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] b _080405B2 _080405AE: movs r4, #0xc str r4, [sp, #4] _080405B2: movs r5, #5 str r5, [sp, #8] ldr r0, _080405E0 @ =0x020314E0 ldr r1, [r0] movs r0, #0xa2 lsls r0, r0, #3 adds r2, r1, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r2] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x4b beq _080405D0 b _08040802 _080405D0: movs r0, #0 strh r0, [r2] ldr r2, _080405E4 @ =0x00000507 adds r1, r1, r2 movs r0, #2 strb r0, [r1] b _08040802 .align 2, 0 _080405E0: .4byte 0x020314E0 _080405E4: .4byte 0x00000507 _080405E8: movs r7, #7 movs r3, #0xc str r3, [sp, #4] movs r4, #5 str r4, [sp, #8] ldr r5, _0804065C @ =0x020314E0 ldr r3, [r5] movs r0, #0xa2 lsls r0, r0, #3 adds r1, r3, r0 ldrh r0, [r1] cmp r0, #0x21 bhi _080406A4 adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1c beq _08040610 b _08040802 _08040610: movs r1, #0xe2 lsls r1, r1, #2 adds r0, r3, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08040670 bl sub_C00 ldr r4, [r5] movs r1, #0xa0 bl __umodsi3 movs r1, #0xc8 subs r1, r1, r0 ldr r2, _08040660 @ =0x0000051C adds r4, r4, r2 strh r1, [r4] bl sub_C00 ldr r5, [r5] ldr r3, _08040664 @ =0x0000132C adds r1, r5, r3 ldr r1, [r1] ldr r2, _08040668 @ =0xFFFFFEA5 adds r4, r2, #0 ldrh r1, [r1, #0x12] adds r4, r4, r1 movs r1, #0x50 bl __umodsi3 subs r4, r4, r0 ldr r3, _0804066C @ =0x0000051E adds r5, r5, r3 strh r4, [r5] b _08040802 .align 2, 0 _0804065C: .4byte 0x020314E0 _08040660: .4byte 0x0000051C _08040664: .4byte 0x0000132C _08040668: .4byte 0xFFFFFEA5 _0804066C: .4byte 0x0000051E _08040670: ldr r4, _08040694 @ =0x0000132C adds r2, r3, r4 ldr r0, [r2] ldrh r0, [r0, #0x10] subs r0, #0xd ldr r5, _08040698 @ =0x0000051C adds r1, r3, r5 strh r0, [r1] ldr r1, [r2] ldr r2, _0804069C @ =0xFFFFFEA5 adds r0, r2, #0 ldrh r1, [r1, #0x12] adds r0, r0, r1 ldr r4, _080406A0 @ =0x0000051E adds r1, r3, r4 strh r0, [r1] b _08040802 .align 2, 0 _08040694: .4byte 0x0000132C _08040698: .4byte 0x0000051C _0804069C: .4byte 0xFFFFFEA5 _080406A0: .4byte 0x0000051E _080406A4: movs r0, #0 strh r0, [r1] ldr r5, _080406B8 @ =0x00000507 adds r1, r3, r5 movs r0, #3 strb r0, [r1] ldr r0, _080406BC @ =0x00000129 bl m4aSongNumStart b _08040802 .align 2, 0 _080406B8: .4byte 0x00000507 _080406BC: .4byte 0x00000129 _080406C0: movs r7, #7 movs r0, #0xc str r0, [sp, #4] ldr r4, _080406DC @ =0x020314E0 ldr r3, [r4] movs r1, #0xa2 lsls r1, r1, #3 adds r0, r3, r1 ldrh r1, [r0] cmp r1, #1 bhi _080406E0 adds r0, r1, #0 str r0, [sp, #8] b _080407D0 .align 2, 0 _080406DC: .4byte 0x020314E0 _080406E0: cmp r1, #9 bhi _080407C4 ldrh r0, [r0] subs r0, #2 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r0, #2 lsls r0, r0, #0x10 movs r2, #0xa1 lsls r2, r2, #3 adds r1, r3, r2 mov r5, sp ldrh r5, [r5, #4] strh r5, [r1] lsrs r1, r0, #0x10 str r1, [sp, #8] asrs r0, r0, #0x10 cmp r0, #2 bne _080407D0 ldr r2, _080407A0 @ =0x0000132C adds r0, r3, r2 ldr r2, [r0] movs r5, #0x10 ldrsh r0, [r2, r5] subs r0, #0xd ldr r5, _080407A4 @ =0x0000051C adds r1, r3, r5 movs r5, #0 ldrsh r1, [r1, r5] subs r1, r0, r1 str r1, [sp, #0x1c] movs r1, #0x12 ldrsh r0, [r2, r1] ldr r2, _080407A8 @ =0xFFFFFEA5 adds r0, r0, r2 ldr r5, _080407AC @ =0x0000051E adds r1, r3, r5 movs r2, #0 ldrsh r1, [r1, r2] subs r1, r0, r1 str r1, [sp, #0x20] ldr r3, [sp, #0x1c] adds r1, r3, #0 muls r1, r3, r1 ldr r5, [sp, #0x20] adds r0, r5, #0 muls r0, r5, r0 adds r5, r1, r0 movs r0, #8 bl sub_11B0 ldr r2, [r4] ldr r1, _080407B0 @ =0x00000441 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080407D0 ldr r3, _080407B4 @ =0x00000442 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _080407D0 movs r4, #0xe2 lsls r4, r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080407D0 cmp r5, #0xc7 bgt _080407D0 ldr r0, _080407B8 @ =0x0200B0C0 ldr r5, _080407BC @ =0x00001CD8 adds r0, r0, r5 movs r1, #1 strh r1, [r0] ldr r0, _080407C0 @ =0x00000486 adds r1, r2, r0 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] movs r0, #0x95 lsls r0, r0, #1 bl m4aSongNumStart movs r0, #9 bl sub_11B0 b _080407D0 .align 2, 0 _080407A0: .4byte 0x0000132C _080407A4: .4byte 0x0000051C _080407A8: .4byte 0xFFFFFEA5 _080407AC: .4byte 0x0000051E _080407B0: .4byte 0x00000441 _080407B4: .4byte 0x00000442 _080407B8: .4byte 0x0200B0C0 _080407BC: .4byte 0x00001CD8 _080407C0: .4byte 0x00000486 _080407C4: movs r1, #5 str r1, [sp, #8] ldr r2, _080407E4 @ =0x00000507 adds r1, r3, r2 movs r0, #4 strb r0, [r1] _080407D0: ldr r0, _080407E8 @ =0x020314E0 ldr r1, [r0] movs r3, #0xa2 lsls r3, r3, #3 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _08040802 .align 2, 0 _080407E4: .4byte 0x00000507 _080407E8: .4byte 0x020314E0 _080407EC: ldr r0, _08040A88 @ =0x020314E0 ldr r1, [r0] movs r4, #0xa2 lsls r4, r4, #3 adds r2, r1, r4 movs r3, #0 movs r0, #0 strh r0, [r2] ldr r5, _08040A8C @ =0x00000507 adds r1, r1, r5 strb r3, [r1] _08040802: ldr r0, _08040A90 @ =0x0200BFF0 str r0, [sp, #0x10] ldrh r0, [r0] cmp r0, #0 beq _080408F0 ldr r1, _08040A88 @ =0x020314E0 ldr r4, [r1] movs r2, #0xfa lsls r2, r2, #2 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x58 subs r0, r0, r1 ldr r4, [sp, #0x10] strh r0, [r4, #2] ldr r5, _08040A88 @ =0x020314E0 ldr r4, [r5] ldr r1, _08040A94 @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 adds r0, #0x60 ldr r3, [sp, #0x10] strh r0, [r3, #4] movs r2, #0 lsls r1, r7, #0x10 ldr r4, _08040A98 @ =0x086B609E mov sl, r4 ldr r5, _08040A9C @ =0x03005000 mov ip, r5 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #1 mov r8, r0 ldr r7, _08040AA0 @ =0xFFFFFE00 mov sb, r7 _08040864: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r2, ip adds r5, r0, r2 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 ldr r5, [sp, #0x10] movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _08040AA4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldr r7, [sp, #0x10] ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _08040864 ldr r3, _08040A88 @ =0x020314E0 ldr r0, [r3] ldr r4, _08040A8C @ =0x00000507 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080408F0 ldr r0, _08040AA8 @ =0x0200B0C0 movs r5, #0xf3 lsls r5, r5, #4 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080408F0: ldr r7, _08040AAC @ =0x0200C0A8 str r7, [sp, #0x10] adds r1, r7, #0 ldrh r0, [r1] cmp r0, #0 beq _080409DC ldr r2, _08040A88 @ =0x020314E0 ldr r4, [r2] movs r3, #0xfa lsls r3, r3, #2 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x58 subs r0, r0, r1 strh r0, [r7, #2] ldr r0, _08040A88 @ =0x020314E0 ldr r4, [r0] ldr r1, _08040A94 @ =0x000003EA adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 adds r0, #0x60 strh r0, [r7, #4] movs r2, #0 ldr r3, [sp, #4] lsls r1, r3, #0x10 ldr r4, _08040AB0 @ =0x086B5ECA mov sl, r4 ldr r5, _08040A9C @ =0x03005000 mov ip, r5 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #2 mov r8, r0 ldr r7, _08040AA0 @ =0xFFFFFE00 mov sb, r7 _08040952: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r2, ip adds r5, r0, r2 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl mov r4, r8 adds r1, r4, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 ldr r5, [sp, #0x10] movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _08040AA4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldr r7, [sp, #0x10] ldrb r0, [r7, #4] ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #5 ble _08040952 ldr r3, _08040A88 @ =0x020314E0 ldr r0, [r3] ldr r4, _08040A8C @ =0x00000507 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _080409DC ldr r0, _08040AA8 @ =0x0200B0C0 ldr r5, _08040AB4 @ =0x00000FE8 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080409DC: ldr r7, _08040AB8 @ =0x0200C160 str r7, [sp, #0x10] adds r1, r7, #0 ldrh r0, [r1] cmp r0, #0 bne _080409EA b _08040B26 _080409EA: ldr r2, _08040A88 @ =0x020314E0 ldr r1, [r2] ldr r3, _08040ABC @ =0x0000051C adds r0, r1, r3 adds r1, #0x58 ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 adds r4, r7, #0 strh r0, [r4, #2] ldr r1, [r2] ldr r5, _08040AC0 @ =0x0000051E adds r0, r1, r5 adds r1, #0x5a ldrh r0, [r0] ldrh r1, [r1] subs r0, r0, r1 strh r0, [r4, #4] movs r2, #0 ldr r7, _08040A9C @ =0x03005000 mov r8, r7 ldr r0, [sp, #8] lsls r1, r0, #0x10 ldr r3, _08040AC4 @ =0x086B5DCE mov sl, r3 mov ip, r8 asrs r1, r1, #0x10 movs r0, #0x2a adds r4, r1, #0 muls r4, r0, r4 mov sb, r4 ldr r4, _08040AA0 @ =0xFFFFFE00 _08040A2A: lsls r2, r2, #0x10 asrs r1, r2, #0x10 lsls r0, r1, #3 adds r0, #8 ldr r5, [sp, #0x10] adds r6, r5, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r7, ip adds r5, r0, r7 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 add r0, sl mov r3, sb adds r1, r3, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r0, [r6] lsls r0, r0, #3 adds r5, r0, r7 movs r1, #0 ldrsb r1, [r5, r1] ldr r7, [sp, #0x10] movs r3, #4 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r0, _08040AC8 @ =0xFFFFFED4 str r2, [sp, #0x40] cmp r1, r0 bge _08040ACC ldrh r1, [r5, #2] adds r0, r4, #0 ands r0, r1 strh r0, [r5, #2] ldrh r0, [r6] lsls r0, r0, #3 add r0, r8 movs r1, #0xb4 strb r1, [r0] b _08040AF8 .align 2, 0 _08040A88: .4byte 0x020314E0 _08040A8C: .4byte 0x00000507 _08040A90: .4byte 0x0200BFF0 _08040A94: .4byte 0x000003EA _08040A98: .4byte 0x086B609E _08040A9C: .4byte 0x03005000 _08040AA0: .4byte 0xFFFFFE00 _08040AA4: .4byte 0x000001FF _08040AA8: .4byte 0x0200B0C0 _08040AAC: .4byte 0x0200C0A8 _08040AB0: .4byte 0x086B5ECA _08040AB4: .4byte 0x00000FE8 _08040AB8: .4byte 0x0200C160 _08040ABC: .4byte 0x0000051C _08040AC0: .4byte 0x0000051E _08040AC4: .4byte 0x086B5DCE _08040AC8: .4byte 0xFFFFFED4 _08040ACC: ldrh r2, [r5, #2] lsls r1, r2, #0x17 lsrs r1, r1, #0x17 ldr r7, [sp, #0x10] movs r3, #2 ldrsh r0, [r7, r3] adds r1, r1, r0 ldr r7, _08040C70 @ =0x000001FF adds r0, r7, #0 ands r1, r0 adds r0, r4, #0 ands r0, r2 orrs r0, r1 strh r0, [r5, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, r8 ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r3, [r1] adds r0, r0, r3 strb r0, [r1] _08040AF8: ldr r5, [sp, #0x40] movs r7, #0x80 lsls r7, r7, #9 adds r0, r5, r7 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #6 ble _08040A2A ldr r1, _08040C74 @ =0x020314E0 ldr r0, [r1] ldr r2, _08040C78 @ =0x00000507 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bne _08040B26 ldr r0, _08040C7C @ =0x0200B0C0 movs r3, #0x85 lsls r3, r3, #5 adds r0, r0, r3 movs r1, #0 strh r1, [r0] _08040B26: ldr r4, _08040C80 @ =0x0200C388 str r4, [sp, #0x10] ldrh r0, [r4] cmp r0, #0 beq _08040BBC ldr r5, _08040C74 @ =0x020314E0 ldr r4, [r5] ldr r7, _08040C84 @ =0x00000524 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x78 subs r0, r0, r1 ldr r2, [sp, #0x10] strh r0, [r2, #2] ldr r4, [r5] ldr r3, _08040C88 @ =0x00000526 adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x80 subs r0, r0, r1 ldr r7, [sp, #0x10] strh r0, [r7, #4] movs r2, #0 ldr r5, _08040C8C @ =0x03005000 ldr r0, _08040C90 @ =0xFFFFFE00 mov r8, r0 _08040B72: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r1, [sp, #0x10] adds r6, r1, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r6, r2] ldr r7, [sp, #0x10] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _08040C70 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x11 ble _08040B72 _08040BBC: ldr r3, _08040C94 @ =0x0200C440 str r3, [sp, #0x10] ldrh r0, [r3] cmp r0, #0 beq _08040C54 ldr r5, _08040C74 @ =0x020314E0 ldr r4, [r5] ldr r7, _08040C84 @ =0x00000524 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08040C98 @ =0xFFFFFE98 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 ldr r3, [sp, #0x10] strh r0, [r3, #2] ldr r4, [r5] ldr r5, _08040C88 @ =0x00000526 adds r0, r4, r5 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x80 subs r0, r0, r1 ldr r1, [sp, #0x10] strh r0, [r1, #4] movs r2, #0 ldr r5, _08040C8C @ =0x03005000 ldr r3, _08040C90 @ =0xFFFFFE00 mov r8, r3 _08040C0C: lsls r4, r2, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 ldr r7, [sp, #0x10] adds r6, r7, r0 ldrh r3, [r6] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r6, r0] movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _08040C70 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r2, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x11 ble _08040C0C _08040C54: ldr r0, _08040C74 @ =0x020314E0 ldr r1, [r0] movs r3, #0xe3 lsls r3, r3, #2 adds r0, r1, r3 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0 ble _08040CA0 ldr r5, _08040C9C @ =0x0000132C adds r0, r1, r5 ldr r1, [r0] movs r0, #1 b _08040CA8 .align 2, 0 _08040C70: .4byte 0x000001FF _08040C74: .4byte 0x020314E0 _08040C78: .4byte 0x00000507 _08040C7C: .4byte 0x0200B0C0 _08040C80: .4byte 0x0200C388 _08040C84: .4byte 0x00000524 _08040C88: .4byte 0x00000526 _08040C8C: .4byte 0x03005000 _08040C90: .4byte 0xFFFFFE00 _08040C94: .4byte 0x0200C440 _08040C98: .4byte 0xFFFFFE98 _08040C9C: .4byte 0x0000132C _08040CA0: ldr r7, _08040CE4 @ =0x0000132C adds r0, r1, r7 ldr r1, [r0] movs r0, #2 _08040CA8: strb r0, [r1, #1] movs r0, #0 str r0, [sp, #0xc] _08040CAE: ldr r1, [sp, #0xc] lsls r3, r1, #0x10 asrs r2, r3, #0x10 movs r0, #0xb8 adds r1, r2, #0 muls r1, r0, r1 ldr r0, _08040CE8 @ =0x0200BE80 adds r1, r1, r0 str r1, [sp, #0x10] ldr r1, _08040CEC @ =0x020314E0 ldr r0, [r1] ldr r4, _08040CF0 @ =0x00000441 adds r0, r0, r4 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 str r3, [sp, #0x34] cmp r0, #5 bls _08040CD8 b _0804131A _08040CD8: lsls r0, r0, #2 ldr r1, _08040CF4 @ =_08040CF8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08040CE4: .4byte 0x0000132C _08040CE8: .4byte 0x0200BE80 _08040CEC: .4byte 0x020314E0 _08040CF0: .4byte 0x00000441 _08040CF4: .4byte _08040CF8 _08040CF8: @ jump table .4byte _08040D10 @ case 0 .4byte _08040D3C @ case 1 .4byte _08040D7C @ case 2 .4byte _0804103C @ case 3 .4byte _0804120C @ case 4 .4byte _080412D8 @ case 5 _08040D10: movs r5, #0 str r5, [sp] ldr r0, _08040D30 @ =0x020314E0 ldr r1, [r0] ldr r7, [sp, #0x34] asrs r0, r7, #0xe adds r1, r1, r0 ldr r2, _08040D34 @ =0x0000045C adds r0, r1, r2 strh r5, [r0] ldr r4, _08040D38 @ =0x0000045E adds r1, r1, r4 mov r5, sp ldrh r5, [r5] strh r5, [r1] b _0804131A .align 2, 0 _08040D30: .4byte 0x020314E0 _08040D34: .4byte 0x0000045C _08040D38: .4byte 0x0000045E _08040D3C: ldr r0, _08040D74 @ =0x020314E0 ldr r6, [r0] ldr r0, [sp, #0x34] asrs r7, r0, #0x10 lsls r1, r7, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r6, r2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #5 bl __udivsi3 adds r0, #1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] cmp r4, #0xd bhi _08040D66 b _08041300 _08040D66: movs r0, #0 strh r0, [r5] ldr r3, _08040D78 @ =0x00000441 adds r0, r6, r3 adds r0, r0, r7 movs r1, #2 b _08041318 .align 2, 0 _08040D74: .4byte 0x020314E0 _08040D78: .4byte 0x00000441 _08040D7C: ldr r4, _08040FE0 @ =0x020314E0 ldr r0, [r4] ldr r5, [sp, #0x34] asrs r1, r5, #0xf movs r7, #0x8b lsls r7, r7, #3 adds r0, r0, r7 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0xf ands r1, r0 movs r0, #4 str r0, [sp] cmp r1, #3 ble _08040DA6 movs r2, #6 str r2, [sp] cmp r1, #9 bgt _08040DA6 movs r3, #5 str r3, [sp] _08040DA6: ldr r4, _08040FE0 @ =0x020314E0 mov sl, r4 ldr r0, [r4] ldr r5, [sp, #0x34] asrs r5, r5, #0x10 mov sb, r5 ldr r7, _08040FE4 @ =0x00000441 adds r0, r0, r7 add r0, sb ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 ble _08040DC4 b _08040FC0 _08040DC4: ldr r0, _08040FE8 @ =0x0200B0C0 lsls r1, r5, #4 subs r1, r1, r5 lsls r1, r1, #3 ldr r0, [r0, #0x4c] adds r0, r0, r1 movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0xf0 bl __udivsi3 adds r5, r0, #0 lsls r5, r5, #0x10 lsrs r5, r5, #0x10 adds r0, r5, #0 bl sub_C74 ldr r4, [r4] mov r1, sb lsls r1, r1, #2 str r1, [sp, #0x24] adds r4, r4, r1 ldr r2, _08040FEC @ =0x00000464 adds r6, r4, r2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r3, #0xfa lsls r3, r3, #1 mov r8, r3 mov r1, r8 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 adds r7, #0x1b adds r4, r4, r7 strh r1, [r4] adds r0, r5, #0 bl sub_C24 mov r1, sl ldr r7, [r1] ldr r2, [sp, #0x24] adds r5, r7, r2 ldr r3, _08040FF0 @ =0x00000466 adds r4, r5, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl __divsi3 ldrh r1, [r4] adds r1, r1, r0 ldr r4, _08040FF4 @ =0x0000045E mov r8, r4 adds r2, r5, r4 strh r1, [r2] ldr r1, _08040FF8 @ =0x0000132C adds r0, r7, r1 ldr r6, [r0] movs r3, #0x10 ldrsh r4, [r6, r3] ldr r0, _08040FFC @ =0x0000045C adds r5, r5, r0 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa str r2, [sp, #0x38] bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r4, r4, r0 subs r4, #0x10 str r4, [sp, #0x1c] movs r3, #0x12 ldrsh r4, [r6, r3] ldr r2, [sp, #0x38] movs r5, #0 ldrsh r0, [r2, r5] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 subs r4, r4, r0 subs r4, #0x20 str r4, [sp, #0x20] ldr r0, [sp, #0x1c] adds r1, r0, #0 muls r1, r0, r1 adds r0, r4, #0 muls r0, r4, r0 adds r5, r1, r0 ldr r1, _08041000 @ =0x00000383 adds r0, r7, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08040E94 b _08040FC0 _08040E94: movs r2, #0xe2 lsls r2, r2, #2 adds r0, r7, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08040EA6 b _08040FC0 _08040EA6: ldr r3, _08041004 @ =0x00000385 adds r0, r7, r3 movs r4, #0xe1 lsls r4, r4, #2 adds r1, r7, r4 movs r2, #0 ldrsb r2, [r0, r2] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 blt _08040EBE b _08040FC0 _08040EBE: ldr r1, _08041008 @ =0x00000452 adds r0, r7, r1 ldrh r4, [r0] cmp r4, #0 bne _08040FC0 ldr r6, _0804100C @ =0x0000012B cmp r5, r6 bgt _08040FC0 ldr r2, _08041010 @ =0x00000486 adds r1, r7, r2 movs r0, #6 strh r0, [r1] movs r3, #1 strb r3, [r7, #0x1f] mov r5, sl ldr r1, [r5] mov r7, sb lsls r2, r7, #1 movs r5, #0x8b lsls r5, r5, #3 adds r0, r1, r5 adds r0, r0, r2 strh r4, [r0] ldr r7, _08040FE4 @ =0x00000441 adds r1, r1, r7 add r1, sb movs r0, #3 strb r0, [r1] mov r1, sl ldr r0, [r1] ldr r2, _08041014 @ =0x000005FA adds r0, r0, r2 strb r3, [r0] ldr r5, [r1] ldr r3, [sp, #0x24] adds r4, r5, r3 adds r7, #0x1b adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x10 str r0, [sp, #0x14] add r4, r8 movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x20 str r0, [sp, #0x18] ldr r3, [sp, #0x14] lsls r1, r3, #8 ldr r4, _08040FF8 @ =0x0000132C adds r0, r5, r4 ldr r2, [r0] ldr r0, [r2, #0x34] subs r0, r1, r0 str r0, [sp, #0x1c] ldr r7, [sp, #0x18] lsls r1, r7, #8 ldr r0, [r2, #0x38] subs r0, r1, r0 str r0, [sp, #0x20] ldr r4, _08041018 @ =0x000005AC adds r5, r5, r4 ldr r1, [sp, #0x1c] adds r0, r1, #0 muls r0, r1, r0 ldr r2, [sp, #0x20] adds r1, r2, #0 muls r1, r2, r1 adds r0, r0, r1 str r0, [r5] lsls r0, r0, #2 bl Sqrt mov r3, sl ldr r1, [r3] adds r1, r1, r4 lsls r0, r0, #0x10 lsrs r0, r0, #0x11 str r0, [r1] ldr r4, [sp, #0x1c] rsbs r0, r4, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r5, [sp, #0x20] lsls r1, r5, #0x10 asrs r1, r1, #0x10 bl ArcTan2 mov r7, sl ldr r2, [r7] movs r3, #0xb6 lsls r3, r3, #3 adds r1, r2, r3 strh r0, [r1] ldr r0, [sp, #0xc] adds r0, #1 ldr r4, _0804101C @ =0x00000505 adds r2, r2, r4 strb r0, [r2] ldr r2, [r7] ldr r5, [sp, #0x24] adds r1, r2, r5 ldr r7, _08040FFC @ =0x0000045C adds r0, r1, r7 ldrh r3, [r0] adds r4, #0x1b adds r0, r2, r4 strh r3, [r0] add r1, r8 ldrh r0, [r1] ldr r5, _08041020 @ =0x00000522 adds r2, r2, r5 strh r0, [r2] adds r0, r6, #0 bl m4aSongNumStart movs r0, #0xd bl sub_11B0 _08040FC0: ldr r0, _08040FE0 @ =0x020314E0 ldr r3, [r0] ldr r7, [sp, #0x34] asrs r4, r7, #0x10 lsls r1, r4, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r3, r2 adds r1, r0, r1 ldrh r2, [r1] ldr r0, _08041024 @ =0x00000347 cmp r2, r0 bhi _08041028 adds r0, r2, #1 strh r0, [r1] b _0804131A .align 2, 0 _08040FE0: .4byte 0x020314E0 _08040FE4: .4byte 0x00000441 _08040FE8: .4byte 0x0200B0C0 _08040FEC: .4byte 0x00000464 _08040FF0: .4byte 0x00000466 _08040FF4: .4byte 0x0000045E _08040FF8: .4byte 0x0000132C _08040FFC: .4byte 0x0000045C _08041000: .4byte 0x00000383 _08041004: .4byte 0x00000385 _08041008: .4byte 0x00000452 _0804100C: .4byte 0x0000012B _08041010: .4byte 0x00000486 _08041014: .4byte 0x000005FA _08041018: .4byte 0x000005AC _0804101C: .4byte 0x00000505 _08041020: .4byte 0x00000522 _08041024: .4byte 0x00000347 _08041028: movs r0, #0 strh r0, [r1] ldr r5, _08041038 @ =0x00000441 adds r0, r3, r5 adds r0, r0, r4 movs r1, #5 b _08041318 .align 2, 0 _08041038: .4byte 0x00000441 _0804103C: ldr r7, _080411E4 @ =0x020314E0 ldr r0, [r7] ldr r2, [sp, #0x34] asrs r1, r2, #0xf movs r3, #0x8b lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0xf ands r1, r0 movs r4, #4 str r4, [sp] cmp r1, #3 ble _08041066 movs r5, #6 str r5, [sp] cmp r1, #9 bgt _08041066 movs r7, #5 str r7, [sp] _08041066: ldr r0, _080411E4 @ =0x020314E0 ldr r6, [r0] ldr r1, [sp, #0x34] asrs r1, r1, #0x10 str r1, [sp, #0x28] lsls r2, r1, #1 str r2, [sp, #0x2c] movs r3, #0x8b lsls r3, r3, #3 adds r0, r6, r3 adds r0, r0, r2 ldrh r1, [r0] movs r0, #0x1d subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bgt _0804108E movs r4, #0xa _0804108E: movs r5, #0xb6 lsls r5, r5, #3 mov sl, r5 adds r5, r6, r5 lsls r4, r4, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #0xd movs r1, #0x1e bl __divsi3 adds r1, r0, #0 movs r0, #0x80 lsls r0, r0, #6 subs r0, r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 ldrh r1, [r5] subs r1, r1, r0 strh r1, [r5] ldr r7, _080411E8 @ =0x0000132C adds r0, r6, r7 ldr r1, [r0] ldr r2, _080411EC @ =0xFFFFE000 adds r0, r2, #0 ldrh r3, [r1, #0xa] adds r0, r0, r3 strh r0, [r1, #0xa] ldr r7, _080411F0 @ =0x000005AC adds r0, r6, r7 ldr r0, [r0] muls r0, r4, r0 movs r1, #0x1e bl __divsi3 mov sb, r0 ldr r0, [sp, #0x28] lsls r4, r0, #2 adds r4, r6, r4 ldr r1, _080411F4 @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x10 str r0, [sp, #0x14] ldr r3, _080411F8 @ =0x0000045E adds r4, r4, r3 movs r7, #0 ldrsh r0, [r4, r7] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x20 str r0, [sp, #0x18] ldrh r0, [r5] bl sub_C74 ldr r1, _080411E4 @ =0x020314E0 ldr r5, [r1] ldr r2, _080411E8 @ =0x0000132C adds r1, r5, r2 ldr r6, [r1] ldr r3, [sp, #0x14] lsls r4, r3, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r7, sb muls r7, r0, r7 adds r0, r7, #0 ldr r1, _080411FC @ =0x00004E20 mov r8, r1 bl __divsi3 adds r4, r4, r0 str r4, [r6, #0x34] add r5, sl ldrh r0, [r5] bl sub_C24 ldr r2, _080411E4 @ =0x020314E0 ldr r7, [r2] ldr r3, _080411E8 @ =0x0000132C adds r5, r7, r3 ldr r6, [r5] ldr r1, [sp, #0x18] lsls r4, r1, #8 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, sb muls r2, r0, r2 adds r0, r2, #0 mov r1, r8 bl __divsi3 subs r4, r4, r0 str r4, [r6, #0x38] ldr r4, [r5] movs r3, #0x30 ldrsh r0, [r4, r3] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x30] ldr r4, [r5] movs r5, #0x32 ldrsh r0, [r4, r5] lsls r0, r0, #2 movs r1, #5 bl __divsi3 strh r0, [r4, #0x32] movs r0, #0xe3 lsls r0, r0, #2 adds r2, r7, r0 movs r3, #0 ldrsh r1, [r2, r3] ldr r0, _08041200 @ =0x00000707 cmp r1, r0 bgt _0804119C ldr r4, _08041204 @ =0x0000038A adds r0, r7, r4 movs r5, #0 strh r5, [r0] ldrh r0, [r2] adds r0, #0x20 strh r0, [r2] _0804119C: ldr r7, _080411E4 @ =0x020314E0 ldr r2, [r7] movs r1, #0x8b lsls r1, r1, #3 adds r0, r2, r1 ldr r3, [sp, #0x2c] adds r1, r0, r3 ldrh r0, [r1] cmp r0, #0xb3 bhi _080411B2 b _080412BE _080411B2: movs r4, #0 strh r4, [r1] ldr r5, _08041208 @ =0x00000441 adds r0, r2, r5 ldr r7, [sp, #0x28] adds r0, r0, r7 movs r1, #4 strb r1, [r0] ldr r0, _080411E4 @ =0x020314E0 ldr r2, [r0] ldr r1, _080411F0 @ =0x000005AC adds r3, r2, r1 ldr r0, [r3] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 str r0, [r3] ldr r3, _080411E8 @ =0x0000132C adds r2, r2, r3 ldr r1, [r2] movs r0, #0xa5 lsls r0, r0, #8 str r0, [r1, #0x38] b _0804131A .align 2, 0 _080411E4: .4byte 0x020314E0 _080411E8: .4byte 0x0000132C _080411EC: .4byte 0xFFFFE000 _080411F0: .4byte 0x000005AC _080411F4: .4byte 0x0000045C _080411F8: .4byte 0x0000045E _080411FC: .4byte 0x00004E20 _08041200: .4byte 0x00000707 _08041204: .4byte 0x0000038A _08041208: .4byte 0x00000441 _0804120C: ldr r4, _080412C4 @ =0x020314E0 mov sl, r4 ldr r0, [r4] ldr r5, [sp, #0x34] asrs r5, r5, #0x10 str r5, [sp, #0x30] lsls r7, r5, #1 movs r1, #0x8b lsls r1, r1, #3 adds r0, r0, r1 adds r0, r0, r7 ldrh r0, [r0] cmp r0, #0x81 bhi _0804131A cmp r0, #0xa bne _08041234 movs r0, #0x96 lsls r0, r0, #1 bl m4aSongNumStart _08041234: mov r2, sl ldr r6, [r2] ldr r4, _080412C8 @ =0x0000038A adds r3, r6, r4 ldrh r1, [r3] subs r1, #1 movs r5, #0 mov sb, r5 movs r0, #0 mov r8, r0 strh r1, [r3] adds r4, #2 adds r2, r6, r4 ldrh r0, [r2] adds r0, r0, r1 strh r0, [r2] lsls r0, r0, #0x10 cmp r0, #0 bgt _080412B0 mov r5, r8 strh r5, [r2] ldr r4, _080412CC @ =0x0000132C adds r0, r6, r4 ldr r5, [r0] movs r1, #0 ldrsh r0, [r3, r1] lsls r0, r0, #7 movs r1, #0xa bl __divsi3 rsbs r0, r0, #0 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 strh r0, [r5, #0x32] mov r2, sb strb r2, [r6, #0x1f] mov r3, sl ldr r1, [r3] movs r5, #0x8b lsls r5, r5, #3 adds r0, r1, r5 adds r0, r0, r7 mov r2, r8 strh r2, [r0] adds r4, r1, r4 ldr r0, [r4] strh r2, [r0, #0x30] ldr r3, _080412D0 @ =0x00000441 adds r1, r1, r3 ldr r4, [sp, #0x30] adds r1, r1, r4 mov r5, sb strb r5, [r1] mov r1, sl ldr r0, [r1] ldr r2, _080412D4 @ =0x000005FA adds r0, r0, r2 strb r5, [r0] movs r0, #8 bl sub_11B0 _080412B0: mov r3, sl ldr r1, [r3] movs r4, #0x8b lsls r4, r4, #3 adds r1, r1, r4 adds r1, r1, r7 ldrh r0, [r1] _080412BE: adds r0, #1 strh r0, [r1] b _0804131A .align 2, 0 _080412C4: .4byte 0x020314E0 _080412C8: .4byte 0x0000038A _080412CC: .4byte 0x0000132C _080412D0: .4byte 0x00000441 _080412D4: .4byte 0x000005FA _080412D8: ldr r0, _08041308 @ =0x020314E0 ldr r6, [r0] ldr r5, [sp, #0x34] asrs r7, r5, #0x10 lsls r1, r7, #1 movs r2, #0x8b lsls r2, r2, #3 adds r0, r6, r2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, #0 movs r1, #6 bl __udivsi3 adds r0, #7 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] cmp r4, #0xa bhi _0804130C _08041300: adds r0, r4, #1 strh r0, [r5] b _0804131A .align 2, 0 _08041308: .4byte 0x020314E0 _0804130C: movs r1, #0 movs r0, #0 strh r0, [r5] ldr r3, _08041540 @ =0x00000441 adds r0, r6, r3 adds r0, r0, r7 _08041318: strb r1, [r0] _0804131A: ldr r4, [sp, #0x10] ldrh r0, [r4] cmp r0, #0 beq _08041400 ldr r2, _08041544 @ =0x040000D4 ldr r5, [sp] lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08041548 @ =0x084A6EEC adds r0, r0, r1 str r0, [r2] ldr r0, _0804154C @ =0x06011EA0 str r0, [r2, #4] ldr r0, _08041550 @ =0x80000140 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08041554 @ =0x020314E0 ldr r5, [r0] ldr r7, [sp, #0x34] asrs r4, r7, #0xe adds r4, r5, r4 ldr r1, _08041558 @ =0x0000045C adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r1, r5, #0 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 ldr r3, [sp, #0x10] strh r0, [r3, #2] ldr r7, _0804155C @ =0x0000045E adds r4, r4, r7 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r5, #0x5a ldrh r1, [r5] subs r0, r0, r1 ldr r2, [sp, #0x10] strh r0, [r2, #4] movs r2, #0 ldr r5, _08041560 @ =0x03005000 ldr r3, _08041564 @ =0xFFFFFE00 mov r8, r3 _08041384: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r4, [sp, #0x10] adds r6, r4, r0 ldrh r2, [r6] lsls r2, r2, #3 adds r2, r2, r5 movs r7, #2 ldrsh r1, [r6, r7] movs r7, #2 ldrsh r0, [r4, r7] adds r1, r1, r0 ldr r4, _08041568 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, r8 ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 adds r1, r1, r5 ldr r7, [sp, #0x10] ldrb r0, [r7, #4] ldrb r6, [r6, #4] adds r0, r0, r6 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08041384 ldr r1, _08041554 @ =0x020314E0 ldr r0, [r1] ldr r3, [sp, #0x34] asrs r2, r3, #0x10 ldr r4, _08041540 @ =0x00000441 adds r0, r0, r4 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080413E6 strh r0, [r7] _080413E6: ldr r0, [r1] ldr r5, _0804156C @ =0x00000505 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08041400 subs r0, #1 cmp r2, r0 bne _08041400 movs r0, #0 ldr r7, [sp, #0x10] strh r0, [r7] _08041400: ldr r1, [sp, #0x34] movs r2, #0x80 lsls r2, r2, #9 adds r0, r1, r2 lsrs r3, r0, #0x10 str r3, [sp, #0xc] asrs r0, r0, #0x10 cmp r0, #1 bgt _08041414 b _08040CAE _08041414: bl sub_417F8 ldr r4, _08041570 @ =0x0200C218 str r4, [sp, #0x10] ldrh r0, [r4] cmp r0, #0 beq _0804150E ldr r5, _08041554 @ =0x020314E0 ldr r4, [r5] movs r7, #0xa4 lsls r7, r7, #3 adds r0, r4, r7 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r0, r0, r1 ldr r2, [sp, #0x10] strh r0, [r2, #2] ldr r4, [r5] ldr r3, _08041574 @ =0x00000522 adds r0, r4, r3 movs r7, #0 ldrsh r0, [r0, r7] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r0, r0, r1 ldr r1, [sp, #0x10] strh r0, [r1, #4] ldr r0, [r5] ldr r2, _08041578 @ =0x0000050E adds r0, r0, r2 ldrh r0, [r0] movs r1, #5 bl __udivsi3 movs r2, #0 ldr r3, _0804157C @ =0x086B5CC0 mov sl, r3 ldr r4, _08041560 @ =0x03005000 mov ip, r4 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 subs r1, r1, r0 lsls r1, r1, #1 mov r8, r1 ldr r5, _08041564 @ =0xFFFFFE00 mov sb, r5 _08041482: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 ldr r7, [sp, #0x10] adds r6, r7, r0 ldrh r0, [r6] lsls r0, r0, #3 mov r1, ip adds r5, r0, r1 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl mov r2, r8 adds r1, r2, r0 ldrh r0, [r1] strh r0, [r5] adds r1, #2 adds r5, #2 ldrh r0, [r1] strh r0, [r5] ldrh r0, [r1, #2] strh r0, [r5, #2] ldrh r2, [r6] lsls r2, r2, #3 add r2, ip ldrh r4, [r2, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 movs r5, #2 ldrsh r0, [r7, r5] adds r1, r1, r0 ldr r7, _08041568 @ =0x000001FF adds r0, r7, #0 ands r1, r0 mov r0, sb ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6] lsls r1, r1, #3 add r1, ip ldr r2, [sp, #0x10] ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #4 ble _08041482 ldr r0, _08041554 @ =0x020314E0 ldr r0, [r0] ldr r5, _08041578 @ =0x0000050E adds r1, r0, r5 ldrh r0, [r1] cmp r0, #0x18 bhi _0804150E adds r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x19 bne _0804150E movs r0, #0 ldr r7, [sp, #0x10] strh r0, [r7] _0804150E: ldr r1, _08041554 @ =0x020314E0 ldr r0, [r1] ldr r3, _0804156C @ =0x00000505 adds r2, r0, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 beq _08041530 movs r0, #0 strb r0, [r2] ldr r1, [r1] ldr r4, _08041578 @ =0x0000050E adds r1, r1, r4 strh r0, [r1] movs r0, #1 ldr r5, [sp, #0x10] strh r0, [r5] _08041530: add sp, #0x44 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08041540: .4byte 0x00000441 _08041544: .4byte 0x040000D4 _08041548: .4byte 0x084A6EEC _0804154C: .4byte 0x06011EA0 _08041550: .4byte 0x80000140 _08041554: .4byte 0x020314E0 _08041558: .4byte 0x0000045C _0804155C: .4byte 0x0000045E _08041560: .4byte 0x03005000 _08041564: .4byte 0xFFFFFE00 _08041568: .4byte 0x000001FF _0804156C: .4byte 0x00000505 _08041570: .4byte 0x0200C218 _08041574: .4byte 0x00000522 _08041578: .4byte 0x0000050E _0804157C: .4byte 0x086B5CC0 thumb_func_start sub_41580 sub_41580: @ 0x08041580 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080415F4 @ =0x0200CD98 mov sb, r0 ldrh r0, [r0] cmp r0, #0 bne _08041596 b _080417D0 _08041596: ldr r1, _080415F8 @ =0x020314E0 ldr r5, [r1] ldr r2, _080415FC @ =0x00000486 adds r6, r5, r2 ldrh r7, [r6] subs r0, r7, #1 strh r0, [r6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov sl, r1 cmp r0, #5 bgt _080415B0 b _080416C2 _080415B0: ldr r4, _08041600 @ =0x08137D48 movs r1, #0 ldrsh r0, [r6, r1] movs r1, #0x21 bl __modsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #3 bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xf adds r0, r0, r4 ldrh r0, [r0] mov r8, r0 ldr r1, _08041604 @ =0x0000047F adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08041658 cmp r0, #7 bne _0804160C ldr r2, _08041608 @ =0x0000132C adds r0, r5, r2 ldr r1, [r0] ldr r0, [r1, #0x34] movs r4, #0x80 lsls r4, r4, #1 adds r0, r0, r4 b _0804163A .align 2, 0 _080415F4: .4byte 0x0200CD98 _080415F8: .4byte 0x020314E0 _080415FC: .4byte 0x00000486 _08041600: .4byte 0x08137D48 _08041604: .4byte 0x0000047F _08041608: .4byte 0x0000132C _0804160C: cmp r0, #4 bne _08041628 ldr r7, _08041620 @ =0x0000132C adds r0, r5, r7 ldr r1, [r0] ldr r0, [r1, #0x34] ldr r2, _08041624 @ =0xFFFFFE00 adds r0, r0, r2 b _0804163A .align 2, 0 _08041620: .4byte 0x0000132C _08041624: .4byte 0xFFFFFE00 _08041628: cmp r0, #1 bne _0804163C ldr r4, _0804164C @ =0x0000132C adds r0, r5, r4 ldr r1, [r0] ldr r0, [r1, #0x34] movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 _0804163A: str r0, [r1, #0x34] _0804163C: ldr r0, _08041650 @ =0x020314E0 ldr r1, [r0] ldr r7, _08041654 @ =0x0000047F adds r1, r1, r7 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _08041682 .align 2, 0 _0804164C: .4byte 0x0000132C _08041650: .4byte 0x020314E0 _08041654: .4byte 0x0000047F _08041658: ldrh r0, [r5, #4] cmp r0, #0 beq _08041682 adds r0, r7, #0 subs r0, #0x1f strh r0, [r6] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 bgt _08041670 movs r0, #5 strh r0, [r6] _08041670: mov r2, sl ldr r0, [r2] adds r0, r0, r1 movs r1, #7 strb r1, [r0] movs r0, #0x95 lsls r0, r0, #1 bl m4aSongNumStart _08041682: ldr r0, _080416A8 @ =0x020314E0 ldr r5, [r0] movs r7, #0x90 lsls r7, r7, #3 adds r4, r5, r7 ldrh r3, [r4] mov sl, r0 cmp r3, #0 beq _080416B6 subs r0, r3, #1 strh r0, [r4] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x34 bls _080416AC movs r0, #8 mov r8, r0 b _080416C6 .align 2, 0 _080416A8: .4byte 0x020314E0 _080416AC: cmp r0, #0x2a bls _080416C6 movs r1, #9 mov r8, r1 b _080416C6 _080416B6: ldrh r0, [r5, #4] cmp r0, #0 beq _080416C6 movs r0, #0x3c strh r0, [r4] b _080416C6 _080416C2: movs r2, #8 mov r8, r2 _080416C6: mov r4, sl ldr r1, [r4] ldr r5, _080416F4 @ =0x00000486 adds r0, r1, r5 movs r7, #0 ldrsh r3, [r0, r7] cmp r3, #0 bne _08041704 ldr r0, _080416F8 @ =0x0200B0C0 ldr r1, _080416FC @ =0x00001CD8 adds r0, r0, r1 movs r2, #0 strh r3, [r0] ldr r0, [r4] movs r4, #0x90 lsls r4, r4, #3 adds r1, r0, r4 strh r3, [r1] ldr r5, _08041700 @ =0x00000383 adds r0, r0, r5 strb r2, [r0] b _08041722 .align 2, 0 _080416F4: .4byte 0x00000486 _080416F8: .4byte 0x0200B0C0 _080416FC: .4byte 0x00001CD8 _08041700: .4byte 0x00000383 _08041704: ldr r7, _080417E0 @ =0x00000383 adds r1, r1, r7 movs r2, #0 movs r0, #1 strb r0, [r1] mov r1, sl ldr r0, [r1] ldr r4, _080417E4 @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] strh r2, [r1, #0x30] ldr r1, [r0] strh r2, [r1, #0x32] ldr r0, [r0] strh r2, [r0, #6] _08041722: mov r5, sl ldr r2, [r5] ldr r7, _080417E4 @ =0x0000132C adds r3, r2, r7 ldr r0, [r3] adds r1, r2, #0 adds r1, #0x58 ldrh r0, [r0, #0x10] ldrh r1, [r1] subs r0, r0, r1 subs r0, #8 mov r1, sb strh r0, [r1, #2] ldr r0, [r3] adds r2, #0x5a ldrh r0, [r0, #0x12] ldrh r1, [r2] subs r0, r0, r1 subs r0, #8 mov r2, sb strh r0, [r2, #4] movs r2, #0 mov r4, r8 lsls r1, r4, #0x10 ldr r5, _080417E8 @ =0x086B5D56 mov sl, r5 ldr r6, _080417EC @ =0x03005000 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov ip, r0 ldr r7, _080417F0 @ =0xFFFFFE00 mov r8, r7 _08041766: lsls r3, r2, #0x10 asrs r3, r3, #0x10 lsls r4, r3, #3 adds r4, #8 add r4, sb ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 add r0, sl add r0, ip ldrh r1, [r0] strh r1, [r2] adds r0, #2 adds r2, #2 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0, #2] strh r0, [r2, #2] ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r6 ldrh r0, [r2, #2] lsls r1, r0, #0x17 lsrs r1, r1, #0x17 mov r5, sb movs r7, #2 ldrsh r0, [r5, r7] adds r1, r1, r0 ldr r5, _080417F4 @ =0x000001FF adds r0, r5, #0 ands r1, r0 mov r0, r8 ldrh r7, [r2, #2] ands r0, r7 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r6 mov r2, sb ldrb r0, [r2, #4] ldrb r4, [r1] adds r0, r0, r4 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r2, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08041766 _080417D0: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080417E0: .4byte 0x00000383 _080417E4: .4byte 0x0000132C _080417E8: .4byte 0x086B5D56 _080417EC: .4byte 0x03005000 _080417F0: .4byte 0xFFFFFE00 _080417F4: .4byte 0x000001FF thumb_func_start sub_417F8 sub_417F8: @ 0x080417F8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _08041BD0 @ =0x0200C4F8 ldrh r0, [r6] ldr r1, _08041BD4 @ =0x020314E0 mov sl, r1 cmp r0, #0 bne _08041810 b _08041922 _08041810: ldr r4, [r1] movs r2, #0xa5 lsls r2, r2, #3 adds r0, r4, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r5, sl ldr r4, [r5] ldr r1, _08041BD8 @ =0x0000052A adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r3, #0xb8 adds r3, r3, r6 mov sb, r3 ldr r7, _08041BDC @ =0x03005000 ldr r4, _08041BE0 @ =0xFFFFFE00 mov r8, r4 _08041856: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041856 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041BDC @ =0x03005000 ldr r1, _08041BE0 @ =0xFFFFFE00 mov r8, r1 _080418DE: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xd ble _080418DE _08041922: ldr r6, _08041BE8 @ =0x0200C668 ldrh r0, [r6] cmp r0, #0 bne _0804192C b _08041A40 _0804192C: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r1, #0xb8 adds r1, r1, r6 mov sb, r1 ldr r7, _08041BDC @ =0x03005000 ldr r2, _08041BE0 @ =0xFFFFFE00 mov r8, r2 _08041974: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041974 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041BDC @ =0x03005000 ldr r1, _08041BE0 @ =0xFFFFFE00 mov r8, r1 _080419FC: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _080419FC _08041A40: ldr r6, _08041BEC @ =0x0200C7D8 ldrh r0, [r6] cmp r0, #0 bne _08041A4A b _08041B5E _08041A4A: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r1, #0xb8 adds r1, r1, r6 mov sb, r1 ldr r7, _08041BDC @ =0x03005000 ldr r2, _08041BE0 @ =0xFFFFFE00 mov r8, r2 _08041A92: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041A92 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] adds r1, #0x80 subs r0, r0, r1 strh r0, [r6, #2] mov r2, sl ldr r4, [r2] ldr r3, _08041BD8 @ =0x0000052A adds r0, r4, r3 movs r5, #0 ldrsh r0, [r0, r5] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041BDC @ =0x03005000 ldr r1, _08041BE0 @ =0xFFFFFE00 mov r8, r1 _08041B1A: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041BE4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _08041B1A _08041B5E: ldr r6, _08041BF0 @ =0x0200C948 ldrh r0, [r6] cmp r0, #0 bne _08041B68 b _08041CB0 _08041B68: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041BF4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r2, #0xb8 adds r2, r2, r6 mov sb, r2 ldr r7, _08041BDC @ =0x03005000 ldr r3, _08041BE0 @ =0xFFFFFE00 mov r8, r3 _08041BB4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] b _08041BF8 .align 2, 0 _08041BD0: .4byte 0x0200C4F8 _08041BD4: .4byte 0x020314E0 _08041BD8: .4byte 0x0000052A _08041BDC: .4byte 0x03005000 _08041BE0: .4byte 0xFFFFFE00 _08041BE4: .4byte 0x000001FF _08041BE8: .4byte 0x0200C668 _08041BEC: .4byte 0x0200C7D8 _08041BF0: .4byte 0x0200C948 _08041BF4: .4byte 0xFFFFFE90 _08041BF8: adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041BB4 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041FB8 @ =0x03005000 ldr r2, _08041FBC @ =0xFFFFFE00 mov r8, r2 _08041C6C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xd ble _08041C6C _08041CB0: ldr r6, _08041FC0 @ =0x0200CAB8 ldrh r0, [r6] cmp r0, #0 bne _08041CBA b _08041DD6 _08041CBA: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r2, #0xb8 adds r2, r2, r6 mov sb, r2 ldr r7, _08041FB8 @ =0x03005000 ldr r3, _08041FBC @ =0xFFFFFE00 mov r8, r3 _08041D06: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041D06 mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041FB8 @ =0x03005000 ldr r2, _08041FBC @ =0xFFFFFE00 mov r8, r2 _08041D92: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _08041D92 _08041DD6: ldr r6, _08041FC4 @ =0x0200CC28 ldrh r0, [r6] cmp r0, #0 bne _08041DE0 b _08041EFC _08041DE0: mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 movs r2, #0xb8 adds r2, r2, r6 mov sb, r2 ldr r7, _08041FB8 @ =0x03005000 ldr r3, _08041FBC @ =0xFFFFFE00 mov r8, r3 _08041E2C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xe ble _08041E2C mov r6, sb mov r3, sl ldr r4, [r3] movs r5, #0xa5 lsls r5, r5, #3 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldr r2, _08041FB4 @ =0xFFFFFE90 adds r1, r2, #0 ldrh r4, [r4] adds r1, r1, r4 subs r0, r0, r1 strh r0, [r6, #2] mov r3, sl ldr r4, [r3] adds r5, #2 adds r0, r4, r5 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 adds r4, #0x5a ldrh r1, [r4] subs r1, #0x5a subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r7, _08041FB8 @ =0x03005000 ldr r2, _08041FBC @ =0xFFFFFE00 mov r8, r2 _08041EB8: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08041FB0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _08041EB8 _08041EFC: ldr r3, _08041FC8 @ =0x0200B0C0 ldr r4, _08041FCC @ =0x000012C8 adds r0, r3, r4 ldrh r1, [r0] cmp r1, #0 bne _08041F0A b _08042014 _08041F0A: ldr r0, _08041FD0 @ =0x020314E0 ldr r2, [r0] ldr r5, _08041FD4 @ =0x00000514 adds r0, r2, r5 ldrh r0, [r0] cmp r0, #6 bne _08041F7A ldr r1, _08041FD8 @ =0x00001438 adds r0, r3, r1 movs r1, #0 strh r1, [r0] ldr r4, _08041FDC @ =0x000014F0 adds r0, r3, r4 strh r1, [r0] ldr r5, _08041FE0 @ =0x000015A8 adds r0, r3, r5 movs r1, #1 strh r1, [r0] movs r4, #0xb3 lsls r4, r4, #5 adds r0, r3, r4 strh r1, [r0] ldr r5, _08041FE4 @ =0x00000441 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08041F7A ldr r1, _08041FE8 @ =0x00000442 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08041F7A movs r3, #0xe2 lsls r3, r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08041F7A ldr r4, _08041FEC @ =0x0000132C adds r0, r2, r4 ldr r1, [r0] movs r5, #0xfa lsls r5, r5, #1 adds r0, r5, #0 ldrh r2, [r1, #0x30] adds r0, r0, r2 strh r0, [r1, #0x30] movs r0, #0xd bl sub_11B0 _08041F7A: ldr r4, _08041FD0 @ =0x020314E0 ldr r0, [r4] ldr r3, _08041FD4 @ =0x00000514 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xb bne _08041FA6 ldr r1, _08041FC8 @ =0x0200B0C0 ldr r5, _08041FE0 @ =0x000015A8 adds r0, r1, r5 movs r2, #0 strh r2, [r0] adds r5, #0xb8 adds r0, r1, r5 strh r2, [r0] ldr r2, _08041FF0 @ =0x00001718 adds r0, r1, r2 movs r2, #1 strh r2, [r0] ldr r5, _08041FF4 @ =0x000017D0 adds r1, r1, r5 strh r2, [r1] _08041FA6: ldr r0, [r4] adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xe b _08041FF8 .align 2, 0 _08041FB0: .4byte 0x000001FF _08041FB4: .4byte 0xFFFFFE90 _08041FB8: .4byte 0x03005000 _08041FBC: .4byte 0xFFFFFE00 _08041FC0: .4byte 0x0200CAB8 _08041FC4: .4byte 0x0200CC28 _08041FC8: .4byte 0x0200B0C0 _08041FCC: .4byte 0x000012C8 _08041FD0: .4byte 0x020314E0 _08041FD4: .4byte 0x00000514 _08041FD8: .4byte 0x00001438 _08041FDC: .4byte 0x000014F0 _08041FE0: .4byte 0x000015A8 _08041FE4: .4byte 0x00000441 _08041FE8: .4byte 0x00000442 _08041FEC: .4byte 0x0000132C _08041FF0: .4byte 0x00001718 _08041FF4: .4byte 0x000017D0 _08041FF8: bne _080420CC ldr r0, _08042008 @ =0x0200B0C0 ldr r2, _0804200C @ =0x00001718 adds r1, r0, r2 movs r2, #0 strh r2, [r1] ldr r3, _08042010 @ =0x000017D0 b _080420C8 .align 2, 0 _08042008: .4byte 0x0200B0C0 _0804200C: .4byte 0x00001718 _08042010: .4byte 0x000017D0 _08042014: ldr r0, _08042274 @ =0x020314E0 ldr r2, [r0] ldr r4, _08042278 @ =0x00000514 adds r0, r2, r4 ldrh r0, [r0] cmp r0, #6 bne _08042082 ldr r5, _0804227C @ =0x0200B0C0 ldr r3, _08042280 @ =0x00001888 adds r0, r5, r3 strh r1, [r0] movs r4, #0xca lsls r4, r4, #5 adds r0, r5, r4 strh r1, [r0] ldr r1, _08042284 @ =0x000019F8 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r3, _08042288 @ =0x00001AB0 adds r0, r5, r3 strh r1, [r0] ldr r4, _0804228C @ =0x00000441 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08042082 ldr r5, _08042290 @ =0x00000442 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _08042082 movs r1, #0xe2 lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08042082 ldr r3, _08042294 @ =0x0000132C adds r0, r2, r3 ldr r1, [r0] ldr r4, _08042298 @ =0xFFFFFE0C adds r0, r4, #0 ldrh r5, [r1, #0x30] adds r0, r0, r5 strh r0, [r1, #0x30] movs r0, #0xd bl sub_11B0 _08042082: ldr r4, _08042274 @ =0x020314E0 ldr r0, [r4] ldr r3, _08042278 @ =0x00000514 adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xb bne _080420B0 ldr r1, _0804227C @ =0x0200B0C0 ldr r2, _08042284 @ =0x000019F8 adds r0, r1, r2 movs r2, #0 strh r2, [r0] ldr r5, _08042288 @ =0x00001AB0 adds r0, r1, r5 strh r2, [r0] ldr r2, _0804229C @ =0x00001B68 adds r0, r1, r2 movs r2, #1 strh r2, [r0] movs r5, #0xe1 lsls r5, r5, #5 adds r1, r1, r5 strh r2, [r1] _080420B0: ldr r0, [r4] adds r0, r0, r3 ldrh r0, [r0] cmp r0, #0xe bne _080420CC ldr r0, _0804227C @ =0x0200B0C0 ldr r2, _0804229C @ =0x00001B68 adds r1, r0, r2 movs r2, #0 strh r2, [r1] movs r3, #0xe1 lsls r3, r3, #5 _080420C8: adds r0, r0, r3 strh r2, [r0] _080420CC: ldr r4, _08042274 @ =0x020314E0 mov sb, r4 ldr r1, [r4] ldr r5, _08042278 @ =0x00000514 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xa bne _08042184 ldr r0, _0804228C @ =0x00000441 adds r2, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08042184 movs r3, #0x8b lsls r3, r3, #3 adds r1, r1, r3 movs r0, #0 strh r0, [r1] movs r1, #1 strb r1, [r2] ldr r4, _0804227C @ =0x0200B0C0 movs r5, #0xdc lsls r5, r5, #4 adds r0, r4, r5 strh r1, [r0] bl sub_C00 adds r5, r0, #0 movs r0, #7 ands r5, r0 ldr r0, [r4, #0x4c] movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0xf0 bl __udivsi3 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 mov r0, sb ldr r2, [r0] ldr r0, _080422A0 @ =0x086AF744 lsls r1, r5, #2 adds r1, r1, r0 ldrh r3, [r1] ldr r5, _080422A4 @ =0x00000464 adds r0, r2, r5 strh r3, [r0] ldrh r0, [r1, #2] ldr r6, _080422A8 @ =0x00000466 adds r2, r2, r6 strh r0, [r2] adds r0, r7, #0 bl sub_C74 mov r1, sb ldr r4, [r1] adds r5, r4, r5 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0xfa lsls r2, r2, #1 mov r8, r2 mov r1, r8 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 ldr r3, _080422AC @ =0x0000045C adds r4, r4, r3 strh r1, [r4] adds r0, r7, #0 bl sub_C24 mov r5, sb ldr r4, [r5] adds r6, r4, r6 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 ldr r0, _080422B0 @ =0x0000045E adds r4, r4, r0 strh r1, [r4] ldr r0, _080422B4 @ =0x0000012D bl m4aSongNumStart _08042184: ldr r1, _08042274 @ =0x020314E0 mov sb, r1 ldr r1, [r1] ldr r2, _08042278 @ =0x00000514 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0x10 bne _08042240 ldr r3, _08042290 @ =0x00000442 adds r2, r1, r3 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #2 bgt _08042240 ldr r4, _080422B8 @ =0x0000045A adds r1, r1, r4 movs r0, #0 strh r0, [r1] movs r1, #1 strb r1, [r2] ldr r4, _0804227C @ =0x0200B0C0 ldr r5, _080422BC @ =0x00000E78 adds r0, r4, r5 strh r1, [r0] bl sub_C00 movs r1, #7 ands r1, r0 adds r1, #8 adds r5, r1, #0 ldr r0, [r4, #0x4c] adds r0, #0x78 movs r1, #0xf0 bl __umodsi3 lsls r0, r0, #0x10 movs r1, #0xf0 bl __udivsi3 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 mov r0, sb ldr r2, [r0] ldr r0, _080422A0 @ =0x086AF744 lsls r1, r5, #2 adds r1, r1, r0 ldrh r3, [r1] movs r5, #0x8d lsls r5, r5, #3 adds r0, r2, r5 strh r3, [r0] ldrh r0, [r1, #2] ldr r6, _080422C0 @ =0x0000046A adds r2, r2, r6 strh r0, [r2] adds r0, r7, #0 bl sub_C74 mov r1, sb ldr r4, [r1] adds r5, r4, r5 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r2, #0xfa lsls r2, r2, #1 mov r8, r2 mov r1, r8 bl __divsi3 ldrh r1, [r5] adds r1, r1, r0 movs r3, #0x8c lsls r3, r3, #3 adds r4, r4, r3 strh r1, [r4] adds r0, r7, #0 bl sub_C24 mov r5, sb ldr r4, [r5] adds r6, r4, r6 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 bl __divsi3 ldrh r1, [r6] adds r1, r1, r0 ldr r0, _080422C4 @ =0x00000462 adds r4, r4, r0 strh r1, [r4] ldr r0, _080422B4 @ =0x0000012D bl m4aSongNumStart _08042240: ldr r0, _08042274 @ =0x020314E0 ldr r1, [r0] movs r3, #0x99 lsls r3, r3, #3 adds r2, r1, r3 ldrb r3, [r2] movs r1, #0 ldrsb r1, [r2, r1] mov sl, r0 cmp r1, #0 bgt _08042258 b _0804235E _08042258: subs r0, r3, #1 strb r0, [r2] mov r4, sl ldr r5, [r4] movs r0, #0x99 lsls r0, r0, #3 adds r1, r5, r0 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xb bgt _080422CC ldr r4, _080422C8 @ =0x086AEF28 b _0804232E .align 2, 0 _08042274: .4byte 0x020314E0 _08042278: .4byte 0x00000514 _0804227C: .4byte 0x0200B0C0 _08042280: .4byte 0x00001888 _08042284: .4byte 0x000019F8 _08042288: .4byte 0x00001AB0 _0804228C: .4byte 0x00000441 _08042290: .4byte 0x00000442 _08042294: .4byte 0x0000132C _08042298: .4byte 0xFFFFFE0C _0804229C: .4byte 0x00001B68 _080422A0: .4byte 0x086AF744 _080422A4: .4byte 0x00000464 _080422A8: .4byte 0x00000466 _080422AC: .4byte 0x0000045C _080422B0: .4byte 0x0000045E _080422B4: .4byte 0x0000012D _080422B8: .4byte 0x0000045A _080422BC: .4byte 0x00000E78 _080422C0: .4byte 0x0000046A _080422C4: .4byte 0x00000462 _080422C8: .4byte 0x086AEF28 _080422CC: cmp r0, #0x17 ble _08042300 cmp r0, #0x23 bgt _080422FC ldr r4, _080422F8 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #2 movs r2, #0xab lsls r2, r2, #2 adds r1, r5, r2 strh r0, [r1] b _08042344 .align 2, 0 _080422F8: .4byte 0x086AEF28 _080422FC: cmp r0, #0x2f bgt _08042328 _08042300: ldr r4, _08042324 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 movs r4, #0xab lsls r4, r4, #2 adds r1, r5, r4 strh r0, [r1] b _08042344 .align 2, 0 _08042324: .4byte 0x086AEF28 _08042328: ldr r4, _08042394 @ =0x086AEF28 movs r0, #0 ldrsb r0, [r1, r0] _0804232E: movs r1, #0xc bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #0x17 adds r0, r0, r4 ldrh r1, [r0] movs r2, #0xab lsls r2, r2, #2 adds r0, r5, r2 strh r1, [r0] _08042344: mov r3, sl ldr r2, [r3] movs r4, #0x99 lsls r4, r4, #3 adds r0, r2, r4 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #0 bne _0804235E movs r5, #0xab lsls r5, r5, #2 adds r0, r2, r5 strh r1, [r0] _0804235E: mov r0, sl ldr r2, [r0] movs r3, #0xa1 lsls r3, r3, #3 adds r1, r2, r3 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #0 ble _080423C2 adds r1, r0, #0 cmp r1, #0 bge _08042378 adds r0, r1, #3 _08042378: asrs r0, r0, #2 lsls r0, r0, #2 subs r0, r1, r0 lsls r0, r0, #0x10 asrs r1, r0, #0x10 lsrs r0, r0, #0x1f adds r1, r1, r0 asrs r1, r1, #1 cmp r1, #0 beq _0804239C ldr r0, _08042398 @ =0x000002AA adds r1, r2, r0 movs r0, #2 b _080423A2 .align 2, 0 _08042394: .4byte 0x086AEF28 _08042398: .4byte 0x000002AA _0804239C: ldr r3, _080423D0 @ =0x000002AA adds r1, r2, r3 ldr r0, _080423D4 @ =0x0000FFFE _080423A2: strh r0, [r1] mov r5, sl ldr r4, [r5] movs r0, #0xa1 lsls r0, r0, #3 adds r1, r4, r0 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #0 bne _080423C2 ldr r2, _080423D0 @ =0x000002AA adds r0, r4, r2 strh r1, [r0] _080423C2: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080423D0: .4byte 0x000002AA _080423D4: .4byte 0x0000FFFE thumb_func_start sub_423D8 sub_423D8: @ 0x080423D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0804267C @ =0x020314E0 ldr r3, [r0] ldr r2, _08042680 @ =0x00000506 adds r1, r3, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 mov r8, r0 cmp r1, #0 beq _080423F8 b _08042AB2 _080423F8: ldr r4, _08042684 @ =0x00000516 adds r1, r3, r4 ldrh r2, [r1] movs r0, #0xac lsls r0, r0, #2 cmp r2, r0 bls _08042408 b _08042AB2 _08042408: subs r0, #0x78 cmp r2, r0 bhi _08042484 adds r0, r2, #0 movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x14 bne _08042428 ldr r0, _08042688 @ =0x02032F20 ldr r1, _0804268C @ =0x0000FFFF movs r2, #0x80 bl m4aMPlayVolumeControl _08042428: mov r3, r8 ldr r0, [r3] adds r0, r0, r4 ldrh r0, [r0] movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x5a bne _08042446 ldr r0, _08042688 @ =0x02032F20 movs r1, #5 bl m4aMPlayFadeOutTemporarily _08042446: mov r1, r8 ldr r0, [r1] adds r0, r0, r4 ldrh r0, [r0] movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bne _08042464 movs r0, #0x97 lsls r0, r0, #1 bl m4aSongNumStart _08042464: mov r2, r8 ldr r0, [r2] adds r0, r0, r4 ldrh r0, [r0] movs r1, #0xa0 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bne _08042484 ldr r0, _08042688 @ =0x02032F20 ldr r1, _0804268C @ =0x0000FFFF movs r2, #0x33 bl m4aMPlayVolumeControl _08042484: ldr r2, _0804267C @ =0x020314E0 ldr r5, [r2] ldr r4, _08042684 @ =0x00000516 adds r3, r5, r4 ldrh r1, [r3] ldr r0, _08042690 @ =0x000001FF mov r8, r2 cmp r1, r0 bls _080424AA adds r0, r1, #0 ldr r3, _08042694 @ =0xFFFFFE00 adds r0, r0, r3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 subs r0, #0x58 adds r1, r5, #0 adds r1, #0xe6 strh r0, [r1] _080424AA: mov r0, r8 ldr r2, [r0] adds r0, r2, r4 ldrh r1, [r0] movs r0, #0x9c lsls r0, r0, #2 cmp r1, r0 bne _080424C4 movs r3, #0xa5 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #1 strb r0, [r1] _080424C4: mov r0, r8 ldr r3, [r0] adds r2, r3, r4 ldrh r1, [r2] movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 bhi _080424E0 adds r0, r1, #0 lsrs r0, r0, #1 movs r2, #0xa3 lsls r2, r2, #3 adds r1, r3, r2 strh r0, [r1] _080424E0: mov r3, r8 ldr r2, [r3] adds r0, r2, r4 ldrh r1, [r0] movs r0, #0xac lsls r0, r0, #2 cmp r1, r0 bne _080424F8 ldr r0, _08042680 @ =0x00000506 adds r1, r2, r0 movs r0, #1 strb r0, [r1] _080424F8: mov r1, r8 ldr r2, [r1] adds r0, r2, r4 ldrh r1, [r0] adds r1, #1 strh r1, [r0] lsls r1, r1, #0x10 movs r0, #0x8e lsls r0, r0, #0x12 cmp r1, r0 bhi _0804251C ldr r3, _08042698 @ =0x00000392 adds r1, r2, r3 ldrh r0, [r1] cmp r0, #5 bls _0804251C subs r0, #1 strh r0, [r1] _0804251C: mov r4, r8 ldr r2, [r4] ldr r3, _08042684 @ =0x00000516 adds r0, r2, r3 ldrh r0, [r0] cmp r0, #1 bne _08042562 movs r0, #0xf1 lsls r0, r0, #2 adds r1, r2, r0 movs r0, #0x96 lsls r0, r0, #1 strh r0, [r1] ldr r1, _0804269C @ =0x000003C6 adds r0, r2, r1 adds r1, #0xea strh r1, [r0] movs r4, #0xf2 lsls r4, r4, #2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080426A0 @ =0x000003CA adds r1, r2, r0 movs r0, #0xc8 lsls r0, r0, #1 strh r0, [r1] adds r4, #4 adds r1, r2, r4 movs r0, #0xfa lsls r0, r0, #2 strh r0, [r1] subs r0, #0x1a adds r1, r2, r0 ldr r0, _080426A4 @ =0x000009C4 strh r0, [r1] _08042562: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x58 bne _08042584 movs r4, #0xf1 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r1] ldr r0, _0804269C @ =0x000003C6 adds r1, r2, r0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] _08042584: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0x78 bne _080425A6 movs r4, #0xf2 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0x96 lsls r0, r0, #2 strh r0, [r1] ldr r0, _080426A0 @ =0x000003CA adds r1, r2, r0 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] _080425A6: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0xaa bne _080425C8 movs r4, #0xf3 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] ldr r0, _080426A8 @ =0x000003CE adds r1, r2, r0 movs r0, #0xfa lsls r0, r0, #3 strh r0, [r1] _080425C8: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r0, [r0] cmp r0, #0xd7 bne _080425E8 movs r4, #0xf1 lsls r4, r4, #2 adds r1, r2, r4 movs r0, #0 strh r0, [r1] ldr r0, _0804269C @ =0x000003C6 adds r1, r2, r0 movs r0, #0xfa lsls r0, r0, #3 strh r0, [r1] _080425E8: mov r1, r8 ldr r2, [r1] adds r0, r2, r3 ldrh r1, [r0] ldr r0, _080426AC @ =0x00000131 cmp r1, r0 bne _08042608 movs r4, #0xf2 lsls r4, r4, #2 adds r0, r2, r4 movs r1, #0xe1 lsls r1, r1, #3 strh r1, [r0] adds r4, #2 adds r0, r2, r4 strh r1, [r0] _08042608: mov r0, r8 ldr r2, [r0] adds r0, r2, r3 ldrh r1, [r0] ldr r0, _080426B0 @ =0x0000013B cmp r1, r0 bne _0804262A movs r3, #0xf3 lsls r3, r3, #2 adds r1, r2, r3 subs r0, #0xf strh r0, [r1] ldr r4, _080426A8 @ =0x000003CE adds r1, r2, r4 movs r0, #0xe1 lsls r0, r0, #3 strh r0, [r1] _0804262A: ldr r6, _080426B4 @ =0x0200BBA0 ldrh r0, [r6] movs r1, #0xb8 adds r1, r1, r6 mov sb, r1 movs r2, #0xb8 lsls r2, r2, #1 adds r2, r2, r6 mov sl, r2 cmp r0, #0 beq _08042728 mov r3, r8 ldr r0, [r3] movs r4, #0xf1 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] ldr r3, _0804269C @ =0x000003C6 adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bgt _080426B8 strh r1, [r6, #4] b _080426C6 .align 2, 0 _0804267C: .4byte 0x020314E0 _08042680: .4byte 0x00000506 _08042684: .4byte 0x00000516 _08042688: .4byte 0x02032F20 _0804268C: .4byte 0x0000FFFF _08042690: .4byte 0x000001FF _08042694: .4byte 0xFFFFFE00 _08042698: .4byte 0x00000392 _0804269C: .4byte 0x000003C6 _080426A0: .4byte 0x000003CA _080426A4: .4byte 0x000009C4 _080426A8: .4byte 0x000003CE _080426AC: .4byte 0x00000131 _080426B0: .4byte 0x0000013B _080426B4: .4byte 0x0200BBA0 _080426B8: mov r0, r8 ldr r1, [r0] ldr r2, _0804276C @ =0x000003C6 adds r1, r1, r2 ldrh r0, [r1] subs r0, #0x14 strh r0, [r1] _080426C6: movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _080426D2 movs r0, #0xb4 strh r0, [r6, #4] _080426D2: movs r0, #0 ldr r4, _08042770 @ =0x0200BC58 mov sb, r4 movs r1, #0xb8 add r1, sb mov sl, r1 ldr r7, _08042774 @ =0x03005000 ldr r2, _08042778 @ =0xFFFFFE00 mov ip, r2 _080426E4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _0804277C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _080426E4 _08042728: mov r6, sb ldrh r0, [r6] cmp r0, #0 beq _080427EE mov r3, r8 ldr r0, [r3] movs r4, #0xf2 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] ldr r3, _08042780 @ =0x000003CA adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bgt _08042788 ldr r0, _08042784 @ =0x0000FFC4 strh r0, [r6, #4] b _08042796 .align 2, 0 _0804276C: .4byte 0x000003C6 _08042770: .4byte 0x0200BC58 _08042774: .4byte 0x03005000 _08042778: .4byte 0xFFFFFE00 _0804277C: .4byte 0x000001FF _08042780: .4byte 0x000003CA _08042784: .4byte 0x0000FFC4 _08042788: mov r0, r8 ldr r1, [r0] ldr r2, _08042834 @ =0x000003CA adds r1, r1, r2 ldrh r0, [r1] subs r0, #0xc strh r0, [r1] _08042796: movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _080427A2 movs r0, #0xb4 strh r0, [r6, #4] _080427A2: movs r0, #0 ldr r7, _08042838 @ =0x03005000 ldr r4, _0804283C @ =0xFFFFFE00 mov ip, r4 _080427AA: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042840 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _080427AA _080427EE: mov r6, sl ldrh r0, [r6] cmp r0, #0 beq _080428B2 mov r3, r8 ldr r0, [r3] movs r4, #0xf3 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] ldr r3, _08042844 @ =0x000003CE adds r0, r0, r3 movs r4, #0 ldrsh r0, [r0, r4] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bgt _0804284C ldr r0, _08042848 @ =0x0000FFC4 strh r0, [r6, #4] b _0804285A .align 2, 0 _08042834: .4byte 0x000003CA _08042838: .4byte 0x03005000 _0804283C: .4byte 0xFFFFFE00 _08042840: .4byte 0x000001FF _08042844: .4byte 0x000003CE _08042848: .4byte 0x0000FFC4 _0804284C: mov r0, r8 ldr r1, [r0] ldr r2, _0804290C @ =0x000003CE adds r1, r1, r2 ldrh r0, [r1] subs r0, #0x12 strh r0, [r1] _0804285A: movs r3, #4 ldrsh r0, [r6, r3] cmp r0, #0xc8 ble _08042866 movs r0, #0xb4 strh r0, [r6, #4] _08042866: movs r0, #0 ldr r7, _08042910 @ =0x03005000 ldr r4, _08042914 @ =0xFFFFFE00 mov ip, r4 _0804286E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042918 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _0804286E _080428B2: mov r3, r8 ldr r0, [r3] ldr r2, _0804291C @ =0x00000516 adds r0, r0, r2 ldrh r1, [r0] movs r0, #0xa5 lsls r0, r0, #2 cmp r1, r0 bne _080428DC ldr r4, _08042920 @ =0x0200B0C0 movs r1, #0xae lsls r1, r1, #4 adds r0, r4, r1 movs r1, #0 strh r1, [r0] ldr r3, _08042924 @ =0x00000B98 adds r0, r4, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r4, r3 strh r1, [r0] _080428DC: ldr r6, _08042928 @ =0x0200BDC8 ldrh r0, [r6] cmp r0, #0 beq _080429CA mov r4, r8 ldr r0, [r4] adds r1, r0, r2 ldrh r0, [r1] subs r0, #0xc3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _08042930 ldr r0, _0804292C @ =0x086AF784 ldrh r1, [r1] subs r1, #0xc3 lsrs r2, r1, #0x1f adds r1, r1, r2 asrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r0 ldrh r7, [r1] b _08042938 .align 2, 0 _0804290C: .4byte 0x000003CE _08042910: .4byte 0x03005000 _08042914: .4byte 0xFFFFFE00 _08042918: .4byte 0x000001FF _0804291C: .4byte 0x00000516 _08042920: .4byte 0x0200B0C0 _08042924: .4byte 0x00000B98 _08042928: .4byte 0x0200BDC8 _0804292C: .4byte 0x086AF784 _08042930: ldrh r0, [r1] movs r1, #3 ands r0, r1 lsrs r7, r0, #1 _08042938: mov r0, r8 ldr r4, [r0] movs r1, #0x83 lsls r1, r1, #3 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] ldr r3, _08042A40 @ =0x0000041A adds r4, r4, r3 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _0804296E ldr r0, _08042A44 @ =0x0000FFC4 strh r0, [r6, #4] _0804296E: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xb4 ble _0804297A movs r0, #0xb4 strh r0, [r6, #4] _0804297A: adds r5, r6, #0 adds r5, #8 ldr r4, _08042A48 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08042A4C @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08042A50 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 lsls r1, r7, #0x10 asrs r1, r1, #0xe adds r1, #0x7d ldr r4, _08042A54 @ =0x000003FF adds r0, r4, #0 ands r1, r0 ldrh r3, [r2, #4] ldr r0, _08042A58 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] _080429CA: mov r1, r8 ldr r0, [r1] ldr r4, _08042A5C @ =0x00000516 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0x96 bne _08042A0A ldr r2, _08042A60 @ =0x0200B0C0 ldr r3, _08042A64 @ =0x00000D08 adds r1, r2, r3 movs r0, #1 strh r0, [r1] mov r0, r8 ldr r1, [r0] movs r3, #0x83 lsls r3, r3, #3 adds r2, r1, r3 movs r0, #0xc8 lsls r0, r0, #3 strh r0, [r2] ldr r0, _08042A40 @ =0x0000041A adds r2, r1, r0 ldr r0, _08042A68 @ =0x0000FF9C strh r0, [r2] subs r3, #4 adds r2, r1, r3 adds r0, #0x4f strh r0, [r2] ldr r0, _08042A6C @ =0x00000416 adds r1, r1, r0 movs r0, #0xe strh r0, [r1] _08042A0A: mov r1, r8 ldr r3, [r1] adds r0, r3, r4 ldrh r0, [r0] cmp r0, #0xcd bls _08042A70 ldr r4, _08042A6C @ =0x00000416 adds r2, r3, r4 ldrh r0, [r2] adds r0, #1 strh r0, [r2] movs r0, #0x83 lsls r0, r0, #3 adds r1, r3, r0 subs r4, #2 adds r0, r3, r4 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] ldr r0, _08042A40 @ =0x0000041A adds r1, r3, r0 ldrh r0, [r2] ldrh r2, [r1] adds r0, r0, r2 b _08042A94 .align 2, 0 _08042A40: .4byte 0x0000041A _08042A44: .4byte 0x0000FFC4 _08042A48: .4byte 0x03005000 _08042A4C: .4byte 0x000001FF _08042A50: .4byte 0xFFFFFE00 _08042A54: .4byte 0x000003FF _08042A58: .4byte 0xFFFFFC00 _08042A5C: .4byte 0x00000516 _08042A60: .4byte 0x0200B0C0 _08042A64: .4byte 0x00000D08 _08042A68: .4byte 0x0000FF9C _08042A6C: .4byte 0x00000416 _08042A70: cmp r0, #0x96 bls _08042A96 movs r4, #0x83 lsls r4, r4, #3 adds r1, r3, r4 ldr r2, _08042B2C @ =0x00000414 adds r0, r3, r2 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] ldr r0, _08042B30 @ =0x0000041A adds r1, r3, r0 adds r2, #2 adds r0, r3, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 _08042A94: strh r0, [r1] _08042A96: mov r4, r8 ldr r0, [r4] ldr r1, _08042B34 @ =0x00000516 adds r0, r0, r1 ldrh r1, [r0] movs r0, #0xaf lsls r0, r0, #1 cmp r1, r0 bne _08042AB2 ldr r0, _08042B38 @ =0x0200B0C0 ldr r2, _08042B3C @ =0x00000D08 adds r0, r0, r2 movs r1, #0 strh r1, [r0] _08042AB2: mov r3, r8 ldr r1, [r3] ldr r4, _08042B40 @ =0x00000506 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 beq _08042AC6 b _08042DA0 _08042AC6: ldr r5, _08042B34 @ =0x00000516 adds r2, r1, r5 ldrh r0, [r2] cmp r0, #0xff bhi _08042ADE asrs r0, r0, #1 rsbs r0, r0, #0 adds r1, #0xe6 strh r0, [r1] ldrh r0, [r2] adds r0, #1 strh r0, [r2] _08042ADE: ldr r0, _08042B38 @ =0x0200B0C0 movs r1, #0xae lsls r1, r1, #4 adds r6, r0, r1 ldrh r0, [r6] ldr r2, _08042B38 @ =0x0200B0C0 ldr r3, _08042B44 @ =0x00000B98 adds r2, r2, r3 mov sb, r2 cmp r0, #0 beq _08042BC0 mov r4, r8 ldr r0, [r4] movs r1, #0xf1 lsls r1, r1, #2 adds r0, r0, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] ldr r0, [r4] ldr r4, _08042B48 @ =0x000003C6 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08042B4C movs r0, #0xb4 strh r0, [r6, #4] b _08042B60 .align 2, 0 _08042B2C: .4byte 0x00000414 _08042B30: .4byte 0x0000041A _08042B34: .4byte 0x00000516 _08042B38: .4byte 0x0200B0C0 _08042B3C: .4byte 0x00000D08 _08042B40: .4byte 0x00000506 _08042B44: .4byte 0x00000B98 _08042B48: .4byte 0x000003C6 _08042B4C: mov r0, r8 ldr r1, [r0] adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0xff bhi _08042B60 adds r1, r1, r4 ldrh r0, [r1] adds r0, #0x14 strh r0, [r1] _08042B60: movs r2, #4 ldrsh r1, [r6, r2] movs r0, #0x3c rsbs r0, r0, #0 cmp r1, r0 bge _08042B70 ldr r0, _08042C00 @ =0x0000FFC4 strh r0, [r6, #4] _08042B70: movs r0, #0 ldr r3, _08042C04 @ =0x0200BC58 mov sb, r3 ldr r7, _08042C08 @ =0x03005000 ldr r4, _08042C0C @ =0xFFFFFE00 mov ip, r4 _08042B7C: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042C10 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #3 ble _08042B7C _08042BC0: mov r6, sb ldrh r0, [r6] cmp r0, #0 beq _08042C86 mov r3, r8 ldr r0, [r3] movs r4, #0xf2 lsls r4, r4, #2 adds r0, r0, r4 movs r1, #0 ldrsh r0, [r0, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] mov r2, r8 ldr r0, [r2] adds r4, #2 adds r0, r0, r4 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xb4 ble _08042C14 movs r0, #0xb4 strh r0, [r6, #4] b _08042C2A .align 2, 0 _08042C00: .4byte 0x0000FFC4 _08042C04: .4byte 0x0200BC58 _08042C08: .4byte 0x03005000 _08042C0C: .4byte 0xFFFFFE00 _08042C10: .4byte 0x000001FF _08042C14: mov r0, r8 ldr r1, [r0] ldr r2, _08042CB8 @ =0x00000516 adds r0, r1, r2 ldrh r0, [r0] cmp r0, #0xff bhi _08042C2A adds r1, r1, r4 ldrh r0, [r1] adds r0, #0xa strh r0, [r1] _08042C2A: movs r3, #4 ldrsh r1, [r6, r3] movs r0, #0x3c rsbs r0, r0, #0 cmp r1, r0 bge _08042C3A ldr r0, _08042CBC @ =0x0000FFC4 strh r0, [r6, #4] _08042C3A: movs r0, #0 ldr r7, _08042CC0 @ =0x03005000 ldr r4, _08042CC4 @ =0xFFFFFE00 mov ip, r4 _08042C42: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08042CC8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #5 ble _08042C42 _08042C86: ldr r6, _08042CCC @ =0x0200BDC8 ldrh r0, [r6] cmp r0, #0 bne _08042C90 b _08042DA0 _08042C90: mov r3, r8 ldr r0, [r3] ldr r4, _08042CB8 @ =0x00000516 adds r1, r0, r4 ldrh r0, [r1] subs r0, #0xbe lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _08042CD4 ldr r0, _08042CD0 @ =0x086AF784 ldrh r1, [r1] subs r1, #0xbe lsrs r2, r1, #0x1f adds r1, r1, r2 asrs r1, r1, #1 lsls r1, r1, #1 adds r1, r1, r0 ldrh r7, [r1] b _08042CDC .align 2, 0 _08042CB8: .4byte 0x00000516 _08042CBC: .4byte 0x0000FFC4 _08042CC0: .4byte 0x03005000 _08042CC4: .4byte 0xFFFFFE00 _08042CC8: .4byte 0x000001FF _08042CCC: .4byte 0x0200BDC8 _08042CD0: .4byte 0x086AF784 _08042CD4: ldrh r0, [r1] movs r1, #3 ands r0, r1 lsrs r7, r0, #1 _08042CDC: mov r0, r8 ldr r4, [r0] movs r1, #0x83 lsls r1, r1, #3 mov sl, r1 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #2] ldr r3, _08042DB8 @ =0x0000041A mov sb, r3 add r4, sb movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #4] lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c rsbs r1, r1, #0 cmp r0, r1 bge _08042D16 ldr r0, _08042DBC @ =0x0000FFC4 strh r0, [r6, #4] _08042D16: movs r2, #4 ldrsh r0, [r6, r2] cmp r0, #0xb4 ble _08042D22 movs r0, #0xb4 strh r0, [r6, #4] _08042D22: adds r5, r6, #0 adds r5, #8 ldr r4, _08042DC0 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08042DC4 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08042DC8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 lsls r1, r7, #0x10 asrs r1, r1, #0xe adds r1, #0x7d ldr r4, _08042DCC @ =0x000003FF adds r0, r4, #0 ands r1, r0 ldrh r3, [r2, #4] ldr r0, _08042DD0 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] mov r0, r8 ldr r2, [r0] ldr r1, _08042DD4 @ =0x00000516 adds r0, r2, r1 ldrh r0, [r0] cmp r0, #0xa0 bls _08042DA0 mov r3, sl adds r1, r2, r3 adds r4, #0x15 adds r0, r2, r4 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] mov r4, sb adds r1, r2, r4 ldr r3, _08042DD8 @ =0x00000416 adds r0, r2, r3 ldrh r0, [r0] ldrh r4, [r1] adds r0, r0, r4 strh r0, [r1] _08042DA0: mov r0, r8 ldr r2, [r0] adds r0, r2, #0 adds r0, #0xe6 movs r3, #0 ldrsh r1, [r0, r3] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 blt _08042DDC movs r0, #0 b _08042DDE .align 2, 0 _08042DB8: .4byte 0x0000041A _08042DBC: .4byte 0x0000FFC4 _08042DC0: .4byte 0x03005000 _08042DC4: .4byte 0x000001FF _08042DC8: .4byte 0xFFFFFE00 _08042DCC: .4byte 0x000003FF _08042DD0: .4byte 0xFFFFFC00 _08042DD4: .4byte 0x00000516 _08042DD8: .4byte 0x00000416 _08042DDC: movs r0, #1 _08042DDE: strb r0, [r2, #0x1a] ldr r4, _08042E38 @ =0x0200B0C0 ldr r0, _08042E3C @ =0x000002F2 adds r2, r4, r0 mov r1, r8 ldr r0, [r1] movs r1, #0xa3 lsls r1, r1, #3 adds r0, r0, r1 ldrh r0, [r0] ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] ldr r0, _08042E40 @ =0x000002EE adds r2, r4, r0 mov r3, r8 ldr r0, [r3] adds r0, r0, r1 ldrh r0, [r0] ldrh r4, [r2] adds r0, r0, r4 strh r0, [r2] ldr r0, _08042E38 @ =0x0200B0C0 ldr r3, _08042E44 @ =0x000002F6 adds r2, r0, r3 mov r4, r8 ldr r0, [r4] adds r0, r0, r1 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 bge _08042E20 adds r0, #3 _08042E20: asrs r0, r0, #2 adds r0, #0xe0 ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08042E38: .4byte 0x0200B0C0 _08042E3C: .4byte 0x000002F2 _08042E40: .4byte 0x000002EE _08042E44: .4byte 0x000002F6 thumb_func_start sub_42E48 sub_42E48: @ 0x08042E48 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r0, _08043198 @ =0x0200B0C0 ldr r1, [r0, #0x4c] movs r0, #0xf movs r5, #0 ands r1, r0 cmp r5, r1 bge _08042E72 adds r4, r1, #0 _08042E5E: bl sub_C00 lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 blt _08042E5E _08042E72: ldr r1, _08043198 @ =0x0200B0C0 ldr r0, [r1, #0x4c] str r0, [r1, #0x48] ldr r4, _0804319C @ =0x020314E0 ldr r0, [r4] movs r6, #0 movs r3, #0 strh r3, [r0, #0x18] strb r6, [r0, #0x17] ldr r0, [r4] strb r6, [r0, #0x13] ldr r0, [r4] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r0, r2 movs r5, #1 mov r8, r5 mov r7, r8 strb r7, [r0] ldr r2, [r4] adds r5, r2, #0 adds r5, #0x6c movs r1, #0xe1 lsls r1, r1, #5 adds r0, r1, #0 ldrh r7, [r5] adds r0, r0, r7 ldr r7, _080431A0 @ =0x00000296 adds r1, r2, r7 strh r0, [r1] strh r3, [r5] ldr r1, _080431A4 @ =0x00000392 adds r0, r2, r1 strh r3, [r0] ldr r5, _080431A8 @ =0x00000383 adds r2, r2, r5 strb r6, [r2] ldr r0, [r4] adds r7, #0xf2 adds r0, r0, r7 strb r6, [r0] ldr r0, [r4] ldr r1, _080431AC @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] mov r2, r8 strb r2, [r0] ldr r0, [r4] strb r2, [r0, #0x1f] ldr r2, [r4] adds r1, r2, r1 ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r0, [r1] strh r3, [r0, #6] adds r5, #3 adds r2, r2, r5 strb r6, [r2] ldr r1, [r4] ldr r7, _080431B0 @ =0x0000053A adds r0, r1, r7 strh r3, [r0] ldr r2, _080431B4 @ =0x00000542 adds r0, r1, r2 strh r3, [r0] ldr r5, _080431B8 @ =0x00000544 adds r0, r1, r5 str r3, [r0] adds r7, #0x10 adds r1, r1, r7 strb r6, [r1] ldr r0, [r4] movs r2, #0xe5 lsls r2, r2, #2 adds r1, r0, r2 strh r3, [r1] adds r5, #0x4c adds r0, r0, r5 strb r6, [r0] ldr r0, [r4] adds r7, #0x47 adds r0, r0, r7 strb r6, [r0] ldr r1, [r4] ldr r2, _080431BC @ =0x00000592 adds r0, r1, r2 strh r3, [r0] adds r5, #4 adds r0, r1, r5 strh r3, [r0] adds r7, #5 adds r0, r1, r7 strh r3, [r0] adds r1, #0x7e mov r0, r8 strh r0, [r1] movs r5, #0 movs r6, #0xe8 lsls r6, r6, #2 _08042F3C: ldr r0, [r4] lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r0, r6 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] ldr r2, _080431C0 @ =0x000003A3 adds r0, r0, r2 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] lsls r2, r1, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r2 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _08042F3C movs r5, #0 ldr r4, _0804319C @ =0x020314E0 movs r3, #0 _08042F72: ldr r0, [r4] lsls r1, r5, #0x10 asrs r1, r1, #0x10 movs r7, #0xa6 lsls r7, r7, #3 adds r0, r0, r7 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] ldr r2, _080431C4 @ =0x00000533 adds r0, r0, r2 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] ldr r5, _080431C8 @ =0x00000536 adds r0, r0, r5 adds r0, r0, r1 strb r3, [r0] ldr r0, [r4] lsls r2, r1, #1 adds r7, #0xc adds r0, r0, r7 adds r0, r0, r2 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #2 ble _08042F72 movs r5, #0 ldr r6, _0804319C @ =0x020314E0 movs r4, #0 _08042FB4: ldr r0, [r6] lsls r3, r5, #0x10 asrs r3, r3, #0x10 ldr r1, _080431CC @ =0x0000052C adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] ldr r2, _080431D0 @ =0x0000052E adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] movs r5, #0xa9 lsls r5, r5, #3 adds r0, r0, r5 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] ldr r7, _080431D4 @ =0x0000054B adds r0, r0, r7 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r1, #0x21 adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r2, #0x21 adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r5, #9 adds r0, r0, r5 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r7, #8 adds r0, r0, r7 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r1, #8 adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r2, #8 adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r5, #8 adds r0, r0, r5 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r7, #8 adds r0, r0, r7 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r1, #8 adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r0, [r6] adds r2, #8 adds r0, r0, r2 adds r0, r0, r3 strb r4, [r0] ldr r2, [r6] lsls r1, r3, #1 adds r5, #9 adds r0, r2, r5 adds r0, r0, r1 strh r4, [r0] adds r7, #0xb adds r0, r2, r7 adds r0, r0, r1 strh r4, [r0] adds r5, #8 adds r0, r2, r5 adds r0, r0, r1 strh r4, [r0] lsls r0, r3, #2 adds r0, r2, r0 adds r7, #0xa adds r1, r0, r7 strh r4, [r1] adds r5, #8 adds r1, r0, r5 strh r4, [r1] adds r7, #8 adds r1, r0, r7 strh r4, [r1] ldr r1, _080431D8 @ =0x0000057A adds r0, r0, r1 strh r4, [r0] lsls r1, r3, #3 adds r5, #0xe adds r0, r2, r5 adds r0, r0, r1 str r4, [r0] adds r7, #0xc adds r2, r2, r7 adds r2, r2, r1 str r4, [r2] adds r3, #1 lsls r3, r3, #0x10 lsrs r5, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #1 ble _08042FB4 ldr r0, _0804319C @ =0x020314E0 ldr r1, [r0] movs r0, #0 strb r0, [r1, #0x1a] bl sub_4387C bl sub_43500 bl sub_44D58 bl sub_45E08 movs r5, #0 ldr r6, _080431DC @ =0x03005C00 movs r4, #0x80 lsls r4, r4, #3 movs r3, #0x80 lsls r3, r3, #2 ldr r2, _080431E0 @ =0x000007FF _080430C2: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, r4 lsls r0, r0, #1 adds r0, r0, r6 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r2 ble _080430C2 ldr r1, _080431E4 @ =0x040000D4 ldr r2, _080431E8 @ =0x03006400 str r2, [r1] ldr r0, _080431EC @ =0x06001000 str r0, [r1, #4] ldr r0, _080431F0 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _08043198 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _080431F4 @ =0x00001C42 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _080431F8 @ =0x00000C04 strh r0, [r1, #0x3a] movs r5, #0 adds r6, r1, #0 ldr r0, _0804319C @ =0x020314E0 mov r8, r0 movs r1, #0x80 lsls r1, r1, #4 adds r7, r2, r1 ldr r0, _080431FC @ =0x08137E14 mov ip, r0 ldr r1, _08043200 @ =0xFFFFF800 adds r2, r2, r1 ldr r4, _08043204 @ =0x0000013F _08043110: lsls r0, r5, #0x10 asrs r3, r0, #0x10 adds r0, r3, #0 cmp r3, #0 bge _0804311C adds r0, #0x1f _0804311C: asrs r0, r0, #5 lsls r0, r0, #5 subs r0, r3, r0 subs r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1b bhi _0804313C movs r5, #0x80 lsls r5, r5, #4 adds r0, r3, r5 lsls r0, r0, #1 adds r0, r0, r2 movs r1, #0x90 lsls r1, r1, #8 strh r1, [r0] _0804313C: adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 ble _08043110 ldr r0, _08043208 @ =0x000002EE adds r1, r6, r0 movs r0, #0x7e strh r0, [r1] ldr r4, _080431E4 @ =0x040000D4 str r7, [r4] ldr r0, _0804320C @ =0x06001140 str r0, [r4, #4] ldr r0, _08043210 @ =0x80000140 str r0, [r4, #8] ldr r0, [r4, #8] mov r1, r8 ldr r0, [r1] ldr r2, _08043214 @ =0x000005F6 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 add r0, ip str r0, [r4] ldr r0, _08043218 @ =0x05000220 str r0, [r4, #4] ldr r5, _0804321C @ =0x80000010 str r5, [r4, #8] ldr r0, [r4, #8] movs r0, #0x27 bl m4aSongNumStart ldr r0, _08043220 @ =0x081B36A4 str r0, [r4] ldr r0, _08043224 @ =0x05000320 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08043198: .4byte 0x0200B0C0 _0804319C: .4byte 0x020314E0 _080431A0: .4byte 0x00000296 _080431A4: .4byte 0x00000392 _080431A8: .4byte 0x00000383 _080431AC: .4byte 0x0000132C _080431B0: .4byte 0x0000053A _080431B4: .4byte 0x00000542 _080431B8: .4byte 0x00000544 _080431BC: .4byte 0x00000592 _080431C0: .4byte 0x000003A3 _080431C4: .4byte 0x00000533 _080431C8: .4byte 0x00000536 _080431CC: .4byte 0x0000052C _080431D0: .4byte 0x0000052E _080431D4: .4byte 0x0000054B _080431D8: .4byte 0x0000057A _080431DC: .4byte 0x03005C00 _080431E0: .4byte 0x000007FF _080431E4: .4byte 0x040000D4 _080431E8: .4byte 0x03006400 _080431EC: .4byte 0x06001000 _080431F0: .4byte 0x80000800 _080431F4: .4byte 0x00001C42 _080431F8: .4byte 0x00000C04 _080431FC: .4byte 0x08137E14 _08043200: .4byte 0xFFFFF800 _08043204: .4byte 0x0000013F _08043208: .4byte 0x000002EE _0804320C: .4byte 0x06001140 _08043210: .4byte 0x80000140 _08043214: .4byte 0x000005F6 _08043218: .4byte 0x05000220 _0804321C: .4byte 0x80000010 _08043220: .4byte 0x081B36A4 _08043224: .4byte 0x05000320 thumb_func_start sub_43228 sub_43228: @ 0x08043228 push {r4, r5, lr} ldr r1, _08043248 @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #5 bls _0804323C b _080434BA _0804323C: lsls r0, r0, #2 ldr r1, _0804324C @ =_08043250 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08043248: .4byte 0x020314E0 _0804324C: .4byte _08043250 _08043250: @ jump table .4byte _08043268 @ case 0 .4byte _080432CE @ case 1 .4byte _08043342 @ case 2 .4byte _080433D4 @ case 3 .4byte _08043470 @ case 4 .4byte _080434A2 @ case 5 _08043268: ldr r0, [r5] ldr r1, _080432B0 @ =0x000005F7 adds r0, r0, r1 movs r3, #0 movs r2, #1 strb r2, [r0] ldr r4, [r5] ldrh r1, [r4, #0x18] ldr r0, _080432B4 @ =0x00000153 cmp r1, r0 bhi _080432C0 subs r0, #0x13 cmp r1, r0 bhi _08043296 adds r0, r1, #0 movs r1, #5 bl __udivsi3 ldr r2, _080432B8 @ =0x0000FFC0 adds r0, r0, r2 adds r1, r4, #0 adds r1, #0xe6 strh r0, [r1] _08043296: ldr r2, [r5] ldrh r1, [r2, #0x18] ldr r0, _080432BC @ =0x00000145 cmp r1, r0 bne _080432AA movs r3, #0xa5 lsls r3, r3, #2 adds r1, r2, r3 movs r0, #2 strb r0, [r1] _080432AA: ldr r1, [r5] ldrh r0, [r1, #0x18] b _0804331C .align 2, 0 _080432B0: .4byte 0x000005F7 _080432B4: .4byte 0x00000153 _080432B8: .4byte 0x0000FFC0 _080432BC: .4byte 0x00000145 _080432C0: adds r0, r4, #0 adds r0, #0xe6 strh r3, [r0] strb r2, [r4, #0x13] ldr r0, [r5] strh r3, [r0, #0x18] b _080434BA _080432CE: ldr r1, [r5] ldr r4, _08043324 @ =0x00000296 adds r0, r1, r4 ldrh r4, [r0] cmp r4, #0 beq _080432DC b _080434BA _080432DC: movs r0, #0xa5 lsls r0, r0, #2 adds r1, r1, r0 movs r0, #3 strb r0, [r1] ldr r0, [r5] ldrh r0, [r0, #0x18] cmp r0, #0 bne _08043314 bl m4aMPlayAllStop ldr r0, _08043328 @ =0x02032F20 ldr r1, _0804332C @ =0x086A2E90 bl MPlayStart ldr r1, _08043330 @ =0x0200B0C0 movs r0, #0x80 strb r0, [r1, #0xf] ldr r0, [r5] movs r1, #0xe2 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #2 strb r1, [r0] ldr r0, [r5] ldr r2, _08043334 @ =0x00000392 adds r0, r0, r2 strh r4, [r0] _08043314: ldr r1, [r5] ldrh r0, [r1, #0x18] cmp r0, #0x3b bhi _08043338 _0804331C: adds r0, #1 strh r0, [r1, #0x18] b _080434BA .align 2, 0 _08043324: .4byte 0x00000296 _08043328: .4byte 0x02032F20 _0804332C: .4byte 0x086A2E90 _08043330: .4byte 0x0200B0C0 _08043334: .4byte 0x00000392 _08043338: movs r0, #2 strb r0, [r1, #0x13] ldr r0, [r5] strh r4, [r0, #0x18] b _080434BA _08043342: ldr r0, [r5] ldrh r0, [r0, #0x18] cmp r0, #0 bne _08043354 bl m4aMPlayAllStop movs r0, #0x2b bl m4aSongNumStart _08043354: ldr r2, [r5] ldrh r0, [r2, #0x18] cmp r0, #0x13 bhi _08043362 adds r0, #1 strh r0, [r2, #0x18] b _080434BA _08043362: movs r1, #0 movs r0, #3 strb r0, [r2, #0x13] ldr r0, [r5] strh r1, [r0, #0x18] ldr r2, _080433B0 @ =0x0200B0C0 movs r3, #0x80 lsls r3, r3, #4 adds r0, r2, r3 movs r3, #1 movs r1, #1 strh r1, [r0] ldr r4, _080433B4 @ =0x000008B8 adds r0, r2, r4 strh r1, [r0] adds r4, #0xb8 adds r0, r2, r4 strh r1, [r0] ldr r0, _080433B8 @ =0x00000A28 adds r2, r2, r0 strh r1, [r2] ldr r1, _080433BC @ =0x040000D4 ldr r0, _080433C0 @ =0x084B77EC str r0, [r1] ldr r0, _080433C4 @ =0x06015800 str r0, [r1, #4] ldr r0, _080433C8 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5] movs r1, #0xe5 lsls r1, r1, #2 adds r2, r0, r1 ldr r1, _080433CC @ =0x0000FF82 strh r1, [r2] ldr r2, _080433D0 @ =0x000005FA adds r0, r0, r2 strb r3, [r0] b _080434BA .align 2, 0 _080433B0: .4byte 0x0200B0C0 _080433B4: .4byte 0x000008B8 _080433B8: .4byte 0x00000A28 _080433BC: .4byte 0x040000D4 _080433C0: .4byte 0x084B77EC _080433C4: .4byte 0x06015800 _080433C8: .4byte 0x80000400 _080433CC: .4byte 0x0000FF82 _080433D0: .4byte 0x000005FA _080433D4: bl sub_45E90 ldr r1, _08043444 @ =0x020314E0 ldr r2, [r1] ldrb r0, [r2, #0x1c] cmp r0, #0 beq _080433E6 movs r0, #0xb5 strh r0, [r2, #0x18] _080433E6: ldr r2, [r1] ldrh r0, [r2, #0x18] cmp r0, #0xb4 bne _08043408 ldr r3, _08043448 @ =0x00000544 adds r0, r2, r3 ldr r0, [r0] cmp r0, #0 beq _08043408 movs r0, #1 strb r0, [r2, #0x1c] ldr r1, [r1] ldr r0, _0804344C @ =0x00061A80 str r0, [r1, #0x38] adds r0, r1, r3 ldr r0, [r0] str r0, [r1, #0x3c] _08043408: ldr r0, _08043444 @ =0x020314E0 ldr r2, [r0] ldrh r1, [r2, #0x18] adds r5, r0, #0 cmp r1, #0xbd bls _08043426 ldr r0, _08043450 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08043426 movs r0, #0x87 lsls r0, r0, #2 strh r0, [r2, #0x18] _08043426: ldr r1, [r5] ldrh r2, [r1, #0x18] ldr r0, _08043454 @ =0x0000021B cmp r2, r0 bhi _08043458 cmp r2, #4 bne _0804343A movs r0, #0xa4 bl m4aSongNumStart _0804343A: ldr r1, [r5] ldrh r0, [r1, #0x18] adds r0, #1 strh r0, [r1, #0x18] b _08043460 .align 2, 0 _08043444: .4byte 0x020314E0 _08043448: .4byte 0x00000544 _0804344C: .4byte 0x00061A80 _08043450: .4byte 0x0200B0C0 _08043454: .4byte 0x0000021B _08043458: movs r0, #0 strh r0, [r1, #0x18] movs r0, #4 strb r0, [r1, #0x13] _08043460: ldr r0, [r5] ldr r4, _0804346C @ =0x000005FA adds r0, r0, r4 movs r1, #1 b _080434B8 .align 2, 0 _0804346C: .4byte 0x000005FA _08043470: bl sub_45E90 ldr r0, _08043494 @ =0x020314E0 ldr r1, [r0] ldrh r0, [r1, #0x18] cmp r0, #0x1d bhi _08043498 adds r0, #1 strh r0, [r1, #0x18] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #2 bne _080434BA movs r0, #0xa4 bl m4aSongNumStart b _080434BA .align 2, 0 _08043494: .4byte 0x020314E0 _08043498: movs r0, #0 strh r0, [r1, #0x18] movs r0, #5 strb r0, [r1, #0x13] b _080434BA _080434A2: bl sub_45E90 ldr r2, _080434F4 @ =0x020314E0 ldr r0, [r2] ldr r1, _080434F8 @ =0x00000386 adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r2, _080434FC @ =0x000005FA adds r0, r0, r2 _080434B8: strb r1, [r0] _080434BA: bl sub_4387C bl sub_43500 bl sub_44D58 bl sub_45E08 ldr r0, _080434F4 @ =0x020314E0 ldr r1, [r0] ldr r3, _080434F8 @ =0x00000386 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _080434E8 ldr r4, _080434FC @ =0x000005FA adds r1, r1, r4 movs r0, #1 strb r0, [r1] bl sub_350F0 _080434E8: bl sub_472E4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080434F4: .4byte 0x020314E0 _080434F8: .4byte 0x00000386 _080434FC: .4byte 0x000005FA thumb_func_start sub_43500 sub_43500: @ 0x08043500 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08043594 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bgt _08043524 ldr r0, _08043598 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _08043524 bl sub_455D0 _08043524: ldr r2, _08043594 @ =0x020314E0 ldr r0, [r2] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 ble _08043534 b _080436E8 _08043534: ldr r0, _08043598 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 beq _0804353E b _080436E8 _0804353E: movs r1, #0 adds r7, r2, #0 movs r0, #0xa9 lsls r0, r0, #3 mov r8, r0 ldr r2, _0804359C @ =0x086AFAE2 mov sl, r2 _0804354C: ldr r0, [r7] lsls r1, r1, #0x10 asrs r4, r1, #0x10 add r0, r8 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #0x17 bne _08043576 ldr r0, _080435A0 @ =0x02032F20 ldr r1, _080435A4 @ =0x086A2EAC bl MPlayStart ldr r1, [r7] ldr r0, _080435A8 @ =0x00001388 str r0, [r1, #0x3c] movs r0, #8 bl sub_11B0 _08043576: ldr r3, [r7] movs r6, #0xe8 lsls r6, r6, #2 adds r0, r3, r6 adds r0, r0, r4 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 beq _080435D4 cmp r2, #1 bgt _080435AC cmp r2, #0 beq _080435B6 b _080436D8 .align 2, 0 _08043594: .4byte 0x020314E0 _08043598: .4byte 0x0200B0C0 _0804359C: .4byte 0x086AFAE2 _080435A0: .4byte 0x02032F20 _080435A4: .4byte 0x086A2EAC _080435A8: .4byte 0x00001388 _080435AC: cmp r2, #2 beq _08043628 cmp r2, #3 beq _0804366C b _080436D8 _080435B6: lsls r1, r4, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r3, r5 adds r0, r0, r1 strh r2, [r0] ldr r1, _080435D0 @ =0x000003A3 adds r0, r3, r1 adds r0, r0, r4 movs r1, #4 strb r1, [r0] b _080436CE .align 2, 0 _080435D0: .4byte 0x000003A3 _080435D4: mov r2, r8 adds r0, r3, r2 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0804367C ldr r5, _08043624 @ =0x000003A3 adds r0, r3, r5 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #2 add r1, sl lsls r2, r4, #1 movs r6, #0xec lsls r6, r6, #2 adds r0, r3, r6 adds r2, r0, r2 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bhi _080436A6 movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r0, [r7] ldr r1, _08043624 @ =0x000003A3 adds r0, r0, r1 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #6 bne _080436D8 movs r0, #4 strb r0, [r1] b _080436D8 .align 2, 0 _08043624: .4byte 0x000003A3 _08043628: mov r2, r8 adds r0, r3, r2 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bgt _0804367C lsls r1, r4, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r3, r5 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 beq _0804365C subs r0, #1 strh r0, [r1] ldr r6, _08043658 @ =0x000003A3 adds r0, r3, r6 adds r0, r0, r4 movs r1, #8 b _080436D6 .align 2, 0 _08043658: .4byte 0x000003A3 _0804365C: ldr r1, _08043668 @ =0x000003A3 adds r0, r3, r1 adds r0, r0, r4 movs r1, #7 b _080436D6 .align 2, 0 _08043668: .4byte 0x000003A3 _0804366C: mov r2, r8 adds r0, r3, r2 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08043682 _0804367C: subs r0, r2, #1 strb r0, [r1] b _080436D8 _08043682: ldr r5, _080436AC @ =0x000003A3 adds r0, r3, r5 adds r5, r0, r4 movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #2 add r1, sl lsls r0, r4, #1 mov ip, r0 movs r2, #0xec lsls r2, r2, #2 adds r0, r3, r2 mov r3, ip adds r2, r0, r3 ldrh r3, [r2] ldrh r0, [r1] cmp r0, r3 bls _080436B0 _080436A6: adds r0, r3, #1 strh r0, [r2] b _080436D8 .align 2, 0 _080436AC: .4byte 0x000003A3 _080436B0: movs r0, #0 strh r0, [r2] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r0, [r7] ldr r5, _08043720 @ =0x000003A3 adds r0, r0, r5 adds r1, r0, r4 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0xe ble _080436D8 movs r0, #4 strb r0, [r1] _080436CE: ldr r0, [r7] adds r0, r0, r6 adds r0, r0, r4 movs r1, #1 _080436D6: strb r1, [r0] _080436D8: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _080436E8 b _0804354C _080436E8: ldr r6, _08043724 @ =0x0200C388 ldrh r0, [r6] cmp r0, #0 beq _08043788 ldr r2, _08043728 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x64 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x5e subs r0, r0, r1 strh r0, [r6, #4] ldr r2, [r2] movs r1, #0xa9 lsls r1, r1, #3 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804372C movs r0, #0 b _0804373E .align 2, 0 _08043720: .4byte 0x000003A3 _08043724: .4byte 0x0200C388 _08043728: .4byte 0x020314E0 _0804372C: ldr r1, _080437C0 @ =0x086AFAE0 ldr r3, _080437C4 @ =0x000003A3 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] _0804373E: ldr r2, _080437C8 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #5 ldr r1, _080437CC @ =0x084B47EC adds r0, r0, r1 str r0, [r2] ldr r0, _080437D0 @ =0x060114A0 str r0, [r2, #4] ldr r0, _080437D4 @ =0x80000300 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _080437D8 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _080437DC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080437E0 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08043788: ldr r6, _080437E4 @ =0x0200C2D0 ldrh r0, [r6] cmp r0, #0 beq _0804384E ldr r2, _080437E8 @ =0x020314E0 ldr r0, [r2] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x8c subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r2] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x5e subs r0, r0, r1 strh r0, [r6, #4] ldr r2, [r2] ldr r5, _080437EC @ =0x00000549 adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080437F0 movs r0, #0 b _08043804 .align 2, 0 _080437C0: .4byte 0x086AFAE0 _080437C4: .4byte 0x000003A3 _080437C8: .4byte 0x040000D4 _080437CC: .4byte 0x084B47EC _080437D0: .4byte 0x060114A0 _080437D4: .4byte 0x80000300 _080437D8: .4byte 0x03005000 _080437DC: .4byte 0x000001FF _080437E0: .4byte 0xFFFFFE00 _080437E4: .4byte 0x0200C2D0 _080437E8: .4byte 0x020314E0 _080437EC: .4byte 0x00000549 _080437F0: ldr r1, _0804385C @ =0x086AFAE0 movs r3, #0xe9 lsls r3, r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldrh r0, [r0] _08043804: ldr r2, _08043860 @ =0x040000D4 lsls r0, r0, #0x10 asrs r0, r0, #5 ldr r1, _08043864 @ =0x084B47EC adds r0, r0, r1 str r0, [r2] ldr r0, _08043868 @ =0x06010CA0 str r0, [r2, #4] ldr r0, _0804386C @ =0x80000300 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _08043870 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08043874 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08043878 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _0804384E: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804385C: .4byte 0x086AFAE0 _08043860: .4byte 0x040000D4 _08043864: .4byte 0x084B47EC _08043868: .4byte 0x06010CA0 _0804386C: .4byte 0x80000300 _08043870: .4byte 0x03005000 _08043874: .4byte 0x000001FF _08043878: .4byte 0xFFFFFE00 thumb_func_start sub_4387C sub_4387C: @ 0x0804387C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x10 ldr r0, _080438D4 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 beq _0804389A bl _080448FC _0804389A: ldr r0, _080438D8 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 beq _080438A6 bl _080448FC _080438A6: movs r0, #0 str r0, [sp] _080438AA: ldr r3, _080438D4 @ =0x020314E0 ldr r0, [r3] ldr r1, [sp] lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldr r4, _080438DC @ =0x00000553 adds r0, r0, r4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r2 cmp r0, #0xe bls _080438CA bl _080448E4 _080438CA: lsls r0, r0, #2 ldr r1, _080438E0 @ =_080438E4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080438D4: .4byte 0x020314E0 _080438D8: .4byte 0x0200B0C0 _080438DC: .4byte 0x00000553 _080438E0: .4byte _080438E4 _080438E4: @ jump table .4byte _08043920 @ case 0 .4byte _08043980 @ case 1 .4byte _08043BF8 @ case 2 .4byte _08043CB0 @ case 3 .4byte _08043DC0 @ case 4 .4byte _08043EB8 @ case 5 .4byte _08043F04 @ case 6 .4byte _08043FB0 @ case 7 .4byte _0804409C @ case 8 .4byte _080442A6 @ case 9 .4byte _08044344 @ case 10 .4byte _08044450 @ case 11 .4byte _080445BC @ case 12 .4byte _08044624 @ case 13 .4byte _080446AC @ case 14 _08043920: ldr r5, _08043968 @ =0x020314E0 ldr r1, [r5] mov r6, sb asrs r3, r6, #0x10 ldr r7, _0804396C @ =0x00000553 adds r1, r1, r7 adds r1, r1, r3 movs r4, #0 movs r0, #1 strb r0, [r1] ldr r0, [r5] ldr r1, _08043970 @ =0x0000055B adds r0, r0, r1 adds r0, r0, r3 strb r4, [r0] ldr r1, [r5] lsls r2, r3, #1 ldr r5, _08043974 @ =0x00000562 adds r0, r1, r5 adds r0, r0, r2 movs r2, #0 strh r4, [r0] ldr r6, _08043978 @ =0x0000054F adds r1, r1, r6 adds r1, r1, r3 strb r2, [r1] ldr r7, _08043968 @ =0x020314E0 ldr r0, [r7] ldr r1, _0804397C @ =0x00000557 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xff strb r1, [r0] bl _080448E4 .align 2, 0 _08043968: .4byte 0x020314E0 _0804396C: .4byte 0x00000553 _08043970: .4byte 0x0000055B _08043974: .4byte 0x00000562 _08043978: .4byte 0x0000054F _0804397C: .4byte 0x00000557 _08043980: ldr r2, _080439A4 @ =0x020314E0 ldr r0, [r2] mov r3, sb asrs r5, r3, #0x10 lsls r1, r5, #1 ldr r4, _080439A8 @ =0x00000562 adds r0, r0, r4 adds r2, r0, r1 ldrh r1, [r2] lsls r0, r5, #4 subs r0, r0, r5 lsls r0, r0, #1 adds r0, #0x78 cmp r1, r0 bge _080439AC adds r0, r1, #1 strh r0, [r2] b _08043BCA .align 2, 0 _080439A4: .4byte 0x020314E0 _080439A8: .4byte 0x00000562 _080439AC: bl sub_C00 adds r1, r0, #0 ldr r6, _08043A34 @ =0x0200B0C0 ldr r0, [r6, #0x4c] adds r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r7, _08043A38 @ =0x020314E0 ldr r4, [r7] ldr r7, _08043A3C @ =0x00000557 adds r4, r4, r7 adds r4, r4, r5 movs r1, #6 bl __umodsi3 strb r0, [r4] ldr r1, _08043A38 @ =0x020314E0 ldr r0, [r1] adds r4, r0, r7 movs r2, #0xab lsls r2, r2, #3 adds r0, r0, r2 movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 bne _080439F8 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] adds r0, #2 movs r1, #6 bl __modsi3 strb r0, [r4] _080439F8: ldr r4, _08043A38 @ =0x020314E0 ldr r3, [r4] adds r0, r3, r7 adds r0, r0, r5 movs r4, #0 ldrsb r4, [r0, r4] cmp r4, #1 bgt _08043AA0 cmp r4, #0 bne _08043A48 lsls r2, r5, #3 movs r6, #0xb0 lsls r6, r6, #3 adds r0, r3, r6 adds r0, r0, r2 movs r1, #0x92 lsls r1, r1, #7 str r1, [r0] ldr r7, _08043A40 @ =0x00000584 adds r0, r3, r7 adds r0, r0, r2 movs r1, #0xab lsls r1, r1, #8 str r1, [r0] ldr r1, _08043A44 @ =0x00000551 adds r0, r3, r1 adds r0, r0, r5 strb r4, [r0] b _08043A6E .align 2, 0 _08043A34: .4byte 0x0200B0C0 _08043A38: .4byte 0x020314E0 _08043A3C: .4byte 0x00000557 _08043A40: .4byte 0x00000584 _08043A44: .4byte 0x00000551 _08043A48: lsls r2, r5, #3 movs r4, #0xb0 lsls r4, r4, #3 adds r0, r3, r4 adds r0, r0, r2 movs r1, #0xa7 lsls r1, r1, #8 str r1, [r0] ldr r6, _08043A8C @ =0x00000584 adds r0, r3, r6 adds r0, r0, r2 movs r1, #0xac lsls r1, r1, #8 str r1, [r0] ldr r7, _08043A90 @ =0x00000551 adds r0, r3, r7 adds r0, r0, r5 movs r1, #1 strb r1, [r0] _08043A6E: ldr r2, _08043A94 @ =0x020314E0 ldr r1, [r2] mov r0, sb asrs r3, r0, #0x10 ldr r4, _08043A98 @ =0x0000055B adds r1, r1, r4 adds r1, r1, r3 movs r0, #9 strb r0, [r1] ldr r0, [r2] ldr r5, _08043A9C @ =0x00000553 adds r0, r0, r5 adds r0, r0, r3 movs r1, #7 b _08043BB6 .align 2, 0 _08043A8C: .4byte 0x00000584 _08043A90: .4byte 0x00000551 _08043A94: .4byte 0x020314E0 _08043A98: .4byte 0x0000055B _08043A9C: .4byte 0x00000553 _08043AA0: bl sub_C00 ldr r1, _08043AF8 @ =0x020314E0 ldr r2, [r1] ldr r3, _08043AFC @ =0x00000551 adds r2, r2, r3 adds r2, r2, r5 ldr r1, [r6, #0x4c] adds r1, r1, r0 movs r0, #1 ands r1, r0 strb r1, [r2] ldr r2, _08043AF8 @ =0x020314E0 ldr r1, [r2] adds r3, r1, r3 adds r3, r3, r5 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 beq _08043B24 adds r0, r1, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _08043B00 bl sub_C00 ldr r3, _08043AF8 @ =0x020314E0 ldr r4, [r3] lsls r1, r5, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r4, r4, r5 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 movs r1, #5 bl __udivsi3 adds r0, #0x50 b _08043B74 .align 2, 0 _08043AF8: .4byte 0x020314E0 _08043AFC: .4byte 0x00000551 _08043B00: bl sub_C00 ldr r6, _08043B20 @ =0x020314E0 ldr r4, [r6] lsls r1, r5, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r4, r4, r7 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 lsrs r0, r0, #1 adds r0, #0x32 b _08043B74 .align 2, 0 _08043B20: .4byte 0x020314E0 _08043B24: adds r0, r1, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #5 bne _08043B58 bl sub_C00 ldr r1, _08043B54 @ =0x020314E0 ldr r4, [r1] lsls r1, r5, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r4, r4, r2 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 movs r1, #5 bl __udivsi3 b _08043B72 .align 2, 0 _08043B54: .4byte 0x020314E0 _08043B58: bl sub_C00 ldr r3, _08043BE0 @ =0x020314E0 ldr r4, [r3] lsls r1, r5, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r4, r4, r5 adds r4, r4, r1 movs r1, #0x65 bl __umodsi3 lsrs r0, r0, #1 _08043B72: adds r0, #0x8c _08043B74: lsls r0, r0, #8 str r0, [r4] ldr r5, _08043BE0 @ =0x020314E0 ldr r2, [r5] mov r6, sb asrs r4, r6, #0x10 lsls r0, r4, #3 ldr r7, _08043BE4 @ =0x00000584 adds r3, r2, r7 adds r3, r3, r0 ldr r1, _08043BE8 @ =0x00000557 adds r0, r2, r1 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] subs r1, #2 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #9 movs r6, #0xaf lsls r6, r6, #8 adds r0, r0, r6 str r0, [r3] subs r7, #0x29 adds r2, r2, r7 adds r2, r2, r4 movs r0, #0 strb r0, [r2] ldr r0, [r5] ldr r1, _08043BEC @ =0x00000553 adds r0, r0, r1 adds r0, r0, r4 movs r1, #2 _08043BB6: strb r1, [r0] ldr r2, _08043BE0 @ =0x020314E0 ldr r0, [r2] mov r3, sb asrs r1, r3, #0xf ldr r4, _08043BF0 @ =0x00000562 adds r0, r0, r4 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _08043BCA: ldr r5, _08043BE0 @ =0x020314E0 ldr r0, [r5] mov r6, sb asrs r1, r6, #0x10 ldr r7, _08043BF4 @ =0x0000054F adds r0, r0, r7 adds r0, r0, r1 movs r1, #0 strb r1, [r0] bl _080448E4 .align 2, 0 _08043BE0: .4byte 0x020314E0 _08043BE4: .4byte 0x00000584 _08043BE8: .4byte 0x00000557 _08043BEC: .4byte 0x00000553 _08043BF0: .4byte 0x00000562 _08043BF4: .4byte 0x0000054F _08043BF8: ldr r3, _08043C2C @ =0x086AFB2C ldr r7, _08043C30 @ =0x020314E0 ldr r2, [r7] mov r0, sb asrs r5, r0, #0x10 ldr r6, _08043C34 @ =0x0000055B adds r0, r2, r6 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043C38 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043C3C adds r0, r1, #1 strh r0, [r2] b _08043C7A .align 2, 0 _08043C2C: .4byte 0x086AFB2C _08043C30: .4byte 0x020314E0 _08043C34: .4byte 0x0000055B _08043C38: .4byte 0x00000562 _08043C3C: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r7] ldr r4, _08043C9C @ =0x0000055B adds r0, r0, r4 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #3 bne _08043C62 strb r1, [r0] ldr r0, [r7] ldr r2, _08043CA0 @ =0x00000553 adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] _08043C62: ldr r0, [r7] adds r0, r0, r6 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08043C7A movs r0, #0x9a lsls r0, r0, #1 bl m4aSongNumStart _08043C7A: ldr r0, _08043CA4 @ =0x020314E0 ldr r2, [r0] mov r4, sb asrs r3, r4, #0x10 lsls r1, r3, #1 ldr r5, _08043CA8 @ =0x0000056A adds r0, r2, r5 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r6, _08043CAC @ =0x0000054F adds r2, r2, r6 adds r2, r2, r3 movs r0, #1 strb r0, [r2] bl _080448E4 .align 2, 0 _08043C9C: .4byte 0x0000055B _08043CA0: .4byte 0x00000553 _08043CA4: .4byte 0x020314E0 _08043CA8: .4byte 0x0000056A _08043CAC: .4byte 0x0000054F _08043CB0: ldr r3, _08043CE4 @ =0x086AFB2C ldr r7, _08043CE8 @ =0x020314E0 ldr r2, [r7] mov r0, sb asrs r5, r0, #0x10 ldr r1, _08043CEC @ =0x0000055B adds r0, r2, r1 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043CF0 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043CF4 adds r0, r1, #1 strh r0, [r2] b _08043D14 .align 2, 0 _08043CE4: .4byte 0x086AFB2C _08043CE8: .4byte 0x020314E0 _08043CEC: .4byte 0x0000055B _08043CF0: .4byte 0x00000562 _08043CF4: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r4, _08043D58 @ =0x020314E0 ldr r0, [r4] ldr r6, _08043D5C @ =0x0000055B adds r0, r0, r6 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #5 bne _08043D14 movs r0, #3 strb r0, [r1] _08043D14: ldr r7, _08043D58 @ =0x020314E0 ldr r3, [r7] mov r0, sb asrs r4, r0, #0x10 lsls r7, r4, #1 ldr r1, _08043D60 @ =0x0000056A adds r0, r3, r1 adds r2, r0, r7 ldrh r5, [r2] movs r6, #0 ldrsh r1, [r2, r6] ldr r0, _08043D64 @ =0x0000018F cmp r1, r0 bgt _08043D7E adds r0, r5, #1 strh r0, [r2] ldr r7, _08043D68 @ =0x00000551 adds r0, r3, r7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08043D6C lsls r0, r4, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r1, r3, r2 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x23 str r0, [r1] b _08043D9E .align 2, 0 _08043D58: .4byte 0x020314E0 _08043D5C: .4byte 0x0000055B _08043D60: .4byte 0x0000056A _08043D64: .4byte 0x0000018F _08043D68: .4byte 0x00000551 _08043D6C: lsls r0, r4, #3 movs r4, #0xb0 lsls r4, r4, #3 adds r1, r3, r4 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x23 str r0, [r1] b _08043D9E _08043D7E: ldr r5, _08043DB0 @ =0x0000055B adds r0, r3, r5 adds r0, r0, r4 movs r3, #0 movs r2, #6 strb r2, [r0] ldr r6, _08043DB4 @ =0x020314E0 ldr r1, [r6] adds r5, #7 adds r0, r1, r5 adds r0, r0, r7 strh r3, [r0] ldr r6, _08043DB8 @ =0x00000553 adds r1, r1, r6 adds r1, r1, r4 strb r2, [r1] _08043D9E: ldr r7, _08043DB4 @ =0x020314E0 ldr r0, [r7] mov r2, sb asrs r1, r2, #0x10 ldr r3, _08043DBC @ =0x0000054F adds r0, r0, r3 adds r0, r0, r1 bl _080446E8 .align 2, 0 _08043DB0: .4byte 0x0000055B _08043DB4: .4byte 0x020314E0 _08043DB8: .4byte 0x00000553 _08043DBC: .4byte 0x0000054F _08043DC0: ldr r0, _08043E00 @ =0x02032F20 ldr r1, _08043E04 @ =0x086A2D28 bl MPlayStart ldr r2, _08043E08 @ =0x020314E0 ldr r5, [r2] mov r4, sb asrs r6, r4, #0x10 ldr r7, _08043E0C @ =0x0000054F adds r0, r5, r7 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #1 bne _08043E1C lsls r1, r6, #1 ldr r3, _08043E10 @ =0x00000562 adds r0, r5, r3 adds r0, r0, r1 movs r1, #0 strh r1, [r0] ldr r4, _08043E14 @ =0x0000055B adds r0, r5, r4 adds r0, r0, r6 movs r1, #5 strb r1, [r0] ldr r0, [r2] ldr r5, _08043E18 @ =0x00000553 adds r0, r0, r5 adds r0, r0, r6 b _08043E80 .align 2, 0 _08043E00: .4byte 0x02032F20 _08043E04: .4byte 0x086A2D28 _08043E08: .4byte 0x020314E0 _08043E0C: .4byte 0x0000054F _08043E10: .4byte 0x00000562 _08043E14: .4byte 0x0000055B _08043E18: .4byte 0x00000553 _08043E1C: lsls r0, r6, #3 ldr r7, _08043E4C @ =0x00000584 adds r1, r5, r7 adds r1, r1, r0 ldr r2, _08043E50 @ =0x0000055F adds r0, r5, r2 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #8 ldr r1, [r1] adds r1, r1, r0 ldr r3, _08043E54 @ =0x0000132C adds r0, r5, r3 ldr r0, [r0] ldr r0, [r0, #0x38] cmp r1, r0 bge _08043E5C ldr r4, _08043E58 @ =0x00000553 adds r0, r5, r4 adds r0, r0, r6 movs r1, #0xa b _08043E80 .align 2, 0 _08043E4C: .4byte 0x00000584 _08043E50: .4byte 0x0000055F _08043E54: .4byte 0x0000132C _08043E58: .4byte 0x00000553 _08043E5C: lsls r0, r6, #1 ldr r7, _08043EA4 @ =0x00000562 adds r4, r5, r7 adds r4, r4, r0 ldrh r1, [r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 movs r1, #0xa0 bl __divsi3 movs r1, #0xac subs r1, r1, r0 strh r1, [r4] ldr r1, _08043EA8 @ =0x00000553 adds r0, r5, r1 adds r0, r0, r6 movs r1, #8 _08043E80: strb r1, [r0] movs r0, #7 bl sub_11B0 ldr r2, _08043EAC @ =0x020314E0 ldr r1, [r2] mov r3, sb asrs r0, r3, #0x10 ldr r4, _08043EB0 @ =0x0000054F adds r1, r1, r4 adds r1, r1, r0 movs r0, #0 strb r0, [r1] ldr r1, [r2] ldr r0, _08043EB4 @ =0x00000BB8 str r0, [r1, #0x3c] bl _080448E4 .align 2, 0 _08043EA4: .4byte 0x00000562 _08043EA8: .4byte 0x00000553 _08043EAC: .4byte 0x020314E0 _08043EB0: .4byte 0x0000054F _08043EB4: .4byte 0x00000BB8 _08043EB8: ldr r5, _08043EE0 @ =0x020314E0 ldr r2, [r5] mov r6, sb asrs r3, r6, #0x10 lsls r1, r3, #1 ldr r7, _08043EE4 @ =0x00000562 adds r0, r2, r7 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #9 bhi _08043EEC adds r0, #1 strh r0, [r1] ldr r1, _08043EE8 @ =0x0000055B adds r0, r2, r1 adds r0, r0, r3 movs r1, #5 strb r1, [r0] bl _080448E4 .align 2, 0 _08043EE0: .4byte 0x020314E0 _08043EE4: .4byte 0x00000562 _08043EE8: .4byte 0x0000055B _08043EEC: movs r0, #0 strh r0, [r1] ldr r4, _08043F00 @ =0x00000553 adds r0, r2, r4 adds r0, r0, r3 movs r1, #6 strb r1, [r0] bl _080448E4 .align 2, 0 _08043F00: .4byte 0x00000553 _08043F04: ldr r3, _08043F38 @ =0x086AFB2C ldr r7, _08043F3C @ =0x020314E0 ldr r2, [r7] mov r6, sb asrs r5, r6, #0x10 ldr r6, _08043F40 @ =0x0000055B adds r0, r2, r6 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043F44 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043F48 adds r0, r1, #1 strh r0, [r2] b _08043F86 .align 2, 0 _08043F38: .4byte 0x086AFB2C _08043F3C: .4byte 0x020314E0 _08043F40: .4byte 0x0000055B _08043F44: .4byte 0x00000562 _08043F48: movs r3, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r7] ldr r4, _08043F9C @ =0x0000055B adds r0, r0, r4 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #9 bne _08043F70 strb r3, [r1] ldr r0, [r7] ldr r1, _08043FA0 @ =0x00000553 adds r0, r0, r1 adds r0, r0, r5 strb r3, [r0] _08043F70: ldr r0, [r7] adds r0, r0, r6 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #7 bne _08043F86 ldr r0, _08043FA4 @ =0x00000135 bl m4aSongNumStart _08043F86: ldr r0, _08043FA8 @ =0x020314E0 ldr r1, [r0] mov r2, sb asrs r0, r2, #0x10 ldr r3, _08043FAC @ =0x0000054F adds r1, r1, r3 adds r1, r1, r0 movs r0, #0 strb r0, [r1] bl _080448E4 .align 2, 0 _08043F9C: .4byte 0x0000055B _08043FA0: .4byte 0x00000553 _08043FA4: .4byte 0x00000135 _08043FA8: .4byte 0x020314E0 _08043FAC: .4byte 0x0000054F _08043FB0: ldr r3, _08043FE4 @ =0x086AFB2C ldr r6, _08043FE8 @ =0x020314E0 ldr r2, [r6] mov r4, sb asrs r5, r4, #0x10 ldr r7, _08043FEC @ =0x0000055B adds r0, r2, r7 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r3, _08043FF0 @ =0x00000562 adds r2, r2, r3 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _08043FF4 adds r0, r1, #1 strh r0, [r2] b _08044068 .align 2, 0 _08043FE4: .4byte 0x086AFB2C _08043FE8: .4byte 0x020314E0 _08043FEC: .4byte 0x0000055B _08043FF0: .4byte 0x00000562 _08043FF4: movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r1, [r6] ldr r4, _08044080 @ =0x0000055B adds r0, r1, r4 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xe bne _08044050 ldr r2, _08044084 @ =0x00000553 adds r0, r1, r2 adds r0, r0, r5 movs r1, #8 strb r1, [r0] ldr r2, [r6] lsls r4, r5, #3 movs r0, #0xb0 lsls r0, r0, #3 adds r3, r2, r0 adds r3, r3, r4 ldr r1, _08044088 @ =0x0000055D adds r0, r2, r1 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #8 ldr r0, [r3] adds r0, r0, r1 str r0, [r3] ldr r0, _0804408C @ =0x00000584 adds r3, r2, r0 adds r3, r3, r4 ldr r1, _08044090 @ =0x0000055F adds r2, r2, r1 adds r2, r2, r5 movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #8 ldr r0, [r3] adds r0, r0, r1 str r0, [r3] _08044050: ldr r0, [r6] adds r0, r0, r7 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08044068 movs r0, #0xa0 lsls r0, r0, #1 bl m4aSongNumStart _08044068: ldr r0, _08044094 @ =0x020314E0 ldr r1, [r0] mov r2, sb asrs r0, r2, #0x10 ldr r3, _08044098 @ =0x0000054F adds r1, r1, r3 adds r1, r1, r0 movs r0, #2 strb r0, [r1] bl _080448E4 .align 2, 0 _08044080: .4byte 0x0000055B _08044084: .4byte 0x00000553 _08044088: .4byte 0x0000055D _0804408C: .4byte 0x00000584 _08044090: .4byte 0x0000055F _08044094: .4byte 0x020314E0 _08044098: .4byte 0x0000054F _0804409C: ldr r4, _080440D8 @ =0x020314E0 ldr r1, [r4] mov r5, sb asrs r3, r5, #0x10 lsls r4, r3, #1 ldr r6, _080440DC @ =0x00000562 adds r0, r1, r6 adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0xb7 bls _080440B4 b _0804423C _080440B4: cmp r0, #0x9f bhi _0804417C ldr r7, _080440E0 @ =0x00000551 adds r0, r1, r7 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080440E4 lsls r0, r3, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r1, r1, r2 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x10 b _080440F2 .align 2, 0 _080440D8: .4byte 0x020314E0 _080440DC: .4byte 0x00000562 _080440E0: .4byte 0x00000551 _080440E4: lsls r0, r3, #3 movs r3, #0xb0 lsls r3, r3, #3 adds r1, r1, r3 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x10 _080440F2: str r0, [r1] ldr r4, _0804411C @ =0x020314E0 ldr r3, [r4] mov r5, sb asrs r2, r5, #0x10 lsls r1, r2, #1 ldr r6, _08044120 @ =0x00000562 adds r0, r3, r6 adds r0, r0, r1 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08044128 lsls r0, r2, #3 ldr r7, _08044124 @ =0x00000584 adds r1, r3, r7 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x10 b _08044134 .align 2, 0 _0804411C: .4byte 0x020314E0 _08044120: .4byte 0x00000562 _08044124: .4byte 0x00000584 _08044128: lsls r0, r2, #3 ldr r2, _08044160 @ =0x00000584 adds r1, r3, r2 adds r1, r1, r0 ldr r0, [r1] subs r0, #0x20 _08044134: str r0, [r1] ldr r3, _08044164 @ =0x020314E0 ldr r4, [r3] mov r6, sb asrs r5, r6, #0x10 lsls r1, r5, #1 ldr r7, _08044168 @ =0x00000562 adds r0, r4, r7 adds r0, r0, r1 ldrh r0, [r0] movs r1, #0x13 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _08044170 ldr r1, _0804416C @ =0x0000055B adds r0, r4, r1 adds r0, r0, r5 movs r1, #0xe b _08044216 .align 2, 0 _08044160: .4byte 0x00000584 _08044164: .4byte 0x020314E0 _08044168: .4byte 0x00000562 _0804416C: .4byte 0x0000055B _08044170: ldr r2, _08044178 @ =0x0000055B adds r0, r4, r2 adds r0, r0, r5 b _08044214 .align 2, 0 _08044178: .4byte 0x0000055B _0804417C: ldr r4, _080441A0 @ =0x00000551 adds r0, r1, r4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080441A4 lsls r0, r3, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r1, r1, r5 adds r1, r1, r0 ldr r0, [r1] movs r6, #0xa0 lsls r6, r6, #1 adds r0, r0, r6 b _080441B4 .align 2, 0 _080441A0: .4byte 0x00000551 _080441A4: lsls r0, r3, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r1, r1, r7 adds r1, r1, r0 ldr r0, [r1] ldr r2, _080441E4 @ =0xFFFFFEC0 adds r0, r0, r2 _080441B4: str r0, [r1] ldr r4, _080441E8 @ =0x020314E0 ldr r3, [r4] mov r5, sb asrs r2, r5, #0x10 lsls r1, r2, #1 ldr r6, _080441EC @ =0x00000562 adds r0, r3, r6 adds r0, r0, r1 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080441F4 lsls r0, r2, #3 ldr r7, _080441F0 @ =0x00000584 adds r1, r3, r7 adds r1, r1, r0 ldr r0, [r1] movs r2, #0xa0 lsls r2, r2, #1 adds r0, r0, r2 b _08044204 .align 2, 0 _080441E4: .4byte 0xFFFFFEC0 _080441E8: .4byte 0x020314E0 _080441EC: .4byte 0x00000562 _080441F0: .4byte 0x00000584 _080441F4: lsls r0, r2, #3 ldr r4, _0804422C @ =0x00000584 adds r1, r3, r4 adds r1, r1, r0 ldr r0, [r1] movs r5, #0xf0 lsls r5, r5, #1 adds r0, r0, r5 _08044204: str r0, [r1] ldr r6, _08044230 @ =0x020314E0 ldr r0, [r6] mov r7, sb asrs r1, r7, #0x10 ldr r2, _08044234 @ =0x0000055B adds r0, r0, r2 adds r0, r0, r1 _08044214: movs r1, #0xf _08044216: strb r1, [r0] ldr r3, _08044230 @ =0x020314E0 ldr r0, [r3] mov r4, sb asrs r1, r4, #0xf ldr r5, _08044238 @ =0x00000562 adds r0, r0, r5 adds r0, r0, r1 ldrh r1, [r0] adds r1, #1 b _080448E2 .align 2, 0 _0804422C: .4byte 0x00000584 _08044230: .4byte 0x020314E0 _08044234: .4byte 0x0000055B _08044238: .4byte 0x00000562 _0804423C: ldr r6, _08044284 @ =0x00000553 adds r1, r1, r6 adds r1, r1, r3 movs r2, #0 movs r0, #9 strb r0, [r1] ldr r7, _08044288 @ =0x020314E0 ldr r0, [r7] ldr r1, _0804428C @ =0x0000055B adds r0, r0, r1 adds r0, r0, r3 movs r1, #0x10 strb r1, [r0] ldr r1, [r7] ldr r5, _08044290 @ =0x00000562 adds r0, r1, r5 adds r0, r0, r4 strh r2, [r0] subs r6, #2 adds r0, r1, r6 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08044294 lsls r0, r3, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r1, r1, r7 adds r1, r1, r0 ldr r0, [r1] adds r0, #0xf0 str r0, [r1] b _080448E4 .align 2, 0 _08044284: .4byte 0x00000553 _08044288: .4byte 0x020314E0 _0804428C: .4byte 0x0000055B _08044290: .4byte 0x00000562 _08044294: lsls r0, r3, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r1, r1, r2 adds r1, r1, r0 ldr r0, [r1] subs r0, #0xf0 str r0, [r1] b _080448E4 _080442A6: ldr r3, _080442DC @ =0x086AFB2C ldr r4, _080442E0 @ =0x020314E0 ldr r2, [r4] mov r6, sb asrs r5, r6, #0x10 ldr r6, _080442E4 @ =0x0000055B adds r0, r2, r6 adds r4, r0, r5 movs r1, #0 ldrsb r1, [r4, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 adds r3, #2 adds r0, r0, r3 lsls r1, r5, #1 ldr r7, _080442E8 @ =0x00000562 adds r2, r2, r7 adds r2, r2, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r0, r1 bls _080442EC adds r0, r1, #1 strh r0, [r2] b _080448E4 .align 2, 0 _080442DC: .4byte 0x086AFB2C _080442E0: .4byte 0x020314E0 _080442E4: .4byte 0x0000055B _080442E8: .4byte 0x00000562 _080442EC: movs r3, #0 movs r0, #0 strh r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r1, _08044334 @ =0x020314E0 ldr r0, [r1] ldr r2, _08044338 @ =0x0000055B adds r0, r0, r2 adds r1, r0, r5 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x14 bne _08044318 strb r3, [r1] ldr r4, _08044334 @ =0x020314E0 ldr r0, [r4] ldr r7, _0804433C @ =0x00000553 adds r0, r0, r7 adds r0, r0, r5 strb r3, [r0] _08044318: ldr r1, _08044334 @ =0x020314E0 ldr r0, [r1] adds r0, r0, r6 adds r0, r0, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x11 beq _0804432C b _080448E4 _0804432C: ldr r0, _08044340 @ =0x00000135 bl m4aSongNumStart b _080448E4 .align 2, 0 _08044334: .4byte 0x020314E0 _08044338: .4byte 0x0000055B _0804433C: .4byte 0x00000553 _08044340: .4byte 0x00000135 _08044344: ldr r2, _0804442C @ =0x020314E0 ldr r6, [r2] mov r3, sb asrs r4, r3, #0x10 ldr r5, _08044430 @ =0x00000551 adds r0, r6, r5 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r2, #0 cmp r0, #0 bne _08044360 movs r2, #3 _08044360: ldr r1, _08044434 @ =0x086AFAC0 lsls r2, r2, #0x10 lsrs r0, r2, #0xd adds r3, r0, r1 ldrh r0, [r3, #4] lsls r5, r0, #0x10 movs r7, #0 mov ip, r1 mov sl, r2 cmp r5, #0 ble _0804439E ldr r3, [r3] lsls r1, r4, #1 ldr r2, _08044438 @ =0x00000566 adds r0, r6, r2 adds r0, r0, r1 movs r4, #0 ldrsh r1, [r0, r4] _08044384: lsls r0, r7, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #2 adds r0, r0, r3 movs r6, #2 ldrsh r0, [r0, r6] cmp r0, r1 ble _0804439E adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r0, r5 blt _08044384 _0804439E: ldr r1, _0804442C @ =0x020314E0 ldr r0, [r1] mov r2, sb asrs r5, r2, #0x10 ldr r4, _0804443C @ =0x00000559 adds r0, r0, r4 adds r0, r0, r5 movs r3, #0 strb r7, [r0] ldr r0, [r1] ldr r6, _08044440 @ =0x00000553 adds r0, r0, r6 adds r0, r0, r5 movs r1, #0xb strb r1, [r0] ldr r7, _0804442C @ =0x020314E0 ldr r0, [r7] ldr r1, _08044444 @ =0x0000055B adds r0, r0, r1 adds r0, r0, r5 movs r1, #0x1d strb r1, [r0] ldr r2, [r7] lsls r1, r5, #1 adds r6, #0xf adds r0, r2, r6 adds r0, r0, r1 movs r7, #0 mov r8, r7 strh r3, [r0] lsls r6, r5, #3 movs r0, #0xb0 lsls r0, r0, #3 adds r3, r2, r0 adds r3, r3, r6 mov r7, sl lsrs r1, r7, #0xd add r1, ip adds r4, r2, r4 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] ldr r1, [r1] lsls r0, r0, #2 adds r0, r0, r1 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 str r0, [r3] ldr r0, _08044448 @ =0x00000584 adds r2, r2, r0 adds r2, r2, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #2 adds r0, r0, r1 movs r1, #2 ldrsh r0, [r0, r1] lsls r0, r0, #8 str r0, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r2, _0804442C @ =0x020314E0 ldr r0, [r2] ldr r3, _0804444C @ =0x0000054F adds r0, r0, r3 adds r0, r0, r5 mov r4, r8 strb r4, [r0] b _080448E4 .align 2, 0 _0804442C: .4byte 0x020314E0 _08044430: .4byte 0x00000551 _08044434: .4byte 0x086AFAC0 _08044438: .4byte 0x00000566 _0804443C: .4byte 0x00000559 _08044440: .4byte 0x00000553 _08044444: .4byte 0x0000055B _08044448: .4byte 0x00000584 _0804444C: .4byte 0x0000054F _08044450: ldr r5, _08044528 @ =0x020314E0 ldr r6, [r5] mov r7, sb asrs r4, r7, #0x10 ldr r0, _0804452C @ =0x00000551 mov sl, r0 adds r0, r6, r0 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r2, #0 cmp r0, #0 bne _0804446E movs r2, #3 _0804446E: ldr r1, _08044530 @ =0x00000559 adds r0, r6, r1 adds r5, r0, r4 movs r3, #0 ldrsb r3, [r5, r3] mov r8, r3 ldr r1, _08044534 @ =0x086AFAC0 lsls r0, r2, #3 adds r0, r0, r1 mov ip, r0 movs r7, #4 ldrsh r0, [r0, r7] cmp r8, r0 bge _08044566 lsls r2, r4, #3 movs r0, #0xb0 lsls r0, r0, #3 adds r1, r6, r0 adds r1, r1, r2 mov r7, ip ldr r3, [r7] mov r7, r8 lsls r0, r7, #2 adds r0, r0, r3 movs r7, #0 ldrsh r0, [r0, r7] lsls r0, r0, #8 str r0, [r1] ldr r0, _08044538 @ =0x00000584 adds r1, r6, r0 adds r1, r1, r2 movs r0, #0 ldrsb r0, [r5, r0] lsls r0, r0, #2 adds r0, r0, r3 movs r2, #2 ldrsh r0, [r0, r2] lsls r0, r0, #8 str r0, [r1] ldrb r0, [r5] adds r0, #1 strb r0, [r5] ldr r3, _08044528 @ =0x020314E0 ldr r2, [r3] ldr r5, _08044530 @ =0x00000559 adds r0, r2, r5 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] mov r6, ip movs r7, #4 ldrsh r0, [r6, r7] cmp r1, r0 bne _08044566 ldr r1, _0804453C @ =0x00000553 adds r0, r2, r1 adds r0, r0, r4 movs r1, #0xc strb r1, [r0] ldr r0, [r3] movs r2, #0xa6 lsls r2, r2, #3 adds r1, r0, r2 adds r1, r1, r4 add r0, sl adds r0, r0, r4 ldrb r0, [r0] strb r0, [r1] ldr r0, [r3] ldr r3, _08044540 @ =0x00000536 adds r0, r0, r3 adds r0, r0, r4 movs r1, #2 strb r1, [r0] ldr r5, _08044528 @ =0x020314E0 ldr r1, [r5] mov r6, sl adds r0, r1, r6 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08044544 lsls r0, r4, #2 adds r0, r1, r0 movs r7, #0xaf lsls r7, r7, #3 adds r0, r0, r7 movs r1, #0xa0 lsls r1, r1, #1 b _08044550 .align 2, 0 _08044528: .4byte 0x020314E0 _0804452C: .4byte 0x00000551 _08044530: .4byte 0x00000559 _08044534: .4byte 0x086AFAC0 _08044538: .4byte 0x00000584 _0804453C: .4byte 0x00000553 _08044540: .4byte 0x00000536 _08044544: lsls r0, r4, #2 adds r0, r1, r0 movs r1, #0xaf lsls r1, r1, #3 adds r0, r0, r1 ldr r1, _080445A4 @ =0x0000FEC0 _08044550: strh r1, [r0] ldr r2, _080445A8 @ =0x020314E0 ldr r0, [r2] mov r3, sb asrs r1, r3, #0xe adds r0, r0, r1 ldr r4, _080445AC @ =0x0000057A adds r0, r0, r4 movs r1, #0xe8 lsls r1, r1, #1 strh r1, [r0] _08044566: ldr r5, _080445A8 @ =0x020314E0 ldr r0, [r5] mov r6, sb asrs r4, r6, #0x10 ldr r7, _080445B0 @ =0x0000055B adds r3, r0, r7 adds r3, r3, r4 lsls r5, r4, #1 ldr r2, _080445B4 @ =0x00000562 adds r0, r0, r2 adds r0, r0, r5 ldrh r0, [r0] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #2 adds r0, #0x1e strb r0, [r3] ldr r0, _080445A8 @ =0x020314E0 ldr r1, [r0] adds r2, r1, r2 adds r2, r2, r5 ldrh r0, [r2] adds r0, #1 movs r3, #0 strh r0, [r2] ldr r2, _080445B8 @ =0x0000054F adds r1, r1, r2 adds r1, r1, r4 strb r3, [r1] b _080448E4 .align 2, 0 _080445A4: .4byte 0x0000FEC0 _080445A8: .4byte 0x020314E0 _080445AC: .4byte 0x0000057A _080445B0: .4byte 0x0000055B _080445B4: .4byte 0x00000562 _080445B8: .4byte 0x0000054F _080445BC: ldr r3, _08044610 @ =0x020314E0 ldr r4, [r3] mov r5, sb asrs r6, r5, #0x10 lsls r5, r6, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r3, r4, r7 adds r3, r3, r5 lsls r2, r6, #2 adds r2, r4, r2 movs r1, #0xaf lsls r1, r1, #3 adds r0, r2, r1 movs r7, #0 ldrsh r1, [r0, r7] ldr r0, [r3] adds r0, r0, r1 str r0, [r3] ldr r0, _08044614 @ =0x00000584 adds r1, r4, r0 adds r1, r1, r5 ldr r3, _08044618 @ =0x0000057A adds r2, r2, r3 movs r5, #0 ldrsh r2, [r2, r5] ldr r0, [r1] adds r0, r0, r2 str r0, [r1] ldr r7, _0804461C @ =0x0000055B adds r3, r4, r7 adds r3, r3, r6 lsls r5, r6, #1 ldr r2, _08044620 @ =0x00000562 adds r4, r4, r2 adds r4, r4, r5 ldrh r0, [r4] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #2 adds r0, #0x1e b _08044676 .align 2, 0 _08044610: .4byte 0x020314E0 _08044614: .4byte 0x00000584 _08044618: .4byte 0x0000057A _0804461C: .4byte 0x0000055B _08044620: .4byte 0x00000562 _08044624: ldr r3, _08044694 @ =0x020314E0 ldr r4, [r3] mov r5, sb asrs r6, r5, #0x10 lsls r5, r6, #3 movs r7, #0xb0 lsls r7, r7, #3 adds r3, r4, r7 adds r3, r3, r5 lsls r2, r6, #2 adds r2, r4, r2 movs r1, #0xaf lsls r1, r1, #3 adds r0, r2, r1 movs r7, #0 ldrsh r1, [r0, r7] ldr r0, [r3] adds r0, r0, r1 str r0, [r3] ldr r0, _08044698 @ =0x00000584 adds r1, r4, r0 adds r1, r1, r5 ldr r3, _0804469C @ =0x0000057A adds r2, r2, r3 movs r5, #0 ldrsh r2, [r2, r5] ldr r0, [r1] adds r0, r0, r2 str r0, [r1] ldr r7, _080446A0 @ =0x0000055B adds r3, r4, r7 adds r3, r3, r6 lsls r5, r6, #1 ldr r2, _080446A4 @ =0x00000562 adds r4, r4, r2 adds r4, r4, r5 ldrh r0, [r4] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #3 adds r0, #0x1a _08044676: strb r0, [r3] ldr r0, _08044694 @ =0x020314E0 ldr r1, [r0] adds r2, r1, r2 adds r2, r2, r5 ldrh r0, [r2] adds r0, #1 movs r3, #0 strh r0, [r2] ldr r2, _080446A8 @ =0x0000054F adds r1, r1, r2 adds r1, r1, r6 strb r3, [r1] b _080448E4 .align 2, 0 _08044694: .4byte 0x020314E0 _08044698: .4byte 0x00000584 _0804469C: .4byte 0x0000057A _080446A0: .4byte 0x0000055B _080446A4: .4byte 0x00000562 _080446A8: .4byte 0x0000054F _080446AC: ldr r3, _080446F0 @ =0x020314E0 ldr r1, [r3] mov r5, sb asrs r4, r5, #0x10 ldr r6, _080446F4 @ =0x00000557 adds r1, r1, r6 adds r1, r1, r4 movs r0, #0xff strb r0, [r1] ldr r5, [r3] ldr r7, _080446F8 @ =0x0000054D adds r0, r5, r7 adds r1, r0, r4 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _08044704 subs r0, r2, #1 strb r0, [r1] ldr r0, [r3] ldr r1, _080446FC @ =0x0000055B adds r0, r0, r1 adds r0, r0, r4 movs r1, #0x26 strb r1, [r0] ldr r0, [r3] ldr r2, _08044700 @ =0x0000054B adds r0, r0, r2 adds r0, r0, r4 _080446E8: movs r1, #1 strb r1, [r0] b _080448E4 .align 2, 0 _080446F0: .4byte 0x020314E0 _080446F4: .4byte 0x00000557 _080446F8: .4byte 0x0000054D _080446FC: .4byte 0x0000055B _08044700: .4byte 0x0000054B _08044704: lsls r2, r4, #1 ldr r6, _08044748 @ =0x00000562 adds r0, r5, r6 adds r3, r0, r2 ldrh r1, [r3] ldr r0, _0804474C @ =0x0000014D cmp r1, r0 bls _08044716 b _080448C4 _08044716: cmp r1, #0xf bhi _0804475C ldr r3, _08044750 @ =0x0000055B adds r0, r5, r3 adds r0, r0, r4 movs r1, #0x15 strb r1, [r0] ldr r5, _08044754 @ =0x020314E0 ldr r0, [r5] adds r0, r0, r6 adds r0, r0, r2 ldrh r0, [r0] cmp r0, #1 bne _0804473A movs r0, #0x9f lsls r0, r0, #1 bl m4aSongNumStart _0804473A: ldr r6, _08044754 @ =0x020314E0 ldr r0, [r6] ldr r7, _08044758 @ =0x0000054F adds r0, r0, r7 adds r0, r0, r4 b _08044824 .align 2, 0 _08044748: .4byte 0x00000562 _0804474C: .4byte 0x0000014D _08044750: .4byte 0x0000055B _08044754: .4byte 0x020314E0 _08044758: .4byte 0x0000054F _0804475C: ldr r0, _0804479C @ =0x0000013B cmp r1, r0 bhi _08044840 ldr r1, _080447A0 @ =0x0000054B adds r0, r5, r1 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080447B8 lsls r0, r4, #3 ldr r2, _080447A4 @ =0x00000584 adds r1, r5, r2 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x40 str r0, [r1] ldrh r0, [r3] movs r1, #0x13 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #9 bhi _080447AC ldr r3, _080447A8 @ =0x0000055B adds r0, r5, r3 adds r0, r0, r4 movs r1, #0x16 b _080447F0 .align 2, 0 _0804479C: .4byte 0x0000013B _080447A0: .4byte 0x0000054B _080447A4: .4byte 0x00000584 _080447A8: .4byte 0x0000055B _080447AC: ldr r6, _080447B4 @ =0x0000055B adds r0, r5, r6 b _080447EC .align 2, 0 _080447B4: .4byte 0x0000055B _080447B8: lsls r0, r4, #3 ldr r7, _080447E0 @ =0x00000584 adds r1, r5, r7 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x80 str r0, [r1] ldrh r0, [r3] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #4 bhi _080447E8 ldr r1, _080447E4 @ =0x0000055B adds r0, r5, r1 adds r0, r0, r4 movs r1, #0x16 b _080447F0 .align 2, 0 _080447E0: .4byte 0x00000584 _080447E4: .4byte 0x0000055B _080447E8: ldr r2, _0804482C @ =0x0000055B adds r0, r5, r2 _080447EC: adds r0, r0, r4 movs r1, #0x17 _080447F0: strb r1, [r0] ldr r4, _08044830 @ =0x020314E0 ldr r3, [r4] mov r5, sb asrs r2, r5, #0x10 lsls r1, r2, #3 ldr r6, _08044834 @ =0x00000584 adds r0, r3, r6 adds r0, r0, r1 ldr r1, [r0] movs r0, #0xac lsls r0, r0, #8 cmp r1, r0 ble _0804481A lsls r0, r2, #1 ldr r7, _08044838 @ =0x00000562 adds r1, r3, r7 adds r1, r1, r0 movs r0, #0x9e lsls r0, r0, #1 strh r0, [r1] _0804481A: ldr r1, _08044830 @ =0x020314E0 ldr r0, [r1] ldr r3, _0804483C @ =0x0000054F adds r0, r0, r3 adds r0, r0, r2 _08044824: movs r1, #3 strb r1, [r0] b _080448A0 .align 2, 0 _0804482C: .4byte 0x0000055B _08044830: .4byte 0x020314E0 _08044834: .4byte 0x00000584 _08044838: .4byte 0x00000562 _0804483C: .4byte 0x0000054F _08044840: lsls r0, r4, #3 ldr r6, _0804486C @ =0x00000584 adds r1, r5, r6 adds r1, r1, r0 ldr r0, [r1] adds r0, #0x30 str r0, [r1] ldr r7, _08044870 @ =0xFFFFFEC4 adds r0, r7, #0 ldrh r3, [r3] adds r0, r0, r3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 bgt _08044878 ldr r1, _08044874 @ =0x0000055B adds r0, r5, r1 adds r0, r0, r4 movs r1, #0x18 b _08044880 .align 2, 0 _0804486C: .4byte 0x00000584 _08044870: .4byte 0xFFFFFEC4 _08044874: .4byte 0x0000055B _08044878: ldr r3, _080448B4 @ =0x0000055B adds r0, r5, r3 adds r0, r0, r4 movs r1, #0x19 _08044880: strb r1, [r0] cmp r2, #1 bne _0804488E movs r0, #0x9b lsls r0, r0, #1 bl m4aSongNumStart _0804488E: ldr r2, _080448B8 @ =0x020314E0 ldr r1, [r2] mov r4, sb asrs r0, r4, #0x10 ldr r5, _080448BC @ =0x0000054F adds r1, r1, r5 adds r1, r1, r0 movs r0, #0 strb r0, [r1] _080448A0: ldr r6, _080448B8 @ =0x020314E0 ldr r0, [r6] mov r7, sb asrs r1, r7, #0xf ldr r2, _080448C0 @ =0x00000562 adds r0, r0, r2 adds r0, r0, r1 ldrh r1, [r0] adds r1, #1 b _080448E2 .align 2, 0 _080448B4: .4byte 0x0000055B _080448B8: .4byte 0x020314E0 _080448BC: .4byte 0x0000054F _080448C0: .4byte 0x00000562 _080448C4: ldr r3, _08044A9C @ =0x00000553 adds r0, r5, r3 adds r0, r0, r4 movs r1, #0 strb r1, [r0] ldr r5, _08044AA0 @ =0x020314E0 ldr r0, [r5] ldr r6, _08044AA4 @ =0x0000055B adds r0, r0, r6 adds r0, r0, r4 strb r1, [r0] ldr r0, [r5] ldr r7, _08044AA8 @ =0x00000562 adds r0, r0, r7 adds r0, r0, r2 _080448E2: strh r1, [r0] _080448E4: ldr r1, [sp] lsls r0, r1, #0x10 movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 lsrs r3, r0, #0x10 str r3, [sp] asrs r0, r0, #0x10 cmp r0, #1 bgt _080448FC bl _080438AA _080448FC: movs r4, #0 str r4, [sp] _08044900: ldr r5, [sp] lsls r1, r5, #0x10 asrs r4, r1, #0x10 movs r0, #0xb8 muls r0, r4, r0 ldr r6, _08044AAC @ =0x0200BDC8 adds r0, r0, r6 mov r8, r0 ldrh r0, [r0] mov sb, r1 cmp r0, #0 bne _0804491A b _08044D12 _0804491A: ldr r7, _08044AA0 @ =0x020314E0 ldr r1, [r7] ldr r0, _08044AB0 @ =0x00000555 adds r3, r1, r0 adds r3, r3, r4 movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] ldr r2, _08044AA4 @ =0x0000055B adds r0, r1, r2 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #1 ldr r0, _08044AB4 @ =0x086AFB2C adds r0, #4 adds r2, r2, r0 ldr r5, _08044AB8 @ =0x00000551 adds r1, r1, r5 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] movs r1, #1 subs r1, r1, r0 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #1 ldrb r2, [r2] adds r0, r0, r2 strb r0, [r3] ldr r2, [r7] ldr r6, _08044AA4 @ =0x0000055B adds r0, r2, r6 adds r0, r0, r4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 ldr r7, _08044AB4 @ =0x086AFB2C adds r0, r0, r7 ldrh r5, [r0] lsls r3, r4, #3 movs r1, #0xb0 lsls r1, r1, #3 adds r0, r2, r1 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _0804498A adds r0, #0xff _0804498A: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x58 ldrh r0, [r0] adds r0, #0xc subs r1, r1, r0 mov r6, r8 strh r1, [r6, #2] ldr r7, _08044ABC @ =0x00000584 adds r0, r2, r7 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _080449A8 adds r0, #0xff _080449A8: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] adds r0, #0xe subs r1, r1, r0 mov r0, r8 strh r1, [r0, #4] ldr r2, [sp, #4] lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r1, _08044AC0 @ =0x084B046C adds r0, r0, r1 ldr r6, _08044AC4 @ =0x040000D4 str r0, [r6] adds r0, r3, r4 lsls r0, r0, #5 ldr r7, _08044AC8 @ =0x06011CA0 adds r0, r0, r7 str r0, [r6, #4] ldr r0, _08044ACC @ =0x80000090 str r0, [r6, #8] ldr r0, [r6, #8] movs r7, #0 lsls r0, r5, #0x10 ldr r1, _08044AD0 @ =0x03005000 mov ip, r1 adds r6, r4, #0 asrs r0, r0, #0x10 mov sl, r0 _080449EA: lsls r0, r7, #0x10 asrs r3, r0, #0x10 lsls r0, r3, #3 adds r0, #8 mov r2, r8 adds r5, r2, r0 ldrh r2, [r5] lsls r2, r2, #3 add r2, ip mov r4, sl lsls r1, r4, #1 add r1, sl lsls r1, r1, #3 lsls r0, r3, #1 adds r0, r0, r3 lsls r0, r0, #1 ldr r4, _08044AD4 @ =0x086B56D8 adds r0, r0, r4 adds r1, r1, r0 ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, #2] strh r0, [r2, #2] ldr r0, _08044AA0 @ =0x020314E0 ldr r1, [r0] ldr r2, _08044AB8 @ =0x00000551 adds r0, r1, r2 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08044AE8 cmp r3, #0 bne _08044A5E ldr r3, _08044AD8 @ =0x0000055D adds r1, r1, r3 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrb r0, [r0, #2] rsbs r0, r0, #0 strb r0, [r1] ldr r4, _08044AA0 @ =0x020314E0 ldr r1, [r4] ldr r0, _08044ADC @ =0x0000055F adds r1, r1, r0 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrb r0, [r0] strb r0, [r1] _08044A5E: ldrh r3, [r5] lsls r3, r3, #3 add r3, ip ldrh r4, [r3, #2] lsls r1, r4, #0x17 lsrs r1, r1, #0x17 mov r2, r8 movs r0, #2 ldrsh r2, [r2, r0] str r2, [sp, #8] ldr r2, _08044AA0 @ =0x020314E0 ldr r0, [r2] ldr r2, _08044AD8 @ =0x0000055D adds r0, r0, r2 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 ldr r2, [sp, #8] adds r0, r2, r0 adds r1, r1, r0 ldr r2, _08044AE0 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldr r0, _08044AE4 @ =0xFFFFFE00 ands r0, r4 orrs r0, r1 strh r0, [r3, #2] b _08044B36 .align 2, 0 _08044A9C: .4byte 0x00000553 _08044AA0: .4byte 0x020314E0 _08044AA4: .4byte 0x0000055B _08044AA8: .4byte 0x00000562 _08044AAC: .4byte 0x0200BDC8 _08044AB0: .4byte 0x00000555 _08044AB4: .4byte 0x086AFB2C _08044AB8: .4byte 0x00000551 _08044ABC: .4byte 0x00000584 _08044AC0: .4byte 0x084B046C _08044AC4: .4byte 0x040000D4 _08044AC8: .4byte 0x06011CA0 _08044ACC: .4byte 0x80000090 _08044AD0: .4byte 0x03005000 _08044AD4: .4byte 0x086B56D8 _08044AD8: .4byte 0x0000055D _08044ADC: .4byte 0x0000055F _08044AE0: .4byte 0x000001FF _08044AE4: .4byte 0xFFFFFE00 _08044AE8: cmp r3, #0 bne _08044B10 ldr r3, _08044C24 @ =0x0000055D adds r1, r1, r3 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrh r0, [r0, #2] strb r0, [r1] ldr r4, _08044C28 @ =0x020314E0 ldr r1, [r4] ldr r0, _08044C2C @ =0x0000055F adds r1, r1, r0 adds r1, r1, r6 ldrh r0, [r5] lsls r0, r0, #3 add r0, ip ldrb r0, [r0] strb r0, [r1] _08044B10: ldrh r2, [r5] lsls r2, r2, #3 add r2, ip ldrh r3, [r2, #2] lsls r1, r3, #0x17 lsrs r1, r1, #0x17 str r1, [sp, #0xc] mov r1, r8 movs r4, #2 ldrsh r0, [r1, r4] ldr r4, [sp, #0xc] adds r1, r4, r0 ldr r4, _08044C30 @ =0x000001FF adds r0, r4, #0 ands r1, r0 ldr r0, _08044C34 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] _08044B36: ldrh r1, [r5] lsls r1, r1, #3 add r1, ip mov r2, r8 ldrb r0, [r2, #4] ldrb r3, [r1] adds r0, r0, r3 strb r0, [r1] ldrh r2, [r5] lsls r2, r2, #3 add r2, ip ldrh r3, [r2, #4] lsls r1, r3, #0x16 lsrs r1, r1, #0x16 lsls r0, r6, #3 adds r0, r0, r6 adds r1, r1, r0 ldr r4, _08044C38 @ =0x000003FF adds r0, r4, #0 ands r1, r0 ldr r0, _08044C3C @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] lsls r0, r7, #0x10 movs r5, #0x80 lsls r5, r5, #9 adds r0, r0, r5 lsrs r7, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 bgt _08044B78 b _080449EA _08044B78: ldr r6, _08044C28 @ =0x020314E0 ldr r2, [r6] mov r7, sb asrs r3, r7, #0x10 lsls r0, r3, #2 adds r6, r2, r0 lsls r4, r3, #3 movs r1, #0xb0 lsls r1, r1, #3 adds r0, r2, r1 adds r0, r0, r4 ldr r0, [r0] cmp r0, #0 bge _08044B96 adds r0, #0xff _08044B96: asrs r1, r0, #8 ldr r5, _08044C24 @ =0x0000055D adds r0, r2, r5 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 subs r0, #0x10 adds r1, r1, r0 lsls r1, r1, #1 movs r7, #0xae lsls r7, r7, #3 adds r0, r6, r7 strh r1, [r0] ldr r1, _08044C40 @ =0x00000584 adds r0, r2, r1 adds r7, r0, r4 ldr r1, [r7] cmp r1, #0 bge _08044BC0 adds r1, #0xff _08044BC0: asrs r1, r1, #8 ldr r4, _08044C2C @ =0x0000055F adds r0, r2, r4 adds r5, r0, r3 movs r0, #0 ldrsb r0, [r5, r0] subs r0, #0x12 adds r1, r1, r0 lsls r1, r1, #1 adds r4, #0x13 adds r0, r6, r4 strh r1, [r0] lsls r1, r3, #1 ldr r6, _08044C44 @ =0x00000566 adds r0, r2, r6 adds r4, r0, r1 ldr r0, [r7] cmp r0, #0 bge _08044BE8 adds r0, #0xff _08044BE8: asrs r1, r0, #8 movs r0, #0 ldrsb r0, [r5, r0] adds r0, r0, r1 strh r0, [r4] movs r0, #0xb8 muls r0, r3, r0 ldr r7, _08044C48 @ =0x0200BF38 adds r0, r0, r7 mov r8, r0 ldr r1, [sp, #4] lsls r0, r1, #0x10 asrs r0, r0, #0x10 cmp r0, #0xc beq _08044C0A cmp r0, #0x2a bne _08044C50 _08044C0A: ldr r4, _08044C4C @ =0x0000055B adds r0, r2, r4 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 movs r5, #9 str r5, [sp, #4] cmp r0, #0xb bne _08044C54 movs r6, #8 str r6, [sp, #4] b _08044C54 .align 2, 0 _08044C24: .4byte 0x0000055D _08044C28: .4byte 0x020314E0 _08044C2C: .4byte 0x0000055F _08044C30: .4byte 0x000001FF _08044C34: .4byte 0xFFFFFE00 _08044C38: .4byte 0x000003FF _08044C3C: .4byte 0xFFFFFC00 _08044C40: .4byte 0x00000584 _08044C44: .4byte 0x00000566 _08044C48: .4byte 0x0200BF38 _08044C4C: .4byte 0x0000055B _08044C50: movs r7, #0 str r7, [sp, #4] _08044C54: ldr r0, _08044D34 @ =0x020314E0 ldr r2, [r0] mov r1, sb asrs r4, r1, #0x10 lsls r3, r4, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r2, r5 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _08044C6E adds r0, #0xff _08044C6E: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x58 ldrh r0, [r0] adds r0, #0xc subs r1, r1, r0 mov r6, r8 strh r1, [r6, #2] ldr r7, _08044D38 @ =0x00000584 adds r0, r2, r7 adds r0, r0, r3 ldr r0, [r0] cmp r0, #0 bge _08044C8C adds r0, #0xff _08044C8C: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x5a ldrh r0, [r0] adds r0, #0xe subs r1, r1, r0 mov r0, r8 strh r1, [r0, #4] ldr r2, [sp, #4] lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 ldr r5, _08044D3C @ =0x084B046C adds r0, r0, r5 ldr r6, _08044D40 @ =0x040000D4 str r0, [r6] adds r0, r3, r4 lsls r0, r0, #5 ldr r7, _08044D44 @ =0x06011EE0 adds r0, r0, r7 str r0, [r6, #4] ldr r0, _08044D48 @ =0x80000090 str r0, [r6, #8] ldr r0, [r6, #8] movs r7, #0 ldr r6, _08044D4C @ =0x03005000 ldr r0, _08044D50 @ =0xFFFFFE00 mov sl, r0 _08044CC8: lsls r3, r7, #0x10 asrs r3, r3, #0x10 lsls r0, r3, #3 adds r0, #8 mov r1, r8 adds r5, r1, r0 ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r6 movs r4, #2 ldrsh r1, [r5, r4] mov r7, r8 movs r4, #2 ldrsh r0, [r7, r4] adds r1, r1, r0 ldr r7, _08044D54 @ =0x000001FF adds r0, r7, #0 ands r1, r0 ldrh r4, [r2, #2] mov r0, sl ands r0, r4 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 mov r2, r8 ldrb r0, [r2, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r3, #1 lsls r3, r3, #0x10 lsrs r7, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #3 ble _08044CC8 _08044D12: movs r0, #0x80 lsls r0, r0, #9 add r0, sb lsrs r3, r0, #0x10 str r3, [sp] asrs r0, r0, #0x10 cmp r0, #1 bgt _08044D24 b _08044900 _08044D24: add sp, #0x10 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08044D34: .4byte 0x020314E0 _08044D38: .4byte 0x00000584 _08044D3C: .4byte 0x084B046C _08044D40: .4byte 0x040000D4 _08044D44: .4byte 0x06011EE0 _08044D48: .4byte 0x80000090 _08044D4C: .4byte 0x03005000 _08044D50: .4byte 0xFFFFFE00 _08044D54: .4byte 0x000001FF thumb_func_start sub_44D58 sub_44D58: @ 0x08044D58 push {r4, r5, r6, r7, lr} movs r0, #0 mov ip, r0 ldr r6, _08044EE4 @ =0x0200C0A8 ldrh r0, [r6] ldr r7, _08044EE8 @ =0x020314E0 cmp r0, #0 beq _08044DE8 ldr r0, [r7] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x68 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x56 subs r0, r0, r1 strh r0, [r6, #4] ldr r0, [r7] ldr r2, _08044EEC @ =0x00000542 adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0x15 bhi _08044D9C ldr r0, _08044EF0 @ =0x08137D60 ldrh r1, [r1] adds r1, r1, r0 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov ip, r0 _08044D9C: ldr r2, _08044EF4 @ =0x040000D4 mov r3, ip lsls r0, r3, #0x10 asrs r0, r0, #7 ldr r1, _08044EF8 @ =0x084AF9EC adds r0, r0, r1 str r0, [r2] ldr r0, _08044EFC @ =0x06010920 str r0, [r2, #4] ldr r0, _08044F00 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] adds r5, r6, #0 adds r5, #8 ldr r4, _08044F04 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r5, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08044F08 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08044F0C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] _08044DE8: ldr r6, _08044F10 @ =0x0200BBA0 ldrh r0, [r6] cmp r0, #0 beq _08044E72 ldr r0, [r7] adds r0, #0x58 ldrh r1, [r0] movs r0, #0x68 subs r0, r0, r1 strh r0, [r6, #2] ldr r0, [r7] adds r0, #0x5a ldrh r1, [r0] movs r0, #0x5e subs r0, r0, r1 strh r0, [r6, #4] ldr r2, _08044EF4 @ =0x040000D4 mov r0, ip lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08044F14 @ =0x084AFFEC adds r0, r0, r1 str r0, [r2] ldr r0, _08044F18 @ =0x06010B20 str r0, [r2, #4] ldr r0, _08044F1C @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _08044F04 @ =0x03005000 ldr r1, _08044F0C @ =0xFFFFFE00 mov ip, r1 _08044E2E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08044F08 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08044E2E _08044E72: ldr r4, _08044EE8 @ =0x020314E0 ldr r0, [r4] movs r1, #0x13 ldrsb r1, [r0, r1] cmp r1, #1 bne _08044E88 ldr r0, _08044F20 @ =0x0200B0C0 movs r3, #0xae lsls r3, r3, #4 adds r0, r0, r3 strh r1, [r0] _08044E88: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #1 bgt _08044EC8 ldr r0, _08044F20 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _08044EC8 ldr r5, _08044EEC @ =0x00000542 adds r0, r1, r5 ldrh r0, [r0] cmp r0, #0 beq _08044EC8 cmp r0, #0x15 bne _08044EB0 ldr r0, _08044F24 @ =0x02032F20 ldr r1, _08044F28 @ =0x086A2D94 bl MPlayStart _08044EB0: ldr r1, [r4] adds r1, r1, r5 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08044EC8 ldr r0, _08044F24 @ =0x02032F20 ldr r1, _08044F2C @ =0x086A2E70 bl MPlayStart _08044EC8: ldr r0, _08044EE8 @ =0x020314E0 ldr r0, [r0] adds r0, #0x7e ldrh r0, [r0] cmp r0, #0 beq _08044F34 ldr r0, _08044F20 @ =0x0200B0C0 ldrb r0, [r0, #5] cmp r0, #0 bne _08044F30 bl sub_44F3C b _08044F34 .align 2, 0 _08044EE4: .4byte 0x0200C0A8 _08044EE8: .4byte 0x020314E0 _08044EEC: .4byte 0x00000542 _08044EF0: .4byte 0x08137D60 _08044EF4: .4byte 0x040000D4 _08044EF8: .4byte 0x084AF9EC _08044EFC: .4byte 0x06010920 _08044F00: .4byte 0x80000100 _08044F04: .4byte 0x03005000 _08044F08: .4byte 0x000001FF _08044F0C: .4byte 0xFFFFFE00 _08044F10: .4byte 0x0200BBA0 _08044F14: .4byte 0x084AFFEC _08044F18: .4byte 0x06010B20 _08044F1C: .4byte 0x800000C0 _08044F20: .4byte 0x0200B0C0 _08044F24: .4byte 0x02032F20 _08044F28: .4byte 0x086A2D94 _08044F2C: .4byte 0x086A2E70 _08044F30: bl sub_45164 _08044F34: pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_44F3C sub_44F3C: @ 0x08044F3C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r6, _08045010 @ =0x0200C160 ldrh r0, [r6] ldr r1, _08045014 @ =0x020314E0 mov sb, r1 ldr r2, _08045018 @ =0x086AFC16 mov r8, r2 cmp r0, #0 beq _08044FE6 ldr r1, [r1] ldr r3, _0804501C @ =0x00000591 adds r0, r1, r3 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 add r2, r8 ldrh r0, [r2, #4] adds r0, #0x86 adds r1, #0x58 ldrh r1, [r1] subs r0, r0, r1 strh r0, [r6, #2] ldrh r1, [r2, #6] adds r1, #0x9a mov r3, sb ldr r0, [r3] adds r0, #0x5a ldrh r0, [r0] subs r1, r1, r0 strh r1, [r6, #4] ldr r3, _08045020 @ =0x040000D4 movs r0, #0 ldrsh r1, [r2, r0] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _08045024 @ =0x084B7FEC adds r0, r0, r1 str r0, [r3] ldr r0, _08045028 @ =0x06012120 str r0, [r3, #4] ldr r0, _0804502C @ =0x80000230 str r0, [r3, #8] ldr r0, [r3, #8] movs r0, #0 ldr r7, _08045030 @ =0x03005000 ldr r1, _08045034 @ =0xFFFFFE00 mov ip, r1 _08044FA2: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08045038 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _08044FA2 _08044FE6: mov r5, sb ldr r2, [r5] ldr r6, _0804501C @ =0x00000591 adds r4, r2, r6 movs r0, #0 ldrsb r0, [r4, r0] lsls r0, r0, #3 mov r1, r8 adds r1, #2 adds r0, r0, r1 movs r3, #0 ldrsh r0, [r0, r3] ldr r1, _0804503C @ =0x00000592 adds r2, r2, r1 ldrh r3, [r2] cmp r0, r3 ble _08045040 adds r0, r3, #1 strh r0, [r2] b _08045148 .align 2, 0 _08045010: .4byte 0x0200C160 _08045014: .4byte 0x020314E0 _08045018: .4byte 0x086AFC16 _0804501C: .4byte 0x00000591 _08045020: .4byte 0x040000D4 _08045024: .4byte 0x084B7FEC _08045028: .4byte 0x06012120 _0804502C: .4byte 0x80000230 _08045030: .4byte 0x03005000 _08045034: .4byte 0xFFFFFE00 _08045038: .4byte 0x000001FF _0804503C: .4byte 0x00000592 _08045040: movs r3, #0 mov r8, r3 movs r7, #0 strh r7, [r2] ldrb r0, [r4] adds r0, #1 strb r0, [r4] ldr r0, [r5] ldr r1, _08045154 @ =0x00000591 adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #1 bne _08045066 ldr r0, _08045158 @ =0x0200B0C0 movs r2, #0x85 lsls r2, r2, #5 adds r0, r0, r2 strh r1, [r0] _08045066: ldr r0, [r5] adds r1, r0, r6 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0x13 bne _08045086 movs r0, #0x12 strb r0, [r1] ldr r0, _08045158 @ =0x0200B0C0 movs r3, #0x85 lsls r3, r3, #5 adds r0, r0, r3 strh r7, [r0] ldr r0, [r5] adds r0, #0x7e strh r7, [r0] _08045086: ldr r2, [r5] adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #9 bne _080450C8 ldr r0, _0804515C @ =0x0000132C adds r2, r2, r0 ldr r1, [r2] ldrh r0, [r1, #0xa] subs r0, #0x40 strh r0, [r1, #0xa] ldr r1, [r2] movs r0, #0x8d lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r2] movs r0, #0xc8 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r1, [r2] ldr r0, _08045160 @ =0x0000FFA0 strh r0, [r1, #0x30] ldr r1, [r2] movs r0, #0x54 strh r0, [r1, #0x32] ldr r1, [r2] movs r0, #3 strb r0, [r1, #1] movs r0, #7 bl sub_11B0 _080450C8: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _080450DC movs r0, #0xd3 bl m4aSongNumStart _080450DC: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xf bne _080450F0 movs r0, #0xd4 bl m4aSongNumStart _080450F0: ldr r0, [r5] adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #8 bne _08045134 movs r0, #0xd6 bl m4aSongNumStart ldr r0, [r5] ldr r2, _0804515C @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] mov r1, r8 strb r1, [r0] ldr r1, [r5] adds r1, r1, r2 ldr r2, [r1] ldrh r0, [r2, #0xa] subs r0, #0x40 strh r0, [r2, #0xa] ldr r2, [r1] movs r0, #0x8f lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r0, #0xc3 lsls r0, r0, #8 str r0, [r2, #0x38] ldr r0, [r1] strh r7, [r0, #0x30] ldr r0, [r1] strh r7, [r0, #0x32] _08045134: mov r2, sb ldr r1, [r2] adds r0, r1, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0xa bne _08045148 mov r3, r8 strb r3, [r1, #0x1f] _08045148: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08045154: .4byte 0x00000591 _08045158: .4byte 0x0200B0C0 _0804515C: .4byte 0x0000132C _08045160: .4byte 0x0000FFA0 thumb_func_start sub_45164 sub_45164: @ 0x08045164 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r6, _080452A0 @ =0x0200C218 ldrh r0, [r6] cmp r0, #0 beq _08045234 ldr r0, _080452A4 @ =0x020314E0 ldr r4, [r0] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r4, #0x58 ldrh r1, [r4] subs r1, #0x92 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, _080452A4 @ =0x020314E0 ldr r4, [r3] ldr r1, _080452A8 @ =0x00000322 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r5, r0, #0 adds r0, r4, #0 adds r0, #0x5a ldrh r0, [r0] subs r0, #0x6e subs r5, r5, r0 ldr r3, _080452AC @ =0x0000030E adds r4, r4, r3 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #0xa bl __divsi3 adds r5, r5, r0 strh r5, [r6, #4] ldr r2, _080452A4 @ =0x020314E0 ldr r0, [r2] ldr r3, _080452B0 @ =0x00000591 adds r0, r0, r3 ldr r2, _080452B4 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _080452B8 @ =0x084BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _080452BC @ =0x060125A0 str r0, [r2, #4] ldr r0, _080452C0 @ =0x80000240 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0 ldr r7, _080452C4 @ =0x03005000 ldr r1, _080452C8 @ =0xFFFFFE00 mov r8, r1 _080451F0: lsls r5, r0, #0x10 asrs r5, r5, #0x10 lsls r3, r5, #3 adds r3, #8 adds r3, r6, r3 ldrh r4, [r3] lsls r4, r4, #3 adds r4, r4, r7 movs r2, #2 ldrsh r1, [r3, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080452CC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r4, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r4, #2] ldrh r1, [r3] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r3, #4] adds r0, r0, r3 strb r0, [r1] adds r5, #1 lsls r5, r5, #0x10 lsrs r0, r5, #0x10 asrs r5, r5, #0x10 cmp r5, #3 ble _080451F0 _08045234: ldr r3, _080452A4 @ =0x020314E0 ldr r4, [r3] ldr r1, _080452D0 @ =0x00000592 adds r0, r4, r1 ldrh r0, [r0] cmp r0, #0xfa bhi _080452F0 cmp r0, #0xfa beq _08045248 b _08045594 _08045248: movs r2, #0xc8 lsls r2, r2, #2 adds r1, r4, r2 movs r2, #0 movs r0, #0xe6 lsls r0, r0, #2 strh r0, [r1] ldr r3, _080452A8 @ =0x00000322 adds r1, r4, r3 ldr r0, _080452D4 @ =0x0000FF9C strh r0, [r1] movs r0, #0xc7 lsls r0, r0, #2 adds r1, r4, r0 ldr r0, _080452D8 @ =0x0000FFAE strh r0, [r1] ldr r1, _080452DC @ =0x0000031E adds r0, r4, r1 strh r2, [r0] subs r3, #0x16 adds r0, r4, r3 strh r2, [r0] ldr r0, _080452E0 @ =0x00000306 adds r1, r4, r0 movs r0, #8 strb r0, [r1] ldr r1, _080452A4 @ =0x020314E0 ldr r0, [r1] ldr r2, _080452B0 @ =0x00000591 adds r0, r0, r2 movs r1, #0xd strb r1, [r0] ldr r0, _080452E4 @ =0x0200B0C0 ldr r3, _080452E8 @ =0x00001158 adds r0, r0, r3 movs r2, #1 movs r1, #1 strh r1, [r0] ldr r1, _080452A4 @ =0x020314E0 ldr r0, [r1] ldr r3, _080452EC @ =0x000005FA adds r0, r0, r3 strb r2, [r0] b _08045594 .align 2, 0 _080452A0: .4byte 0x0200C218 _080452A4: .4byte 0x020314E0 _080452A8: .4byte 0x00000322 _080452AC: .4byte 0x0000030E _080452B0: .4byte 0x00000591 _080452B4: .4byte 0x040000D4 _080452B8: .4byte 0x084BB16C _080452BC: .4byte 0x060125A0 _080452C0: .4byte 0x80000240 _080452C4: .4byte 0x03005000 _080452C8: .4byte 0xFFFFFE00 _080452CC: .4byte 0x000001FF _080452D0: .4byte 0x00000592 _080452D4: .4byte 0x0000FF9C _080452D8: .4byte 0x0000FFAE _080452DC: .4byte 0x0000031E _080452E0: .4byte 0x00000306 _080452E4: .4byte 0x0200B0C0 _080452E8: .4byte 0x00001158 _080452EC: .4byte 0x000005FA _080452F0: movs r5, #0xc3 lsls r5, r5, #2 adds r0, r4, r5 ldrh r0, [r0] movs r1, #0x18 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 adds r0, #0xd ldr r2, _0804537C @ =0x00000591 adds r1, r4, r2 strb r0, [r1] ldr r3, _08045380 @ =0x020314E0 ldr r0, [r3] adds r0, r0, r5 ldrh r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x10 bl sub_C24 adds r1, r0, #0 ldr r0, _08045380 @ =0x020314E0 ldr r4, [r0] lsls r1, r1, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _08045384 @ =0x00004E20 bl __divsi3 ldr r2, _08045388 @ =0x0000030E adds r1, r4, r2 strh r0, [r1] adds r4, r4, r5 ldrh r0, [r4] cmp r0, #0 bne _0804534A movs r0, #0xe4 bl m4aSongNumStart _0804534A: ldr r3, _08045380 @ =0x020314E0 ldr r4, [r3] adds r0, r4, r5 ldrh r0, [r0] cmp r0, #0x27 bhi _08045390 movs r0, #0xc8 lsls r0, r0, #2 adds r1, r4, r0 movs r2, #0xc7 lsls r2, r2, #2 adds r0, r4, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] ldr r0, _0804538C @ =0x00000322 adds r1, r4, r0 adds r2, #2 adds r0, r4, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r0, r3 strh r0, [r1] b _0804539A .align 2, 0 _0804537C: .4byte 0x00000591 _08045380: .4byte 0x020314E0 _08045384: .4byte 0x00004E20 _08045388: .4byte 0x0000030E _0804538C: .4byte 0x00000322 _08045390: ldr r0, _0804547C @ =0x0200B0C0 ldr r1, _08045480 @ =0x00001158 adds r0, r0, r1 movs r1, #0 strh r1, [r0] _0804539A: ldr r0, _08045484 @ =0x020314E0 ldr r2, [r0] movs r6, #0xc3 lsls r6, r6, #2 adds r1, r2, r6 ldrh r1, [r1] cmp r1, #0xd bne _08045416 ldr r5, _08045488 @ =0x0000132C adds r0, r2, r5 ldr r1, [r0] movs r0, #0 strb r0, [r1] ldr r2, _08045484 @ =0x020314E0 ldr r4, [r2] movs r3, #0xc5 lsls r3, r3, #2 adds r1, r4, r3 ldr r0, _0804548C @ =0x0000FFF6 strh r0, [r1] ldr r0, _08045490 @ =0x00000316 adds r1, r4, r0 ldr r0, _08045494 @ =0x0000FFE7 strh r0, [r1] movs r1, #0xc8 lsls r1, r1, #2 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x9d lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r3, #0xc6 lsls r3, r3, #2 adds r0, r4, r3 strh r1, [r0] ldr r1, _08045498 @ =0x00000322 adds r0, r4, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r0, #0x86 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 ldr r3, _0804549C @ =0x0000031A adds r0, r4, r3 strh r1, [r0] adds r4, r4, r5 ldr r1, [r4] movs r0, #1 strb r0, [r1, #1] _08045416: ldr r0, _08045484 @ =0x020314E0 ldr r7, [r0] ldrb r0, [r7, #0x1f] cmp r0, #0 bne _08045422 b _08045584 _08045422: adds r0, r7, r6 ldrh r0, [r0] cmp r0, #0xc bhi _080454A0 ldr r1, _08045488 @ =0x0000132C adds r4, r7, r1 ldr r5, [r4] movs r2, #0xc8 lsls r2, r2, #2 adds r0, r7, r2 movs r3, #0 ldrsh r0, [r0, r3] movs r1, #0xa bl __divsi3 adds r0, #0x9d strh r0, [r5, #0x10] ldr r5, [r4] ldr r1, _08045498 @ =0x00000322 adds r0, r7, r1 movs r2, #0 ldrsh r0, [r0, r2] movs r1, #0xa bl __divsi3 adds r0, #0x86 strh r0, [r5, #0x12] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r4] movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r4] movs r3, #0x10 ldrsh r0, [r1, r3] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r4] b _0804557C .align 2, 0 _0804547C: .4byte 0x0200B0C0 _08045480: .4byte 0x00001158 _08045484: .4byte 0x020314E0 _08045488: .4byte 0x0000132C _0804548C: .4byte 0x0000FFF6 _08045490: .4byte 0x00000316 _08045494: .4byte 0x0000FFE7 _08045498: .4byte 0x00000322 _0804549C: .4byte 0x0000031A _080454A0: ldr r3, _080455B0 @ =0x00000316 adds r1, r7, r3 ldrh r0, [r1] adds r0, #2 movs r2, #0 mov r8, r2 movs r3, #0 mov sl, r3 strh r0, [r1] movs r0, #0xc6 lsls r0, r0, #2 adds r2, r7, r0 movs r3, #0xc5 lsls r3, r3, #2 adds r0, r7, r3 ldrh r0, [r0] ldrh r3, [r2] adds r0, r0, r3 strh r0, [r2] ldr r0, _080455B4 @ =0x0000031A adds r4, r7, r0 ldrh r0, [r1] ldrh r1, [r4] adds r0, r0, r1 strh r0, [r4] ldr r3, _080455B8 @ =0x0000132C mov sb, r3 adds r5, r7, r3 ldr r6, [r5] movs r1, #0 ldrsh r0, [r2, r1] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x10] ldr r6, [r5] movs r2, #0 ldrsh r0, [r4, r2] movs r1, #0xa bl __divsi3 strh r0, [r6, #0x12] ldr r5, [r5] movs r3, #0x12 ldrsh r0, [r5, r3] cmp r0, #0xb4 ble _08045556 movs r0, #0xb5 strh r0, [r5, #0x12] ldr r1, _080455BC @ =0x000005F7 adds r0, r7, r1 mov r2, r8 strb r2, [r0] ldr r3, _080455C0 @ =0x020314E0 ldr r0, [r3] strb r2, [r0, #0x1f] ldr r1, [r3] ldr r0, _080455B8 @ =0x0000132C adds r3, r1, r0 ldr r2, [r3] ldr r0, _080455C4 @ =0x0000FFF6 strh r0, [r2, #0x30] ldr r0, [r3] mov r2, sl strh r2, [r0, #0x32] ldr r3, _080455C8 @ =0x000005FA adds r1, r1, r3 mov r0, r8 strb r0, [r1] ldr r1, _080455C0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080455B8 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] movs r0, #3 strb r0, [r1, #1] ldr r3, _080455C0 @ =0x020314E0 ldr r0, [r3] adds r0, #0x24 mov r1, r8 strb r1, [r0] ldr r0, [r3] adds r0, #0x7e mov r2, sl strh r2, [r0] movs r0, #0xe5 bl m4aSongNumStart movs r0, #7 bl sub_11B0 _08045556: ldr r3, _080455C0 @ =0x020314E0 ldr r1, [r3] add r1, sb ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r3, #0x12 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] _0804557C: movs r2, #0x12 ldrsh r0, [r1, r2] lsls r0, r0, #8 str r0, [r1, #0x38] _08045584: ldr r3, _080455C0 @ =0x020314E0 ldr r1, [r3] movs r0, #0xc3 lsls r0, r0, #2 adds r1, r1, r0 ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08045594: ldr r2, _080455C0 @ =0x020314E0 ldr r1, [r2] ldr r3, _080455CC @ =0x00000592 adds r1, r1, r3 ldrh r0, [r1] adds r0, #1 strh r0, [r1] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080455B0: .4byte 0x00000316 _080455B4: .4byte 0x0000031A _080455B8: .4byte 0x0000132C _080455BC: .4byte 0x000005F7 _080455C0: .4byte 0x020314E0 _080455C4: .4byte 0x0000FFF6 _080455C8: .4byte 0x000005FA _080455CC: .4byte 0x00000592 thumb_func_start sub_455D0 sub_455D0: @ 0x080455D0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 movs r2, #0 _080455DE: ldr r3, _08045608 @ =0x020314E0 ldr r0, [r3] lsls r2, r2, #0x10 asrs r1, r2, #0x10 ldr r4, _0804560C @ =0x00000536 adds r0, r0, r4 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov r8, r3 str r2, [sp] cmp r0, #5 bls _080455FE bl _08045DE0 _080455FE: lsls r0, r0, #2 ldr r1, _08045610 @ =_08045614 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08045608: .4byte 0x020314E0 _0804560C: .4byte 0x00000536 _08045610: .4byte _08045614 _08045614: @ jump table .4byte _0804562C @ case 0 .4byte _08045642 @ case 1 .4byte _080456E0 @ case 2 .4byte _08045778 @ case 3 .4byte _08045B00 @ case 4 .4byte _08045C4C @ case 5 _0804562C: mov r5, r8 ldr r0, [r5] ldr r2, [sp] asrs r1, r2, #0x10 movs r3, #0xa6 lsls r3, r3, #3 adds r0, r0, r3 adds r0, r0, r1 movs r1, #0 strb r1, [r0] b _08045DE0 _08045642: mov r4, r8 ldr r1, [r4] ldr r5, [sp] asrs r6, r5, #0x10 movs r2, #0xa6 lsls r2, r2, #3 adds r0, r1, r2 adds r0, r0, r6 movs r3, #0 ldrsb r3, [r0, r3] movs r4, #0xe8 lsls r4, r4, #2 mov sl, r4 add r1, sl adds r1, r1, r3 movs r2, #0 movs r0, #2 strb r0, [r1] mov r5, r8 ldr r1, [r5] lsls r7, r3, #1 movs r0, #0xec lsls r0, r0, #2 mov sb, r0 adds r0, r1, r0 adds r0, r0, r7 movs r4, #0 mov ip, r4 strh r2, [r0] ldr r2, _080456D4 @ =0x000003A3 adds r1, r1, r2 adds r1, r1, r3 movs r0, #7 strb r0, [r1] ldr r5, [r5] lsls r1, r6, #1 ldr r4, _080456D8 @ =0x0000053C adds r0, r5, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, #0 bne _08045698 b _08045DE0 _08045698: subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 lsrs r4, r0, #0x10 cmp r4, #0 beq _080456A6 b _08045DE0 _080456A6: ldr r1, _080456DC @ =0x00000536 adds r0, r5, r1 adds r0, r0, r6 mov r5, ip strb r5, [r0] mov r1, r8 ldr r0, [r1] add r0, sl adds r0, r0, r3 movs r1, #1 strb r1, [r0] mov r5, r8 ldr r1, [r5] mov r5, sb adds r0, r1, r5 adds r0, r0, r7 strh r4, [r0] adds r1, r1, r2 adds r1, r1, r3 movs r0, #4 strb r0, [r1] b _08045DE0 .align 2, 0 _080456D4: .4byte 0x000003A3 _080456D8: .4byte 0x0000053C _080456DC: .4byte 0x00000536 _080456E0: mov r0, r8 ldr r1, [r0] ldr r2, [sp] asrs r6, r2, #0x10 movs r3, #0xa6 lsls r3, r3, #3 adds r0, r1, r3 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r6, #2 bne _0804571E movs r0, #1 strb r0, [r1, #0x1f] mov r4, r8 ldr r0, [r4] ldr r1, _08045768 @ =0x0000132C adds r0, r0, r1 ldr r3, [r0] ldrh r2, [r3, #0x30] adds r2, #5 lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 subs r2, r2, r0 strh r2, [r3, #0x30] _0804571E: mov r2, r8 ldr r1, [r2] ldr r3, _0804576C @ =0x00000536 adds r1, r1, r3 adds r1, r1, r6 movs r4, #0 movs r0, #3 strb r0, [r1] ldr r0, [r2] ldr r1, _08045770 @ =0x00000533 adds r0, r0, r1 adds r0, r0, r6 strb r4, [r0] ldr r1, [r2] lsls r3, r5, #0x10 asrs r3, r3, #0x10 movs r2, #0xe8 lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r3 movs r0, #2 strb r0, [r1] mov r5, r8 ldr r1, [r5] lsls r2, r3, #1 movs r5, #0xec lsls r5, r5, #2 adds r0, r1, r5 adds r0, r0, r2 strh r4, [r0] ldr r0, _08045774 @ =0x000003A3 adds r1, r1, r0 adds r1, r1, r3 movs r0, #7 strb r0, [r1] b _08045DE0 .align 2, 0 _08045768: .4byte 0x0000132C _0804576C: .4byte 0x00000536 _08045770: .4byte 0x00000533 _08045774: .4byte 0x000003A3 _08045778: mov r1, r8 ldr r2, [r1] ldr r4, [sp] asrs r3, r4, #0x10 movs r5, #0xa6 lsls r5, r5, #3 adds r0, r2, r5 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r3, #1 ble _08045798 b _0804599C _08045798: lsls r0, r5, #0x10 asrs r4, r0, #0x10 mov sb, r0 cmp r4, #0 bne _080457C8 lsls r1, r3, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r2, r5 adds r0, r0, r1 ldr r1, [r0] ldr r0, _080457C4 @ =0x000055FF cmp r1, r0 ble _080457EA lsls r0, r3, #2 adds r0, r2, r0 movs r1, #0xaf lsls r1, r1, #3 adds r0, r0, r1 strh r4, [r0] b _080457EA .align 2, 0 _080457C4: .4byte 0x000055FF _080457C8: lsls r1, r3, #3 movs r4, #0xb0 lsls r4, r4, #3 adds r0, r2, r4 adds r0, r0, r1 ldr r1, [r0] movs r0, #0x9c lsls r0, r0, #8 cmp r1, r0 bgt _080457EA lsls r0, r3, #2 adds r0, r2, r0 movs r5, #0xaf lsls r5, r5, #3 adds r0, r0, r5 movs r1, #0 strh r1, [r0] _080457EA: mov r0, r8 ldr r2, [r0] ldr r1, [sp] asrs r5, r1, #0x10 lsls r7, r5, #2 adds r1, r2, r7 ldr r3, _08045870 @ =0x0000057A mov sl, r3 add r1, sl ldrh r0, [r1] adds r0, #0xc strh r0, [r1] mov r4, sb asrs r6, r4, #0x10 movs r1, #0xa9 lsls r1, r1, #3 adds r0, r2, r1 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08045880 lsls r1, r5, #3 adds r3, #0xa adds r0, r2, r3 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045874 @ =0x000065FF cmp r1, r0 bgt _0804582A b _08045DE0 _0804582A: ldr r4, _08045878 @ =0x00000533 adds r0, r2, r4 adds r0, r0, r5 movs r1, #0 strb r1, [r0] mov r2, r8 ldr r0, [r2] subs r3, #0x4e adds r0, r0, r3 adds r0, r0, r5 movs r1, #5 strb r1, [r0] ldr r0, [r2] movs r4, #0xe8 lsls r4, r4, #2 adds r0, r0, r4 adds r0, r0, r6 movs r1, #3 strb r1, [r0] ldr r0, [r2] ldr r5, _0804587C @ =0x000003A3 adds r0, r0, r5 adds r0, r0, r6 movs r1, #0xf strb r1, [r0] ldr r0, [r2] lsls r1, r6, #1 movs r2, #0xec lsls r2, r2, #2 adds r0, r0, r2 adds r0, r0, r1 movs r3, #0 strh r3, [r0] b _08045DE0 .align 2, 0 _08045870: .4byte 0x0000057A _08045874: .4byte 0x000065FF _08045878: .4byte 0x00000533 _0804587C: .4byte 0x000003A3 _08045880: lsls r3, r5, #3 ldr r4, _08045904 @ =0x00000584 mov sb, r4 adds r0, r2, r4 adds r0, r0, r3 ldr r1, [r0] ldr r0, _08045908 @ =0x000065FF cmp r1, r0 bgt _08045894 b _08045DE0 _08045894: subs r4, #0x51 adds r1, r2, r4 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _0804590C @ =0x02032F20 ldr r1, _08045910 @ =0x086A2EE4 str r3, [sp, #4] bl MPlayStart mov r0, r8 ldr r2, [r0] adds r4, r2, r4 adds r4, r4, r5 movs r0, #0 ldrsb r0, [r4, r0] ldr r3, [sp, #4] cmp r0, #2 bgt _08045920 mov r1, sb adds r0, r2, r1 adds r0, r0, r3 movs r1, #0xcc lsls r1, r1, #7 str r1, [r0] adds r0, r2, r7 add r0, sl ldr r1, _08045914 @ =0x0000FED4 strh r1, [r0] ldr r3, _08045918 @ =0x00000553 adds r0, r2, r3 adds r0, r0, r5 movs r1, #0xd strb r1, [r0] mov r4, r8 ldr r0, [r4] movs r5, #0xe8 lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r6 movs r1, #2 strb r1, [r0] ldr r0, [r4] ldr r1, _0804591C @ =0x000003A3 adds r0, r0, r1 adds r0, r0, r6 movs r1, #8 strb r1, [r0] ldr r1, [r4] lsls r0, r6, #1 movs r2, #0xec lsls r2, r2, #2 adds r1, r1, r2 adds r1, r1, r0 b _08045A5C .align 2, 0 _08045904: .4byte 0x00000584 _08045908: .4byte 0x000065FF _0804590C: .4byte 0x02032F20 _08045910: .4byte 0x086A2EE4 _08045914: .4byte 0x0000FED4 _08045918: .4byte 0x00000553 _0804591C: .4byte 0x000003A3 _08045920: adds r2, r2, r7 lsls r0, r6, #4 subs r0, r0, r6 lsls r0, r0, #2 movs r1, #0x1e subs r1, r1, r0 lsls r1, r1, #2 movs r3, #0xaf lsls r3, r3, #3 adds r0, r2, r3 strh r1, [r0] add r2, sl ldr r0, _08045988 @ =0x0000FE70 strh r0, [r2] movs r0, #0 strb r0, [r4] mov r1, r8 ldr r0, [r1] ldr r2, _0804598C @ =0x00000536 adds r0, r0, r2 adds r0, r0, r5 movs r1, #4 strb r1, [r0] mov r3, r8 ldr r0, [r3] movs r4, #0xe8 lsls r4, r4, #2 adds r0, r0, r4 adds r0, r0, r6 movs r1, #3 strb r1, [r0] ldr r0, [r3] ldr r5, _08045990 @ =0x000003A3 adds r0, r0, r5 adds r0, r0, r6 movs r1, #0xb strb r1, [r0] ldr r2, [r3] lsls r1, r6, #1 movs r3, #0xec lsls r3, r3, #2 adds r0, r2, r3 adds r0, r0, r1 movs r4, #0 strh r4, [r0] ldr r5, _08045994 @ =0x00000542 adds r1, r2, r5 movs r0, #0x64 strh r0, [r1] ldr r0, _08045998 @ =0x0000052C adds r2, r2, r0 b _08045AE2 .align 2, 0 _08045988: .4byte 0x0000FE70 _0804598C: .4byte 0x00000536 _08045990: .4byte 0x000003A3 _08045994: .4byte 0x00000542 _08045998: .4byte 0x0000052C _0804599C: lsls r0, r5, #0x10 asrs r3, r0, #0x10 mov sb, r0 cmp r3, #0 bne _080459C0 ldr r1, _080459B8 @ =0x0000132C adds r0, r2, r1 ldr r2, [r0] ldr r1, [r2, #0x34] ldr r0, _080459BC @ =0x000055FF cmp r1, r0 ble _080459D4 strh r3, [r2, #0x30] b _080459D4 .align 2, 0 _080459B8: .4byte 0x0000132C _080459BC: .4byte 0x000055FF _080459C0: ldr r3, _08045A64 @ =0x0000132C adds r0, r2, r3 ldr r2, [r0] ldr r1, [r2, #0x34] movs r0, #0x9c lsls r0, r0, #8 cmp r1, r0 bgt _080459D4 movs r0, #0 strh r0, [r2, #0x30] _080459D4: mov r4, r8 ldr r3, [r4] ldr r7, _08045A64 @ =0x0000132C adds r2, r3, r7 ldr r1, [r2] ldrh r0, [r1, #0x32] adds r0, #3 movs r5, #0 mov sl, r5 strh r0, [r1, #0x32] ldr r0, [r2] ldr r1, [r0, #0x38] ldr r0, _08045A68 @ =0x000064FF cmp r1, r0 bgt _080459F4 b _08045DE0 _080459F4: ldr r0, [sp] asrs r5, r0, #0x10 ldr r4, _08045A6C @ =0x00000533 adds r1, r3, r4 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, _08045A70 @ =0x02032F20 ldr r1, _08045A74 @ =0x086A2EE4 bl MPlayStart movs r0, #7 bl sub_11B0 mov r1, r8 ldr r3, [r1] adds r4, r3, r4 adds r6, r4, r5 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #2 bgt _08045A80 adds r2, r3, r7 ldr r1, [r2] movs r0, #0xca lsls r0, r0, #7 str r0, [r1, #0x38] ldr r1, [r2] ldr r0, _08045A78 @ =0x0000FFA6 strh r0, [r1, #0x32] mov r4, sb asrs r2, r4, #0x10 movs r5, #0xe8 lsls r5, r5, #2 adds r0, r3, r5 adds r0, r0, r2 movs r1, #2 strb r1, [r0] mov r1, r8 ldr r0, [r1] ldr r3, _08045A7C @ =0x000003A3 adds r0, r0, r3 adds r0, r0, r2 movs r1, #8 strb r1, [r0] mov r4, r8 ldr r1, [r4] lsls r2, r2, #1 adds r5, #0x10 adds r1, r1, r5 adds r1, r1, r2 _08045A5C: movs r0, #0xc strh r0, [r1] b _08045DE0 .align 2, 0 _08045A64: .4byte 0x0000132C _08045A68: .4byte 0x000064FF _08045A6C: .4byte 0x00000533 _08045A70: .4byte 0x02032F20 _08045A74: .4byte 0x086A2EE4 _08045A78: .4byte 0x0000FFA6 _08045A7C: .4byte 0x000003A3 _08045A80: adds r2, r3, r7 ldr r4, [r2] mov r0, sb asrs r3, r0, #0x10 lsls r1, r3, #3 subs r1, r1, r3 lsls r1, r1, #3 movs r0, #0x1c subs r0, r0, r1 strh r0, [r4, #0x30] ldr r1, [r2] ldr r0, _08045AEC @ =0x0000FF88 strh r0, [r1, #0x32] mov r1, sl strb r1, [r6] mov r2, r8 ldr r0, [r2] ldr r4, _08045AF0 @ =0x00000536 adds r0, r0, r4 adds r0, r0, r5 movs r1, #4 strb r1, [r0] ldr r0, [r2] movs r5, #0xe8 lsls r5, r5, #2 adds r0, r0, r5 adds r0, r0, r3 movs r1, #3 strb r1, [r0] ldr r0, [r2] ldr r1, _08045AF4 @ =0x000003A3 adds r0, r0, r1 adds r0, r0, r3 movs r1, #0xb strb r1, [r0] ldr r2, [r2] lsls r3, r3, #1 movs r4, #0xec lsls r4, r4, #2 adds r0, r2, r4 adds r0, r0, r3 movs r5, #0 strh r5, [r0] ldr r0, _08045AF8 @ =0x00000542 adds r1, r2, r0 movs r0, #0x6a strh r0, [r1] ldr r1, _08045AFC @ =0x0000052D adds r2, r2, r1 _08045AE2: ldrb r0, [r2] adds r0, #1 strb r0, [r2] b _08045DE0 .align 2, 0 _08045AEC: .4byte 0x0000FF88 _08045AF0: .4byte 0x00000536 _08045AF4: .4byte 0x000003A3 _08045AF8: .4byte 0x00000542 _08045AFC: .4byte 0x0000052D _08045B00: mov r2, r8 ldr r3, [r2] ldr r4, [sp] asrs r2, r4, #0x10 movs r5, #0xa6 lsls r5, r5, #3 adds r0, r3, r5 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r2, #1 bgt _08045B90 lsls r0, r2, #2 adds r4, r3, r0 ldr r0, _08045B4C @ =0x0000057A adds r1, r4, r0 ldrh r0, [r1] adds r0, #0xc movs r6, #0 strh r0, [r1] cmp r5, #0 bne _08045B54 lsls r1, r2, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r0, r3, r2 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045B50 @ =0x000077FF cmp r1, r0 ble _08045B70 movs r3, #0xaf lsls r3, r3, #3 adds r0, r4, r3 b _08045B6E .align 2, 0 _08045B4C: .4byte 0x0000057A _08045B50: .4byte 0x000077FF _08045B54: lsls r1, r2, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r3, r5 adds r0, r0, r1 ldr r1, [r0] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045B70 movs r1, #0xaf lsls r1, r1, #3 adds r0, r4, r1 _08045B6E: strh r6, [r0] _08045B70: mov r3, r8 ldr r2, [r3] ldr r5, [sp] asrs r4, r5, #0x10 lsls r1, r4, #3 ldr r3, _08045B88 @ =0x00000584 adds r0, r2, r3 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045B8C @ =0x000083FF b _08045CD0 .align 2, 0 _08045B88: .4byte 0x00000584 _08045B8C: .4byte 0x000083FF _08045B90: ldr r1, _08045BB4 @ =0x0000132C adds r2, r3, r1 ldr r0, [r2] ldrh r1, [r0, #0x32] adds r1, #3 movs r3, #0 strh r1, [r0, #0x32] lsls r0, r5, #0x10 mov sb, r0 cmp r0, #0 bne _08045BBC ldr r2, [r2] ldr r1, [r2, #0x34] ldr r0, _08045BB8 @ =0x000077FF cmp r1, r0 ble _08045BCA b _08045BC8 .align 2, 0 _08045BB4: .4byte 0x0000132C _08045BB8: .4byte 0x000077FF _08045BBC: ldr r2, [r2] ldr r1, [r2, #0x34] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045BCA _08045BC8: strh r3, [r2, #0x30] _08045BCA: mov r2, r8 ldr r3, [r2] ldr r7, _08045C34 @ =0x0000132C adds r0, r3, r7 ldr r0, [r0] ldr r1, [r0, #0x38] ldr r0, _08045C38 @ =0x000083FF cmp r1, r0 bgt _08045BDE b _08045DE0 _08045BDE: ldr r4, [sp] asrs r5, r4, #0x10 ldr r2, _08045C3C @ =0x00000533 adds r1, r3, r2 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 movs r3, #0 mov sl, r3 strb r0, [r1] mov r0, r8 ldr r4, [r0] adds r2, r4, r2 adds r6, r2, r5 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #1 bgt _08045C40 adds r4, r4, r7 ldr r1, [r4] movs r0, #0x84 lsls r0, r0, #8 str r0, [r1, #0x38] ldr r5, [r4] movs r1, #0x32 ldrsh r0, [r5, r1] rsbs r0, r0, #0 movs r1, #3 bl __divsi3 strh r0, [r5, #0x32] ldr r0, [r4] mov r2, sl strh r2, [r0, #0x30] movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #1 beq _08045C2C b _08045DE0 _08045C2C: movs r0, #7 bl sub_11B0 b _08045DE0 .align 2, 0 _08045C34: .4byte 0x0000132C _08045C38: .4byte 0x000083FF _08045C3C: .4byte 0x00000533 _08045C40: adds r1, r4, r7 ldr r0, [r1] movs r3, #0 mov r2, sl strh r2, [r0, #0x32] b _08045DC0 _08045C4C: mov r5, r8 ldr r3, [r5] ldr r0, [sp] asrs r2, r0, #0x10 movs r1, #0xa6 lsls r1, r1, #3 adds r0, r3, r1 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 cmp r2, #1 bgt _08045D20 lsls r0, r2, #2 adds r4, r3, r0 ldr r0, _08045C98 @ =0x0000057A adds r1, r4, r0 ldrh r0, [r1] adds r0, #0xc movs r6, #0 strh r0, [r1] cmp r5, #0 bne _08045CA0 lsls r1, r2, #3 movs r2, #0xb0 lsls r2, r2, #3 adds r0, r3, r2 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045C9C @ =0x000077FF cmp r1, r0 ble _08045CBC movs r3, #0xaf lsls r3, r3, #3 adds r0, r4, r3 b _08045CBA .align 2, 0 _08045C98: .4byte 0x0000057A _08045C9C: .4byte 0x000077FF _08045CA0: lsls r1, r2, #3 movs r5, #0xb0 lsls r5, r5, #3 adds r0, r3, r5 adds r0, r0, r1 ldr r1, [r0] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045CBC movs r1, #0xaf lsls r1, r1, #3 adds r0, r4, r1 _08045CBA: strh r6, [r0] _08045CBC: mov r3, r8 ldr r2, [r3] ldr r5, [sp] asrs r4, r5, #0x10 lsls r1, r4, #3 ldr r3, _08045D08 @ =0x00000584 adds r0, r2, r3 adds r0, r0, r1 ldr r1, [r0] ldr r0, _08045D0C @ =0x00008DFF _08045CD0: cmp r1, r0 bgt _08045CD6 b _08045DE0 _08045CD6: ldr r5, _08045D10 @ =0x00000536 adds r0, r2, r5 adds r0, r0, r4 movs r3, #0 strb r3, [r0] mov r1, r8 ldr r0, [r1] ldr r2, _08045D14 @ =0x00000553 adds r0, r0, r2 adds r0, r0, r4 movs r1, #0xe strb r1, [r0] mov r5, r8 ldr r1, [r5] lsls r2, r4, #1 ldr r5, _08045D18 @ =0x00000562 adds r0, r1, r5 adds r0, r0, r2 movs r2, #0 strh r3, [r0] ldr r0, _08045D1C @ =0x0000054B adds r1, r1, r0 adds r1, r1, r4 strb r2, [r1] b _08045DE0 .align 2, 0 _08045D08: .4byte 0x00000584 _08045D0C: .4byte 0x00008DFF _08045D10: .4byte 0x00000536 _08045D14: .4byte 0x00000553 _08045D18: .4byte 0x00000562 _08045D1C: .4byte 0x0000054B _08045D20: ldr r1, _08045D44 @ =0x0000132C adds r2, r3, r1 ldr r0, [r2] ldrh r1, [r0, #0x32] adds r1, #3 movs r3, #0 strh r1, [r0, #0x32] lsls r0, r5, #0x10 mov sb, r0 cmp r0, #0 bne _08045D4C ldr r2, [r2] ldr r1, [r2, #0x34] ldr r0, _08045D48 @ =0x000077FF cmp r1, r0 ble _08045D5A b _08045D58 .align 2, 0 _08045D44: .4byte 0x0000132C _08045D48: .4byte 0x000077FF _08045D4C: ldr r2, [r2] ldr r1, [r2, #0x34] movs r0, #0xf0 lsls r0, r0, #7 cmp r1, r0 bgt _08045D5A _08045D58: strh r3, [r2, #0x30] _08045D5A: mov r4, r8 ldr r3, [r4] ldr r6, _08045DAC @ =0x0000132C adds r0, r3, r6 ldr r0, [r0] ldr r1, [r0, #0x38] ldr r0, _08045DB0 @ =0x00008DFF cmp r1, r0 ble _08045DE0 ldr r2, [sp] asrs r5, r2, #0x10 ldr r2, _08045DB4 @ =0x00000533 adds r1, r3, r2 adds r1, r1, r5 ldrb r0, [r1] adds r0, #1 movs r7, #0 strb r0, [r1] ldr r4, [r4] adds r2, r4, r2 adds r2, r2, r5 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #1 bgt _08045DB8 adds r4, r4, r6 ldr r1, [r4] movs r0, #0x8e lsls r0, r0, #8 str r0, [r1, #0x38] ldr r5, [r4] movs r3, #0x32 ldrsh r0, [r5, r3] rsbs r0, r0, #0 movs r1, #3 bl __divsi3 strh r0, [r5, #0x32] ldr r0, [r4] strh r7, [r0, #0x30] b _08045DE0 .align 2, 0 _08045DAC: .4byte 0x0000132C _08045DB0: .4byte 0x00008DFF _08045DB4: .4byte 0x00000533 _08045DB8: adds r1, r4, r6 ldr r0, [r1] movs r3, #0 strh r7, [r0, #0x32] _08045DC0: ldr r2, [r1] mov r1, sb asrs r0, r1, #0x10 lsls r1, r0, #2 adds r1, r1, r0 lsls r1, r1, #1 movs r0, #5 subs r0, r0, r1 strh r0, [r2, #0x30] strb r3, [r4, #0x1f] mov r2, r8 ldr r0, [r2] ldr r4, _08045E04 @ =0x00000536 adds r0, r0, r4 adds r0, r0, r5 strb r3, [r0] _08045DE0: ldr r5, [sp] movs r1, #0x80 lsls r1, r1, #9 adds r0, r5, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 bgt _08045DF4 bl _080455DE _08045DF4: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08045E04: .4byte 0x00000536 thumb_func_start sub_45E08 sub_45E08: @ 0x08045E08 push {r4, r5, r6, r7, lr} ldr r4, _08045E70 @ =0x086AEED6 ldr r0, _08045E74 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x60 bl __umodsi3 movs r1, #0x18 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r4 movs r2, #0x80 lsls r2, r2, #0x11 ldr r1, _08045E78 @ =0x03006C00 mov ip, r1 ldr r7, _08045E7C @ =0xFFFFF000 add r7, ip ldr r6, _08045E80 @ =0x0837A4E8 movs r1, #0 ldrsh r0, [r0, r1] lsls r3, r0, #2 ldr r5, _08045E84 @ =0x000003FF movs r4, #0x80 lsls r4, r4, #4 _08045E3A: asrs r2, r2, #0x10 adds r1, r2, r4 lsls r1, r1, #1 adds r1, r1, r7 lsls r0, r2, #1 adds r0, r0, r6 ldrh r0, [r0] adds r0, r0, r3 strh r0, [r1] adds r2, #1 lsls r2, r2, #0x10 asrs r0, r2, #0x10 cmp r0, r5 ble _08045E3A ldr r1, _08045E88 @ =0x040000D4 mov r0, ip str r0, [r1] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r1, #4] ldr r0, _08045E8C @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08045E70: .4byte 0x086AEED6 _08045E74: .4byte 0x0200B0C0 _08045E78: .4byte 0x03006C00 _08045E7C: .4byte 0xFFFFF000 _08045E80: .4byte 0x0837A4E8 _08045E84: .4byte 0x000003FF _08045E88: .4byte 0x040000D4 _08045E8C: .4byte 0x80000400 thumb_func_start sub_45E90 sub_45E90: @ 0x08045E90 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x30 ldr r0, _08045ED0 @ =0x020314E0 ldr r4, [r0] movs r1, #0x13 ldrsb r1, [r4, r1] cmp r1, #3 ble _08045EDC movs r0, #0xe5 lsls r0, r0, #2 adds r2, r4, r0 ldrh r3, [r2] movs r0, #0 ldrsh r1, [r2, r0] movs r0, #0x7e rsbs r0, r0, #0 cmp r1, r0 ble _08045F12 subs r0, r3, #6 strh r0, [r2] ldr r1, _08045ED4 @ =0x0200B0C0 rsbs r0, r0, #0 adds r0, #4 ldr r2, _08045ED8 @ =0x000002EE adds r1, r1, r2 strh r0, [r1] b _08045F12 .align 2, 0 _08045ED0: .4byte 0x020314E0 _08045ED4: .4byte 0x0200B0C0 _08045ED8: .4byte 0x000002EE _08045EDC: movs r3, #0xe5 lsls r3, r3, #2 adds r1, r4, r3 ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 bge _08045EFA adds r0, r2, #6 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 ble _08045EFA movs r0, #0 strh r0, [r1] _08045EFA: ldr r0, _08045F84 @ =0x0200B0C0 ldr r2, _08045F88 @ =0x020314E0 ldr r1, [r2] movs r3, #0xe5 lsls r3, r3, #2 adds r1, r1, r3 ldrh r1, [r1] rsbs r1, r1, #0 adds r1, #4 ldr r2, _08045F8C @ =0x000002EE adds r0, r0, r2 strh r1, [r0] _08045F12: ldr r3, _08045F88 @ =0x020314E0 ldr r0, [r3] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 bgt _08045F2E ldr r1, _08045F84 @ =0x0200B0C0 ldrh r0, [r1, #0x38] ldr r0, _08045F90 @ =0x00001C42 strh r0, [r1, #0x38] ldrh r0, [r1, #0x3a] ldr r0, _08045F94 @ =0x00000C04 strh r0, [r1, #0x3a] _08045F2E: ldr r0, _08045F88 @ =0x020314E0 ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _08045F3C ldrh r0, [r1, #0x18] _08045F3C: ldr r0, _08045F88 @ =0x020314E0 ldr r2, [r0] ldr r1, _08045F98 @ =0x0000053A adds r3, r2, r1 ldrh r0, [r3] subs r0, #0x65 lsls r0, r0, #0x10 movs r1, #0xae lsls r1, r1, #0x11 cmp r0, r1 bhi _08045FAA ldr r0, _08045F9C @ =0x0000052E adds r4, r2, r0 ldr r1, _08045FA0 @ =0x0000052C adds r0, r2, r1 ldrb r5, [r4] movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 beq _08045FA4 ldrh r0, [r3] movs r1, #3 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08045FAA adds r0, r5, #1 strb r0, [r4] movs r0, #0x91 bl m4aSongNumStart b _08045FAA .align 2, 0 _08045F84: .4byte 0x0200B0C0 _08045F88: .4byte 0x020314E0 _08045F8C: .4byte 0x000002EE _08045F90: .4byte 0x00001C42 _08045F94: .4byte 0x00000C04 _08045F98: .4byte 0x0000053A _08045F9C: .4byte 0x0000052E _08045FA0: .4byte 0x0000052C _08045FA4: movs r0, #0xf5 lsls r0, r0, #1 strh r0, [r3] _08045FAA: ldr r0, _08045FF8 @ =0x020314E0 ldr r2, [r0] ldr r0, _08045FFC @ =0x0000053A adds r3, r2, r0 ldr r1, _08046000 @ =0xFFFFFE0B adds r0, r1, #0 ldrh r1, [r3] adds r0, r0, r1 lsls r0, r0, #0x10 movs r1, #0x95 lsls r1, r1, #0x11 cmp r0, r1 bhi _08046012 ldr r0, _08046004 @ =0x0000052F adds r4, r2, r0 ldr r1, _08046008 @ =0x0000052D adds r0, r2, r1 ldrb r5, [r4] movs r1, #0 ldrsb r1, [r4, r1] ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r1, r0 beq _0804600C ldrh r0, [r3] movs r1, #3 bl __umodsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08046012 adds r0, r5, #1 strb r0, [r4] movs r0, #0x91 bl m4aSongNumStart b _08046012 .align 2, 0 _08045FF8: .4byte 0x020314E0 _08045FFC: .4byte 0x0000053A _08046000: .4byte 0xFFFFFE0B _08046004: .4byte 0x0000052F _08046008: .4byte 0x0000052D _0804600C: movs r0, #0xc8 lsls r0, r0, #2 strh r0, [r3] _08046012: ldr r2, _080463D0 @ =0x020314E0 ldr r4, [r2] ldr r3, _080463D4 @ =0x0000053A adds r0, r4, r3 ldrh r1, [r0] ldr r0, _080463D8 @ =0x0000031F cmp r1, r0 bhi _0804602C ldrh r0, [r4, #0x18] cmp r0, #0xa0 bls _0804602C movs r0, #0xa0 strh r0, [r4, #0x18] _0804602C: ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080463D4 @ =0x0000053A adds r0, r0, r2 ldrh r1, [r0] adds r1, #1 strh r1, [r0] ldr r6, _080463DC @ =0x0200B8C0 ldrh r0, [r6] cmp r0, #0 bne _08046044 b _0804679A _08046044: movs r0, #0x78 strh r0, [r6, #2] ldr r3, _080463D0 @ =0x020314E0 ldr r0, [r3] movs r1, #0xe5 lsls r1, r1, #2 adds r0, r0, r1 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 add r2, sp, #0x18 mov r8, r2 movs r3, #0xb8 adds r3, r3, r6 mov sb, r3 ldr r7, _080463E0 @ =0x03005000 ldr r0, _080463E4 @ =0xFFFFFE00 mov ip, r0 _0804606A: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080463E8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0x15 ble _0804606A ldr r3, _080463D0 @ =0x020314E0 ldr r0, [r3] ldr r1, _080463EC @ =0x0000052E adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] ldr r0, _080463F0 @ =0x004C4B40 adds r7, r1, #0 muls r7, r0, r7 mov r5, sp ldr r4, _080463F4 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463F8 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r0, sp movs r6, #0xa strh r6, [r0, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463FC @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08046400 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xa] mov r0, sp strh r6, [r0, #0xc] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0xe] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0x10] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #0x12] movs r1, #0 _0804615C: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r0, r4, #1 mov r2, sp adds r5, r2, r0 movs r3, #0 ldrsh r0, [r5, r3] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08046186 movs r0, #0x14 strh r0, [r5] adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0804615C _08046186: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #1 movs r2, #0xb4 lsls r2, r2, #2 adds r5, r2, #0 adds r0, r0, r5 mov r3, r8 strh r0, [r3] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #2] mov r0, sp movs r2, #4 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #4] mov r0, sp movs r3, #6 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 mov r1, r8 strh r0, [r1, #6] mov r0, sp movs r2, #8 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #8] mov r0, sp movs r3, #0xa ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #0xa] mov r0, sp movs r1, #0xc ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 mov r2, r8 strh r0, [r2, #0xc] mov r0, sp movs r3, #0xe ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0xe] mov r0, sp movs r1, #0x10 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0x10] mov r0, sp movs r2, #0x12 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 mov r3, r8 strh r0, [r3, #0x12] ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _080463EC @ =0x0000052E adds r0, r0, r2 movs r7, #0 ldrsb r7, [r0, r7] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __divsi3 strh r0, [r4] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #2] mov r0, sp movs r3, #0 ldrsh r0, [r0, r3] cmp r0, #0 bne _08046240 mov r1, sp movs r0, #0x14 strh r0, [r1] _08046240: mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 mov r2, r8 strh r0, [r2, #0x14] mov r0, sp movs r3, #2 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0x16] mov r6, sb movs r0, #0x78 strh r0, [r6, #2] ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] movs r2, #0xe5 lsls r2, r2, #2 adds r0, r0, r2 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 ldr r7, _080463E0 @ =0x03005000 ldr r3, _08046404 @ =0x000003FF mov sl, r3 mov ip, r8 ldr r0, _08046408 @ =0xFFFFFC00 mov sb, r0 _0804627E: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r5, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080463E8 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080463E4 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 lsls r0, r4, #1 add r0, ip ldrh r0, [r0] mov r1, sl ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _0804627E ldr r1, _080463D0 @ =0x020314E0 ldr r0, [r1] ldr r2, _0804640C @ =0x0000052F adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r1, r2, #5 subs r1, r1, r2 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 lsls r7, r0, #6 mov r5, sp ldr r4, _080463F4 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463F8 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r0, sp movs r6, #0xa strh r6, [r0, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080463FC @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08046400 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xa] mov r0, sp strh r6, [r0, #0xc] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0xe] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0x10] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #0x12] movs r1, #0 _08046392: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r0, r4, #1 mov r3, sp adds r5, r3, r0 movs r1, #0 ldrsh r0, [r5, r1] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _080463BC movs r0, #0x14 strh r0, [r5] adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _08046392 _080463BC: mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 movs r3, #0xb4 lsls r3, r3, #2 adds r5, r3, #0 adds r0, r0, r5 b _08046410 .align 2, 0 _080463D0: .4byte 0x020314E0 _080463D4: .4byte 0x0000053A _080463D8: .4byte 0x0000031F _080463DC: .4byte 0x0200B8C0 _080463E0: .4byte 0x03005000 _080463E4: .4byte 0xFFFFFE00 _080463E8: .4byte 0x000001FF _080463EC: .4byte 0x0000052E _080463F0: .4byte 0x004C4B40 _080463F4: .4byte 0x00989680 _080463F8: .4byte 0x000F4240 _080463FC: .4byte 0x000186A0 _08046400: .4byte 0x00002710 _08046404: .4byte 0x000003FF _08046408: .4byte 0xFFFFFC00 _0804640C: .4byte 0x0000052F _08046410: mov r1, r8 strh r0, [r1] mov r0, sp movs r2, #2 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #2] mov r0, sp movs r3, #4 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r1, #4] mov r0, sp movs r1, #6 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 mov r2, r8 strh r0, [r2, #6] mov r0, sp movs r3, #8 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #8] mov r0, sp movs r1, #0xa ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r2, #0xa] mov r0, sp movs r2, #0xc ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 mov r3, r8 strh r0, [r3, #0xc] mov r0, sp movs r1, #0xe ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #0xe] mov r0, sp movs r2, #0x10 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #0x10] mov r0, sp movs r3, #0x12 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r5 mov r1, r8 strh r0, [r1, #0x12] ldr r2, _080467AC @ =0x020314E0 ldr r0, [r2] ldr r3, _080467B0 @ =0x0000052F adds r0, r0, r3 movs r7, #0 ldrsb r7, [r0, r7] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __divsi3 strh r0, [r4] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #2] mov r0, sp movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0 bne _080464BA mov r1, sp movs r0, #0x14 strh r0, [r1] _080464BA: mov r0, sp movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r5 mov r3, r8 strh r0, [r3, #0x14] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] lsls r0, r0, #1 adds r0, r0, r5 strh r0, [r3, #0x16] ldr r6, _080467B4 @ =0x0200BA30 movs r0, #0x78 strh r0, [r6, #2] ldr r2, _080467AC @ =0x020314E0 ldr r0, [r2] movs r3, #0xe5 lsls r3, r3, #2 adds r0, r0, r3 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 ldr r7, _080467B8 @ =0x03005000 ldr r0, _080467BC @ =0x000003FF mov sl, r0 mov ip, r8 ldr r2, _080467C0 @ =0xFFFFFC00 mov sb, r2 _080464F8: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080467C4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080467C8 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 lsls r0, r4, #1 add r0, ip ldrh r0, [r0] mov r1, sl ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _080464F8 ldr r0, _080467AC @ =0x020314E0 ldr r3, [r0] ldr r1, _080467CC @ =0x0000052E adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] ldr r0, _080467D0 @ =0x004C4B40 adds r4, r1, #0 muls r4, r0, r4 ldr r2, _080467B0 @ =0x0000052F adds r0, r3, r2 movs r2, #0 ldrsb r2, [r0, r2] lsls r1, r2, #5 subs r1, r1, r2 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r2 lsls r0, r0, #6 adds r7, r4, r0 ldr r0, _080467D4 @ =0x00000544 adds r3, r3, r0 str r7, [r3] mov r5, sp ldr r4, _080467D8 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strh r0, [r5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467DC @ =0x00989680 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #2] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467E0 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #4] mov r0, sp movs r6, #0xa strh r6, [r0, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467E4 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080467E8 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xa] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 strh r0, [r5, #0xc] mov r0, sp strh r6, [r0, #0xe] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strh r0, [r5, #0x10] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strh r0, [r4, #0x12] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strh r0, [r4, #0x14] movs r1, #0 _08046636: lsls r0, r1, #0x10 asrs r4, r0, #0x10 lsls r0, r4, #1 mov r1, sp adds r5, r1, r0 movs r2, #0 ldrsh r0, [r5, r2] movs r1, #0xa bl __modsi3 lsls r0, r0, #0x10 cmp r0, #0 bne _08046660 movs r0, #0x14 strh r0, [r5] adds r0, r4, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08046636 _08046660: mov r0, sp movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 movs r2, #0xb4 lsls r2, r2, #2 adds r1, r2, #0 adds r0, r0, r1 mov r3, r8 strh r0, [r3] mov r0, sp movs r2, #2 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r3, #2] mov r0, sp movs r3, #4 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r2, r8 strh r0, [r2, #4] mov r0, sp movs r3, #6 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r2, #6] mov r0, sp movs r2, #8 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 mov r3, r8 strh r0, [r3, #8] mov r0, sp movs r2, #0xa ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r3, #0xa] mov r0, sp movs r3, #0xc ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r2, r8 strh r0, [r2, #0xc] mov r0, sp movs r3, #0xe ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r2, #0xe] mov r0, sp movs r2, #0x10 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 mov r3, r8 strh r0, [r3, #0x10] mov r0, sp movs r2, #0x12 ldrsh r0, [r0, r2] lsls r0, r0, #1 adds r0, r0, r1 strh r0, [r3, #0x12] mov r0, sp movs r3, #0x14 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r2, r8 strh r0, [r2, #0x14] ldr r3, _080467AC @ =0x020314E0 ldr r0, [r3] ldr r2, _080467EC @ =0x000005F6 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r7, r0, #1 mov r0, sp strh r7, [r0] movs r3, #0 ldrsh r0, [r0, r3] lsls r0, r0, #1 adds r0, r0, r1 mov r1, r8 strh r0, [r1, #0x16] ldr r6, _080467F0 @ =0x0200BAE8 movs r0, #0x78 strh r0, [r6, #2] ldr r2, _080467AC @ =0x020314E0 ldr r0, [r2] movs r3, #0xe5 lsls r3, r3, #2 adds r0, r0, r3 ldrh r0, [r0] adds r0, #0x3c strh r0, [r6, #4] movs r1, #0 ldr r7, _080467B8 @ =0x03005000 ldr r0, _080467C8 @ =0xFFFFFE00 mov ip, r0 ldr r2, _080467BC @ =0x000003FF mov sl, r2 ldr r3, _080467C0 @ =0xFFFFFC00 mov sb, r3 _0804673C: lsls r4, r1, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _080467C4 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 lsls r0, r4, #1 add r0, r8 ldrh r0, [r0] mov r1, sl ands r1, r0 ldrh r2, [r3, #4] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #4] adds r4, #1 lsls r4, r4, #0x10 lsrs r1, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xb ble _0804673C _0804679A: add sp, #0x30 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080467AC: .4byte 0x020314E0 _080467B0: .4byte 0x0000052F _080467B4: .4byte 0x0200BA30 _080467B8: .4byte 0x03005000 _080467BC: .4byte 0x000003FF _080467C0: .4byte 0xFFFFFC00 _080467C4: .4byte 0x000001FF _080467C8: .4byte 0xFFFFFE00 _080467CC: .4byte 0x0000052E _080467D0: .4byte 0x004C4B40 _080467D4: .4byte 0x00000544 _080467D8: .4byte 0x05F5E100 _080467DC: .4byte 0x00989680 _080467E0: .4byte 0x000F4240 _080467E4: .4byte 0x000186A0 _080467E8: .4byte 0x00002710 _080467EC: .4byte 0x000005F6 _080467F0: .4byte 0x0200BAE8 thumb_func_start sub_467F4 sub_467F4: @ 0x080467F4 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 push {r5, r6} ldr r0, _08046824 @ =0x02031520 ldr r3, _08046828 @ =0x086AFD70 ldr r4, _0804682C @ =0x0200B0C0 ldrb r2, [r4, #4] movs r1, #0x54 muls r1, r2, r1 adds r1, r1, r3 adds r0, #0x14 movs r2, #0x54 bl memcpy ldrb r0, [r4, #4] cmp r0, #7 bls _0804681A b _08046F66 _0804681A: lsls r0, r0, #2 ldr r1, _08046830 @ =_08046834 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08046824: .4byte 0x02031520 _08046828: .4byte 0x086AFD70 _0804682C: .4byte 0x0200B0C0 _08046830: .4byte _08046834 _08046834: @ jump table .4byte _08046854 @ case 0 .4byte _0804698C @ case 1 .4byte _08046AC0 @ case 2 .4byte _08046B9C @ case 3 .4byte _08046C78 @ case 4 .4byte _08046D40 @ case 5 .4byte _08046E08 @ case 6 .4byte _08046EE8 @ case 7 _08046854: ldr r4, _08046914 @ =0x040000D4 ldr r0, _08046918 @ =0x081BFEE4 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _0804691C @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046920 @ =0x08265C10 str r0, [r4] ldr r0, _08046924 @ =0x06008000 mov r8, r0 str r0, [r4, #4] ldr r1, _08046928 @ =0x80004000 mov sb, r1 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _0804692C @ =0x0826DC10 str r0, [r4] ldr r0, _08046930 @ =0x06003000 str r0, [r4, #4] ldr r6, _08046934 @ =0x80000800 str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046938 @ =0x0824C1E4 ldr r5, _0804693C @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046940 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046944 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046948 @ =0x0824DD60 adds r1, r5, #0 bl LZ77UnCompWram ldr r0, _0804694C @ =0x08250934 ldr r1, _08046950 @ =0x020030A0 bl LZ77UnCompWram movs r1, #0xc0 lsls r1, r1, #4 adds r0, r5, r1 str r0, [r4] ldr r0, _08046954 @ =0x0600B400 str r0, [r4, #4] ldr r0, _08046958 @ =0x80001200 str r0, [r4, #8] ldr r0, [r4, #8] movs r0, #0xc0 lsls r0, r0, #6 adds r5, r5, r0 str r5, [r4] mov r1, r8 str r1, [r4, #4] ldr r0, _0804695C @ =0x80001A00 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046960 @ =0x081C08E4 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046964 @ =0x0822E424 str r0, [r4] ldr r0, _08046968 @ =0x06001000 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _0804696C @ =0x083A8ACC str r0, [r4] ldr r0, _08046970 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046974 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046978 @ =0x083A826C str r0, [r4] ldr r0, _0804697C @ =0x06006C00 str r0, [r4, #4] ldr r0, _08046980 @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046984 @ =0x0845A48C str r0, [r4] ldr r0, _08046988 @ =0x06010000 str r0, [r4, #4] mov r0, sb str r0, [r4, #8] b _08046F64 .align 2, 0 _08046914: .4byte 0x040000D4 _08046918: .4byte 0x081BFEE4 _0804691C: .4byte 0x80000100 _08046920: .4byte 0x08265C10 _08046924: .4byte 0x06008000 _08046928: .4byte 0x80004000 _0804692C: .4byte 0x0826DC10 _08046930: .4byte 0x06003000 _08046934: .4byte 0x80000800 _08046938: .4byte 0x0824C1E4 _0804693C: .4byte 0x0200FBB0 _08046940: .4byte 0x06004000 _08046944: .4byte 0x80002000 _08046948: .4byte 0x0824DD60 _0804694C: .4byte 0x08250934 _08046950: .4byte 0x020030A0 _08046954: .4byte 0x0600B400 _08046958: .4byte 0x80001200 _0804695C: .4byte 0x80001A00 _08046960: .4byte 0x081C08E4 _08046964: .4byte 0x0822E424 _08046968: .4byte 0x06001000 _0804696C: .4byte 0x083A8ACC _08046970: .4byte 0x06006800 _08046974: .4byte 0x80000200 _08046978: .4byte 0x083A826C _0804697C: .4byte 0x06006C00 _08046980: .4byte 0x80000400 _08046984: .4byte 0x0845A48C _08046988: .4byte 0x06010000 _0804698C: ldr r4, _08046A48 @ =0x040000D4 ldr r0, _08046A4C @ =0x0826EC10 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046A50 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A54 @ =0x082E4EE0 str r0, [r4] ldr r1, _08046A58 @ =0x06008000 mov r8, r1 str r1, [r4, #4] ldr r0, _08046A5C @ =0x80004000 mov sb, r0 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A60 @ =0x082ECEE0 str r0, [r4] ldr r0, _08046A64 @ =0x06003000 str r0, [r4, #4] ldr r6, _08046A68 @ =0x80000800 str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A6C @ =0x082D34D0 ldr r5, _08046A70 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046A74 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046A78 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A7C @ =0x082D523C adds r1, r5, #0 bl LZ77UnCompWram ldr r0, _08046A80 @ =0x082D8998 ldr r1, _08046A84 @ =0x020030A0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046A88 @ =0x0600A800 str r0, [r4, #4] ldr r0, _08046A8C @ =0x80001800 str r0, [r4, #8] ldr r0, [r4, #8] movs r1, #0xc0 lsls r1, r1, #6 adds r5, r5, r1 str r5, [r4] mov r0, r8 str r0, [r4, #4] ldr r0, _08046A90 @ =0x80001400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A94 @ =0x0826EE10 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046A98 @ =0x082AE6D0 str r0, [r4] ldr r0, _08046A9C @ =0x06001000 str r0, [r4, #4] str r6, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046AA0 @ =0x083A8ACC str r0, [r4] ldr r0, _08046AA4 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046AA8 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046AAC @ =0x083A826C str r0, [r4] ldr r0, _08046AB0 @ =0x06006C00 str r0, [r4, #4] ldr r0, _08046AB4 @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046AB8 @ =0x0845F9EC str r0, [r4] ldr r0, _08046ABC @ =0x06010000 str r0, [r4, #4] mov r1, sb str r1, [r4, #8] b _08046F64 .align 2, 0 _08046A48: .4byte 0x040000D4 _08046A4C: .4byte 0x0826EC10 _08046A50: .4byte 0x80000100 _08046A54: .4byte 0x082E4EE0 _08046A58: .4byte 0x06008000 _08046A5C: .4byte 0x80004000 _08046A60: .4byte 0x082ECEE0 _08046A64: .4byte 0x06003000 _08046A68: .4byte 0x80000800 _08046A6C: .4byte 0x082D34D0 _08046A70: .4byte 0x0200FBB0 _08046A74: .4byte 0x06004000 _08046A78: .4byte 0x80002000 _08046A7C: .4byte 0x082D523C _08046A80: .4byte 0x082D8998 _08046A84: .4byte 0x020030A0 _08046A88: .4byte 0x0600A800 _08046A8C: .4byte 0x80001800 _08046A90: .4byte 0x80001400 _08046A94: .4byte 0x0826EE10 _08046A98: .4byte 0x082AE6D0 _08046A9C: .4byte 0x06001000 _08046AA0: .4byte 0x083A8ACC _08046AA4: .4byte 0x06006800 _08046AA8: .4byte 0x80000200 _08046AAC: .4byte 0x083A826C _08046AB0: .4byte 0x06006C00 _08046AB4: .4byte 0x80000400 _08046AB8: .4byte 0x0845F9EC _08046ABC: .4byte 0x06010000 _08046AC0: ldr r4, _08046B44 @ =0x040000D4 ldr r0, _08046B48 @ =0x082EDEE0 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046B4C @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B50 @ =0x08302700 ldr r5, _08046B54 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046B58 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046B5C @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B60 @ =0x08303928 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046B64 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046B68 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B6C @ =0x082EE4C0 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046B70 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B74 @ =0x08301700 str r0, [r4] ldr r0, _08046B78 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B7C @ =0x08301F00 str r0, [r4] ldr r0, _08046B80 @ =0x06001000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B84 @ =0x083A8ACC str r0, [r4] ldr r0, _08046B88 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046B8C @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B90 @ =0x083A826C str r0, [r4] ldr r0, _08046B94 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046B98 @ =0x08464F4C b _08046F5C .align 2, 0 _08046B44: .4byte 0x040000D4 _08046B48: .4byte 0x082EDEE0 _08046B4C: .4byte 0x80000100 _08046B50: .4byte 0x08302700 _08046B54: .4byte 0x0200FBB0 _08046B58: .4byte 0x06004000 _08046B5C: .4byte 0x80002000 _08046B60: .4byte 0x08303928 _08046B64: .4byte 0x06008000 _08046B68: .4byte 0x80004000 _08046B6C: .4byte 0x082EE4C0 _08046B70: .4byte 0x80000400 _08046B74: .4byte 0x08301700 _08046B78: .4byte 0x06000800 _08046B7C: .4byte 0x08301F00 _08046B80: .4byte 0x06001000 _08046B84: .4byte 0x083A8ACC _08046B88: .4byte 0x06006800 _08046B8C: .4byte 0x80000200 _08046B90: .4byte 0x083A826C _08046B94: .4byte 0x06006C00 _08046B98: .4byte 0x08464F4C _08046B9C: ldr r4, _08046C20 @ =0x040000D4 ldr r0, _08046C24 @ =0x0830CBD4 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046C28 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C2C @ =0x08302700 ldr r5, _08046C30 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046C34 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046C38 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C3C @ =0x0832A194 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046C40 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046C44 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C48 @ =0x08329994 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046C4C @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C50 @ =0x0830CDD4 str r0, [r4] ldr r0, _08046C54 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C58 @ =0x08327994 str r0, [r4] ldr r0, _08046C5C @ =0x06001000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C60 @ =0x083A8ACC str r0, [r4] ldr r0, _08046C64 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046C68 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C6C @ =0x083A826C str r0, [r4] ldr r0, _08046C70 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046C74 @ =0x084675EC b _08046F5C .align 2, 0 _08046C20: .4byte 0x040000D4 _08046C24: .4byte 0x0830CBD4 _08046C28: .4byte 0x80000100 _08046C2C: .4byte 0x08302700 _08046C30: .4byte 0x0200FBB0 _08046C34: .4byte 0x06004000 _08046C38: .4byte 0x80002000 _08046C3C: .4byte 0x0832A194 _08046C40: .4byte 0x06008000 _08046C44: .4byte 0x80004000 _08046C48: .4byte 0x08329994 _08046C4C: .4byte 0x80000400 _08046C50: .4byte 0x0830CDD4 _08046C54: .4byte 0x06000800 _08046C58: .4byte 0x08327994 _08046C5C: .4byte 0x06001000 _08046C60: .4byte 0x083A8ACC _08046C64: .4byte 0x06006800 _08046C68: .4byte 0x80000200 _08046C6C: .4byte 0x083A826C _08046C70: .4byte 0x06006C00 _08046C74: .4byte 0x084675EC _08046C78: ldr r4, _08046CF0 @ =0x040000D4 ldr r0, _08046CF4 @ =0x08332E04 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046CF8 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046CFC @ =0x08302700 ldr r5, _08046D00 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046D04 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046D08 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D0C @ =0x0833E044 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046D10 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046D14 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D18 @ =0x08333004 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046D1C @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D20 @ =0x0833D844 str r0, [r4] ldr r0, _08046D24 @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D28 @ =0x083A8ACC str r0, [r4] ldr r0, _08046D2C @ =0x06006800 str r0, [r4, #4] ldr r0, _08046D30 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D34 @ =0x083A826C str r0, [r4] ldr r0, _08046D38 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046D3C @ =0x0846A40C b _08046F5C .align 2, 0 _08046CF0: .4byte 0x040000D4 _08046CF4: .4byte 0x08332E04 _08046CF8: .4byte 0x80000100 _08046CFC: .4byte 0x08302700 _08046D00: .4byte 0x0200FBB0 _08046D04: .4byte 0x06004000 _08046D08: .4byte 0x80002000 _08046D0C: .4byte 0x0833E044 _08046D10: .4byte 0x06008000 _08046D14: .4byte 0x80004000 _08046D18: .4byte 0x08333004 _08046D1C: .4byte 0x80000400 _08046D20: .4byte 0x0833D844 _08046D24: .4byte 0x06000800 _08046D28: .4byte 0x083A8ACC _08046D2C: .4byte 0x06006800 _08046D30: .4byte 0x80000200 _08046D34: .4byte 0x083A826C _08046D38: .4byte 0x06006C00 _08046D3C: .4byte 0x0846A40C _08046D40: ldr r4, _08046DB8 @ =0x040000D4 ldr r0, _08046DBC @ =0x08352BD8 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046DC0 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DC4 @ =0x08302700 ldr r5, _08046DC8 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046DCC @ =0x06004000 str r0, [r4, #4] ldr r0, _08046DD0 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DD4 @ =0x08353DD8 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046DD8 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046DDC @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DE0 @ =0x08352DD8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046DE4 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DE8 @ =0x083535D8 str r0, [r4] ldr r0, _08046DEC @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DF0 @ =0x083A8ACC str r0, [r4] ldr r0, _08046DF4 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046DF8 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046DFC @ =0x083A826C str r0, [r4] ldr r0, _08046E00 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046E04 @ =0x0846D2AC b _08046F5C .align 2, 0 _08046DB8: .4byte 0x040000D4 _08046DBC: .4byte 0x08352BD8 _08046DC0: .4byte 0x80000100 _08046DC4: .4byte 0x08302700 _08046DC8: .4byte 0x0200FBB0 _08046DCC: .4byte 0x06004000 _08046DD0: .4byte 0x80002000 _08046DD4: .4byte 0x08353DD8 _08046DD8: .4byte 0x06008000 _08046DDC: .4byte 0x80004000 _08046DE0: .4byte 0x08352DD8 _08046DE4: .4byte 0x80000400 _08046DE8: .4byte 0x083535D8 _08046DEC: .4byte 0x06000800 _08046DF0: .4byte 0x083A8ACC _08046DF4: .4byte 0x06006800 _08046DF8: .4byte 0x80000200 _08046DFC: .4byte 0x083A826C _08046E00: .4byte 0x06006C00 _08046E04: .4byte 0x0846D2AC _08046E08: ldr r4, _08046E8C @ =0x040000D4 ldr r0, _08046E90 @ =0x08363EC8 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046E94 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046E98 @ =0x08302700 ldr r5, _08046E9C @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046EA0 @ =0x06004000 str r0, [r4, #4] ldr r0, _08046EA4 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EA8 @ =0x08370808 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046EAC @ =0x06008000 str r0, [r4, #4] ldr r2, _08046EB0 @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EB4 @ =0x083640C8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046EB8 @ =0x80000800 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EBC @ =0x0836F808 str r0, [r4] ldr r0, _08046EC0 @ =0x06001000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EC4 @ =0x0836E808 str r0, [r4] ldr r0, _08046EC8 @ =0x06003000 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046ECC @ =0x083A8ACC str r0, [r4] ldr r0, _08046ED0 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046ED4 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046ED8 @ =0x083A826C str r0, [r4] ldr r0, _08046EDC @ =0x06006C00 str r0, [r4, #4] ldr r0, _08046EE0 @ =0x80000400 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046EE4 @ =0x08472A6C b _08046F5C .align 2, 0 _08046E8C: .4byte 0x040000D4 _08046E90: .4byte 0x08363EC8 _08046E94: .4byte 0x80000100 _08046E98: .4byte 0x08302700 _08046E9C: .4byte 0x0200FBB0 _08046EA0: .4byte 0x06004000 _08046EA4: .4byte 0x80002000 _08046EA8: .4byte 0x08370808 _08046EAC: .4byte 0x06008000 _08046EB0: .4byte 0x80004000 _08046EB4: .4byte 0x083640C8 _08046EB8: .4byte 0x80000800 _08046EBC: .4byte 0x0836F808 _08046EC0: .4byte 0x06001000 _08046EC4: .4byte 0x0836E808 _08046EC8: .4byte 0x06003000 _08046ECC: .4byte 0x083A8ACC _08046ED0: .4byte 0x06006800 _08046ED4: .4byte 0x80000200 _08046ED8: .4byte 0x083A826C _08046EDC: .4byte 0x06006C00 _08046EE0: .4byte 0x80000400 _08046EE4: .4byte 0x08472A6C _08046EE8: ldr r4, _08046F78 @ =0x040000D4 ldr r0, _08046F7C @ =0x0837A2E8 str r0, [r4] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r0, _08046F80 @ =0x80000100 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046F84 @ =0x08302700 ldr r5, _08046F88 @ =0x0200FBB0 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046F8C @ =0x06004000 str r0, [r4, #4] ldr r0, _08046F90 @ =0x80002000 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046F94 @ =0x0838E828 adds r1, r5, #0 bl LZ77UnCompWram str r5, [r4] ldr r0, _08046F98 @ =0x06008000 str r0, [r4, #4] ldr r2, _08046F9C @ =0x80004000 str r2, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FA0 @ =0x0837A4E8 str r0, [r4] movs r0, #0xc0 lsls r0, r0, #0x13 str r0, [r4, #4] ldr r1, _08046FA4 @ =0x80000400 str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FA8 @ =0x0838E028 str r0, [r4] ldr r0, _08046FAC @ =0x06000800 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FB0 @ =0x083A8ACC str r0, [r4] ldr r0, _08046FB4 @ =0x06006800 str r0, [r4, #4] ldr r0, _08046FB8 @ =0x80000200 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FBC @ =0x083A826C str r0, [r4] ldr r0, _08046FC0 @ =0x06006C00 str r0, [r4, #4] str r1, [r4, #8] ldr r0, [r4, #8] ldr r0, _08046FC4 @ =0x084779EC _08046F5C: str r0, [r4] ldr r0, _08046FC8 @ =0x06010000 str r0, [r4, #4] str r2, [r4, #8] _08046F64: ldr r0, [r4, #8] _08046F66: ldr r1, _08046FCC @ =0x02031520 ldr r0, _08046FD0 @ =0x0816C3E4 str r0, [r1, #0x68] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08046F78: .4byte 0x040000D4 _08046F7C: .4byte 0x0837A2E8 _08046F80: .4byte 0x80000100 _08046F84: .4byte 0x08302700 _08046F88: .4byte 0x0200FBB0 _08046F8C: .4byte 0x06004000 _08046F90: .4byte 0x80002000 _08046F94: .4byte 0x0838E828 _08046F98: .4byte 0x06008000 _08046F9C: .4byte 0x80004000 _08046FA0: .4byte 0x0837A4E8 _08046FA4: .4byte 0x80000400 _08046FA8: .4byte 0x0838E028 _08046FAC: .4byte 0x06000800 _08046FB0: .4byte 0x083A8ACC _08046FB4: .4byte 0x06006800 _08046FB8: .4byte 0x80000200 _08046FBC: .4byte 0x083A826C _08046FC0: .4byte 0x06006C00 _08046FC4: .4byte 0x084779EC _08046FC8: .4byte 0x06010000 _08046FCC: .4byte 0x02031520 _08046FD0: .4byte 0x0816C3E4 thumb_func_start sub_46FD4 sub_46FD4: @ 0x08046FD4 push {r4, r5, lr} ldr r5, _08047024 @ =0x02031520 ldr r4, _08047028 @ =0x086AFCB0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #4 ldr r3, _0804702C @ =0x0200B0C0 ldrb r1, [r3, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 adds r0, r2, r0 adds r0, r0, r4 ldr r0, [r0] str r0, [r5, #0x38] ldrb r1, [r3, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 adds r0, r2, r0 adds r1, r4, #0 adds r1, #0x10 adds r0, r0, r1 ldr r0, [r0] str r0, [r5, #0x48] ldrb r1, [r3, #4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #5 adds r2, r2, r0 adds r4, #0x20 adds r2, r2, r4 ldr r0, [r2] str r0, [r5, #0x58] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08047024: .4byte 0x02031520 _08047028: .4byte 0x086AFCB0 _0804702C: .4byte 0x0200B0C0 thumb_func_start sub_47030 sub_47030: @ 0x08047030 push {r4, r5, lr} ldr r0, _08047074 @ =0x0200B0C0 ldr r1, _08047078 @ =0x000002F6 adds r0, r0, r1 ldrh r0, [r0] lsrs r4, r0, #3 adds r2, r4, #0 lsls r1, r2, #3 ldr r0, _0804707C @ =0x086B0010 adds r3, r1, r0 ldr r1, _08047080 @ =0x020314E0 ldr r0, [r1] adds r0, #0x64 movs r5, #0 ldrsh r0, [r0, r5] adds r5, r1, #0 cmp r2, r0 beq _080470EA cmp r2, r0 ble _080470A8 movs r1, #0 ldrsh r0, [r3, r1] cmp r0, #0x1f ble _0804708C ldr r2, _08047084 @ =0x040000D4 subs r0, #0x20 lsls r0, r0, #0xa ldr r1, _08047088 @ =0x020030A0 adds r0, r0, r1 str r0, [r2] movs r1, #2 ldrsh r0, [r3, r1] b _080470D6 .align 2, 0 _08047074: .4byte 0x0200B0C0 _08047078: .4byte 0x000002F6 _0804707C: .4byte 0x086B0010 _08047080: .4byte 0x020314E0 _08047084: .4byte 0x040000D4 _08047088: .4byte 0x020030A0 _0804708C: ldr r2, _080470A0 @ =0x040000D4 movs r1, #0 ldrsh r0, [r3, r1] lsls r0, r0, #0xa ldr r1, _080470A4 @ =0x0200FBB0 adds r0, r0, r1 str r0, [r2] movs r1, #2 ldrsh r0, [r3, r1] b _080470D6 .align 2, 0 _080470A0: .4byte 0x040000D4 _080470A4: .4byte 0x0200FBB0 _080470A8: movs r1, #4 ldrsh r0, [r3, r1] cmp r0, #0x1f ble _080470C4 ldr r2, _080470BC @ =0x040000D4 subs r0, #0x20 lsls r0, r0, #0xa ldr r1, _080470C0 @ =0x020030A0 b _080470CE .align 2, 0 _080470BC: .4byte 0x040000D4 _080470C0: .4byte 0x020030A0 _080470C4: ldr r2, _080470F0 @ =0x040000D4 movs r1, #4 ldrsh r0, [r3, r1] lsls r0, r0, #0xa ldr r1, _080470F4 @ =0x0200FBB0 _080470CE: adds r0, r0, r1 str r0, [r2] movs r1, #6 ldrsh r0, [r3, r1] _080470D6: lsls r0, r0, #0xa ldr r1, _080470F8 @ =0x06008000 adds r0, r0, r1 str r0, [r2, #4] ldr r0, _080470FC @ =0x80000200 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x64 strh r4, [r0] _080470EA: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _080470F0: .4byte 0x040000D4 _080470F4: .4byte 0x0200FBB0 _080470F8: .4byte 0x06008000 _080470FC: .4byte 0x80000200 thumb_func_start sub_47100 sub_47100: @ 0x08047100 ldr r0, _0804710C @ =0x020314E0 ldr r0, [r0] adds r0, #0xfc movs r1, #0x80 strh r1, [r0] bx lr .align 2, 0 _0804710C: .4byte 0x020314E0 thumb_func_start sub_47110 sub_47110: @ 0x08047110 push {r4, r5, lr} movs r0, #0 ldr r5, _08047148 @ =0x03005C00 adds r4, r5, #0 ldr r3, _0804714C @ =0x000001FF ldr r2, _08047150 @ =0x000007FF _0804711C: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r4 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r2 ble _0804711C ldr r1, _08047154 @ =0x040000D4 str r5, [r1] ldr r0, _08047158 @ =0x06002000 str r0, [r1, #4] ldr r0, _0804715C @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08047148: .4byte 0x03005C00 _0804714C: .4byte 0x000001FF _08047150: .4byte 0x000007FF _08047154: .4byte 0x040000D4 _08047158: .4byte 0x06002000 _0804715C: .4byte 0x80000800 thumb_func_start sub_47160 sub_47160: @ 0x08047160 push {r4, r5, lr} ldr r2, _0804719C @ =0x0200B0C0 ldrh r1, [r2, #0x18] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080471B6 ldrb r0, [r2, #2] cmp r0, #3 beq _080471B6 ldr r0, _080471A0 @ =0x020314E0 ldr r0, [r0] movs r1, #0x88 lsls r1, r1, #5 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 bne _080471B6 ldrb r1, [r2, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _080471A4 movs r0, #0xfd ands r0, r1 strb r0, [r2, #0xf] bl sub_497BC b _080471B6 .align 2, 0 _0804719C: .4byte 0x0200B0C0 _080471A0: .4byte 0x020314E0 _080471A4: movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _080471B6 movs r0, #2 orrs r0, r1 strb r0, [r2, #0xf] bl sub_495A0 _080471B6: ldr r4, _080472B0 @ =0x0200B0C0 ldrb r1, [r4, #0xf] movs r5, #2 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08047274 ldrh r1, [r4, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080471E4 ldr r0, _080472B4 @ =0x020314E0 ldr r1, [r0] ldr r0, _080472B8 @ =0x00001104 adds r1, r1, r0 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] movs r0, #0xa3 bl m4aSongNumStart _080471E4: ldrh r1, [r4, #0x18] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08047204 ldr r0, _080472B4 @ =0x020314E0 ldr r1, [r0] ldr r0, _080472B8 @ =0x00001104 adds r1, r1, r0 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] movs r0, #0xa3 bl m4aSongNumStart _08047204: ldrh r1, [r4, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08047244 ldrh r1, [r4, #0x1c] movs r0, #0xe ands r0, r1 cmp r0, #0 bne _08047244 ldr r0, _080472B4 @ =0x020314E0 ldr r0, [r0] ldr r1, _080472B8 @ =0x00001104 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08047230 strb r5, [r4, #0xe] bl sub_49850 _08047230: ldrb r1, [r4, #0xf] movs r0, #0xfd ands r0, r1 strb r0, [r4, #0xf] bl sub_497BC ldrh r1, [r4, #0x18] ldr r0, _080472BC @ =0x0000FFFE ands r0, r1 strh r0, [r4, #0x18] _08047244: ldr r4, _080472B0 @ =0x0200B0C0 ldrh r1, [r4, #0x18] movs r5, #2 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08047266 ldrb r1, [r4, #0xf] movs r0, #0xfd ands r0, r1 strb r0, [r4, #0xf] bl sub_497BC ldrh r1, [r4, #0x18] ldr r0, _080472C0 @ =0x0000FFFD ands r0, r1 strh r0, [r4, #0x18] _08047266: ldrb r1, [r4, #0xf] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08047274 bl sub_49A34 _08047274: ldr r0, _080472B0 @ =0x0200B0C0 ldrb r1, [r0, #0xf] adds r2, r0, #0 cmp r1, #0 bne _080472DC ldr r3, _080472B4 @ =0x020314E0 ldr r0, [r3] movs r4, #0xe8 lsls r4, r4, #3 adds r0, r0, r4 strb r1, [r0] ldrh r0, [r2, #0x14] cmp r0, #0 beq _080472DC subs r0, #1 strh r0, [r2, #0x14] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bne _080472D2 ldr r0, [r3] adds r1, r0, #0 adds r1, #0xe4 ldrb r0, [r1] cmp r0, #0 beq _080472C4 movs r0, #0xa strh r0, [r2, #0x14] b _080472D2 .align 2, 0 _080472B0: .4byte 0x0200B0C0 _080472B4: .4byte 0x020314E0 _080472B8: .4byte 0x00001104 _080472BC: .4byte 0x0000FFFE _080472C0: .4byte 0x0000FFFD _080472C4: ldrb r0, [r2, #0x11] cmp r0, #8 bne _080472CE movs r0, #0x13 b _080472D0 _080472CE: movs r0, #0x14 _080472D0: strb r0, [r1] _080472D2: ldrh r0, [r2, #0x14] cmp r0, #0 bne _080472DC ldrb r0, [r2, #0x11] strb r0, [r2, #0xf] _080472DC: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_472E4 sub_472E4: @ 0x080472E4 push {r4, lr} ldr r4, _080472FC @ =0x0200B0C0 ldrb r1, [r4, #0xf] cmp r1, #0 beq _08047338 movs r0, #8 ands r0, r1 cmp r0, #0 beq _08047300 bl sub_478D8 b _08047338 .align 2, 0 _080472FC: .4byte 0x0200B0C0 _08047300: movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0804730E bl sub_47670 b _08047338 _0804730E: movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0804731C bl sub_474F4 b _08047338 _0804731C: movs r0, #4 ands r0, r1 cmp r0, #0 beq _08047338 bl sub_47344 ldr r0, _08047340 @ =0x020314E0 ldr r1, [r0] ldrb r0, [r4, #0x10] adds r0, #1 movs r2, #0xe8 lsls r2, r2, #3 adds r1, r1, r2 strb r0, [r1] _08047338: pop {r4} pop {r0} bx r0 .align 2, 0 _08047340: .4byte 0x020314E0 thumb_func_start sub_47344 sub_47344: @ 0x08047344 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #0x44 ldr r1, _08047448 @ =0x08137DBE mov r0, sp movs r2, #0x2a bl memcpy add r4, sp, #0x2c ldr r1, _0804744C @ =0x08137DE8 adds r0, r4, #0 movs r2, #0x18 bl memcpy mov sb, r4 mov r1, sp adds r1, #0x2d mov r6, sp adds r6, #0x31 mov r7, sp adds r7, #0x39 add r0, sp, #0x38 mov r8, r0 ldr r0, _08047450 @ =0x03005C00 movs r3, #0 movs r2, #0xd0 lsls r2, r2, #3 adds r0, r0, r2 movs r2, #0x40 _08047382: strh r3, [r0] adds r0, #2 subs r2, #1 cmp r2, #0 bne _08047382 ldr r5, _08047454 @ =0x020314E0 ldr r0, [r5] ldr r4, _08047458 @ =0x0000132C adds r0, r0, r4 ldr r0, [r0] movs r2, #0x10 ldrsh r0, [r0, r2] movs r2, #3 movs r3, #1 bl sub_6CC ldr r0, [r5] adds r0, r0, r4 ldr r0, [r0] movs r1, #0x12 ldrsh r0, [r0, r1] adds r1, r6, #0 movs r2, #3 movs r3, #1 bl sub_6CC mov r0, sb movs r1, #0x1a movs r2, #9 bl sub_678 ldr r0, [r5] adds r0, #0x68 movs r2, #0 ldrsh r0, [r0, r2] adds r1, r7, #0 movs r2, #3 movs r3, #1 bl sub_6CC mov r0, r8 movs r1, #0x1a movs r2, #0x12 bl sub_678 mov r0, sp movs r1, #0x1a movs r2, #0 bl sub_678 ldr r4, _0804745C @ =0x0200B0C0 ldrh r1, [r4, #0x1c] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08047464 ldr r0, [r4, #0x4c] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08047408 ldr r0, _08047460 @ =0x08137E00 ldrb r1, [r4, #0x10] adds r1, #0x1a movs r2, #0 bl sub_678 _08047408: ldrh r1, [r4, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0804741C ldrb r0, [r4, #0x10] cmp r0, #0 beq _0804741C subs r0, #1 strb r0, [r4, #0x10] _0804741C: ldr r2, _0804745C @ =0x0200B0C0 ldrh r1, [r2, #0x18] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08047432 ldrb r0, [r2, #0x10] cmp r0, #0 bne _08047432 adds r0, #1 strb r0, [r2, #0x10] _08047432: ldr r0, _08047454 @ =0x020314E0 ldr r0, [r0] movs r6, #0xe8 lsls r6, r6, #3 adds r0, r0, r6 ldrb r0, [r0] cmp r0, #2 bne _08047490 bl sub_48124 b _08047490 .align 2, 0 _08047448: .4byte 0x08137DBE _0804744C: .4byte 0x08137DE8 _08047450: .4byte 0x03005C00 _08047454: .4byte 0x020314E0 _08047458: .4byte 0x0000132C _0804745C: .4byte 0x0200B0C0 _08047460: .4byte 0x08137E00 _08047464: ldr r0, [r5] movs r1, #0xe8 lsls r1, r1, #3 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #1 beq _08047478 cmp r0, #2 beq _0804747E b _08047482 _08047478: bl sub_47FF8 b _08047482 _0804747E: bl sub_48124 _08047482: ldr r0, _080474DC @ =0x08137E00 ldr r1, _080474E0 @ =0x0200B0C0 ldrb r1, [r1, #0x10] adds r1, #0x1a movs r2, #0 bl sub_678 _08047490: ldr r4, _080474E4 @ =0x03005C00 ldr r5, _080474E0 @ =0x0200B0C0 movs r2, #0xc1 lsls r2, r2, #8 adds r3, r2, #0 movs r6, #0xd0 lsls r6, r6, #3 adds r1, r4, r6 movs r2, #0x40 _080474A2: ldrh r6, [r1] adds r0, r3, r6 strh r0, [r1] adds r1, #2 subs r2, #1 cmp r2, #0 bne _080474A2 ldr r1, _080474E8 @ =0x040000D4 str r4, [r1] ldr r0, _080474EC @ =0x06002000 str r0, [r1, #4] ldr r0, _080474F0 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r1, [r5, #0x1c] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080474CC bl sub_47FBC _080474CC: add sp, #0x44 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080474DC: .4byte 0x08137E00 _080474E0: .4byte 0x0200B0C0 _080474E4: .4byte 0x03005C00 _080474E8: .4byte 0x040000D4 _080474EC: .4byte 0x06002000 _080474F0: .4byte 0x80000400 thumb_func_start sub_474F4 sub_474F4: @ 0x080474F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _08047638 @ =0x0200B0C0 ldr r1, [r0, #0x44] adds r1, #0xa8 ldr r5, [r1] ldrh r1, [r5] mov sb, r0 cmp r1, #0 beq _08047558 movs r0, #0x3f strh r0, [r5, #2] movs r0, #0x34 strh r0, [r5, #4] ldr r7, _0804763C @ =0x03005000 ldr r0, _08047640 @ =0xFFFFFE00 mov ip, r0 adds r4, r5, #0 adds r4, #8 ldr r1, _08047644 @ =0x000001FF mov r8, r1 movs r6, #7 _08047524: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r5, r2] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r2, [r3, #2] mov r0, ip ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r5, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r6, #1 cmp r6, #0 bge _08047524 _08047558: mov r1, sb ldr r0, [r1, #0x4c] lsls r0, r0, #0x1c lsrs r7, r0, #0x10 movs r6, #0 _08047562: adds r0, r7, #0 bl sub_C74 ldr r4, _08047648 @ =0x02031500 lsls r2, r6, #1 adds r4, r2, r4 ldr r1, _0804764C @ =0x02030750 adds r5, r2, r1 movs r2, #0 ldrsh r1, [r5, r2] lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r1, r0 movs r1, #0xc8 bl __divsi3 strh r0, [r4] ldr r0, _08047638 @ =0x0200B0C0 ldr r1, [r0, #0x4c] movs r0, #1 ands r1, r0 cmp r1, #0 bne _0804759E ldrh r0, [r5] adds r0, #1 strh r0, [r5] lsls r0, r0, #0x10 cmp r0, #0 blt _0804759E strh r1, [r5] _0804759E: adds r6, #1 cmp r6, #7 ble _08047562 ldr r2, _08047638 @ =0x0200B0C0 ldrh r1, [r2, #0x12] movs r0, #0xe1 lsls r0, r0, #4 cmp r1, r0 bne _080475FA ldr r1, _08047650 @ =0x040000D4 ldr r0, _08047654 @ =0x08509F4C str r0, [r1] ldr r0, _08047658 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804765C @ =0x80000200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2, #0x44] adds r0, #0xa8 ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r6, #0 mov r8, r6 ldr r5, _08047648 @ =0x02031500 ldr r7, _08047660 @ =0x0000E0C0 _080475D2: lsls r4, r6, #1 strh r7, [r5] ldr r0, _08047664 @ =0x020306C0 adds r0, r4, r0 mov r1, r8 strh r1, [r0] bl sub_C00 ldr r1, _0804764C @ =0x02030750 adds r4, r4, r1 movs r1, #0x1e bl __umodsi3 ldr r2, _08047668 @ =0x0000FFCE adds r0, r0, r2 strh r0, [r4] adds r5, #2 adds r6, #1 cmp r6, #7 ble _080475D2 _080475FA: ldr r0, _08047638 @ =0x0200B0C0 ldrh r1, [r0, #0x12] mov sb, r0 cmp r1, #0 beq _08047618 subs r0, r1, #1 mov r1, sb strh r0, [r1, #0x12] lsls r0, r0, #0x10 cmp r0, #0 bne _08047618 ldr r0, _0804766C @ =0x020314E0 ldr r1, [r0] movs r0, #2 strb r0, [r1, #0x1d] _08047618: mov r2, sb ldrh r1, [r2, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804762C ldr r0, _0804766C @ =0x020314E0 ldr r1, [r0] movs r0, #2 strb r0, [r1, #0x1d] _0804762C: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08047638: .4byte 0x0200B0C0 _0804763C: .4byte 0x03005000 _08047640: .4byte 0xFFFFFE00 _08047644: .4byte 0x000001FF _08047648: .4byte 0x02031500 _0804764C: .4byte 0x02030750 _08047650: .4byte 0x040000D4 _08047654: .4byte 0x08509F4C _08047658: .4byte 0x06015800 _0804765C: .4byte 0x80000200 _08047660: .4byte 0x0000E0C0 _08047664: .4byte 0x020306C0 _08047668: .4byte 0x0000FFCE _0804766C: .4byte 0x020314E0 thumb_func_start sub_47670 sub_47670: @ 0x08047670 push {r4, r5, r6, r7, lr} ldr r4, _080476A4 @ =0x0200B0C0 ldrh r0, [r4, #0x12] cmp r0, #0 bne _0804767C b _080477C4 _0804767C: cmp r0, #0x14 bhi _080476AC cmp r0, #0x14 bne _0804768A movs r0, #0xa4 bl m4aSongNumStart _0804768A: ldr r0, _080476A8 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0xfc ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0x7f bgt _080476C4 adds r0, r2, #0 adds r0, #8 b _080476C2 .align 2, 0 _080476A4: .4byte 0x0200B0C0 _080476A8: .4byte 0x020314E0 _080476AC: ldr r0, _0804771C @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0xfc ldrh r2, [r1] movs r3, #0 ldrsh r0, [r1, r3] cmp r0, #0 ble _080476C4 adds r0, r2, #0 subs r0, #8 _080476C2: strh r0, [r1] _080476C4: bl sub_48190 ldr r2, _08047720 @ =0x0200B0C0 ldrh r0, [r2, #0x12] subs r0, #1 movs r1, #0 strh r0, [r2, #0x12] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xc7 bne _080477A0 ldr r0, _0804771C @ =0x020314E0 ldr r0, [r0] adds r0, #0xfc movs r1, #0x80 strh r1, [r0] movs r1, #0x97 lsls r1, r1, #4 adds r0, r2, r1 movs r1, #1 strh r1, [r0] movs r3, #0xe9 lsls r3, r3, #3 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r1, _08047724 @ =0x040000D4 ldr r0, _08047728 @ =0x0850398C str r0, [r1] ldr r0, _0804772C @ =0x06015800 str r0, [r1, #4] ldr r0, _08047730 @ =0x80001400 str r0, [r1, #8] ldr r0, [r1, #8] ldrb r0, [r2, #4] cmp r0, #0 bne _08047738 ldr r0, _08047734 @ =0x08521FAC b _0804773A .align 2, 0 _0804771C: .4byte 0x020314E0 _08047720: .4byte 0x0200B0C0 _08047724: .4byte 0x040000D4 _08047728: .4byte 0x0850398C _0804772C: .4byte 0x06015800 _08047730: .4byte 0x80001400 _08047734: .4byte 0x08521FAC _08047738: ldr r0, _0804778C @ =0x08521FCC _0804773A: str r0, [r1] ldr r0, _08047790 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08047794 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] movs r0, #0xa4 bl m4aSongNumStart movs r1, #0 ldr r7, _08047798 @ =0x020314E0 ldr r6, _0804779C @ =0x0000063C movs r5, #0 _08047754: movs r2, #0 lsls r4, r1, #0x10 asrs r1, r4, #0x10 lsls r0, r1, #2 adds r0, r0, r1 lsls r3, r0, #2 _08047760: ldr r0, [r7] lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r2, r1, r3 adds r0, r0, r6 adds r0, r0, r2 strb r5, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x13 ble _08047760 movs r1, #0x80 lsls r1, r1, #9 adds r0, r4, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 ble _08047754 b _080478D0 .align 2, 0 _0804778C: .4byte 0x08521FCC _08047790: .4byte 0x050003C0 _08047794: .4byte 0x80000010 _08047798: .4byte 0x020314E0 _0804779C: .4byte 0x0000063C _080477A0: cmp r0, #1 beq _080477A6 b _080478D0 _080477A6: movs r3, #0x97 lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] movs r3, #0xe9 lsls r3, r3, #3 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] b _080478D0 _080477C4: ldrb r0, [r4, #0xf] movs r1, #0xef ands r1, r0 strb r1, [r4, #0xf] bl sub_47FBC ldr r5, _08047860 @ =0x020314E0 ldr r1, [r5] adds r2, r1, #0 adds r2, #0x30 movs r0, #0 ldrsb r0, [r2, r0] cmp r0, #0 ble _080478BC ldr r0, _08047864 @ =0x00000724 adds r1, r1, r0 movs r4, #0 subs r0, #0x1c strh r0, [r1] ldrb r0, [r2] subs r0, #1 strb r0, [r2] ldr r0, [r5] movs r1, #0x3c strh r1, [r0, #0x26] ldr r1, _08047868 @ =0x0000062A adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] ldr r2, _0804786C @ =0x0000062B adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] ldr r3, _08047870 @ =0x0000062C adds r0, r0, r3 strb r4, [r0] ldr r0, [r5] adds r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r5] adds r2, #3 adds r0, r0, r2 strb r4, [r0] ldr r0, [r5] adds r3, #3 adds r0, r0, r3 strb r4, [r0] movs r0, #0 bl sub_11C14 movs r0, #0 bl sub_46FD4 ldr r0, [r5] ldr r1, _08047874 @ =0x0000029E adds r0, r0, r1 strb r4, [r0] ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #3 bne _080478A4 ldr r2, _08047878 @ =0x00000283 adds r0, r1, r2 ldrb r0, [r0] movs r1, #5 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #4 bhi _080478AA lsls r0, r0, #2 ldr r1, _0804787C @ =_08047880 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08047860: .4byte 0x020314E0 _08047864: .4byte 0x00000724 _08047868: .4byte 0x0000062A _0804786C: .4byte 0x0000062B _08047870: .4byte 0x0000062C _08047874: .4byte 0x0000029E _08047878: .4byte 0x00000283 _0804787C: .4byte _08047880 _08047880: @ jump table .4byte _08047894 @ case 0 .4byte _0804789C @ case 1 .4byte _08047894 @ case 2 .4byte _0804789C @ case 3 .4byte _0804789C @ case 4 _08047894: movs r0, #0xe bl m4aSongNumStart b _080478AA _0804789C: movs r0, #0xf bl m4aSongNumStart b _080478AA _080478A4: movs r0, #1 bl sub_19B64 _080478AA: ldr r0, _080478B8 @ =0x020314E0 ldr r0, [r0] adds r0, #0xe4 movs r1, #0 strb r1, [r0] b _080478D0 .align 2, 0 _080478B8: .4byte 0x020314E0 _080478BC: ldrb r0, [r4, #0xf] movs r1, #0x20 orrs r0, r1 strb r0, [r4, #0xf] movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r4, #0x12] movs r0, #0xc bl m4aSongNumStart _080478D0: pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_478D8 sub_478D8: @ 0x080478D8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 ldr r7, _08047AEC @ =0x0200B0C0 ldrh r0, [r7, #0x12] cmp r0, #0 bne _080478EE b _08047F2E _080478EE: movs r0, #0xd2 lsls r0, r0, #3 adds r6, r7, r0 ldrh r0, [r6] movs r1, #0xbb lsls r1, r1, #3 adds r1, r1, r7 mov r8, r1 cmp r0, #0 beq _08047984 movs r0, #0x58 strh r0, [r6, #2] ldr r0, _08047AF0 @ =0x020314E0 ldr r0, [r0] adds r0, #0xfe ldrh r0, [r0] adds r0, #0x14 strh r0, [r6, #4] movs r0, #0 ldr r7, _08047AF4 @ =0x03005000 ldr r2, _08047AF8 @ =0xFFFFFE00 mov sl, r2 movs r3, #0xf rsbs r3, r3, #0 mov sb, r3 _08047920: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08047AFC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r3, [r5, #4] adds r0, r0, r3 strb r0, [r1] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r5] lsls r2, r2, #3 adds r2, r2, r7 ldrb r1, [r2, #3] mov r0, sb ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08047920 _08047984: mov r6, r8 ldrh r0, [r6] cmp r0, #0 beq _08047A14 ldr r4, _08047AF0 @ =0x020314E0 ldr r0, [r4] movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x18 strh r0, [r6, #2] ldr r0, [r4] adds r4, r0, #0 adds r4, #0xfe movs r1, #0x82 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x14 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r6, #4] adds r5, r6, #0 adds r5, #8 ldr r4, _08047AF4 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r5, r3] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 ldr r3, _08047AFC @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08047AF8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r1, #1] movs r2, #3 orrs r0, r2 strb r0, [r1, #1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2, #3] _08047A14: subs r6, #0xb8 ldrh r0, [r6] cmp r0, #0 beq _08047A9A ldr r4, _08047AF0 @ =0x020314E0 ldr r0, [r4] movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x38 strh r0, [r6, #2] ldr r0, [r4] adds r4, r0, #0 adds r4, #0xfe movs r1, #0x82 lsls r1, r1, #1 adds r0, r0, r1 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x34 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r6, #4] movs r0, #0 ldr r7, _08047AF4 @ =0x03005000 ldr r2, _08047AF8 @ =0xFFFFFE00 mov r8, r2 _08047A56: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r5, r6, r0 ldrh r3, [r5] lsls r3, r3, #3 adds r3, r3, r7 movs r0, #2 ldrsh r1, [r5, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08047AFC @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r5, [r5, #4] adds r0, r0, r5 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08047A56 _08047A9A: ldr r1, _08047AEC @ =0x0200B0C0 ldrh r0, [r1, #0x12] subs r0, #1 strh r0, [r1, #0x12] lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x46 bls _08047B00 ldrh r1, [r1, #0x12] adds r2, r1, #0 adds r2, #0x14 adds r0, r2, #0 asrs r0, r0, #6 lsls r0, r0, #6 subs r0, r2, r0 lsls r0, r0, #0x1a lsrs r0, r0, #0x10 bl sub_C24 ldr r1, _08047AF0 @ =0x020314E0 ldr r5, [r1] movs r3, #0x82 lsls r3, r3, #1 adds r4, r5, r3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x28 bl __divsi3 str r0, [r4] movs r4, #0x84 lsls r4, r4, #1 adds r1, r5, r4 movs r0, #0xa strh r0, [r1] movs r0, #0x85 lsls r0, r0, #1 adds r1, r5, r0 adds r0, #0x86 strh r0, [r1] b _08047B3C .align 2, 0 _08047AEC: .4byte 0x0200B0C0 _08047AF0: .4byte 0x020314E0 _08047AF4: .4byte 0x03005000 _08047AF8: .4byte 0xFFFFFE00 _08047AFC: .4byte 0x000001FF _08047B00: ldr r0, _08047B6C @ =0x020314E0 ldr r4, [r0] movs r2, #0x84 lsls r2, r2, #1 adds r1, r4, r2 movs r0, #0xc8 lsls r0, r0, #1 strh r0, [r1] movs r5, #0x85 lsls r5, r5, #1 adds r3, r4, r5 ldrh r0, [r3] subs r0, #0x23 strh r0, [r3] movs r0, #0x80 lsls r0, r0, #1 adds r2, r4, r0 movs r5, #0 ldrsh r1, [r1, r5] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x82 lsls r0, r0, #1 adds r2, r4, r0 movs r4, #0 ldrsh r1, [r3, r4] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] _08047B3C: ldr r1, _08047B70 @ =0x0200B0C0 ldrh r2, [r1, #0x12] adds r0, r2, #0 subs r0, #0x1e lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r6, r1, #0 cmp r0, #0x1d bhi _08047B74 ldrh r1, [r6, #0x12] movs r0, #0x3c subs r0, r0, r1 lsls r0, r0, #8 movs r1, #0x1e bl __divsi3 movs r5, #0x80 lsls r5, r5, #1 adds r0, r0, r5 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] b _08047B8C .align 2, 0 _08047B6C: .4byte 0x020314E0 _08047B70: .4byte 0x0200B0C0 _08047B74: movs r0, #0x80 lsls r0, r0, #1 str r0, [sp] lsls r0, r2, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1d bhi _08047B8C movs r2, #0xbb lsls r2, r2, #3 adds r1, r6, r2 movs r0, #0 strh r0, [r1] _08047B8C: ldrh r0, [r6, #0x12] cmp r0, #0x1e bhi _08047BBE cmp r0, #0xa bls _08047BAE adds r1, r0, #0 subs r1, #0xa lsls r0, r1, #5 subs r0, r0, r1 lsls r0, r0, #3 movs r1, #0x14 bl __divsi3 adds r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 b _08047BE4 _08047BAE: movs r3, #8 mov sl, r3 movs r4, #0xd2 lsls r4, r4, #3 adds r1, r6, r4 movs r0, #0 strh r0, [r1] b _08047BE6 _08047BBE: ldr r0, _08047C48 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0xfe ldrh r2, [r1] movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0 ble _08047BE0 adds r0, r2, #0 subs r0, #8 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bge _08047BE0 movs r0, #0 strh r0, [r1] _08047BE0: movs r0, #0x80 lsls r0, r0, #1 _08047BE4: mov sl, r0 _08047BE6: adds r3, r6, #0 ldrh r0, [r3, #0x12] cmp r0, #0xca bls _08047BF0 b _08047DBA _08047BF0: cmp r0, #0x37 bls _08047C50 ldr r7, _08047C48 @ =0x020314E0 ldr r2, [r7] movs r1, #0x84 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] movs r4, #0x86 lsls r4, r4, #1 adds r0, r2, r4 strh r1, [r0] movs r5, #0x85 lsls r5, r5, #1 adds r0, r2, r5 ldrh r0, [r0] subs r0, #0x5a adds r4, #2 adds r1, r2, r4 strh r0, [r1] adds r5, #6 mov r8, r5 adds r1, r2, r5 subs r4, #0xe adds r0, r2, r4 ldr r0, [r0] str r0, [r1] adds r5, #4 mov sb, r5 adds r1, r2, r5 adds r4, #4 adds r0, r2, r4 ldr r0, [r0] str r0, [r1] ldrh r0, [r3, #0x12] cmp r0, #0x38 bne _08047C40 movs r0, #0x95 bl m4aSongNumStart _08047C40: ldr r5, [r7] ldr r0, _08047C4C @ =0x0000132C adds r4, r5, r0 b _08047CBC .align 2, 0 _08047C48: .4byte 0x020314E0 _08047C4C: .4byte 0x0000132C _08047C50: cmp r0, #0x1f bls _08047D00 ldr r7, _08047CF4 @ =0x020314E0 ldr r5, [r7] movs r0, #0x87 lsls r0, r0, #1 adds r4, r5, r0 ldrh r0, [r4] adds r0, #6 movs r1, #0 mov ip, r1 strh r0, [r4] movs r2, #0x88 lsls r2, r2, #1 mov r8, r2 adds r2, r5, r2 movs r3, #0x86 lsls r3, r3, #1 adds r0, r5, r3 movs r3, #0 ldrsh r1, [r0, r3] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x8a lsls r0, r0, #1 mov sb, r0 adds r2, r5, r0 movs r3, #0 ldrsh r1, [r4, r3] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r4, #0xa4 lsls r4, r4, #3 adds r0, r6, r4 mov r1, ip strh r1, [r0] ldrh r0, [r6, #0x12] cmp r0, #0x20 bne _08047CB6 ldr r2, _08047CF8 @ =0x000005FA adds r1, r5, r2 movs r0, #0 strb r0, [r1] movs r0, #0x96 bl m4aSongNumStart movs r0, #6 bl sub_11B0 _08047CB6: ldr r5, [r7] ldr r3, _08047CFC @ =0x0000132C adds r4, r5, r3 _08047CBC: ldr r6, [r4] mov r1, r8 adds r0, r5, r1 ldr r0, [r0] movs r1, #0x64 bl __divsi3 adds r0, #0x56 lsls r0, r0, #8 str r0, [r6, #0x34] ldr r6, [r4] adds r0, r5, #0 adds r0, #0xfe movs r2, #0 ldrsh r4, [r0, r2] add r5, sb ldr r0, [r5] movs r1, #0x64 bl __divsi3 movs r3, #0xba lsls r3, r3, #1 adds r0, r0, r3 adds r4, r4, r0 lsls r4, r4, #8 str r4, [r6, #0x38] adds r2, r7, #0 b _08047D80 .align 2, 0 _08047CF4: .4byte 0x020314E0 _08047CF8: .4byte 0x000005FA _08047CFC: .4byte 0x0000132C _08047D00: ldr r4, _08047E68 @ =0x020314E0 mov sb, r4 ldr r7, [r4] movs r5, #0x86 lsls r5, r5, #1 adds r1, r7, r5 movs r0, #0 strh r0, [r1] movs r0, #0x87 lsls r0, r0, #1 adds r3, r7, r0 ldrh r0, [r3] adds r0, #0x14 strh r0, [r3] movs r4, #0x88 lsls r4, r4, #1 adds r2, r7, r4 movs r5, #0 ldrsh r1, [r1, r5] ldr r0, [r2] adds r0, r0, r1 str r0, [r2] movs r0, #0x8a lsls r0, r0, #1 adds r5, r7, r0 movs r4, #0 ldrsh r1, [r3, r4] ldr r0, [r5] adds r0, r0, r1 str r0, [r5] ldr r0, _08047E6C @ =0x0000132C adds r6, r7, r0 ldr r4, [r6] ldr r0, [r2] movs r1, #0x64 bl __divsi3 adds r0, #0x56 lsls r0, r0, #8 str r0, [r4, #0x34] ldr r1, [r6] mov r8, r1 adds r0, r7, #0 adds r0, #0xfe movs r2, #0 ldrsh r4, [r0, r2] ldr r0, [r5] movs r1, #0x64 bl __divsi3 movs r3, #0xba lsls r3, r3, #1 adds r0, r0, r3 adds r4, r4, r0 lsls r4, r4, #8 mov r5, r8 str r4, [r5, #0x38] ldr r6, [r6] ldr r0, [r6, #0x38] ldr r1, _08047E70 @ =0x00017100 mov r2, sb cmp r0, r1 ble _08047D80 str r1, [r6, #0x38] _08047D80: ldr r0, [r2] ldr r1, _08047E6C @ =0x0000132C adds r0, r0, r1 ldr r0, [r0] movs r3, #0 strb r3, [r0, #1] ldr r0, [r2] adds r2, r0, r1 ldr r1, [r2] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] ldr r1, [r2] ldr r0, [r1, #0x34] cmp r0, #0 bge _08047DA0 adds r0, #0x7f _08047DA0: asrs r0, r0, #7 strh r0, [r1, #0x28] ldr r1, [r2] ldr r0, [r1, #0x38] cmp r0, #0 bge _08047DAE adds r0, #0x7f _08047DAE: asrs r0, r0, #7 strh r0, [r1, #0x2a] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] _08047DBA: movs r0, #0x80 lsls r0, r0, #1 mov r2, sl lsls r1, r2, #0x10 asrs r1, r1, #0x10 movs r2, #3 bl sub_7C0 ldr r3, [sp] lsls r1, r3, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 movs r2, #4 bl sub_7C0 ldr r4, _08047E74 @ =0x0200B0C0 ldrh r1, [r4, #0x12] cmp r1, #0xcb beq _08047DE2 b _08047F18 _08047DE2: ldr r2, _08047E68 @ =0x020314E0 ldr r3, [r2] movs r5, #0x80 lsls r5, r5, #1 adds r0, r3, r5 movs r1, #0 str r1, [r0] adds r5, #4 adds r0, r3, r5 str r1, [r0] adds r5, #4 adds r0, r3, r5 strh r1, [r0] adds r5, #2 adds r0, r3, r5 strh r1, [r0] adds r1, r3, #0 adds r1, #0xfe movs r0, #0x64 strh r0, [r1] movs r1, #0xd2 lsls r1, r1, #3 adds r0, r4, r1 movs r1, #1 strh r1, [r0] movs r3, #0xbb lsls r3, r3, #3 adds r0, r4, r3 strh r1, [r0] movs r5, #0xa4 lsls r5, r5, #3 adds r0, r4, r5 strh r1, [r0] ldrb r0, [r4, #4] cmp r0, #0 bne _08047EAC ldr r0, _08047E78 @ =0x040000D4 ldr r1, _08047E7C @ =0x0850100C str r1, [r0] ldr r1, _08047E80 @ =0x06015800 str r1, [r0, #4] ldr r1, _08047E84 @ =0x80001200 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08047E88 @ =0x085028CC str r1, [r0] ldr r1, _08047E8C @ =0x06016800 str r1, [r0, #4] ldr r1, _08047E90 @ =0x80000400 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08047E94 @ =0x085038CC str r1, [r0] ldr r1, _08047E98 @ =0x06017000 str r1, [r0, #4] ldr r1, _08047E9C @ =0x80000060 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, _08047EA0 @ =0x08514F4C str r1, [r0] ldr r1, _08047EA4 @ =0x050003C0 str r1, [r0, #4] ldr r1, _08047EA8 @ =0x80000010 str r1, [r0, #8] ldr r0, [r0, #8] b _08047ECA .align 2, 0 _08047E68: .4byte 0x020314E0 _08047E6C: .4byte 0x0000132C _08047E70: .4byte 0x00017100 _08047E74: .4byte 0x0200B0C0 _08047E78: .4byte 0x040000D4 _08047E7C: .4byte 0x0850100C _08047E80: .4byte 0x06015800 _08047E84: .4byte 0x80001200 _08047E88: .4byte 0x085028CC _08047E8C: .4byte 0x06016800 _08047E90: .4byte 0x80000400 _08047E94: .4byte 0x085038CC _08047E98: .4byte 0x06017000 _08047E9C: .4byte 0x80000060 _08047EA0: .4byte 0x08514F4C _08047EA4: .4byte 0x050003C0 _08047EA8: .4byte 0x80000010 _08047EAC: ldr r1, _08047EF4 @ =0x040000D4 ldr r0, _08047EF8 @ =0x0850100C str r0, [r1] ldr r0, _08047EFC @ =0x06015800 str r0, [r1, #4] ldr r0, _08047F00 @ =0x80001200 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08047F04 @ =0x08514F6C str r0, [r1] ldr r0, _08047F08 @ =0x050003C0 str r0, [r1, #4] ldr r0, _08047F0C @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _08047ECA: ldr r1, [r2] movs r0, #2 strb r0, [r1, #0x1f] ldr r0, [r2] ldr r1, _08047F10 @ =0x000005FA adds r0, r0, r1 movs r1, #1 strb r1, [r0] ldr r0, [r2] ldr r3, _08047F14 @ =0x000005F7 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] movs r4, #0x88 lsls r4, r4, #5 adds r0, r0, r4 strb r1, [r0] movs r0, #0x94 bl m4aSongNumStart b _08047FA0 .align 2, 0 _08047EF4: .4byte 0x040000D4 _08047EF8: .4byte 0x0850100C _08047EFC: .4byte 0x06015800 _08047F00: .4byte 0x80001200 _08047F04: .4byte 0x08514F6C _08047F08: .4byte 0x050003C0 _08047F0C: .4byte 0x80000010 _08047F10: .4byte 0x000005FA _08047F14: .4byte 0x000005F7 _08047F18: cmp r1, #0 bne _08047FA0 movs r5, #0xd2 lsls r5, r5, #3 adds r0, r4, r5 strh r1, [r0] movs r2, #0xbb lsls r2, r2, #3 adds r0, r4, r2 strh r1, [r0] b _08047FA0 _08047F2E: ldrb r1, [r7, #0xf] movs r0, #0xf7 ands r0, r1 strb r0, [r7, #0xf] ldr r5, _08047F6C @ =0x020314E0 ldr r1, [r5] movs r4, #0 movs r0, #0x3c strh r0, [r1, #0x26] movs r0, #0 bl sub_11C14 ldr r0, [r5] strb r4, [r0, #0x1f] movs r0, #0 bl sub_46FD4 ldr r0, [r5] ldr r3, _08047F70 @ =0x0000029E adds r0, r0, r3 strb r4, [r0] ldrb r0, [r7, #4] cmp r0, #0 bne _08047F78 ldr r0, [r5] ldr r4, _08047F74 @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] movs r0, #3 b _08047F82 .align 2, 0 _08047F6C: .4byte 0x020314E0 _08047F70: .4byte 0x0000029E _08047F74: .4byte 0x0000132C _08047F78: ldr r0, [r5] ldr r5, _08047FB0 @ =0x0000132C adds r0, r0, r5 ldr r1, [r0] movs r0, #1 _08047F82: strb r0, [r1, #1] ldr r2, _08047FB4 @ =0x020314E0 ldr r0, [r2] ldr r1, _08047FB8 @ =0x000005F7 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] adds r0, #0xe4 strb r1, [r0] ldr r0, [r2] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 strb r1, [r0] _08047FA0: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08047FB0: .4byte 0x0000132C _08047FB4: .4byte 0x020314E0 _08047FB8: .4byte 0x000005F7 thumb_func_start sub_47FBC sub_47FBC: @ 0x08047FBC ldr r3, _08047FE4 @ =0x03005C00 ldr r2, _08047FE8 @ =0x000001FF movs r0, #0xd0 lsls r0, r0, #3 adds r1, r3, r0 movs r0, #0x40 _08047FC8: strh r2, [r1] adds r1, #2 subs r0, #1 cmp r0, #0 bne _08047FC8 ldr r1, _08047FEC @ =0x040000D4 str r3, [r1] ldr r0, _08047FF0 @ =0x06002000 str r0, [r1, #4] ldr r0, _08047FF4 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] bx lr .align 2, 0 _08047FE4: .4byte 0x03005C00 _08047FE8: .4byte 0x000001FF _08047FEC: .4byte 0x040000D4 _08047FF0: .4byte 0x06002000 _08047FF4: .4byte 0x80000400 thumb_func_start sub_47FF8 sub_47FF8: @ 0x08047FF8 push {r4, lr} ldr r2, _08048068 @ =0x0200B0C0 ldrh r1, [r2, #0x1c] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08048074 movs r0, #0x40 ands r0, r1 ldr r3, _0804806C @ =0x020314E0 cmp r0, #0 beq _0804801E ldr r0, [r3] ldr r1, _08048070 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x38] subs r0, #0x80 str r0, [r1, #0x38] _0804801E: ldrh r1, [r2, #0x1c] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048036 ldr r0, [r3] ldr r4, _08048070 @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] ldr r0, [r1, #0x38] adds r0, #0x80 str r0, [r1, #0x38] _08048036: ldrh r1, [r2, #0x1c] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0804804E ldr r0, [r3] ldr r1, _08048070 @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x34] subs r0, #0x80 str r0, [r1, #0x34] _0804804E: ldrh r1, [r2, #0x1c] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080480E0 ldr r0, [r3] ldr r2, _08048070 @ =0x0000132C adds r0, r0, r2 ldr r1, [r0] ldr r0, [r1, #0x34] adds r0, #0x80 b _080480DE .align 2, 0 _08048068: .4byte 0x0200B0C0 _0804806C: .4byte 0x020314E0 _08048070: .4byte 0x0000132C _08048074: movs r0, #0x40 ands r0, r1 ldr r3, _08048118 @ =0x020314E0 cmp r0, #0 beq _0804808E ldr r0, [r3] ldr r4, _0804811C @ =0x0000132C adds r0, r0, r4 ldr r1, [r0] ldr r0, [r1, #0x38] ldr r4, _08048120 @ =0xFFFFFE00 adds r0, r0, r4 str r0, [r1, #0x38] _0804808E: ldrh r1, [r2, #0x1c] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080480AA ldr r0, [r3] ldr r1, _0804811C @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x38] movs r4, #0x80 lsls r4, r4, #2 adds r0, r0, r4 str r0, [r1, #0x38] _080480AA: ldrh r1, [r2, #0x1c] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080480C4 ldr r0, [r3] ldr r1, _0804811C @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x34] ldr r4, _08048120 @ =0xFFFFFE00 adds r0, r0, r4 str r0, [r1, #0x34] _080480C4: ldrh r1, [r2, #0x1c] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080480E0 ldr r0, [r3] ldr r1, _0804811C @ =0x0000132C adds r0, r0, r1 ldr r1, [r0] ldr r0, [r1, #0x34] movs r2, #0x80 lsls r2, r2, #2 adds r0, r0, r2 _080480DE: str r0, [r1, #0x34] _080480E0: ldr r0, [r3] ldr r4, _0804811C @ =0x0000132C adds r2, r0, r4 ldr r1, [r2] ldr r0, [r1, #0x28] str r0, [r1, #0x2c] ldr r1, [r2] ldr r0, [r1, #0x34] cmp r0, #0 bge _080480F6 adds r0, #0x7f _080480F6: asrs r0, r0, #7 movs r3, #0 strh r0, [r1, #0x28] ldr r1, [r2] ldr r0, [r1, #0x38] cmp r0, #0 bge _08048106 adds r0, #0x7f _08048106: asrs r0, r0, #7 strh r0, [r1, #0x2a] ldr r0, [r2] strh r3, [r0, #0x30] ldr r0, [r2] strh r3, [r0, #0x32] pop {r4} pop {r0} bx r0 .align 2, 0 _08048118: .4byte 0x020314E0 _0804811C: .4byte 0x0000132C _08048120: .4byte 0xFFFFFE00 thumb_func_start sub_48124 sub_48124: @ 0x08048124 ldr r3, _08048188 @ =0x0200B0C0 ldrh r1, [r3, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0804813E ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _0804813E: ldrh r1, [r3, #0x18] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08048156 ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _08048156: ldrh r1, [r3, #0x18] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0804816E ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _0804816E: ldrh r1, [r3, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08048186 ldr r0, _0804818C @ =0x020314E0 ldr r1, [r0] adds r1, #0x31 ldrb r0, [r1] movs r2, #1 eors r0, r2 strb r0, [r1] _08048186: bx lr .align 2, 0 _08048188: .4byte 0x0200B0C0 _0804818C: .4byte 0x020314E0 thumb_func_start sub_48190 sub_48190: @ 0x08048190 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x28 ldr r2, _080481F8 @ =0x020314E0 ldr r3, [r2] ldr r1, _080481FC @ =0x0000063A adds r0, r3, r1 ldrh r1, [r0] movs r0, #0xd4 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov sl, r0 movs r4, #0 str r4, [sp, #0x10] movs r7, #0 str r7, [sp, #0x14] movs r0, #0 str r0, [sp, #0x18] adds r1, r2, #0 mov r8, r1 ldr r6, _08048200 @ =0x040000D4 movs r2, #0xcf lsls r2, r2, #3 adds r3, r3, r2 ldr r7, _08048204 @ =0x80000010 mov sb, r7 _080481CC: lsls r0, r4, #2 adds r1, r4, #1 mov ip, r1 adds r0, r0, r4 movs r1, #0x16 muls r1, r4, r1 lsls r4, r0, #2 movs r5, #0x13 lsls r1, r1, #5 ldr r7, _08048208 @ =0x06017400 adds r2, r1, r7 _080481E2: adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x5f bne _0804820C movs r1, #0x30 b _0804821E .align 2, 0 _080481F8: .4byte 0x020314E0 _080481FC: .4byte 0x0000063A _08048200: .4byte 0x040000D4 _08048204: .4byte 0x80000010 _08048208: .4byte 0x06017400 _0804820C: cmp r0, #0x5e bne _08048214 movs r1, #0x2f b _0804821E _08048214: cmp r0, #0x2e ble _0804821E subs r0, #0x41 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _0804821E: mov r7, r8 ldr r0, [r7] ldr r7, _08048244 @ =0x0000063C adds r0, r0, r7 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804824C lsls r0, r1, #0x10 asrs r0, r0, #0xb ldr r1, _08048248 @ =0x0850558C adds r0, r0, r1 str r0, [r6] str r2, [r6, #4] mov r0, sb str r0, [r6, #8] b _08048256 .align 2, 0 _08048244: .4byte 0x0000063C _08048248: .4byte 0x0850558C _0804824C: ldr r0, _080483A0 @ =0x08505B8C str r0, [r6] str r2, [r6, #4] mov r1, sb str r1, [r6, #8] _08048256: ldr r0, [r6, #8] adds r2, #0x20 adds r4, #1 subs r5, #1 cmp r5, #0 bge _080481E2 mov r4, ip cmp r4, #2 ble _080481CC ldr r2, _080483A4 @ =0x0200B0C0 ldrh r0, [r2, #0x12] cmp r0, #0xb3 bls _08048272 b _08048412 _08048272: cmp r0, #0x32 bhi _08048278 b _08048412 _08048278: ldrh r1, [r2, #0x18] movs r2, #1 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _08048286 b _08048412 _08048286: ldr r4, _080483A8 @ =0x020314E0 ldr r3, [r4] ldr r7, _080483AC @ =0x00000639 adds r0, r3, r7 movs r6, #0 ldrsb r6, [r0, r6] cmp r6, #0 beq _08048298 b _080483CC _08048298: ldr r0, _080483B0 @ =0x0000063A adds r1, r3, r0 movs r0, #0x64 strh r0, [r1] mov sl, r0 movs r2, #0xc7 lsls r2, r2, #3 adds r1, r3, r2 movs r0, #6 strb r0, [r1] ldr r4, [r4] movs r3, #0xc6 lsls r3, r3, #3 adds r5, r4, r3 subs r7, #0xf adds r0, r4, r7 ldrb r1, [r0] lsls r0, r1, #5 subs r0, r0, r1 lsls r2, r0, #6 subs r2, r2, r0 lsls r2, r2, #3 adds r2, r2, r1 lsls r2, r2, #5 ldr r1, _080483B4 @ =0x0000062B adds r0, r4, r1 ldrb r1, [r0] ldr r0, _080483B8 @ =0x000B71B0 muls r0, r1, r0 adds r2, r2, r0 subs r3, #4 adds r0, r4, r3 ldrb r3, [r0] lsls r1, r3, #5 subs r1, r1, r3 lsls r0, r1, #6 subs r0, r0, r1 lsls r0, r0, #3 adds r0, r0, r3 lsls r0, r0, #5 adds r2, r2, r0 adds r7, #3 adds r0, r4, r7 ldrb r0, [r0] ldr r1, _080483BC @ =0x000186A0 muls r0, r1, r0 adds r2, r2, r0 ldr r3, _080483C0 @ =0x0000062E adds r0, r4, r3 ldrb r0, [r0] muls r0, r1, r0 adds r2, r2, r0 str r2, [r5] adds r7, #7 adds r4, r4, r7 str r6, [r4] movs r0, #0x96 ldr r1, _080483A4 @ =0x0200B0C0 strh r0, [r1, #0x12] movs r5, #0 ldr r2, _080483A8 @ =0x020314E0 adds r7, #8 movs r3, #1 _08048316: ldr r0, [r2] adds r0, r0, r7 adds r0, r0, r5 strb r3, [r0] adds r5, #1 cmp r5, #0x13 ble _08048316 movs r5, #0 ldr r3, _080483A8 @ =0x020314E0 movs r2, #0xca lsls r2, r2, #3 movs r1, #1 _0804832E: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _0804832E movs r5, #0 ldr r3, _080483A8 @ =0x020314E0 ldr r2, _080483C4 @ =0x00000664 movs r1, #1 _08048344: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _08048344 movs r4, #0 ldr r2, _080483A8 @ =0x020314E0 mov sb, r2 ldr r3, _080483C8 @ =0x086B0128 mov r8, r3 movs r7, #0xcf lsls r7, r7, #3 movs r6, #0xc7 lsls r6, r6, #3 _08048364: movs r5, #0 lsls r0, r4, #2 adds r1, r4, #1 mov ip, r1 adds r0, r0, r4 lsls r4, r0, #2 _08048370: mov r2, sb ldr r0, [r2] adds r2, r5, r4 adds r3, r0, r7 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, r8 ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _08048370 mov r4, ip cmp r4, #2 ble _08048364 movs r3, #1 str r3, [sp, #0x14] b _08048412 .align 2, 0 _080483A0: .4byte 0x08505B8C _080483A4: .4byte 0x0200B0C0 _080483A8: .4byte 0x020314E0 _080483AC: .4byte 0x00000639 _080483B0: .4byte 0x0000063A _080483B4: .4byte 0x0000062B _080483B8: .4byte 0x000B71B0 _080483BC: .4byte 0x000186A0 _080483C0: .4byte 0x0000062E _080483C4: .4byte 0x00000664 _080483C8: .4byte 0x086B0128 _080483CC: ldr r4, _08048560 @ =0x0000063A adds r0, r3, r4 movs r5, #0 strh r2, [r0] movs r0, #0x33 ldr r7, _08048564 @ =0x0200B0C0 strh r0, [r7, #0x12] movs r0, #0x64 mov sl, r0 ldr r1, _08048568 @ =0x000006B4 adds r4, r3, r1 ldr r1, [r4] cmp r1, #0 bne _080483F4 movs r2, #0xd7 lsls r2, r2, #3 adds r0, r3, r2 ldr r0, [r0] cmp r0, #0 beq _08048412 _080483F4: ldr r0, [r3, #0x44] adds r0, r0, r1 str r0, [r3, #0x44] movs r7, #0xd7 lsls r7, r7, #3 adds r2, r3, r7 ldr r0, [r3, #0x48] ldr r1, [r2] adds r0, r0, r1 str r0, [r3, #0x48] str r5, [r4] str r5, [r2] movs r0, #0x91 bl m4aSongNumStart _08048412: ldr r0, _08048564 @ =0x0200B0C0 ldrh r1, [r0, #0x12] mov r0, sl lsls r0, r0, #0x10 str r0, [sp, #0x1c] cmp r1, #0xb9 bne _08048496 ldr r1, _0804856C @ =0x020314E0 ldr r0, [r1] ldr r2, _08048570 @ =0x00000639 adds r0, r0, r2 movs r3, #0 strb r3, [r0] ldr r1, [r1] ldr r4, _08048560 @ =0x0000063A adds r2, r1, r4 movs r4, #0 movs r0, #0xd4 strh r0, [r2] movs r2, #0xc7 lsls r2, r2, #3 adds r1, r1, r2 strb r4, [r1] ldr r7, _0804856C @ =0x020314E0 ldr r0, [r7] movs r4, #0xc6 lsls r4, r4, #3 adds r1, r0, r4 str r3, [r1] ldr r7, _08048574 @ =0x00000634 adds r0, r0, r7 str r3, [r0] movs r4, #0 ldr r0, _0804856C @ =0x020314E0 mov sb, r0 ldr r1, _08048578 @ =0x086B0128 mov r8, r1 adds r7, #0x44 adds r6, r2, #0 _08048460: movs r5, #0 lsls r0, r4, #2 adds r2, r4, #1 mov ip, r2 adds r0, r0, r4 lsls r4, r0, #2 _0804846C: mov r3, sb ldr r0, [r3] adds r2, r5, r4 adds r3, r0, r7 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, r8 ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _0804846C mov r4, ip cmp r4, #2 ble _08048460 _08048496: ldr r4, _0804856C @ =0x020314E0 ldr r0, [r4] ldr r4, _08048560 @ =0x0000063A adds r0, r0, r4 ldrh r0, [r0] cmp r0, #0 bne _080484A6 b _080487B2 _080484A6: ldr r7, _08048564 @ =0x0200B0C0 ldrh r0, [r7, #0x12] cmp r0, #0x95 bhi _080484B2 adds r0, #1 strh r0, [r7, #0x12] _080484B2: ldr r0, _0804856C @ =0x020314E0 ldr r1, [r0] movs r2, #0xc7 lsls r2, r2, #3 adds r3, r1, r2 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #4 ble _080484C6 b _08048650 _080484C6: ldr r3, [sp, #0x1c] asrs r0, r3, #0x10 cmp r0, #0x58 bgt _08048580 movs r1, #0x18 bl __divsi3 lsls r0, r0, #0x10 asrs r7, r0, #0x10 cmp r7, #2 ble _080484DE movs r7, #2 _080484DE: movs r4, #0 cmp r4, r7 bgt _080485D4 movs r6, #0 movs r3, #0 _080484E8: ldr r1, [sp, #0x1c] asrs r0, r1, #0x10 subs r0, r0, r3 movs r1, #0x28 str r3, [sp, #0x24] bl __modsi3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r5, r0, #1 ldr r2, _0804856C @ =0x020314E0 ldr r1, [r2] movs r2, #0xc7 lsls r2, r2, #3 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r3, [sp, #0x24] cmp r0, #0 beq _08048516 cmp r4, #2 beq _08048542 _08048516: adds r2, r5, r6 ldr r0, _0804857C @ =0x0000063C adds r0, r0, r1 mov r8, r0 add r8, r2 mov r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08048542 movs r0, #0xcf lsls r0, r0, #3 adds r1, r1, r0 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x5f beq _08048542 movs r1, #1 str r1, [sp, #0x18] _08048542: ldr r2, _0804856C @ =0x020314E0 ldr r0, [r2] adds r1, r5, r6 ldr r2, _0804857C @ =0x0000063C adds r0, r0, r2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] adds r6, #0x14 adds r3, #0x18 adds r4, #1 cmp r4, r7 ble _080484E8 b _080485D4 .align 2, 0 _08048560: .4byte 0x0000063A _08048564: .4byte 0x0200B0C0 _08048568: .4byte 0x000006B4 _0804856C: .4byte 0x020314E0 _08048570: .4byte 0x00000639 _08048574: .4byte 0x00000634 _08048578: .4byte 0x086B0128 _0804857C: .4byte 0x0000063C _08048580: cmp r0, #0x93 ble _080485D4 subs r0, #0x94 lsls r4, r0, #0x10 asrs r5, r4, #0x10 adds r0, r5, #0 movs r1, #0x18 bl __divsi3 lsls r0, r0, #0x10 asrs r7, r0, #0x10 cmp r7, #1 ble _0804859C movs r7, #1 _0804859C: str r4, [sp, #0x1c] cmp r7, #0 blt _080485D4 movs r2, #0 adds r6, r5, #0 adds r4, r7, #1 _080485A8: adds r0, r6, #0 movs r1, #0x28 str r2, [sp, #0x20] bl __modsi3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r5, r0, #1 ldr r3, _08048640 @ =0x020314E0 ldr r1, [r3] ldr r2, [sp, #0x20] adds r0, r5, r2 ldr r7, _08048644 @ =0x0000063C adds r1, r1, r7 adds r1, r1, r0 movs r0, #0 strb r0, [r1] adds r2, #0x14 subs r6, #0x18 subs r4, #1 cmp r4, #0 bne _080485A8 _080485D4: ldr r0, _08048640 @ =0x020314E0 ldr r1, [r0] ldr r3, _08048648 @ =0x0000063A adds r2, r1, r3 ldrh r0, [r2] cmp r0, #1 beq _080485E4 b _080487A6 _080485E4: movs r0, #0xd4 strh r0, [r2] movs r2, #0xc7 lsls r2, r2, #3 adds r1, r1, r2 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r4, #0 ldr r7, _08048640 @ =0x020314E0 mov sl, r7 ldr r0, _0804864C @ =0x086B0128 mov sb, r0 movs r1, #0xcf lsls r1, r1, #3 mov r8, r1 adds r6, r2, #0 _08048606: movs r5, #0 lsls r0, r4, #2 adds r2, r4, #1 mov ip, r2 adds r0, r0, r4 lsls r7, r0, #2 _08048612: mov r3, sl ldr r0, [r3] adds r2, r5, r7 mov r4, r8 adds r3, r0, r4 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, sb ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _08048612 mov r4, ip cmp r4, #2 ble _08048606 b _080487A6 .align 2, 0 _08048640: .4byte 0x020314E0 _08048644: .4byte 0x0000063C _08048648: .4byte 0x0000063A _0804864C: .4byte 0x086B0128 _08048650: cmp r0, #5 bne _08048720 ldr r7, [sp, #0x1c] asrs r2, r7, #0x10 cmp r2, #0x10 bgt _08048672 rsbs r0, r2, #0 lsls r0, r0, #0x11 lsrs r0, r0, #0x10 str r0, [sp, #0x10] cmp r2, #2 beq _0804866A b _080487A6 _0804866A: movs r0, #0xa2 bl m4aSongNumStart b _080487A6 _08048672: movs r0, #0 str r0, [sp, #0x10] adds r1, r1, r4 movs r0, #0xd4 strh r0, [r1] ldrb r0, [r3] adds r0, #1 strb r0, [r3] movs r5, #0 ldr r2, _08048710 @ =0x020314E0 ldr r7, _08048714 @ =0x0000063C movs r3, #1 _0804868A: ldr r0, [r2] adds r0, r0, r7 adds r0, r0, r5 strb r3, [r0] adds r5, #1 cmp r5, #0x13 ble _0804868A movs r5, #0 ldr r3, _08048710 @ =0x020314E0 movs r2, #0xca lsls r2, r2, #3 movs r1, #0 _080486A2: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _080486A2 movs r5, #0 ldr r3, _08048710 @ =0x020314E0 ldr r2, _08048718 @ =0x00000664 movs r1, #0 _080486B8: ldr r0, [r3] adds r0, r0, r2 adds r0, r0, r5 strb r1, [r0] adds r5, #1 cmp r5, #0x13 ble _080486B8 movs r4, #0 ldr r1, _08048710 @ =0x020314E0 mov sb, r1 ldr r2, _0804871C @ =0x086B0128 mov r8, r2 movs r7, #0xcf lsls r7, r7, #3 movs r6, #0xc7 lsls r6, r6, #3 _080486D8: movs r5, #0 lsls r0, r4, #2 adds r3, r4, #1 mov ip, r3 adds r0, r0, r4 lsls r4, r0, #2 _080486E4: mov r1, sb ldr r0, [r1] adds r2, r5, r4 adds r3, r0, r7 adds r3, r3, r2 adds r0, r0, r6 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 add r2, r8 ldrb r0, [r2] strb r0, [r3] adds r5, #1 cmp r5, #0x13 ble _080486E4 mov r4, ip cmp r4, #2 ble _080486D8 b _080487A6 .align 2, 0 _08048710: .4byte 0x020314E0 _08048714: .4byte 0x0000063C _08048718: .4byte 0x00000664 _0804871C: .4byte 0x086B0128 _08048720: ldr r2, [sp, #0x1c] asrs r0, r2, #0x10 cmp r0, #0x58 bgt _080487A6 movs r1, #0x18 bl __divsi3 lsls r0, r0, #0x10 asrs r7, r0, #0x10 cmp r7, #2 ble _08048738 movs r7, #2 _08048738: movs r4, #0 cmp r4, r7 bgt _080487A6 movs r6, #0 movs r3, #0 _08048742: ldr r1, [sp, #0x1c] asrs r0, r1, #0x10 subs r0, r0, r3 movs r1, #0x28 str r3, [sp, #0x24] bl __modsi3 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r5, r0, #1 ldr r3, [sp, #0x24] cmp r4, #0 beq _0804878C ldr r2, _080487E8 @ =0x020314E0 ldr r1, [r2] adds r2, r5, r6 ldr r0, _080487EC @ =0x0000063C adds r0, r0, r1 mov r8, r0 add r8, r2 mov r0, r8 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804878C movs r0, #0xcf lsls r0, r0, #3 adds r1, r1, r0 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x5f beq _0804878C movs r1, #1 str r1, [sp, #0x18] _0804878C: ldr r2, _080487E8 @ =0x020314E0 ldr r0, [r2] adds r1, r5, r6 ldr r2, _080487EC @ =0x0000063C adds r0, r0, r2 adds r0, r0, r1 movs r1, #1 strb r1, [r0] adds r6, #0x14 adds r3, #0x18 adds r4, #1 cmp r4, r7 ble _08048742 _080487A6: ldr r3, [sp, #0x18] cmp r3, #0 beq _080487B2 movs r0, #0xa1 bl m4aSongNumStart _080487B2: movs r7, #0 movs r3, #0 ldr r0, _080487E8 @ =0x020314E0 ldr r5, [r0] ldr r4, _080487F0 @ =0x0000063A adds r1, r5, r4 ldrh r1, [r1] cmp r1, #0xd4 beq _080487CE ldr r0, [sp, #0x14] cmp r0, #0 bne _080487CE bl _0804908E _080487CE: movs r1, #0xc7 lsls r1, r1, #3 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #6 bhi _08048894 lsls r0, r0, #2 ldr r1, _080487F4 @ =_080487F8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080487E8: .4byte 0x020314E0 _080487EC: .4byte 0x0000063C _080487F0: .4byte 0x0000063A _080487F4: .4byte _080487F8 _080487F8: @ jump table .4byte _08048814 @ case 0 .4byte _08048828 @ case 1 .4byte _08048844 @ case 2 .4byte _08048860 @ case 3 .4byte _08048874 @ case 4 .4byte _08048890 @ case 5 .4byte _08048894 @ case 6 _08048814: ldr r2, _08048820 @ =0x020314E0 ldr r0, [r2] ldr r3, _08048824 @ =0x0000062A adds r0, r0, r3 b _0804884C .align 2, 0 _08048820: .4byte 0x020314E0 _08048824: .4byte 0x0000062A _08048828: ldr r4, _08048838 @ =0x020314E0 ldr r0, [r4] ldr r7, _0804883C @ =0x0000062B adds r0, r0, r7 ldrb r7, [r0] ldr r3, _08048840 @ =0x000B71B0 b _08048894 .align 2, 0 _08048838: .4byte 0x020314E0 _0804883C: .4byte 0x0000062B _08048840: .4byte 0x000B71B0 _08048844: ldr r1, _08048854 @ =0x020314E0 ldr r0, [r1] ldr r2, _08048858 @ =0x0000062C adds r0, r0, r2 _0804884C: ldrb r7, [r0] ldr r3, _0804885C @ =0x0007A120 b _08048894 .align 2, 0 _08048854: .4byte 0x020314E0 _08048858: .4byte 0x0000062C _0804885C: .4byte 0x0007A120 _08048860: ldr r3, _0804886C @ =0x020314E0 ldr r0, [r3] ldr r4, _08048870 @ =0x0000062D adds r0, r0, r4 b _0804887C .align 2, 0 _0804886C: .4byte 0x020314E0 _08048870: .4byte 0x0000062D _08048874: ldr r7, _08048884 @ =0x020314E0 ldr r0, [r7] ldr r1, _08048888 @ =0x0000062E adds r0, r0, r1 _0804887C: ldrb r7, [r0] ldr r3, _0804888C @ =0x000186A0 b _08048894 .align 2, 0 _08048884: .4byte 0x020314E0 _08048888: .4byte 0x0000062E _0804888C: .4byte 0x000186A0 _08048890: movs r7, #0 movs r3, #0 _08048894: ldr r2, _08048900 @ =0x020314E0 ldr r0, [r2] movs r4, #0xc7 lsls r4, r4, #3 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 ble _080488AA b _08048B80 _080488AA: mov r5, sp adds r5, #2 adds r0, r7, #0 muls r0, r3, r0 mov r8, r0 movs r1, #7 add r1, sp mov sl, r1 add r2, sp, #8 mov sb, r2 movs r1, #0 mov r0, sp adds r0, #9 _080488C4: strb r1, [r0] subs r0, #1 cmp r0, sp bge _080488C4 mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __divsi3 strb r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #2 movs r0, #0 ldrsb r0, [r5, r0] b _08048914 .align 2, 0 _08048900: .4byte 0x020314E0 _08048904: subs r4, #1 cmp r4, #0 ble _0804891C mov r3, sp adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048914: cmp r0, #0 ble _08048904 cmp r0, #0xa beq _08048904 _0804891C: movs r5, #0 cmp r5, r4 bgt _08048942 ldr r6, _080489FC @ =0x020314E0 movs r3, #0x13 movs r2, #0xcf lsls r2, r2, #3 _0804892A: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _0804892A _08048942: movs r1, #0 mov r0, sp adds r0, #9 _08048948: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048948 mov r7, r8 ldr r1, _080489FC @ =0x020314E0 ldr r0, [r1] ldr r2, _08048A00 @ =0x00000634 adds r0, r0, r2 str r7, [r0] mov r5, sp ldr r4, _08048A04 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048A08 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048A0C @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048A10 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #7 mov r3, sl movs r0, #0 ldrsb r0, [r3, r0] b _08048A24 .align 2, 0 _080489FC: .4byte 0x020314E0 _08048A00: .4byte 0x00000634 _08048A04: .4byte 0x00989680 _08048A08: .4byte 0x000F4240 _08048A0C: .4byte 0x000186A0 _08048A10: .4byte 0x00002710 _08048A14: subs r4, #1 cmp r4, #0 ble _08048A2C mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048A24: cmp r0, #0 ble _08048A14 cmp r0, #0xa beq _08048A14 _08048A2C: movs r5, #0 cmp r5, r4 bgt _08048A50 ldr r6, _08048B1C @ =0x020314E0 movs r3, #0x13 ldr r2, _08048B20 @ =0x0000068C _08048A38: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048A38 _08048A50: movs r1, #0 mov r0, sp adds r0, #9 _08048A56: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048A56 ldr r1, _08048B1C @ =0x020314E0 ldr r0, [r1] movs r2, #0xc6 lsls r2, r2, #3 adds r0, r0, r2 ldr r7, [r0] mov r5, sp ldr r4, _08048B24 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B28 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B2C @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B30 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048B34 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 mov r3, sb movs r0, #0 ldrsb r0, [r3, r0] b _08048B48 .align 2, 0 _08048B1C: .4byte 0x020314E0 _08048B20: .4byte 0x0000068C _08048B24: .4byte 0x05F5E100 _08048B28: .4byte 0x00989680 _08048B2C: .4byte 0x000F4240 _08048B30: .4byte 0x000186A0 _08048B34: .4byte 0x00002710 _08048B38: subs r4, #1 cmp r4, #0 ble _08048B50 mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048B48: cmp r0, #0 ble _08048B38 cmp r0, #0xa beq _08048B38 _08048B50: movs r5, #0 cmp r5, r4 ble _08048B58 b _0804908E _08048B58: ldr r6, _08048B7C @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08048B60: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048B60 b _0804908E .align 2, 0 _08048B7C: .4byte 0x020314E0 _08048B80: cmp r0, #5 beq _08048B86 b _08048CB8 _08048B86: add r0, sp, #8 mov sb, r0 movs r1, #0 mov r0, sp adds r0, #9 _08048B90: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048B90 ldr r1, _08048C58 @ =0x020314E0 ldr r0, [r1] movs r2, #0xc6 lsls r2, r2, #3 adds r0, r0, r2 ldr r7, [r0] mov r5, sp ldr r4, _08048C5C @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C60 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C64 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C68 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048C6C @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 mov r3, sb movs r0, #0 ldrsb r0, [r3, r0] b _08048C80 .align 2, 0 _08048C58: .4byte 0x020314E0 _08048C5C: .4byte 0x05F5E100 _08048C60: .4byte 0x00989680 _08048C64: .4byte 0x000F4240 _08048C68: .4byte 0x000186A0 _08048C6C: .4byte 0x00002710 _08048C70: subs r4, #1 cmp r4, #0 ble _08048C88 mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048C80: cmp r0, #0 ble _08048C70 cmp r0, #0xa beq _08048C70 _08048C88: movs r5, #0 cmp r5, r4 ble _08048C90 b _0804908E _08048C90: ldr r6, _08048CB4 @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08048C98: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048C98 b _0804908E .align 2, 0 _08048CB4: .4byte 0x020314E0 _08048CB8: add r0, sp, #8 mov sb, r0 movs r1, #5 add r1, sp mov r8, r1 movs r2, #0xa add r2, sp mov sl, r2 movs r1, #0 mov r0, sp adds r0, #9 _08048CCE: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048CCE ldr r3, _08048D94 @ =0x020314E0 ldr r0, [r3] movs r4, #0xc6 lsls r4, r4, #3 adds r0, r0, r4 ldr r7, [r0] mov r5, sp ldr r4, _08048D98 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048D9C @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048DA0 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048DA4 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048DA8 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 mov r7, sb movs r0, #0 ldrsb r0, [r7, r0] b _08048DBC .align 2, 0 _08048D94: .4byte 0x020314E0 _08048D98: .4byte 0x05F5E100 _08048D9C: .4byte 0x00989680 _08048DA0: .4byte 0x000F4240 _08048DA4: .4byte 0x000186A0 _08048DA8: .4byte 0x00002710 _08048DAC: subs r4, #1 cmp r4, #0 ble _08048DC4 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048DBC: cmp r0, #0 ble _08048DAC cmp r0, #0xa beq _08048DAC _08048DC4: movs r5, #0 cmp r5, r4 bgt _08048DEA ldr r6, _08048E7C @ =0x020314E0 movs r3, #0x13 movs r2, #0xcf lsls r2, r2, #3 _08048DD2: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048DD2 _08048DEA: movs r1, #0 mov r0, sp adds r0, #9 _08048DF0: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048DF0 ldr r1, _08048E7C @ =0x020314E0 ldr r0, [r1] ldr r2, _08048E80 @ =0x0000062F adds r0, r0, r2 ldrb r7, [r0] mov r5, sp ldr r1, _08048E84 @ =0x000F4240 adds r0, r7, #0 bl __modsi3 ldr r4, _08048E88 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08048E8C @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #5 mov r3, r8 movs r0, #0 ldrsb r0, [r3, r0] b _08048EA0 .align 2, 0 _08048E7C: .4byte 0x020314E0 _08048E80: .4byte 0x0000062F _08048E84: .4byte 0x000F4240 _08048E88: .4byte 0x000186A0 _08048E8C: .4byte 0x00002710 _08048E90: subs r4, #1 cmp r4, #0 ble _08048EA8 mov r7, sp adds r0, r7, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08048EA0: cmp r0, #0 ble _08048E90 cmp r0, #0xa beq _08048E90 _08048EA8: movs r5, #0 cmp r5, r4 bgt _08048ECC ldr r6, _08049020 @ =0x020314E0 movs r3, #0x13 ldr r2, _08049024 @ =0x0000068C _08048EB4: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08048EB4 _08048ECC: movs r1, #0 mov r0, sp adds r0, #0xa _08048ED2: strb r1, [r0] subs r0, #1 cmp r0, sp bge _08048ED2 movs r7, #0 movs r5, #0 ldr r1, _08049020 @ =0x020314E0 ldr r0, [r1] ldr r1, _08049028 @ =0x0000062F adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _08048F24 ldr r2, _08049020 @ =0x020314E0 adds r6, r1, #0 _08048EF0: ldr r4, [r2] movs r3, #0xc6 lsls r3, r3, #3 adds r0, r4, r3 ldr r0, [r0] adds r7, r7, r0 adds r0, r7, #0 ldr r1, _0804902C @ =0x0BEBC200 str r2, [sp, #0x20] bl __divsi3 ldr r2, [sp, #0x20] cmp r0, #0 ble _08048F12 ldr r0, _08049030 @ =0xF4143E00 adds r7, r7, r0 adds r5, #2 _08048F12: adds r1, r4, r6 ldrb r0, [r1] subs r0, #1 strb r0, [r1] ldr r0, [r2] adds r0, r0, r6 ldrb r0, [r0] cmp r0, #0 bne _08048EF0 _08048F24: ldr r1, _08049034 @ =0x05F5E100 mov r8, r1 adds r0, r7, #0 bl __divsi3 cmp r0, #0 ble _08048F38 ldr r2, _08049038 @ =0xFA0A1F00 adds r7, r7, r2 adds r5, #1 _08048F38: ldr r3, _08049020 @ =0x020314E0 ldr r0, [r3] movs r4, #0xd7 lsls r4, r4, #3 adds r1, r0, r4 str r5, [r1] ldr r1, _0804903C @ =0x000006B4 adds r0, r0, r1 str r7, [r0] mov r4, sp movs r6, #0xfa lsls r6, r6, #2 adds r0, r5, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #0xa] mov r4, sp adds r0, r5, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 adds r0, #0xa strb r0, [r4, #9] mov r4, sp adds r0, r5, #0 movs r1, #0xa bl __modsi3 strb r0, [r4, #8] mov r5, sp adds r0, r7, #0 mov r1, r8 bl __modsi3 ldr r4, _08049040 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049044 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049048 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _0804904C @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 adds r1, r6, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #0xa mov r2, sl movs r0, #0 ldrsb r0, [r2, r0] b _08049060 .align 2, 0 _08049020: .4byte 0x020314E0 _08049024: .4byte 0x0000068C _08049028: .4byte 0x0000062F _0804902C: .4byte 0x0BEBC200 _08049030: .4byte 0xF4143E00 _08049034: .4byte 0x05F5E100 _08049038: .4byte 0xFA0A1F00 _0804903C: .4byte 0x000006B4 _08049040: .4byte 0x00989680 _08049044: .4byte 0x000F4240 _08049048: .4byte 0x000186A0 _0804904C: .4byte 0x00002710 _08049050: subs r4, #1 cmp r4, #0 ble _08049068 mov r3, sp adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08049060: cmp r0, #0 ble _08049050 cmp r0, #0xa beq _08049050 _08049068: movs r5, #0 cmp r5, r4 bgt _0804908E ldr r6, _080490FC @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08049076: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08049076 _0804908E: ldr r1, [sp, #0x1c] ldr r2, _08049100 @ =0xFFA60000 adds r0, r1, r2 lsrs r0, r0, #0x10 cmp r0, #0x32 bls _0804909C b _0804948A _0804909C: ldr r3, _080490FC @ =0x020314E0 ldr r1, [r3] movs r4, #0xc7 lsls r4, r4, #3 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #4 ble _080490B2 b _08049250 _080490B2: ldr r3, _08049104 @ =0x00000634 adds r0, r1, r3 ldr r0, [r0] cmp r0, #0 beq _080490C4 ldr r7, _08049108 @ =0x0000063A adds r1, r1, r7 movs r0, #0x64 strh r0, [r1] _080490C4: ldr r0, _0804910C @ =0x0200B0C0 ldr r2, [r0, #0x4c] movs r0, #1 ands r2, r0 cmp r2, #0 bne _08049134 ldr r0, _080490FC @ =0x020314E0 ldr r1, [r0] adds r4, r1, r3 ldr r3, [r4] ldr r0, _08049110 @ =0x00030D3F cmp r3, r0 bls _0804911C ldr r2, _08049114 @ =0xFFFCF2C0 adds r0, r3, r2 str r0, [r4] movs r3, #0xc6 lsls r3, r3, #3 adds r1, r1, r3 ldr r0, [r1] ldr r4, _08049118 @ =0x00030D40 adds r0, r0, r4 str r0, [r1] movs r0, #0x91 bl m4aSongNumStart b _08049134 .align 2, 0 _080490FC: .4byte 0x020314E0 _08049100: .4byte 0xFFA60000 _08049104: .4byte 0x00000634 _08049108: .4byte 0x0000063A _0804910C: .4byte 0x0200B0C0 _08049110: .4byte 0x00030D3F _08049114: .4byte 0xFFFCF2C0 _08049118: .4byte 0x00030D40 _0804911C: cmp r3, #0 beq _08049134 movs r7, #0xc6 lsls r7, r7, #3 adds r1, r1, r7 ldr r0, [r1] adds r0, r0, r3 str r0, [r1] str r2, [r4] movs r0, #0x91 bl m4aSongNumStart _08049134: ldr r6, _080491F0 @ =0x020314E0 ldr r0, [r6] movs r1, #0xc6 lsls r1, r1, #3 adds r0, r0, r1 ldr r7, [r0] mov r5, sp ldr r4, _080491F4 @ =0x05F5E100 adds r0, r7, #0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080491F8 @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _080491FC @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049200 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049204 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r4, #0xfa lsls r4, r4, #2 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r5, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #8 add r0, sp, #8 b _08049212 .align 2, 0 _080491F0: .4byte 0x020314E0 _080491F4: .4byte 0x05F5E100 _080491F8: .4byte 0x00989680 _080491FC: .4byte 0x000F4240 _08049200: .4byte 0x000186A0 _08049204: .4byte 0x00002710 _08049208: subs r4, #1 cmp r4, #0 ble _08049220 mov r2, sp adds r0, r2, r4 _08049212: ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08049208 cmp r0, #0xa beq _08049208 _08049220: movs r5, #0 cmp r5, r4 ble _08049228 b _0804948A _08049228: ldr r6, _0804924C @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08049230: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08049230 b _0804948A .align 2, 0 _0804924C: .4byte 0x020314E0 _08049250: cmp r0, #6 beq _08049256 b _0804948A _08049256: ldr r0, _080492A4 @ =0x00000639 adds r1, r1, r0 movs r0, #1 strb r0, [r1] ldr r2, _080492A8 @ =0x020314E0 ldr r1, [r2] ldr r3, _080492AC @ =0x000006B4 adds r0, r1, r3 ldr r0, [r0] cmp r0, #0 bne _08049278 movs r4, #0xd7 lsls r4, r4, #3 adds r0, r1, r4 ldr r0, [r0] cmp r0, #0 beq _08049280 _08049278: ldr r7, _080492B0 @ =0x0000063A adds r1, r1, r7 movs r0, #0x64 strh r0, [r1] _08049280: ldr r0, _080492B4 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08049302 ldr r0, _080492A8 @ =0x020314E0 ldr r2, [r0] ldr r0, _080492AC @ =0x000006B4 adds r5, r2, r0 ldr r3, [r5] ldr r0, _080492B8 @ =0x00030D3F cmp r3, r0 bls _080492C0 ldr r1, _080492BC @ =0xFFFCF2C0 adds r0, r3, r1 b _080492D6 .align 2, 0 _080492A4: .4byte 0x00000639 _080492A8: .4byte 0x020314E0 _080492AC: .4byte 0x000006B4 _080492B0: .4byte 0x0000063A _080492B4: .4byte 0x0200B0C0 _080492B8: .4byte 0x00030D3F _080492BC: .4byte 0xFFFCF2C0 _080492C0: movs r7, #0xd7 lsls r7, r7, #3 adds r4, r2, r7 ldr r1, [r4] cmp r1, #0 beq _080492F0 subs r0, r1, #1 str r0, [r4] ldr r0, [r5] ldr r1, _080492E8 @ =0x05F2D3C0 adds r0, r0, r1 _080492D6: str r0, [r5] ldr r0, [r2, #0x44] ldr r3, _080492EC @ =0x00030D40 adds r0, r0, r3 str r0, [r2, #0x44] movs r0, #0x91 bl m4aSongNumStart b _08049302 .align 2, 0 _080492E8: .4byte 0x05F2D3C0 _080492EC: .4byte 0x00030D40 _080492F0: cmp r3, #0 beq _08049302 ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] str r1, [r5] movs r0, #0x91 bl m4aSongNumStart _08049302: movs r4, #0xa add r4, sp mov sl, r4 movs r1, #0 mov r0, sl _0804930C: strb r1, [r0] subs r0, #1 cmp r0, sp bge _0804930C movs r5, #0 ldr r7, _0804942C @ =0x020314E0 movs r6, #0xd4 lsls r6, r6, #3 ldr r4, _08049430 @ =0x086B0150 movs r3, #0xc7 lsls r3, r3, #3 _08049322: ldr r0, [r7] adds r2, r0, r6 adds r2, r2, r5 adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #2 adds r0, r5, r0 adds r0, r0, r4 ldrb r0, [r0] strb r0, [r2] adds r5, #1 cmp r5, #0x13 ble _08049322 ldr r7, _0804942C @ =0x020314E0 ldr r0, [r7] movs r2, #0xd7 lsls r2, r2, #3 adds r1, r0, r2 ldr r5, [r1] ldr r3, _08049434 @ =0x000006B4 adds r0, r0, r3 ldr r7, [r0] mov r4, sp movs r6, #0xfa lsls r6, r6, #2 adds r0, r5, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #0xa] mov r4, sp adds r0, r5, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 adds r0, #0xa strb r0, [r4, #9] mov r4, sp adds r0, r5, #0 movs r1, #0xa bl __modsi3 strb r0, [r4, #8] mov r5, sp ldr r1, _08049438 @ =0x05F5E100 adds r0, r7, #0 bl __modsi3 ldr r4, _0804943C @ =0x00989680 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #7] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049440 @ =0x000F4240 adds r1, r4, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #6] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049444 @ =0x000186A0 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #5] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 ldr r4, _08049448 @ =0x00002710 adds r1, r4, #0 bl __divsi3 strb r0, [r5, #4] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __modsi3 adds r1, r6, #0 bl __divsi3 adds r0, #0xa strb r0, [r5, #3] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __modsi3 movs r1, #0x64 bl __divsi3 strb r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __modsi3 movs r1, #0xa bl __divsi3 strb r0, [r4, #1] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __modsi3 strb r0, [r4] movs r4, #0xa mov r7, sl movs r0, #0 ldrsb r0, [r7, r0] b _0804945C .align 2, 0 _0804942C: .4byte 0x020314E0 _08049430: .4byte 0x086B0150 _08049434: .4byte 0x000006B4 _08049438: .4byte 0x05F5E100 _0804943C: .4byte 0x00989680 _08049440: .4byte 0x000F4240 _08049444: .4byte 0x000186A0 _08049448: .4byte 0x00002710 _0804944C: subs r4, #1 cmp r4, #0 ble _08049464 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _0804945C: cmp r0, #0 ble _0804944C cmp r0, #0xa beq _0804944C _08049464: movs r5, #0 cmp r5, r4 bgt _0804948A ldr r6, _08049584 @ =0x020314E0 movs r3, #0x13 movs r2, #0xd4 lsls r2, r2, #3 _08049472: ldr r1, [r6] subs r0, r3, r5 adds r1, r1, r2 adds r1, r1, r0 mov r7, sp adds r0, r7, r5 ldrb r0, [r0] adds r0, #0x1b strb r0, [r1] adds r5, #1 cmp r5, r4 ble _08049472 _0804948A: ldr r1, _08049584 @ =0x020314E0 ldr r0, [r1] ldr r2, _08049588 @ =0x0000063A adds r1, r0, r2 ldrh r0, [r1] cmp r0, #0 beq _0804949C subs r0, #1 strh r0, [r1] _0804949C: ldr r6, _0804958C @ =0x0200BA30 ldrh r0, [r6] cmp r0, #0 beq _08049572 movs r0, #0x78 strh r0, [r6, #2] ldr r3, _08049584 @ =0x020314E0 ldr r0, [r3] adds r0, #0xfc ldrh r0, [r0] adds r0, #0x26 strh r0, [r6, #4] ldr r4, [sp, #0x10] lsls r4, r4, #0x10 mov r8, r4 ldr r7, _08049590 @ =0x03005000 ldr r0, _08049594 @ =0xFFFFFE00 mov sl, r0 adds r4, r6, #0 adds r4, #8 ldr r1, _08049598 @ =0x000001FF mov sb, r1 movs r5, #0xd _080494CA: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r7 movs r2, #2 ldrsh r1, [r4, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 mov r0, sb ands r1, r0 ldrh r2, [r3, #2] mov r0, sl ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _080494CA movs r4, #0 mov r3, r8 asrs r3, r3, #0x10 mov sl, r3 ldr r7, _08049590 @ =0x03005000 ldr r0, _08049594 @ =0xFFFFFE00 mov sb, r0 ldr r1, _08049598 @ =0x000001FF mov r8, r1 _08049510: movs r0, #0xb8 muls r0, r4, r0 ldr r2, _0804959C @ =0x0200B808 adds r6, r0, r2 movs r0, #0x68 strh r0, [r6, #2] lsls r1, r4, #4 ldr r3, _08049584 @ =0x020314E0 ldr r0, [r3] adds r0, #0xfc ldrh r0, [r0] adds r0, #0x40 adds r1, r1, r0 add r1, sl strh r1, [r6, #4] adds r4, #1 mov ip, r4 adds r4, r6, #0 adds r4, #8 movs r5, #4 _08049538: ldrh r2, [r4] lsls r2, r2, #3 adds r2, r2, r7 movs r0, #2 ldrsh r1, [r4, r0] movs r3, #2 ldrsh r0, [r6, r3] adds r1, r1, r0 mov r0, r8 ands r1, r0 ldrh r3, [r2, #2] mov r0, sb ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r7 ldrb r0, [r6, #4] ldrb r2, [r4, #4] adds r0, r0, r2 strb r0, [r1] adds r4, #8 subs r5, #1 cmp r5, #0 bge _08049538 mov r4, ip cmp r4, #2 ble _08049510 _08049572: add sp, #0x28 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08049584: .4byte 0x020314E0 _08049588: .4byte 0x0000063A _0804958C: .4byte 0x0200BA30 _08049590: .4byte 0x03005000 _08049594: .4byte 0xFFFFFE00 _08049598: .4byte 0x000001FF _0804959C: .4byte 0x0200B808 thumb_func_start sub_495A0 sub_495A0: @ 0x080495A0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r4, _080495DC @ =0xFFFFFDFC add sp, r4 ldr r2, _080495E0 @ =0x020314E0 ldr r0, [r2] ldr r1, _080495E4 @ =0x00001104 adds r0, r0, r1 movs r3, #0 movs r1, #1 strb r1, [r0] ldr r1, [r2] ldr r2, _080495E8 @ =0x0000131C adds r0, r1, r2 str r3, [r0] ldr r2, _080495EC @ =0x02032EE0 ldr r0, [r2, #4] cmp r0, #0 blt _080495F4 ldr r5, _080495F0 @ =0x00000F4C adds r1, r1, r5 ldr r0, [r2] str r0, [r1] adds r0, r2, #0 bl m4aMPlayStop b _080495FA .align 2, 0 _080495DC: .4byte 0xFFFFFDFC _080495E0: .4byte 0x020314E0 _080495E4: .4byte 0x00001104 _080495E8: .4byte 0x0000131C _080495EC: .4byte 0x02032EE0 _080495F0: .4byte 0x00000F4C _080495F4: ldr r2, _08049628 @ =0x00000F4C adds r0, r1, r2 str r3, [r0] _080495FA: bl m4aMPlayAllStop movs r0, #0xa5 bl m4aSongNumStart ldr r2, _0804962C @ =0x0200B0C0 ldrb r0, [r2, #4] cmp r0, #1 bhi _0804963C ldr r0, _08049630 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0x68 ldrh r1, [r1] adds r0, #0x6a strh r1, [r0] ldrb r0, [r2, #4] cmp r0, #0 bne _08049634 bl sub_4E814 b _0804963C .align 2, 0 _08049628: .4byte 0x00000F4C _0804962C: .4byte 0x0200B0C0 _08049630: .4byte 0x020314E0 _08049634: cmp r0, #1 bne _0804963C bl sub_4F814 _0804963C: ldr r4, _08049708 @ =0x020314E0 ldr r2, [r4] ldr r3, _0804970C @ =0x0200B0C0 ldrh r1, [r3, #0x38] ldr r5, _08049710 @ =0x00001106 adds r0, r2, r5 ldrh r5, [r0] strh r1, [r0] ldrh r1, [r3, #0x3a] ldr r5, _08049714 @ =0x00001108 adds r0, r2, r5 ldrh r5, [r0] strh r1, [r0] ldrh r1, [r3, #0x3c] ldr r5, _08049718 @ =0x0000110A adds r0, r2, r5 ldrh r5, [r0] strh r1, [r0] ldrh r1, [r3, #0x2c] ldr r5, _0804971C @ =0x0000110C adds r0, r2, r5 strh r1, [r0] ldrh r1, [r3, #0x26] adds r5, #2 adds r0, r2, r5 strh r1, [r0] ldr r1, _08049720 @ =0x040000D4 ldr r0, _08049724 @ =0x05000200 str r0, [r1] ldr r0, _08049728 @ =0x0000111A adds r2, r2, r0 str r2, [r1, #4] ldr r0, _0804972C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] movs r1, #0 add r6, sp, #0x200 movs r2, #0x9c lsls r2, r2, #1 add r2, sp mov sl, r2 _0804968E: movs r5, #0 lsls r1, r1, #0x10 mov sb, r1 mov r0, sb asrs r0, r0, #0x10 mov r8, r0 _0804969A: lsls r7, r5, #0x10 mov r1, r8 cmp r1, #9 bne _080496A8 asrs r0, r7, #0x10 cmp r0, #0xc beq _08049730 _080496A8: ldr r2, _08049708 @ =0x020314E0 ldr r4, [r2] asrs r5, r7, #0xf mov r1, r8 lsls r0, r1, #5 adds r5, r5, r0 ldr r2, _08049728 @ =0x0000111A adds r4, r4, r2 adds r4, r4, r5 ldrh r1, [r4] movs r0, #0x1f ands r0, r1 lsls r0, r0, #1 movs r1, #5 bl __divsi3 strb r0, [r6] ldrh r0, [r4] movs r2, #0xf8 lsls r2, r2, #2 adds r1, r2, #0 ands r0, r1 lsrs r0, r0, #4 movs r1, #5 bl __divsi3 strb r0, [r6, #1] ldrh r0, [r4] movs r2, #0xf8 lsls r2, r2, #7 adds r1, r2, #0 ands r0, r1 lsrs r0, r0, #9 movs r1, #5 bl __divsi3 strb r0, [r6, #2] mov r0, sp adds r2, r0, r5 ldrb r1, [r6] ldrb r0, [r6, #1] lsls r0, r0, #5 orrs r1, r0 ldrb r0, [r6, #2] lsls r0, r0, #0xa orrs r1, r0 strh r1, [r2] b _08049736 .align 2, 0 _08049708: .4byte 0x020314E0 _0804970C: .4byte 0x0200B0C0 _08049710: .4byte 0x00001106 _08049714: .4byte 0x00001108 _08049718: .4byte 0x0000110A _0804971C: .4byte 0x0000110C _08049720: .4byte 0x040000D4 _08049724: .4byte 0x05000200 _08049728: .4byte 0x0000111A _0804972C: .4byte 0x80000100 _08049730: ldr r0, _08049770 @ =0x00007FFF mov r1, sl strh r0, [r1] _08049736: movs r2, #0x80 lsls r2, r2, #9 adds r0, r7, r2 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _0804969A adds r0, r2, #0 add r0, sb lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xf ble _0804968E ldr r1, _08049774 @ =0x040000D4 mov r5, sp str r5, [r1] ldr r0, _08049778 @ =0x05000200 str r0, [r1, #4] ldr r0, _0804977C @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08049780 @ =0x0200B0C0 ldrb r3, [r0, #4] cmp r3, #1 bhi _08049784 bl sub_1D4D0 b _080497A0 .align 2, 0 _08049770: .4byte 0x00007FFF _08049774: .4byte 0x040000D4 _08049778: .4byte 0x05000200 _0804977C: .4byte 0x80000100 _08049780: .4byte 0x0200B0C0 _08049784: cmp r3, #2 bne _0804978E bl sub_356A0 b _080497A0 _0804978E: cmp r3, #4 bne _08049798 bl sub_3ADA0 b _080497A0 _08049798: cmp r3, #5 bne _080497A0 bl sub_3E5D0 _080497A0: movs r0, #1 bl sub_11F0 movs r3, #0x81 lsls r3, r3, #2 add sp, r3 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_497BC sub_497BC: @ 0x080497BC push {lr} ldr r1, _08049824 @ =0x0200B0C0 ldr r0, _08049828 @ =0x020314E0 ldr r2, [r0] ldr r3, _0804982C @ =0x00001106 adds r0, r2, r3 ldrh r0, [r0] ldrh r3, [r1, #0x38] strh r0, [r1, #0x38] ldr r3, _08049830 @ =0x00001108 adds r0, r2, r3 ldrh r0, [r0] ldrh r3, [r1, #0x3a] strh r0, [r1, #0x3a] ldr r3, _08049834 @ =0x0000110A adds r0, r2, r3 ldrh r0, [r0] ldrh r3, [r1, #0x3c] strh r0, [r1, #0x3c] ldr r3, _08049838 @ =0x0000110C adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, #0x2c] adds r3, #2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, #0x26] ldr r1, _0804983C @ =0x040000D4 adds r3, #0xc adds r0, r2, r3 str r0, [r1] ldr r0, _08049840 @ =0x05000200 str r0, [r1, #4] ldr r0, _08049844 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _08049848 @ =0x00000F4C adds r2, r2, r0 ldr r0, [r2] cmp r0, #0 beq _08049814 ldr r0, _0804984C @ =0x02032EE0 bl m4aMPlayContinue _08049814: movs r0, #0xa6 bl m4aSongNumStart movs r0, #0 bl sub_11F0 pop {r0} bx r0 .align 2, 0 _08049824: .4byte 0x0200B0C0 _08049828: .4byte 0x020314E0 _0804982C: .4byte 0x00001106 _08049830: .4byte 0x00001108 _08049834: .4byte 0x0000110A _08049838: .4byte 0x0000110C _0804983C: .4byte 0x040000D4 _08049840: .4byte 0x05000200 _08049844: .4byte 0x80000100 _08049848: .4byte 0x00000F4C _0804984C: .4byte 0x02032EE0 thumb_func_start sub_49850 sub_49850: @ 0x08049850 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _08049A20 @ =0x0200B3B8 mov ip, r0 mov r5, ip adds r5, #8 ldr r4, _08049A24 @ =0x03005000 mov r3, ip ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 movs r0, #2 ldrsh r2, [r5, r0] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] ldr r6, _08049A2C @ =0xFFFFFE00 adds r0, r6, #0 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] mov r1, ip ldrh r0, [r1, #8] lsls r0, r0, #3 adds r0, r0, r4 ldrh r1, [r5, #4] strb r1, [r0] mov r3, ip ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #1] movs r5, #4 rsbs r5, r5, #0 adds r0, r5, #0 ands r0, r2 strb r0, [r1, #1] ldrh r1, [r3, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r2, [r1, #3] movs r3, #0xf rsbs r3, r3, #0 adds r0, r3, #0 ands r0, r2 strb r0, [r1, #3] movs r0, #1 movs r1, #0xb8 add r1, ip mov sl, r1 adds r7, r4, #0 mov sb, r6 mov r8, r5 adds r6, r3, #0 _080498C4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r3, ip adds r5, r3, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 movs r0, #2 ldrsh r2, [r5, r0] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] mov r0, sb ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r7 ldrh r1, [r5, #4] strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #1] mov r0, r8 ands r0, r2 strb r0, [r1, #1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r7 ldrb r2, [r1, #3] adds r0, r6, #0 ands r0, r2 strb r0, [r1, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _080498C4 movs r0, #5 ldr r6, _08049A24 @ =0x03005000 ldr r1, _08049A2C @ =0xFFFFFE00 mov sb, r1 movs r3, #4 rsbs r3, r3, #0 mov r8, r3 movs r7, #0xf rsbs r7, r7, #0 _0804992E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r1, ip adds r5, r1, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 movs r3, #2 ldrsh r2, [r5, r3] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] mov r0, sb ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r6 ldrh r1, [r5, #4] strb r1, [r0] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #1] mov r0, r8 ands r0, r2 strb r0, [r1, #1] ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 ldrb r2, [r1, #3] adds r0, r7, #0 ands r0, r2 strb r0, [r1, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xa ble _0804992E mov ip, sl movs r0, #0 ldr r6, _08049A24 @ =0x03005000 ldr r7, _08049A2C @ =0xFFFFFE00 _0804998E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r1, ip adds r5, r1, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 movs r3, #2 ldrsh r2, [r5, r3] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] adds r0, r7, #0 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r6 ldrh r1, [r5, #4] strb r1, [r0] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _0804998E ldr r0, _08049A30 @ =0x0200B528 mov ip, r0 movs r0, #0 ldr r6, _08049A24 @ =0x03005000 ldr r7, _08049A2C @ =0xFFFFFE00 _080499D4: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 mov r1, ip adds r5, r1, r0 ldrh r1, [r5] lsls r1, r1, #3 adds r1, r1, r6 movs r3, #2 ldrsh r2, [r5, r3] ldr r3, _08049A28 @ =0x000001FF adds r0, r3, #0 ands r2, r0 ldrh r3, [r1, #2] adds r0, r7, #0 ands r0, r3 orrs r0, r2 strh r0, [r1, #2] ldrh r0, [r5] lsls r0, r0, #3 adds r0, r0, r6 ldrh r1, [r5, #4] strb r1, [r0] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _080499D4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08049A20: .4byte 0x0200B3B8 _08049A24: .4byte 0x03005000 _08049A28: .4byte 0x000001FF _08049A2C: .4byte 0xFFFFFE00 _08049A30: .4byte 0x0200B528 thumb_func_start sub_49A34 sub_49A34: @ 0x08049A34 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x14 movs r0, #8 mov r8, r0 ldr r1, _08049A94 @ =0x020314E0 ldr r0, [r1] ldr r3, _08049A98 @ =0x0000131C adds r0, r0, r3 ldr r2, [r0] mov ip, r1 cmp r2, #0 bne _08049A68 ldr r1, _08049A9C @ =0x0200B0C0 ldrh r0, [r1, #0x38] movs r0, #0xcf strh r0, [r1, #0x38] ldrh r0, [r1, #0x3c] movs r0, #0xa strh r0, [r1, #0x3c] strh r2, [r1, #0x2c] movs r0, #0x90 strh r0, [r1, #0x26] _08049A68: mov r1, ip ldr r0, [r1] adds r0, r0, r3 ldr r2, [r0] cmp r2, #0xf bhi _08049AA4 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #1 movs r0, #0xa0 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp] movs r2, #0x18 str r2, [sp, #4] ldr r3, _08049AA0 @ =0x0000FFFF mov sb, r3 mov r0, sb movs r5, #0x10 mov r8, r5 b _08049B48 .align 2, 0 _08049A94: .4byte 0x020314E0 _08049A98: .4byte 0x0000131C _08049A9C: .4byte 0x0200B0C0 _08049AA0: .4byte 0x0000FFFF _08049AA4: cmp r2, #0x17 bhi _08049B34 movs r0, #0 str r0, [sp] adds r0, r2, #0 subs r0, #0xf lsls r1, r0, #1 adds r1, r1, r0 movs r0, #0x18 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 str r0, [sp, #4] cmp r2, #0x11 bhi _08049AD0 ldr r1, _08049ACC @ =0x0000FFFF mov sb, r1 mov r0, sb b _08049B48 .align 2, 0 _08049ACC: .4byte 0x0000FFFF _08049AD0: cmp r2, #0x12 bne _08049AE4 movs r0, #9 ldr r2, _08049AE0 @ =0x0000FFF6 mov sb, r2 movs r3, #0x10 mov r8, r3 b _08049B48 .align 2, 0 _08049AE0: .4byte 0x0000FFF6 _08049AE4: cmp r2, #0x13 bne _08049AF8 movs r0, #9 ldr r5, _08049AF4 @ =0x0000FFF7 mov sb, r5 movs r1, #0x80 b _08049B46 .align 2, 0 _08049AF4: .4byte 0x0000FFF7 _08049AF8: cmp r2, #0x14 bne _08049B0C movs r0, #7 ldr r2, _08049B08 @ =0x0000FFF8 mov sb, r2 movs r3, #0xa0 mov r8, r3 b _08049B48 .align 2, 0 _08049B08: .4byte 0x0000FFF8 _08049B0C: cmp r2, #0x15 bne _08049B20 movs r0, #6 ldr r5, _08049B1C @ =0x0000FFF9 mov sb, r5 movs r1, #0xc0 b _08049B46 .align 2, 0 _08049B1C: .4byte 0x0000FFF9 _08049B20: cmp r2, #0x16 bne _08049B3C movs r0, #4 ldr r2, _08049B30 @ =0x0000FFFB mov sb, r2 movs r3, #0xe0 mov r8, r3 b _08049B48 .align 2, 0 _08049B30: .4byte 0x0000FFFB _08049B34: movs r2, #0 str r2, [sp] movs r3, #0 str r3, [sp, #4] _08049B3C: movs r0, #4 ldr r5, _08049C18 @ =0x0000FFFC mov sb, r5 movs r1, #0x80 lsls r1, r1, #1 _08049B46: mov r8, r1 _08049B48: ldr r6, _08049C1C @ =0x0200B3B8 lsls r0, r0, #0x10 asrs r1, r0, #0x10 str r0, [sp, #0xc] mov r2, r8 lsls r2, r2, #0x10 str r2, [sp, #0x10] ldr r3, [sp] lsls r3, r3, #0x10 mov sl, r3 ldr r5, [sp, #4] lsls r5, r5, #0x10 str r5, [sp, #8] cmp r1, #0 bge _08049B68 b _08049D92 _08049B68: movs r0, #0x64 strh r0, [r6, #2] adds r0, r1, #0 adds r0, #0x50 strh r0, [r6, #4] adds r7, r6, #0 adds r7, #8 ldr r4, _08049C20 @ =0x03005000 ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r0, #2 ldrsh r1, [r7, r0] adds r1, #0x64 ldr r3, _08049C24 @ =0x08137D78 mov sl, r3 movs r5, #0 ldrsh r0, [r3, r5] adds r1, r1, r0 ldr r3, _08049C28 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r0, _08049C2C @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r3, [r6, #8] lsls r3, r3, #3 adds r3, r3, r4 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 mov r5, sl ldrb r2, [r5, #2] adds r2, r2, r0 mov r1, ip ldr r0, [r1] ldr r5, _08049C30 @ =0x00001104 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r2, r2, r0 strb r2, [r3] ldrh r1, [r6, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r1, #1] movs r2, #3 orrs r0, r2 strb r0, [r1, #1] ldrh r2, [r6, #8] lsls r2, r2, #3 adds r2, r2, r4 ldrb r1, [r2, #3] movs r0, #0xf rsbs r0, r0, #0 ands r0, r1 movs r1, #0xa orrs r0, r1 strb r0, [r2, #3] ldr r5, _08049C34 @ =0x08137DA4 ldr r0, _08049C38 @ =0xFFFFFD08 adds r4, r6, r0 ldr r0, [r4, #0x4c] movs r1, #0x41 bl __umodsi3 movs r1, #5 bl __udivsi3 lsls r0, r0, #1 adds r0, r0, r5 ldrh r1, [r0] ldrb r0, [r4, #4] cmp r0, #1 bhi _08049C48 ldr r2, _08049C3C @ =0x040000D4 lsls r0, r1, #0x10 asrs r0, r0, #0xb ldr r1, _08049C40 @ =0x08510CAC adds r0, r0, r1 str r0, [r2] ldr r0, _08049C44 @ =0x060118C0 b _08049C56 .align 2, 0 _08049C18: .4byte 0x0000FFFC _08049C1C: .4byte 0x0200B3B8 _08049C20: .4byte 0x03005000 _08049C24: .4byte 0x08137D78 _08049C28: .4byte 0x000001FF _08049C2C: .4byte 0xFFFFFE00 _08049C30: .4byte 0x00001104 _08049C34: .4byte 0x08137DA4 _08049C38: .4byte 0xFFFFFD08 _08049C3C: .4byte 0x040000D4 _08049C40: .4byte 0x08510CAC _08049C44: .4byte 0x060118C0 _08049C48: ldr r2, _08049E84 @ =0x040000D4 lsls r0, r1, #0x10 asrs r0, r0, #0xb ldr r1, _08049E88 @ =0x08510CAC adds r0, r0, r1 str r0, [r2] ldr r0, _08049E8C @ =0x06010480 _08049C56: str r0, [r2, #4] ldr r0, _08049E90 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] movs r0, #0x64 strh r0, [r6, #2] ldr r1, [sp, #0xc] asrs r0, r1, #0x10 adds r0, #0x50 strh r0, [r6, #4] movs r0, #1 mov r2, sb lsls r2, r2, #0x10 mov sb, r2 mov r3, r8 lsls r3, r3, #0x10 str r3, [sp, #0x10] ldr r5, [sp] lsls r5, r5, #0x10 mov sl, r5 ldr r1, [sp, #4] lsls r1, r1, #0x10 str r1, [sp, #8] ldr r2, _08049E94 @ =0x03005000 mov ip, r2 movs r3, #0xf rsbs r3, r3, #0 mov r8, r3 _08049C8E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, ip movs r5, #2 ldrsh r1, [r7, r5] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 lsls r5, r4, #2 ldr r0, _08049E98 @ =0x08137D78 adds r5, r5, r0 movs r2, #0 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08049EA0 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r6, #4] ldrb r3, [r7, #4] adds r1, r1, r3 ldrb r0, [r5, #2] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #3] mov r0, r8 ands r0, r1 movs r1, #0xa orrs r0, r1 strb r0, [r2, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #4 ble _08049C8E movs r0, #0x64 strh r0, [r6, #2] mov r5, sb asrs r0, r5, #0x10 adds r0, #0x58 strh r0, [r6, #4] movs r0, #5 ldr r1, _08049E94 @ =0x03005000 mov ip, r1 ldr r2, _08049EA0 @ =0xFFFFFE00 mov sb, r2 movs r3, #0xf rsbs r3, r3, #0 mov r8, r3 _08049D1E: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 add r3, ip movs r5, #2 ldrsh r1, [r7, r5] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 lsls r5, r4, #2 ldr r0, _08049E98 @ =0x08137D78 adds r5, r5, r0 movs r2, #0 ldrsh r0, [r5, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r6, #4] ldrb r3, [r7, #4] adds r1, r1, r3 ldrb r0, [r5, #2] adds r0, r0, r1 strb r0, [r2] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r0, [r2, #1] movs r1, #3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r7] lsls r2, r2, #3 add r2, ip ldrb r1, [r2, #3] mov r0, r8 ands r0, r1 movs r1, #0xa orrs r0, r1 strb r0, [r2, #3] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #0xa ble _08049D1E _08049D92: movs r0, #0x80 lsls r0, r0, #1 ldr r5, [sp, #0x10] asrs r1, r5, #0x10 movs r2, #5 bl sub_7C0 ldr r6, _08049EA4 @ =0x0200B470 movs r0, #0x64 mov r2, sl asrs r1, r2, #0x10 subs r0, r0, r1 strh r0, [r6, #2] ldr r3, [sp, #8] asrs r0, r3, #0x10 adds r0, #0x50 strh r0, [r6, #4] movs r0, #0 ldr r5, _08049E94 @ =0x03005000 ldr r1, _08049EA0 @ =0xFFFFFE00 mov r8, r1 _08049DBC: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r2, #2 ldrsh r1, [r7, r2] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #1 ble _08049DBC ldr r6, _08049EA8 @ =0x0200B528 mov r3, sl asrs r0, r3, #0x10 adds r0, #0x44 strh r0, [r6, #2] movs r0, #0x6c ldr r5, [sp, #8] asrs r1, r5, #0x10 subs r0, r0, r1 strh r0, [r6, #4] movs r0, #0 ldr r1, _08049EAC @ =0x020314E0 mov ip, r1 ldr r5, _08049E94 @ =0x03005000 ldr r2, _08049EA0 @ =0xFFFFFE00 mov r8, r2 _08049E20: lsls r4, r0, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, #8 adds r7, r6, r0 ldrh r3, [r7] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r7, r0] movs r2, #2 ldrsh r0, [r6, r2] adds r1, r1, r0 ldr r2, _08049E9C @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r7] lsls r1, r1, #3 adds r1, r1, r5 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r4, #1 lsls r4, r4, #0x10 lsrs r0, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #2 ble _08049E20 mov r3, ip ldr r1, [r3] ldr r5, _08049EB0 @ =0x0000131C adds r1, r1, r5 ldr r0, [r1] adds r0, #1 str r0, [r1] add sp, #0x14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08049E84: .4byte 0x040000D4 _08049E88: .4byte 0x08510CAC _08049E8C: .4byte 0x06010480 _08049E90: .4byte 0x80000010 _08049E94: .4byte 0x03005000 _08049E98: .4byte 0x08137D78 _08049E9C: .4byte 0x000001FF _08049EA0: .4byte 0xFFFFFE00 _08049EA4: .4byte 0x0200B470 _08049EA8: .4byte 0x0200B528 _08049EAC: .4byte 0x020314E0 _08049EB0: .4byte 0x0000131C thumb_func_start sub_49EB4 sub_49EB4: @ 0x08049EB4 push {lr} ldr r1, _08049ECC @ =0x08137E04 ldr r0, _08049ED0 @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08049ECC: .4byte 0x08137E04 _08049ED0: .4byte 0x0200B0C0 thumb_func_start sub_49ED4 sub_49ED4: @ 0x08049ED4 push {r4, r5, r6, r7, lr} ldr r0, _08049F18 @ =0x0200B0C0 ldr r1, [r0, #0x4c] movs r0, #0xf movs r5, #0 ands r1, r0 cmp r5, r1 bge _08049EFA adds r4, r1, #0 _08049EE6: bl sub_C00 lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r4 blt _08049EE6 _08049EFA: bl sub_10C0 ldr r1, _08049F1C @ =0x020314E0 ldr r0, _08049F20 @ =0x02000000 str r0, [r1] bl sub_438 ldr r1, _08049F18 @ =0x0200B0C0 movs r0, #0 strb r0, [r1, #0xe] ldrb r0, [r1, #0xd] cmp r0, #0 beq _08049F24 movs r1, #0 b _08049F36 .align 2, 0 _08049F18: .4byte 0x0200B0C0 _08049F1C: .4byte 0x020314E0 _08049F20: .4byte 0x02000000 _08049F24: ldrb r0, [r1, #5] ldrb r2, [r1, #4] movs r1, #1 cmp r0, r2 beq _08049F36 movs r1, #3 cmp r2, #1 bhi _08049F36 movs r1, #2 _08049F36: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r7, r0, #0 cmp r1, #1 bne _08049F42 b _0804A064 _08049F42: cmp r1, #1 bgt _08049F4C cmp r1, #0 beq _08049F5A b _0804A19C _08049F4C: cmp r1, #2 bne _08049F52 b _0804A104 _08049F52: cmp r1, #3 bne _08049F58 b _0804A158 _08049F58: b _0804A19C _08049F5A: bl sub_4A270 bl sub_4A518 bl sub_467F4 ldr r2, _08049FE4 @ =0x040000D4 ldr r0, _08049FE8 @ =0x02031520 ldr r0, [r0, #0x2c] str r0, [r2] ldr r0, _08049FEC @ =0x05000200 str r0, [r2, #4] ldr r0, _08049FF0 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _08049FF4 @ =0x0200B0C0 ldrb r0, [r0, #9] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08049FA4 ldr r0, _08049FF8 @ =0x020314E0 ldr r0, [r0] ldr r1, _08049FFC @ =0x000005F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0804A000 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804A004 @ =0x05000220 str r0, [r2, #4] ldr r0, _0804A008 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _08049FA4: bl sub_4A90C movs r5, #0 ldr r6, _0804A00C @ =0x020028D8 _08049FAC: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, r0, r6 ldr r0, [r0] bl _call_via_r0 adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _08049FAC bl m4aMPlayAllStop bl sub_47110 bl sub_4A518 ldr r0, _08049FF4 @ =0x0200B0C0 ldrb r0, [r0, #2] cmp r0, #3 bne _0804A010 movs r0, #2 bl sub_4B678 b _0804A016 .align 2, 0 _08049FE4: .4byte 0x040000D4 _08049FE8: .4byte 0x02031520 _08049FEC: .4byte 0x05000200 _08049FF0: .4byte 0x80000100 _08049FF4: .4byte 0x0200B0C0 _08049FF8: .4byte 0x020314E0 _08049FFC: .4byte 0x000005F6 _0804A000: .4byte 0x08137E14 _0804A004: .4byte 0x05000220 _0804A008: .4byte 0x80000010 _0804A00C: .4byte 0x020028D8 _0804A010: movs r0, #1 bl sub_4B678 _0804A016: bl sub_4A270 bl sub_4A90C ldr r1, _0804A03C @ =0x086B085C ldr r4, _0804A040 @ =0x0200B0C0 ldrb r0, [r4, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4, #4] cmp r0, #1 bhi _0804A044 bl sub_1D4D0 b _0804A19C .align 2, 0 _0804A03C: .4byte 0x086B085C _0804A040: .4byte 0x0200B0C0 _0804A044: cmp r0, #2 bne _0804A04E bl sub_356A0 b _0804A19C _0804A04E: cmp r0, #4 bne _0804A058 bl sub_3ADA0 b _0804A19C _0804A058: cmp r0, #5 beq _0804A05E b _0804A19C _0804A05E: bl sub_3E5D0 b _0804A19C _0804A064: bl sub_4A270 bl sub_4A518 bl sub_467F4 ldr r2, _0804A0D8 @ =0x040000D4 ldr r0, _0804A0DC @ =0x02031520 ldr r0, [r0, #0x2c] str r0, [r2] ldr r0, _0804A0E0 @ =0x05000200 str r0, [r2, #4] ldr r0, _0804A0E4 @ =0x80000100 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, _0804A0E8 @ =0x0200B0C0 ldrb r0, [r0, #9] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804A0AE ldr r0, _0804A0EC @ =0x020314E0 ldr r0, [r0] ldr r1, _0804A0F0 @ =0x000005F6 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 ldr r1, _0804A0F4 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804A0F8 @ =0x05000220 str r0, [r2, #4] ldr r0, _0804A0FC @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0804A0AE: bl sub_4A90C movs r5, #0 ldr r6, _0804A100 @ =0x020028D8 _0804A0B6: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, r0, r6 ldr r0, [r0] bl _call_via_r0 adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _0804A0B6 bl sub_47110 b _0804A19C .align 2, 0 _0804A0D8: .4byte 0x040000D4 _0804A0DC: .4byte 0x02031520 _0804A0E0: .4byte 0x05000200 _0804A0E4: .4byte 0x80000100 _0804A0E8: .4byte 0x0200B0C0 _0804A0EC: .4byte 0x020314E0 _0804A0F0: .4byte 0x000005F6 _0804A0F4: .4byte 0x08137E14 _0804A0F8: .4byte 0x05000220 _0804A0FC: .4byte 0x80000010 _0804A100: .4byte 0x020028D8 _0804A104: bl sub_4A270 bl sub_4A6A0 movs r0, #0 bl sub_4B678 bl sub_4A90C ldr r1, _0804A148 @ =0x086B085C ldr r4, _0804A14C @ =0x0200B0C0 ldrb r0, [r4, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4, #4] cmp r0, #0 bne _0804A132 movs r0, #1 bl sub_46FD4 _0804A132: movs r0, #0 movs r1, #0 bl sub_1C7F4 ldr r0, _0804A150 @ =0x020314E0 ldr r0, [r0] ldr r1, _0804A154 @ =0x000006C4 adds r0, r0, r1 movs r1, #0 strb r1, [r0] b _0804A19C .align 2, 0 _0804A148: .4byte 0x086B085C _0804A14C: .4byte 0x0200B0C0 _0804A150: .4byte 0x020314E0 _0804A154: .4byte 0x000006C4 _0804A158: bl sub_4A270 bl sub_4A518 bl sub_467F4 ldr r1, _0804A22C @ =0x040000D4 ldr r0, _0804A230 @ =0x02031520 ldr r0, [r0, #0x2c] str r0, [r1] ldr r0, _0804A234 @ =0x05000200 str r0, [r1, #4] ldr r0, _0804A238 @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_4A90C movs r5, #0 ldr r6, _0804A23C @ =0x020028D8 _0804A17E: lsls r4, r5, #0x10 asrs r4, r4, #0x10 lsls r0, r4, #3 adds r0, r0, r6 ldr r0, [r0] bl _call_via_r0 adds r4, #1 lsls r4, r4, #0x10 lsrs r5, r4, #0x10 asrs r4, r4, #0x10 cmp r4, #8 ble _0804A17E bl sub_47110 _0804A19C: ldr r1, _0804A230 @ =0x02031520 movs r0, #0 strh r0, [r1, #8] movs r2, #0 ldr r3, _0804A240 @ =0x0200B134 _0804A1A6: lsls r0, r2, #0x10 asrs r2, r0, #0x10 adds r0, r2, r3 ldrb r0, [r0] cmp r0, #3 bls _0804A1B8 ldrh r0, [r1, #8] adds r0, #1 strh r0, [r1, #8] _0804A1B8: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xcc ble _0804A1A6 bl sub_CBC bl sub_24C ldr r4, _0804A244 @ =0x020314E0 ldr r0, [r4] movs r1, #0x88 lsls r1, r1, #5 adds r0, r0, r1 movs r3, #0 strb r3, [r0] ldr r1, _0804A248 @ =0x0200B0C0 adds r2, r1, #0 adds r2, #0x36 movs r0, #1 strb r0, [r2] asrs r0, r7, #0x10 cmp r0, #2 bgt _0804A25E cmp r0, #1 bge _0804A254 cmp r0, #0 bne _0804A25E ldrb r0, [r1, #2] cmp r0, #3 beq _0804A212 ldr r0, [r4] ldr r1, _0804A24C @ =0x00000F4C adds r0, r0, r1 ldr r1, [r0] cmp r1, #0 beq _0804A212 ldr r2, _0804A250 @ =0x02032EE0 ldr r0, [r2, #4] cmp r0, #0 bge _0804A212 adds r0, r2, #0 bl MPlayStart _0804A212: ldr r0, _0804A248 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #1 bhi _0804A25E ldr r0, _0804A244 @ =0x020314E0 ldr r0, [r0] adds r0, #0x6f ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_31BE8 b _0804A25E .align 2, 0 _0804A22C: .4byte 0x040000D4 _0804A230: .4byte 0x02031520 _0804A234: .4byte 0x05000200 _0804A238: .4byte 0x80000100 _0804A23C: .4byte 0x020028D8 _0804A240: .4byte 0x0200B134 _0804A244: .4byte 0x020314E0 _0804A248: .4byte 0x0200B0C0 _0804A24C: .4byte 0x00000F4C _0804A250: .4byte 0x02032EE0 _0804A254: ldrh r0, [r1, #0x38] movs r0, #0xce strh r0, [r1, #0x38] ldrh r0, [r1, #0x3c] strh r3, [r1, #0x3c] _0804A25E: ldr r1, _0804A26C @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804A26C: .4byte 0x0200B0C0 thumb_func_start sub_4A270 sub_4A270: @ 0x0804A270 push {r4, lr} movs r0, #0x80 lsls r0, r0, #0x13 movs r2, #0x86 lsls r2, r2, #5 adds r1, r2, #0 strh r1, [r0] ldr r0, _0804A294 @ =0x0200B0C0 ldrb r1, [r0, #4] adds r3, r0, #0 cmp r1, #7 bls _0804A28A b _0804A4E8 _0804A28A: lsls r0, r1, #2 ldr r1, _0804A298 @ =_0804A29C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804A294: .4byte 0x0200B0C0 _0804A298: .4byte _0804A29C _0804A29C: @ jump table .4byte _0804A2BC @ case 0 .4byte _0804A308 @ case 1 .4byte _0804A354 @ case 2 .4byte _0804A39C @ case 3 .4byte _0804A3E8 @ case 4 .4byte _0804A418 @ case 5 .4byte _0804A448 @ case 6 .4byte _0804A494 @ case 7 _0804A2BC: ldr r1, _0804A2F0 @ =0x0400000E ldr r4, _0804A2F4 @ =0x0000804B adds r0, r4, #0 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A2F8 @ =0x0400000C ldr r4, _0804A2FC @ =0x00008246 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A300 @ =0x0400000A ldr r4, _0804A304 @ =0x00008649 b _0804A4C4 .align 2, 0 _0804A2F0: .4byte 0x0400000E _0804A2F4: .4byte 0x0000804B _0804A2F8: .4byte 0x0400000C _0804A2FC: .4byte 0x00008246 _0804A300: .4byte 0x0400000A _0804A304: .4byte 0x00008649 _0804A308: ldr r1, _0804A33C @ =0x0400000E ldr r2, _0804A340 @ =0x0000804B adds r0, r2, #0 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A344 @ =0x0400000C ldr r4, _0804A348 @ =0x00008246 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A34C @ =0x0400000A ldr r4, _0804A350 @ =0x00008649 b _0804A4C4 .align 2, 0 _0804A33C: .4byte 0x0400000E _0804A340: .4byte 0x0000804B _0804A344: .4byte 0x0400000C _0804A348: .4byte 0x00008246 _0804A34C: .4byte 0x0400000A _0804A350: .4byte 0x00008649 _0804A354: ldr r1, _0804A390 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A394 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A398 @ =0x0400000A movs r4, #0x82 lsls r4, r4, #2 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] subs r4, #8 b _0804A4CE .align 2, 0 _0804A390: .4byte 0x0400000E _0804A394: .4byte 0x0400000C _0804A398: .4byte 0x0400000A _0804A39C: ldr r1, _0804A3D8 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A3DC @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A3E0 @ =0x0400000A ldr r4, _0804A3E4 @ =0x00000209 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] subs r4, #9 b _0804A4CE .align 2, 0 _0804A3D8: .4byte 0x0400000E _0804A3DC: .4byte 0x0400000C _0804A3E0: .4byte 0x0400000A _0804A3E4: .4byte 0x00000209 _0804A3E8: ldr r1, _0804A410 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A414 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 b _0804A4CE .align 2, 0 _0804A410: .4byte 0x0400000E _0804A414: .4byte 0x0400000C _0804A418: ldr r1, _0804A440 @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A444 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 b _0804A4CE .align 2, 0 _0804A440: .4byte 0x0400000E _0804A444: .4byte 0x0400000C _0804A448: ldr r1, _0804A47C @ =0x0400000E ldr r2, _0804A480 @ =0x0000800B adds r0, r2, #0 strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A484 @ =0x0400000C ldr r4, _0804A488 @ =0x0000820A adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A48C @ =0x0400000A ldr r4, _0804A490 @ =0x00008609 b _0804A4C4 .align 2, 0 _0804A47C: .4byte 0x0400000E _0804A480: .4byte 0x0000800B _0804A484: .4byte 0x0400000C _0804A488: .4byte 0x0000820A _0804A48C: .4byte 0x0400000A _0804A490: .4byte 0x00008609 _0804A494: ldr r1, _0804A4FC @ =0x0400000E movs r0, #0xb strh r0, [r1] movs r2, #0x80 lsls r2, r2, #0x13 ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A500 @ =0x0400000C movs r4, #0x85 lsls r4, r4, #1 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #3 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A504 @ =0x0400000A ldr r4, _0804A508 @ =0x00008208 _0804A4C4: adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #2 _0804A4CE: adds r1, r4, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0804A50C @ =0x04000008 ldr r4, _0804A510 @ =0x00008404 adds r0, r4, #0 strh r0, [r1] ldrh r0, [r2] movs r4, #0x80 lsls r4, r4, #1 adds r1, r4, #0 orrs r0, r1 strh r0, [r2] _0804A4E8: movs r0, #0x80 lsls r0, r0, #0x13 ldrh r0, [r0] movs r1, #0 strh r0, [r3, #0x16] ldr r0, _0804A514 @ =0x0400004C strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0804A4FC: .4byte 0x0400000E _0804A500: .4byte 0x0400000C _0804A504: .4byte 0x0400000A _0804A508: .4byte 0x00008208 _0804A50C: .4byte 0x04000008 _0804A510: .4byte 0x00008404 _0804A514: .4byte 0x0400004C thumb_func_start sub_4A518 sub_4A518: @ 0x0804A518 push {r4, r5, r6, r7, lr} sub sp, #4 ldr r0, _0804A60C @ =0x0200B0C0 movs r3, #0 strb r3, [r0, #0xf] strb r3, [r0, #0x10] str r3, [r0, #0x50] strb r3, [r0, #0x11] movs r7, #0 strh r3, [r0, #0x12] strh r3, [r0, #0x14] movs r1, #0x90 strh r1, [r0, #0x26] strh r3, [r0, #0x28] strh r3, [r0, #0x2a] adds r1, r0, #0 adds r1, #0x36 strb r7, [r1] ldrh r1, [r0, #0x38] strh r3, [r0, #0x38] ldrh r1, [r0, #0x3a] strh r3, [r0, #0x3a] ldrh r1, [r0, #0x3c] strh r3, [r0, #0x3c] ldrb r1, [r0, #5] adds r6, r0, #0 ldr r5, _0804A610 @ =0x020314E0 ldrb r0, [r6, #4] cmp r1, r0 beq _0804A556 b _0804A652 _0804A556: mov r0, sp strh r3, [r0] ldr r4, _0804A614 @ =0x040000D4 str r0, [r4] ldr r0, [r5] str r0, [r4, #4] ldr r0, _0804A618 @ =0x81000A08 str r0, [r4, #8] ldr r0, [r4, #8] movs r2, #9 ldrsb r2, [r6, r2] cmp r2, #0 beq _0804A62C ldr r2, [r5] movs r1, #0xe3 lsls r1, r1, #1 adds r0, r2, r1 movs r1, #0xa8 strh r1, [r0] movs r7, #0xe4 lsls r7, r7, #1 adds r0, r2, r7 strh r1, [r0] movs r1, #0xe6 lsls r1, r1, #1 adds r0, r2, r1 movs r1, #0xd strh r1, [r0] adds r7, #2 adds r0, r2, r7 strh r1, [r0] movs r1, #0xe8 lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] adds r7, #0xa adds r0, r2, r7 strh r3, [r0] movs r0, #0xeb lsls r0, r0, #1 adds r1, r2, r0 movs r0, #0x78 strh r0, [r1] adds r7, #8 adds r1, r2, r7 movs r0, #0x3c strh r0, [r1] ldr r0, _0804A61C @ =0x084C0C6C str r0, [r4] ldr r0, _0804A620 @ =0x06010600 str r0, [r4, #4] ldr r0, _0804A624 @ =0x800000C0 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, [r5] movs r2, #0xf1 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #2 strb r0, [r1] ldr r0, [r6, #0x44] adds r0, #0xa4 ldr r0, [r0] strh r3, [r0] ldr r1, [r5] movs r3, #0xe0 lsls r3, r3, #1 adds r2, r1, r3 movs r0, #1 strh r0, [r2] ldr r4, _0804A628 @ =0x000005F6 adds r1, r1, r4 movs r0, #3 strb r0, [r1] ldr r1, [r5] movs r7, #0xbf lsls r7, r7, #3 adds r2, r1, r7 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] adds r1, #0x30 movs r0, #9 strb r0, [r1] ldr r0, [r5] movs r2, #0xc9 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #0x63 b _0804A650 .align 2, 0 _0804A60C: .4byte 0x0200B0C0 _0804A610: .4byte 0x020314E0 _0804A614: .4byte 0x040000D4 _0804A618: .4byte 0x81000A08 _0804A61C: .4byte 0x084C0C6C _0804A620: .4byte 0x06010600 _0804A624: .4byte 0x800000C0 _0804A628: .4byte 0x000005F6 _0804A62C: ldr r1, [r5] movs r3, #0xea lsls r3, r3, #1 adds r0, r1, r3 strh r2, [r0] movs r4, #0xeb lsls r4, r4, #1 adds r2, r1, r4 ldr r0, _0804A690 @ =0x0000FFFC strh r0, [r2] adds r1, #0x30 movs r0, #2 strb r0, [r1] ldr r0, [r5] movs r7, #0xc9 lsls r7, r7, #1 adds r1, r0, r7 movs r0, #0xa _0804A650: strb r0, [r1] _0804A652: ldrb r0, [r6, #2] cmp r0, #3 beq _0804A666 ldr r0, [r5] movs r2, #0xa1 lsls r2, r2, #1 adds r1, r6, r2 ldrb r1, [r1] adds r0, #0x31 strb r1, [r0] _0804A666: ldr r1, [r5] ldr r0, _0804A694 @ =0x00009C40 str r0, [r1, #0x38] movs r3, #0 strb r3, [r1, #0x1d] ldr r0, [r5] ldr r4, _0804A698 @ =0x0000132C adds r1, r0, r4 ldr r7, _0804A69C @ =0x00001334 adds r2, r0, r7 str r2, [r1] adds r4, #4 adds r1, r0, r4 str r2, [r1] adds r0, #0x66 strh r3, [r0] add sp, #4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804A690: .4byte 0x0000FFFC _0804A694: .4byte 0x00009C40 _0804A698: .4byte 0x0000132C _0804A69C: .4byte 0x00001334 thumb_func_start sub_4A6A0 sub_4A6A0: @ 0x0804A6A0 push {r4, r5, r6, r7, lr} ldr r1, _0804A6C0 @ =0x020314E0 ldr r2, [r1] ldr r3, _0804A6C4 @ =0x00000282 adds r0, r2, r3 movs r5, #0 ldrsb r5, [r0, r5] adds r6, r1, #0 cmp r5, #1 beq _0804A760 cmp r5, #1 bgt _0804A6C8 cmp r5, #0 beq _0804A6D0 b _0804A83C .align 2, 0 _0804A6C0: .4byte 0x020314E0 _0804A6C4: .4byte 0x00000282 _0804A6C8: cmp r5, #2 bne _0804A6CE b _0804A7D0 _0804A6CE: b _0804A83C _0804A6D0: ldr r4, _0804A738 @ =0x0000132C adds r1, r2, r4 ldr r2, [r1] movs r3, #0 movs r0, #0x77 strh r0, [r2, #0x10] ldr r2, [r1] adds r0, #0xa0 strh r0, [r2, #0x12] ldr r0, [r1] strh r5, [r0, #0x30] ldr r0, [r1] strh r5, [r0, #0x32] ldr r0, [r1] strh r5, [r0, #6] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x38] ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0xe] ldr r0, [r1] movs r1, #1 strb r1, [r0] ldr r0, [r6] strb r1, [r0, #0x1f] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r3, [r0] ldr r0, [r6] movs r1, #0x78 strh r1, [r0, #0x28] adds r0, #0x25 movs r1, #4 strb r1, [r0] ldr r0, _0804A73C @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _0804A740 bl sub_1A9E8 b _0804A744 .align 2, 0 _0804A738: .4byte 0x0000132C _0804A73C: .4byte 0x0200B0C0 _0804A740: bl sub_32968 _0804A744: ldr r3, _0804A75C @ =0x020314E0 ldr r1, [r3] adds r2, r1, #0 adds r2, #0x4c movs r0, #0 strh r0, [r2] adds r1, #0x4e movs r0, #0xd7 strh r0, [r1] adds r6, r3, #0 b _0804A83C .align 2, 0 _0804A75C: .4byte 0x020314E0 _0804A760: ldr r3, _0804A7C8 @ =0x0000132C adds r1, r2, r3 ldr r2, [r1] movs r4, #0 movs r3, #0 movs r0, #0x8c strh r0, [r2, #0x10] ldr r2, [r1] movs r0, #0xb7 strh r0, [r2, #0x12] ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r0, [r1] strh r3, [r0, #6] ldr r2, [r1] movs r7, #0x10 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x38] ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0xe] ldr r0, [r1] strb r5, [r0] ldr r0, [r6] strb r5, [r0, #0x1f] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] ldr r2, _0804A7CC @ =0x000002A2 adds r0, r0, r2 movs r1, #5 strb r1, [r0] ldr r0, [r6] adds r1, r0, #0 adds r1, #0x4c strh r3, [r1] adds r0, #0x4e movs r1, #0x76 strh r1, [r0] b _0804A83C .align 2, 0 _0804A7C8: .4byte 0x0000132C _0804A7CC: .4byte 0x000002A2 _0804A7D0: ldr r3, _0804A8E4 @ =0x0000132C adds r1, r2, r3 ldr r2, [r1] movs r4, #0 movs r3, #0 ldr r0, _0804A8E8 @ =0x0000FFE4 strh r0, [r2, #0x10] ldr r2, [r1] adds r0, #0x12 strh r0, [r2, #0x12] ldr r0, [r1] strh r3, [r0, #0x30] ldr r0, [r1] strh r3, [r0, #0x32] ldr r0, [r1] strh r3, [r0, #6] ldr r2, [r1] movs r5, #0x10 ldrsh r0, [r2, r5] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #8 str r0, [r2, #0x38] ldr r2, [r1] movs r0, #0x80 strh r0, [r2, #0xe] ldr r0, [r1] movs r1, #1 strb r1, [r0] ldr r0, [r6] strb r1, [r0, #0x1f] ldr r0, [r6] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 strb r4, [r0] ldr r0, [r6] movs r2, #0xc3 lsls r2, r2, #2 adds r1, r0, r2 strh r3, [r1] ldr r4, _0804A8EC @ =0x00000306 adds r0, r0, r4 movs r1, #7 strb r1, [r0] ldr r0, [r6] adds r1, r0, #0 adds r1, #0x4c strh r3, [r1] adds r0, #0x4e strh r3, [r0] _0804A83C: ldr r1, [r6] ldr r3, _0804A8F0 @ =0x000005FC adds r0, r1, r3 movs r4, #0 movs r2, #0 strh r2, [r0] ldr r5, _0804A8F4 @ =0x000005FE adds r0, r1, r5 strh r2, [r0] ldr r7, _0804A8F8 @ =0x000005FB adds r1, r1, r7 strb r4, [r1] ldr r2, [r6] adds r5, r2, #0 adds r5, #0x4e movs r1, #0 ldrsh r0, [r5, r1] lsls r0, r0, #8 str r0, [r2, #0x54] adds r4, r2, #0 adds r4, #0x4c ldrh r1, [r4] adds r0, r2, #0 adds r0, #0x58 strh r1, [r0] adds r3, r2, r3 ldrh r0, [r3] ldrh r5, [r5] adds r0, r0, r5 adds r1, r2, #0 adds r1, #0x5a strh r0, [r1] ldr r2, _0804A8FC @ =0x0200B0C0 ldrh r1, [r4] movs r3, #0xbc lsls r3, r3, #2 adds r0, r2, r3 strh r1, [r0] ldr r0, [r6] adds r0, #0x4e ldrh r1, [r0] ldr r4, _0804A900 @ =0x000002F2 adds r0, r2, r4 strh r1, [r0] ldr r0, [r6] adds r0, #0x4c ldrh r1, [r0] movs r5, #0xbd lsls r5, r5, #2 adds r0, r2, r5 strh r1, [r0] ldr r0, [r6] adds r0, #0x4e ldrh r3, [r0] ldr r7, _0804A904 @ =0x000002F6 adds r4, r2, r7 strh r3, [r4] ldr r0, [r6] adds r0, #0x4c ldrh r1, [r0] subs r5, #8 adds r0, r2, r5 strh r1, [r0] ldr r0, [r6] adds r0, #0x4e ldrh r1, [r0] subs r7, #8 adds r0, r2, r7 strh r1, [r0] ldr r0, _0804A908 @ =0x000002EA adds r2, r2, r0 movs r0, #0x50 strh r0, [r2] ldr r1, [r6] adds r0, r1, #0 adds r0, #0xcc strh r3, [r0] ldrh r0, [r4] lsrs r0, r0, #3 adds r1, #0x64 strh r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804A8E4: .4byte 0x0000132C _0804A8E8: .4byte 0x0000FFE4 _0804A8EC: .4byte 0x00000306 _0804A8F0: .4byte 0x000005FC _0804A8F4: .4byte 0x000005FE _0804A8F8: .4byte 0x000005FB _0804A8FC: .4byte 0x0200B0C0 _0804A900: .4byte 0x000002F2 _0804A904: .4byte 0x000002F6 _0804A908: .4byte 0x000002EA thumb_func_start sub_4A90C sub_4A90C: @ 0x0804A90C push {r4, lr} ldr r2, _0804A944 @ =0x020028D8 ldr r3, _0804A948 @ =0x086B077C ldr r0, [r3] ldr r1, [r3, #4] str r0, [r2, #8] str r1, [r2, #0xc] adds r0, r3, #0 adds r0, #0x90 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x40] str r1, [r2, #0x44] ldr r0, [r3, #0x78] ldr r1, [r3, #0x7c] str r0, [r2, #0x30] str r1, [r2, #0x34] ldr r0, _0804A94C @ =0x0200B0C0 ldrb r1, [r0, #4] adds r4, r0, #0 cmp r1, #7 bls _0804A93A b _0804AACC _0804A93A: lsls r0, r1, #2 ldr r1, _0804A950 @ =_0804A954 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804A944: .4byte 0x020028D8 _0804A948: .4byte 0x086B077C _0804A94C: .4byte 0x0200B0C0 _0804A950: .4byte _0804A954 _0804A954: @ jump table .4byte _0804A974 @ case 0 .4byte _0804A9BC @ case 1 .4byte _0804AA04 @ case 2 .4byte _0804AA1E @ case 3 .4byte _0804AA38 @ case 4 .4byte _0804AA52 @ case 5 .4byte _0804AA6C @ case 6 .4byte _0804AA86 @ case 7 _0804A974: ldr r0, [r3, #0x18] ldr r1, [r3, #0x1c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x80 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0x98 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] ldr r0, [r3, #0x58] ldr r1, [r3, #0x5c] str r0, [r2, #0x20] str r1, [r2, #0x24] ldr r0, [r3, #8] ldr r1, [r3, #0xc] str r0, [r2, #0x10] str r1, [r2, #0x14] ldr r0, [r3, #0x68] ldr r1, [r3, #0x6c] str r0, [r2, #0x28] str r1, [r2, #0x2c] ldrb r1, [r4, #4] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _0804A9B8 @ =0x086B02CC b _0804AAC8 .align 2, 0 _0804A9B8: .4byte 0x086B02CC _0804A9BC: ldr r0, [r3, #0x20] ldr r1, [r3, #0x24] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x80 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xa0 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] ldr r0, [r3, #0x58] ldr r1, [r3, #0x5c] str r0, [r2, #0x20] str r1, [r2, #0x24] ldr r0, [r3, #8] ldr r1, [r3, #0xc] str r0, [r2, #0x10] str r1, [r2, #0x14] ldr r0, [r3, #0x68] ldr r1, [r3, #0x6c] str r0, [r2, #0x28] str r1, [r2, #0x2c] ldrb r1, [r4, #4] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #4 ldr r1, _0804AA00 @ =0x086B02CC b _0804AAC8 .align 2, 0 _0804AA00: .4byte 0x086B02CC _0804AA04: ldr r0, [r3, #0x28] ldr r1, [r3, #0x2c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xa8 b _0804AA9E _0804AA1E: ldr r0, [r3, #0x30] ldr r1, [r3, #0x34] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xb0 b _0804AA9E _0804AA38: ldr r0, [r3, #0x38] ldr r1, [r3, #0x3c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xb8 b _0804AA9E _0804AA52: ldr r0, [r3, #0x40] ldr r1, [r3, #0x44] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xc0 b _0804AA9E _0804AA6C: ldr r0, [r3, #0x48] ldr r1, [r3, #0x4c] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xc8 b _0804AA9E _0804AA86: ldr r0, [r3, #0x50] ldr r1, [r3, #0x54] str r0, [r2, #0x18] str r1, [r2, #0x1c] adds r0, r3, #0 adds r0, #0x88 ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2, #0x38] str r1, [r2, #0x3c] adds r0, r3, #0 adds r0, #0xd0 _0804AA9E: ldr r1, [r0, #4] ldr r0, [r0] str r0, [r2] str r1, [r2, #4] ldr r0, [r3, #0x60] ldr r1, [r3, #0x64] str r0, [r2, #0x20] str r1, [r2, #0x24] ldr r0, [r3, #0x10] ldr r1, [r3, #0x14] str r0, [r2, #0x10] str r1, [r2, #0x14] ldr r0, [r3, #0x70] ldr r1, [r3, #0x74] str r0, [r2, #0x28] str r1, [r2, #0x2c] ldrb r1, [r4, #4] lsls r0, r1, #4 subs r0, r0, r1 lsls r0, r0, #3 ldr r1, _0804AAD4 @ =0x086B03BC _0804AAC8: adds r0, r0, r1 str r0, [r4, #0x44] _0804AACC: pop {r4} pop {r0} bx r0 .align 2, 0 _0804AAD4: .4byte 0x086B03BC thumb_func_start sub_4AAD8 sub_4AAD8: @ 0x0804AAD8 push {r4, r5, lr} ldr r0, _0804AAF0 @ =0x020314E0 ldr r1, [r0] ldrb r4, [r1, #0x1d] cmp r4, #1 beq _0804AB08 cmp r4, #1 bgt _0804AAF4 cmp r4, #0 beq _0804AAFA b _0804ABB8 .align 2, 0 _0804AAF0: .4byte 0x020314E0 _0804AAF4: cmp r4, #2 beq _0804ABB0 b _0804ABB8 _0804AAFA: movs r0, #1 strb r0, [r1, #0x1d] ldr r0, _0804AB04 @ =0x0200B0C0 strb r4, [r0, #0xe] b _0804ABB8 .align 2, 0 _0804AB04: .4byte 0x0200B0C0 _0804AB08: ldr r1, _0804AB3C @ =0x086B085C ldr r5, _0804AB40 @ =0x0200B0C0 ldrb r0, [r5, #6] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 ldrh r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0xf bne _0804AB24 strb r4, [r5, #0xe] _0804AB24: ldrb r0, [r5, #0xe] cmp r0, #0 beq _0804ABB8 ldrb r0, [r5, #4] cmp r0, #1 bhi _0804AB44 bl sub_1D4D0 movs r0, #0 bl sub_31BE8 b _0804AB60 .align 2, 0 _0804AB3C: .4byte 0x086B085C _0804AB40: .4byte 0x0200B0C0 _0804AB44: cmp r0, #2 bne _0804AB4E bl sub_356A0 b _0804AB60 _0804AB4E: cmp r0, #4 bne _0804AB58 bl sub_3ADA0 b _0804AB60 _0804AB58: cmp r0, #5 bne _0804AB60 bl sub_3E5D0 _0804AB60: ldr r4, _0804AB98 @ =0x0200B0C0 ldrb r1, [r4, #0xf] movs r3, #2 adds r0, r3, #0 ands r0, r1 ldr r2, _0804AB9C @ =0x020314E0 cmp r0, #0 beq _0804AB84 ldr r1, _0804ABA0 @ =0x040000D4 ldr r0, [r2] ldr r5, _0804ABA4 @ =0x0000111A adds r0, r0, r5 str r0, [r1] ldr r0, _0804ABA8 @ =0x05000200 str r0, [r1, #4] ldr r0, _0804ABAC @ =0x80000100 str r0, [r1, #8] ldr r0, [r1, #8] _0804AB84: ldr r0, [r2] strb r3, [r0, #0x1d] ldrb r0, [r4, #0xe] cmp r0, #2 bne _0804ABB8 movs r0, #1 bl sub_4B408 b _0804ABB8 .align 2, 0 _0804AB98: .4byte 0x0200B0C0 _0804AB9C: .4byte 0x020314E0 _0804ABA0: .4byte 0x040000D4 _0804ABA4: .4byte 0x0000111A _0804ABA8: .4byte 0x05000200 _0804ABAC: .4byte 0x80000100 _0804ABB0: ldr r1, _0804ABC4 @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0804ABB8: bl sub_11FC pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804ABC4: .4byte 0x0200B0C0 thumb_func_start sub_4ABC8 sub_4ABC8: @ 0x0804ABC8 push {lr} bl sub_111C bl sub_1170 cmp r0, #0 beq _0804ABE2 bl sub_1198 ldr r1, _0804ABE8 @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _0804ABE2: pop {r0} bx r0 .align 2, 0 _0804ABE8: .4byte 0x0200B0C0 thumb_func_start sub_4ABEC sub_4ABEC: @ 0x0804ABEC push {r4, r5, lr} bl sub_4B280 ldr r5, _0804AC50 @ =0x020028D8 ldr r0, [r5, #0xc] bl _call_via_r0 ldr r4, _0804AC54 @ =0x0200B0C0 ldrh r1, [r4, #0xe] ldr r0, _0804AC58 @ =0x000002FF ands r0, r1 cmp r0, #0 bne _0804ACDE ldr r0, [r5, #0x14] bl _call_via_r0 ldr r0, [r5, #4] bl _call_via_r0 ldr r0, [r5, #0x1c] bl _call_via_r0 ldr r0, [r5, #0x24] bl _call_via_r0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0804AC60 ldr r0, _0804AC5C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 bne _0804ACD0 movs r4, #0 _0804AC30: ldr r0, _0804AC5C @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804AC50 @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AC30 b _0804ACD0 .align 2, 0 _0804AC50: .4byte 0x020028D8 _0804AC54: .4byte 0x0200B0C0 _0804AC58: .4byte 0x000002FF _0804AC5C: .4byte 0x020314E0 _0804AC60: ldr r0, [r4, #0x50] adds r0, #1 str r0, [r4, #0x50] ldr r0, _0804ACA4 @ =0x020314E0 ldr r2, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r2, #0x1f] cmp r0, #0 beq _0804ACAC cmp r0, #2 beq _0804ACD0 movs r4, #0 _0804AC82: ldr r0, _0804ACA4 @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804ACA8 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AC82 b _0804ACD0 .align 2, 0 _0804ACA4: .4byte 0x020314E0 _0804ACA8: .4byte 0x020028D8 _0804ACAC: movs r4, #0 _0804ACAE: ldr r0, _0804ACE8 @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804ACAE _0804ACD0: ldr r4, _0804ACEC @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804ACDE: bl sub_47030 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804ACE8: .4byte 0x020314E0 _0804ACEC: .4byte 0x020028D8 thumb_func_start sub_4ACF0 sub_4ACF0: @ 0x0804ACF0 push {r4, r5, r6, r7, lr} bl sub_4B334 ldr r5, _0804AD54 @ =0x020028D8 ldr r0, [r5, #0xc] bl _call_via_r0 ldr r4, _0804AD58 @ =0x0200B0C0 ldrb r1, [r4, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 bne _0804ADDE ldr r0, [r5, #0x14] bl _call_via_r0 ldr r0, [r5, #4] bl _call_via_r0 ldr r0, [r5, #0x1c] bl _call_via_r0 ldr r0, [r5, #0x24] bl _call_via_r0 ldrb r0, [r4, #0xf] cmp r0, #0 beq _0804AD60 ldr r0, _0804AD5C @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 bne _0804ADD0 movs r4, #0 _0804AD34: ldr r0, _0804AD5C @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804AD54 @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AD34 b _0804ADD0 .align 2, 0 _0804AD54: .4byte 0x020028D8 _0804AD58: .4byte 0x0200B0C0 _0804AD5C: .4byte 0x020314E0 _0804AD60: ldr r0, [r4, #0x50] adds r0, #1 str r0, [r4, #0x50] ldr r0, _0804ADA4 @ =0x020314E0 ldr r2, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r2, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r2, #0x1f] cmp r0, #0 beq _0804ADAC cmp r0, #2 beq _0804ADD0 movs r4, #0 _0804AD82: ldr r0, _0804ADA4 @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, _0804ADA8 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AD82 b _0804ADD0 .align 2, 0 _0804ADA4: .4byte 0x020314E0 _0804ADA8: .4byte 0x020028D8 _0804ADAC: movs r4, #0 _0804ADAE: ldr r0, _0804AE1C @ =0x020314E0 ldr r0, [r0] strb r4, [r0, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804ADAE _0804ADD0: ldr r4, _0804AE20 @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804ADDE: bl sub_47030 ldr r0, _0804AE24 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #4 cmp r0, #0 beq _0804AE38 movs r4, #0 ldr r7, _0804AE28 @ =0x03006280 ldr r0, _0804AE2C @ =0xFFFFF980 adds r6, r7, r0 ldr r5, _0804AE30 @ =0x0000034A ldr r1, _0804AE34 @ =0xFFFFC156 adds r3, r1, #0 _0804ADFE: lsls r0, r4, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r6 adds r2, r0, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804ADFE b _0804AE5C .align 2, 0 _0804AE1C: .4byte 0x020314E0 _0804AE20: .4byte 0x020028D8 _0804AE24: .4byte 0x0200B0C0 _0804AE28: .4byte 0x03006280 _0804AE2C: .4byte 0xFFFFF980 _0804AE30: .4byte 0x0000034A _0804AE34: .4byte 0xFFFFC156 _0804AE38: movs r4, #0 ldr r7, _0804AE70 @ =0x03006280 ldr r0, _0804AE74 @ =0xFFFFF980 adds r5, r7, r0 ldr r3, _0804AE78 @ =0x0000034A ldr r2, _0804AE7C @ =0x000001FF _0804AE44: lsls r1, r4, #0x10 asrs r1, r1, #0x10 adds r0, r1, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #9 ble _0804AE44 _0804AE5C: ldr r1, _0804AE80 @ =0x040000D4 str r7, [r1] ldr r0, _0804AE84 @ =0x06002680 str r0, [r1, #4] ldr r0, _0804AE88 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804AE70: .4byte 0x03006280 _0804AE74: .4byte 0xFFFFF980 _0804AE78: .4byte 0x0000034A _0804AE7C: .4byte 0x000001FF _0804AE80: .4byte 0x040000D4 _0804AE84: .4byte 0x06002680 _0804AE88: .4byte 0x80000020 thumb_func_start sub_4AE8C sub_4AE8C: @ 0x0804AE8C push {r4, r5, r6, lr} bl sub_4B280 ldr r6, _0804AF0C @ =0x020028D8 ldr r0, [r6, #0xc] bl _call_via_r0 ldr r5, _0804AF10 @ =0x0200B0C0 ldrb r1, [r5, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804AEA8 b _0804AFEA _0804AEA8: ldr r0, [r6, #4] bl _call_via_r0 ldr r0, [r6, #0x14] bl _call_via_r0 ldr r0, [r6, #0x1c] bl _call_via_r0 ldr r0, [r6, #0x24] bl _call_via_r0 ldrb r4, [r5, #0xf] movs r0, #0x41 rsbs r0, r0, #0 ands r4, r0 cmp r4, #0 beq _0804AF20 ldr r0, _0804AF14 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 beq _0804AED8 b _0804AFDC _0804AED8: movs r4, #0 _0804AEDA: ldr r0, _0804AF14 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804AF18 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804AF1C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804AF0C @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AEDA b _0804AFDC .align 2, 0 _0804AF0C: .4byte 0x020028D8 _0804AF10: .4byte 0x0200B0C0 _0804AF14: .4byte 0x020314E0 _0804AF18: .4byte 0x0000132C _0804AF1C: .4byte 0x00001334 _0804AF20: ldr r0, [r5, #0x50] adds r0, #1 str r0, [r5, #0x50] ldr r0, _0804AF58 @ =0x020314E0 ldr r3, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r3, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r3, #0x1f] cmp r0, #0 beq _0804AFA4 cmp r0, #2 bne _0804AF60 adds r0, r3, #0 adds r0, #0x66 movs r2, #0 strh r4, [r0] ldr r4, _0804AF5C @ =0x0000132C adds r1, r3, r4 adds r4, #8 adds r0, r3, r4 str r0, [r1] strb r2, [r3, #0x1e] b _0804AFDC .align 2, 0 _0804AF58: .4byte 0x020314E0 _0804AF5C: .4byte 0x0000132C _0804AF60: movs r4, #0 _0804AF62: ldr r0, _0804AF94 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804AF98 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804AF9C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804AFA0 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AF62 b _0804AFDC .align 2, 0 _0804AF94: .4byte 0x020314E0 _0804AF98: .4byte 0x0000132C _0804AF9C: .4byte 0x00001334 _0804AFA0: .4byte 0x020028D8 _0804AFA4: movs r4, #0 adds r5, r6, #0 _0804AFA8: ldr r0, _0804AFF0 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804AFF4 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804AFF8 @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804AFA8 _0804AFDC: ldr r4, _0804AFFC @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804AFEA: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804AFF0: .4byte 0x020314E0 _0804AFF4: .4byte 0x0000132C _0804AFF8: .4byte 0x00001334 _0804AFFC: .4byte 0x020028D8 thumb_func_start sub_4B000 sub_4B000: @ 0x0804B000 push {r4, r5, r6, r7, lr} bl sub_4B334 ldr r5, _0804B07C @ =0x0200B0C0 ldrb r1, [r5, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0804B014 b _0804B15A _0804B014: ldr r6, _0804B080 @ =0x020028D8 ldr r0, [r6, #4] bl _call_via_r0 ldr r0, [r6, #0x14] bl _call_via_r0 ldr r0, [r6, #0x1c] bl _call_via_r0 ldr r0, [r6, #0x24] bl _call_via_r0 ldrb r4, [r5, #0xf] movs r0, #0x41 rsbs r0, r0, #0 ands r4, r0 cmp r4, #0 beq _0804B090 ldr r0, _0804B084 @ =0x020314E0 ldr r0, [r0] ldrb r0, [r0, #0x1f] cmp r0, #0 beq _0804B046 b _0804B14C _0804B046: movs r4, #0 _0804B048: ldr r0, _0804B084 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804B088 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804B08C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804B080 @ =0x020028D8 ldr r0, [r0, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804B048 b _0804B14C .align 2, 0 _0804B07C: .4byte 0x0200B0C0 _0804B080: .4byte 0x020028D8 _0804B084: .4byte 0x020314E0 _0804B088: .4byte 0x0000132C _0804B08C: .4byte 0x00001334 _0804B090: ldr r0, [r5, #0x50] adds r0, #1 str r0, [r5, #0x50] ldr r0, _0804B0C8 @ =0x020314E0 ldr r3, [r0] movs r0, #0xa4 lsls r0, r0, #2 adds r1, r3, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldrb r0, [r3, #0x1f] cmp r0, #0 beq _0804B114 cmp r0, #2 bne _0804B0D0 adds r0, r3, #0 adds r0, #0x66 movs r2, #0 strh r4, [r0] ldr r4, _0804B0CC @ =0x0000132C adds r1, r3, r4 adds r4, #8 adds r0, r3, r4 str r0, [r1] strb r2, [r3, #0x1e] b _0804B14C .align 2, 0 _0804B0C8: .4byte 0x020314E0 _0804B0CC: .4byte 0x0000132C _0804B0D0: movs r4, #0 _0804B0D2: ldr r0, _0804B104 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804B108 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804B10C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, _0804B110 @ =0x020028D8 ldr r0, [r0, #0x2c] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804B0D2 b _0804B14C .align 2, 0 _0804B104: .4byte 0x020314E0 _0804B108: .4byte 0x0000132C _0804B10C: .4byte 0x00001334 _0804B110: .4byte 0x020028D8 _0804B114: movs r4, #0 adds r5, r6, #0 _0804B118: ldr r0, _0804B194 @ =0x020314E0 ldr r1, [r0] adds r2, r1, #0 adds r2, #0x66 movs r0, #0 strh r0, [r2] ldr r0, _0804B198 @ =0x0000132C adds r2, r1, r0 ldr r3, _0804B19C @ =0x00001334 adds r0, r1, r3 str r0, [r2] strb r4, [r1, #0x1e] ldr r0, [r5, #0x2c] bl _call_via_r0 ldr r0, [r5, #0x34] bl _call_via_r0 lsls r0, r4, #0x10 movs r4, #0x80 lsls r4, r4, #9 adds r0, r0, r4 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804B118 _0804B14C: ldr r4, _0804B1A0 @ =0x020028D8 ldr r0, [r4, #0x3c] bl _call_via_r0 ldr r0, [r4, #0x44] bl _call_via_r0 _0804B15A: ldr r0, _0804B1A4 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x1f ands r0, r1 lsrs r0, r0, #4 cmp r0, #0 beq _0804B1B8 movs r4, #0 ldr r7, _0804B1A8 @ =0x03006240 ldr r0, _0804B1AC @ =0xFFFFF9C0 adds r6, r7, r0 ldr r5, _0804B1B0 @ =0x0000032B ldr r1, _0804B1B4 @ =0xFFFFC156 adds r3, r1, #0 _0804B176: lsls r0, r4, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r6 adds r2, r0, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #8 ble _0804B176 b _0804B1DC .align 2, 0 _0804B194: .4byte 0x020314E0 _0804B198: .4byte 0x0000132C _0804B19C: .4byte 0x00001334 _0804B1A0: .4byte 0x020028D8 _0804B1A4: .4byte 0x0200B0C0 _0804B1A8: .4byte 0x03006240 _0804B1AC: .4byte 0xFFFFF9C0 _0804B1B0: .4byte 0x0000032B _0804B1B4: .4byte 0xFFFFC156 _0804B1B8: movs r4, #0 ldr r7, _0804B1F0 @ =0x03006240 ldr r3, _0804B1F4 @ =0xFFFFF9C0 adds r5, r7, r3 ldr r3, _0804B1F8 @ =0x0000032B ldr r2, _0804B1FC @ =0x000001FF _0804B1C4: lsls r1, r4, #0x10 asrs r1, r1, #0x10 adds r0, r1, r3 lsls r0, r0, #1 adds r0, r0, r5 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #8 ble _0804B1C4 _0804B1DC: ldr r1, _0804B200 @ =0x040000D4 str r7, [r1] ldr r0, _0804B204 @ =0x06002640 str r0, [r1, #4] ldr r0, _0804B208 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804B1F0: .4byte 0x03006240 _0804B1F4: .4byte 0xFFFFF9C0 _0804B1F8: .4byte 0x0000032B _0804B1FC: .4byte 0x000001FF _0804B200: .4byte 0x040000D4 _0804B204: .4byte 0x06002640 _0804B208: .4byte 0x80000020 thumb_func_start sub_4B20C sub_4B20C: @ 0x0804B20C push {r4, lr} ldr r4, _0804B250 @ =0x0200B0C0 adds r1, r4, #0 adds r1, #0x36 movs r0, #0 strb r0, [r1] bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r0, _0804B254 @ =0x020314E0 ldr r1, [r0] ldr r0, [r1, #0x44] str r0, [r4, #0x58] ldr r0, [r1, #0x48] str r0, [r4, #0x5c] ldrb r0, [r4, #0xe] cmp r0, #2 bne _0804B23A bl sub_4B654 _0804B23A: ldrb r0, [r4, #0xe] cmp r0, #0 bne _0804B262 ldrb r0, [r4, #4] cmp r0, #1 bls _0804B258 movs r0, #0xb bl sub_23C b _0804B276 .align 2, 0 _0804B250: .4byte 0x0200B0C0 _0804B254: .4byte 0x020314E0 _0804B258: ldr r0, [r4, #8] ldr r1, _0804B26C @ =0x00FFFF00 ands r0, r1 cmp r0, #0 beq _0804B270 _0804B262: movs r0, #0 bl sub_23C b _0804B276 .align 2, 0 _0804B26C: .4byte 0x00FFFF00 _0804B270: movs r0, #8 bl sub_23C _0804B276: pop {r4} pop {r0} bx r0 thumb_func_start nullsub_19 nullsub_19: @ 0x0804B27C bx lr thumb_func_start sub_4B280 sub_4B280: @ 0x0804B280 push {r4, r5, lr} movs r3, #0 ldr r4, _0804B2F8 @ =0x020314E0 ldr r0, _0804B2FC @ =0x0200B0C0 mov ip, r0 adds r2, r4, #0 movs r1, #0 _0804B28E: ldr r0, [r2] adds r0, #4 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r0, #9 adds r0, r0, r3 strb r1, [r0] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B28E mov r1, ip ldrb r0, [r1, #0xf] cmp r0, #0 bne _0804B32E movs r3, #0 movs r5, #1 _0804B2B4: lsls r2, r3, #2 mov r1, ip adds r1, #0x60 adds r1, r2, r1 mov r0, ip adds r0, #0x62 adds r2, r2, r0 ldrh r1, [r1] ldrh r0, [r2] orrs r1, r0 ldr r2, _0804B300 @ =0x000003FF adds r0, r2, #0 ands r1, r0 mov r2, ip ldrh r0, [r2, #0x1c] ands r0, r1 cmp r1, r0 bne _0804B304 ldr r1, [r4] adds r0, r1, #0 adds r0, #0xe adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0 bne _0804B2EC adds r0, r1, #4 adds r0, r0, r3 strb r5, [r0] _0804B2EC: ldr r0, [r4] adds r0, #0xe adds r0, r0, r3 strb r5, [r0] b _0804B324 .align 2, 0 _0804B2F8: .4byte 0x020314E0 _0804B2FC: .4byte 0x0200B0C0 _0804B300: .4byte 0x000003FF _0804B304: ldr r1, [r4] adds r0, r1, #0 adds r0, #0xe adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0 beq _0804B31A adds r0, r1, #0 adds r0, #9 adds r0, r0, r3 strb r5, [r0] _0804B31A: ldr r0, [r4] adds r0, #0xe adds r0, r0, r3 movs r1, #0 strb r1, [r0] _0804B324: adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B2B4 _0804B32E: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_4B334 sub_4B334: @ 0x0804B334 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r3, #0 ldr r0, _0804B3F4 @ =0x020314E0 mov r8, r0 ldr r1, _0804B3F8 @ =0x0200B0C0 mov sb, r1 mov r2, r8 movs r1, #0 _0804B34A: ldr r0, [r2] adds r0, #4 adds r0, r0, r3 strb r1, [r0] ldr r0, [r2] adds r0, #9 adds r0, r0, r3 strb r1, [r0] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B34A mov r1, sb ldrb r0, [r1, #0xf] cmp r0, #0 bne _0804B3E6 ldr r0, _0804B3FC @ =0x02031510 ldr r2, [r0] ldr r1, _0804B400 @ =0x00000E0F mov ip, r0 cmp r2, r1 bhi _0804B3D6 movs r3, #0 ldr r7, _0804B3F4 @ =0x020314E0 ldr r6, _0804B404 @ =0x02031520 mov r5, ip movs r4, #1 _0804B382: ldr r2, [r7] adds r2, #4 adds r2, r2, r3 ldr r0, [r5] ldr r1, [r6, #0x10] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0] asrs r0, r3 ands r0, r4 strb r0, [r2] ldr r2, [r7] adds r2, #9 adds r2, r2, r3 ldr r0, [r5] ldr r1, [r6, #0x10] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #1] asrs r0, r3 ands r0, r4 strb r0, [r2] ldr r2, [r7] adds r2, #0xe adds r2, r2, r3 ldr r0, [r5] ldr r1, [r6, #0x10] lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #2] asrs r0, r3 ands r0, r4 strb r0, [r2] adds r0, r3, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 cmp r3, #4 bls _0804B382 mov r1, ip ldr r0, [r1] adds r0, #1 str r0, [r1] _0804B3D6: mov r1, r8 ldr r0, [r1] ldrb r0, [r0, #5] cmp r0, #0 beq _0804B3E6 movs r0, #1 mov r1, sb strh r0, [r1, #0x18] _0804B3E6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804B3F4: .4byte 0x020314E0 _0804B3F8: .4byte 0x0200B0C0 _0804B3FC: .4byte 0x02031510 _0804B400: .4byte 0x00000E0F _0804B404: .4byte 0x02031520 thumb_func_start sub_4B408 sub_4B408: @ 0x0804B408 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} lsls r0, r0, #0x10 lsrs r4, r0, #0x10 ldr r2, _0804B430 @ =0x02032EE0 ldr r0, [r2, #4] cmp r0, #0 blt _0804B43C ldr r0, _0804B434 @ =0x020314E0 ldr r0, [r0] ldr r1, _0804B438 @ =0x00000F4C adds r0, r0, r1 ldr r1, [r2] str r1, [r0] adds r0, r2, #0 bl m4aMPlayStop b _0804B448 .align 2, 0 _0804B430: .4byte 0x02032EE0 _0804B434: .4byte 0x020314E0 _0804B438: .4byte 0x00000F4C _0804B43C: ldr r0, _0804B5EC @ =0x020314E0 ldr r0, [r0] ldr r2, _0804B5F0 @ =0x00000F4C adds r0, r0, r2 movs r1, #0 str r1, [r0] _0804B448: movs r3, #0 ldr r6, _0804B5EC @ =0x020314E0 ldr r0, _0804B5F4 @ =0x0200B0C0 mov ip, r0 lsls r4, r4, #0x10 mov r8, r4 mov r5, ip adds r7, r6, #0 _0804B458: ldr r4, [r7] lsls r1, r3, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #1 ldrb r3, [r5, #6] movs r0, #0xc8 muls r0, r3, r0 adds r2, r2, r0 ldr r3, _0804B5F8 @ =0x00000F68 adds r4, r4, r3 adds r4, r4, r2 movs r0, #0xb8 muls r0, r1, r0 adds r0, r0, r5 movs r2, #0xbe lsls r2, r2, #2 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4] adds r1, #1 lsls r1, r1, #0x10 lsrs r3, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x63 ble _0804B458 ldr r2, _0804B5FC @ =0x040000D4 ldr r0, _0804B600 @ =0x05000200 str r0, [r2] mov r3, ip ldrb r1, [r3, #6] lsls r1, r1, #9 ldr r0, _0804B604 @ =0x0000074C adds r1, r1, r0 ldr r0, [r6] adds r0, r0, r1 str r0, [r2, #4] ldr r3, _0804B608 @ =0x80000100 str r3, [r2, #8] ldr r0, [r2, #8] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r2] mov r0, ip ldrb r1, [r0, #6] lsls r1, r1, #9 ldr r0, _0804B60C @ =0x00000B4C adds r1, r1, r0 ldr r0, [r6] adds r0, r0, r1 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] mov r1, r8 cmp r1, #0 bne _0804B4C8 b _0804B5E0 _0804B4C8: ldr r1, [r6] ldr r3, _0804B610 @ =0x00000F58 adds r2, r1, r3 movs r0, #0xba lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] ldr r0, _0804B614 @ =0x00000F5C adds r2, r1, r0 movs r0, #0xbb lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] adds r3, #8 adds r2, r1, r3 movs r0, #0xbc lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] ldr r0, _0804B618 @ =0x00000F64 adds r2, r1, r0 movs r0, #0xbd lsls r0, r0, #2 add r0, ip ldr r0, [r0] str r0, [r2] mov r2, ip ldrb r0, [r2, #4] ldr r3, _0804B61C @ =0x000010FD adds r1, r1, r3 strb r0, [r1] ldr r0, [r6] ldrb r1, [r2, #5] ldr r2, _0804B620 @ =0x000010FE adds r0, r0, r2 strb r1, [r0] ldr r0, [r6] mov r3, ip ldrb r1, [r3, #6] adds r2, #1 adds r0, r0, r2 strb r1, [r0] ldr r0, [r6] ldrb r1, [r3, #0xf] ldr r3, _0804B624 @ =0x00001101 adds r0, r0, r3 strb r1, [r0] ldr r0, [r6] mov r2, ip ldrb r1, [r2, #0x10] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r6] ldrb r1, [r2, #0x11] ldr r2, _0804B628 @ =0x00001103 adds r0, r0, r2 strb r1, [r0] ldr r1, [r6] mov r3, ip ldrh r2, [r3, #0x12] movs r3, #0x99 lsls r3, r3, #5 adds r0, r1, r3 strh r2, [r0] mov r0, ip ldrh r2, [r0, #0x14] adds r3, #2 adds r0, r1, r3 strh r2, [r0] mov r0, ip ldrh r2, [r0, #0x28] adds r3, #2 adds r0, r1, r3 strh r2, [r0] mov r0, ip ldrh r2, [r0, #0x2a] adds r3, #2 adds r0, r1, r3 strh r2, [r0] ldr r2, _0804B62C @ =0x00001106 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B630 @ =0x00001110 adds r0, r1, r3 ldrh r3, [r0] strh r2, [r0] ldr r2, _0804B634 @ =0x00001108 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B638 @ =0x00001112 adds r0, r1, r3 ldrh r3, [r0] strh r2, [r0] ldr r2, _0804B63C @ =0x0000110A adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B640 @ =0x00001114 adds r0, r1, r3 ldrh r3, [r0] strh r2, [r0] ldr r2, _0804B644 @ =0x0000110C adds r0, r1, r2 ldrh r2, [r0] ldr r3, _0804B648 @ =0x00001116 adds r0, r1, r3 strh r2, [r0] ldr r2, _0804B64C @ =0x0000110E adds r0, r1, r2 ldrh r2, [r0] adds r3, #2 adds r0, r1, r3 strh r2, [r0] movs r0, #0xa1 lsls r0, r0, #1 add r0, ip ldrb r0, [r0] adds r1, #0x31 strb r0, [r1] movs r3, #0 ldr r5, _0804B650 @ =0x000010F8 mov r4, ip adds r4, #7 _0804B5C4: ldr r2, [r6] lsls r0, r3, #0x10 asrs r0, r0, #0x10 adds r2, r2, r5 adds r2, r2, r0 adds r1, r0, r4 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0804B5C4 _0804B5E0: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804B5EC: .4byte 0x020314E0 _0804B5F0: .4byte 0x00000F4C _0804B5F4: .4byte 0x0200B0C0 _0804B5F8: .4byte 0x00000F68 _0804B5FC: .4byte 0x040000D4 _0804B600: .4byte 0x05000200 _0804B604: .4byte 0x0000074C _0804B608: .4byte 0x80000100 _0804B60C: .4byte 0x00000B4C _0804B610: .4byte 0x00000F58 _0804B614: .4byte 0x00000F5C _0804B618: .4byte 0x00000F64 _0804B61C: .4byte 0x000010FD _0804B620: .4byte 0x000010FE _0804B624: .4byte 0x00001101 _0804B628: .4byte 0x00001103 _0804B62C: .4byte 0x00001106 _0804B630: .4byte 0x00001110 _0804B634: .4byte 0x00001108 _0804B638: .4byte 0x00001112 _0804B63C: .4byte 0x0000110A _0804B640: .4byte 0x00001114 _0804B644: .4byte 0x0000110C _0804B648: .4byte 0x00001116 _0804B64C: .4byte 0x0000110E _0804B650: .4byte 0x000010F8 thumb_func_start sub_4B654 sub_4B654: @ 0x0804B654 push {lr} ldr r0, _0804B66C @ =0x020314E0 ldr r0, [r0] movs r1, #1 str r1, [r0] ldr r1, _0804B670 @ =0x0E000544 ldr r2, _0804B674 @ =0x00001410 bl sub_55654 pop {r0} bx r0 .align 2, 0 _0804B66C: .4byte 0x020314E0 _0804B670: .4byte 0x0E000544 _0804B674: .4byte 0x00001410 thumb_func_start sub_4B678 sub_4B678: @ 0x0804B678 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r8, r0 cmp r0, #1 bne _0804B6B0 ldr r3, _0804B6A0 @ =0x02032FF0 ldr r0, _0804B6A4 @ =0x0E000544 ldr r1, _0804B6A8 @ =0x020314E0 ldr r1, [r1] ldr r2, _0804B6AC @ =0x00001410 ldr r3, [r3] bl _call_via_r3 b _0804B746 .align 2, 0 _0804B6A0: .4byte 0x02032FF0 _0804B6A4: .4byte 0x0E000544 _0804B6A8: .4byte 0x020314E0 _0804B6AC: .4byte 0x00001410 _0804B6B0: mov r0, r8 cmp r0, #2 bne _0804B746 ldr r1, _0804B87C @ =0x040000D4 ldr r0, _0804B880 @ =0x02031520 ldr r0, [r0, #0xc] str r0, [r1] ldr r4, _0804B884 @ =0x020314E0 ldr r3, [r4] str r3, [r1, #4] ldr r0, _0804B888 @ =0x80000A08 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0804B88C @ =0x0000132C adds r0, r3, r1 ldr r2, _0804B890 @ =0x00001334 adds r1, r3, r2 str r1, [r0] ldr r5, _0804B894 @ =0x00001330 adds r0, r3, r5 str r1, [r0] ldr r0, _0804B898 @ =0x0200B0C0 ldrh r0, [r0, #0x30] movs r1, #3 ands r0, r1 cmp r0, #1 bne _0804B746 ldr r1, _0804B89C @ =0x00000614 adds r0, r3, r1 movs r2, #0 movs r1, #0 strh r1, [r0] movs r5, #0x82 lsls r5, r5, #2 adds r0, r3, r5 strh r1, [r0] adds r5, #2 adds r0, r3, r5 strb r2, [r0] ldr r3, [r4] movs r2, #0xe3 lsls r2, r2, #1 adds r0, r3, r2 strh r1, [r0] movs r4, #0xe4 lsls r4, r4, #1 adds r0, r3, r4 strh r1, [r0] subs r5, #0x3e adds r0, r3, r5 strh r1, [r0] adds r2, #4 adds r0, r3, r2 strh r1, [r0] adds r4, #0xc adds r0, r3, r4 strh r1, [r0] adds r5, #0xa adds r2, r3, r5 ldr r0, _0804B8A0 @ =0x0000FFFC strh r0, [r2] movs r2, #0xec lsls r2, r2, #1 adds r0, r3, r2 subs r2, #0xd8 strh r2, [r0] adds r4, #6 adds r0, r3, r4 strh r2, [r0] subs r5, #8 adds r0, r3, r5 strh r1, [r0] adds r2, #0xd0 adds r0, r3, r2 strh r1, [r0] _0804B746: mov r3, r8 cmp r3, #0 bne _0804B74E b _0804B8CC _0804B74E: ldr r4, _0804B898 @ =0x0200B0C0 ldr r3, _0804B884 @ =0x020314E0 ldr r1, [r3] ldr r5, _0804B8A4 @ =0x000010FD adds r0, r1, r5 ldrb r0, [r0] strb r0, [r4, #4] ldr r2, _0804B8A8 @ =0x000010FE adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, #5] adds r5, #2 adds r0, r1, r5 ldrb r0, [r0] strb r0, [r4, #6] adds r2, #3 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, #0xf] adds r5, #3 adds r0, r1, r5 ldrb r0, [r0] strb r0, [r4, #0x10] adds r2, #2 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, #0x11] movs r5, #0x99 lsls r5, r5, #5 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r4, #0x12] ldr r2, _0804B8AC @ =0x00001322 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r4, #0x14] adds r5, #4 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r4, #0x28] adds r2, #4 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r4, #0x2a] ldr r5, _0804B8B0 @ =0x00001110 adds r0, r1, r5 ldrh r0, [r0] ldrh r2, [r4, #0x38] strh r0, [r4, #0x38] ldr r2, _0804B8B4 @ =0x00001112 adds r0, r1, r2 ldrh r0, [r0] ldrh r2, [r4, #0x3a] strh r0, [r4, #0x3a] adds r5, #4 adds r0, r1, r5 ldrh r0, [r0] ldrh r2, [r4, #0x3c] strh r0, [r4, #0x3c] ldr r2, _0804B8B8 @ =0x00001116 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r4, #0x2c] adds r5, #4 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r4, #0x26] movs r0, #0xba lsls r0, r0, #2 adds r2, r4, r0 ldr r5, _0804B8BC @ =0x00000F58 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] movs r0, #0xbb lsls r0, r0, #2 adds r2, r4, r0 adds r5, #4 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] movs r0, #0xbc lsls r0, r0, #2 adds r2, r4, r0 adds r5, #4 adds r0, r1, r5 ldr r0, [r0] str r0, [r2] movs r0, #0xbd lsls r0, r0, #2 adds r2, r4, r0 adds r5, #4 adds r1, r1, r5 ldr r0, [r1] str r0, [r2] movs r5, #0 mov sl, r3 adds r7, r4, #0 adds r6, r7, #7 mov r4, sl ldr r3, _0804B8C0 @ =0x000010F8 _0804B818: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r2, r1, r6 ldr r0, [r4] adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] strb r0, [r2] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #4 ble _0804B818 mov r1, sl ldr r0, [r1] movs r2, #0x88 lsls r2, r2, #5 adds r0, r0, r2 movs r1, #1 strb r1, [r0] mov r3, r8 cmp r3, #1 bne _0804B8DA ldrb r0, [r7, #4] cmp r0, #1 bhi _0804B8DA mov r4, sl ldr r3, [r4] adds r2, r3, #0 adds r2, #0x4e ldr r5, _0804B8C4 @ =0x00000121 adds r0, r3, r5 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804B8C8 @ =0x000005FC adds r0, r3, r2 ldrh r0, [r0] adds r2, r3, #0 adds r2, #0xe6 adds r0, r0, r1 ldrh r2, [r2] adds r0, r0, r2 adds r1, r3, #0 adds r1, #0x68 strh r0, [r1] b _0804B8DA .align 2, 0 _0804B87C: .4byte 0x040000D4 _0804B880: .4byte 0x02031520 _0804B884: .4byte 0x020314E0 _0804B888: .4byte 0x80000A08 _0804B88C: .4byte 0x0000132C _0804B890: .4byte 0x00001334 _0804B894: .4byte 0x00001330 _0804B898: .4byte 0x0200B0C0 _0804B89C: .4byte 0x00000614 _0804B8A0: .4byte 0x0000FFFC _0804B8A4: .4byte 0x000010FD _0804B8A8: .4byte 0x000010FE _0804B8AC: .4byte 0x00001322 _0804B8B0: .4byte 0x00001110 _0804B8B4: .4byte 0x00001112 _0804B8B8: .4byte 0x00001116 _0804B8BC: .4byte 0x00000F58 _0804B8C0: .4byte 0x000010F8 _0804B8C4: .4byte 0x00000121 _0804B8C8: .4byte 0x000005FC _0804B8CC: ldr r0, _0804B958 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0x6a ldrh r1, [r1] adds r0, #0x68 strh r1, [r0] _0804B8DA: ldr r5, _0804B958 @ =0x020314E0 ldr r0, [r5] movs r1, #0 strb r1, [r0, #0x1d] ldr r4, _0804B95C @ =0x0200B0C0 strb r1, [r4, #0xd] bl sub_467F4 ldrb r0, [r4, #4] cmp r0, #0 bne _0804B902 ldr r0, [r5] ldr r3, _0804B960 @ =0x0000029E adds r0, r0, r3 ldrb r0, [r0] cmp r0, #0 beq _0804B902 movs r0, #1 bl sub_46FD4 _0804B902: ldr r0, _0804B95C @ =0x0200B0C0 ldrb r1, [r0, #4] ldr r4, _0804B958 @ =0x020314E0 mov sl, r4 adds r7, r0, #0 ldr r5, _0804B964 @ =0x03005C00 mov sb, r5 cmp r1, #1 bhi _0804B9A0 movs r5, #0 ldr r6, _0804B968 @ =0x040000D4 _0804B918: mov r0, sl ldr r2, [r0] adds r2, #0x64 ldrh r1, [r2] lsls r0, r5, #0x10 asrs r0, r0, #0x10 adds r1, r0, r1 lsls r1, r1, #0x10 lsrs r4, r1, #0x10 movs r3, #0 ldrsh r1, [r2, r3] adds r1, #0xa adds r0, r0, r1 movs r1, #0x16 bl __modsi3 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 lsls r0, r4, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1f bgt _0804B974 lsls r0, r0, #0xa ldr r1, _0804B96C @ =0x0200FBB0 adds r0, r0, r1 str r0, [r6] lsls r0, r2, #0x10 asrs r0, r0, #6 ldr r4, _0804B970 @ =0x06008000 adds r0, r0, r4 b _0804B988 .align 2, 0 _0804B958: .4byte 0x020314E0 _0804B95C: .4byte 0x0200B0C0 _0804B960: .4byte 0x0000029E _0804B964: .4byte 0x03005C00 _0804B968: .4byte 0x040000D4 _0804B96C: .4byte 0x0200FBB0 _0804B970: .4byte 0x06008000 _0804B974: subs r0, #0x20 lsls r0, r0, #0x10 asrs r0, r0, #6 ldr r1, _0804BA38 @ =0x020030A0 adds r0, r0, r1 str r0, [r6] lsls r0, r2, #0x10 asrs r0, r0, #6 ldr r1, _0804BA3C @ =0x06008000 adds r0, r0, r1 _0804B988: str r0, [r6, #4] ldr r0, _0804BA40 @ =0x80000200 str r0, [r6, #8] ldr r0, [r6, #8] lsls r0, r5, #0x10 movs r2, #0x80 lsls r2, r2, #9 adds r0, r0, r2 lsrs r5, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x15 ble _0804B918 _0804B9A0: movs r5, #0 ldr r4, _0804BA44 @ =0x03005C00 ldr r3, _0804BA48 @ =0x000001FF ldr r2, _0804BA4C @ =0x000007FF _0804B9A8: lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r4 strh r3, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r2 ble _0804B9A8 ldr r1, _0804BA50 @ =0x040000D4 mov r3, sb str r3, [r1] ldr r0, _0804BA54 @ =0x06002000 str r0, [r1, #4] ldr r0, _0804BA58 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] movs r4, #0x2c ldrsh r0, [r7, r4] cmp r0, #0 beq _0804BABE mov r5, sl ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #6 bne _0804BA5C movs r2, #0 movs r3, #0xa6 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] cmp r2, r0 bgt _0804BAAE mov r6, sb movs r4, #0xc1 lsls r4, r4, #8 _0804B9F6: movs r5, #2 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _0804B9FC: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xb ble _0804B9FC movs r5, #0x80 lsls r5, r5, #9 adds r1, r2, r5 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 mov r3, sl ldr r0, [r3] movs r5, #0xa6 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r1, r0 ble _0804B9F6 b _0804BAAE .align 2, 0 _0804BA38: .4byte 0x020030A0 _0804BA3C: .4byte 0x06008000 _0804BA40: .4byte 0x80000200 _0804BA44: .4byte 0x03005C00 _0804BA48: .4byte 0x000001FF _0804BA4C: .4byte 0x000007FF _0804BA50: .4byte 0x040000D4 _0804BA54: .4byte 0x06002000 _0804BA58: .4byte 0x80000800 _0804BA5C: movs r2, #0 movs r3, #0xa6 lsls r3, r3, #2 adds r0, r1, r3 ldrh r0, [r0] cmp r2, r0 bgt _0804BAAE mov r6, sb movs r4, #0xc1 lsls r4, r4, #8 _0804BA70: movs r5, #1 lsls r2, r2, #0x10 asrs r3, r2, #0x10 _0804BA76: lsls r1, r5, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 adds r0, #0xf lsls r0, r0, #5 adds r0, r0, r3 lsls r0, r0, #1 adds r0, r0, r6 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0xa ble _0804BA76 movs r5, #0x80 lsls r5, r5, #9 adds r1, r2, r5 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 mov r3, sl ldr r0, [r3] movs r5, #0xa6 lsls r5, r5, #2 adds r0, r0, r5 ldrh r0, [r0] cmp r1, r0 ble _0804BA70 _0804BAAE: ldr r1, _0804BB20 @ =0x040000D4 mov r0, sb str r0, [r1] ldr r0, _0804BB24 @ =0x06002000 str r0, [r1, #4] ldr r0, _0804BB28 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] _0804BABE: ldr r1, _0804BB20 @ =0x040000D4 ldr r2, _0804BB2C @ =0x020314E0 ldr r4, _0804BB30 @ =0x0200B0C0 ldrb r0, [r4, #6] lsls r0, r0, #9 ldr r3, _0804BB34 @ =0x0000074C adds r0, r0, r3 ldr r2, [r2] adds r0, r2, r0 str r0, [r1] ldr r0, _0804BB38 @ =0x05000200 str r0, [r1, #4] ldr r3, _0804BB3C @ =0x80000100 str r3, [r1, #8] ldr r0, [r1, #8] ldrb r0, [r4, #6] lsls r0, r0, #9 ldr r5, _0804BB40 @ =0x00000B4C adds r0, r0, r5 adds r0, r2, r0 str r0, [r1] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, _0804BB44 @ =0x000005F6 adds r2, r2, r0 movs r0, #0 ldrsb r0, [r2, r0] lsls r0, r0, #5 ldr r2, _0804BB48 @ =0x08137E14 adds r0, r0, r2 str r0, [r1] ldr r0, _0804BB4C @ =0x05000220 str r0, [r1, #4] ldr r0, _0804BB50 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] bl sub_4BC34 ldrb r0, [r4, #4] cmp r0, #7 bhi _0804BBC0 lsls r0, r0, #2 ldr r1, _0804BB54 @ =_0804BB58 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804BB20: .4byte 0x040000D4 _0804BB24: .4byte 0x06002000 _0804BB28: .4byte 0x80000400 _0804BB2C: .4byte 0x020314E0 _0804BB30: .4byte 0x0200B0C0 _0804BB34: .4byte 0x0000074C _0804BB38: .4byte 0x05000200 _0804BB3C: .4byte 0x80000100 _0804BB40: .4byte 0x00000B4C _0804BB44: .4byte 0x000005F6 _0804BB48: .4byte 0x08137E14 _0804BB4C: .4byte 0x05000220 _0804BB50: .4byte 0x80000010 _0804BB54: .4byte _0804BB58 _0804BB58: @ jump table .4byte _0804BB78 @ case 0 .4byte _0804BB98 @ case 1 .4byte _0804BB9E @ case 2 .4byte _0804BBA4 @ case 3 .4byte _0804BBAA @ case 4 .4byte _0804BBB0 @ case 5 .4byte _0804BBB6 @ case 6 .4byte _0804BBBC @ case 7 _0804BB78: bl sub_50848 ldr r0, _0804BB90 @ =0x020314E0 ldr r0, [r0] ldr r3, _0804BB94 @ =0x000001A5 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_4E9F0 b _0804BBC0 .align 2, 0 _0804BB90: .4byte 0x020314E0 _0804BB94: .4byte 0x000001A5 _0804BB98: bl sub_50AD4 b _0804BBC0 _0804BB9E: bl sub_50D48 b _0804BBC0 _0804BBA4: bl sub_50DE0 b _0804BBC0 _0804BBAA: bl sub_50F04 b _0804BBC0 _0804BBB0: bl sub_50FD4 b _0804BBC0 _0804BBB6: bl sub_51090 b _0804BBC0 _0804BBBC: bl sub_51150 _0804BBC0: movs r5, #0 ldr r4, _0804BC24 @ =0x020314E0 mov sl, r4 ldr r7, _0804BC28 @ =0x0200B0C0 movs r0, #0xb8 mov ip, r0 _0804BBCC: lsls r1, r5, #0x10 asrs r1, r1, #0x10 mov r4, ip muls r4, r1, r4 adds r4, r4, r7 mov r2, sl ldr r6, [r2] lsls r2, r1, #1 ldrb r3, [r7, #6] movs r0, #0xc8 muls r0, r3, r0 adds r2, r2, r0 ldr r3, _0804BC2C @ =0x00000F68 adds r0, r6, r3 adds r0, r0, r2 ldrh r0, [r0] movs r5, #0xbe lsls r5, r5, #2 adds r4, r4, r5 strh r0, [r4] adds r1, #1 lsls r1, r1, #0x10 lsrs r5, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x63 ble _0804BBCC mov r0, r8 cmp r0, #1 bne _0804BC14 movs r0, #0 str r0, [r6] ldr r1, _0804BC30 @ =0x0E000544 adds r0, r6, #0 movs r2, #4 bl sub_55654 _0804BC14: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804BC24: .4byte 0x020314E0 _0804BC28: .4byte 0x0200B0C0 _0804BC2C: .4byte 0x00000F68 _0804BC30: .4byte 0x0E000544 thumb_func_start sub_4BC34 sub_4BC34: @ 0x0804BC34 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _0804BC50 @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #7 bhi _0804BCC6 lsls r0, r0, #2 ldr r1, _0804BC54 @ =_0804BC58 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804BC50: .4byte 0x0200B0C0 _0804BC54: .4byte _0804BC58 _0804BC58: @ jump table .4byte _0804BC78 @ case 0 .4byte _0804BC82 @ case 1 .4byte _0804BC8C @ case 2 .4byte _0804BC96 @ case 3 .4byte _0804BCA0 @ case 4 .4byte _0804BCAA @ case 5 .4byte _0804BCB4 @ case 6 .4byte _0804BCBE @ case 7 _0804BC78: bl sub_4C290 bl sub_4C808 b _0804BCC6 _0804BC82: bl sub_4C290 bl sub_4CA18 b _0804BCC6 _0804BC8C: bl nullsub_18 bl sub_4CAE8 b _0804BCC6 _0804BC96: bl nullsub_18 bl sub_4CB0C b _0804BCC6 _0804BCA0: bl nullsub_18 bl sub_4CB30 b _0804BCC6 _0804BCAA: bl nullsub_18 bl sub_4CBB4 b _0804BCC6 _0804BCB4: bl nullsub_18 bl sub_4CC58 b _0804BCC6 _0804BCBE: bl nullsub_18 bl sub_4CD60 _0804BCC6: ldr r0, _0804BCE4 @ =0x020314E0 ldr r1, [r0] adds r1, #0xe4 ldrb r1, [r1] subs r1, #1 adds r3, r0, #0 cmp r1, #0x15 bls _0804BCD8 b _0804C274 _0804BCD8: lsls r0, r1, #2 ldr r1, _0804BCE8 @ =_0804BCEC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804BCE4: .4byte 0x020314E0 _0804BCE8: .4byte _0804BCEC _0804BCEC: @ jump table .4byte _0804BD44 @ case 0 .4byte _0804BDA4 @ case 1 .4byte _0804BDC4 @ case 2 .4byte _0804BDE4 @ case 3 .4byte _0804BE14 @ case 4 .4byte _0804BE34 @ case 5 .4byte _0804BE54 @ case 6 .4byte _0804BE74 @ case 7 .4byte _0804BE94 @ case 8 .4byte _0804BEB4 @ case 9 .4byte _0804BED4 @ case 10 .4byte _0804BEF4 @ case 11 .4byte _0804BFB0 @ case 12 .4byte _0804BF14 @ case 13 .4byte _0804C094 @ case 14 .4byte _0804C0C8 @ case 15 .4byte _0804C0E8 @ case 16 .4byte _0804C108 @ case 17 .4byte _0804C1A8 @ case 18 .4byte _0804C1C8 @ case 19 .4byte _0804C1E8 @ case 20 .4byte _0804C264 @ case 21 _0804BD44: ldr r1, [r3] movs r2, #0xf1 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0804BD84 movs r3, #0xe1 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bne _0804BD84 ldr r1, _0804BD74 @ =0x040000D4 ldr r0, _0804BD78 @ =0x08395A4C str r0, [r1] ldr r0, _0804BD7C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BD80 @ =0x80001200 b _0804C270 .align 2, 0 _0804BD74: .4byte 0x040000D4 _0804BD78: .4byte 0x08395A4C _0804BD7C: .4byte 0x06015800 _0804BD80: .4byte 0x80001200 _0804BD84: ldr r1, _0804BD94 @ =0x040000D4 ldr r0, _0804BD98 @ =0x08397E6C str r0, [r1] ldr r0, _0804BD9C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BDA0 @ =0x80001200 b _0804C270 .align 2, 0 _0804BD94: .4byte 0x040000D4 _0804BD98: .4byte 0x08397E6C _0804BD9C: .4byte 0x06015800 _0804BDA0: .4byte 0x80001200 _0804BDA4: ldr r1, _0804BDB4 @ =0x040000D4 ldr r0, _0804BDB8 @ =0x083A704C str r0, [r1] ldr r0, _0804BDBC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BDC0 @ =0x80000800 b _0804C270 .align 2, 0 _0804BDB4: .4byte 0x040000D4 _0804BDB8: .4byte 0x083A704C _0804BDBC: .4byte 0x06015800 _0804BDC0: .4byte 0x80000800 _0804BDC4: ldr r1, _0804BDD4 @ =0x040000D4 ldr r0, _0804BDD8 @ =0x0848FD8C str r0, [r1] ldr r0, _0804BDDC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BDE0 @ =0x80000650 b _0804C270 .align 2, 0 _0804BDD4: .4byte 0x040000D4 _0804BDD8: .4byte 0x0848FD8C _0804BDDC: .4byte 0x06015800 _0804BDE0: .4byte 0x80000650 _0804BDE4: ldr r1, _0804BE04 @ =0x040000D4 ldr r2, _0804BE08 @ =0x086ACEF8 ldr r0, [r3] adds r0, #0xf2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804BE0C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE10 @ =0x800012F0 b _0804C270 .align 2, 0 _0804BE04: .4byte 0x040000D4 _0804BE08: .4byte 0x086ACEF8 _0804BE0C: .4byte 0x06015800 _0804BE10: .4byte 0x800012F0 _0804BE14: ldr r1, _0804BE24 @ =0x040000D4 ldr r0, _0804BE28 @ =0x083A07CC str r0, [r1] ldr r0, _0804BE2C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE30 @ =0x80001000 b _0804C270 .align 2, 0 _0804BE24: .4byte 0x040000D4 _0804BE28: .4byte 0x083A07CC _0804BE2C: .4byte 0x06015800 _0804BE30: .4byte 0x80001000 _0804BE34: ldr r1, _0804BE44 @ =0x040000D4 ldr r0, _0804BE48 @ =0x083A29EC str r0, [r1] ldr r0, _0804BE4C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE50 @ =0x80000400 b _0804C270 .align 2, 0 _0804BE44: .4byte 0x040000D4 _0804BE48: .4byte 0x083A29EC _0804BE4C: .4byte 0x06015800 _0804BE50: .4byte 0x80000400 _0804BE54: ldr r1, _0804BE64 @ =0x040000D4 ldr r0, _0804BE68 @ =0x083A340C str r0, [r1] ldr r0, _0804BE6C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE70 @ =0x80001000 b _0804C270 .align 2, 0 _0804BE64: .4byte 0x040000D4 _0804BE68: .4byte 0x083A340C _0804BE6C: .4byte 0x06015800 _0804BE70: .4byte 0x80001000 _0804BE74: ldr r1, _0804BE84 @ =0x040000D4 ldr r0, _0804BE88 @ =0x083A562C str r0, [r1] ldr r0, _0804BE8C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BE90 @ =0x80000C00 b _0804C270 .align 2, 0 _0804BE84: .4byte 0x040000D4 _0804BE88: .4byte 0x083A562C _0804BE8C: .4byte 0x06015800 _0804BE90: .4byte 0x80000C00 _0804BE94: ldr r1, _0804BEA4 @ =0x040000D4 ldr r0, _0804BEA8 @ =0x081428D4 str r0, [r1] ldr r0, _0804BEAC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BEB0 @ =0x80000E00 b _0804C270 .align 2, 0 _0804BEA4: .4byte 0x040000D4 _0804BEA8: .4byte 0x081428D4 _0804BEAC: .4byte 0x06015800 _0804BEB0: .4byte 0x80000E00 _0804BEB4: ldr r1, _0804BEC4 @ =0x040000D4 ldr r0, _0804BEC8 @ =0x0839C78C str r0, [r1] ldr r0, _0804BECC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BED0 @ =0x80000A00 b _0804C270 .align 2, 0 _0804BEC4: .4byte 0x040000D4 _0804BEC8: .4byte 0x0839C78C _0804BECC: .4byte 0x06015800 _0804BED0: .4byte 0x80000A00 _0804BED4: ldr r1, _0804BEE4 @ =0x040000D4 ldr r0, _0804BEE8 @ =0x0839DDAC str r0, [r1] ldr r0, _0804BEEC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BEF0 @ =0x80001400 b _0804C270 .align 2, 0 _0804BEE4: .4byte 0x040000D4 _0804BEE8: .4byte 0x0839DDAC _0804BEEC: .4byte 0x06015800 _0804BEF0: .4byte 0x80001400 _0804BEF4: ldr r1, _0804BF04 @ =0x040000D4 ldr r0, _0804BF08 @ =0x084FA20C str r0, [r1] ldr r0, _0804BF0C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804BF10 @ =0x80000140 b _0804C270 .align 2, 0 _0804BF04: .4byte 0x040000D4 _0804BF08: .4byte 0x084FA20C _0804BF0C: .4byte 0x06015800 _0804BF10: .4byte 0x80000140 _0804BF14: movs r2, #0 ldr r7, _0804BF50 @ =0x084F61EC mov r8, r7 ldr r0, _0804BF54 @ =0x020314E0 ldr r0, [r0] movs r1, #0xb3 lsls r1, r1, #3 adds r1, r1, r0 mov sb, r1 ldr r3, _0804BF58 @ =0x086A3707 mov ip, r3 ldr r4, _0804BF5C @ =0x040000D4 ldr r6, _0804BF60 @ =0x06015800 ldr r5, _0804BF64 @ =0x80000020 _0804BF30: lsls r2, r2, #0x10 asrs r3, r2, #0x10 mov r7, sb ldrh r1, [r7] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r3, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _0804BF6C ldr r0, _0804BF68 @ =0x083FFD4C b _0804BF76 .align 2, 0 _0804BF50: .4byte 0x084F61EC _0804BF54: .4byte 0x020314E0 _0804BF58: .4byte 0x086A3707 _0804BF5C: .4byte 0x040000D4 _0804BF60: .4byte 0x06015800 _0804BF64: .4byte 0x80000020 _0804BF68: .4byte 0x083FFD4C _0804BF6C: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0804BFA0 @ =0x083FF04C adds r0, r0, r1 _0804BF76: str r0, [r4] lsls r0, r3, #6 adds r0, r0, r6 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] movs r1, #0x80 lsls r1, r1, #9 adds r0, r2, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804BF30 ldr r1, _0804BFA4 @ =0x040000D4 mov r2, r8 str r2, [r1] ldr r0, _0804BFA8 @ =0x06015C00 str r0, [r1, #4] ldr r0, _0804BFAC @ =0x800004A0 b _0804C270 .align 2, 0 _0804BFA0: .4byte 0x083FF04C _0804BFA4: .4byte 0x040000D4 _0804BFA8: .4byte 0x06015C00 _0804BFAC: .4byte 0x800004A0 _0804BFB0: movs r2, #0 ldr r0, _0804BFE8 @ =0x020314E0 ldr r0, [r0] movs r3, #0xb3 lsls r3, r3, #3 adds r3, r3, r0 mov r8, r3 ldr r7, _0804BFEC @ =0x086A3707 mov ip, r7 ldr r4, _0804BFF0 @ =0x040000D4 ldr r6, _0804BFF4 @ =0x06015800 ldr r5, _0804BFF8 @ =0x80000020 _0804BFC8: lsls r0, r2, #0x10 asrs r3, r0, #0x10 mov r0, r8 ldrh r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #3 adds r0, r3, r0 mov r7, ip adds r1, r0, r7 ldrb r0, [r1] cmp r0, #0x20 bne _0804C000 ldr r0, _0804BFFC @ =0x083FFD4C b _0804C00A .align 2, 0 _0804BFE8: .4byte 0x020314E0 _0804BFEC: .4byte 0x086A3707 _0804BFF0: .4byte 0x040000D4 _0804BFF4: .4byte 0x06015800 _0804BFF8: .4byte 0x80000020 _0804BFFC: .4byte 0x083FFD4C _0804C000: ldrb r0, [r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0804C04C @ =0x083FF04C adds r0, r0, r1 _0804C00A: str r0, [r4] lsls r0, r3, #6 adds r0, r0, r6 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] lsls r0, r2, #0x10 movs r1, #0x80 lsls r1, r1, #9 adds r0, r0, r1 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804BFC8 movs r2, #0 ldr r3, _0804C050 @ =0x086ACFE0 mov ip, r3 ldr r5, _0804C054 @ =0x040000D4 ldr r7, _0804C058 @ =0x06015800 ldr r6, _0804C05C @ =0x80000020 _0804C032: lsls r0, r2, #0x10 asrs r4, r0, #0x10 lsls r1, r4, #1 mov r2, ip adds r3, r1, r2 movs r2, #0 ldrsh r1, [r3, r2] adds r2, r0, #0 cmp r1, #0x20 bne _0804C064 ldr r0, _0804C060 @ =0x083FFD4C b _0804C070 .align 2, 0 _0804C04C: .4byte 0x083FF04C _0804C050: .4byte 0x086ACFE0 _0804C054: .4byte 0x040000D4 _0804C058: .4byte 0x06015800 _0804C05C: .4byte 0x80000020 _0804C060: .4byte 0x083FFD4C _0804C064: movs r1, #0 ldrsh r0, [r3, r1] subs r0, #0x41 lsls r0, r0, #6 ldr r1, _0804C090 @ =0x083FF04C adds r0, r0, r1 _0804C070: str r0, [r5] adds r0, r4, #0 adds r0, #0xa lsls r0, r0, #6 adds r0, r0, r7 str r0, [r5, #4] str r6, [r5, #8] ldr r0, [r5, #8] movs r3, #0x80 lsls r3, r3, #9 adds r0, r2, r3 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _0804C032 b _0804C274 .align 2, 0 _0804C090: .4byte 0x083FF04C _0804C094: ldr r1, _0804C0B4 @ =0x040000D4 ldr r2, _0804C0B8 @ =0x086AD474 ldr r0, [r3] ldr r7, _0804C0BC @ =0x0000025F adds r0, r0, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r2 ldr r0, [r0] str r0, [r1] ldr r0, _0804C0C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C0C4 @ =0x80000E00 b _0804C270 .align 2, 0 _0804C0B4: .4byte 0x040000D4 _0804C0B8: .4byte 0x086AD474 _0804C0BC: .4byte 0x0000025F _0804C0C0: .4byte 0x06015800 _0804C0C4: .4byte 0x80000E00 _0804C0C8: ldr r1, _0804C0D8 @ =0x040000D4 ldr r0, _0804C0DC @ =0x08158284 str r0, [r1] ldr r0, _0804C0E0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C0E4 @ =0x80001200 b _0804C270 .align 2, 0 _0804C0D8: .4byte 0x040000D4 _0804C0DC: .4byte 0x08158284 _0804C0E0: .4byte 0x06015800 _0804C0E4: .4byte 0x80001200 _0804C0E8: ldr r1, _0804C0F8 @ =0x040000D4 ldr r0, _0804C0FC @ =0x083A562C str r0, [r1] ldr r0, _0804C100 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C104 @ =0x80000C00 b _0804C270 .align 2, 0 _0804C0F8: .4byte 0x040000D4 _0804C0FC: .4byte 0x083A562C _0804C100: .4byte 0x06015800 _0804C104: .4byte 0x80000C00 _0804C108: ldr r7, _0804C17C @ =0x040000D4 ldr r0, _0804C180 @ =0x084F61EC str r0, [r7] ldr r0, _0804C184 @ =0x06015C00 str r0, [r7, #4] ldr r0, _0804C188 @ =0x800004A0 str r0, [r7, #8] ldr r0, [r7, #8] ldr r2, [r3] ldr r1, _0804C18C @ =0x000001A5 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804C12A b _0804C274 _0804C12A: ldr r1, _0804C190 @ =0x086AD2DE movs r3, #0xd3 lsls r3, r3, #1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r0, r0, r1 ldrh r4, [r0] lsls r4, r4, #3 ldr r0, _0804C194 @ =0x086AD000 adds r4, r4, r0 ldrh r0, [r4, #6] movs r1, #0xa bl __udivsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xa ldr r6, _0804C198 @ =0x08480E0C adds r0, r0, r6 str r0, [r7] ldr r0, _0804C19C @ =0x06015DA0 str r0, [r7, #4] ldr r5, _0804C1A0 @ =0x80000020 str r5, [r7, #8] ldr r0, [r7, #8] ldrh r0, [r4, #6] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x10 asrs r0, r0, #0xa adds r0, r0, r6 str r0, [r7] ldr r0, _0804C1A4 @ =0x06015E60 str r0, [r7, #4] str r5, [r7, #8] ldr r0, [r7, #8] b _0804C274 .align 2, 0 _0804C17C: .4byte 0x040000D4 _0804C180: .4byte 0x084F61EC _0804C184: .4byte 0x06015C00 _0804C188: .4byte 0x800004A0 _0804C18C: .4byte 0x000001A5 _0804C190: .4byte 0x086AD2DE _0804C194: .4byte 0x086AD000 _0804C198: .4byte 0x08480E0C _0804C19C: .4byte 0x06015DA0 _0804C1A0: .4byte 0x80000020 _0804C1A4: .4byte 0x06015E60 _0804C1A8: ldr r1, _0804C1B8 @ =0x040000D4 ldr r0, _0804C1BC @ =0x0850100C str r0, [r1] ldr r0, _0804C1C0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C1C4 @ =0x80001200 b _0804C270 .align 2, 0 _0804C1B8: .4byte 0x040000D4 _0804C1BC: .4byte 0x0850100C _0804C1C0: .4byte 0x06015800 _0804C1C4: .4byte 0x80001200 _0804C1C8: ldr r1, _0804C1D8 @ =0x040000D4 ldr r0, _0804C1DC @ =0x0850398C str r0, [r1] ldr r0, _0804C1E0 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C1E4 @ =0x80001400 b _0804C270 .align 2, 0 _0804C1D8: .4byte 0x040000D4 _0804C1DC: .4byte 0x0850398C _0804C1E0: .4byte 0x06015800 _0804C1E4: .4byte 0x80001400 _0804C1E8: ldr r0, _0804C20C @ =0x0200B0C0 ldrb r0, [r0, #4] cmp r0, #0 bne _0804C22C ldr r1, _0804C210 @ =0x040000D4 ldr r0, _0804C214 @ =0x081BCAA4 str r0, [r1] ldr r0, _0804C218 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C21C @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0804C220 @ =0x081BE2C4 str r0, [r1] ldr r0, _0804C224 @ =0x050003C0 str r0, [r1, #4] ldr r0, _0804C228 @ =0x80000010 b _0804C270 .align 2, 0 _0804C20C: .4byte 0x0200B0C0 _0804C210: .4byte 0x040000D4 _0804C214: .4byte 0x081BCAA4 _0804C218: .4byte 0x06015800 _0804C21C: .4byte 0x80000C00 _0804C220: .4byte 0x081BE2C4 _0804C224: .4byte 0x050003C0 _0804C228: .4byte 0x80000010 _0804C22C: ldr r1, _0804C248 @ =0x040000D4 ldr r0, _0804C24C @ =0x081BE4C4 str r0, [r1] ldr r0, _0804C250 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C254 @ =0x80000C00 str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, _0804C258 @ =0x081BFCE4 str r0, [r1] ldr r0, _0804C25C @ =0x050003C0 str r0, [r1, #4] ldr r0, _0804C260 @ =0x80000010 b _0804C270 .align 2, 0 _0804C248: .4byte 0x040000D4 _0804C24C: .4byte 0x081BE4C4 _0804C250: .4byte 0x06015800 _0804C254: .4byte 0x80000C00 _0804C258: .4byte 0x081BFCE4 _0804C25C: .4byte 0x050003C0 _0804C260: .4byte 0x80000010 _0804C264: ldr r1, _0804C280 @ =0x040000D4 ldr r0, _0804C284 @ =0x08526DCC str r0, [r1] ldr r0, _0804C288 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804C28C @ =0x80000600 _0804C270: str r0, [r1, #8] ldr r0, [r1, #8] _0804C274: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804C280: .4byte 0x040000D4 _0804C284: .4byte 0x08526DCC _0804C288: .4byte 0x06015800 _0804C28C: .4byte 0x80000600 thumb_func_start sub_4C290 sub_4C290: @ 0x0804C290 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 bl sub_28AE0 bl sub_28BFC movs r1, #0 ldr r0, _0804C3B8 @ =0x020314E0 ldr r4, [r0] ldr r3, _0804C3BC @ =0x040000D4 mov sb, r0 _0804C2AE: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 adds r0, r4, r0 ldr r1, _0804C3C0 @ =0x000013BC adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 lsls r0, r0, #9 ldr r1, _0804C3C4 @ =0x083FE44C adds r0, r0, r1 str r0, [r3] lsls r0, r2, #9 ldr r5, _0804C3C8 @ =0x06010000 adds r0, r0, r5 str r0, [r3, #4] ldr r0, _0804C3CC @ =0x80000100 str r0, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0804C2AE mov r1, sb ldr r0, [r1] ldr r2, _0804C3D0 @ =0x0000132C adds r0, r0, r2 ldr r0, [r0] ldrh r0, [r0, #0xa] ldr r2, _0804C3BC @ =0x040000D4 lsrs r0, r0, #0xc lsls r0, r0, #7 ldr r1, _0804C3D4 @ =0x083BB16C adds r0, r0, r1 str r0, [r2] ldr r0, _0804C3D8 @ =0x06010400 str r0, [r2, #4] ldr r0, _0804C3DC @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 ldr r5, _0804C3E0 @ =0x084C07EC ldr r6, _0804C3E4 @ =0x084FA48C ldr r7, _0804C3E8 @ =0x084C00EC adds r3, r2, #0 mov r2, sb ldr r0, [r2] ldr r2, _0804C3EC @ =0x00000744 adds r4, r0, r2 _0804C320: lsls r2, r1, #0x10 asrs r2, r2, #0x10 adds r0, r4, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 adds r0, r0, r5 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #7 ldr r1, _0804C3F0 @ =0x06010480 adds r0, r0, r1 str r0, [r3, #4] ldr r0, _0804C3F4 @ =0x800000C0 str r0, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #1 ble _0804C320 mov r2, sb ldr r0, [r2] ldr r3, _0804C3F8 @ =0x000001E5 adds r0, r0, r3 ldr r2, _0804C3BC @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #5 adds r0, r0, r6 str r0, [r2] ldr r0, _0804C3FC @ =0x06010780 str r0, [r2, #4] ldr r0, _0804C400 @ =0x80000090 str r0, [r2, #8] ldr r0, [r2, #8] mov r5, sb ldr r0, [r5] movs r1, #0xe5 lsls r1, r1, #1 adds r0, r0, r1 ldrh r3, [r0] mov sl, r3 movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #7 adds r0, r0, r7 str r0, [r2] ldr r0, _0804C404 @ =0x06010AE0 str r0, [r2, #4] ldr r0, _0804C3DC @ =0x80000040 str r0, [r2, #8] ldr r0, [r2, #8] movs r1, #0 _0804C396: mov r2, sb ldr r0, [r2] lsls r2, r1, #0x10 asrs r1, r2, #0x10 ldr r3, _0804C408 @ =0x00000747 adds r0, r0, r3 adds r0, r0, r1 ldrb r0, [r0] adds r7, r2, #0 cmp r0, #9 bls _0804C3AE b _0804C602 _0804C3AE: lsls r0, r0, #2 ldr r1, _0804C40C @ =_0804C410 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804C3B8: .4byte 0x020314E0 _0804C3BC: .4byte 0x040000D4 _0804C3C0: .4byte 0x000013BC _0804C3C4: .4byte 0x083FE44C _0804C3C8: .4byte 0x06010000 _0804C3CC: .4byte 0x80000100 _0804C3D0: .4byte 0x0000132C _0804C3D4: .4byte 0x083BB16C _0804C3D8: .4byte 0x06010400 _0804C3DC: .4byte 0x80000040 _0804C3E0: .4byte 0x084C07EC _0804C3E4: .4byte 0x084FA48C _0804C3E8: .4byte 0x084C00EC _0804C3EC: .4byte 0x00000744 _0804C3F0: .4byte 0x06010480 _0804C3F4: .4byte 0x800000C0 _0804C3F8: .4byte 0x000001E5 _0804C3FC: .4byte 0x06010780 _0804C400: .4byte 0x80000090 _0804C404: .4byte 0x06010AE0 _0804C408: .4byte 0x00000747 _0804C40C: .4byte _0804C410 _0804C410: @ jump table .4byte _0804C438 @ case 0 .4byte _0804C5D4 @ case 1 .4byte _0804C5D4 @ case 2 .4byte _0804C55E @ case 3 .4byte _0804C5D4 @ case 4 .4byte _0804C602 @ case 5 .4byte _0804C5D4 @ case 6 .4byte _0804C5D4 @ case 7 .4byte _0804C5D4 @ case 8 .4byte _0804C460 @ case 9 _0804C438: ldr r3, _0804C454 @ =0x040000D4 mov r5, sb ldr r0, [r5] asrs r2, r7, #0x10 ldr r1, _0804C458 @ =0x00000749 adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0804C45C @ =0x0848D68C b _0804C5EC .align 2, 0 _0804C454: .4byte 0x040000D4 _0804C458: .4byte 0x00000749 _0804C45C: .4byte 0x0848D68C _0804C460: mov r5, sb ldr r4, [r5] movs r1, #0x97 lsls r1, r1, #2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804C510 ldr r1, _0804C498 @ =0x0200B134 ldr r2, _0804C49C @ =0x0000059A adds r0, r4, r2 ldrh r3, [r0] adds r1, r3, r1 ldrb r0, [r1] cmp r0, #0 bne _0804C4AC asrs r3, r7, #0x10 ldr r2, _0804C4A0 @ =0x00000749 adds r0, r4, r2 adds r0, r0, r3 movs r1, #0xcd strb r1, [r0] ldr r6, _0804C4A4 @ =0x040000D4 ldr r5, _0804C4A8 @ =0x086BB6A4 mov r8, r5 b _0804C528 .align 2, 0 _0804C498: .4byte 0x0200B134 _0804C49C: .4byte 0x0000059A _0804C4A0: .4byte 0x00000749 _0804C4A4: .4byte 0x040000D4 _0804C4A8: .4byte 0x086BB6A4 _0804C4AC: cmp r0, #3 bhi _0804C4E8 asrs r1, r7, #0x10 ldr r2, _0804C4D4 @ =0x00000749 adds r0, r4, r2 adds r0, r0, r1 strb r3, [r0] ldr r1, _0804C4D8 @ =0x040000D4 ldr r0, _0804C4DC @ =0x086BB6A4 ldr r0, [r0] movs r3, #0xf0 lsls r3, r3, #1 adds r0, r0, r3 str r0, [r1] ldr r0, _0804C4E0 @ =0x050003A0 str r0, [r1, #4] ldr r0, _0804C4E4 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] b _0804C55E .align 2, 0 _0804C4D4: .4byte 0x00000749 _0804C4D8: .4byte 0x040000D4 _0804C4DC: .4byte 0x086BB6A4 _0804C4E0: .4byte 0x050003A0 _0804C4E4: .4byte 0x80000010 _0804C4E8: asrs r2, r7, #0x10 ldr r1, _0804C504 @ =0x00000749 adds r0, r4, r1 adds r0, r0, r2 strb r3, [r0] ldr r6, _0804C508 @ =0x040000D4 ldr r5, _0804C50C @ =0x086BB6A4 mov r8, r5 mov r3, sb ldr r0, [r3] adds r0, r0, r1 adds r0, r0, r2 b _0804C530 .align 2, 0 _0804C504: .4byte 0x00000749 _0804C508: .4byte 0x040000D4 _0804C50C: .4byte 0x086BB6A4 _0804C510: asrs r3, r7, #0x10 ldr r2, _0804C5B4 @ =0x00000749 adds r1, r4, r2 adds r1, r1, r3 movs r5, #0xb3 lsls r5, r5, #3 adds r0, r4, r5 ldrh r0, [r0] strb r0, [r1] ldr r6, _0804C5B8 @ =0x040000D4 ldr r0, _0804C5BC @ =0x086BB6A4 mov r8, r0 _0804C528: mov r1, sb ldr r0, [r1] adds r0, r0, r2 adds r0, r0, r3 _0804C530: ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x13 ldr r1, [r4] adds r1, r1, r0 str r1, [r6] ldr r0, _0804C5C0 @ =0x050003A0 str r0, [r6, #4] ldr r0, _0804C5C4 @ =0x80000010 str r0, [r6, #8] ldr r0, [r6, #8] _0804C55E: ldr r2, _0804C5B8 @ =0x040000D4 ldr r3, _0804C5C8 @ =0x086BB738 mov r8, r3 mov r5, sb ldr r0, [r5] asrs r6, r7, #0x10 ldr r1, _0804C5B4 @ =0x00000749 adds r0, r0, r1 adds r0, r0, r6 ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf str r2, [sp] bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 ldr r2, [sp] str r0, [r2] lsls r0, r6, #1 adds r0, r0, r6 lsls r0, r0, #3 ldr r3, _0804C5CC @ =0x06010CA0 adds r0, r0, r3 str r0, [r2, #4] ldr r0, _0804C5D0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] b _0804C602 .align 2, 0 _0804C5B4: .4byte 0x00000749 _0804C5B8: .4byte 0x040000D4 _0804C5BC: .4byte 0x086BB6A4 _0804C5C0: .4byte 0x050003A0 _0804C5C4: .4byte 0x80000010 _0804C5C8: .4byte 0x086BB738 _0804C5CC: .4byte 0x06010CA0 _0804C5D0: .4byte 0x80000180 _0804C5D4: ldr r3, _0804C630 @ =0x040000D4 mov r5, sb ldr r0, [r5] asrs r2, r7, #0x10 ldr r1, _0804C634 @ =0x00000749 adds r0, r0, r1 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0804C638 @ =0x083A8EEC _0804C5EC: adds r0, r0, r1 str r0, [r3] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #8 ldr r2, _0804C63C @ =0x06010CA0 adds r0, r0, r2 str r0, [r3, #4] ldr r0, _0804C640 @ =0x80000180 str r0, [r3, #8] ldr r0, [r3, #8] _0804C602: movs r3, #0x80 lsls r3, r3, #9 adds r0, r7, r3 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 bgt _0804C612 b _0804C396 _0804C612: mov r5, sb ldr r1, [r5] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0804C69C movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #7 blt _0804C69C cmp r0, #8 ble _0804C644 cmp r0, #9 beq _0804C660 b _0804C69C .align 2, 0 _0804C630: .4byte 0x040000D4 _0804C634: .4byte 0x00000749 _0804C638: .4byte 0x083A8EEC _0804C63C: .4byte 0x06010CA0 _0804C640: .4byte 0x80000180 _0804C644: ldr r2, _0804C654 @ =0x000005A9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #4 bls _0804C68C ldr r1, _0804C658 @ =0x040000D4 ldr r0, _0804C65C @ =0x02031060 b _0804C690 .align 2, 0 _0804C654: .4byte 0x000005A9 _0804C658: .4byte 0x040000D4 _0804C65C: .4byte 0x02031060 _0804C660: movs r3, #0xb5 lsls r3, r3, #3 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1f bgt _0804C69C ldr r5, _0804C680 @ =0x000005A9 adds r0, r1, r5 ldrb r0, [r0] cmp r0, #4 bls _0804C68C ldr r1, _0804C684 @ =0x040000D4 ldr r0, _0804C688 @ =0x02031060 b _0804C690 .align 2, 0 _0804C680: .4byte 0x000005A9 _0804C684: .4byte 0x040000D4 _0804C688: .4byte 0x02031060 _0804C68C: ldr r1, _0804C6B8 @ =0x040000D4 ldr r0, _0804C6BC @ =0x02030760 _0804C690: str r0, [r1] ldr r0, _0804C6C0 @ =0x06010CA0 str r0, [r1, #4] ldr r0, _0804C6C4 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _0804C69C: mov r0, sb ldr r1, [r0] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #8 bne _0804C720 movs r0, #0x17 ldrsb r0, [r1, r0] cmp r0, #2 beq _0804C6C8 cmp r0, #3 beq _0804C6E4 b _0804C720 .align 2, 0 _0804C6B8: .4byte 0x040000D4 _0804C6BC: .4byte 0x02030760 _0804C6C0: .4byte 0x06010CA0 _0804C6C4: .4byte 0x80000240 _0804C6C8: ldr r2, _0804C6D8 @ =0x000005A9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, #4 bls _0804C710 ldr r1, _0804C6DC @ =0x040000D4 ldr r0, _0804C6E0 @ =0x02031060 b _0804C714 .align 2, 0 _0804C6D8: .4byte 0x000005A9 _0804C6DC: .4byte 0x040000D4 _0804C6E0: .4byte 0x02031060 _0804C6E4: movs r3, #0xb5 lsls r3, r3, #3 adds r0, r1, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x1f bgt _0804C720 ldr r5, _0804C704 @ =0x000005A9 adds r0, r1, r5 ldrb r0, [r0] cmp r0, #4 bls _0804C710 ldr r1, _0804C708 @ =0x040000D4 ldr r0, _0804C70C @ =0x02031060 b _0804C714 .align 2, 0 _0804C704: .4byte 0x000005A9 _0804C708: .4byte 0x040000D4 _0804C70C: .4byte 0x02031060 _0804C710: ldr r1, _0804C7C4 @ =0x040000D4 ldr r0, _0804C7C8 @ =0x02030760 _0804C714: str r0, [r1] ldr r0, _0804C7CC @ =0x06010CA0 str r0, [r1, #4] ldr r0, _0804C7D0 @ =0x80000240 str r0, [r1, #8] ldr r0, [r1, #8] _0804C720: ldr r2, _0804C7C4 @ =0x040000D4 mov r1, sb ldr r0, [r1] ldr r3, _0804C7D4 @ =0x0000020B adds r0, r0, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #8 ldr r5, _0804C7D8 @ =0x0844838C adds r0, r0, r5 str r0, [r2] ldr r0, _0804C7DC @ =0x060113C0 str r0, [r2, #4] ldr r0, _0804C7E0 @ =0x80000180 str r0, [r2, #8] ldr r0, [r2, #8] mov r1, sb ldr r0, [r1] adds r3, #0x54 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 ldr r5, _0804C7E4 @ =0x086AD49C adds r0, r0, r5 mov r3, sl lsls r1, r3, #0x10 asrs r1, r1, #7 ldr r0, [r0] adds r0, r0, r1 str r0, [r2] ldr r0, _0804C7E8 @ =0x060116C0 str r0, [r2, #4] ldr r3, _0804C7EC @ =0x80000100 str r3, [r2, #8] ldr r0, [r2, #8] mov r5, sb ldr r0, [r5] ldr r1, _0804C7F0 @ =0x000001ED adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 ldr r1, _0804C7F4 @ =0x086AD2EE adds r1, #6 adds r0, r0, r1 movs r5, #0 ldrsh r0, [r0, r5] lsls r0, r0, #9 ldr r1, _0804C7F8 @ =0x084FD18C adds r0, r0, r1 str r0, [r2] ldr r0, _0804C7FC @ =0x06011CE0 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] mov r5, sb ldr r0, [r5] adds r0, #0x6e ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #9 ldr r1, _0804C800 @ =0x083BD36C adds r0, r0, r1 str r0, [r2] ldr r0, _0804C804 @ =0x06011EE0 str r0, [r2, #4] str r3, [r2, #8] ldr r0, [r2, #8] add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804C7C4: .4byte 0x040000D4 _0804C7C8: .4byte 0x02030760 _0804C7CC: .4byte 0x06010CA0 _0804C7D0: .4byte 0x80000240 _0804C7D4: .4byte 0x0000020B _0804C7D8: .4byte 0x0844838C _0804C7DC: .4byte 0x060113C0 _0804C7E0: .4byte 0x80000180 _0804C7E4: .4byte 0x086AD49C _0804C7E8: .4byte 0x060116C0 _0804C7EC: .4byte 0x80000100 _0804C7F0: .4byte 0x000001ED _0804C7F4: .4byte 0x086AD2EE _0804C7F8: .4byte 0x084FD18C _0804C7FC: .4byte 0x06011CE0 _0804C800: .4byte 0x083BD36C _0804C804: .4byte 0x06011EE0 thumb_func_start sub_4C808 sub_4C808: @ 0x0804C808 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r1, _0804C90C @ =0x086AD2EE ldr r6, _0804C910 @ =0x020314E0 ldr r5, [r6] ldr r2, _0804C914 @ =0x000001ED adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #3 adds r1, #4 adds r0, r0, r1 ldr r4, _0804C918 @ =0x040000D4 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #3 adds r0, r0, r1 lsls r0, r0, #7 ldr r1, _0804C91C @ =0x084FB68C adds r0, r0, r1 str r0, [r4] ldr r0, _0804C920 @ =0x060122A0 str r0, [r4, #4] ldr r0, _0804C924 @ =0x80000240 str r0, [r4, #8] ldr r0, [r4, #8] ldr r0, _0804C928 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x32 bl __umodsi3 movs r1, #0x19 bl __udivsi3 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r2, _0804C92C @ =0x083C3C2C adds r1, r1, r2 str r1, [r4] ldr r1, _0804C930 @ =0x06012720 str r1, [r4, #4] ldr r1, _0804C934 @ =0x80000180 str r1, [r4, #8] ldr r1, [r4, #8] ldr r1, _0804C938 @ =0x000002F5 adds r5, r5, r1 movs r2, #0 ldrsb r2, [r5, r2] lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #2 subs r1, r1, r2 lsls r1, r1, #5 ldr r2, _0804C93C @ =0x084F5ACC adds r1, r1, r2 str r1, [r4] ldr r1, _0804C940 @ =0x06012C20 str r1, [r4, #4] ldr r1, _0804C944 @ =0x80000130 str r1, [r4, #8] ldr r1, [r4, #8] movs r2, #0 mov ip, r6 ldr r1, _0804C948 @ =0x084ED0CC mov r8, r1 ldr r1, _0804C94C @ =0x08449D8C mov sb, r1 ldr r1, _0804C950 @ =0x086AD456 mov sl, r1 lsls r0, r0, #8 ldr r1, _0804C954 @ =0x083C806C adds r3, r0, r1 movs r7, #0xba lsls r7, r7, #1 ldr r6, _0804C958 @ =0x06010000 ldr r5, _0804C95C @ =0x80000080 _0804C8AE: str r3, [r4] lsls r0, r2, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 adds r1, r1, r7 lsls r1, r1, #5 adds r1, r1, r6 str r1, [r4, #4] str r5, [r4, #8] ldr r1, [r4, #8] adds r0, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #1 ble _0804C8AE mov r2, ip ldr r0, [r2] ldr r1, _0804C960 @ =0x000002F1 adds r0, r0, r1 ldrb r0, [r0] movs r1, #0xf ldr r2, _0804C918 @ =0x040000D4 ands r1, r0 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #7 add r0, r8 str r0, [r2] ldr r0, _0804C964 @ =0x06013180 str r0, [r2, #4] ldr r0, _0804C968 @ =0x800000C0 str r0, [r2, #8] ldr r0, [r2, #8] mov r2, ip ldr r1, [r2] ldr r2, _0804C96C @ =0x000002DA adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #2 bgt _0804C974 ldr r0, _0804C970 @ =0x00000746 adds r1, r1, r0 movs r0, #0 b _0804C97A .align 2, 0 _0804C90C: .4byte 0x086AD2EE _0804C910: .4byte 0x020314E0 _0804C914: .4byte 0x000001ED _0804C918: .4byte 0x040000D4 _0804C91C: .4byte 0x084FB68C _0804C920: .4byte 0x060122A0 _0804C924: .4byte 0x80000240 _0804C928: .4byte 0x0200B0C0 _0804C92C: .4byte 0x083C3C2C _0804C930: .4byte 0x06012720 _0804C934: .4byte 0x80000180 _0804C938: .4byte 0x000002F5 _0804C93C: .4byte 0x084F5ACC _0804C940: .4byte 0x06012C20 _0804C944: .4byte 0x80000130 _0804C948: .4byte 0x084ED0CC _0804C94C: .4byte 0x08449D8C _0804C950: .4byte 0x086AD456 _0804C954: .4byte 0x083C806C _0804C958: .4byte 0x06010000 _0804C95C: .4byte 0x80000080 _0804C960: .4byte 0x000002F1 _0804C964: .4byte 0x06013180 _0804C968: .4byte 0x800000C0 _0804C96C: .4byte 0x000002DA _0804C970: .4byte 0x00000746 _0804C974: ldr r2, _0804C9F8 @ =0x00000746 adds r1, r1, r2 movs r0, #1 _0804C97A: strb r0, [r1] ldr r4, _0804C9FC @ =0x040000D4 mov r1, ip ldr r0, [r1] ldr r2, _0804C9F8 @ =0x00000746 adds r0, r0, r2 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #7 add r0, sb str r0, [r4] ldr r0, _0804CA00 @ =0x06013300 str r0, [r4, #4] ldr r0, _0804CA04 @ =0x80000140 str r0, [r4, #8] ldr r0, [r4, #8] mov r0, ip ldr r5, [r0] movs r1, #0xda lsls r1, r1, #1 adds r0, r5, r1 ldrh r0, [r0] movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #6 bl __udivsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0xf ldr r2, _0804CA08 @ =0x000001A5 adds r1, r5, r2 movs r2, #0 ldrsb r2, [r1, r2] lsls r1, r2, #3 subs r1, r1, r2 lsls r1, r1, #1 adds r0, r0, r1 add r0, sl movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #8 ldr r1, _0804CA0C @ =0x084F6B0C adds r0, r0, r1 str r0, [r4] ldr r0, _0804CA10 @ =0x06013D00 str r0, [r4, #4] ldr r0, _0804CA14 @ =0x80000280 str r0, [r4, #8] ldr r0, [r4, #8] pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804C9F8: .4byte 0x00000746 _0804C9FC: .4byte 0x040000D4 _0804CA00: .4byte 0x06013300 _0804CA04: .4byte 0x80000140 _0804CA08: .4byte 0x000001A5 _0804CA0C: .4byte 0x084F6B0C _0804CA10: .4byte 0x06013D00 _0804CA14: .4byte 0x80000280 thumb_func_start sub_4CA18 sub_4CA18: @ 0x0804CA18 ldr r1, _0804CA38 @ =0x020314E0 ldr r0, [r1] ldr r2, _0804CA3C @ =0x00000346 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r1, #0 cmp r0, #6 bhi _0804CACE lsls r0, r0, #2 ldr r1, _0804CA40 @ =_0804CA44 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804CA38: .4byte 0x020314E0 _0804CA3C: .4byte 0x00000346 _0804CA40: .4byte _0804CA44 _0804CA44: @ jump table .4byte _0804CA60 @ case 0 .4byte _0804CA60 @ case 1 .4byte _0804CA60 @ case 2 .4byte _0804CA78 @ case 3 .4byte _0804CA78 @ case 4 .4byte _0804CAA0 @ case 5 .4byte _0804CACE @ case 6 _0804CA60: ldr r0, [r2] ldr r3, _0804CA70 @ =0x00000345 adds r0, r0, r3 ldr r2, _0804CA74 @ =0x040000D4 movs r1, #0 ldrsb r1, [r0, r1] b _0804CAB8 .align 2, 0 _0804CA70: .4byte 0x00000345 _0804CA74: .4byte 0x040000D4 _0804CA78: ldr r1, _0804CA90 @ =0x040000D4 ldr r0, _0804CA94 @ =0x08490A4C movs r2, #0xff lsls r2, r2, #6 adds r0, r0, r2 str r0, [r1] ldr r0, _0804CA98 @ =0x0600D900 str r0, [r1, #4] ldr r0, _0804CA9C @ =0x80000220 str r0, [r1, #8] ldr r0, [r1, #8] b _0804CACE .align 2, 0 _0804CA90: .4byte 0x040000D4 _0804CA94: .4byte 0x08490A4C _0804CA98: .4byte 0x0600D900 _0804CA9C: .4byte 0x80000220 _0804CAA0: ldr r1, _0804CAD0 @ =0x086AE5A0 ldr r0, [r2] ldr r3, _0804CAD4 @ =0x00000345 adds r0, r0, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r1 ldr r2, _0804CAD8 @ =0x040000D4 movs r3, #0 ldrsh r1, [r0, r3] _0804CAB8: lsls r0, r1, #4 adds r0, r0, r1 lsls r0, r0, #6 ldr r1, _0804CADC @ =0x08490A4C adds r0, r0, r1 str r0, [r2] ldr r0, _0804CAE0 @ =0x0600D900 str r0, [r2, #4] ldr r0, _0804CAE4 @ =0x80000220 str r0, [r2, #8] ldr r0, [r2, #8] _0804CACE: bx lr .align 2, 0 _0804CAD0: .4byte 0x086AE5A0 _0804CAD4: .4byte 0x00000345 _0804CAD8: .4byte 0x040000D4 _0804CADC: .4byte 0x08490A4C _0804CAE0: .4byte 0x0600D900 _0804CAE4: .4byte 0x80000220 thumb_func_start sub_4CAE8 sub_4CAE8: @ 0x0804CAE8 ldr r1, _0804CAFC @ =0x040000D4 ldr r0, _0804CB00 @ =0x08138834 str r0, [r1] ldr r0, _0804CB04 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CB08 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] bx lr .align 2, 0 _0804CAFC: .4byte 0x040000D4 _0804CB00: .4byte 0x08138834 _0804CB04: .4byte 0x06015800 _0804CB08: .4byte 0x80001000 thumb_func_start sub_4CB0C sub_4CB0C: @ 0x0804CB0C ldr r1, _0804CB20 @ =0x040000D4 ldr r0, _0804CB24 @ =0x0813A854 str r0, [r1] ldr r0, _0804CB28 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CB2C @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] bx lr .align 2, 0 _0804CB20: .4byte 0x040000D4 _0804CB24: .4byte 0x0813A854 _0804CB28: .4byte 0x06015800 _0804CB2C: .4byte 0x80001000 thumb_func_start sub_4CB30 sub_4CB30: @ 0x0804CB30 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r5, _0804CB90 @ =0x040000D4 ldr r0, _0804CB94 @ =0x0813C874 str r0, [r5] ldr r0, _0804CB98 @ =0x06015800 str r0, [r5, #4] ldr r0, _0804CB9C @ =0x80001000 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _0804CBA0 @ =0x086BB738 mov r8, r0 ldr r0, _0804CBA4 @ =0x020314E0 ldr r0, [r0] ldr r1, _0804CBA8 @ =0x00000749 adds r0, r0, r1 ldrb r6, [r0] adds r0, r6, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r6, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r5] ldr r0, _0804CBAC @ =0x06010CA0 str r0, [r5, #4] ldr r0, _0804CBB0 @ =0x80000180 str r0, [r5, #8] ldr r0, [r5, #8] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804CB90: .4byte 0x040000D4 _0804CB94: .4byte 0x0813C874 _0804CB98: .4byte 0x06015800 _0804CB9C: .4byte 0x80001000 _0804CBA0: .4byte 0x086BB738 _0804CBA4: .4byte 0x020314E0 _0804CBA8: .4byte 0x00000749 _0804CBAC: .4byte 0x06010CA0 _0804CBB0: .4byte 0x80000180 thumb_func_start sub_4CBB4 sub_4CBB4: @ 0x0804CBB4 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r0, _0804CBD0 @ =0x020314E0 ldr r1, [r0] ldrb r1, [r1, #0x13] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r2, r0, #0 cmp r1, #1 bgt _0804CBDC ldr r1, _0804CBD4 @ =0x040000D4 ldr r0, _0804CBD8 @ =0x0849F1CC b _0804CBE0 .align 2, 0 _0804CBD0: .4byte 0x020314E0 _0804CBD4: .4byte 0x040000D4 _0804CBD8: .4byte 0x0849F1CC _0804CBDC: ldr r1, _0804CC38 @ =0x040000D4 ldr r0, _0804CC3C @ =0x0813E894 _0804CBE0: str r0, [r1] ldr r0, _0804CC40 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CC44 @ =0x80001000 str r0, [r1, #8] ldr r0, [r1, #8] ldr r6, _0804CC38 @ =0x040000D4 ldr r0, _0804CC48 @ =0x086BB738 mov r8, r0 ldr r0, [r2] ldr r1, _0804CC4C @ =0x00000749 adds r0, r0, r1 ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r6] ldr r0, _0804CC50 @ =0x06010CA0 str r0, [r6, #4] ldr r0, _0804CC54 @ =0x80000180 str r0, [r6, #8] ldr r0, [r6, #8] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804CC38: .4byte 0x040000D4 _0804CC3C: .4byte 0x0813E894 _0804CC40: .4byte 0x06015800 _0804CC44: .4byte 0x80001000 _0804CC48: .4byte 0x086BB738 _0804CC4C: .4byte 0x00000749 _0804CC50: .4byte 0x06010CA0 _0804CC54: .4byte 0x80000180 thumb_func_start sub_4CC58 sub_4CC58: @ 0x0804CC58 push {r4, r5, r6, lr} mov r6, r8 push {r6} ldr r1, _0804CC7C @ =0x020314E0 ldr r0, [r1] ldrb r0, [r0, #0x13] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r1, #0 cmp r0, #0 bne _0804CC90 ldr r1, _0804CC80 @ =0x040000D4 ldr r0, _0804CC84 @ =0x083C5A2C str r0, [r1] ldr r0, _0804CC88 @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CC8C @ =0x80001400 b _0804CCC0 .align 2, 0 _0804CC7C: .4byte 0x020314E0 _0804CC80: .4byte 0x040000D4 _0804CC84: .4byte 0x083C5A2C _0804CC88: .4byte 0x06015800 _0804CC8C: .4byte 0x80001400 _0804CC90: cmp r0, #1 bne _0804CCB4 ldr r1, _0804CCA4 @ =0x040000D4 ldr r0, _0804CCA8 @ =0x084A856C str r0, [r1] ldr r0, _0804CCAC @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CCB0 @ =0x80000E00 b _0804CCC0 .align 2, 0 _0804CCA4: .4byte 0x040000D4 _0804CCA8: .4byte 0x084A856C _0804CCAC: .4byte 0x06015800 _0804CCB0: .4byte 0x80000E00 _0804CCB4: ldr r1, _0804CD34 @ =0x040000D4 ldr r0, _0804CD38 @ =0x081408B4 str r0, [r1] ldr r0, _0804CD3C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CD40 @ =0x80001000 _0804CCC0: str r0, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2] movs r1, #0xf7 lsls r1, r1, #2 adds r0, r0, r1 ldrb r0, [r0] subs r0, #2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #9 bls _0804CCE8 ldr r1, _0804CD34 @ =0x040000D4 ldr r0, _0804CD44 @ =0x084AA18C str r0, [r1] ldr r0, _0804CD48 @ =0x06011620 str r0, [r1, #4] ldr r0, _0804CD4C @ =0x80000430 str r0, [r1, #8] ldr r0, [r1, #8] _0804CCE8: ldr r6, _0804CD34 @ =0x040000D4 ldr r0, _0804CD50 @ =0x086BB738 mov r8, r0 ldr r0, [r2] ldr r1, _0804CD54 @ =0x00000749 adds r0, r0, r1 ldrb r5, [r0] adds r0, r5, #0 movs r1, #0xf bl __udivsi3 adds r4, r0, #0 lsls r4, r4, #0x18 lsrs r4, r4, #0x16 add r4, r8 adds r0, r5, #0 movs r1, #0xf bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #8 ldr r0, [r4] adds r0, r0, r1 str r0, [r6] ldr r0, _0804CD58 @ =0x06010CA0 str r0, [r6, #4] ldr r0, _0804CD5C @ =0x80000180 str r0, [r6, #8] ldr r0, [r6, #8] pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804CD34: .4byte 0x040000D4 _0804CD38: .4byte 0x081408B4 _0804CD3C: .4byte 0x06015800 _0804CD40: .4byte 0x80001000 _0804CD44: .4byte 0x084AA18C _0804CD48: .4byte 0x06011620 _0804CD4C: .4byte 0x80000430 _0804CD50: .4byte 0x086BB738 _0804CD54: .4byte 0x00000749 _0804CD58: .4byte 0x06010CA0 _0804CD5C: .4byte 0x80000180 thumb_func_start sub_4CD60 sub_4CD60: @ 0x0804CD60 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r2, #0 ldr r3, _0804CE5C @ =0x03006400 ldr r6, _0804CE60 @ =0x0200B0C0 movs r0, #0x80 lsls r0, r0, #4 adds r0, r0, r3 mov r8, r0 ldr r1, _0804CE64 @ =0x084B77EC mov sb, r1 ldr r0, _0804CE68 @ =0xFFFFF800 adds r0, r0, r3 mov ip, r0 movs r7, #0x80 lsls r7, r7, #3 movs r5, #0x80 lsls r5, r5, #2 ldr r4, _0804CE6C @ =0x000007FF _0804CD8A: lsls r1, r2, #0x10 asrs r1, r1, #0x10 adds r0, r1, r7 lsls r0, r0, #1 add r0, ip strh r5, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r4 ble _0804CD8A ldr r1, _0804CE70 @ =0x040000D4 str r3, [r1] ldr r0, _0804CE74 @ =0x06001000 str r0, [r1, #4] ldr r0, _0804CE78 @ =0x80000800 str r0, [r1, #8] ldr r0, [r1, #8] ldrh r0, [r6, #0x38] ldr r0, _0804CE7C @ =0x00001C42 strh r0, [r6, #0x38] ldrh r0, [r6, #0x3a] ldr r0, _0804CE80 @ =0x00000C04 strh r0, [r6, #0x3a] movs r2, #0 ldr r1, _0804CE68 @ =0xFFFFF800 adds r4, r3, r1 ldr r3, _0804CE84 @ =0x0000013F _0804CDC4: lsls r0, r2, #0x10 asrs r2, r0, #0x10 adds r0, r2, #0 cmp r2, #0 bge _0804CDD0 adds r0, #0x1f _0804CDD0: asrs r0, r0, #5 lsls r0, r0, #5 subs r0, r2, r0 subs r0, #2 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0x1b bhi _0804CDF0 movs r1, #0x80 lsls r1, r1, #4 adds r0, r2, r1 lsls r0, r0, #1 adds r0, r0, r4 movs r1, #0x90 lsls r1, r1, #8 strh r1, [r0] _0804CDF0: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r0, r0, #0x10 cmp r0, r3 ble _0804CDC4 movs r0, #0xbb lsls r0, r0, #2 adds r1, r6, r0 movs r0, #8 strh r0, [r1] ldr r0, _0804CE88 @ =0x000002EE adds r1, r6, r0 movs r0, #0x7e strh r0, [r1] ldr r1, _0804CE70 @ =0x040000D4 mov r0, r8 str r0, [r1] ldr r0, _0804CE8C @ =0x06001140 str r0, [r1, #4] ldr r0, _0804CE90 @ =0x80000140 str r0, [r1, #8] ldr r0, [r1, #8] movs r2, #0 ldr r5, _0804CE94 @ =0xFFFFF000 add r5, r8 ldr r4, _0804CE98 @ =0x000001FF ldr r3, _0804CE6C @ =0x000007FF _0804CE28: lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r5 strh r4, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, r3 ble _0804CE28 ldr r1, _0804CE70 @ =0x040000D4 mov r0, sb str r0, [r1] ldr r0, _0804CE9C @ =0x06015800 str r0, [r1, #4] ldr r0, _0804CEA0 @ =0x80000400 str r0, [r1, #8] ldr r0, [r1, #8] pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804CE5C: .4byte 0x03006400 _0804CE60: .4byte 0x0200B0C0 _0804CE64: .4byte 0x084B77EC _0804CE68: .4byte 0xFFFFF800 _0804CE6C: .4byte 0x000007FF _0804CE70: .4byte 0x040000D4 _0804CE74: .4byte 0x06001000 _0804CE78: .4byte 0x80000800 _0804CE7C: .4byte 0x00001C42 _0804CE80: .4byte 0x00000C04 _0804CE84: .4byte 0x0000013F _0804CE88: .4byte 0x000002EE _0804CE8C: .4byte 0x06001140 _0804CE90: .4byte 0x80000140 _0804CE94: .4byte 0xFFFFF000 _0804CE98: .4byte 0x000001FF _0804CE9C: .4byte 0x06015800 _0804CEA0: .4byte 0x80000400 thumb_func_start nullsub_18 nullsub_18: @ 0x0804CEA4 bx lr thumb_func_start sub_4CEA8 sub_4CEA8: @ 0x0804CEA8 push {lr} bl sub_4CEB4 pop {r0} bx r0 thumb_func_start sub_4CEB4 sub_4CEB4: @ 0x0804CEB4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x18 bl sub_4D3D0 ldr r5, _0804CF34 @ =0x020314E0 ldr r2, [r5] ldr r1, _0804CF38 @ =0x000005F6 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #1 ldr r1, [r2, #0x3c] muls r1, r0, r1 ldr r0, [r2, #0x40] adds r3, r0, r1 str r3, [r2, #0x40] ldrb r1, [r2, #0x1c] cmp r1, #0 beq _0804CF56 ldrb r0, [r2, #5] ldr r4, _0804CF3C @ =0x0200B0C0 cmp r0, #0 bne _0804CEF6 ldrh r1, [r4, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0804CF08 _0804CEF6: ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] movs r0, #0 str r0, [r2, #0x40] strb r0, [r2, #0x1c] ldr r1, [r5] ldr r0, _0804CF40 @ =0x00009C40 str r0, [r1, #0x38] _0804CF08: ldr r5, [r4, #0x4c] movs r0, #1 ands r5, r0 cmp r5, #0 bne _0804CF5E ldr r1, _0804CF34 @ =0x020314E0 ldr r2, [r1] ldr r4, [r2, #0x40] cmp r4, #0 beq _0804CF5E ldr r3, [r2, #0x38] cmp r4, r3 bhi _0804CF44 ldr r0, [r2, #0x44] adds r0, r0, r4 str r0, [r2, #0x44] str r5, [r2, #0x40] strb r5, [r2, #0x1c] ldr r1, [r1] ldr r0, _0804CF40 @ =0x00009C40 str r0, [r1, #0x38] b _0804CF5E .align 2, 0 _0804CF34: .4byte 0x020314E0 _0804CF38: .4byte 0x000005F6 _0804CF3C: .4byte 0x0200B0C0 _0804CF40: .4byte 0x00009C40 _0804CF44: ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] subs r0, r4, r3 str r0, [r2, #0x40] movs r0, #0x91 bl m4aSongNumStart b _0804CF5E _0804CF56: ldr r0, [r2, #0x44] adds r0, r0, r3 str r0, [r2, #0x44] str r1, [r2, #0x40] _0804CF5E: ldr r4, _0804CF84 @ =0x020314E0 ldr r6, [r4] ldr r7, [r6, #0x44] ldr r1, _0804CF88 @ =0x05F5E100 adds r0, r7, #0 bl __udivsi3 mov sb, r4 cmp r0, #0 beq _0804CF9C ldr r1, [r6, #0x48] ldr r0, _0804CF8C @ =0x0000270E cmp r1, r0 bhi _0804CF94 adds r0, r1, #1 str r0, [r6, #0x48] ldr r2, _0804CF90 @ =0xFA0A1F00 adds r0, r7, r2 b _0804CF9A .align 2, 0 _0804CF84: .4byte 0x020314E0 _0804CF88: .4byte 0x05F5E100 _0804CF8C: .4byte 0x0000270E _0804CF90: .4byte 0xFA0A1F00 _0804CF94: ldr r0, _0804D2EC @ =0x0000270F str r0, [r6, #0x48] ldr r0, _0804D2F0 @ =0x05F5E0FF _0804CF9A: str r0, [r6, #0x44] _0804CF9C: mov r7, sb ldr r5, [r7] movs r0, #0 str r0, [r5, #0x3c] ldr r7, [r5, #0x48] mov r4, sp ldr r0, _0804D2F4 @ =0x00002710 mov r8, r0 adds r0, r7, #0 mov r1, r8 bl __umodsi3 movs r6, #0xfa lsls r6, r6, #2 adds r1, r6, #0 bl __udivsi3 adds r0, #5 strh r0, [r4] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __umodsi3 movs r1, #0x64 bl __udivsi3 adds r0, #5 strh r0, [r4, #2] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __umodsi3 movs r1, #0xa bl __udivsi3 adds r0, #0x13 strh r0, [r4, #4] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __umodsi3 adds r0, #5 strh r0, [r4, #6] ldr r7, [r5, #0x44] mov r5, sp ldr r4, _0804D2F8 @ =0x00989680 adds r0, r7, #0 adds r1, r4, #0 bl __udivsi3 adds r0, #5 strh r0, [r5, #8] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __umodsi3 ldr r4, _0804D2FC @ =0x000F4240 adds r1, r4, #0 bl __udivsi3 adds r0, #0x13 strh r0, [r5, #0xa] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __umodsi3 ldr r4, _0804D300 @ =0x000186A0 adds r1, r4, #0 bl __udivsi3 adds r0, #5 strh r0, [r5, #0xc] mov r5, sp adds r0, r7, #0 adds r1, r4, #0 bl __umodsi3 mov r1, r8 bl __udivsi3 adds r0, #5 strh r0, [r5, #0xe] mov r4, sp adds r0, r7, #0 mov r1, r8 bl __umodsi3 adds r1, r6, #0 bl __udivsi3 adds r0, #0x13 strh r0, [r4, #0x10] mov r4, sp adds r0, r7, #0 adds r1, r6, #0 bl __umodsi3 movs r1, #0x64 bl __udivsi3 adds r0, #5 strh r0, [r4, #0x12] mov r4, sp adds r0, r7, #0 movs r1, #0x64 bl __umodsi3 movs r1, #0xa bl __udivsi3 adds r0, #5 strh r0, [r4, #0x14] mov r4, sp adds r0, r7, #0 movs r1, #0xa bl __umodsi3 adds r0, #5 strh r0, [r4, #0x16] movs r3, #0 ldr r1, _0804D304 @ =0x03005C00 mov sl, r1 movs r4, #0x1e _0804D09C: lsls r0, r3, #0x10 asrs r2, r0, #0x10 lsls r0, r2, #1 mov r5, sp adds r1, r5, r0 movs r7, #0 ldrsh r0, [r1, r7] cmp r0, #5 beq _0804D0B2 cmp r0, #0x13 bne _0804D0C0 _0804D0B2: strh r4, [r1] adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #4 ble _0804D09C _0804D0C0: lsls r1, r3, #0x10 adds r3, r1, #0 asrs r0, r3, #0x10 cmp r0, #0xb bgt _0804D10A ldr r5, _0804D304 @ =0x03005C00 asrs r6, r1, #0x10 _0804D0CE: asrs r3, r3, #0x10 subs r1, r3, r6 ldr r0, _0804D308 @ =0x000007C1 adds r2, r1, r0 lsls r2, r2, #1 adds r2, r2, r5 lsls r0, r3, #1 mov r7, sp adds r4, r7, r0 movs r7, #0 ldrsh r0, [r4, r7] lsls r0, r0, #1 ldr r7, _0804D30C @ =0xFFFFC160 adds r0, r0, r7 strh r0, [r2] ldr r0, _0804D310 @ =0x000007E1 adds r1, r1, r0 lsls r1, r1, #1 adds r1, r1, r5 movs r2, #0 ldrsh r0, [r4, r2] lsls r0, r0, #1 adds r7, #1 adds r0, r0, r7 strh r0, [r1] adds r3, #1 lsls r3, r3, #0x10 asrs r0, r3, #0x10 cmp r0, #0xb ble _0804D0CE _0804D10A: mov r1, sb ldr r0, [r1] movs r3, #0xbe lsls r3, r3, #3 adds r2, r0, r3 ldrh r0, [r2] ldr r1, _0804D314 @ =0x000003E7 cmp r0, r1 bls _0804D11E strh r1, [r2] _0804D11E: mov r5, sp mov r2, sb ldr r4, [r2] adds r4, r4, r3 ldrh r0, [r4] movs r1, #0x64 bl __udivsi3 strh r0, [r5, #4] mov r5, sp ldrh r0, [r4] movs r1, #0x64 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xa bl __udivsi3 strh r0, [r5, #2] mov r5, sp ldrh r0, [r4] movs r1, #0xa bl __umodsi3 strh r0, [r5] mov r6, sl ldr r5, _0804D318 @ =0x00000FA2 adds r1, r6, r5 ldr r0, _0804D31C @ =0x0000C17E strh r0, [r1] ldr r7, _0804D320 @ =0x00000FE2 adds r1, r6, r7 adds r0, #1 strh r0, [r1] mov r0, sp movs r1, #4 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 ldr r2, _0804D30C @ =0xFFFFC160 adds r7, r2, #0 adds r0, r0, r7 adds r5, #2 adds r1, r6, r5 strh r0, [r1] mov r0, sp movs r1, #4 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 adds r2, #1 mov r8, r2 add r0, r8 adds r5, #0x40 adds r1, r6, r5 strh r0, [r1] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 ldr r2, _0804D324 @ =0x00000FA6 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #2 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 subs r2, #0x3e adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r5, sb ldr r0, [r5] movs r2, #0xc9 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0x63 bls _0804D1EC movs r0, #0x63 strb r0, [r1] _0804D1EC: mov r5, sp mov r0, sb ldr r4, [r0] adds r4, r4, r2 ldrb r0, [r4] movs r1, #0xa bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 strh r0, [r5, #2] mov r5, sp ldrb r0, [r4] movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 strh r0, [r5] ldr r2, _0804D328 @ =0x00000FAC adds r1, r6, r2 ldr r0, _0804D32C @ =0x0000C19C strh r0, [r1] ldr r5, _0804D330 @ =0x00000FEC adds r1, r6, r5 adds r0, #1 strh r0, [r1] mov r0, sp movs r1, #2 ldrsh r0, [r0, r1] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 adds r2, #2 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #2 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 subs r2, #0x3e adds r1, r6, r2 strh r0, [r1] mov r0, sp movs r5, #0 ldrsh r0, [r0, r5] adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #0x40 adds r1, r6, r2 strh r0, [r1] mov r5, sb ldr r0, [r5] adds r1, r0, #0 adds r1, #0x30 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #9 ble _0804D27E movs r0, #9 strb r0, [r1] _0804D27E: ldr r0, _0804D334 @ =0x00000FB4 adds r1, r6, r0 ldr r0, _0804D338 @ =0x0000C180 strh r0, [r1] ldr r2, _0804D33C @ =0x00000FF4 adds r1, r6, r2 adds r0, #1 strh r0, [r1] mov r5, sb ldr r0, [r5] adds r0, #0x30 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #5 lsls r0, r0, #1 adds r0, r0, r7 ldr r7, _0804D340 @ =0x00000FB6 adds r1, r6, r7 strh r0, [r1] ldr r0, [r5] adds r0, #0x30 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r0, #5 lsls r0, r0, #1 add r0, r8 adds r2, #2 adds r1, r6, r2 strh r0, [r1] ldr r1, [r5] movs r5, #0xe5 lsls r5, r5, #1 adds r0, r1, r5 movs r7, #0 ldrsh r0, [r0, r7] cmp r0, #0xd bne _0804D384 movs r2, #0xee lsls r2, r2, #1 adds r0, r1, r2 ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0804D350 ldr r5, _0804D344 @ =0x00000FBA adds r1, r6, r5 ldr r0, _0804D348 @ =0x0000C19A strh r0, [r1] ldr r7, _0804D34C @ =0x00000FFA adds r1, r6, r7 b _0804D35C .align 2, 0 _0804D2EC: .4byte 0x0000270F _0804D2F0: .4byte 0x05F5E0FF _0804D2F4: .4byte 0x00002710 _0804D2F8: .4byte 0x00989680 _0804D2FC: .4byte 0x000F4240 _0804D300: .4byte 0x000186A0 _0804D304: .4byte 0x03005C00 _0804D308: .4byte 0x000007C1 _0804D30C: .4byte 0xFFFFC160 _0804D310: .4byte 0x000007E1 _0804D314: .4byte 0x000003E7 _0804D318: .4byte 0x00000FA2 _0804D31C: .4byte 0x0000C17E _0804D320: .4byte 0x00000FE2 _0804D324: .4byte 0x00000FA6 _0804D328: .4byte 0x00000FAC _0804D32C: .4byte 0x0000C19C _0804D330: .4byte 0x00000FEC _0804D334: .4byte 0x00000FB4 _0804D338: .4byte 0x0000C180 _0804D33C: .4byte 0x00000FF4 _0804D340: .4byte 0x00000FB6 _0804D344: .4byte 0x00000FBA _0804D348: .4byte 0x0000C19A _0804D34C: .4byte 0x00000FFA _0804D350: ldr r0, _0804D378 @ =0x00000FBA adds r1, r6, r0 ldr r0, _0804D37C @ =0x0000C182 strh r0, [r1] ldr r2, _0804D380 @ =0x00000FFA adds r1, r6, r2 _0804D35C: adds r0, #1 strh r0, [r1] mov r5, sb ldr r0, [r5] movs r7, #0xee lsls r7, r7, #1 adds r4, r0, r7 ldrh r0, [r4] cmp r0, #0 beq _0804D394 subs r0, #1 strh r0, [r4] b _0804D394 .align 2, 0 _0804D378: .4byte 0x00000FBA _0804D37C: .4byte 0x0000C182 _0804D380: .4byte 0x00000FFA _0804D384: ldr r1, _0804D3B4 @ =0x00000FBA add r1, sl ldr r0, _0804D3B8 @ =0x0000C19E strh r0, [r1] ldr r1, _0804D3BC @ =0x00000FFA add r1, sl adds r0, #1 strh r0, [r1] _0804D394: ldr r1, _0804D3C0 @ =0x040000D4 ldr r0, _0804D3C4 @ =0x03006B80 str r0, [r1] ldr r0, _0804D3C8 @ =0x06002F80 str r0, [r1, #4] ldr r0, _0804D3CC @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] add sp, #0x18 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804D3B4: .4byte 0x00000FBA _0804D3B8: .4byte 0x0000C19E _0804D3BC: .4byte 0x00000FFA _0804D3C0: .4byte 0x040000D4 _0804D3C4: .4byte 0x03006B80 _0804D3C8: .4byte 0x06002F80 _0804D3CC: .4byte 0x80000040 thumb_func_start sub_4D3D0 sub_4D3D0: @ 0x0804D3D0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #8 ldr r1, _0804D4C8 @ =0x020314E0 ldr r2, [r1] movs r3, #0xa5 lsls r3, r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 mov sb, r1 cmp r0, #0 bne _0804D3F2 b _0804D628 _0804D3F2: ldr r5, _0804D4CC @ =0x00000296 adds r1, r2, r5 ldrh r2, [r1] cmp r2, #0 bne _0804D3FE b _0804D628 _0804D3FE: cmp r0, #2 bne _0804D40E ldr r0, _0804D4D0 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _0804D40E subs r0, r2, #1 strh r0, [r1] _0804D40E: mov r5, sp mov r0, sb ldr r6, [r0] ldr r1, _0804D4CC @ =0x00000296 adds r7, r6, r1 ldrh r0, [r7] movs r4, #0xe1 lsls r4, r4, #4 adds r1, r4, #0 bl __udivsi3 strh r0, [r5] ldrh r0, [r7] adds r1, r4, #0 bl __umodsi3 adds r4, r0, #0 mov r1, sp movs r0, #0xa strh r0, [r1, #2] mov r8, sp lsls r4, r4, #0x10 asrs r4, r4, #0x10 movs r5, #0x96 lsls r5, r5, #2 adds r0, r4, #0 adds r1, r5, #0 bl __divsi3 mov r2, r8 strh r0, [r2, #4] adds r0, r4, #0 adds r1, r5, #0 bl __modsi3 mov r4, sp lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x3c bl __divsi3 strh r0, [r4, #6] movs r3, #0xa5 lsls r3, r3, #2 adds r6, r6, r3 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #3 bne _0804D4F4 movs r1, #0 ldr r6, _0804D4D4 @ =0x03005EC0 ldr r5, _0804D4D8 @ =0xFFFFFD40 adds r3, r6, r5 ldr r5, _0804D4DC @ =0x00000179 ldr r2, _0804D4E0 @ =0x000001FF ldr r4, _0804D4E4 @ =0x00000199 _0804D47E: lsls r0, r1, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r1, r0, r4 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804D47E ldr r1, _0804D4E8 @ =0x040000D4 str r6, [r1] ldr r0, _0804D4EC @ =0x060022C0 str r0, [r1, #4] ldr r0, _0804D4F0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] mov r1, sb ldr r0, [r1] movs r2, #0xa5 lsls r2, r2, #2 adds r0, r0, r2 movs r1, #0 strb r1, [r0] mov r3, sb ldr r0, [r3] ldr r5, _0804D4CC @ =0x00000296 adds r0, r0, r5 strh r1, [r0] b _0804D556 .align 2, 0 _0804D4C8: .4byte 0x020314E0 _0804D4CC: .4byte 0x00000296 _0804D4D0: .4byte 0x0200B0C0 _0804D4D4: .4byte 0x03005EC0 _0804D4D8: .4byte 0xFFFFFD40 _0804D4DC: .4byte 0x00000179 _0804D4E0: .4byte 0x000001FF _0804D4E4: .4byte 0x00000199 _0804D4E8: .4byte 0x040000D4 _0804D4EC: .4byte 0x060022C0 _0804D4F0: .4byte 0x80000040 _0804D4F4: ldrh r0, [r7] cmp r0, #0 bne _0804D500 bl sub_4D648 b _0804D542 _0804D500: movs r1, #0 ldr r4, _0804D578 @ =0x03005C00 _0804D504: lsls r2, r1, #0x10 asrs r2, r2, #0x10 ldr r0, _0804D57C @ =0x00000179 adds r1, r2, r0 lsls r1, r1, #1 adds r1, r1, r4 lsls r0, r2, #1 mov r5, sp adds r3, r5, r0 movs r5, #0 ldrsh r0, [r3, r5] lsls r0, r0, #1 ldr r5, _0804D580 @ =0xFFFFC140 adds r0, r0, r5 strh r0, [r1] ldr r0, _0804D584 @ =0x00000199 adds r1, r2, r0 lsls r1, r1, #1 adds r1, r1, r4 movs r5, #0 ldrsh r0, [r3, r5] lsls r0, r0, #1 ldr r3, _0804D588 @ =0xFFFFC141 adds r0, r0, r3 strh r0, [r1] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #3 ble _0804D504 _0804D542: ldr r1, _0804D58C @ =0x040000D4 ldr r0, _0804D590 @ =0x03005EC0 str r0, [r1] ldr r0, _0804D594 @ =0x060022C0 str r0, [r1, #4] ldr r0, _0804D598 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] ldr r5, _0804D59C @ =0x020314E0 mov sb, r5 _0804D556: mov r1, sb ldr r0, [r1] ldr r2, _0804D5A0 @ =0x00000296 adds r3, r0, r2 ldrh r2, [r3] adds r1, r2, #0 movs r0, #0xe1 lsls r0, r0, #2 cmp r1, r0 bhi _0804D5E8 movs r0, #8 ands r0, r2 cmp r0, #0 beq _0804D5A8 ldr r1, _0804D58C @ =0x040000D4 ldr r0, _0804D5A4 @ =0x086B0884 b _0804D5AC .align 2, 0 _0804D578: .4byte 0x03005C00 _0804D57C: .4byte 0x00000179 _0804D580: .4byte 0xFFFFC140 _0804D584: .4byte 0x00000199 _0804D588: .4byte 0xFFFFC141 _0804D58C: .4byte 0x040000D4 _0804D590: .4byte 0x03005EC0 _0804D594: .4byte 0x060022C0 _0804D598: .4byte 0x80000040 _0804D59C: .4byte 0x020314E0 _0804D5A0: .4byte 0x00000296 _0804D5A4: .4byte 0x086B0884 _0804D5A8: ldr r1, _0804D5D4 @ =0x040000D4 ldr r0, _0804D5D8 @ =0x081C0064 _0804D5AC: str r0, [r1] ldr r0, _0804D5DC @ =0x05000180 str r0, [r1, #4] ldr r0, _0804D5E0 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] mov r3, sb ldr r0, [r3] ldr r5, _0804D5E4 @ =0x00000296 adds r0, r0, r5 ldrh r1, [r0] movs r0, #0xe1 lsls r0, r0, #2 cmp r1, r0 bne _0804D628 movs r0, #0x19 bl m4aSongNumStart b _0804D628 .align 2, 0 _0804D5D4: .4byte 0x040000D4 _0804D5D8: .4byte 0x081C0064 _0804D5DC: .4byte 0x05000180 _0804D5E0: .4byte 0x80000010 _0804D5E4: .4byte 0x00000296 _0804D5E8: movs r0, #0xe1 lsls r0, r0, #3 cmp r1, r0 bhi _0804D628 ldrh r0, [r3] movs r1, #0x16 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0xb bl __udivsi3 lsls r0, r0, #0x10 cmp r0, #0 beq _0804D618 ldr r1, _0804D610 @ =0x040000D4 ldr r0, _0804D614 @ =0x086B08A4 b _0804D61C .align 2, 0 _0804D610: .4byte 0x040000D4 _0804D614: .4byte 0x086B08A4 _0804D618: ldr r1, _0804D638 @ =0x040000D4 ldr r0, _0804D63C @ =0x081C0064 _0804D61C: str r0, [r1] ldr r0, _0804D640 @ =0x05000180 str r0, [r1, #4] ldr r0, _0804D644 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] _0804D628: add sp, #8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804D638: .4byte 0x040000D4 _0804D63C: .4byte 0x081C0064 _0804D640: .4byte 0x05000180 _0804D644: .4byte 0x80000010 thumb_func_start sub_4D648 sub_4D648: @ 0x0804D648 push {r4, r5, r6, lr} ldr r2, _0804D6A0 @ =0x020314E0 ldr r0, [r2] movs r1, #0xa5 lsls r1, r1, #2 adds r0, r0, r1 movs r1, #0 strb r1, [r0] ldr r0, [r2] ldr r2, _0804D6A4 @ =0x00000296 adds r0, r0, r2 strh r1, [r0] ldr r6, _0804D6A8 @ =0x03005EC0 ldr r0, _0804D6AC @ =0xFFFFFD40 adds r3, r6, r0 ldr r5, _0804D6B0 @ =0x00000179 subs r2, #0x97 ldr r4, _0804D6B4 @ =0x00000199 _0804D66C: lsls r0, r1, #0x10 asrs r0, r0, #0x10 adds r1, r0, r5 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r1, r0, r4 lsls r1, r1, #1 adds r1, r1, r3 strh r2, [r1] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #3 ble _0804D66C ldr r1, _0804D6B8 @ =0x040000D4 str r6, [r1] ldr r0, _0804D6BC @ =0x060022C0 str r0, [r1, #4] ldr r0, _0804D6C0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804D6A0: .4byte 0x020314E0 _0804D6A4: .4byte 0x00000296 _0804D6A8: .4byte 0x03005EC0 _0804D6AC: .4byte 0xFFFFFD40 _0804D6B0: .4byte 0x00000179 _0804D6B4: .4byte 0x00000199 _0804D6B8: .4byte 0x040000D4 _0804D6BC: .4byte 0x060022C0 _0804D6C0: .4byte 0x80000040 thumb_func_start sub_4D6C4 sub_4D6C4: @ 0x0804D6C4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} movs r0, #0 mov ip, r0 ldr r0, _0804D7B0 @ =0x0200B0C0 ldrb r2, [r0, #4] movs r3, #0 adds r7, r0, #0 cmp r2, #0 beq _0804D6E6 ldr r3, _0804D7B4 @ =0x0000FFE8 cmp r2, #1 beq _0804D6E6 movs r3, #0 movs r1, #8 mov ip, r1 _0804D6E6: ldrb r0, [r7, #4] cmp r0, #1 bls _0804D6EE b _0804D810 _0804D6EE: ldr r6, _0804D7B8 @ =0x020314E0 ldr r1, [r6] lsls r0, r3, #0x10 asrs r0, r0, #0x10 subs r0, #0xf4 ldr r4, _0804D7BC @ =0x000005FC adds r2, r1, r4 movs r5, #0 movs r3, #0 strh r0, [r2] ldr r2, _0804D7C0 @ =0x000005FE adds r0, r1, r2 strh r3, [r0] ldr r0, _0804D7C4 @ =0x000005FB adds r1, r1, r0 strb r5, [r1] ldr r6, [r6] ldr r0, _0804D7C8 @ =0x02031520 ldrh r1, [r0, #0x14] adds r3, r6, #0 adds r3, #0x4c strh r1, [r3] ldrh r1, [r0, #0x16] adds r5, r6, #0 adds r5, #0x4e strh r1, [r5] movs r1, #0x16 ldrsh r0, [r0, r1] lsls r0, r0, #8 str r0, [r6, #0x54] ldrh r1, [r3] adds r0, r6, #0 adds r0, #0x58 strh r1, [r0] adds r4, r6, r4 ldrh r0, [r4] ldrh r2, [r5] adds r0, r0, r2 adds r1, r6, #0 adds r1, #0x5a strh r0, [r1] ldrh r1, [r3] mov r0, ip lsls r2, r0, #0x10 asrs r2, r2, #0x10 adds r1, r2, r1 mov ip, r1 movs r1, #0xbc lsls r1, r1, #2 adds r0, r7, r1 mov r1, ip strh r1, [r0] ldrh r0, [r4] ldrh r1, [r5] adds r0, r0, r1 ldr r1, _0804D7CC @ =0x000002F2 strh r0, [r1, r7] ldrh r0, [r3] adds r0, r2, r0 adds r1, #2 strh r0, [r1, r7] ldrh r0, [r4] ldrh r1, [r5] adds r0, r0, r1 ldr r1, _0804D7D0 @ =0x000002F6 strh r0, [r1, r7] ldrh r0, [r3] adds r2, r2, r0 subs r1, #0xa adds r0, r7, r1 strh r2, [r0] ldrh r0, [r4] ldrh r5, [r5] adds r0, r0, r5 ldr r2, _0804D7D4 @ =0x000002EE adds r1, r7, r2 strh r0, [r1] ldrb r0, [r7, #4] cmp r0, #0 bne _0804D7E4 ldr r5, _0804D7D8 @ =0x00000283 adds r0, r6, r5 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0804D7DC movs r0, #0x1c bl m4aSongNumStart b _0804D90E .align 2, 0 _0804D7B0: .4byte 0x0200B0C0 _0804D7B4: .4byte 0x0000FFE8 _0804D7B8: .4byte 0x020314E0 _0804D7BC: .4byte 0x000005FC _0804D7C0: .4byte 0x000005FE _0804D7C4: .4byte 0x000005FB _0804D7C8: .4byte 0x02031520 _0804D7CC: .4byte 0x000002F2 _0804D7D0: .4byte 0x000002F6 _0804D7D4: .4byte 0x000002EE _0804D7D8: .4byte 0x00000283 _0804D7DC: movs r0, #0x5b bl m4aSongNumStart b _0804D90E _0804D7E4: ldr r7, _0804D804 @ =0x00000283 adds r0, r6, r7 ldrb r0, [r0] movs r1, #5 bl __udivsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0804D808 movs r0, #0x20 bl m4aSongNumStart b _0804D90E .align 2, 0 _0804D804: .4byte 0x00000283 _0804D808: movs r0, #0x5c bl m4aSongNumStart b _0804D90E _0804D810: ldr r3, _0804D838 @ =0x020314E0 ldr r1, [r3] ldr r2, _0804D83C @ =0x000005FC adds r0, r1, r2 movs r4, #0 movs r2, #0 strh r2, [r0] ldr r5, _0804D840 @ =0x000005FE adds r0, r1, r5 strh r2, [r0] ldr r0, _0804D844 @ =0x000005FB adds r1, r1, r0 strb r4, [r1] ldrb r0, [r7, #4] cmp r0, #3 bhi _0804D84C ldr r0, [r3] adds r0, #0xe6 ldr r1, _0804D848 @ =0x0000FFE8 b _0804D862 .align 2, 0 _0804D838: .4byte 0x020314E0 _0804D83C: .4byte 0x000005FC _0804D840: .4byte 0x000005FE _0804D844: .4byte 0x000005FB _0804D848: .4byte 0x0000FFE8 _0804D84C: cmp r0, #6 bne _0804D85C ldr r0, [r3] adds r0, #0xe6 ldr r1, _0804D858 @ =0x0000FFA8 b _0804D862 .align 2, 0 _0804D858: .4byte 0x0000FFA8 _0804D85C: ldr r0, [r3] adds r0, #0xe6 ldr r1, _0804D93C @ =0x0000FFC0 _0804D862: strh r1, [r0] ldr r0, _0804D940 @ =0x020314E0 ldr r5, [r0] ldr r1, _0804D944 @ =0x02031520 ldrh r0, [r1, #0x14] adds r4, r5, #0 adds r4, #0x4c strh r0, [r4] adds r0, r5, #0 adds r0, #0xe6 ldrh r0, [r0] ldrh r2, [r1, #0x16] adds r0, r0, r2 adds r6, r5, #0 adds r6, #0x4e strh r0, [r6] movs r7, #0x16 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r5, #0x54] ldrh r1, [r4] adds r0, r5, #0 adds r0, #0x58 strh r1, [r0] ldr r1, _0804D948 @ =0x000005FC adds r0, r5, r1 ldrh r0, [r0] ldrh r2, [r6] adds r0, r0, r2 adds r1, r5, #0 adds r1, #0x5a strh r0, [r1] ldr r3, _0804D94C @ =0x0200B0C0 ldrh r0, [r4] mov r7, ip lsls r1, r7, #0x10 asrs r1, r1, #0x10 adds r0, r1, r0 mov r8, r0 movs r2, #0xbc lsls r2, r2, #2 adds r0, r3, r2 mov r7, r8 strh r7, [r0] ldrh r2, [r6] ldr r7, _0804D950 @ =0x000002F2 adds r0, r3, r7 strh r2, [r0] ldrh r0, [r4] adds r0, r1, r0 movs r2, #0xbd lsls r2, r2, #2 adds r2, r2, r3 mov ip, r2 strh r0, [r2] ldrh r2, [r6] adds r7, #4 adds r0, r3, r7 strh r2, [r0] ldrh r0, [r4] adds r1, r1, r0 movs r2, #0xbb lsls r2, r2, #2 adds r0, r3, r2 strh r1, [r0] movs r7, #0 ldrsh r0, [r6, r7] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 adds r2, #2 adds r1, r3, r2 strh r0, [r1] ldrb r0, [r3, #4] cmp r0, #3 bne _0804D90E movs r7, #0xa4 lsls r7, r7, #2 adds r0, r5, r7 ldr r0, [r0] ldr r1, _0804D954 @ =0x000007FF ands r0, r1 lsrs r0, r0, #3 add r0, r8 mov r1, ip strh r0, [r1] _0804D90E: ldr r1, _0804D94C @ =0x0200B0C0 ldr r5, _0804D958 @ =0x000002EA adds r2, r1, r5 movs r0, #0x50 strh r0, [r2] ldr r0, _0804D940 @ =0x020314E0 ldr r2, [r0] ldr r7, _0804D95C @ =0x000002F6 adds r1, r1, r7 ldrh r1, [r1] adds r0, r2, #0 adds r0, #0xcc strh r1, [r0] subs r0, #2 strh r1, [r0] movs r0, #0x80 lsls r0, r0, #5 str r0, [r2, #0x2c] pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804D93C: .4byte 0x0000FFC0 _0804D940: .4byte 0x020314E0 _0804D944: .4byte 0x02031520 _0804D948: .4byte 0x000005FC _0804D94C: .4byte 0x0200B0C0 _0804D950: .4byte 0x000002F2 _0804D954: .4byte 0x000007FF _0804D958: .4byte 0x000002EA _0804D95C: .4byte 0x000002F6 thumb_func_start sub_4D960 sub_4D960: @ 0x0804D960 push {r4, r5, r6, r7, lr} movs r7, #0x80 lsls r7, r7, #5 ldr r0, _0804D9A4 @ =0x0200B0C0 ldrb r0, [r0, #0xf] cmp r0, #0 bne _0804D972 bl sub_4E2F8 _0804D972: ldr r1, _0804D9A8 @ =0x020314E0 ldr r2, [r1] ldr r0, _0804D9AC @ =0x000005FB adds r4, r2, r0 movs r0, #0 ldrsb r0, [r4, r0] adds r6, r1, #0 cmp r0, #0 beq _0804D9C2 ldr r3, _0804D9B0 @ =0x000005FC adds r1, r2, r3 ldr r5, _0804D9B4 @ =0x000005FE adds r0, r2, r5 ldrh r3, [r1] movs r5, #0 ldrsh r2, [r1, r5] movs r5, #0 ldrsh r0, [r0, r5] cmp r2, r0 beq _0804D9BE cmp r2, r0 ble _0804D9B8 subs r0, r3, #1 strh r0, [r1] b _0804D9C2 .align 2, 0 _0804D9A4: .4byte 0x0200B0C0 _0804D9A8: .4byte 0x020314E0 _0804D9AC: .4byte 0x000005FB _0804D9B0: .4byte 0x000005FC _0804D9B4: .4byte 0x000005FE _0804D9B8: adds r0, r3, #1 strh r0, [r1] b _0804D9C2 _0804D9BE: movs r0, #0 strb r0, [r4] _0804D9C2: ldr r5, [r6] ldrb r0, [r5, #0x1f] cmp r0, #0 bne _0804D9E0 ldr r1, _0804DA2C @ =0x00001330 adds r0, r5, r1 ldr r0, [r0] movs r2, #0x32 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 movs r3, #0x80 lsls r3, r3, #5 adds r7, r0, r3 _0804D9E0: ldr r4, [r5, #0x2c] subs r0, r7, r4 movs r1, #0xa bl __divsi3 adds r4, r4, r0 str r4, [r5, #0x2c] ldr r1, _0804DA2C @ =0x00001330 adds r0, r5, r1 ldr r0, [r0] ldr r0, [r0, #0x38] adds r1, r0, r4 ldr r2, _0804DA30 @ =0x02031520 movs r3, #0x18 ldrsh r0, [r2, r3] lsls r0, r0, #8 cmp r1, r0 bgt _0804DA0E movs r4, #0x1a ldrsh r0, [r2, r4] lsls r0, r0, #8 cmp r1, r0 bge _0804DA10 _0804DA0E: adds r1, r0, #0 _0804DA10: ldr r5, _0804DA34 @ =0xFFFFB000 adds r1, r1, r5 ldr r0, [r6] ldr r4, [r0, #0x54] subs r0, r1, r4 movs r1, #0xc bl __divsi3 adds r1, r0, #0 cmp r1, #0 ble _0804DA38 cmp r1, #0x4f bgt _0804DA42 b _0804DA40 .align 2, 0 _0804DA2C: .4byte 0x00001330 _0804DA30: .4byte 0x02031520 _0804DA34: .4byte 0xFFFFB000 _0804DA38: movs r0, #0x50 rsbs r0, r0, #0 cmp r1, r0 ble _0804DA42 _0804DA40: movs r1, #0 _0804DA42: adds r4, r4, r1 ldr r1, [r6] ldr r2, _0804DA7C @ =0x000005FA adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804DAAC str r4, [r1, #0x54] adds r0, r4, #0 cmp r0, #0 bge _0804DA5E adds r0, #0xff _0804DA5E: asrs r0, r0, #8 adds r2, r1, #0 adds r2, #0x4e strh r0, [r2] ldr r3, _0804DA80 @ =0x00001330 adds r0, r1, r3 ldr r0, [r0] movs r4, #0x10 ldrsh r0, [r0, r4] cmp r0, #0xe5 ble _0804DA84 adds r1, #0x4c ldrh r0, [r1] adds r0, #1 b _0804DA8A .align 2, 0 _0804DA7C: .4byte 0x000005FA _0804DA80: .4byte 0x00001330 _0804DA84: adds r1, #0x4c ldrh r0, [r1] subs r0, #1 _0804DA8A: strh r0, [r1] ldr r0, _0804DAA0 @ =0x020314E0 ldr r0, [r0] adds r1, r0, #0 adds r1, #0x4c movs r5, #0 ldrsh r0, [r1, r5] cmp r0, #0x10 ble _0804DAA4 movs r0, #0x10 b _0804DAAA .align 2, 0 _0804DAA0: .4byte 0x020314E0 _0804DAA4: cmp r0, #0 bge _0804DAAC movs r0, #0 _0804DAAA: strh r0, [r1] _0804DAAC: bl sub_4DFA0 ldr r3, _0804DB14 @ =0x0200B0C0 ldr r0, _0804DB18 @ =0x020314E0 ldr r4, [r0] adds r2, r4, #0 adds r2, #0x4c movs r1, #0x90 lsls r1, r1, #1 adds r0, r4, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804DB1C @ =0x000002AA adds r0, r4, r2 ldrh r0, [r0] adds r0, r0, r1 movs r5, #0xbd lsls r5, r5, #2 adds r1, r3, r5 strh r0, [r1] adds r1, r4, #0 adds r1, #0x4e ldr r2, _0804DB20 @ =0x00000121 adds r0, r4, r2 movs r2, #0 ldrsb r2, [r0, r2] ldrh r1, [r1] adds r2, r2, r1 ldr r5, _0804DB24 @ =0x000005FC adds r0, r4, r5 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0xe6 adds r1, r1, r2 ldrh r0, [r0] adds r1, r1, r0 adds r0, r4, #0 adds r0, #0xcc strh r1, [r0] ldr r0, _0804DB28 @ =0x000002F6 adds r3, r3, r0 ldrh r0, [r3] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #8 ble _0804DB2C movs r2, #8 b _0804DB36 .align 2, 0 _0804DB14: .4byte 0x0200B0C0 _0804DB18: .4byte 0x020314E0 _0804DB1C: .4byte 0x000002AA _0804DB20: .4byte 0x00000121 _0804DB24: .4byte 0x000005FC _0804DB28: .4byte 0x000002F6 _0804DB2C: movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _0804DB36 ldr r2, _0804DBE0 @ =0x0000FFF8 _0804DB36: ldr r3, _0804DBE4 @ =0x0200B0C0 cmp r2, #0 beq _0804DB46 ldr r4, _0804DBE8 @ =0x000002F6 adds r1, r3, r4 ldrh r0, [r1] subs r0, r0, r2 strh r0, [r1] _0804DB46: movs r5, #0xbd lsls r5, r5, #2 adds r0, r3, r5 ldrh r2, [r0] movs r1, #0xbc lsls r1, r1, #2 adds r0, r3, r1 strh r2, [r0] ldr r4, _0804DBE8 @ =0x000002F6 adds r0, r3, r4 ldrh r1, [r0] subs r5, #2 adds r0, r3, r5 strh r1, [r0] subs r4, #0xa adds r0, r3, r4 strh r2, [r0] subs r5, #4 adds r0, r3, r5 strh r1, [r0] ldr r0, _0804DBEC @ =0x020314E0 ldr r4, [r0] adds r2, r4, #0 adds r2, #0x4c movs r1, #0x90 lsls r1, r1, #1 adds r0, r4, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804DBF0 @ =0x000002AA adds r0, r4, r2 ldrh r0, [r0] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x58 strh r0, [r1] adds r6, r4, #0 adds r6, #0x4e ldr r3, _0804DBF4 @ =0x00000121 adds r3, r3, r4 mov ip, r3 movs r1, #0 ldrsb r1, [r3, r1] ldrh r5, [r6] adds r1, r1, r5 ldr r0, _0804DBF8 @ =0x000005FC adds r3, r4, r0 ldrh r0, [r3] adds r5, r4, #0 adds r5, #0xe6 adds r0, r0, r1 ldrh r1, [r5] adds r0, r0, r1 adds r1, r4, #0 adds r1, #0x5a strh r0, [r1] adds r2, r4, #0 adds r2, #0x68 ldrh r1, [r2] adds r0, r4, #0 adds r0, #0x6a strh r1, [r0] mov r4, ip movs r1, #0 ldrsb r1, [r4, r1] ldrh r6, [r6] adds r1, r1, r6 ldrh r0, [r3] adds r0, r0, r1 ldrh r5, [r5] adds r0, r0, r5 strh r0, [r2] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804DBE0: .4byte 0x0000FFF8 _0804DBE4: .4byte 0x0200B0C0 _0804DBE8: .4byte 0x000002F6 _0804DBEC: .4byte 0x020314E0 _0804DBF0: .4byte 0x000002AA _0804DBF4: .4byte 0x00000121 _0804DBF8: .4byte 0x000005FC thumb_func_start sub_4DBFC sub_4DBFC: @ 0x0804DBFC push {r4, r5, r6, r7, lr} movs r6, #0x80 lsls r6, r6, #5 ldr r0, _0804DC48 @ =0x0200B0C0 ldrb r0, [r0, #0xf] movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 cmp r0, #0 bne _0804DC14 bl sub_4E468 _0804DC14: ldr r1, _0804DC4C @ =0x020314E0 ldr r2, [r1] ldr r0, _0804DC50 @ =0x000005FB adds r4, r2, r0 movs r0, #0 ldrsb r0, [r4, r0] adds r7, r1, #0 cmp r0, #0 beq _0804DC66 ldr r3, _0804DC54 @ =0x000005FC adds r1, r2, r3 ldr r5, _0804DC58 @ =0x000005FE adds r0, r2, r5 ldrh r3, [r1] movs r5, #0 ldrsh r2, [r1, r5] movs r5, #0 ldrsh r0, [r0, r5] cmp r2, r0 beq _0804DC62 cmp r2, r0 ble _0804DC5C subs r0, r3, #1 strh r0, [r1] b _0804DC66 .align 2, 0 _0804DC48: .4byte 0x0200B0C0 _0804DC4C: .4byte 0x020314E0 _0804DC50: .4byte 0x000005FB _0804DC54: .4byte 0x000005FC _0804DC58: .4byte 0x000005FE _0804DC5C: adds r0, r3, #1 strh r0, [r1] b _0804DC66 _0804DC62: movs r0, #0 strb r0, [r4] _0804DC66: ldr r5, [r7] ldrb r0, [r5, #0x1f] cmp r0, #0 bne _0804DC84 ldr r6, _0804DCD0 @ =0x00001330 adds r0, r5, r6 ldr r0, [r0] movs r2, #0x32 ldrsh r1, [r0, r2] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #3 movs r3, #0x80 lsls r3, r3, #5 adds r6, r0, r3 _0804DC84: ldr r4, [r5, #0x2c] subs r0, r6, r4 movs r1, #0xa bl __divsi3 adds r4, r4, r0 str r4, [r5, #0x2c] ldr r6, _0804DCD0 @ =0x00001330 adds r0, r5, r6 ldr r0, [r0] ldr r0, [r0, #0x38] adds r2, r0, r4 ldr r1, _0804DCD4 @ =0x02031520 movs r3, #0x18 ldrsh r0, [r1, r3] lsls r0, r0, #8 cmp r2, r0 bgt _0804DCB2 movs r4, #0x1a ldrsh r0, [r1, r4] lsls r0, r0, #8 cmp r2, r0 bge _0804DCB4 _0804DCB2: adds r2, r0, #0 _0804DCB4: ldr r5, _0804DCD8 @ =0xFFFFB000 adds r2, r2, r5 ldr r0, [r7] ldr r4, [r0, #0x54] subs r0, r2, r4 movs r1, #0xc bl __divsi3 adds r1, r0, #0 cmp r1, #0 ble _0804DCDC cmp r1, #0x4f bgt _0804DCE6 b _0804DCE4 .align 2, 0 _0804DCD0: .4byte 0x00001330 _0804DCD4: .4byte 0x02031520 _0804DCD8: .4byte 0xFFFFB000 _0804DCDC: movs r0, #0x50 rsbs r0, r0, #0 cmp r1, r0 ble _0804DCE6 _0804DCE4: movs r1, #0 _0804DCE6: adds r4, r4, r1 ldr r0, _0804DD80 @ =0x020314E0 ldr r2, [r0] ldr r6, _0804DD84 @ =0x000005FA adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804DD0C str r4, [r2, #0x54] adds r0, r4, #0 cmp r0, #0 bge _0804DD04 adds r0, #0xff _0804DD04: asrs r1, r0, #8 adds r0, r2, #0 adds r0, #0x4e strh r1, [r0] _0804DD0C: bl sub_4DFA0 ldr r2, _0804DD88 @ =0x0200B0C0 ldr r0, _0804DD80 @ =0x020314E0 ldr r3, [r0] adds r1, r3, #0 adds r1, #0x4c movs r4, #0x90 lsls r4, r4, #1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r1] adds r0, r0, r1 ldr r5, _0804DD8C @ =0x000002AA adds r1, r3, r5 adds r0, #8 ldrh r1, [r1] adds r0, r0, r1 movs r6, #0xbc lsls r6, r6, #2 adds r2, r2, r6 strh r0, [r2] adds r2, r3, #0 adds r2, #0x4e ldr r1, _0804DD90 @ =0x00000121 adds r0, r3, r1 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r2, _0804DD94 @ =0x000005FC adds r0, r3, r2 ldrh r0, [r0] adds r2, r3, #0 adds r2, #0xe6 adds r0, r0, r1 ldrh r2, [r2] adds r0, r0, r2 movs r4, #0xab lsls r4, r4, #2 adds r1, r3, r4 ldrh r1, [r1] adds r1, r1, r0 adds r0, r3, #0 adds r0, #0xcc strh r1, [r0] subs r0, #2 ldrh r0, [r0] subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 asrs r1, r0, #0x10 cmp r1, #8 ble _0804DD98 movs r2, #8 b _0804DDA2 .align 2, 0 _0804DD80: .4byte 0x020314E0 _0804DD84: .4byte 0x000005FA _0804DD88: .4byte 0x0200B0C0 _0804DD8C: .4byte 0x000002AA _0804DD90: .4byte 0x00000121 _0804DD94: .4byte 0x000005FC _0804DD98: movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 bge _0804DDA2 ldr r2, _0804DDDC @ =0x0000FFF8 _0804DDA2: lsls r0, r2, #0x10 asrs r2, r0, #0x10 ldr r7, _0804DDE0 @ =0x020314E0 cmp r2, #0 beq _0804DDB6 ldr r1, [r7] adds r1, #0xca ldrh r0, [r1] subs r0, r0, r2 strh r0, [r1] _0804DDB6: ldr r1, _0804DDE4 @ =0x0200B0C0 ldr r0, [r7] adds r0, #0xca ldrh r2, [r0] ldr r5, _0804DDE8 @ =0x000002F2 adds r0, r1, r5 strh r2, [r0] ldrb r0, [r1, #4] subs r0, #2 adds r4, r1, #0 cmp r0, #5 bls _0804DDD0 b _0804DF18 _0804DDD0: lsls r0, r0, #2 ldr r1, _0804DDEC @ =_0804DDF0 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804DDDC: .4byte 0x0000FFF8 _0804DDE0: .4byte 0x020314E0 _0804DDE4: .4byte 0x0200B0C0 _0804DDE8: .4byte 0x000002F2 _0804DDEC: .4byte _0804DDF0 _0804DDF0: @ jump table .4byte _0804DE08 @ case 0 .4byte _0804DE4C @ case 1 .4byte _0804DE98 @ case 2 .4byte _0804DE98 @ case 3 .4byte _0804DEC8 @ case 4 .4byte _0804DEFC @ case 5 _0804DE08: movs r6, #0xbc lsls r6, r6, #2 adds r0, r4, r6 ldrh r2, [r0] movs r1, #0xbd lsls r1, r1, #2 adds r0, r4, r1 strh r2, [r0] ldr r3, _0804DE40 @ =0x000002F2 adds r0, r4, r3 ldrh r1, [r0] ldr r5, _0804DE44 @ =0x000002F6 adds r0, r4, r5 strh r1, [r0] subs r6, #4 adds r0, r4, r6 strh r2, [r0] ldr r0, [r7] adds r0, #0xca movs r1, #0 ldrsh r0, [r0, r1] lsrs r1, r0, #0x1f adds r0, r0, r1 asrs r0, r0, #1 ldr r2, _0804DE48 @ =0x000002EE adds r1, r4, r2 strh r0, [r1] b _0804DF18 .align 2, 0 _0804DE40: .4byte 0x000002F2 _0804DE44: .4byte 0x000002F6 _0804DE48: .4byte 0x000002EE _0804DE4C: movs r3, #0xbc lsls r3, r3, #2 adds r2, r4, r3 ldr r0, [r7] movs r5, #0xa4 lsls r5, r5, #2 adds r0, r0, r5 ldr r0, [r0] ldr r1, _0804DE8C @ =0x000007FF ands r0, r1 lsrs r0, r0, #3 ldrh r2, [r2] adds r0, r2, r0 movs r6, #0xbd lsls r6, r6, #2 adds r1, r4, r6 movs r3, #0 strh r0, [r1] ldr r1, _0804DE90 @ =0x000002F2 adds r0, r4, r1 ldrh r1, [r0] adds r5, #0x66 adds r0, r4, r5 strh r1, [r0] subs r6, #8 adds r0, r4, r6 strh r2, [r0] ldr r1, _0804DE94 @ =0x000002EE adds r0, r4, r1 strh r3, [r0] b _0804DF18 .align 2, 0 _0804DE8C: .4byte 0x000007FF _0804DE90: .4byte 0x000002F2 _0804DE94: .4byte 0x000002EE _0804DE98: movs r2, #0xbc lsls r2, r2, #2 adds r0, r4, r2 ldrh r2, [r0] movs r3, #0xbd lsls r3, r3, #2 adds r0, r4, r3 strh r2, [r0] ldr r5, _0804DEC0 @ =0x000002F2 adds r0, r4, r5 ldrh r1, [r0] ldr r6, _0804DEC4 @ =0x000002F6 adds r0, r4, r6 strh r1, [r0] subs r3, #8 adds r0, r4, r3 strh r2, [r0] subs r5, #4 adds r0, r4, r5 b _0804DF16 .align 2, 0 _0804DEC0: .4byte 0x000002F2 _0804DEC4: .4byte 0x000002F6 _0804DEC8: movs r6, #0xbc lsls r6, r6, #2 adds r0, r4, r6 ldrh r3, [r0] movs r1, #0xbd lsls r1, r1, #2 adds r0, r4, r1 strh r3, [r0] ldr r5, _0804DEF4 @ =0x000002F2 adds r2, r4, r5 ldrh r0, [r2] lsrs r0, r0, #2 adds r6, #6 adds r1, r4, r6 strh r0, [r1] movs r1, #0xbb lsls r1, r1, #2 adds r0, r4, r1 strh r3, [r0] ldrh r1, [r2] ldr r2, _0804DEF8 @ =0x000002EE b _0804DF14 .align 2, 0 _0804DEF4: .4byte 0x000002F2 _0804DEF8: .4byte 0x000002EE _0804DEFC: movs r3, #0xbc lsls r3, r3, #2 adds r0, r4, r3 ldrh r1, [r0] movs r5, #0xbd lsls r5, r5, #2 adds r0, r4, r5 strh r1, [r0] ldr r6, _0804DF8C @ =0x000002F2 adds r0, r4, r6 ldrh r1, [r0] ldr r2, _0804DF90 @ =0x000002F6 _0804DF14: adds r0, r4, r2 _0804DF16: strh r1, [r0] _0804DF18: ldr r3, [r7] adds r2, r3, #0 adds r2, #0x4c movs r4, #0x90 lsls r4, r4, #1 adds r0, r3, r4 movs r1, #0 ldrsb r1, [r0, r1] ldrh r2, [r2] adds r1, r1, r2 ldr r5, _0804DF94 @ =0x000002AA adds r0, r3, r5 ldrh r0, [r0] adds r0, r0, r1 adds r1, r3, #0 adds r1, #0x58 strh r0, [r1] movs r6, #0x4e adds r6, r6, r3 mov ip, r6 ldr r0, _0804DF98 @ =0x00000121 adds r5, r3, r0 movs r0, #0 ldrsb r0, [r5, r0] ldrh r1, [r6] adds r0, r0, r1 ldr r4, _0804DF9C @ =0x000005FC adds r2, r3, r4 ldrh r1, [r2] adds r4, r3, #0 adds r4, #0xe6 adds r1, r1, r0 ldrh r6, [r4] adds r1, r1, r6 movs r6, #0xab lsls r6, r6, #2 adds r0, r3, r6 ldrh r0, [r0] adds r0, r0, r1 adds r1, r3, #0 adds r1, #0x5a strh r0, [r1] movs r1, #0 ldrsb r1, [r5, r1] mov r0, ip ldrh r0, [r0] adds r1, r1, r0 ldrh r0, [r2] adds r0, r0, r1 ldrh r4, [r4] adds r0, r0, r4 adds r1, r3, #0 adds r1, #0x68 strh r0, [r1] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804DF8C: .4byte 0x000002F2 _0804DF90: .4byte 0x000002F6 _0804DF94: .4byte 0x000002AA _0804DF98: .4byte 0x00000121 _0804DF9C: .4byte 0x000005FC thumb_func_start sub_4DFA0 sub_4DFA0: @ 0x0804DFA0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} sub sp, #8 ldr r3, _0804E0C8 @ =0x020314E0 ldr r2, [r3] adds r0, r2, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E084 ldr r1, _0804E0CC @ =0x000005A4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, #2 beq _0804E084 ldr r4, _0804E0D0 @ =0x0000061C adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E084 ldrb r0, [r2, #6] cmp r0, #0 beq _0804E008 movs r1, #0x95 lsls r1, r1, #1 adds r0, r2, r1 ldrb r1, [r0] cmp r1, #0 bne _0804E008 ldr r4, _0804E0D4 @ =0x00000129 adds r0, r2, r4 strb r1, [r0] ldr r0, [r3] movs r2, #0x94 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0 bne _0804E008 movs r0, #4 strb r0, [r1] movs r0, #0x78 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0804E008: ldr r2, _0804E0C8 @ =0x020314E0 ldr r1, [r2] ldrb r0, [r1, #7] cmp r0, #0 beq _0804E044 movs r3, #0x95 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] cmp r0, #0 bne _0804E044 ldr r4, _0804E0D4 @ =0x00000129 adds r1, r1, r4 movs r0, #1 strb r0, [r1] ldr r0, [r2] movs r2, #0x94 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0 bne _0804E044 movs r0, #4 strb r0, [r1] movs r0, #0x78 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0804E044: ldr r0, _0804E0C8 @ =0x020314E0 ldr r3, [r0] ldrb r1, [r3, #8] mov r8, r0 cmp r1, #0 beq _0804E084 movs r4, #0x95 lsls r4, r4, #1 adds r0, r3, r4 ldrb r0, [r0] cmp r0, #0 bne _0804E084 ldr r0, _0804E0D4 @ =0x00000129 adds r1, r3, r0 movs r0, #2 strb r0, [r1] mov r1, r8 ldr r0, [r1] movs r2, #0x94 lsls r2, r2, #1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, #0 bne _0804E096 movs r0, #4 strb r0, [r1] movs r0, #0x78 bl m4aSongNumStart movs r0, #8 bl sub_11B0 _0804E084: ldr r0, _0804E0C8 @ =0x020314E0 ldr r1, [r0] movs r3, #0x94 lsls r3, r3, #1 adds r1, r1, r3 ldrb r1, [r1] mov r8, r0 cmp r1, #0 beq _0804E174 _0804E096: mov r4, r8 ldr r0, [r4] movs r2, #0x94 lsls r2, r2, #1 adds r0, r0, r2 ldrb r1, [r0] subs r1, #1 strb r1, [r0] ldr r1, [r4] adds r2, r1, r2 ldrb r3, [r2] cmp r3, #0 bne _0804E174 ldr r2, _0804E0D4 @ =0x00000129 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #1 beq _0804E10C cmp r2, #1 bgt _0804E0D8 cmp r2, #0 beq _0804E0DE b _0804E166 .align 2, 0 _0804E0C8: .4byte 0x020314E0 _0804E0CC: .4byte 0x000005A4 _0804E0D0: .4byte 0x0000061C _0804E0D4: .4byte 0x00000129 _0804E0D8: cmp r2, #2 beq _0804E13C b _0804E166 _0804E0DE: movs r3, #0x8c lsls r3, r3, #1 adds r0, r1, r3 movs r2, #6 strb r2, [r0] mov r4, r8 ldr r0, [r4] movs r1, #0x8e lsls r1, r1, #1 adds r0, r0, r1 movs r1, #0xff strb r1, [r0] ldr r0, [r4] adds r3, #2 adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] movs r4, #0x8f lsls r4, r4, #1 adds r1, r0, r4 movs r0, #1 strb r0, [r1] b _0804E166 _0804E10C: ldr r3, _0804E134 @ =0x00000119 adds r0, r1, r3 movs r1, #6 strb r1, [r0] mov r4, r8 ldr r0, [r4] adds r3, #4 adds r0, r0, r3 strb r2, [r0] ldr r0, [r4] ldr r4, _0804E138 @ =0x0000011B adds r0, r0, r4 strb r1, [r0] mov r1, r8 ldr r0, [r1] adds r3, #2 adds r0, r0, r3 strb r2, [r0] b _0804E166 .align 2, 0 _0804E134: .4byte 0x00000119 _0804E138: .4byte 0x0000011B _0804E13C: movs r4, #0x8d lsls r4, r4, #1 adds r1, r1, r4 movs r0, #6 strb r0, [r1] mov r1, r8 ldr r0, [r1] movs r2, #0x8f lsls r2, r2, #1 adds r0, r0, r2 movs r1, #1 strb r1, [r0] mov r4, r8 ldr r0, [r4] subs r2, #3 adds r0, r0, r2 strb r3, [r0] ldr r0, [r4] ldr r3, _0804E1CC @ =0x0000011F adds r0, r0, r3 strb r1, [r0] _0804E166: mov r4, r8 ldr r0, [r4] movs r2, #0x95 lsls r2, r2, #1 adds r1, r0, r2 movs r0, #0x18 strb r0, [r1] _0804E174: mov r3, r8 ldr r0, [r3] movs r4, #0x95 lsls r4, r4, #1 adds r1, r0, r4 ldrb r0, [r1] cmp r0, #0 beq _0804E188 subs r0, #1 strb r0, [r1] _0804E188: movs r5, #0 mov ip, r8 movs r7, #0x8c lsls r7, r7, #1 movs r6, #0x8e lsls r6, r6, #1 mov r4, sp _0804E196: mov r1, ip ldr r0, [r1] adds r0, r0, r7 adds r1, r0, r5 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 ble _0804E1AC subs r0, r2, #1 strb r0, [r1] _0804E1AC: mov r2, ip ldr r1, [r2] adds r0, r1, r7 adds r3, r0, r5 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #2 bgt _0804E1D0 adds r0, r1, r6 adds r0, r0, r5 movs r1, #0 ldrsb r1, [r0, r1] movs r0, #0 ldrsb r0, [r3, r0] muls r0, r1, r0 b _0804E1E2 .align 2, 0 _0804E1CC: .4byte 0x0000011F _0804E1D0: adds r0, r1, r6 adds r0, r0, r5 movs r2, #0 ldrsb r2, [r0, r2] movs r1, #0 ldrsb r1, [r3, r1] movs r0, #6 subs r0, r0, r1 muls r0, r2, r0 _0804E1E2: strh r0, [r4] adds r4, #2 adds r5, #1 cmp r5, #3 ble _0804E196 mov r3, r8 ldr r1, [r3] mov r2, sp mov r0, sp ldrh r0, [r0, #2] ldrb r2, [r2] adds r0, r0, r2 movs r3, #0x90 lsls r3, r3, #1 adds r1, r1, r3 strb r0, [r1] mov r4, r8 ldr r2, [r4] mov r1, sp mov r0, sp ldrb r0, [r0, #6] ldrb r1, [r1, #4] adds r0, r0, r1 ldr r4, _0804E254 @ =0x00000121 adds r1, r2, r4 strb r0, [r1] mov r0, r8 ldr r2, [r0] adds r0, r2, r3 ldrh r1, [r0] cmp r1, #0 bne _0804E232 adds r4, #5 adds r0, r2, r4 strb r1, [r0] mov r2, r8 ldr r0, [r2] adds r4, #1 adds r0, r0, r4 strb r1, [r0] _0804E232: mov r0, r8 ldr r1, [r0] adds r0, r1, r3 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 ble _0804E258 movs r3, #0x91 lsls r3, r3, #1 adds r1, r1, r3 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 bge _0804E270 subs r0, r3, #1 b _0804E26E .align 2, 0 _0804E254: .4byte 0x00000121 _0804E258: cmp r2, #0 bge _0804E270 movs r4, #0x91 lsls r4, r4, #1 adds r1, r1, r4 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 ble _0804E270 adds r0, r3, #1 _0804E26E: strb r0, [r1] _0804E270: mov r0, r8 ldr r1, [r0] ldr r2, _0804E294 @ =0x00000121 adds r0, r1, r2 movs r2, #0 ldrsb r2, [r0, r2] cmp r2, #0 ble _0804E29C ldr r3, _0804E298 @ =0x00000123 adds r1, r1, r3 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 bge _0804E2B2 subs r0, r3, #1 b _0804E2B0 .align 2, 0 _0804E294: .4byte 0x00000121 _0804E298: .4byte 0x00000123 _0804E29C: cmp r2, #0 bge _0804E2B2 ldr r4, _0804E2F4 @ =0x00000123 adds r1, r1, r4 ldrb r3, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r2, r0 ble _0804E2B2 adds r0, r3, #1 _0804E2B0: strb r0, [r1] _0804E2B2: mov r0, r8 ldr r1, [r0] movs r2, #0x93 lsls r2, r2, #1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E2E6 movs r3, #0x90 lsls r3, r3, #1 adds r0, r1, r3 ldrb r0, [r0] movs r4, #0x91 lsls r4, r4, #1 adds r1, r1, r4 strb r0, [r1] mov r0, r8 ldr r1, [r0] subs r2, #5 adds r0, r1, r2 ldrb r0, [r0] adds r3, #3 adds r1, r1, r3 strb r0, [r1] _0804E2E6: add sp, #8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E2F4: .4byte 0x00000123 thumb_func_start sub_4E2F8 sub_4E2F8: @ 0x0804E2F8 push {r4, r5, r6, r7, lr} ldr r0, _0804E3E4 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r5, r0, #0 cmp r1, #0 beq _0804E328 ldrb r0, [r2, #5] cmp r0, #0 beq _0804E328 adds r0, r2, #0 adds r0, #0x20 ldrb r0, [r0] cmp r0, #0 beq _0804E328 adds r0, r2, #0 adds r0, #0x21 movs r1, #1 strb r1, [r0] ldr r0, [r5] ldr r2, _0804E3E8 @ =0x00000163 adds r0, r0, r2 strb r1, [r0] _0804E328: adds r4, r5, #0 ldr r1, [r4] adds r0, r1, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _0804E372 ldrb r0, [r1, #0xa] cmp r0, #0 beq _0804E372 ldr r0, _0804E3E8 @ =0x00000163 adds r1, r1, r0 movs r6, #0 movs r0, #3 strb r0, [r1] ldr r0, [r4] adds r0, #0x20 ldrb r0, [r0] cmp r0, #0 beq _0804E36C movs r0, #7 bl sub_11B0 ldr r0, [r4] ldr r1, _0804E3EC @ =0x0000132C adds r0, r0, r1 ldr r2, [r0] ldr r1, _0804E3F0 @ =0x0000FDB2 strh r1, [r2, #0x32] ldr r0, [r0] strh r6, [r0, #0x30] movs r0, #0xcd bl m4aSongNumStart _0804E36C: ldr r0, [r5] adds r0, #0x21 strb r6, [r0] _0804E372: ldr r7, _0804E3E4 @ =0x020314E0 ldr r6, [r7] ldr r2, _0804E3EC @ =0x0000132C adds r3, r6, r2 ldr r0, _0804E3F4 @ =0x00001334 adds r4, r6, r0 str r4, [r3] ldr r0, _0804E3F8 @ =0x02031520 movs r2, #0x12 ldrsh r1, [r4, r2] ldrh r5, [r0, #0x2a] movs r2, #0x2a ldrsh r0, [r0, r2] cmp r1, r0 blt _0804E452 movs r2, #0 strh r5, [r4, #0x12] ldr r1, [r3] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x28] ldr r1, [r3] movs r4, #0x12 ldrsh r0, [r1, r4] lsls r0, r0, #1 strh r0, [r1, #0x2a] ldr r1, [r3] movs r4, #0x10 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r1, #0x34] ldr r1, [r3] movs r4, #0x12 ldrsh r0, [r1, r4] lsls r0, r0, #8 str r0, [r1, #0x38] ldr r0, [r3] strh r2, [r0, #0x30] ldr r0, [r3] strh r2, [r0, #0x32] ldr r4, _0804E3FC @ =0x0200B0C0 ldrh r0, [r4, #0x14] cmp r0, #0 bne _0804E452 ldr r1, _0804E400 @ =0x00000724 adds r0, r6, r1 ldrh r0, [r0] cmp r0, #0 beq _0804E404 movs r0, #4 strh r0, [r4, #0x14] movs r0, #8 strb r0, [r4, #0x11] movs r0, #0xcc strh r0, [r4, #0x12] b _0804E452 .align 2, 0 _0804E3E4: .4byte 0x020314E0 _0804E3E8: .4byte 0x00000163 _0804E3EC: .4byte 0x0000132C _0804E3F0: .4byte 0x0000FDB2 _0804E3F4: .4byte 0x00001334 _0804E3F8: .4byte 0x02031520 _0804E3FC: .4byte 0x0200B0C0 _0804E400: .4byte 0x00000724 _0804E404: movs r0, #0x50 strh r0, [r4, #0x14] movs r0, #0x10 strb r0, [r4, #0x11] movs r0, #0xc8 strh r0, [r4, #0x12] bl m4aMPlayAllStop movs r0, #0xd bl m4aSongNumStart bl sub_4E598 ldr r2, [r7] movs r3, #0xf1 lsls r3, r3, #1 adds r0, r2, r3 movs r1, #0 ldrsb r1, [r0, r1] cmp r1, #2 bne _0804E452 movs r0, #9 ldrsb r0, [r4, r0] cmp r0, #0 bne _0804E452 movs r4, #0xdf lsls r4, r4, #1 adds r0, r2, r4 strb r1, [r0] ldr r1, [r7] movs r0, #0xe0 lsls r0, r0, #1 adds r2, r1, r0 movs r0, #0xc8 lsls r0, r0, #2 strh r0, [r2] adds r1, r1, r3 movs r0, #0 strb r0, [r1] _0804E452: ldr r0, _0804E464 @ =0x020314E0 ldr r0, [r0] adds r0, #0x20 movs r1, #0 strb r1, [r0] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E464: .4byte 0x020314E0 thumb_func_start sub_4E468 sub_4E468: @ 0x0804E468 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r2, _0804E4C4 @ =0x020314E0 ldr r5, [r2] ldr r0, _0804E4C8 @ =0x0000132C mov r8, r0 adds r4, r5, r0 ldr r1, _0804E4CC @ =0x00001334 adds r3, r5, r1 str r3, [r4] ldr r6, _0804E4D0 @ =0x02031520 movs r7, #0x12 ldrsh r1, [r3, r7] movs r7, #0x2a ldrsh r0, [r6, r7] mov ip, r2 cmp r1, r0 blt _0804E572 movs r1, #0 strh r1, [r3, #0x30] ldr r0, [r4] strh r1, [r0, #0x32] ldr r3, _0804E4D4 @ =0x0200B0C0 ldrb r1, [r3, #0xf] movs r0, #0x40 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _0804E4DC ldr r0, _0804E4D8 @ =0x00000386 adds r1, r5, r0 movs r0, #1 strb r0, [r1] movs r0, #0x80 strb r0, [r3, #0xf] mov r1, ip ldr r0, [r1] add r0, r8 ldr r1, [r0] ldrh r0, [r6, #0x2a] subs r0, #0xa strh r0, [r1, #0x12] b _0804E542 .align 2, 0 _0804E4C4: .4byte 0x020314E0 _0804E4C8: .4byte 0x0000132C _0804E4CC: .4byte 0x00001334 _0804E4D0: .4byte 0x02031520 _0804E4D4: .4byte 0x0200B0C0 _0804E4D8: .4byte 0x00000386 _0804E4DC: ldr r0, [r4] movs r1, #1 strb r1, [r0] mov r3, ip ldr r0, [r3] movs r7, #0xe2 lsls r7, r7, #2 adds r0, r0, r7 strb r1, [r0] ldr r3, [r3] ldr r1, _0804E57C @ =0x00000392 adds r0, r3, r1 strh r2, [r0] mov r7, r8 adds r2, r3, r7 ldr r1, [r2] ldrh r0, [r6, #0x26] strh r0, [r1, #0x10] ldr r1, [r2] ldrh r0, [r6, #0x28] strh r0, [r1, #0x12] ldr r4, _0804E580 @ =0x000005F6 adds r3, r3, r4 ldrb r1, [r3] movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 ble _0804E518 subs r0, r1, #1 strb r0, [r3] _0804E518: mov r0, ip ldr r1, [r0] movs r3, #0xbf lsls r3, r3, #3 adds r2, r1, r3 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] ldr r2, _0804E584 @ =0x040000D4 adds r1, r1, r4 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #5 ldr r1, _0804E588 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804E58C @ =0x05000220 str r0, [r2, #4] ldr r0, _0804E590 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0804E542: mov r7, ip ldr r1, [r7] ldr r0, _0804E594 @ =0x0000132C adds r1, r1, r0 ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r2, #0x28] ldr r2, [r1] movs r7, #0x12 ldrsh r0, [r2, r7] lsls r0, r0, #1 strh r0, [r2, #0x2a] ldr r2, [r1] movs r3, #0x10 ldrsh r0, [r2, r3] lsls r0, r0, #8 str r0, [r2, #0x34] ldr r1, [r1] movs r7, #0x12 ldrsh r0, [r1, r7] lsls r0, r0, #8 str r0, [r1, #0x38] _0804E572: pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E57C: .4byte 0x00000392 _0804E580: .4byte 0x000005F6 _0804E584: .4byte 0x040000D4 _0804E588: .4byte 0x08137E14 _0804E58C: .4byte 0x05000220 _0804E590: .4byte 0x80000010 _0804E594: .4byte 0x0000132C thumb_func_start sub_4E598 sub_4E598: @ 0x0804E598 push {r4, r5, r6, r7, lr} ldr r0, _0804E708 @ =0x020314E0 ldr r2, [r0] movs r5, #0 movs r3, #0 ldr r1, _0804E70C @ =0x000027D7 strh r1, [r2, #0x18] movs r1, #0x13 ldrsb r1, [r2, r1] adds r4, r0, #0 cmp r1, #2 bne _0804E5B4 movs r0, #5 strb r0, [r2, #0x17] _0804E5B4: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #7 bne _0804E5C2 movs r0, #6 strb r0, [r1, #0x17] _0804E5C2: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #4 bne _0804E5D0 movs r0, #0xa strb r0, [r1, #0x17] _0804E5D0: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #5 bne _0804E5DE movs r0, #6 strb r0, [r1, #0x17] _0804E5DE: ldr r1, [r4] movs r0, #0x13 ldrsb r0, [r1, r0] cmp r0, #6 bne _0804E5EC movs r0, #8 strb r0, [r1, #0x17] _0804E5EC: ldr r0, [r4] ldr r1, _0804E710 @ =0x00000714 adds r0, r0, r1 strb r5, [r0] ldr r0, [r4] movs r2, #0xe2 lsls r2, r2, #3 adds r0, r0, r2 strb r5, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] ldr r6, _0804E714 @ =0x00000711 adds r0, r0, r6 strb r1, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] ldr r7, _0804E718 @ =0x00000712 adds r0, r0, r7 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804E71C @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r0, [r4] subs r6, #0xfd adds r1, r0, r6 strh r3, [r1] movs r7, #0x82 lsls r7, r7, #2 adds r1, r0, r7 strh r3, [r1] ldr r1, _0804E720 @ =0x0000020A adds r0, r0, r1 strb r5, [r0] ldr r2, [r4] movs r6, #0xf1 lsls r6, r6, #1 adds r0, r2, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r6, _0804E724 @ =0x0200B0C0 cmp r0, #2 bne _0804E654 movs r0, #9 ldrsb r0, [r6, r0] cmp r0, #0 bne _0804E69C _0804E654: movs r7, #0xe3 lsls r7, r7, #1 adds r0, r2, r7 strh r3, [r0] movs r1, #0xe4 lsls r1, r1, #1 adds r0, r2, r1 strh r3, [r0] movs r5, #0xe6 lsls r5, r5, #1 adds r0, r2, r5 strh r3, [r0] adds r7, #4 adds r0, r2, r7 strh r3, [r0] adds r1, #0xc adds r0, r2, r1 strh r3, [r0] adds r5, #0xa adds r1, r2, r5 ldr r0, _0804E728 @ =0x0000FFFC strh r0, [r1] adds r7, #0xe adds r0, r2, r7 movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0] adds r5, #4 adds r0, r2, r5 strh r1, [r0] subs r7, #0xa adds r0, r2, r7 strh r3, [r0] adds r1, #0xd0 adds r0, r2, r1 strh r3, [r0] _0804E69C: ldr r0, [r4] movs r2, #0xe3 lsls r2, r2, #3 adds r0, r0, r2 movs r3, #0 strb r3, [r0] ldr r0, [r4] adds r1, r0, r2 ldrb r1, [r1] ldr r5, _0804E72C @ =0x00000719 adds r0, r0, r5 strb r1, [r0] ldr r0, [r4] adds r2, r0, r2 ldrb r1, [r2] ldr r7, _0804E730 @ =0x0000071A adds r0, r0, r7 strb r1, [r0] ldr r1, [r4] movs r2, #0xc2 lsls r2, r2, #2 adds r0, r1, r2 strh r3, [r0] movs r2, #9 ldrsb r2, [r6, r2] cmp r2, #0 beq _0804E748 ldr r3, _0804E734 @ =0x000005F6 adds r1, r1, r3 movs r0, #3 strb r0, [r1] ldr r1, [r4] movs r5, #0xbf lsls r5, r5, #3 adds r2, r1, r5 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] ldr r2, _0804E738 @ =0x040000D4 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #5 ldr r1, _0804E73C @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804E740 @ =0x05000220 str r0, [r2, #4] ldr r0, _0804E744 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] adds r6, r1, #0 b _0804E75C .align 2, 0 _0804E708: .4byte 0x020314E0 _0804E70C: .4byte 0x000027D7 _0804E710: .4byte 0x00000714 _0804E714: .4byte 0x00000711 _0804E718: .4byte 0x00000712 _0804E71C: .4byte 0x00000713 _0804E720: .4byte 0x0000020A _0804E724: .4byte 0x0200B0C0 _0804E728: .4byte 0x0000FFFC _0804E72C: .4byte 0x00000719 _0804E730: .4byte 0x0000071A _0804E734: .4byte 0x000005F6 _0804E738: .4byte 0x040000D4 _0804E73C: .4byte 0x08137E14 _0804E740: .4byte 0x05000220 _0804E744: .4byte 0x80000010 _0804E748: ldr r6, _0804E7E8 @ =0x000005F6 adds r1, r1, r6 movs r0, #0 strb r0, [r1] ldr r0, [r4] movs r7, #0xbf lsls r7, r7, #3 adds r0, r0, r7 strh r2, [r0] ldr r6, _0804E7EC @ =0x08137E14 _0804E75C: adds r3, r4, #0 ldr r0, [r3] ldr r1, _0804E7F0 @ =0x000005F7 adds r0, r0, r1 movs r5, #0 strb r5, [r0] ldr r1, _0804E7F4 @ =0x040000D4 ldr r2, [r3] ldr r7, _0804E7E8 @ =0x000005F6 adds r0, r2, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #5 adds r0, r0, r6 str r0, [r1] ldr r0, _0804E7F8 @ =0x05000220 str r0, [r1, #4] ldr r0, _0804E7FC @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] ldr r1, _0804E800 @ =0x0000070E adds r0, r2, r1 ldrb r0, [r0] ldr r6, _0804E804 @ =0x0000062F adds r2, r2, r6 strb r0, [r2] ldr r0, [r3] adds r0, r0, r1 movs r2, #1 strb r2, [r0] ldr r1, [r3] ldr r7, _0804E808 @ =0x000002A5 adds r0, r1, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x2d bne _0804E7D8 movs r6, #0xa9 lsls r6, r6, #2 adds r0, r1, r6 strb r5, [r0] ldr r0, [r3] adds r0, r0, r7 strb r5, [r0] ldr r1, [r3] adds r6, #2 adds r0, r1, r6 strh r5, [r0] ldr r7, _0804E80C @ =0x0000016F adds r0, r1, r7 strb r2, [r0] ldr r0, [r3] movs r1, #0xba lsls r1, r1, #1 adds r2, r0, r1 movs r1, #0x40 strh r1, [r2] ldr r2, _0804E810 @ =0x000002AA adds r0, r0, r2 strh r5, [r0] _0804E7D8: ldr r0, [r4] movs r6, #0xc0 lsls r6, r6, #2 adds r0, r0, r6 strb r5, [r0] pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804E7E8: .4byte 0x000005F6 _0804E7EC: .4byte 0x08137E14 _0804E7F0: .4byte 0x000005F7 _0804E7F4: .4byte 0x040000D4 _0804E7F8: .4byte 0x05000220 _0804E7FC: .4byte 0x80000010 _0804E800: .4byte 0x0000070E _0804E804: .4byte 0x0000062F _0804E808: .4byte 0x000002A5 _0804E80C: .4byte 0x0000016F _0804E810: .4byte 0x000002AA thumb_func_start sub_4E814 sub_4E814: @ 0x0804E814 push {r4, r5, r6, lr} ldr r6, _0804E910 @ =0x020314E0 ldr r4, [r6] ldr r0, _0804E914 @ =0x0000070C adds r5, r4, r0 ldrh r0, [r5] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x14 bl __udivsi3 ldr r1, _0804E918 @ =0x00000734 adds r4, r4, r1 strh r0, [r4] ldrh r0, [r5] adds r0, #1 strh r0, [r5] bl sub_4EA44 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xe7 bgt _0804E854 bl sub_4EDC0 bl sub_4EE74 _0804E854: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x51 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa6 bhi _0804E868 bl sub_4EF38 _0804E868: bl sub_4F0F0 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6f bgt _0804E87C bl sub_4F258 _0804E87C: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x70 ble _0804E88C bl sub_4F028 _0804E88C: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x68 ble _0804E8A0 bl sub_4F4B4 bl sub_4F660 _0804E8A0: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xff bgt _0804E8B0 bl sub_4F30C _0804E8B0: bl sub_4F2B8 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6e ble _0804E8C4 bl sub_4EAB0 _0804E8C4: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xb2 ble _0804E8DC bl sub_4EAF8 bl sub_4EBD0 bl sub_4E920 _0804E8DC: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xca ble _0804E8EC bl sub_4ECDC _0804E8EC: ldr r0, [r6] ldr r1, _0804E91C @ =0x00000724 adds r2, r0, r1 ldrh r1, [r2] cmp r1, #0 beq _0804E908 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804E908 subs r0, r1, #1 strh r0, [r2] _0804E908: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804E910: .4byte 0x020314E0 _0804E914: .4byte 0x0000070C _0804E918: .4byte 0x00000734 _0804E91C: .4byte 0x00000724 thumb_func_start sub_4E920 sub_4E920: @ 0x0804E920 push {r4, r5, lr} ldr r1, _0804E9CC @ =0x086B08CA ldr r4, _0804E9D0 @ =0x020314E0 ldr r0, [r4] ldr r2, _0804E9D4 @ =0x00000716 adds r3, r0, r2 ldrb r2, [r3] lsls r0, r2, #1 adds r0, r0, r1 ldrh r5, [r0] cmp r2, #0 beq _0804E95C subs r0, r2, #1 strb r0, [r3] ldr r0, [r4] ldr r1, _0804E9D4 @ =0x00000716 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #3 bne _0804E95C movs r0, #0x73 bl m4aSongNumStart ldr r1, [r4] movs r0, #0xfa lsls r0, r0, #1 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 _0804E95C: ldr r0, _0804E9D0 @ =0x020314E0 ldr r0, [r0] ldr r2, _0804E9D8 @ =0x00000717 adds r0, r0, r2 ldrb r0, [r0] lsls r3, r0, #4 subs r3, r3, r0 lsls r3, r3, #2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 adds r2, r2, r0 lsls r2, r2, #2 ldr r0, _0804E9DC @ =0x086B08D4 adds r2, r2, r0 adds r2, r3, r2 adds r0, #0x28 adds r3, r3, r0 ldr r0, _0804E9E0 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3] str r1, [r0, #4] ldr r1, _0804E9E4 @ =0x80000010 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #4] str r1, [r0, #4] ldr r5, _0804E9E8 @ =0x80000020 str r5, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #8] str r1, [r0] ldr r1, [r3, #8] str r1, [r0, #4] ldr r4, _0804E9EC @ =0x80000030 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0xc] str r1, [r0] ldr r1, [r3, #0xc] str r1, [r0, #4] str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0x10] str r1, [r0] ldr r1, [r3, #0x10] str r1, [r0, #4] str r5, [r0, #8] ldr r0, [r0, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804E9CC: .4byte 0x086B08CA _0804E9D0: .4byte 0x020314E0 _0804E9D4: .4byte 0x00000716 _0804E9D8: .4byte 0x00000717 _0804E9DC: .4byte 0x086B08D4 _0804E9E0: .4byte 0x040000D4 _0804E9E4: .4byte 0x80000010 _0804E9E8: .4byte 0x80000020 _0804E9EC: .4byte 0x80000030 thumb_func_start sub_4E9F0 sub_4E9F0: @ 0x0804E9F0 push {r4, lr} lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #1 adds r2, r2, r0 lsls r2, r2, #2 ldr r3, _0804EA34 @ =0x086B094C adds r2, r2, r3 adds r4, r3, #0 adds r4, #0x18 ldr r1, _0804EA38 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x18] str r0, [r1, #4] ldr r3, _0804EA3C @ =0x80000060 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r2, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] ldr r0, _0804EA40 @ =0x80000010 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4} pop {r0} bx r0 .align 2, 0 _0804EA34: .4byte 0x086B094C _0804EA38: .4byte 0x040000D4 _0804EA3C: .4byte 0x80000060 _0804EA40: .4byte 0x80000010 thumb_func_start sub_4EA44 sub_4EA44: @ 0x0804EA44 push {r4, r5, lr} ldr r0, _0804EA9C @ =0x020314E0 ldr r0, [r0] ldr r1, _0804EAA0 @ =0x0000070E adds r0, r0, r1 movs r5, #0 ldrsb r5, [r0, r5] adds r0, r5, #0 movs r1, #0xa bl __divsi3 adds r4, r0, #0 lsls r4, r4, #0x18 asrs r4, r4, #8 lsrs r4, r4, #0x10 adds r0, r5, #0 movs r1, #0xa bl __modsi3 lsls r0, r0, #0x18 lsls r4, r4, #0x10 asrs r4, r4, #0xd ldr r3, _0804EAA4 @ =0x086B0970 adds r4, r4, r3 ldr r2, _0804EAA8 @ =0x040000D4 ldr r1, [r4] str r1, [r2] ldr r1, [r3, #0x50] str r1, [r2, #4] ldr r1, _0804EAAC @ =0x80000010 str r1, [r2, #8] ldr r4, [r2, #8] asrs r0, r0, #0x15 adds r4, r0, r3 ldr r0, [r4, #4] str r0, [r2] ldr r0, [r3, #0x54] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804EA9C: .4byte 0x020314E0 _0804EAA0: .4byte 0x0000070E _0804EAA4: .4byte 0x086B0970 _0804EAA8: .4byte 0x040000D4 _0804EAAC: .4byte 0x80000010 thumb_func_start sub_4EAB0 sub_4EAB0: @ 0x0804EAB0 push {r4, lr} ldr r0, _0804EAE8 @ =0x020314E0 ldr r0, [r0] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 ldr r3, _0804EAEC @ =0x086B09C8 adds r2, r2, r3 ldr r0, _0804EAF0 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3, #0x18] str r1, [r0, #4] ldr r4, _0804EAF4 @ =0x80000020 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #0x1c] str r1, [r0, #4] str r4, [r0, #8] ldr r0, [r0, #8] pop {r4} pop {r0} bx r0 .align 2, 0 _0804EAE8: .4byte 0x020314E0 _0804EAEC: .4byte 0x086B09C8 _0804EAF0: .4byte 0x040000D4 _0804EAF4: .4byte 0x80000020 thumb_func_start sub_4EAF8 sub_4EAF8: @ 0x0804EAF8 push {r4, r5, r6, r7, lr} ldr r7, _0804EBB4 @ =0x020314E0 ldr r5, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r5, r0 ldrb r0, [r1] cmp r0, #0 beq _0804EB5E ldr r6, _0804EBB8 @ =0x00000721 adds r0, r5, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r4, _0804EBBC @ =0x0000071D adds r5, r5, r4 adds r5, r5, r0 ldrb r0, [r1] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r1, #1 subs r1, r1, r0 strb r1, [r5] ldr r0, [r7] ldr r2, _0804EBC0 @ =0x00000722 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, r4 adds r1, r4, r1 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r4, r0 ldrb r0, [r4] strb r0, [r1] ldr r1, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r1, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0804EB5E: movs r1, #0 ldr r0, [r7] ldr r2, _0804EBBC @ =0x0000071D adds r7, r0, r2 ldr r6, _0804EBC4 @ =0x086B09E8 movs r0, #0x30 adds r0, r0, r6 mov ip, r0 ldr r4, _0804EBC8 @ =0x040000D4 ldr r5, _0804EBCC @ =0x80000020 _0804EB72: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r2, r3, #3 subs r2, r2, r3 lsls r2, r2, #3 adds r0, r7, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #3 adds r1, r1, r6 adds r1, r2, r1 add r2, ip ldr r0, [r1] str r0, [r4] ldr r0, [r2] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, [r1, #4] str r0, [r4] ldr r0, [r2, #4] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0804EB72 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804EBB4: .4byte 0x020314E0 _0804EBB8: .4byte 0x00000721 _0804EBBC: .4byte 0x0000071D _0804EBC0: .4byte 0x00000722 _0804EBC4: .4byte 0x086B09E8 _0804EBC8: .4byte 0x040000D4 _0804EBCC: .4byte 0x80000020 thumb_func_start sub_4EBD0 sub_4EBD0: @ 0x0804EBD0 push {r4, r5, r6, r7, lr} ldr r5, _0804EC38 @ =0x020314E0 ldr r4, [r5] ldr r1, _0804EC3C @ =0x00000714 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804EC7A ldr r2, _0804EC40 @ =0x00000715 adds r1, r4, r2 ldrb r0, [r1] cmp r0, #0 beq _0804EC4C movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804EC44 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804EC48 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, [r5] adds r3, #3 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0804EC7A .align 2, 0 _0804EC38: .4byte 0x020314E0 _0804EC3C: .4byte 0x00000714 _0804EC40: .4byte 0x00000715 _0804EC44: .4byte 0x00000711 _0804EC48: .4byte 0x00000713 _0804EC4C: movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804ECC4 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804ECC8 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] _0804EC7A: movs r2, #0 ldr r0, _0804ECCC @ =0x020314E0 ldr r0, [r0] movs r3, #0xe2 lsls r3, r3, #3 adds r5, r0, r3 ldr r4, _0804ECD0 @ =0x086B0BC4 adds r7, r4, #0 adds r7, #8 ldr r3, _0804ECD4 @ =0x040000D4 ldr r6, _0804ECD8 @ =0x80000020 _0804EC90: lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r2, r0 adds r2, r2, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r2] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _0804EC90 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804ECC4: .4byte 0x00000711 _0804ECC8: .4byte 0x00000713 _0804ECCC: .4byte 0x020314E0 _0804ECD0: .4byte 0x086B0BC4 _0804ECD4: .4byte 0x040000D4 _0804ECD8: .4byte 0x80000020 thumb_func_start sub_4ECDC sub_4ECDC: @ 0x0804ECDC push {r4, r5, lr} ldr r0, _0804ECF8 @ =0x020314E0 ldr r3, [r0] ldr r2, _0804ECFC @ =0x00000724 adds r1, r3, r2 ldrh r2, [r1] movs r1, #0x96 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bls _0804ED04 ldr r0, _0804ED00 @ =0x00000726 adds r1, r3, r0 b _0804ED1A .align 2, 0 _0804ECF8: .4byte 0x020314E0 _0804ECFC: .4byte 0x00000724 _0804ED00: .4byte 0x00000726 _0804ED04: cmp r2, #0 beq _0804ED40 adds r0, r3, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804ED24 ldr r2, _0804ED20 @ =0x00000726 adds r1, r3, r2 _0804ED1A: movs r0, #1 strb r0, [r1] b _0804ED46 .align 2, 0 _0804ED20: .4byte 0x00000726 _0804ED24: ldr r0, _0804ED38 @ =0x0200B0C0 ldr r0, [r0, #0x50] movs r1, #0xf ands r0, r1 lsrs r0, r0, #3 ldr r2, _0804ED3C @ =0x00000726 adds r1, r3, r2 strb r0, [r1] b _0804ED46 .align 2, 0 _0804ED38: .4byte 0x0200B0C0 _0804ED3C: .4byte 0x00000726 _0804ED40: ldr r1, _0804EDA8 @ =0x00000726 adds r0, r3, r1 strb r2, [r0] _0804ED46: ldr r0, [r5] ldr r2, _0804EDA8 @ =0x00000726 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #4 ldr r1, _0804EDAC @ =0x086B0A90 adds r3, r0, r1 adds r4, r1, #0 adds r4, #0x20 ldr r2, _0804EDB0 @ =0x040000D4 ldr r0, [r3] str r0, [r2] ldr r0, [r1, #0x20] str r0, [r2, #4] ldr r1, _0804EDB4 @ =0x80000060 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xd7 ble _0804EDA0 ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] ldr r0, _0804EDB8 @ =0x80000050 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #0xc] str r0, [r2] ldr r0, [r4, #0xc] str r0, [r2, #4] ldr r0, _0804EDBC @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] _0804EDA0: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804EDA8: .4byte 0x00000726 _0804EDAC: .4byte 0x086B0A90 _0804EDB0: .4byte 0x040000D4 _0804EDB4: .4byte 0x80000060 _0804EDB8: .4byte 0x80000050 _0804EDBC: .4byte 0x80000020 thumb_func_start sub_4EDC0 sub_4EDC0: @ 0x0804EDC0 push {r4, r5, r6, lr} movs r3, #0 ldr r0, _0804EE60 @ =0x020314E0 ldr r2, [r0] movs r4, #0xe5 lsls r4, r4, #3 adds r1, r2, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r6, r0, #0 cmp r1, #0 ble _0804EDE8 ldr r1, _0804EE64 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0804EDE8: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r3, _0804EE68 @ =0x086B0AC0 adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x30 ble _0804EE30 cmp r0, #0xd7 bgt _0804EE14 ldr r1, _0804EE6C @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _0804EE70 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EE14: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xdf bgt _0804EE30 ldr r1, _0804EE6C @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804EE70 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EE30: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x40 ble _0804EE58 ldr r0, _0804EE6C @ =0x040000D4 ldr r1, [r4, #8] str r1, [r0] ldr r1, [r5, #8] str r1, [r0, #4] ldr r2, _0804EE70 @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r4, #0xc] str r1, [r0] ldr r1, [r5, #0xc] str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] _0804EE58: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804EE60: .4byte 0x020314E0 _0804EE64: .4byte 0x00000734 _0804EE68: .4byte 0x086B0AC0 _0804EE6C: .4byte 0x040000D4 _0804EE70: .4byte 0x80000040 thumb_func_start sub_4EE74 sub_4EE74: @ 0x0804EE74 push {r4, r5, r6, lr} movs r3, #0 ldr r0, _0804EF18 @ =0x020314E0 ldr r2, [r0] ldr r4, _0804EF1C @ =0x00000729 adds r1, r2, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r6, r0, #0 cmp r1, #0 ble _0804EE9A ldr r1, _0804EF20 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0804EE9A: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r3, _0804EF24 @ =0x086B0AF0 adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x28 ble _0804EEE2 cmp r0, #0xcf bgt _0804EEC6 ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _0804EF2C @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804EEC6: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xd7 bgt _0804EEE2 ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804EF30 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EEE2: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x38 ble _0804EF12 cmp r0, #0xdf bgt _0804EF02 ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _0804EF30 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804EF02: ldr r1, _0804EF28 @ =0x040000D4 ldr r0, [r4, #0xc] str r0, [r1] ldr r0, [r5, #0xc] str r0, [r1, #4] ldr r0, _0804EF34 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804EF12: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804EF18: .4byte 0x020314E0 _0804EF1C: .4byte 0x00000729 _0804EF20: .4byte 0x00000734 _0804EF24: .4byte 0x086B0AF0 _0804EF28: .4byte 0x040000D4 _0804EF2C: .4byte 0x80000020 _0804EF30: .4byte 0x80000040 _0804EF34: .4byte 0x80000030 thumb_func_start sub_4EF38 sub_4EF38: @ 0x0804EF38 push {r4, r5, lr} movs r3, #0 ldr r0, _0804EF58 @ =0x020314E0 ldr r2, [r0] movs r4, #0xbc lsls r4, r4, #2 adds r1, r2, r4 ldrb r1, [r1] adds r5, r0, #0 cmp r1, #2 bls _0804EF60 ldr r0, _0804EF5C @ =0x0000072A adds r1, r2, r0 movs r0, #1 strb r0, [r1] b _0804EF6E .align 2, 0 _0804EF58: .4byte 0x020314E0 _0804EF5C: .4byte 0x0000072A _0804EF60: movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #0 beq _0804EF6E ldr r1, _0804EF98 @ =0x0000072A adds r0, r2, r1 strb r3, [r0] _0804EF6E: ldr r1, [r5] ldr r2, _0804EF98 @ =0x0000072A adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804EFA0 ldr r4, _0804EF9C @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r2, #0xa adds r1, r1, r2 ldrh r1, [r1] subs r1, #1 subs r0, r0, r1 lsls r0, r0, #0x10 b _0804EFAC .align 2, 0 _0804EF98: .4byte 0x0000072A _0804EF9C: .4byte 0x000001A5 _0804EFA0: ldr r4, _0804F014 @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x11 _0804EFAC: lsrs r3, r0, #0x10 lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r2, _0804F018 @ =0x086B0B20 adds r3, r0, r2 adds r4, r2, #0 adds r4, #0x40 ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xef bgt _0804EFD6 ldr r1, _0804F01C @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x40] str r0, [r1, #4] ldr r0, _0804F020 @ =0x80000050 str r0, [r1, #8] ldr r0, [r1, #8] _0804EFD6: ldr r2, _0804F01C @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r1, _0804F020 @ =0x80000050 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x58 ble _0804F00C ldr r0, [r3, #0xc] str r0, [r2] ldr r0, [r4, #0xc] str r0, [r2, #4] ldr r0, _0804F024 @ =0x80000030 str r0, [r2, #8] ldr r0, [r2, #8] _0804F00C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804F014: .4byte 0x000001A5 _0804F018: .4byte 0x086B0B20 _0804F01C: .4byte 0x040000D4 _0804F020: .4byte 0x80000050 _0804F024: .4byte 0x80000030 thumb_func_start sub_4F028 sub_4F028: @ 0x0804F028 push {r4, r5, lr} movs r3, #0 ldr r1, _0804F0CC @ =0x020314E0 ldr r0, [r1] ldr r4, _0804F0D0 @ =0x00000731 adds r0, r0, r4 strb r3, [r0] ldr r2, [r1] ldr r5, _0804F0D4 @ =0x0000072F adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r5, r1, #0 cmp r0, #1 ble _0804F056 movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _0804F056 adds r1, r2, r4 movs r0, #1 strb r0, [r1] _0804F056: ldr r2, [r5] ldr r1, _0804F0D0 @ =0x00000731 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0804F074 ldr r5, _0804F0D8 @ =0x00000734 adds r0, r2, r5 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0804F074: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r4, _0804F0DC @ =0x086B0B94 adds r3, r0, r4 adds r5, r4, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0804F0E0 @ =0x00000107 cmp r1, r0 bgt _0804F09E ldr r1, _0804F0E4 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r4, #0x20] str r0, [r1, #4] ldr r0, _0804F0E8 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804F09E: ldr r0, _0804F0E4 @ =0x040000D4 ldr r1, [r3, #4] str r1, [r0] ldr r1, [r5, #4] str r1, [r0, #4] ldr r2, _0804F0EC @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r3, #8] str r1, [r0] ldr r1, [r5, #8] str r1, [r0, #4] str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r3, #0xc] str r1, [r0] ldr r1, [r5, #0xc] str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804F0CC: .4byte 0x020314E0 _0804F0D0: .4byte 0x00000731 _0804F0D4: .4byte 0x0000072F _0804F0D8: .4byte 0x00000734 _0804F0DC: .4byte 0x086B0B94 _0804F0E0: .4byte 0x00000107 _0804F0E4: .4byte 0x040000D4 _0804F0E8: .4byte 0x80000020 _0804F0EC: .4byte 0x80000040 thumb_func_start sub_4F0F0 sub_4F0F0: @ 0x0804F0F0 push {r4, r5, r6, r7, lr} ldr r5, _0804F1E8 @ =0x020314E0 ldr r4, [r5] ldr r0, _0804F1EC @ =0x0000071B adds r1, r4, r0 movs r0, #0 ldrsb r0, [r1, r0] adds r7, r5, #0 cmp r0, #0 bne _0804F106 b _0804F24C _0804F106: ldr r6, _0804F1F0 @ =0x0000071C adds r0, r4, r6 ldrb r3, [r0] cmp r3, #0 bne _0804F112 b _0804F220 _0804F112: movs r1, #0xbe lsls r1, r1, #2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804F152 ldr r0, _0804F1F4 @ =0x0200B0C0 ldr r0, [r0, #0x50] movs r1, #0x14 bl __umodsi3 movs r1, #0xa bl __udivsi3 movs r2, #0xe3 lsls r2, r2, #3 adds r1, r4, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804F1F8 @ =0x00000719 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r4, _0804F1FC @ =0x0000071A adds r0, r0, r4 strb r1, [r0] _0804F152: ldr r1, [r5] adds r0, r1, r6 ldrb r0, [r0] cmp r0, #0x1c bne _0804F196 ldr r3, _0804F200 @ =0x000005F6 adds r1, r1, r3 ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #2 bgt _0804F16E adds r0, r2, #1 strb r0, [r1] _0804F16E: ldr r1, [r5] movs r0, #0xbf lsls r0, r0, #3 adds r2, r1, r0 movs r0, #0xe1 lsls r0, r0, #4 strh r0, [r2] ldr r2, _0804F204 @ =0x040000D4 adds r1, r1, r3 movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #5 ldr r1, _0804F208 @ =0x08137E14 adds r0, r0, r1 str r0, [r2] ldr r0, _0804F20C @ =0x05000220 str r0, [r2, #4] ldr r0, _0804F210 @ =0x80000010 str r0, [r2, #8] ldr r0, [r2, #8] _0804F196: adds r5, r7, #0 ldr r0, [r5] ldr r4, _0804F1F0 @ =0x0000071C adds r0, r0, r4 ldrb r0, [r0] cmp r0, #0x28 bne _0804F1AC ldr r0, _0804F214 @ =0x02032F20 ldr r1, _0804F218 @ =0x0869F664 bl MPlayStart _0804F1AC: ldr r0, [r5] adds r0, r0, r4 ldrb r0, [r0] cmp r0, #0x3c bne _0804F1C2 ldr r0, _0804F1F4 @ =0x0200B0C0 ldr r0, [r0, #0x44] adds r0, #0xac ldr r1, [r0] movs r0, #1 strh r0, [r1] _0804F1C2: ldr r2, [r7] ldr r3, _0804F21C @ =0x086B0E20 adds r0, r2, r4 ldrb r1, [r0] lsrs r1, r1, #1 movs r0, #0x1e subs r0, r0, r1 lsls r0, r0, #1 adds r0, r0, r3 ldrh r0, [r0] adds r2, #0x6e strb r0, [r2] ldr r1, [r7] adds r1, r1, r4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0804F24C .align 2, 0 _0804F1E8: .4byte 0x020314E0 _0804F1EC: .4byte 0x0000071B _0804F1F0: .4byte 0x0000071C _0804F1F4: .4byte 0x0200B0C0 _0804F1F8: .4byte 0x00000719 _0804F1FC: .4byte 0x0000071A _0804F200: .4byte 0x000005F6 _0804F204: .4byte 0x040000D4 _0804F208: .4byte 0x08137E14 _0804F20C: .4byte 0x05000220 _0804F210: .4byte 0x80000010 _0804F214: .4byte 0x02032F20 _0804F218: .4byte 0x0869F664 _0804F21C: .4byte 0x086B0E20 _0804F220: strb r3, [r1] ldr r2, [r5] movs r1, #0xbe lsls r1, r1, #2 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804F246 ldr r4, _0804F254 @ =0x0000071A adds r0, r2, r4 strb r3, [r0] subs r4, #1 adds r0, r2, r4 strb r3, [r0] subs r4, #1 adds r0, r2, r4 strb r3, [r0] _0804F246: ldr r0, [r5] adds r0, r0, r1 strb r3, [r0] _0804F24C: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804F254: .4byte 0x0000071A thumb_func_start sub_4F258 sub_4F258: @ 0x0804F258 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r0, _0804F2A8 @ =0x020314E0 ldr r0, [r0] movs r2, #0xe3 lsls r2, r2, #3 adds r5, r0, r2 ldr r4, _0804F2AC @ =0x086B0B70 adds r7, r4, #0 adds r7, #8 ldr r3, _0804F2B0 @ =0x040000D4 ldr r6, _0804F2B4 @ =0x80000020 _0804F270: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r1, r0 adds r1, r1, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r1] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _0804F270 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804F2A8: .4byte 0x020314E0 _0804F2AC: .4byte 0x086B0B70 _0804F2B0: .4byte 0x040000D4 _0804F2B4: .4byte 0x80000020 thumb_func_start sub_4F2B8 sub_4F2B8: @ 0x0804F2B8 push {r4, r5, lr} ldr r0, _0804F2EC @ =0x020314E0 ldr r1, [r0] ldr r0, _0804F2F0 @ =0x0000072B adds r3, r1, r0 movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #0 ble _0804F306 ldr r5, _0804F2F4 @ =0x0000072C adds r2, r1, r5 ldrh r4, [r2] ldr r0, _0804F2F8 @ =0x086B08C4 movs r1, #0 ldrsb r1, [r3, r1] subs r1, #1 lsls r1, r1, #1 adds r1, r1, r0 movs r5, #0 ldrsh r0, [r1, r5] cmp r4, r0 bge _0804F2FC adds r0, r4, #1 strh r0, [r2] b _0804F306 .align 2, 0 _0804F2EC: .4byte 0x020314E0 _0804F2F0: .4byte 0x0000072B _0804F2F4: .4byte 0x0000072C _0804F2F8: .4byte 0x086B08C4 _0804F2FC: movs r0, #0 strh r0, [r2] ldrb r0, [r3] subs r0, #1 strb r0, [r3] _0804F306: pop {r4, r5} pop {r0} bx r0 thumb_func_start sub_4F30C sub_4F30C: @ 0x0804F30C push {r4, r5, lr} sub sp, #8 ldr r1, _0804F33C @ =0x020314E0 ldr r2, [r1] ldr r3, _0804F340 @ =0x0000072B adds r0, r2, r3 movs r3, #0 ldrsb r3, [r0, r3] adds r4, r1, #0 cmp r3, #0 bne _0804F348 mov r1, sp ldr r5, _0804F344 @ =0x00000734 adds r2, r2, r5 movs r5, #0 ldrsh r0, [r2, r5] lsls r0, r0, #1 strh r0, [r1] ldrh r0, [r2] strh r0, [r1, #2] mov r0, sp strh r3, [r0, #4] b _0804F396 .align 2, 0 _0804F33C: .4byte 0x020314E0 _0804F340: .4byte 0x0000072B _0804F344: .4byte 0x00000734 _0804F348: cmp r3, #1 bne _0804F36C mov r1, sp movs r0, #3 strh r0, [r1] ldr r0, _0804F368 @ =0x00000734 adds r2, r2, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #1 strh r0, [r1, #4] b _0804F396 .align 2, 0 _0804F368: .4byte 0x00000734 _0804F36C: cmp r3, #2 bne _0804F38C mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r5, _0804F388 @ =0x00000734 adds r0, r2, r5 ldrh r0, [r0] adds r0, #2 strh r0, [r1, #4] b _0804F396 .align 2, 0 _0804F388: .4byte 0x00000734 _0804F38C: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] _0804F396: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r2, _0804F4A8 @ =0x086B0CB8 adds r3, r0, r2 adds r5, r2, #0 adds r5, #0x30 ldr r0, [r4] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x2a lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F3CA ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F3CA: ldr r0, [r4] adds r4, r0, #0 adds r4, #0x6a ldrh r0, [r4] subs r0, #0x32 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F3EC ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F3EC: mov r0, sp movs r3, #2 ldrsh r1, [r0, r3] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x3c adds r3, r0, r1 adds r5, r2, #0 adds r5, #0x6c ldrh r0, [r4] subs r0, #0x3a lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F41E ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x6c] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F41E: ldrh r0, [r4] subs r0, #0x42 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F43A ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F43A: mov r0, sp movs r5, #4 ldrsh r1, [r0, r5] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x78 adds r3, r0, r1 adds r5, r2, #0 adds r5, #0xa8 ldrh r0, [r4] subs r0, #0x4a lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F46C ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r5] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F46C: ldrh r0, [r4] subs r0, #0x52 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa5 bhi _0804F488 ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F488: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x59 ble _0804F4A0 ldr r1, _0804F4AC @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _0804F4B0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F4A0: add sp, #8 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804F4A8: .4byte 0x086B0CB8 _0804F4AC: .4byte 0x040000D4 _0804F4B0: .4byte 0x80000030 thumb_func_start sub_4F4B4 sub_4F4B4: @ 0x0804F4B4 push {r4, r5, r6, lr} sub sp, #8 ldr r0, _0804F4E8 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r6, r0, #0 cmp r1, #2 bgt _0804F53C ldr r1, _0804F4EC @ =0x0000072E adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _0804F4F4 mov r1, sp ldr r4, _0804F4F0 @ =0x00000734 adds r0, r2, r4 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _0804F562 .align 2, 0 _0804F4E8: .4byte 0x020314E0 _0804F4EC: .4byte 0x0000072E _0804F4F0: .4byte 0x00000734 _0804F4F4: cmp r3, #1 bne _0804F514 mov r1, sp movs r0, #3 strh r0, [r1] ldr r3, _0804F510 @ =0x00000734 adds r2, r2, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 b _0804F560 .align 2, 0 _0804F510: .4byte 0x00000734 _0804F514: cmp r3, #2 bne _0804F530 mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r3, _0804F52C @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #2 b _0804F560 .align 2, 0 _0804F52C: .4byte 0x00000734 _0804F530: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _0804F562 _0804F53C: mov r1, sp ldr r4, _0804F648 @ =0x00000739 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r3, _0804F64C @ =0x0000073A adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _0804F560: strh r0, [r1, #4] _0804F562: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804F650 @ =0x086B0C04 mov ip, r3 adds r3, r0, r3 mov r4, ip adds r4, #0x30 ldr r0, [r6] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0804F654 @ =0x00000107 cmp r1, r0 bgt _0804F598 ldr r1, _0804F658 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _0804F65C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F598: ldr r2, _0804F658 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r5, _0804F65C @ =0x80000030 str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r6] adds r6, r0, #0 adds r6, #0x6a movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x78 ble _0804F5FE mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] _0804F5FE: movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x88 ble _0804F640 mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] _0804F640: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804F648: .4byte 0x00000739 _0804F64C: .4byte 0x0000073A _0804F650: .4byte 0x086B0C04 _0804F654: .4byte 0x00000107 _0804F658: .4byte 0x040000D4 _0804F65C: .4byte 0x80000030 thumb_func_start sub_4F660 sub_4F660: @ 0x0804F660 push {r4, r5, r6, lr} sub sp, #8 ldr r0, _0804F694 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r5, r0, #0 cmp r1, #2 bgt _0804F6E8 ldr r1, _0804F698 @ =0x0000072F adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _0804F6A0 mov r1, sp ldr r4, _0804F69C @ =0x00000734 adds r0, r2, r4 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _0804F70E .align 2, 0 _0804F694: .4byte 0x020314E0 _0804F698: .4byte 0x0000072F _0804F69C: .4byte 0x00000734 _0804F6A0: cmp r3, #1 bne _0804F6C0 mov r1, sp movs r0, #3 strh r0, [r1] ldr r3, _0804F6BC @ =0x00000734 adds r2, r2, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 b _0804F70C .align 2, 0 _0804F6BC: .4byte 0x00000734 _0804F6C0: cmp r3, #2 bne _0804F6DC mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r3, _0804F6D8 @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #2 b _0804F70C .align 2, 0 _0804F6D8: .4byte 0x00000734 _0804F6DC: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _0804F70E _0804F6E8: mov r1, sp ldr r4, _0804F7F8 @ =0x00000736 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r3, _0804F7FC @ =0x00000737 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _0804F70C: strh r0, [r1, #4] _0804F70E: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804F800 @ =0x086B0D6C mov ip, r3 adds r3, r0, r3 mov r4, ip adds r4, #0x30 ldr r0, [r5] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _0804F804 @ =0x00000107 cmp r1, r0 bgt _0804F744 ldr r1, _0804F808 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _0804F80C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804F744: ldr r2, _0804F808 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r6, _0804F80C @ =0x80000030 str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r5, r0, #0 adds r5, #0x6a movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x78 ble _0804F7AC mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] ldr r1, _0804F810 @ =0x80000020 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] _0804F7AC: movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x88 ble _0804F7F0 mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] ldr r0, _0804F810 @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] _0804F7F0: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804F7F8: .4byte 0x00000736 _0804F7FC: .4byte 0x00000737 _0804F800: .4byte 0x086B0D6C _0804F804: .4byte 0x00000107 _0804F808: .4byte 0x040000D4 _0804F80C: .4byte 0x80000030 _0804F810: .4byte 0x80000020 thumb_func_start sub_4F814 sub_4F814: @ 0x0804F814 push {r4, r5, r6, lr} ldr r6, _0804F94C @ =0x020314E0 ldr r4, [r6] ldr r0, _0804F950 @ =0x0000070C adds r5, r4, r0 ldrh r0, [r5] movs r1, #0x28 bl __umodsi3 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 movs r1, #0x14 bl __udivsi3 ldr r1, _0804F954 @ =0x00000734 adds r4, r4, r1 strh r0, [r4] ldrh r0, [r5] adds r0, #1 strh r0, [r5] bl sub_50710 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x53 ble _0804F850 bl sub_50000 _0804F850: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x12 ble _0804F860 bl sub_500B4 _0804F860: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x38 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xba bhi _0804F874 bl sub_505A4 _0804F874: bl sub_4F0F0 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6f bgt _0804F888 bl sub_506B0 _0804F888: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x40 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xbd bhi _0804F89C bl sub_504C0 _0804F89C: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #0x1b lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xb7 bhi _0804F8B4 bl sub_4FB08 bl sub_4F95C _0804F8B4: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x68 ble _0804F8C8 bl sub_50154 bl sub_5030C _0804F8C8: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x48 ble _0804F8D8 bl sub_4FE6C _0804F8D8: bl sub_4F2B8 ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0x6e ble _0804F8EC bl sub_4FAC0 _0804F8EC: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xb2 ble _0804F904 bl sub_4FBA4 bl sub_4FC7C bl sub_4F9F0 _0804F904: ldr r0, [r6] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xca ble _0804F914 bl sub_4FD88 _0804F914: ldr r0, [r6] adds r0, #0x6a ldrh r0, [r0] subs r0, #8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xad bhi _0804F928 bl sub_507D4 _0804F928: ldr r0, [r6] ldr r1, _0804F958 @ =0x00000724 adds r2, r0, r1 ldrh r1, [r2] cmp r1, #0 beq _0804F944 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _0804F944 subs r0, r1, #1 strh r0, [r2] _0804F944: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0804F94C: .4byte 0x020314E0 _0804F950: .4byte 0x0000070C _0804F954: .4byte 0x00000734 _0804F958: .4byte 0x00000724 thumb_func_start sub_4F95C sub_4F95C: @ 0x0804F95C push {r4, r5, r6, r7, lr} ldr r0, _0804F9DC @ =0x020314E0 ldr r4, [r0] ldr r1, _0804F9E0 @ =0x0000070E adds r0, r4, r1 movs r5, #0 ldrsb r5, [r0, r5] adds r0, r5, #0 movs r1, #0xa bl __divsi3 lsls r0, r0, #0x18 asrs r0, r0, #8 lsrs r6, r0, #0x10 adds r0, r5, #0 movs r1, #0xa bl __modsi3 lsls r0, r0, #0x18 asrs r0, r0, #8 lsrs r7, r0, #0x10 adds r4, #0x6a movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x24 ble _0804F9D6 lsls r0, r6, #0x10 asrs r0, r0, #0xc ldr r3, _0804F9E4 @ =0x086B0E9C adds r5, r0, r3 adds r4, r3, #0 adds r4, #0xa0 ldr r1, _0804F9E8 @ =0x040000D4 ldr r0, [r5] str r0, [r1] ldr r0, [r4] str r0, [r1, #4] ldr r2, _0804F9EC @ =0x80000010 str r2, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] lsls r0, r7, #0x10 asrs r0, r0, #0xc adds r5, r0, r3 ldr r0, [r5, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] ldr r0, [r5, #0xc] str r0, [r1] ldr r0, [r4, #0xc] str r0, [r1, #4] str r2, [r1, #8] ldr r0, [r1, #8] _0804F9D6: pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804F9DC: .4byte 0x020314E0 _0804F9E0: .4byte 0x0000070E _0804F9E4: .4byte 0x086B0E9C _0804F9E8: .4byte 0x040000D4 _0804F9EC: .4byte 0x80000010 thumb_func_start sub_4F9F0 sub_4F9F0: @ 0x0804F9F0 push {r4, r5, lr} ldr r1, _0804FA9C @ =0x086B0E60 ldr r4, _0804FAA0 @ =0x020314E0 ldr r0, [r4] ldr r2, _0804FAA4 @ =0x00000716 adds r3, r0, r2 ldrb r2, [r3] lsls r0, r2, #1 adds r0, r0, r1 ldrh r5, [r0] cmp r2, #0 beq _0804FA2C subs r0, r2, #1 strb r0, [r3] ldr r0, [r4] ldr r1, _0804FAA4 @ =0x00000716 adds r0, r0, r1 ldrb r0, [r0] cmp r0, #3 bne _0804FA2C movs r0, #0x73 bl m4aSongNumStart ldr r1, [r4] movs r0, #0xfa lsls r0, r0, #1 str r0, [r1, #0x3c] movs r0, #7 bl sub_11B0 _0804FA2C: ldr r0, _0804FAA0 @ =0x020314E0 ldr r0, [r0] ldr r2, _0804FAA8 @ =0x00000717 adds r0, r0, r2 ldrb r0, [r0] lsls r3, r0, #4 subs r3, r3, r0 lsls r3, r3, #2 lsls r0, r5, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 adds r2, r2, r0 lsls r2, r2, #2 ldr r0, _0804FAAC @ =0x086B108C adds r2, r2, r0 adds r2, r3, r2 adds r0, #0x28 adds r3, r3, r0 ldr r0, _0804FAB0 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3] str r1, [r0, #4] ldr r1, _0804FAB4 @ =0x80000010 str r1, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #4] str r1, [r0, #4] ldr r5, _0804FAB8 @ =0x80000020 str r5, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #8] str r1, [r0] ldr r1, [r3, #8] str r1, [r0, #4] ldr r4, _0804FABC @ =0x80000030 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0xc] str r1, [r0] ldr r1, [r3, #0xc] str r1, [r0, #4] str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #0x10] str r1, [r0] ldr r1, [r3, #0x10] str r1, [r0, #4] str r5, [r0, #8] ldr r0, [r0, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804FA9C: .4byte 0x086B0E60 _0804FAA0: .4byte 0x020314E0 _0804FAA4: .4byte 0x00000716 _0804FAA8: .4byte 0x00000717 _0804FAAC: .4byte 0x086B108C _0804FAB0: .4byte 0x040000D4 _0804FAB4: .4byte 0x80000010 _0804FAB8: .4byte 0x80000020 _0804FABC: .4byte 0x80000030 thumb_func_start sub_4FAC0 sub_4FAC0: @ 0x0804FAC0 push {r4, lr} ldr r0, _0804FAF8 @ =0x020314E0 ldr r0, [r0] movs r1, #0xe6 lsls r1, r1, #3 adds r0, r0, r1 movs r2, #0 ldrsb r2, [r0, r2] lsls r2, r2, #3 ldr r3, _0804FAFC @ =0x086B1104 adds r2, r2, r3 ldr r0, _0804FB00 @ =0x040000D4 ldr r1, [r2] str r1, [r0] ldr r1, [r3, #0x18] str r1, [r0, #4] ldr r4, _0804FB04 @ =0x80000020 str r4, [r0, #8] ldr r1, [r0, #8] ldr r1, [r2, #4] str r1, [r0] ldr r1, [r3, #0x1c] str r1, [r0, #4] str r4, [r0, #8] ldr r0, [r0, #8] pop {r4} pop {r0} bx r0 .align 2, 0 _0804FAF8: .4byte 0x020314E0 _0804FAFC: .4byte 0x086B1104 _0804FB00: .4byte 0x040000D4 _0804FB04: .4byte 0x80000020 thumb_func_start sub_4FB08 sub_4FB08: @ 0x0804FB08 push {r4, r5, lr} ldr r0, _0804FB88 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x3f ands r0, r1 lsrs r0, r0, #4 lsls r0, r0, #4 ldr r2, _0804FB8C @ =0x086B0F4C adds r3, r0, r2 adds r5, r2, #0 adds r5, #0x40 ldr r4, _0804FB90 @ =0x020314E0 ldr r0, [r4] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xbf bgt _0804FB3C ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x40] str r0, [r1, #4] ldr r0, _0804FB98 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FB3C: ldr r0, [r4] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xc7 bgt _0804FB5A ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _0804FB9C @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0804FB5A: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xcf bgt _0804FB72 ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _0804FBA0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804FB72: ldr r1, _0804FB94 @ =0x040000D4 ldr r0, [r3, #0xc] str r0, [r1] ldr r0, [r5, #0xc] str r0, [r1, #4] ldr r0, _0804FBA0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804FB88: .4byte 0x0200B0C0 _0804FB8C: .4byte 0x086B0F4C _0804FB90: .4byte 0x020314E0 _0804FB94: .4byte 0x040000D4 _0804FB98: .4byte 0x80000020 _0804FB9C: .4byte 0x80000040 _0804FBA0: .4byte 0x80000030 thumb_func_start sub_4FBA4 sub_4FBA4: @ 0x0804FBA4 push {r4, r5, r6, r7, lr} ldr r7, _0804FC60 @ =0x020314E0 ldr r5, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r5, r0 ldrb r0, [r1] cmp r0, #0 beq _0804FC0A ldr r6, _0804FC64 @ =0x00000721 adds r0, r5, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r4, _0804FC68 @ =0x0000071D adds r5, r5, r4 adds r5, r5, r0 ldrb r0, [r1] movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r1, #1 subs r1, r1, r0 strb r1, [r5] ldr r0, [r7] ldr r2, _0804FC6C @ =0x00000722 adds r1, r0, r2 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r4, r0, r4 adds r1, r4, r1 adds r0, r0, r6 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r4, r4, r0 ldrb r0, [r4] strb r0, [r1] ldr r1, [r7] movs r0, #0xe4 lsls r0, r0, #3 adds r1, r1, r0 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0804FC0A: movs r1, #0 ldr r0, [r7] ldr r2, _0804FC68 @ =0x0000071D adds r7, r0, r2 ldr r6, _0804FC70 @ =0x086B1124 movs r0, #0x30 adds r0, r0, r6 mov ip, r0 ldr r4, _0804FC74 @ =0x040000D4 ldr r5, _0804FC78 @ =0x80000020 _0804FC1E: lsls r3, r1, #0x10 asrs r3, r3, #0x10 lsls r2, r3, #3 subs r2, r2, r3 lsls r2, r2, #3 adds r0, r7, r3 movs r1, #0 ldrsb r1, [r0, r1] lsls r1, r1, #3 adds r1, r1, r6 adds r1, r2, r1 add r2, ip ldr r0, [r1] str r0, [r4] ldr r0, [r2] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] ldr r0, [r1, #4] str r0, [r4] ldr r0, [r2, #4] str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #2 ble _0804FC1E pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804FC60: .4byte 0x020314E0 _0804FC64: .4byte 0x00000721 _0804FC68: .4byte 0x0000071D _0804FC6C: .4byte 0x00000722 _0804FC70: .4byte 0x086B1124 _0804FC74: .4byte 0x040000D4 _0804FC78: .4byte 0x80000020 thumb_func_start sub_4FC7C sub_4FC7C: @ 0x0804FC7C push {r4, r5, r6, r7, lr} ldr r5, _0804FCE4 @ =0x020314E0 ldr r4, [r5] ldr r1, _0804FCE8 @ =0x00000714 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804FD26 ldr r2, _0804FCEC @ =0x00000715 adds r1, r4, r2 ldrb r0, [r1] cmp r0, #0 beq _0804FCF8 movs r1, #0x24 bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 movs r1, #0x12 bl __udivsi3 movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804FCF0 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804FCF4 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] ldr r1, [r5] adds r3, #3 adds r1, r1, r3 ldrb r0, [r1] subs r0, #1 strb r0, [r1] b _0804FD26 .align 2, 0 _0804FCE4: .4byte 0x020314E0 _0804FCE8: .4byte 0x00000714 _0804FCEC: .4byte 0x00000715 _0804FCF0: .4byte 0x00000711 _0804FCF4: .4byte 0x00000713 _0804FCF8: movs r2, #0xe2 lsls r2, r2, #3 adds r1, r4, r2 movs r0, #1 strb r0, [r1] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] ldr r3, _0804FD70 @ =0x00000711 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r1, r0, r2 ldrb r1, [r1] adds r3, #1 adds r0, r0, r3 strb r1, [r0] ldr r0, [r5] adds r2, r0, r2 ldrb r1, [r2] ldr r2, _0804FD74 @ =0x00000713 adds r0, r0, r2 strb r1, [r0] _0804FD26: movs r2, #0 ldr r0, _0804FD78 @ =0x020314E0 ldr r0, [r0] movs r3, #0xe2 lsls r3, r3, #3 adds r5, r0, r3 ldr r4, _0804FD7C @ =0x086B1300 adds r7, r4, #0 adds r7, #8 ldr r3, _0804FD80 @ =0x040000D4 ldr r6, _0804FD84 @ =0x80000020 _0804FD3C: lsls r1, r2, #0x10 asrs r1, r1, #0x10 lsls r2, r1, #4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r2, r0 adds r2, r2, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r2] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r1, #1 lsls r1, r1, #0x10 lsrs r2, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #3 ble _0804FD3C pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804FD70: .4byte 0x00000711 _0804FD74: .4byte 0x00000713 _0804FD78: .4byte 0x020314E0 _0804FD7C: .4byte 0x086B1300 _0804FD80: .4byte 0x040000D4 _0804FD84: .4byte 0x80000020 thumb_func_start sub_4FD88 sub_4FD88: @ 0x0804FD88 push {r4, r5, lr} ldr r0, _0804FDA4 @ =0x020314E0 ldr r3, [r0] ldr r2, _0804FDA8 @ =0x00000724 adds r1, r3, r2 ldrh r2, [r1] movs r1, #0x96 lsls r1, r1, #1 adds r5, r0, #0 cmp r2, r1 bls _0804FDB0 ldr r0, _0804FDAC @ =0x00000726 adds r1, r3, r0 b _0804FDC6 .align 2, 0 _0804FDA4: .4byte 0x020314E0 _0804FDA8: .4byte 0x00000724 _0804FDAC: .4byte 0x00000726 _0804FDB0: cmp r2, #0 beq _0804FDEC adds r0, r3, #0 adds r0, #0x25 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0804FDD0 ldr r2, _0804FDCC @ =0x00000726 adds r1, r3, r2 _0804FDC6: movs r0, #1 strb r0, [r1] b _0804FDF2 .align 2, 0 _0804FDCC: .4byte 0x00000726 _0804FDD0: ldr r0, _0804FDE4 @ =0x0200B0C0 ldr r0, [r0, #0x50] movs r1, #0xf ands r0, r1 lsrs r0, r0, #3 ldr r2, _0804FDE8 @ =0x00000726 adds r1, r3, r2 strb r0, [r1] b _0804FDF2 .align 2, 0 _0804FDE4: .4byte 0x0200B0C0 _0804FDE8: .4byte 0x00000726 _0804FDEC: ldr r1, _0804FE54 @ =0x00000726 adds r0, r3, r1 strb r2, [r0] _0804FDF2: ldr r0, [r5] ldr r2, _0804FE54 @ =0x00000726 adds r0, r0, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #4 ldr r1, _0804FE58 @ =0x086B11CC adds r3, r0, r1 adds r4, r1, #0 adds r4, #0x20 ldr r2, _0804FE5C @ =0x040000D4 ldr r0, [r3] str r0, [r2] ldr r0, [r1, #0x20] str r0, [r2, #4] ldr r1, _0804FE60 @ =0x80000070 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xd7 ble _0804FE4C ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] ldr r0, _0804FE64 @ =0x80000060 str r0, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #0xc] str r0, [r2] ldr r0, [r4, #0xc] str r0, [r2, #4] ldr r0, _0804FE68 @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] _0804FE4C: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0804FE54: .4byte 0x00000726 _0804FE58: .4byte 0x086B11CC _0804FE5C: .4byte 0x040000D4 _0804FE60: .4byte 0x80000070 _0804FE64: .4byte 0x80000060 _0804FE68: .4byte 0x80000020 thumb_func_start sub_4FE6C sub_4FE6C: @ 0x0804FE6C push {r4, r5, r6, r7, lr} sub sp, #8 ldr r1, _0804FE94 @ =0x020314E0 ldr r2, [r1] ldr r3, _0804FE98 @ =0x0000072B adds r0, r2, r3 movs r3, #0 ldrsb r3, [r0, r3] adds r7, r1, #0 cmp r3, #0 bne _0804FEA0 mov r1, sp ldr r4, _0804FE9C @ =0x00000734 adds r0, r2, r4 ldrh r0, [r0] strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _0804FEE2 .align 2, 0 _0804FE94: .4byte 0x020314E0 _0804FE98: .4byte 0x0000072B _0804FE9C: .4byte 0x00000734 _0804FEA0: cmp r3, #1 bne _0804FEBC mov r0, sp strh r3, [r0] mov r1, sp ldr r0, _0804FEB8 @ =0x00000734 adds r2, r2, r0 ldrh r0, [r2] strh r0, [r1, #2] ldrh r0, [r2] strh r0, [r1, #4] b _0804FEE2 .align 2, 0 _0804FEB8: .4byte 0x00000734 _0804FEBC: cmp r3, #2 bne _0804FED8 mov r0, sp strh r3, [r0] strh r3, [r0, #2] mov r1, sp ldr r3, _0804FED4 @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #1 strh r0, [r1, #4] b _0804FEE2 .align 2, 0 _0804FED4: .4byte 0x00000734 _0804FED8: mov r0, sp movs r1, #2 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] _0804FEE2: mov r0, sp movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804FFE4 @ =0x086B13F4 adds r2, r0, r3 adds r6, r3, #0 adds r6, #0x24 ldr r0, [r7] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xef bgt _0804FF12 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x24] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF12: ldr r0, [r7] adds r5, r0, #0 adds r5, #0x6a movs r4, #0 ldrsh r0, [r5, r4] cmp r0, #0xf7 bgt _0804FF30 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2, #4] str r0, [r1] ldr r0, [r6, #4] str r0, [r1, #4] ldr r0, _0804FFF0 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF30: movs r0, #0 ldrsh r4, [r5, r0] cmp r4, #0x58 ble _0804FF7C mov r0, sp movs r2, #2 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r1, r3, #0 adds r1, #0x3c adds r2, r0, r1 adds r6, r3, #0 adds r6, #0x60 cmp r4, #0xfd bgt _0804FF62 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x60] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF62: movs r3, #0 ldrsh r1, [r5, r3] ldr r0, _0804FFF4 @ =0x00000105 cmp r1, r0 bgt _0804FF7C ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2, #4] str r0, [r1] ldr r0, [r6, #4] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FF7C: ldr r0, [r7] adds r0, #0x6a movs r1, #0 ldrsh r4, [r0, r1] cmp r4, #0x60 ble _0804FFDA mov r0, sp movs r2, #4 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _0804FFF8 @ =0x086B146C adds r2, r0, r3 adds r6, r3, #0 adds r6, #0x24 ldr r0, _0804FFFC @ =0x00000107 cmp r4, r0 bgt _0804FFB2 ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2] str r0, [r1] ldr r0, [r3, #0x24] str r0, [r1, #4] ldr r0, _0804FFEC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0804FFB2: ldr r1, _0804FFE8 @ =0x040000D4 ldr r0, [r2, #4] str r0, [r1] ldr r0, [r6, #4] str r0, [r1, #4] ldr r3, _0804FFEC @ =0x80000020 str r3, [r1, #8] ldr r0, [r1, #8] ldr r0, [r7] adds r0, #0x6a movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x68 ble _0804FFDA ldr r0, [r2, #8] str r0, [r1] ldr r0, [r6, #8] str r0, [r1, #4] str r3, [r1, #8] ldr r0, [r1, #8] _0804FFDA: add sp, #8 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _0804FFE4: .4byte 0x086B13F4 _0804FFE8: .4byte 0x040000D4 _0804FFEC: .4byte 0x80000020 _0804FFF0: .4byte 0x80000030 _0804FFF4: .4byte 0x00000105 _0804FFF8: .4byte 0x086B146C _0804FFFC: .4byte 0x00000107 thumb_func_start sub_50000 sub_50000: @ 0x08050000 push {r4, r5, r6, lr} movs r1, #0 ldr r6, _0805009C @ =0x020314E0 ldr r2, [r6] movs r3, #0xe5 lsls r3, r3, #3 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08050026 ldr r1, _080500A0 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _08050026: lsls r0, r1, #0x10 asrs r0, r0, #0xc ldr r3, _080500A4 @ =0x086B11FC adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xff bgt _0805004E ldr r1, _080500A8 @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _080500AC @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0805004E: ldr r0, [r6] adds r2, r0, #0 adds r2, #0x6a ldrh r0, [r2] subs r0, #0x61 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #0xa6 bhi _08050070 ldr r1, _080500A8 @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _080500B0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050070: movs r3, #0 ldrsh r0, [r2, r3] cmp r0, #0x67 ble _08050094 ldr r0, _080500A8 @ =0x040000D4 ldr r1, [r4, #8] str r1, [r0] ldr r1, [r5, #8] str r1, [r0, #4] ldr r2, _080500B0 @ =0x80000040 str r2, [r0, #8] ldr r1, [r0, #8] ldr r1, [r4, #0xc] str r1, [r0] ldr r1, [r5, #0xc] str r1, [r0, #4] str r2, [r0, #8] ldr r0, [r0, #8] _08050094: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _0805009C: .4byte 0x020314E0 _080500A0: .4byte 0x00000734 _080500A4: .4byte 0x086B11FC _080500A8: .4byte 0x040000D4 _080500AC: .4byte 0x80000020 _080500B0: .4byte 0x80000040 thumb_func_start sub_500B4 sub_500B4: @ 0x080500B4 push {r4, r5, lr} movs r1, #0 ldr r5, _0805013C @ =0x020314E0 ldr r2, [r5] ldr r3, _08050140 @ =0x00000729 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080500D8 ldr r1, _08050144 @ =0x00000734 adds r0, r2, r1 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 _080500D8: lsls r0, r1, #0x10 asrs r0, r0, #0xc ldr r1, _08050148 @ =0x086B122C adds r3, r0, r1 adds r4, r1, #0 adds r4, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xc2 bgt _08050100 ldr r1, _0805014C @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] ldr r0, _08050150 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050100: ldr r0, [r5] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x1e ble _0805011E ldr r1, _0805014C @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] ldr r0, _08050150 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0805011E: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x26 ble _08050136 ldr r1, _0805014C @ =0x040000D4 ldr r0, [r3, #0xc] str r0, [r1] ldr r0, [r4, #0xc] str r0, [r1, #4] ldr r0, _08050150 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050136: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0805013C: .4byte 0x020314E0 _08050140: .4byte 0x00000729 _08050144: .4byte 0x00000734 _08050148: .4byte 0x086B122C _0805014C: .4byte 0x040000D4 _08050150: .4byte 0x80000040 thumb_func_start sub_50154 sub_50154: @ 0x08050154 push {r4, r5, r6, lr} sub sp, #8 ldr r0, _0805018C @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r6, r0, #0 cmp r1, #2 bgt _080501E0 ldr r1, _08050190 @ =0x0000072E adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _08050198 mov r1, sp ldr r4, _08050194 @ =0x00000734 adds r2, r2, r4 movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 strh r0, [r1] ldrh r0, [r2] strh r0, [r1, #2] mov r0, sp strh r3, [r0, #4] b _08050206 .align 2, 0 _0805018C: .4byte 0x020314E0 _08050190: .4byte 0x0000072E _08050194: .4byte 0x00000734 _08050198: cmp r3, #1 bne _080501B8 mov r1, sp movs r0, #3 strh r0, [r1] ldr r0, _080501B4 @ =0x00000734 adds r2, r2, r0 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r3, #0 ldrsh r0, [r2, r3] lsls r0, r0, #1 b _08050204 .align 2, 0 _080501B4: .4byte 0x00000734 _080501B8: cmp r3, #2 bne _080501D4 mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r4, _080501D0 @ =0x00000734 adds r0, r2, r4 ldrh r0, [r0] adds r0, #2 b _08050204 .align 2, 0 _080501D0: .4byte 0x00000734 _080501D4: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _08050206 _080501E0: mov r1, sp ldr r3, _080502F0 @ =0x00000739 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r4, _080502F4 @ =0x0000073A adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r3, #2 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _08050204: strh r0, [r1, #4] _08050206: mov r0, sp movs r4, #0 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080502F8 @ =0x086B1340 mov ip, r1 adds r3, r0, r1 mov r4, ip adds r4, #0x30 ldr r0, [r6] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _080502FC @ =0x00000107 cmp r1, r0 bgt _0805023C ldr r1, _08050300 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _08050304 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0805023C: ldr r2, _08050300 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r5, _08050304 @ =0x80000030 str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r6] adds r6, r0, #0 adds r6, #0x6a movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x78 ble _080502A2 mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] _080502A2: movs r3, #0 ldrsh r0, [r6, r3] cmp r0, #0x88 ble _080502E6 mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r5, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] ldr r0, _08050308 @ =0x80000020 str r0, [r2, #8] ldr r0, [r2, #8] _080502E6: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080502F0: .4byte 0x00000739 _080502F4: .4byte 0x0000073A _080502F8: .4byte 0x086B1340 _080502FC: .4byte 0x00000107 _08050300: .4byte 0x040000D4 _08050304: .4byte 0x80000030 _08050308: .4byte 0x80000020 thumb_func_start sub_5030C sub_5030C: @ 0x0805030C push {r4, r5, r6, lr} sub sp, #8 ldr r0, _08050340 @ =0x020314E0 ldr r2, [r0] movs r1, #0x13 ldrsb r1, [r2, r1] adds r5, r0, #0 cmp r1, #2 bgt _08050394 ldr r1, _08050344 @ =0x0000072F adds r0, r2, r1 movs r3, #0 ldrsb r3, [r0, r3] cmp r3, #0 bne _0805034C mov r1, sp ldr r4, _08050348 @ =0x00000734 adds r0, r2, r4 movs r2, #0 ldrsh r0, [r0, r2] lsls r0, r0, #1 strh r0, [r1] mov r0, sp strh r3, [r0, #2] strh r3, [r0, #4] b _080503BA .align 2, 0 _08050340: .4byte 0x020314E0 _08050344: .4byte 0x0000072F _08050348: .4byte 0x00000734 _0805034C: cmp r3, #1 bne _0805036C mov r1, sp movs r0, #3 strh r0, [r1] ldr r3, _08050368 @ =0x00000734 adds r2, r2, r3 ldrh r0, [r2] adds r0, #1 strh r0, [r1, #2] movs r4, #0 ldrsh r0, [r2, r4] lsls r0, r0, #1 b _080503B8 .align 2, 0 _08050368: .4byte 0x00000734 _0805036C: cmp r3, #2 bne _08050388 mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] mov r1, sp ldr r3, _08050384 @ =0x00000734 adds r0, r2, r3 ldrh r0, [r0] adds r0, #2 b _080503B8 .align 2, 0 _08050384: .4byte 0x00000734 _08050388: mov r0, sp movs r1, #3 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] b _080503BA _08050394: mov r1, sp ldr r4, _080504A4 @ =0x00000736 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1] ldr r3, _080504A8 @ =0x00000737 adds r0, r2, r3 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 strh r0, [r1, #2] adds r4, #2 adds r0, r2, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 _080503B8: strh r0, [r1, #4] _080503BA: mov r0, sp movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r3, _080504AC @ =0x086B14A8 mov ip, r3 adds r3, r0, r3 mov r4, ip adds r4, #0x30 ldr r0, [r5] adds r0, #0x6a movs r2, #0 ldrsh r1, [r0, r2] ldr r0, _080504B0 @ =0x00000107 cmp r1, r0 bgt _080503F0 ldr r1, _080504B4 @ =0x040000D4 ldr r0, [r3] str r0, [r1] mov r2, ip ldr r0, [r2, #0x30] str r0, [r1, #4] ldr r0, _080504B8 @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _080503F0: ldr r2, _080504B4 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] ldr r6, _080504B8 @ =0x80000030 str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r5] adds r5, r0, #0 adds r5, #0x6a movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x78 ble _08050458 mov r0, sp movs r4, #2 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x3c adds r3, r0, r1 mov r4, ip adds r4, #0x6c ldr r0, [r3] str r0, [r2] mov r1, ip ldr r0, [r1, #0x6c] str r0, [r2, #4] ldr r1, _080504BC @ =0x80000020 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] _08050458: movs r3, #0 ldrsh r0, [r5, r3] cmp r0, #0x88 ble _0805049C mov r0, sp movs r4, #4 ldrsh r1, [r0, r4] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 mov r1, ip adds r1, #0x78 adds r3, r0, r1 mov r4, ip adds r4, #0xa8 ldr r0, [r3] str r0, [r2] ldr r0, [r4] str r0, [r2, #4] ldr r1, _080504BC @ =0x80000020 str r1, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #4] str r0, [r2] ldr r0, [r4, #4] str r0, [r2, #4] str r6, [r2, #8] ldr r0, [r2, #8] ldr r0, [r3, #8] str r0, [r2] ldr r0, [r4, #8] str r0, [r2, #4] str r1, [r2, #8] ldr r0, [r2, #8] _0805049C: add sp, #8 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080504A4: .4byte 0x00000736 _080504A8: .4byte 0x00000737 _080504AC: .4byte 0x086B14A8 _080504B0: .4byte 0x00000107 _080504B4: .4byte 0x040000D4 _080504B8: .4byte 0x80000030 _080504BC: .4byte 0x80000020 thumb_func_start sub_504C0 sub_504C0: @ 0x080504C0 push {r4, r5, r6, lr} movs r3, #0 ldr r1, _08050584 @ =0x020314E0 ldr r0, [r1] ldr r4, _08050588 @ =0x00000731 adds r0, r0, r4 strb r3, [r0] ldr r2, [r1] ldr r5, _0805058C @ =0x0000072F adds r0, r2, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #1 ble _080504EE movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #2 bgt _080504EE adds r1, r2, r4 movs r0, #1 strb r0, [r1] _080504EE: ldr r2, [r6] ldr r1, _08050588 @ =0x00000731 adds r0, r2, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _0805050C ldr r5, _08050590 @ =0x00000734 adds r0, r2, r5 ldrh r1, [r0] movs r0, #1 subs r0, r0, r1 lsls r0, r0, #0x10 lsrs r3, r0, #0x10 _0805050C: lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r3, _08050594 @ =0x086B12D0 adds r4, r0, r3 adds r5, r3, #0 adds r5, #0x20 adds r0, r2, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xe7 bgt _08050534 ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4] str r0, [r1] ldr r0, [r3, #0x20] str r0, [r1, #4] ldr r0, _0805059C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _08050534: ldr r0, [r6] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xef bgt _08050552 ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _080505A0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050552: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x4f ble _0805057E cmp r0, #0xf7 bgt _0805056E ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4, #8] str r0, [r1] ldr r0, [r5, #8] str r0, [r1, #4] ldr r0, _080505A0 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0805056E: ldr r1, _08050598 @ =0x040000D4 ldr r0, [r4, #0xc] str r0, [r1] ldr r0, [r5, #0xc] str r0, [r1, #4] ldr r0, _0805059C @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _0805057E: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08050584: .4byte 0x020314E0 _08050588: .4byte 0x00000731 _0805058C: .4byte 0x0000072F _08050590: .4byte 0x00000734 _08050594: .4byte 0x086B12D0 _08050598: .4byte 0x040000D4 _0805059C: .4byte 0x80000030 _080505A0: .4byte 0x80000040 thumb_func_start sub_505A4 sub_505A4: @ 0x080505A4 push {r4, r5, lr} movs r3, #0 ldr r0, _080505C8 @ =0x020314E0 ldr r2, [r0] ldr r4, _080505CC @ =0x00000366 adds r1, r2, r4 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r5, r0, #0 cmp r1, #3 bne _080505D4 ldr r0, _080505D0 @ =0x0000072A adds r1, r2, r0 movs r0, #1 strb r0, [r1] b _080505E2 .align 2, 0 _080505C8: .4byte 0x020314E0 _080505CC: .4byte 0x00000366 _080505D0: .4byte 0x0000072A _080505D4: movs r0, #0x13 ldrsb r0, [r2, r0] cmp r0, #0 beq _080505E2 ldr r1, _0805060C @ =0x0000072A adds r0, r2, r1 strb r3, [r0] _080505E2: ldr r1, [r5] ldr r2, _0805060C @ =0x0000072A adds r0, r1, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08050614 ldr r4, _08050610 @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #1 adds r2, #0xa adds r1, r1, r2 ldrh r1, [r1] subs r1, #1 subs r0, r0, r1 lsls r0, r0, #0x10 b _08050620 .align 2, 0 _0805060C: .4byte 0x0000072A _08050610: .4byte 0x000001A5 _08050614: ldr r4, _0805069C @ =0x000001A5 adds r0, r1, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #0x11 _08050620: lsrs r3, r0, #0x10 lsls r0, r3, #0x10 asrs r0, r0, #0xc ldr r2, _080506A0 @ =0x086B125C adds r3, r0, r2 adds r4, r2, #0 adds r4, #0x40 ldr r0, [r5] adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xdf bgt _0805064A ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x40] str r0, [r1, #4] ldr r0, _080506A8 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _0805064A: ldr r0, [r5] adds r2, r0, #0 adds r2, #0x6a movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xe7 bgt _08050668 ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r4, #4] str r0, [r1, #4] ldr r0, _080506A8 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050668: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0x47 ble _08050694 cmp r0, #0xef bgt _08050684 ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3, #8] str r0, [r1] ldr r0, [r4, #8] str r0, [r1, #4] ldr r0, _080506A8 @ =0x80000040 str r0, [r1, #8] ldr r0, [r1, #8] _08050684: ldr r1, _080506A4 @ =0x040000D4 ldr r0, [r3, #0xc] str r0, [r1] ldr r0, [r4, #0xc] str r0, [r1, #4] ldr r0, _080506AC @ =0x80000030 str r0, [r1, #8] ldr r0, [r1, #8] _08050694: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0805069C: .4byte 0x000001A5 _080506A0: .4byte 0x086B125C _080506A4: .4byte 0x040000D4 _080506A8: .4byte 0x80000040 _080506AC: .4byte 0x80000030 thumb_func_start sub_506B0 sub_506B0: @ 0x080506B0 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r0, _08050700 @ =0x020314E0 ldr r0, [r0] movs r2, #0xe3 lsls r2, r2, #3 adds r5, r0, r2 ldr r4, _08050704 @ =0x086B12AC adds r7, r4, #0 adds r7, #8 ldr r3, _08050708 @ =0x040000D4 ldr r6, _0805070C @ =0x80000020 _080506C8: lsls r2, r1, #0x10 asrs r2, r2, #0x10 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r0, r5, r2 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 lsls r0, r0, #2 adds r0, r0, r4 adds r0, r1, r0 adds r1, r1, r7 ldr r0, [r0] str r0, [r3] ldr r0, [r1] str r0, [r3, #4] str r6, [r3, #8] ldr r0, [r3, #8] adds r2, #1 lsls r2, r2, #0x10 lsrs r1, r2, #0x10 asrs r2, r2, #0x10 cmp r2, #2 ble _080506C8 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050700: .4byte 0x020314E0 _08050704: .4byte 0x086B12AC _08050708: .4byte 0x040000D4 _0805070C: .4byte 0x80000020 thumb_func_start sub_50710 sub_50710: @ 0x08050710 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r2, _08050770 @ =0x020314E0 ldr r0, [r2] ldr r1, _08050774 @ =0x00000346 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #3 beq _080507C0 movs r1, #0 mov sb, r2 ldr r2, _08050778 @ =0x0000034B mov r8, r2 ldr r5, _0805077C @ =0x040000D4 ldr r0, _08050780 @ =0x086B0F9C mov sl, r0 ldr r7, _08050784 @ =0x80000020 _0805073C: mov r2, sb ldr r0, [r2] lsls r1, r1, #0x10 asrs r4, r1, #0x10 add r0, r8 adds r0, r0, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r6, r1, #0 cmp r0, #0 ble _08050788 cmp r0, #0xa bne _0805075E movs r0, #0xdc bl m4aSongNumStart _0805075E: mov r0, sb ldr r1, [r0] add r1, r8 adds r1, r1, r4 ldrb r0, [r1] subs r0, #1 strb r0, [r1] movs r2, #1 b _0805078A .align 2, 0 _08050770: .4byte 0x020314E0 _08050774: .4byte 0x00000346 _08050778: .4byte 0x0000034B _0805077C: .4byte 0x040000D4 _08050780: .4byte 0x086B0F9C _08050784: .4byte 0x80000020 _08050788: movs r2, #0 _0805078A: asrs r3, r6, #0x10 lsls r1, r3, #1 adds r1, r1, r3 lsls r1, r1, #3 lsls r2, r2, #3 add r2, sl adds r2, r1, r2 ldr r0, _080507D0 @ =0x086B0FAC adds r1, r1, r0 ldr r0, [r2] str r0, [r5] ldr r0, [r1] str r0, [r5, #4] str r7, [r5, #8] ldr r0, [r5, #8] ldr r0, [r2, #4] str r0, [r5] ldr r0, [r1, #4] str r0, [r5, #4] str r7, [r5, #8] ldr r0, [r5, #8] adds r3, #1 lsls r3, r3, #0x10 lsrs r1, r3, #0x10 asrs r3, r3, #0x10 cmp r3, #9 ble _0805073C _080507C0: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080507D0: .4byte 0x086B0FAC thumb_func_start sub_507D4 sub_507D4: @ 0x080507D4 push {r4, r5, lr} movs r1, #0 ldr r0, _08050834 @ =0x020314E0 ldr r4, [r0] movs r2, #0xc2 lsls r2, r2, #2 adds r0, r4, r2 ldrh r0, [r0] cmp r0, #0x63 bls _080507F8 ldr r1, _08050838 @ =0x0000070C adds r0, r4, r1 ldrh r0, [r0] movs r1, #0x14 bl __umodsi3 lsls r0, r0, #0x10 lsrs r1, r0, #0x12 _080507F8: lsls r0, r1, #3 ldr r2, _0805083C @ =0x086B0E6C adds r3, r0, r2 adds r5, r2, #0 adds r5, #0x28 adds r0, r4, #0 adds r0, #0x6a movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #0xaf bgt _0805081E ldr r1, _08050840 @ =0x040000D4 ldr r0, [r3] str r0, [r1] ldr r0, [r2, #0x28] str r0, [r1, #4] ldr r0, _08050844 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] _0805081E: ldr r1, _08050840 @ =0x040000D4 ldr r0, [r3, #4] str r0, [r1] ldr r0, [r5, #4] str r0, [r1, #4] ldr r0, _08050844 @ =0x80000020 str r0, [r1, #8] ldr r0, [r1, #8] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08050834: .4byte 0x020314E0 _08050838: .4byte 0x0000070C _0805083C: .4byte 0x086B0E6C _08050840: .4byte 0x040000D4 _08050844: .4byte 0x80000020 thumb_func_start sub_50848 sub_50848: @ 0x08050848 push {r4, r5, r6, r7, lr} movs r0, #0 ldr r4, _080508E8 @ =0x0200B0C0 ldr r7, _080508EC @ =0x086B155C adds r6, r4, #0 movs r5, #0xb8 movs r3, #0xbe lsls r3, r3, #2 movs r2, #0 _0805085A: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x53 ble _0805085A ldr r0, _080508F0 @ =0x000030F8 adds r1, r4, r0 movs r0, #1 strh r0, [r1] ldr r1, _080508F4 @ =0x00002578 adds r3, r4, r1 ldr r2, _080508F8 @ =0x00003548 adds r1, r4, r2 strh r0, [r1] movs r5, #0xbe lsls r5, r5, #2 adds r2, r4, r5 strh r0, [r2] adds r5, #0xb8 adds r1, r4, r5 strh r0, [r1] adds r5, #0xb8 adds r1, r4, r5 strh r0, [r1] ldr r5, _080508FC @ =0x00001718 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050900 @ =0x00003D30 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050904 @ =0x000031B0 adds r1, r4, r5 strh r0, [r1] movs r5, #0xd8 lsls r5, r5, #6 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050908 @ =0x00003268 adds r1, r4, r5 strh r0, [r1] ldr r5, _0805090C @ =0x000027A0 adds r1, r4, r5 strh r0, [r1] ldr r5, _08050910 @ =0x00002ED0 adds r1, r4, r5 strh r0, [r1] strh r0, [r3] ldr r3, _08050914 @ =0x00002858 adds r1, r4, r3 strh r0, [r1] adds r5, #0xb8 adds r1, r4, r5 strh r0, [r1] ldrb r1, [r4, #4] lsls r1, r1, #3 adds r1, r1, r7 ldr r0, [r1] ldrh r1, [r1, #4] bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080508E8: .4byte 0x0200B0C0 _080508EC: .4byte 0x086B155C _080508F0: .4byte 0x000030F8 _080508F4: .4byte 0x00002578 _080508F8: .4byte 0x00003548 _080508FC: .4byte 0x00001718 _08050900: .4byte 0x00003D30 _08050904: .4byte 0x000031B0 _08050908: .4byte 0x00003268 _0805090C: .4byte 0x000027A0 _08050910: .4byte 0x00002ED0 _08050914: .4byte 0x00002858 thumb_func_start sub_50918 sub_50918: @ 0x08050918 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r2, _080509EC @ =0x0200B0C0 ldr r1, _080509F0 @ =0x00000A28 adds r0, r2, r1 movs r1, #0 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] ldr r4, _080509F4 @ =0x00002578 adds r0, r2, r4 strh r1, [r0] movs r3, #0xd8 lsls r3, r3, #6 adds r0, r2, r3 strh r1, [r0] movs r0, #0x33 adds r5, r2, #0 ldr r7, _080509F8 @ =0x020314E0 ldr r4, _080509FC @ =0x086B155C mov r8, r4 adds r6, r5, #0 movs r4, #0xb8 movs r3, #0xbe lsls r3, r3, #2 movs r2, #0 _08050952: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r6 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x42 ble _08050952 ldr r4, [r7] ldr r0, [r5, #0x4c] movs r1, #0x19 bl __umodsi3 movs r2, #0xde lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r4, #0x68 movs r3, #0 ldrsh r0, [r4, r3] cmp r0, #0x6d bgt _0805099E ldr r4, _08050A00 @ =0x000031B0 adds r0, r5, r4 movs r1, #1 strh r1, [r0] movs r2, #0xd8 lsls r2, r2, #6 adds r0, r5, r2 strh r1, [r0] ldr r3, _08050A04 @ =0x00003268 adds r0, r5, r3 strh r1, [r0] _0805099E: ldr r3, [r7] adds r2, r3, #0 adds r2, #0x68 movs r4, #0 ldrsh r0, [r2, r4] cmp r0, #0xa7 bgt _080509BA ldr r1, _080509F4 @ =0x00002578 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r4, _08050A08 @ =0x00002858 adds r0, r5, r4 strh r1, [r0] _080509BA: movs r1, #0 ldrsh r0, [r2, r1] cmp r0, #0xdb bgt _08050A1E ldr r2, _08050A0C @ =0x000027A0 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r4, _08050A10 @ =0x00002ED0 adds r0, r5, r4 strh r1, [r0] ldr r2, _08050A14 @ =0x000030F8 adds r0, r5, r2 strh r1, [r0] movs r4, #0xa9 lsls r4, r4, #2 adds r0, r3, r4 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _08050A18 subs r2, #0xb8 adds r0, r5, r2 b _08050A1C .align 2, 0 _080509EC: .4byte 0x0200B0C0 _080509F0: .4byte 0x00000A28 _080509F4: .4byte 0x00002578 _080509F8: .4byte 0x020314E0 _080509FC: .4byte 0x086B155C _08050A00: .4byte 0x000031B0 _08050A04: .4byte 0x00003268 _08050A08: .4byte 0x00002858 _08050A0C: .4byte 0x000027A0 _08050A10: .4byte 0x00002ED0 _08050A14: .4byte 0x000030F8 _08050A18: ldr r3, _08050AB0 @ =0x00002F88 adds r0, r5, r3 _08050A1C: strh r1, [r0] _08050A1E: ldr r0, [r7] adds r0, #0x68 movs r4, #0 ldrsh r0, [r0, r4] cmp r0, #0x3f ble _08050A38 ldr r1, _08050AB4 @ =0x00002910 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r2, _08050AB8 @ =0x00002BF0 adds r0, r5, r2 strh r1, [r0] _08050A38: ldr r0, [r7] adds r4, r0, #0 adds r4, #0x68 movs r3, #0 ldrsh r0, [r4, r3] cmp r0, #0x73 ble _08050A4E ldr r0, _08050ABC @ =0x00002CA8 adds r1, r5, r0 movs r0, #1 strh r0, [r1] _08050A4E: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x82 ble _08050A64 ldr r2, _08050AC0 @ =0x00002D60 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r3, _08050AC4 @ =0x00002E18 adds r0, r5, r3 strh r1, [r0] _08050A64: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xd8 ble _08050A90 ldr r2, _08050AC8 @ =0x00002B38 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r3, _08050ACC @ =0x000029C8 adds r0, r5, r3 strh r1, [r0] movs r4, #0xaa lsls r4, r4, #6 adds r0, r5, r4 strh r1, [r0] ldr r2, _08050AD0 @ =0x00000A28 adds r0, r5, r2 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r5, r3 strh r1, [r0] _08050A90: ldrb r1, [r5, #4] lsls r1, r1, #3 add r1, r8 ldr r0, [r1] ldrh r1, [r1, #4] movs r4, #0xbe lsls r4, r4, #2 adds r2, r5, r4 bl sub_358 pop {r3} mov r8, r3 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050AB0: .4byte 0x00002F88 _08050AB4: .4byte 0x00002910 _08050AB8: .4byte 0x00002BF0 _08050ABC: .4byte 0x00002CA8 _08050AC0: .4byte 0x00002D60 _08050AC4: .4byte 0x00002E18 _08050AC8: .4byte 0x00002B38 _08050ACC: .4byte 0x000029C8 _08050AD0: .4byte 0x00000A28 thumb_func_start sub_50AD4 sub_50AD4: @ 0x08050AD4 push {r4, r5, r6, r7, lr} movs r0, #0 ldr r3, _08050B5C @ =0x0200B0C0 ldr r7, _08050B60 @ =0x086B155C adds r6, r3, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r2, #0 _08050AE6: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x56 ble _08050AE6 ldr r1, _08050B64 @ =0x000036B8 adds r0, r3, r1 movs r1, #1 strh r1, [r0] movs r2, #0xc1 lsls r2, r2, #6 adds r0, r3, r2 strh r1, [r0] ldr r4, _08050B68 @ =0x00002E18 adds r0, r3, r4 strh r1, [r0] ldr r2, _08050B6C @ =0x00003490 adds r0, r3, r2 strh r1, [r0] ldr r4, _08050B70 @ =0x00002858 adds r0, r3, r4 strh r1, [r0] ldr r2, _08050B74 @ =0x00003828 adds r0, r3, r2 strh r1, [r0] movs r4, #0xbe lsls r4, r4, #2 adds r2, r3, r4 strh r1, [r2] adds r4, #0xb8 adds r0, r3, r4 strh r1, [r0] adds r4, #0xb8 adds r0, r3, r4 strh r1, [r0] ldr r4, _08050B78 @ =0x000014F0 adds r0, r3, r4 strh r1, [r0] ldr r4, _08050B7C @ =0x00004010 adds r0, r3, r4 strh r1, [r0] ldrb r1, [r3, #4] lsls r1, r1, #3 adds r1, r1, r7 ldr r0, [r1] ldrh r1, [r1, #4] bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050B5C: .4byte 0x0200B0C0 _08050B60: .4byte 0x086B155C _08050B64: .4byte 0x000036B8 _08050B68: .4byte 0x00002E18 _08050B6C: .4byte 0x00003490 _08050B70: .4byte 0x00002858 _08050B74: .4byte 0x00003828 _08050B78: .4byte 0x000014F0 _08050B7C: .4byte 0x00004010 thumb_func_start sub_50B80 sub_50B80: @ 0x08050B80 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} movs r0, #0x37 ldr r1, _08050CF0 @ =0x0200B0C0 mov sb, r1 mov r5, sb movs r4, #0xb8 movs r3, #0xbe lsls r3, r3, #2 movs r2, #0 _08050B9A: lsls r1, r0, #0x10 asrs r1, r1, #0x10 adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r5 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #0x46 ble _08050B9A mov r5, sb ldr r2, _08050CF4 @ =0x00002858 adds r7, r5, r2 movs r0, #0 strh r0, [r7] ldr r1, _08050CF8 @ =0x000036B8 adds r1, r1, r5 mov r8, r1 strh r0, [r1] ldr r2, _08050CFC @ =0x0200C668 strh r0, [r2] ldr r1, _08050D00 @ =0x000027A0 adds r6, r5, r1 strh r0, [r6] ldr r2, _08050D04 @ =0x0200EA58 strh r0, [r2] ldr r1, _08050D08 @ =0x000038E0 adds r1, r1, r5 mov sl, r1 strh r0, [r1] ldr r2, _08050D0C @ =0x0200BAE8 strh r0, [r2] ldr r1, _08050D10 @ =0x0200BBA0 strh r0, [r1] ldr r2, _08050D14 @ =0x020314E0 ldr r4, [r2] ldr r0, [r5, #0x4c] movs r1, #0x19 bl __umodsi3 movs r2, #0xde lsls r2, r2, #1 adds r1, r4, r2 strh r0, [r1] adds r4, #0x68 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x59 bgt _08050C08 movs r0, #1 strh r0, [r7] strh r0, [r6] _08050C08: ldr r2, _08050D14 @ =0x020314E0 ldr r0, [r2] adds r4, r0, #0 adds r4, #0x68 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xdb bgt _08050C1E movs r0, #1 mov r2, r8 strh r0, [r2] _08050C1E: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x95 bgt _08050C34 ldr r2, _08050D18 @ =0x00002E18 adds r0, r5, r2 movs r1, #1 strh r1, [r0] ldr r2, _08050D1C @ =0x00003490 adds r0, r5, r2 strh r1, [r0] _08050C34: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xc3 bgt _08050C4A movs r2, #0xc1 lsls r2, r2, #6 adds r1, r5, r2 movs r0, #1 strh r0, [r1] mov r1, sl strh r0, [r1] _08050C4A: movs r2, #0 ldrsh r0, [r4, r2] cmp r0, #0xc9 bgt _08050C70 ldr r1, _08050D20 @ =0x00002ED0 adds r0, r5, r1 movs r1, #1 strh r1, [r0] ldr r2, _08050D24 @ =0x00002CA8 adds r0, r5, r2 strh r1, [r0] ldr r2, _08050D28 @ =0x00002F88 adds r0, r5, r2 strh r1, [r0] ldr r2, _08050D2C @ =0x00002D60 adds r0, r5, r2 strh r1, [r0] ldr r0, _08050D04 @ =0x0200EA58 strh r1, [r0] _08050C70: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0x76 ble _08050CA2 ldr r2, _08050D30 @ =0x00003548 adds r1, r5, r2 movs r0, #1 strh r0, [r1] ldr r1, _08050CFC @ =0x0200C668 strh r0, [r1] ldr r2, _08050D34 @ =0x000030F8 adds r1, r5, r2 strh r0, [r1] ldr r2, _08050D38 @ =0x000033D8 adds r1, r5, r2 strh r0, [r1] ldr r2, _08050D3C @ =0x000031B0 adds r1, r5, r2 strh r0, [r1] adds r2, #0xb8 adds r1, r5, r2 strh r0, [r1] adds r2, #0xb8 adds r1, r5, r2 strh r0, [r1] _08050CA2: movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0xd8 ble _08050CC8 ldr r2, _08050D40 @ =0x00002BF0 adds r0, r5, r2 movs r1, #1 strh r1, [r0] movs r2, #0xaa lsls r2, r2, #6 adds r0, r5, r2 strh r1, [r0] adds r2, #0xb8 adds r0, r5, r2 strh r1, [r0] ldr r0, _08050D0C @ =0x0200BAE8 strh r1, [r0] ldr r2, _08050D10 @ =0x0200BBA0 strh r1, [r2] _08050CC8: mov r0, sb ldrb r1, [r0, #4] lsls r1, r1, #3 ldr r2, _08050D44 @ =0x086B155C adds r1, r1, r2 ldr r0, [r1] ldrh r1, [r1, #4] movs r2, #0xbe lsls r2, r2, #2 add r2, sb bl sub_358 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050CF0: .4byte 0x0200B0C0 _08050CF4: .4byte 0x00002858 _08050CF8: .4byte 0x000036B8 _08050CFC: .4byte 0x0200C668 _08050D00: .4byte 0x000027A0 _08050D04: .4byte 0x0200EA58 _08050D08: .4byte 0x000038E0 _08050D0C: .4byte 0x0200BAE8 _08050D10: .4byte 0x0200BBA0 _08050D14: .4byte 0x020314E0 _08050D18: .4byte 0x00002E18 _08050D1C: .4byte 0x00003490 _08050D20: .4byte 0x00002ED0 _08050D24: .4byte 0x00002CA8 _08050D28: .4byte 0x00002F88 _08050D2C: .4byte 0x00002D60 _08050D30: .4byte 0x00003548 _08050D34: .4byte 0x000030F8 _08050D38: .4byte 0x000033D8 _08050D3C: .4byte 0x000031B0 _08050D40: .4byte 0x00002BF0 _08050D44: .4byte 0x086B155C thumb_func_start sub_50D48 sub_50D48: @ 0x08050D48 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r6, _08050D74 @ =0x0200B0C0 ldr r0, _08050D78 @ =0x086B155C mov ip, r0 adds r5, r6, #0 movs r4, #0xb8 movs r2, #0xbe lsls r2, r2, #2 movs r7, #1 _08050D5C: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08050D7C adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r5 adds r0, r0, r2 strh r7, [r0] b _08050D88 .align 2, 0 _08050D74: .4byte 0x0200B0C0 _08050D78: .4byte 0x086B155C _08050D7C: adds r0, r1, #0 muls r0, r4, r0 adds r0, r0, r5 adds r0, r0, r2 movs r1, #0 strh r1, [r0] _08050D88: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0xe ble _08050D5C ldr r0, [r6, #0x44] ldr r1, [r0] movs r0, #1 strh r0, [r1] ldrb r1, [r6, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r6, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_50DB8 sub_50DB8: @ 0x08050DB8 push {lr} ldr r0, _08050DD8 @ =0x086B155C ldr r2, _08050DDC @ =0x0200B0C0 ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08050DD8: .4byte 0x086B155C _08050DDC: .4byte 0x0200B0C0 thumb_func_start sub_50DE0 sub_50DE0: @ 0x08050DE0 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _08050E0C @ =0x0200B0C0 ldr r0, _08050E10 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08050DF4: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08050E14 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08050E20 .align 2, 0 _08050E0C: .4byte 0x0200B0C0 _08050E10: .4byte 0x086B155C _08050E14: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08050E20: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x20 ble _08050DF4 ldr r0, [r2, #0x44] ldr r1, [r0] movs r0, #1 strh r0, [r1] movs r3, #0x9c lsls r3, r3, #5 adds r1, r2, r3 strh r0, [r1] movs r3, #0x97 lsls r3, r3, #4 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EE8 @ =0x00001438 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EEC @ =0x00000E78 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] movs r3, #0x80 lsls r3, r3, #4 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EF0 @ =0x00000A28 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EF4 @ =0x00000FE8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EF8 @ =0x000014F0 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] movs r3, #0xca lsls r3, r3, #5 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldr r3, _08050EFC @ =0x000017D0 adds r1, r2, r3 strh r0, [r1] adds r3, #0xb8 adds r1, r2, r3 strh r0, [r1] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050EE8: .4byte 0x00001438 _08050EEC: .4byte 0x00000E78 _08050EF0: .4byte 0x00000A28 _08050EF4: .4byte 0x00000FE8 _08050EF8: .4byte 0x000014F0 _08050EFC: .4byte 0x000017D0 thumb_func_start nullsub_20 nullsub_20: @ 0x08050F00 bx lr thumb_func_start sub_50F04 sub_50F04: @ 0x08050F04 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _08050F30 @ =0x0200B0C0 ldr r0, _08050F34 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08050F18: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08050F38 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08050F44 .align 2, 0 _08050F30: .4byte 0x0200B0C0 _08050F34: .4byte 0x086B155C _08050F38: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08050F44: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1a ble _08050F18 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _08050FA8 @ =0x00001210 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] movs r3, #0xdc lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08050FA8: .4byte 0x00001210 thumb_func_start sub_50FAC sub_50FAC: @ 0x08050FAC push {lr} ldr r0, _08050FCC @ =0x086B155C ldr r2, _08050FD0 @ =0x0200B0C0 ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08050FCC: .4byte 0x086B155C _08050FD0: .4byte 0x0200B0C0 thumb_func_start sub_50FD4 sub_50FD4: @ 0x08050FD4 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _08051000 @ =0x0200B0C0 ldr r0, _08051004 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08050FE8: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08051008 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08051014 .align 2, 0 _08051000: .4byte 0x0200B0C0 _08051004: .4byte 0x086B155C _08051008: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08051014: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1f ble _08050FE8 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _08051064 @ =0x000017D0 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08051064: .4byte 0x000017D0 thumb_func_start sub_51068 sub_51068: @ 0x08051068 push {lr} ldr r0, _08051088 @ =0x086B155C ldr r2, _0805108C @ =0x0200B0C0 ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08051088: .4byte 0x086B155C _0805108C: .4byte 0x0200B0C0 thumb_func_start sub_51090 sub_51090: @ 0x08051090 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _080510BC @ =0x0200B0C0 ldr r0, _080510C0 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _080510A4: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _080510C4 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _080510D0 .align 2, 0 _080510BC: .4byte 0x0200B0C0 _080510C0: .4byte 0x086B155C _080510C4: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _080510D0: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x2d ble _080510A4 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] ldr r3, _08051120 @ =0x00002128 adds r0, r2, r3 strh r1, [r0] movs r3, #0xae lsls r3, r3, #4 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _08051124 @ =0x00001210 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08051120: .4byte 0x00002128 _08051124: .4byte 0x00001210 thumb_func_start sub_51128 sub_51128: @ 0x08051128 push {lr} ldr r0, _08051148 @ =0x086B155C ldr r2, _0805114C @ =0x0200B0C0 ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08051148: .4byte 0x086B155C _0805114C: .4byte 0x0200B0C0 thumb_func_start sub_51150 sub_51150: @ 0x08051150 push {r4, r5, r6, r7, lr} movs r1, #0 ldr r2, _0805117C @ =0x0200B0C0 ldr r0, _08051180 @ =0x086B155C mov ip, r0 adds r6, r2, #0 movs r5, #0xb8 movs r4, #0xbe lsls r4, r4, #2 movs r7, #1 _08051164: lsls r0, r1, #0x10 asrs r1, r0, #0x10 adds r3, r0, #0 cmp r1, #4 bgt _08051184 adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 strh r7, [r0] b _08051190 .align 2, 0 _0805117C: .4byte 0x0200B0C0 _08051180: .4byte 0x086B155C _08051184: adds r0, r1, #0 muls r0, r5, r0 adds r0, r0, r6 adds r0, r0, r4 movs r1, #0 strh r1, [r0] _08051190: movs r1, #0x80 lsls r1, r1, #9 adds r0, r3, r1 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x16 ble _08051164 ldr r0, [r2, #0x44] ldr r0, [r0] movs r1, #1 strh r1, [r0] ldr r3, _080511EC @ =0x00000FE8 adds r0, r2, r3 strh r1, [r0] ldr r3, _080511F0 @ =0x00001210 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldr r3, _080511F4 @ =0x00000D08 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] adds r3, #0xb8 adds r0, r2, r3 strh r1, [r0] ldrb r1, [r2, #4] lsls r1, r1, #3 add r1, ip ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _080511EC: .4byte 0x00000FE8 _080511F0: .4byte 0x00001210 _080511F4: .4byte 0x00000D08 thumb_func_start sub_511F8 sub_511F8: @ 0x080511F8 push {lr} ldr r0, _08051218 @ =0x086B155C ldr r2, _0805121C @ =0x0200B0C0 ldrb r1, [r2, #4] lsls r1, r1, #3 adds r1, r1, r0 ldr r0, [r1] ldrh r1, [r1, #4] movs r3, #0xbe lsls r3, r3, #2 adds r2, r2, r3 bl sub_358 pop {r0} bx r0 .align 2, 0 _08051218: .4byte 0x086B155C _0805121C: .4byte 0x0200B0C0 thumb_func_start sub_51220 sub_51220: @ 0x08051220 push {lr} ldr r1, _08051238 @ =0x08527F08 ldr r0, _0805123C @ =0x0200B0C0 ldrb r0, [r0, #3] lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08051238: .4byte 0x08527F08 _0805123C: .4byte 0x0200B0C0 thumb_func_start sub_51240 sub_51240: @ 0x08051240 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} sub sp, #4 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, _08051358 @ =0x04000008 movs r0, #4 strh r0, [r1] ldrh r0, [r2] movs r3, #0x80 lsls r3, r3, #1 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r1, _0805135C @ =0x0400000A adds r3, #9 adds r0, r3, #0 strh r0, [r1] ldrh r0, [r2] adds r3, #0xf7 adds r1, r3, #0 orrs r0, r1 strh r0, [r2] ldr r0, _08051360 @ =0x0200B0C0 mov sb, r0 ldrh r0, [r2] mov r1, sb strh r0, [r1, #0x16] ldr r5, _08051364 @ =0x040000D4 ldr r0, _08051368 @ =0x0852B468 str r0, [r5] movs r0, #0xa0 lsls r0, r0, #0x13 str r0, [r5, #4] ldr r0, _0805136C @ =0x80000100 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _08051370 @ =0x08528828 str r0, [r5] ldr r0, _08051374 @ =0x06004000 str r0, [r5, #4] ldr r0, _08051378 @ =0x80000C00 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _0805137C @ =0x0852A848 str r0, [r5] ldr r0, _08051380 @ =0x06008000 str r0, [r5, #4] ldr r0, _08051384 @ =0x80000600 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _08051388 @ =0x08528028 str r0, [r5] ldr r7, _0805138C @ =0x03005C00 str r7, [r5, #4] ldr r6, _08051390 @ =0x80000400 str r6, [r5, #8] ldr r0, [r5, #8] str r7, [r5] movs r3, #0xc0 lsls r3, r3, #0x13 mov r8, r3 str r3, [r5, #4] str r6, [r5, #8] ldr r0, [r5, #8] ldr r0, _08051394 @ =0x02019C0C ldr r0, [r0] cmp r0, #1 beq _080512F8 movs r4, #2 str r4, [sp] movs r0, #0x12 movs r1, #4 movs r2, #2 movs r3, #1 bl sub_1068C str r4, [sp] movs r0, #0x12 movs r1, #5 movs r2, #3 movs r3, #2 bl sub_1068C _080512F8: str r7, [r5] mov r0, r8 str r0, [r5, #4] str r6, [r5, #8] ldr r0, [r5, #8] ldr r0, _08051398 @ =0x0852A048 str r0, [r5] ldr r0, _0805139C @ =0x06000800 str r0, [r5, #4] str r6, [r5, #8] ldr r0, [r5, #8] ldr r0, _080513A0 @ =0x0852B668 str r0, [r5] ldr r0, _080513A4 @ =0x05000200 str r0, [r5, #4] ldr r0, _080513A8 @ =0x80000030 str r0, [r5, #8] ldr r0, [r5, #8] ldr r0, _080513AC @ =0x0852B868 str r0, [r5] ldr r0, _080513B0 @ =0x06010000 str r0, [r5, #4] ldr r0, _080513B4 @ =0x80001010 str r0, [r5, #8] ldr r0, [r5, #8] bl sub_513B8 bl sub_51C9C bl m4aMPlayAllStop bl sub_CBC bl sub_24C bl sub_10C0 mov r1, sb ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] add sp, #4 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r0} bx r0 .align 2, 0 _08051358: .4byte 0x04000008 _0805135C: .4byte 0x0400000A _08051360: .4byte 0x0200B0C0 _08051364: .4byte 0x040000D4 _08051368: .4byte 0x0852B468 _0805136C: .4byte 0x80000100 _08051370: .4byte 0x08528828 _08051374: .4byte 0x06004000 _08051378: .4byte 0x80000C00 _0805137C: .4byte 0x0852A848 _08051380: .4byte 0x06008000 _08051384: .4byte 0x80000600 _08051388: .4byte 0x08528028 _0805138C: .4byte 0x03005C00 _08051390: .4byte 0x80000400 _08051394: .4byte 0x02019C0C _08051398: .4byte 0x0852A048 _0805139C: .4byte 0x06000800 _080513A0: .4byte 0x0852B668 _080513A4: .4byte 0x05000200 _080513A8: .4byte 0x80000030 _080513AC: .4byte 0x0852B868 _080513B0: .4byte 0x06010000 _080513B4: .4byte 0x80001010 thumb_func_start sub_513B8 sub_513B8: @ 0x080513B8 push {r4, r5, r6, lr} ldr r0, _08051468 @ =0x02002920 mov ip, r0 movs r2, #0 movs r1, #0 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] movs r3, #1 movs r0, #1 mov r4, ip strh r0, [r4, #6] strh r1, [r4, #8] strh r1, [r4, #0xa] ldr r0, _0805146C @ =0x0200B134 adds r0, #0xcf ldrb r0, [r0] strh r0, [r4, #0xc] strh r1, [r4, #0xe] strh r1, [r4, #0x10] strb r2, [r4, #0x12] strb r2, [r4, #0x13] strb r3, [r4, #0x14] strb r2, [r4, #0x15] strb r2, [r4, #0x16] strb r3, [r4, #0x17] strh r1, [r4, #0x18] mov r2, ip movs r3, #0 movs r1, #5 adds r0, r2, #0 adds r0, #0x1f _080513F8: strb r3, [r0] subs r0, #1 subs r1, #1 cmp r1, #0 bge _080513F8 movs r0, #0 strh r0, [r2, #0x20] strh r0, [r2, #0x22] movs r3, #0xa movs r1, #1 adds r0, r2, #0 adds r0, #0x26 _08051410: strh r3, [r0] subs r0, #2 subs r1, #1 cmp r1, #0 bge _08051410 movs r0, #0 strh r0, [r2, #0x28] movs r1, #0 ldr r6, _08051470 @ =0x02031AF0 ldr r5, _08051474 @ =0x08527ED6 _08051424: adds r4, r1, #1 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 adds r2, r0, r5 adds r1, r0, r6 movs r3, #9 _08051432: ldrb r0, [r2] strb r0, [r1] adds r2, #1 adds r1, #1 subs r3, #1 cmp r3, #0 bge _08051432 adds r1, r4, #0 cmp r1, #3 ble _08051424 bl sub_52528 ldr r0, _08051478 @ =0x02019C0C ldr r4, [r0] cmp r4, #1 bne _0805147C ldr r3, _08051468 @ =0x02002920 ldr r0, _0805146C @ =0x0200B134 adds r0, #0xcd ldrb r1, [r0] adds r2, r3, #0 adds r2, #0x2a strb r1, [r2] strb r4, [r0] adds r2, r3, #0 b _0805148C .align 2, 0 _08051468: .4byte 0x02002920 _0805146C: .4byte 0x0200B134 _08051470: .4byte 0x02031AF0 _08051474: .4byte 0x08527ED6 _08051478: .4byte 0x02019C0C _0805147C: ldr r2, _080514B0 @ =0x02002920 adds r0, r2, #0 adds r0, #0x2a movs r1, #0 strb r1, [r0] ldr r0, _080514B4 @ =0x0200B134 adds r0, #0xcd strb r1, [r0] _0805148C: adds r1, r2, #0 adds r1, #0x2e movs r0, #0 strb r0, [r1] subs r1, #3 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #2 strb r0, [r1] adds r1, #1 strb r0, [r1] pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080514B0: .4byte 0x02002920 _080514B4: .4byte 0x0200B134 thumb_func_start sub_514B8 sub_514B8: @ 0x080514B8 push {r4, r5, r6, r7, lr} bl sub_51C9C ldr r0, _080514D4 @ =0x02002920 movs r1, #0 ldrsh r0, [r0, r1] cmp r0, #4 bls _080514CA b _08051B98 _080514CA: lsls r0, r0, #2 ldr r1, _080514D8 @ =_080514DC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080514D4: .4byte 0x02002920 _080514D8: .4byte _080514DC _080514DC: @ jump table .4byte _080514F0 @ case 0 .4byte _080517A8 @ case 1 .4byte _080518D4 @ case 2 .4byte _08051A08 @ case 3 .4byte _08051AB8 @ case 4 _080514F0: ldr r0, _08051514 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0805152C ldr r4, _08051518 @ =0x02002920 movs r2, #0xa ldrsh r0, [r4, r2] cmp r0, #0xd beq _0805156C cmp r0, #0xe bne _0805151C movs r0, #0x67 bl m4aSongNumStart movs r0, #0xd b _0805156A .align 2, 0 _08051514: .4byte 0x0200B0C0 _08051518: .4byte 0x02002920 _0805151C: cmp r0, #0 ble _0805156C movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4, #0xa] subs r0, #1 b _0805156A _0805152C: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0805156C ldr r4, _0805154C @ =0x02002920 movs r3, #0xa ldrsh r0, [r4, r3] cmp r0, #5 bgt _08051550 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4, #0xa] adds r0, #1 b _0805156A .align 2, 0 _0805154C: .4byte 0x02002920 _08051550: cmp r0, #0xd bne _0805155E movs r0, #0x67 bl m4aSongNumStart movs r0, #0xe b _0805156A _0805155E: cmp r0, #0xe bne _0805156C movs r0, #0x67 bl m4aSongNumStart movs r0, #2 _0805156A: strh r0, [r4, #0xa] _0805156C: ldr r0, _080515E8 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08051594 ldr r0, _080515EC @ =0x02019C0C ldr r0, [r0] cmp r0, #1 bne _08051594 ldr r4, _080515F0 @ =0x02002920 ldrh r0, [r4, #0xa] cmp r0, #1 bhi _08051594 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4, #0xa] adds r0, #0xd strh r0, [r4, #0xa] _08051594: ldr r0, _080515E8 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080515C2 ldr r0, _080515EC @ =0x02019C0C ldr r0, [r0] cmp r0, #1 bne _080515C2 ldr r4, _080515F0 @ =0x02002920 ldrh r0, [r4, #0xa] subs r0, #0xd lsls r0, r0, #0x10 lsrs r0, r0, #0x10 cmp r0, #1 bhi _080515C2 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4, #0xa] subs r0, #0xd strh r0, [r4, #0xa] _080515C2: ldr r4, _080515E8 @ =0x0200B0C0 ldrh r1, [r4, #0x18] movs r0, #1 ands r0, r1 cmp r0, #0 bne _080515D0 b _0805177C _080515D0: ldr r0, _080515F0 @ =0x02002920 movs r6, #0xa ldrsh r0, [r0, r6] cmp r0, #0xe bls _080515DC b _08051A96 _080515DC: lsls r0, r0, #2 ldr r1, _080515F4 @ =_080515F8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080515E8: .4byte 0x0200B0C0 _080515EC: .4byte 0x02019C0C _080515F0: .4byte 0x02002920 _080515F4: .4byte _080515F8 _080515F8: @ jump table .4byte _08051634 @ case 0 .4byte _08051674 @ case 1 .4byte _080516B0 @ case 2 .4byte _080516B0 @ case 3 .4byte _080516B0 @ case 4 .4byte _080516B0 @ case 5 .4byte _080516D0 @ case 6 .4byte _08051A96 @ case 7 .4byte _08051A96 @ case 8 .4byte _08051A96 @ case 9 .4byte _08051A96 @ case 10 .4byte _08051A96 @ case 11 .4byte _08051A96 @ case 12 .4byte _08051738 @ case 13 .4byte _080516F8 @ case 14 _08051634: movs r0, #0x65 bl m4aSongNumStart ldr r3, _08051670 @ =0x02002920 movs r4, #0 movs r1, #0 movs r2, #1 movs r0, #1 strh r0, [r3] strh r1, [r3, #0x18] adds r0, r3, #0 adds r0, #0x30 strb r2, [r0] adds r1, r3, #0 adds r1, #0x2e movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 beq _0805165C b _08051A96 _0805165C: adds r0, r3, #0 adds r0, #0x2b strb r4, [r0] adds r0, #2 strb r4, [r0] subs r0, #1 strb r4, [r0] strb r4, [r1] b _08051A96 .align 2, 0 _08051670: .4byte 0x02002920 _08051674: movs r0, #0x65 bl m4aSongNumStart ldr r2, _080516AC @ =0x02002920 movs r3, #0 movs r1, #0 movs r0, #2 strh r0, [r2] strh r1, [r2, #0x18] adds r1, r2, #0 adds r1, #0x30 movs r0, #1 strb r0, [r1] subs r1, #2 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #1 beq _0805169A b _08051A96 _0805169A: adds r0, r2, #0 adds r0, #0x2b strb r3, [r0] adds r0, #2 strb r3, [r0] subs r0, #1 strb r3, [r0] strb r3, [r1] b _08051A96 .align 2, 0 _080516AC: .4byte 0x02002920 _080516B0: movs r0, #0x65 bl m4aSongNumStart ldr r0, _080516C8 @ =0x02002920 ldrh r1, [r0, #0xa] subs r1, #2 strh r1, [r0, #0xc] ldr r0, _080516CC @ =0x0200B134 adds r0, #0xcf strb r1, [r0] b _08051A96 .align 2, 0 _080516C8: .4byte 0x02002920 _080516CC: .4byte 0x0200B134 _080516D0: movs r0, #0x65 bl m4aSongNumStart ldr r2, _080516F0 @ =0x02002920 ldrh r1, [r2, #0xa] subs r1, #2 strh r1, [r2, #0xc] ldr r0, _080516F4 @ =0x0200B134 adds r0, #0xcf strb r1, [r0] movs r0, #7 strh r0, [r2, #0xa] movs r0, #3 strh r0, [r2] b _08051A96 .align 2, 0 _080516F0: .4byte 0x02002920 _080516F4: .4byte 0x0200B134 _080516F8: ldr r0, _08051730 @ =0x02019C0C ldr r0, [r0] cmp r0, #1 beq _08051702 b _08051A96 _08051702: movs r0, #0x65 bl m4aSongNumStart ldr r1, _08051734 @ =0x02002920 adds r0, r1, #0 adds r0, #0x2d movs r2, #0 strb r2, [r0] adds r3, r1, #0 adds r3, #0x2e movs r0, #0 ldrsb r0, [r3, r0] cmp r0, #1 bne _08051720 strb r2, [r3] _08051720: adds r0, r1, #0 adds r0, #0x2b strb r2, [r0] adds r0, #1 strb r2, [r0] subs r0, #2 strb r2, [r0] b _08051A96 .align 2, 0 _08051730: .4byte 0x02019C0C _08051734: .4byte 0x02002920 _08051738: ldr r0, _08051774 @ =0x02019C0C ldr r4, [r0] cmp r4, #1 beq _08051742 b _08051A96 _08051742: movs r0, #0x65 bl m4aSongNumStart movs r0, #0xb bl sub_11B0 ldr r2, _08051778 @ =0x02002920 adds r1, r2, #0 adds r1, #0x2e movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _0805175E strb r4, [r1] _0805175E: adds r1, r2, #0 adds r1, #0x2b movs r0, #0 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r0, r2, #0 adds r0, #0x2a strb r4, [r0] b _08051A96 .align 2, 0 _08051774: .4byte 0x02019C0C _08051778: .4byte 0x02002920 _0805177C: movs r0, #2 ands r0, r1 cmp r0, #0 bne _08051786 b _08051A96 _08051786: movs r0, #0x66 bl m4aSongNumStart ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] ldr r7, _080517A4 @ =0x00000143 adds r0, r4, r7 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_525CC b _08051A96 .align 2, 0 _080517A4: .4byte 0x00000143 _080517A8: ldr r1, _080517C8 @ =0x0200B0C0 ldrh r2, [r1, #0x1c] movs r0, #0x20 ands r0, r2 adds r3, r1, #0 cmp r0, #0 beq _080517D0 ldr r0, _080517CC @ =0x02002920 movs r2, #0x18 ldrsh r1, [r0, r2] adds r4, r0, #0 cmp r1, #0 bne _080517EC ldrh r0, [r4, #0xe] subs r0, #1 b _080517E6 .align 2, 0 _080517C8: .4byte 0x0200B0C0 _080517CC: .4byte 0x02002920 _080517D0: movs r0, #0x10 ands r0, r2 ldr r4, _080517FC @ =0x02002920 cmp r0, #0 beq _080517EC movs r6, #0x18 ldrsh r0, [r4, r6] cmp r0, #0 bne _080517EC ldrh r0, [r4, #0xe] adds r0, #1 _080517E6: strh r0, [r4, #0xe] movs r0, #0xa strh r0, [r4, #0x18] _080517EC: ldrh r1, [r3, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08051800 ldrh r0, [r4, #0xe] adds r0, #0xa b _0805180C .align 2, 0 _080517FC: .4byte 0x02002920 _08051800: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0805180E ldrh r0, [r4, #0xe] subs r0, #0xa _0805180C: strh r0, [r4, #0xe] _0805180E: ldr r5, _08051880 @ =0x02002920 movs r7, #0xe ldrsh r0, [r5, r7] cmp r0, #0 bge _0805181C movs r0, #0x21 strh r0, [r5, #0xe] _0805181C: movs r1, #0xe ldrsh r0, [r5, r1] cmp r0, #0x21 ble _08051828 movs r0, #0 strh r0, [r5, #0xe] _08051828: ldrh r4, [r5, #0xe] adds r4, #1 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #0x64 bl __divsi3 strb r0, [r5, #0x12] adds r0, r4, #0 movs r1, #0x64 bl __modsi3 adds r4, r0, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #0xa bl __divsi3 strb r0, [r5, #0x13] adds r0, r4, #0 movs r1, #0xa bl __modsi3 strb r0, [r5, #0x14] ldr r0, _08051884 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r4, #1 ands r4, r1 cmp r4, #0 beq _0805188C bl m4aMPlayAllStop ldr r0, _08051888 @ =0x08527D22 movs r2, #0xe ldrsh r1, [r5, r2] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] bl m4aSongNumStart b _080518AA .align 2, 0 _08051880: .4byte 0x02002920 _08051884: .4byte 0x0200B0C0 _08051888: .4byte 0x08527D22 _0805188C: movs r0, #2 ands r0, r1 cmp r0, #0 beq _080518AA bl m4aMPlayAllStop movs r0, #0x66 bl m4aSongNumStart movs r1, #0 strh r4, [r5, #4] adds r0, r5, #0 adds r0, #0x30 strb r1, [r0] strh r4, [r5] _080518AA: ldr r0, _080518CC @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #7 ands r0, r1 cmp r0, #0 bne _080518C0 ldr r2, _080518D0 @ =0x02002920 ldrh r1, [r2, #4] movs r0, #1 subs r0, r0, r1 strh r0, [r2, #4] _080518C0: ldr r1, _080518D0 @ =0x02002920 ldrh r2, [r1, #0x18] movs r3, #0x18 ldrsh r0, [r1, r3] b _080519F4 .align 2, 0 _080518CC: .4byte 0x0200B0C0 _080518D0: .4byte 0x02002920 _080518D4: ldr r1, _080518F4 @ =0x0200B0C0 ldrh r2, [r1, #0x1c] movs r0, #0x20 ands r0, r2 adds r3, r1, #0 cmp r0, #0 beq _080518FC ldr r0, _080518F8 @ =0x02002920 movs r6, #0x18 ldrsh r1, [r0, r6] adds r4, r0, #0 cmp r1, #0 bne _08051918 ldrh r0, [r4, #0x10] subs r0, #1 b _08051912 .align 2, 0 _080518F4: .4byte 0x0200B0C0 _080518F8: .4byte 0x02002920 _080518FC: movs r0, #0x10 ands r0, r2 ldr r4, _08051928 @ =0x02002920 cmp r0, #0 beq _08051918 movs r7, #0x18 ldrsh r0, [r4, r7] cmp r0, #0 bne _08051918 ldrh r0, [r4, #0x10] adds r0, #1 _08051912: strh r0, [r4, #0x10] movs r0, #0xa strh r0, [r4, #0x18] _08051918: ldrh r1, [r3, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0805192C ldrh r0, [r4, #0x10] adds r0, #0xa b _08051938 .align 2, 0 _08051928: .4byte 0x02002920 _0805192C: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0805193A ldrh r0, [r4, #0x10] subs r0, #0xa _08051938: strh r0, [r4, #0x10] _0805193A: ldr r5, _080519AC @ =0x02002920 movs r1, #0x10 ldrsh r0, [r5, r1] cmp r0, #0 bge _08051948 movs r0, #0xb7 strh r0, [r5, #0x10] _08051948: movs r2, #0x10 ldrsh r0, [r5, r2] cmp r0, #0xb7 ble _08051954 movs r0, #0 strh r0, [r5, #0x10] _08051954: ldrh r4, [r5, #0x10] adds r4, #1 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #0x64 bl __divsi3 strb r0, [r5, #0x15] adds r0, r4, #0 movs r1, #0x64 bl __modsi3 adds r4, r0, #0 lsls r4, r4, #0x10 asrs r4, r4, #0x10 adds r0, r4, #0 movs r1, #0xa bl __divsi3 strb r0, [r5, #0x16] adds r0, r4, #0 movs r1, #0xa bl __modsi3 strb r0, [r5, #0x17] ldr r0, _080519B0 @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r4, #1 ands r4, r1 cmp r4, #0 beq _080519B8 bl m4aMPlayAllStop ldr r0, _080519B4 @ =0x08527D66 movs r3, #0x10 ldrsh r1, [r5, r3] lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] bl m4aSongNumStart b _080519D6 .align 2, 0 _080519AC: .4byte 0x02002920 _080519B0: .4byte 0x0200B0C0 _080519B4: .4byte 0x08527D66 _080519B8: movs r0, #2 ands r0, r1 cmp r0, #0 beq _080519D6 bl m4aMPlayAllStop movs r0, #0x66 bl m4aSongNumStart movs r1, #0 strh r4, [r5, #4] adds r0, r5, #0 adds r0, #0x30 strb r1, [r0] strh r4, [r5] _080519D6: ldr r0, _08051A00 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #7 ands r0, r1 cmp r0, #0 bne _080519EC ldr r2, _08051A04 @ =0x02002920 ldrh r1, [r2, #4] movs r0, #1 subs r0, r0, r1 strh r0, [r2, #4] _080519EC: ldr r1, _08051A04 @ =0x02002920 ldrh r2, [r1, #0x18] movs r6, #0x18 ldrsh r0, [r1, r6] _080519F4: cmp r0, #0 bgt _080519FA b _08051B98 _080519FA: subs r0, r2, #1 strh r0, [r1, #0x18] b _08051B98 .align 2, 0 _08051A00: .4byte 0x0200B0C0 _08051A04: .4byte 0x02002920 _08051A08: ldr r0, _08051A2C @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08051A34 ldr r4, _08051A30 @ =0x02002920 movs r7, #0xa ldrsh r0, [r4, r7] cmp r0, #7 ble _08051A52 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4, #0xa] subs r0, #1 b _08051A50 .align 2, 0 _08051A2C: .4byte 0x0200B0C0 _08051A30: .4byte 0x02002920 _08051A34: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08051A52 ldr r4, _08051A78 @ =0x02002920 movs r1, #0xa ldrsh r0, [r4, r1] cmp r0, #0xa bgt _08051A52 movs r0, #0x67 bl m4aSongNumStart ldrh r0, [r4, #0xa] adds r0, #1 _08051A50: strh r0, [r4, #0xa] _08051A52: ldr r0, _08051A7C @ =0x0200B0C0 ldrh r1, [r0, #0x18] movs r4, #1 ands r4, r1 cmp r4, #0 beq _08051A80 movs r0, #0x65 bl m4aSongNumStart ldr r0, _08051A78 @ =0x02002920 movs r1, #4 strh r1, [r0] movs r2, #0xa ldrsh r1, [r0, r2] adds r0, r0, r1 movs r1, #1 strb r1, [r0, #0x13] b _08051A96 .align 2, 0 _08051A78: .4byte 0x02002920 _08051A7C: .4byte 0x0200B0C0 _08051A80: movs r0, #2 ands r0, r1 cmp r0, #0 beq _08051A96 movs r0, #0x66 bl m4aSongNumStart ldr r1, _08051AB0 @ =0x02002920 movs r0, #6 strh r0, [r1, #0xa] strh r4, [r1] _08051A96: ldr r0, _08051AB4 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08051B98 ldr r2, _08051AB0 @ =0x02002920 ldrh r1, [r2, #2] movs r0, #1 subs r0, r0, r1 strh r0, [r2, #2] b _08051B98 .align 2, 0 _08051AB0: .4byte 0x02002920 _08051AB4: .4byte 0x0200B0C0 _08051AB8: ldr r4, _08051BF4 @ =0x02002920 ldrh r0, [r4, #8] adds r0, #1 movs r5, #0 strh r0, [r4, #8] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x18 ble _08051AD4 strh r5, [r4, #8] ldrh r1, [r4, #6] movs r0, #1 subs r0, r0, r1 strh r0, [r4, #6] _08051AD4: ldr r0, _08051BF8 @ =0x0200B0C0 ldrh r1, [r0, #0x18] ldr r0, _08051BFC @ =0x000003F7 ands r0, r1 cmp r0, #0 beq _08051B0E movs r0, #0x65 bl m4aSongNumStart movs r0, #0xa strh r0, [r4, #0x20] strh r5, [r4, #0x22] movs r0, #0 adds r3, r4, #0 adds r3, #0x24 movs r2, #0xa _08051AF4: lsls r1, r0, #0x10 asrs r1, r1, #0x10 lsls r0, r1, #1 adds r0, r0, r3 strh r2, [r0] adds r1, #1 lsls r1, r1, #0x10 lsrs r0, r1, #0x10 asrs r1, r1, #0x10 cmp r1, #1 ble _08051AF4 movs r0, #0 strh r0, [r4, #0x28] _08051B0E: ldr r4, _08051BF4 @ =0x02002920 movs r3, #0x20 ldrsh r0, [r4, r3] cmp r0, #0 ble _08051B98 bl sub_524BC ldrh r0, [r4, #0x20] subs r0, #1 strh r0, [r4, #0x20] lsls r0, r0, #0x10 asrs r5, r0, #0x10 cmp r5, #0 bne _08051B98 ldr r2, _08051C00 @ =0x02031AF0 movs r6, #0xa ldrsh r0, [r4, r6] subs r0, #7 lsls r0, r0, #1 adds r2, #0x28 adds r0, r0, r2 ldrh r1, [r4, #0x24] strb r1, [r0] movs r7, #0xa ldrsh r0, [r4, r7] subs r0, #7 lsls r0, r0, #1 adds r0, #1 adds r0, r0, r2 ldrh r1, [r4, #0x26] strb r1, [r0] ldr r2, _08051C04 @ =0x0200B134 movs r0, #0xa ldrsh r1, [r4, r0] subs r1, #7 lsls r1, r1, #2 adds r0, r2, #0 adds r0, #0xd0 adds r1, r1, r0 ldr r3, _08051C08 @ =0x086BB910 movs r6, #0x24 ldrsh r0, [r4, r6] lsls r0, r0, #3 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] movs r7, #0xa ldrsh r1, [r4, r7] subs r1, #7 lsls r1, r1, #2 adds r2, #0xd2 adds r1, r1, r2 movs r2, #0x26 ldrsh r0, [r4, r2] lsls r0, r0, #3 adds r0, r0, r3 ldrh r0, [r0] strh r0, [r1] movs r0, #3 strh r0, [r4] movs r3, #0xa ldrsh r0, [r4, r3] adds r0, r4, r0 adds r0, #0x13 movs r1, #0 strb r1, [r0] strh r5, [r4, #8] movs r0, #1 strh r0, [r4, #6] _08051B98: ldr r2, _08051BF4 @ =0x02002920 movs r6, #0x2e adds r6, r6, r2 mov ip, r6 movs r0, #0 ldrsb r0, [r6, r0] cmp r0, #1 bne _08051C10 adds r4, r2, #0 adds r4, #0x2b ldrb r0, [r4] adds r0, #1 movs r5, #0 strb r0, [r4] lsls r0, r0, #0x18 ldr r6, _08051C0C @ =0x086BB9B4 adds r3, r2, #0 adds r3, #0x2c movs r1, #0 ldrsb r1, [r3, r1] lsls r1, r1, #2 adds r1, r1, r6 asrs r0, r0, #0x18 movs r7, #2 ldrsh r1, [r1, r7] cmp r0, r1 ble _08051C30 strb r5, [r4] ldrb r0, [r3] adds r0, #1 strb r0, [r3] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, #0x2d cmp r0, #0xc ble _08051BE8 strb r5, [r3] strb r5, [r2] mov r0, ip strb r5, [r0] _08051BE8: movs r0, #0 ldrsb r0, [r3, r0] lsls r0, r0, #2 adds r0, r0, r6 ldrb r0, [r0] b _08051C2E .align 2, 0 _08051BF4: .4byte 0x02002920 _08051BF8: .4byte 0x0200B0C0 _08051BFC: .4byte 0x000003F7 _08051C00: .4byte 0x02031AF0 _08051C04: .4byte 0x0200B134 _08051C08: .4byte 0x086BB910 _08051C0C: .4byte 0x086BB9B4 _08051C10: adds r1, r2, #0 adds r1, #0x2b ldrb r0, [r1] adds r0, #1 strb r0, [r1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x12 ble _08051C30 movs r0, #0 strb r0, [r1] adds r2, #0x2d ldrb r1, [r2] movs r0, #1 subs r0, r0, r1 _08051C2E: strb r0, [r2] _08051C30: bl sub_11FC pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_51C3C sub_51C3C: @ 0x08051C3C push {lr} bl sub_111C bl sub_1170 cmp r0, #0 beq _08051C56 bl sub_1198 ldr r1, _08051C5C @ =0x0200B0C0 ldrb r0, [r1, #3] adds r0, #1 strb r0, [r1, #3] _08051C56: pop {r0} bx r0 .align 2, 0 _08051C5C: .4byte 0x0200B0C0 thumb_func_start sub_51C60 sub_51C60: @ 0x08051C60 push {lr} ldr r1, _08051C90 @ =0x0200B134 ldr r0, _08051C94 @ =0x02002920 adds r0, #0x2a ldrb r0, [r0] adds r1, #0xcd strb r0, [r1] bl sub_52B30 bl sub_2B4 bl m4aMPlayAllStop bl sub_D10 ldr r1, _08051C98 @ =0x0201A4B4 movs r0, #1 strb r0, [r1] movs r0, #1 bl sub_23C pop {r0} bx r0 .align 2, 0 _08051C90: .4byte 0x0200B134 _08051C94: .4byte 0x02002920 _08051C98: .4byte 0x0201A4B4 thumb_func_start sub_51C9C sub_51C9C: @ 0x08051C9C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #0x8c ldr r0, _08051D38 @ =0x0200B3B8 mov r8, r0 ldr r2, _08051D3C @ =0x02002920 movs r3, #4 ldrsh r1, [r2, r3] movs r0, #0xe6 lsls r0, r0, #4 muls r1, r0, r1 movs r0, #0xa1 lsls r0, r0, #3 add r0, r8 adds r1, r1, r0 str r1, [sp, #0x60] add r4, sp, #0xc mov sl, r4 mov r6, sp adds r6, #0x18 str r6, [sp, #0x6c] mov r7, sp adds r7, #0x1c str r7, [sp, #0x74] mov r0, sp adds r0, #0x20 str r0, [sp, #0x7c] movs r0, #0xb8 lsls r0, r0, #2 add r0, r8 mov r3, sl mov r1, r8 adds r1, #0xb8 mov r2, sp movs r4, #2 mov ip, r4 _08051CEA: stm r2!, {r1} stm r3!, {r0} adds r0, #0xb8 adds r1, #0xb8 movs r6, #1 rsbs r6, r6, #0 add ip, r6 mov r7, ip cmp r7, #0 bge _08051CEA movs r0, #0 mov ip, r0 movs r1, #8 add r1, r8 mov sb, r1 ldr r2, _08051D40 @ =0x0200B978 adds r2, #8 str r2, [sp, #0x70] ldr r0, _08051D44 @ =0x0200BAE8 adds r4, r0, #0 adds r4, #0xb8 adds r5, r0, #0 movs r3, #0 ldr r1, [sp, #0x6c] adds r2, r5, #0 subs r2, #0xb8 _08051D1E: ldr r0, _08051D48 @ =0x0200293A add r0, ip ldrb r0, [r0] cmp r0, #1 bne _08051D50 ldr r6, _08051D3C @ =0x02002920 movs r7, #6 ldrsh r0, [r6, r7] cmp r0, #1 bne _08051D50 ldr r0, _08051D4C @ =0x0200C7D8 str r0, [r1] b _08051D52 .align 2, 0 _08051D38: .4byte 0x0200B3B8 _08051D3C: .4byte 0x02002920 _08051D40: .4byte 0x0200B978 _08051D44: .4byte 0x0200BAE8 _08051D48: .4byte 0x0200293A _08051D4C: .4byte 0x0200C7D8 _08051D50: str r2, [r1] _08051D52: ldr r6, [sp, #0x74] adds r0, r6, r3 str r5, [r0] ldr r7, [sp, #0x7c] adds r0, r7, r3 str r4, [r0] movs r0, #0x8a lsls r0, r0, #2 adds r4, r4, r0 adds r5, r5, r0 adds r2, r2, r0 adds r3, #0xc adds r1, #0xc movs r6, #1 add ip, r6 mov r7, ip cmp r7, #5 ble _08051D1E ldr r0, _08051F64 @ =0x0200C890 str r0, [sp, #0x64] movs r0, #1 mov r1, r8 strh r0, [r1] movs r2, #1 mov r1, sp movs r3, #2 mov ip, r3 _08051D88: ldm r1!, {r0} strh r2, [r0] movs r4, #1 rsbs r4, r4, #0 add ip, r4 mov r6, ip cmp r6, #0 bge _08051D88 ldr r7, [sp, #0x64] adds r7, #8 str r7, [sp, #0x78] movs r2, #1 mov r1, sl movs r0, #2 mov ip, r0 _08051DA6: ldm r1!, {r0} strh r2, [r0] movs r3, #1 rsbs r3, r3, #0 add ip, r3 mov r4, ip cmp r4, #0 bge _08051DA6 movs r0, #1 ldr r6, [sp, #0x60] strh r0, [r6] ldr r7, _08051F68 @ =0x0200B978 strh r0, [r7] movs r0, #0 mov ip, r0 ldr r6, [sp, #0x6c] movs r3, #1 movs r2, #0 _08051DCA: adds r1, r2, r6 movs r5, #2 _08051DCE: ldm r1!, {r0} strh r3, [r0] subs r5, #1 cmp r5, #0 bge _08051DCE adds r2, #0xc movs r1, #1 add ip, r1 mov r4, ip cmp r4, #5 ble _08051DCA movs r0, #1 ldr r6, [sp, #0x64] strh r0, [r6] ldr r7, _08051F6C @ =0x0200C948 strh r0, [r7] ldr r5, _08051F70 @ =0x02002920 adds r0, r5, #0 adds r0, #0x30 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldr r1, _08051F74 @ =0x0200CA00 strh r0, [r1] ldr r0, _08051F78 @ =0x086BB9EC movs r1, #0x20 ldr r2, _08051F7C @ =0x0200B3B8 bl sub_358 ldr r2, _08051F80 @ =0x086BB968 movs r3, #0xa ldrsh r1, [r5, r3] lsls r1, r1, #2 adds r1, r1, r2 ldrh r0, [r5, #2] ldrh r1, [r1] adds r0, r0, r1 mov r4, r8 strh r0, [r4, #2] movs r6, #0xa ldrsh r0, [r5, r6] lsls r0, r0, #2 adds r0, r0, r2 ldrh r0, [r0, #2] strh r0, [r4, #4] mov r7, sb ldr r4, _08051F84 @ =0x03005000 mov r0, r8 ldrh r2, [r0, #8] lsls r2, r2, #3 adds r2, r2, r4 movs r3, #2 ldrsh r1, [r7, r3] movs r6, #2 ldrsh r0, [r0, r6] adds r1, r1, r0 ldr r3, _08051F88 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r6, _08051F8C @ =0xFFFFFE00 adds r0, r6, #0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] mov r0, r8 ldrh r1, [r0, #8] lsls r1, r1, #3 adds r1, r1, r4 ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] movs r1, #0 mov ip, r1 mov r8, r4 mov r5, sp movs r2, #0x48 mov sb, r2 _08051E6C: ldr r0, [r5] mov r3, sb strh r3, [r0, #2] ldr r1, [r5] movs r0, #0x20 strh r0, [r1, #4] ldr r4, [r5] adds r7, r4, #0 adds r7, #8 ldrh r2, [r4, #8] lsls r2, r2, #3 add r2, r8 ldr r0, _08051F90 @ =0x02002932 add r0, ip ldrb r1, [r0] adds r1, #0x16 ldrh r3, [r2, #4] ldr r0, _08051F94 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] ldrh r3, [r4, #8] lsls r3, r3, #3 add r3, r8 movs r0, #2 ldrsh r1, [r7, r0] ldr r0, [r5] movs r2, #2 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _08051F88 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] adds r0, r6, #0 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 add r1, r8 ldm r5!, {r0} ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] movs r3, #7 add sb, r3 movs r4, #1 add ip, r4 mov r7, ip cmp r7, #2 ble _08051E6C movs r0, #0 mov ip, r0 ldr r1, _08051F84 @ =0x03005000 mov r8, r1 movs r6, #0x48 mov r5, sl _08051EE2: ldr r0, [r5] strh r6, [r0, #2] ldr r0, [r5] movs r2, #0x2c mov sb, r2 mov r3, sb strh r3, [r0, #4] ldr r4, [r5] adds r7, r4, #0 adds r7, #8 ldrh r2, [r4, #8] lsls r2, r2, #3 add r2, r8 ldr r0, _08051F98 @ =0x02002935 add r0, ip ldrb r1, [r0] adds r1, #0x16 ldrh r3, [r2, #4] ldr r0, _08051F94 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] ldrh r3, [r4, #8] lsls r3, r3, #3 add r3, r8 movs r0, #2 ldrsh r1, [r7, r0] ldr r0, [r5] movs r2, #2 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r2, _08051F88 @ =0x000001FF adds r0, r2, #0 ands r1, r0 ldrh r2, [r3, #2] ldr r0, _08051F8C @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 add r1, r8 ldm r5!, {r0} ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r6, #7 movs r3, #1 add ip, r3 mov r4, ip cmp r4, #2 ble _08051EE2 movs r0, #0x48 ldr r6, [sp, #0x60] strh r0, [r6, #2] ldr r7, _08051F70 @ =0x02002920 movs r1, #0xa ldrsh r0, [r7, r1] cmp r0, #0 bne _08051F9C movs r0, #0x20 strh r0, [r6, #4] b _08051FA6 .align 2, 0 _08051F64: .4byte 0x0200C890 _08051F68: .4byte 0x0200B978 _08051F6C: .4byte 0x0200C948 _08051F70: .4byte 0x02002920 _08051F74: .4byte 0x0200CA00 _08051F78: .4byte 0x086BB9EC _08051F7C: .4byte 0x0200B3B8 _08051F80: .4byte 0x086BB968 _08051F84: .4byte 0x03005000 _08051F88: .4byte 0x000001FF _08051F8C: .4byte 0xFFFFFE00 _08051F90: .4byte 0x02002932 _08051F94: .4byte 0xFFFFFC00 _08051F98: .4byte 0x02002935 _08051F9C: cmp r0, #1 bne _08051FA6 mov r3, sb ldr r2, [sp, #0x60] strh r3, [r2, #4] _08051FA6: ldr r5, _080520D0 @ =0x03005000 ldr r7, _080520D4 @ =0xFFFFFE00 ldr r4, [sp, #0x60] adds r4, #8 movs r6, #1 mov ip, r6 _08051FB2: ldrh r3, [r4] lsls r3, r3, #3 adds r3, r3, r5 movs r0, #2 ldrsh r1, [r4, r0] ldr r2, [sp, #0x60] movs r6, #2 ldrsh r0, [r2, r6] adds r1, r1, r0 ldr r0, _080520D8 @ =0x000001FF adds r6, r0, #0 ands r1, r6 ldrh r2, [r3, #2] adds r0, r7, #0 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4] lsls r1, r1, #3 adds r1, r1, r5 ldr r2, [sp, #0x60] ldrb r0, [r2, #4] ldrb r3, [r4, #4] adds r0, r0, r3 strb r0, [r1] adds r4, #8 movs r0, #1 rsbs r0, r0, #0 add ip, r0 mov r1, ip cmp r1, #0 bge _08051FB2 movs r0, #0x48 ldr r2, _080520DC @ =0x0200B978 strh r0, [r2, #2] ldr r3, _080520E0 @ =0x02002920 movs r4, #0xc ldrsh r0, [r3, r4] lsls r0, r0, #1 ldr r7, _080520E4 @ =0x086BB9A8 adds r0, r0, r7 ldrh r0, [r0] strh r0, [r2, #4] ldr r7, [sp, #0x70] ldrh r2, [r2, #8] lsls r2, r2, #3 ldr r0, _080520D0 @ =0x03005000 adds r2, r2, r0 movs r3, #2 ldrsh r1, [r7, r3] adds r1, #0x48 ands r1, r6 ldrh r3, [r2, #2] ldr r0, _080520D4 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldr r4, _080520DC @ =0x0200B978 ldrh r1, [r4, #8] lsls r1, r1, #3 ldr r6, _080520D0 @ =0x03005000 adds r1, r1, r6 ldrb r0, [r4, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] movs r7, #0 mov ip, r7 ldr r0, _080520E0 @ =0x02002920 str r0, [sp, #0x68] movs r1, #0x54 str r1, [sp, #0x80] movs r2, #0 str r2, [sp, #0x84] movs r3, #0 str r3, [sp, #0x88] ldr r4, [sp, #0x6c] mov r8, r4 _0805204E: ldr r0, [sp, #0x68] adds r0, #0x1a add r0, ip ldrb r0, [r0] cmp r0, #1 bne _080520E8 mov r6, r8 ldr r1, [r6] movs r0, #0x9c strh r0, [r1, #2] ldr r0, [r6] add r7, sp, #0x80 ldrh r7, [r7] strh r7, [r0, #4] movs r5, #0 ldr r1, [sp, #0x68] movs r2, #6 ldrsh r0, [r1, r2] adds r0, #1 cmp r5, r0 blt _0805207A b _080522E2 _0805207A: ldr r3, [sp, #0x6c] ldr r6, [sp, #0x84] adds r4, r3, r6 ldr r7, _080520D0 @ =0x03005000 mov sb, r7 movs r6, #8 ldr r0, _080520D4 @ =0xFFFFFE00 mov sl, r0 _0805208A: ldr r0, [r4] adds r7, r0, r6 ldrh r2, [r7] lsls r2, r2, #3 add r2, sb movs r3, #2 ldrsh r1, [r7, r3] movs r3, #2 ldrsh r0, [r0, r3] adds r1, r1, r0 ldr r3, _080520D8 @ =0x000001FF adds r0, r3, #0 ands r1, r0 ldrh r3, [r2, #2] mov r0, sl ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r7] lsls r1, r1, #3 add r1, sb ldr r0, [r4] ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] adds r6, #8 adds r5, #1 ldr r7, [sp, #0x68] movs r1, #6 ldrsh r0, [r7, r1] adds r0, #1 cmp r5, r0 blt _0805208A b _080522E2 .align 2, 0 _080520D0: .4byte 0x03005000 _080520D4: .4byte 0xFFFFFE00 _080520D8: .4byte 0x000001FF _080520DC: .4byte 0x0200B978 _080520E0: .4byte 0x02002920 _080520E4: .4byte 0x086BB9A8 _080520E8: mov r2, r8 ldr r1, [r2] movs r0, #0x9c strh r0, [r1, #2] ldr r0, [r2] add r3, sp, #0x80 ldrh r3, [r3] strh r3, [r0, #4] ldr r4, [r2] adds r7, r4, #0 adds r7, #8 ldr r6, [sp, #0x68] movs r0, #0xc ldrsh r1, [r6, r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 ldr r1, [sp, #0x88] adds r0, r1, r0 ldr r2, _08052490 @ =0x02031AF0 adds r0, r0, r2 ldrb r0, [r0] ldrh r2, [r4, #8] lsls r2, r2, #3 ldr r3, _08052494 @ =0x03005000 adds r2, r2, r3 lsls r0, r0, #3 ldr r1, _08052498 @ =0x086BB910 adds r6, r0, r1 ldrh r0, [r6, #2] ldr r1, _0805249C @ =0x000003FF ands r1, r0 ldrh r3, [r2, #4] ldr r0, _080524A0 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] ldrh r1, [r4, #8] lsls r1, r1, #3 ldr r2, _08052494 @ =0x03005000 adds r1, r1, r2 ldrb r2, [r6, #4] lsls r2, r2, #6 ldrb r3, [r1, #1] movs r0, #0x3f mov sl, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, #1] ldrh r2, [r4, #8] lsls r2, r2, #3 ldr r1, _08052494 @ =0x03005000 adds r2, r2, r1 ldrb r1, [r6, #5] lsls r1, r1, #6 ldrb r3, [r2, #3] mov r0, sl ands r0, r3 orrs r0, r1 strb r0, [r2, #3] ldrh r2, [r4, #8] lsls r2, r2, #3 ldr r3, _08052494 @ =0x03005000 adds r2, r2, r3 movs r0, #2 ldrsh r1, [r7, r0] mov r3, r8 ldr r0, [r3] movs r3, #2 ldrsh r0, [r0, r3] adds r1, r1, r0 ldr r0, _080524A4 @ =0x000001FF ands r1, r0 ldrh r3, [r2, #2] ldr r0, _080524A8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 ldr r2, _08052494 @ =0x03005000 adds r1, r1, r2 mov r3, r8 ldr r0, [r3] ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] ldr r4, [sp, #0x68] movs r7, #0xc ldrsh r1, [r4, r7] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #1 adds r0, #1 ldr r1, [sp, #0x88] adds r0, r1, r0 ldr r2, _08052490 @ =0x02031AF0 adds r0, r0, r2 ldrb r0, [r0] mov sb, r0 cmp r0, #0xa bne _080521B8 b _080522E2 _080521B8: ldr r3, [sp, #0x74] ldr r4, [sp, #0x84] adds r5, r3, r4 ldr r1, [r5] mov r7, r8 ldr r0, [r7] ldrh r0, [r0, #2] ldrb r6, [r6, #6] adds r0, r0, r6 strh r0, [r1, #2] ldr r1, [r5] ldr r0, [r7] ldrh r0, [r0, #4] strh r0, [r1, #4] ldr r4, [r5] adds r7, r4, #0 adds r7, #8 ldrh r2, [r4, #8] lsls r2, r2, #3 ldr r0, _08052494 @ =0x03005000 adds r2, r2, r0 ldrh r1, [r2, #4] ldr r0, _080524A0 @ =0xFFFFFC00 ands r0, r1 movs r1, #0x2a orrs r0, r1 strh r0, [r2, #4] ldrh r1, [r4, #8] lsls r1, r1, #3 ldr r2, _08052494 @ =0x03005000 adds r1, r1, r2 ldrb r2, [r1, #1] mov r0, sl ands r0, r2 strb r0, [r1, #1] ldrh r1, [r4, #8] lsls r1, r1, #3 ldr r3, _08052494 @ =0x03005000 adds r1, r1, r3 ldrb r2, [r1, #3] mov r0, sl ands r0, r2 strb r0, [r1, #3] ldrh r3, [r4, #8] lsls r3, r3, #3 ldr r6, _08052494 @ =0x03005000 adds r3, r3, r6 movs r0, #2 ldrsh r1, [r7, r0] ldr r0, [r5] movs r2, #2 ldrsh r0, [r0, r2] adds r1, r1, r0 ldr r6, _080524A4 @ =0x000001FF ands r1, r6 ldrh r2, [r3, #2] ldr r0, _080524A8 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r4, #8] lsls r1, r1, #3 ldr r0, _08052494 @ =0x03005000 adds r1, r1, r0 ldr r0, [r5] ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] ldr r1, [sp, #0x7c] ldr r2, [sp, #0x84] adds r6, r1, r2 ldr r1, [r6] ldr r0, [r5] ldrh r0, [r0, #2] adds r0, #8 strh r0, [r1, #2] ldr r1, [r6] mov r3, r8 ldr r0, [r3] ldrh r0, [r0, #4] strh r0, [r1, #4] ldr r5, [r6] adds r7, r5, #0 adds r7, #8 ldrh r3, [r5, #8] lsls r3, r3, #3 ldr r4, _08052494 @ =0x03005000 adds r3, r3, r4 mov r0, sb lsls r4, r0, #3 ldr r1, _08052498 @ =0x086BB910 adds r4, r4, r1 ldrh r0, [r4, #2] ldr r1, _0805249C @ =0x000003FF ands r1, r0 ldrh r2, [r3, #4] ldr r0, _080524A0 @ =0xFFFFFC00 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] ldrh r2, [r5, #8] lsls r2, r2, #3 ldr r3, _08052494 @ =0x03005000 adds r2, r2, r3 ldrb r1, [r4, #4] lsls r1, r1, #6 ldrb r3, [r2, #1] mov r0, sl ands r0, r3 orrs r0, r1 strb r0, [r2, #1] ldrh r2, [r5, #8] lsls r2, r2, #3 ldr r0, _08052494 @ =0x03005000 adds r2, r2, r0 ldrb r1, [r4, #5] lsls r1, r1, #6 ldrb r3, [r2, #3] mov r0, sl ands r0, r3 orrs r0, r1 strb r0, [r2, #3] ldrh r3, [r5, #8] lsls r3, r3, #3 ldr r1, _08052494 @ =0x03005000 adds r3, r3, r1 movs r2, #2 ldrsh r1, [r7, r2] ldr r0, [r6] movs r4, #2 ldrsh r0, [r0, r4] adds r1, r1, r0 ldr r0, _080524A4 @ =0x000001FF ands r1, r0 ldrh r2, [r3, #2] ldr r0, _080524A8 @ =0xFFFFFE00 ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5, #8] lsls r1, r1, #3 ldr r2, _08052494 @ =0x03005000 adds r1, r1, r2 ldr r0, [r6] ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] _080522E2: ldr r3, [sp, #0x80] adds r3, #0xc str r3, [sp, #0x80] ldr r4, [sp, #0x84] adds r4, #0xc str r4, [sp, #0x84] ldr r6, [sp, #0x88] adds r6, #2 str r6, [sp, #0x88] movs r7, #0xc add r8, r7 movs r0, #1 add ip, r0 mov r1, ip cmp r1, #4 bgt _08052304 b _0805204E _08052304: movs r5, #8 movs r0, #0xaa ldr r2, [sp, #0x64] strh r0, [r2, #2] ldr r0, _080524AC @ =0x02002920 adds r0, #0x2a ldrb r0, [r0] lsls r1, r0, #1 adds r1, r1, r0 lsls r1, r1, #2 movs r0, #0x2c subs r0, r0, r1 strh r0, [r2, #4] ldr r7, [sp, #0x78] ldrh r2, [r2, #8] lsls r2, r2, #3 ldr r3, _08052494 @ =0x03005000 adds r2, r2, r3 movs r4, #2 ldrsh r1, [r7, r4] adds r1, #0xaa ldr r6, _080524A4 @ =0x000001FF adds r0, r6, #0 ands r1, r0 ldrh r3, [r2, #2] ldr r4, _080524A8 @ =0xFFFFFE00 adds r0, r4, #0 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldr r0, [sp, #0x64] ldrh r1, [r0, #8] lsls r1, r1, #3 ldr r2, _08052494 @ =0x03005000 adds r1, r1, r2 ldrb r0, [r0, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] movs r0, #0xc0 ldr r3, _080524B0 @ =0x0200C948 strh r0, [r3, #2] strh r5, [r3, #4] ldr r6, _080524AC @ =0x02002920 adds r6, #0x2d mov sl, r6 adds r5, r3, #0 adds r5, #8 movs r6, #0x40 mov sb, r4 movs r7, #1 mov ip, r7 _0805236C: ldrh r3, [r5] lsls r3, r3, #3 ldr r0, _08052494 @ =0x03005000 adds r3, r3, r0 mov r2, sl movs r1, #0 ldrsb r1, [r2, r1] lsls r1, r1, #2 adds r1, r6, r1 ldr r7, _0805249C @ =0x000003FF adds r4, r7, #0 ands r1, r4 ldrh r2, [r3, #4] ldr r0, _080524A0 @ =0xFFFFFC00 ands r0, r2 orrs r0, r1 strh r0, [r3, #4] ldrh r3, [r5] lsls r3, r3, #3 ldr r0, _08052494 @ =0x03005000 adds r3, r3, r0 movs r2, #2 ldrsh r1, [r5, r2] ldr r7, _080524B0 @ =0x0200C948 movs r2, #2 ldrsh r0, [r7, r2] adds r1, r1, r0 ldr r7, _080524A4 @ =0x000001FF mov r8, r7 mov r0, r8 ands r1, r0 ldrh r2, [r3, #2] mov r0, sb ands r0, r2 orrs r0, r1 strh r0, [r3, #2] ldrh r1, [r5] lsls r1, r1, #3 ldr r2, _08052494 @ =0x03005000 adds r1, r1, r2 ldr r3, _080524B0 @ =0x0200C948 ldrb r0, [r3, #4] ldrb r7, [r5, #4] adds r0, r0, r7 strb r0, [r1] adds r5, #8 adds r6, #0x80 movs r0, #1 rsbs r0, r0, #0 add ip, r0 mov r1, ip cmp r1, #0 bge _0805236C ldr r2, _080524B4 @ =0x0200CA00 ldrh r0, [r2] cmp r0, #1 bne _08052454 movs r0, #0xb0 strh r0, [r2, #2] movs r0, #8 strh r0, [r2, #4] adds r7, r2, #0 adds r7, #8 ldrh r2, [r2, #8] lsls r2, r2, #3 ldr r3, _08052494 @ =0x03005000 adds r2, r2, r3 ldr r5, _080524AC @ =0x02002920 adds r5, #0x2f movs r1, #0 ldrsb r1, [r5, r1] lsls r1, r1, #6 adds r1, #0x54 ands r1, r4 ldrh r3, [r2, #4] ldr r0, _080524A0 @ =0xFFFFFC00 ands r0, r3 orrs r0, r1 strh r0, [r2, #4] ldr r4, _080524B4 @ =0x0200CA00 ldrh r2, [r4, #8] lsls r2, r2, #3 ldr r6, _08052494 @ =0x03005000 adds r2, r2, r6 movs r0, #2 ldrsh r1, [r7, r0] movs r3, #2 ldrsh r0, [r4, r3] adds r1, r1, r0 mov r4, r8 ands r1, r4 ldrh r3, [r2, #2] ldr r0, _080524A8 @ =0xFFFFFE00 ands r0, r3 orrs r0, r1 strh r0, [r2, #2] ldr r6, _080524B4 @ =0x0200CA00 ldrh r1, [r6, #8] lsls r1, r1, #3 ldr r0, _08052494 @ =0x03005000 adds r1, r1, r0 ldrb r0, [r6, #4] ldrb r7, [r7, #4] adds r0, r0, r7 strb r0, [r1] ldr r0, _080524B8 @ =0x0200B0C0 ldr r0, [r0, #0x4c] movs r1, #0x12 bl __umodsi3 cmp r0, #0 bne _08052454 ldrb r1, [r5] movs r0, #1 subs r0, r0, r1 strb r0, [r5] _08052454: movs r0, #0 ldr r1, [sp, #0x60] strh r0, [r1] mov ip, r0 ldr r4, [sp, #0x6c] movs r3, #0 _08052460: mov r2, ip adds r2, #1 mov r6, ip lsls r0, r6, #1 add r0, ip lsls r0, r0, #2 adds r1, r0, r4 movs r5, #2 _08052470: ldm r1!, {r0} strh r3, [r0] subs r5, #1 cmp r5, #0 bge _08052470 mov ip, r2 cmp r2, #5 ble _08052460 add sp, #0x8c 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 _08052490: .4byte 0x02031AF0 _08052494: .4byte 0x03005000 _08052498: .4byte 0x086BB910 _0805249C: .4byte 0x000003FF _080524A0: .4byte 0xFFFFFC00 _080524A4: .4byte 0x000001FF _080524A8: .4byte 0xFFFFFE00 _080524AC: .4byte 0x02002920 _080524B0: .4byte 0x0200C948 _080524B4: .4byte 0x0200CA00 _080524B8: .4byte 0x0200B0C0 thumb_func_start sub_524BC sub_524BC: @ 0x080524BC push {r4, r5, lr} ldr r1, _0805251C @ =0x02002920 movs r2, #0x28 ldrsh r0, [r1, r2] adds r2, r1, #0 cmp r0, #1 bgt _08052514 ldr r0, _08052520 @ =0x0200B0C0 ldrh r0, [r0, #0x1c] ldr r4, _08052524 @ =0x000003F7 ands r4, r0 cmp r4, #0 beq _08052514 movs r3, #0 _080524D8: movs r1, #1 lsls r1, r3 ands r1, r4 cmp r1, #0 beq _0805250E movs r5, #0x22 ldrsh r0, [r2, r5] ands r0, r1 cmp r0, #0 bne _0805250E ldrh r0, [r2, #0x22] orrs r1, r0 strh r1, [r2, #0x22] movs r1, #0x28 ldrsh r0, [r2, r1] lsls r0, r0, #1 adds r1, r2, #0 adds r1, #0x24 adds r0, r0, r1 strh r3, [r0] ldrh r0, [r2, #0x28] adds r0, #1 strh r0, [r2, #0x28] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #2 beq _08052514 _0805250E: adds r3, #1 cmp r3, #9 ble _080524D8 _08052514: pop {r4, r5} pop {r0} bx r0 .align 2, 0 _0805251C: .4byte 0x02002920 _08052520: .4byte 0x0200B0C0 _08052524: .4byte 0x000003F7 thumb_func_start sub_52528 sub_52528: @ 0x08052528 push {r4, r5, r6, r7, lr} movs r0, #0 ldr r1, _0805255C @ =0x0200B204 mov ip, r1 ldr r6, _08052560 @ =0x02031B18 _08052532: movs r2, #0 lsls r4, r0, #2 lsls r3, r0, #1 adds r5, r0, #1 _0805253A: lsls r0, r2, #1 adds r0, r0, r4 add r0, ip movs r7, #0 ldrsh r1, [r0, r7] cmp r1, #0x10 beq _0805259A cmp r1, #0x10 bgt _0805256A cmp r1, #2 beq _08052592 cmp r1, #2 bgt _08052564 cmp r1, #1 beq _0805258E b _080525B2 .align 2, 0 _0805255C: .4byte 0x0200B204 _08052560: .4byte 0x02031B18 _08052564: cmp r1, #4 beq _08052596 b _080525B2 _0805256A: cmp r1, #0x80 beq _080525A6 cmp r1, #0x80 bgt _0805257C cmp r1, #0x20 beq _0805259E cmp r1, #0x40 beq _080525A2 b _080525B2 _0805257C: movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _080525AA movs r0, #0x80 lsls r0, r0, #2 cmp r1, r0 beq _080525AE b _080525B2 _0805258E: movs r1, #0 b _080525B4 _08052592: movs r1, #1 b _080525B4 _08052596: movs r1, #2 b _080525B4 _0805259A: movs r1, #4 b _080525B4 _0805259E: movs r1, #5 b _080525B4 _080525A2: movs r1, #6 b _080525B4 _080525A6: movs r1, #7 b _080525B4 _080525AA: movs r1, #8 b _080525B4 _080525AE: movs r1, #9 b _080525B4 _080525B2: movs r1, #0xa _080525B4: adds r0, r3, r2 adds r0, r0, r6 strb r1, [r0] adds r2, #1 cmp r2, #1 ble _0805253A adds r0, r5, #0 cmp r0, #4 ble _08052532 pop {r4, r5, r6, r7} pop {r0} bx r0 thumb_func_start sub_525CC sub_525CC: @ 0x080525CC push {r4, r5, r6, lr} lsls r0, r0, #0x18 movs r1, #0x80 lsls r1, r1, #0x11 adds r0, r0, r1 asrs r0, r0, #0x18 cmp r0, #5 bls _080525DE b _080528A2 _080525DE: lsls r0, r0, #2 ldr r1, _080525E8 @ =_080525EC adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080525E8: .4byte _080525EC _080525EC: @ jump table .4byte _08052604 @ case 0 .4byte _080526CC @ case 1 .4byte _08052720 @ case 2 .4byte _08052770 @ case 3 .4byte _080527C0 @ case 4 .4byte _08052814 @ case 5 _08052604: ldr r0, _080526BC @ =0x0200B0C0 mov ip, r0 ldr r6, _080526C0 @ =0x086BB910 ldrh r5, [r6, #0x28] adds r0, #0x60 strh r5, [r0] adds r0, r6, #0 adds r0, #0x50 ldrh r2, [r0] mov r0, ip adds r0, #0x62 strh r2, [r0] ldrh r4, [r6] adds r0, #2 strh r4, [r0] adds r0, #2 strh r2, [r0] adds r0, r6, #0 adds r0, #0x48 ldrh r3, [r0] mov r0, ip adds r0, #0x68 strh r3, [r0] adds r0, #2 strh r2, [r0] adds r0, r6, #0 adds r0, #0x40 ldrh r1, [r0] mov r0, ip adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 strh r1, [r0] ldrh r1, [r6, #8] movs r0, #0xa2 lsls r0, r0, #1 add r0, ip strh r1, [r0] movs r0, #0xa3 lsls r0, r0, #1 add r0, ip strh r2, [r0] movs r0, #0xa4 lsls r0, r0, #1 add r0, ip strh r4, [r0] movs r0, #0xa5 lsls r0, r0, #1 add r0, ip strh r2, [r0] movs r0, #0xa6 lsls r0, r0, #1 add r0, ip strh r5, [r0] movs r0, #0xa7 lsls r0, r0, #1 add r0, ip strh r2, [r0] ldrh r1, [r6, #0x20] movs r0, #0xa8 lsls r0, r0, #1 add r0, ip strh r1, [r0] movs r0, #0xa9 lsls r0, r0, #1 add r0, ip strh r2, [r0] ldrh r1, [r6, #0x30] movs r0, #0xaa lsls r0, r0, #1 add r0, ip strh r1, [r0] movs r0, #0xab lsls r0, r0, #1 add r0, ip strh r2, [r0] movs r2, #0 ldr r4, _080526C4 @ =0x02031B18 ldr r3, _080526C8 @ =0x08527EFE _080526AA: adds r0, r2, r4 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, #1 cmp r2, #9 ble _080526AA b _080528A2 .align 2, 0 _080526BC: .4byte 0x0200B0C0 _080526C0: .4byte 0x086BB910 _080526C4: .4byte 0x02031B18 _080526C8: .4byte 0x08527EFE _080526CC: ldr r4, _08052718 @ =0x0200B0C0 ldr r5, _0805271C @ =0x086BB910 ldrh r1, [r5, #0x28] adds r0, r4, #0 adds r0, #0x60 strh r1, [r0] adds r0, r5, #0 adds r0, #0x50 ldrh r2, [r0] adds r0, r4, #0 adds r0, #0x62 strh r2, [r0] ldrh r1, [r5] adds r0, #2 strh r1, [r0] adds r0, #2 strh r2, [r0] adds r0, r5, #0 adds r0, #0x48 ldrh r3, [r0] adds r0, r4, #0 adds r0, #0x68 strh r3, [r0] adds r0, #2 strh r2, [r0] adds r0, r5, #0 adds r0, #0x40 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 b _080528A0 .align 2, 0 _08052718: .4byte 0x0200B0C0 _0805271C: .4byte 0x086BB910 _08052720: ldr r3, _08052768 @ =0x0200B0C0 ldr r4, _0805276C @ =0x086BB910 ldrh r1, [r4, #0x28] adds r0, r3, #0 adds r0, #0x60 strh r1, [r0] adds r0, r4, #0 adds r0, #0x50 ldrh r2, [r0] adds r0, r3, #0 adds r0, #0x62 strh r2, [r0] ldrh r1, [r4] adds r0, #2 strh r1, [r0] adds r0, #2 strh r2, [r0] adds r0, r4, #0 adds r0, #0x48 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0x68 strh r1, [r0] adds r0, #2 strh r2, [r0] adds r0, r4, #0 adds r0, #0x40 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0x6c strh r1, [r0] adds r0, #2 strh r2, [r0] ldrh r1, [r4, #8] b _08052802 .align 2, 0 _08052768: .4byte 0x0200B0C0 _0805276C: .4byte 0x086BB910 _08052770: ldr r4, _080527B8 @ =0x0200B0C0 ldr r5, _080527BC @ =0x086BB910 adds r0, r5, #0 adds r0, #0x48 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x60 strh r1, [r0] adds r0, r5, #0 adds r0, #0x50 ldrh r2, [r0] adds r0, r4, #0 adds r0, #0x62 strh r2, [r0] adds r0, r5, #0 adds r0, #0x40 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x64 strh r1, [r0] adds r0, #2 strh r2, [r0] ldrh r3, [r5, #0x28] adds r0, #2 strh r3, [r0] adds r0, #2 strh r2, [r0] ldrh r1, [r5] adds r0, #2 strh r1, [r0] adds r0, #2 strh r2, [r0] adds r0, #2 strh r3, [r0] adds r0, #2 b _080528A0 .align 2, 0 _080527B8: .4byte 0x0200B0C0 _080527BC: .4byte 0x086BB910 _080527C0: ldr r3, _0805280C @ =0x0200B0C0 ldr r4, _08052810 @ =0x086BB910 adds r0, r4, #0 adds r0, #0x48 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0x60 strh r1, [r0] adds r0, r4, #0 adds r0, #0x50 ldrh r2, [r0] adds r0, r3, #0 adds r0, #0x62 strh r2, [r0] adds r0, r4, #0 adds r0, #0x40 ldrh r1, [r0] adds r0, r3, #0 adds r0, #0x64 strh r1, [r0] adds r0, #2 strh r2, [r0] ldrh r1, [r4, #0x28] adds r0, #2 strh r1, [r0] adds r0, #2 strh r2, [r0] ldrh r1, [r4, #0x20] adds r0, #2 strh r1, [r0] adds r0, #2 strh r2, [r0] ldrh r1, [r4, #0x30] _08052802: adds r0, #2 strh r1, [r0] adds r0, #2 strh r2, [r0] b _080528A2 .align 2, 0 _0805280C: .4byte 0x0200B0C0 _08052810: .4byte 0x086BB910 _08052814: ldr r2, _080528A8 @ =0x0200B0C0 movs r1, #0xa2 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x60 strh r1, [r0] movs r1, #0xa3 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x62 strh r0, [r1] movs r1, #0xa4 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x64 strh r1, [r0] movs r1, #0xa5 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x66 strh r0, [r1] movs r1, #0xa6 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x68 strh r1, [r0] movs r1, #0xa7 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x6a strh r0, [r1] movs r1, #0xa8 lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x6c strh r1, [r0] movs r1, #0xa9 lsls r1, r1, #1 adds r0, r2, r1 ldrh r0, [r0] adds r1, r2, #0 adds r1, #0x6e strh r0, [r1] movs r1, #0xaa lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x70 strh r1, [r0] movs r1, #0xab lsls r1, r1, #1 adds r0, r2, r1 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x72 _080528A0: strh r1, [r0] _080528A2: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _080528A8: .4byte 0x0200B0C0 thumb_func_start sub_528AC sub_528AC: @ 0x080528AC lsls r0, r0, #0x10 lsrs r0, r0, #0x10 adds r1, r0, #0 cmp r0, #0xfa bls _080528DA ldr r0, _080528CC @ =0x00000113 cmp r1, r0 bls _080528D8 ldr r0, _080528D0 @ =0x08527F18 ldr r2, _080528D4 @ =0xFFFFFEEC adds r1, r1, r2 lsls r1, r1, #1 adds r1, r1, r0 ldrh r0, [r1] b _080528DA .align 2, 0 _080528CC: .4byte 0x00000113 _080528D0: .4byte 0x08527F18 _080528D4: .4byte 0xFFFFFEEC _080528D8: movs r0, #0xc8 _080528DA: bx lr thumb_func_start sub_528DC sub_528DC: @ 0x080528DC push {r4, r5, lr} sub sp, #4 adds r5, r0, #0 adds r4, r1, #0 lsls r5, r5, #0x10 lsrs r5, r5, #0x10 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 ldr r0, _08052914 @ =0x02032EE0 ldr r1, _08052918 @ =0x0000FFFF movs r2, #0x99 bl m4aMPlayVolumeControl lsls r4, r4, #0x18 asrs r4, r4, #0x18 movs r0, #0 str r0, [sp] adds r0, r5, #0 adds r1, r4, #0 movs r2, #0x7d movs r3, #0xa bl sub_52940 add sp, #4 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08052914: .4byte 0x02032EE0 _08052918: .4byte 0x0000FFFF thumb_func_start sub_5291C sub_5291C: @ 0x0805291C push {r4, lr} sub sp, #4 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r3, r3, #0x18 lsrs r3, r3, #0x18 lsls r1, r1, #0x18 asrs r1, r1, #0x18 lsls r2, r2, #0x18 asrs r2, r2, #0x18 movs r4, #0 str r4, [sp] bl sub_52940 add sp, #4 pop {r4} pop {r0} bx r0 thumb_func_start sub_52940 sub_52940: @ 0x08052940 push {r4, r5, r6, lr} mov r6, r8 push {r6} adds r5, r0, #0 adds r4, r1, #0 adds r0, r2, #0 adds r6, r3, #0 lsls r5, r5, #0x10 lsls r4, r4, #0x18 lsrs r4, r4, #0x18 lsls r6, r6, #0x18 lsrs r6, r6, #0x18 ldr r1, _080529BC @ =0xFFFF0000 adds r5, r5, r1 lsrs r5, r5, #0x10 movs r1, #0xf0 lsls r1, r1, #6 mov r8, r1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 bl SetPokemonCryVolume lsls r4, r4, #0x18 asrs r4, r4, #0x18 adds r0, r4, #0 bl SetPokemonCryPanpot mov r0, r8 bl SetPokemonCryPitch movs r0, #0x8c bl SetPokemonCryLength movs r0, #0 bl SetPokemonCryProgress movs r0, #0 bl SetPokemonCryRelease movs r0, #0 bl SetPokemonCryChorus adds r0, r6, #0 bl SetPokemonCryPriority adds r0, r5, #0 bl sub_528AC movs r1, #0x7f ands r1, r0 lsrs r0, r0, #7 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 adds r2, r0, #0 cmp r0, #1 beq _080529D8 cmp r0, #1 bgt _080529C0 cmp r0, #0 beq _080529CA b _08052A0A .align 2, 0 _080529BC: .4byte 0xFFFF0000 _080529C0: cmp r2, #2 beq _080529E8 cmp r2, #3 beq _080529FC b _08052A0A _080529CA: lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080529D4 @ =0x08532D6C b _080529F0 .align 2, 0 _080529D4: .4byte 0x08532D6C _080529D8: lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080529E4 @ =0x08533360 b _080529F0 .align 2, 0 _080529E4: .4byte 0x08533360 _080529E8: lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080529F8 @ =0x08533960 _080529F0: adds r0, r0, r1 bl SetPokemonCryTone b _08052A0A .align 2, 0 _080529F8: .4byte 0x08533960 _080529FC: lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _08052A14 @ =0x08533F60 adds r0, r0, r1 bl SetPokemonCryTone _08052A0A: pop {r3} mov r8, r3 pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08052A14: .4byte 0x08533F60 thumb_func_start sub_52A18 sub_52A18: @ 0x08052A18 push {r4, lr} bl sub_555BC ldr r4, _08052A4C @ =0x0200B0C0 movs r0, #0 strb r0, [r4, #0xc] bl sub_52A68 lsls r0, r0, #0x10 cmp r0, #0 bne _08052A50 bl sub_52C64 bl sub_52B30 bl sub_52A68 lsls r0, r0, #0x10 cmp r0, #0 bne _08052A5E movs r0, #1 strb r0, [r4, #0xc] bl sub_52C64 b _08052A5E .align 2, 0 _08052A4C: .4byte 0x0200B0C0 _08052A50: ldr r1, _08052A64 @ =0x00000143 adds r0, r4, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 bl sub_525CC _08052A5E: pop {r4} pop {r0} bx r0 .align 2, 0 _08052A64: .4byte 0x00000143 thumb_func_start sub_52A68 sub_52A68: @ 0x08052A68 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} movs r0, #0 mov r8, r0 movs r7, #0 ldr r1, _08052B04 @ =0x02032FF0 mov sb, r1 _08052A7A: ldr r5, _08052B08 @ =0x0200B134 movs r4, #0x9d lsls r4, r4, #2 lsls r0, r7, #2 adds r0, r0, r7 lsls r0, r0, #2 adds r0, r0, r7 lsls r0, r0, #5 ldr r3, _08052B0C @ =0x0E000004 adds r0, r0, r3 mov r6, sb ldr r3, [r6] adds r1, r5, #0 adds r2, r4, #0 bl _call_via_r3 movs r2, #0 movs r0, #0x99 lsls r0, r0, #2 adds r3, r5, r0 movs r0, #0 ldrsb r0, [r3, r0] ldr r1, _08052B10 @ =0x086BBA6C ldrb r6, [r1] cmp r0, r6 bne _08052ACA adds r6, r3, #0 adds r3, r1, #0 _08052AB2: adds r0, r2, #1 lsls r0, r0, #0x10 lsrs r2, r0, #0x10 cmp r2, #9 bhi _08052ACA adds r0, r2, r6 movs r1, #0 ldrsb r1, [r0, r1] adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 beq _08052AB2 _08052ACA: cmp r2, #0xa bne _08052B18 movs r2, #0 cmp r4, #1 bls _08052AE0 _08052AD4: ldrh r0, [r5] adds r2, r2, r0 adds r5, #2 subs r4, #2 cmp r4, #1 bhi _08052AD4 _08052AE0: cmp r4, #0 beq _08052AF0 ldrh r1, [r5] movs r3, #0xff lsls r3, r3, #8 adds r0, r3, #0 ands r0, r1 adds r2, r2, r0 _08052AF0: ldr r0, _08052B14 @ =0x0000FFFF adds r1, r2, #0 ands r1, r0 lsrs r2, r2, #0x10 adds r2, r1, r2 cmp r2, r0 bne _08052B18 movs r6, #1 mov r8, r6 b _08052B22 .align 2, 0 _08052B04: .4byte 0x02032FF0 _08052B08: .4byte 0x0200B134 _08052B0C: .4byte 0x0E000004 _08052B10: .4byte 0x086BBA6C _08052B14: .4byte 0x0000FFFF _08052B18: adds r0, r7, #1 lsls r0, r0, #0x10 lsrs r7, r0, #0x10 cmp r7, #1 bls _08052A7A _08052B22: mov r0, r8 pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7} pop {r1} bx r1 thumb_func_start sub_52B30 sub_52B30: @ 0x08052B30 push {r4, r5, lr} ldr r3, _08052B9C @ =0x0200B134 movs r4, #0x9d lsls r4, r4, #2 movs r0, #0x9c lsls r0, r0, #2 adds r1, r3, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] ldr r2, _08052BA0 @ =0x0000026E adds r1, r3, r2 movs r0, #0 strh r0, [r1] movs r2, #0 adds r5, r3, #0 _08052B50: ldrh r0, [r3] adds r2, r2, r0 adds r3, #2 subs r4, #2 cmp r4, #1 bhi _08052B50 cmp r4, #0 beq _08052B6A ldrh r1, [r3] movs r0, #0xff lsls r0, r0, #8 ands r0, r1 adds r2, r2, r0 _08052B6A: ldr r0, _08052BA4 @ =0x0000FFFF ands r0, r2 lsrs r1, r2, #0x10 adds r2, r0, r1 lsrs r0, r2, #0x10 adds r0, r0, r2 mvns r0, r0 ldr r2, _08052BA0 @ =0x0000026E adds r1, r5, r2 strh r0, [r1] ldr r1, _08052BA8 @ =0x0E000004 movs r4, #0x9d lsls r4, r4, #2 adds r0, r5, #0 adds r2, r4, #0 bl sub_55654 ldr r1, _08052BAC @ =0x0E0002A4 adds r0, r5, #0 adds r2, r4, #0 bl sub_55654 pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08052B9C: .4byte 0x0200B134 _08052BA0: .4byte 0x0000026E _08052BA4: .4byte 0x0000FFFF _08052BA8: .4byte 0x0E000004 _08052BAC: .4byte 0x0E0002A4 thumb_func_start sub_52BB0 sub_52BB0: @ 0x08052BB0 push {r4, r5, r6, lr} lsls r1, r1, #0x18 lsrs r5, r1, #0x18 ldr r3, _08052C30 @ =0x0200B134 movs r4, #0x9d lsls r4, r4, #2 lsls r0, r0, #0x10 asrs r0, r0, #0x10 adds r2, r0, r3 ldrb r0, [r2] adds r6, r3, #0 cmp r0, r5 bhs _08052C28 movs r0, #0x9c lsls r0, r0, #2 adds r1, r6, r0 ldr r0, [r1] adds r0, #1 str r0, [r1] movs r1, #0 strb r5, [r2] ldr r2, _08052C34 @ =0x0000026E adds r0, r6, r2 strh r1, [r0] movs r2, #0 _08052BE2: ldrh r0, [r3] adds r2, r2, r0 adds r3, #2 subs r4, #2 cmp r4, #1 bhi _08052BE2 cmp r4, #0 beq _08052BFC ldrh r1, [r3] movs r0, #0xff lsls r0, r0, #8 ands r0, r1 adds r2, r2, r0 _08052BFC: ldr r0, _08052C38 @ =0x0000FFFF ands r0, r2 lsrs r1, r2, #0x10 adds r2, r0, r1 lsrs r0, r2, #0x10 adds r0, r0, r2 mvns r0, r0 ldr r2, _08052C34 @ =0x0000026E adds r1, r6, r2 strh r0, [r1] ldr r1, _08052C3C @ =0x0E000004 movs r4, #0x9d lsls r4, r4, #2 adds r0, r6, #0 adds r2, r4, #0 bl sub_55654 ldr r1, _08052C40 @ =0x0E0002A4 adds r0, r6, #0 adds r2, r4, #0 bl sub_55654 _08052C28: pop {r4, r5, r6} pop {r0} bx r0 .align 2, 0 _08052C30: .4byte 0x0200B134 _08052C34: .4byte 0x0000026E _08052C38: .4byte 0x0000FFFF _08052C3C: .4byte 0x0E000004 _08052C40: .4byte 0x0E0002A4 thumb_func_start sub_52C44 sub_52C44: @ 0x08052C44 push {lr} ldr r2, _08052C58 @ =0x02032FF0 ldr r0, _08052C5C @ =0x0E000544 ldr r1, _08052C60 @ =0x0200B100 ldr r3, [r2] movs r2, #4 bl _call_via_r3 pop {r0} bx r0 .align 2, 0 _08052C58: .4byte 0x02032FF0 _08052C5C: .4byte 0x0E000544 _08052C60: .4byte 0x0200B100 thumb_func_start sub_52C64 sub_52C64: @ 0x08052C64 push {r4, r5, lr} movs r1, #0 ldr r5, _08052CBC @ =0x0200B134 movs r0, #0x99 lsls r0, r0, #2 adds r4, r5, r0 ldr r3, _08052CC0 @ =0x086BBA6C _08052C72: lsls r0, r1, #0x10 asrs r0, r0, #0x10 adds r2, r0, r4 adds r1, r0, r3 ldrb r1, [r1] strb r1, [r2] adds r0, #1 lsls r0, r0, #0x10 lsrs r1, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #9 ble _08052C72 movs r1, #0x9c lsls r1, r1, #2 adds r0, r5, r1 movs r4, #0 str r4, [r0] adds r0, r5, #0 adds r0, #0xcd strb r4, [r0] adds r0, #1 strb r4, [r0] movs r0, #1 rsbs r0, r0, #0 bl sub_525CC bl sub_F6E0 bl sub_8ABC adds r0, r5, #0 adds r0, #0xcf strb r4, [r0] pop {r4, r5} pop {r0} bx r0 .align 2, 0 _08052CBC: .4byte 0x0200B134 _08052CC0: .4byte 0x086BBA6C