diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 10:08:48 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 10:16:34 -0700 |
commit | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/mauville_old_man.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/mauville_old_man.s')
-rw-r--r-- | asm/mauville_old_man.s | 2519 |
1 files changed, 2519 insertions, 0 deletions
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s new file mode 100644 index 000000000..3f9798d80 --- /dev/null +++ b/asm/mauville_old_man.s @@ -0,0 +1,2519 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_81200A0 +sub_81200A0: @ 81200A0 + push {r4,lr} + ldr r0, =0x03005d8c + ldr r2, [r0] + ldr r1, =0x00002e28 + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, =0x00002e51 + adds r0, r2, r3 + strb r1, [r0] + ldr r0, =gUnknown_82E9531 + ldrb r1, [r0] + adds r3, 0x1 + adds r0, r2, r3 + strb r1, [r0] + movs r3, 0 + ldr r0, =0x00002e2a + adds r2, r0 + ldr r4, =gUnknown_0859EFE4 +_081200C6: + lsls r0, r3, 1 + adds r1, r2, r0 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _081200C6 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81200A0 + + thumb_func_start sub_81200F8 +sub_81200F8: @ 81200F8 + ldr r0, =0x03005d8c + ldr r1, [r0] + ldr r0, =0x00002e28 + adds r1, r0 + movs r2, 0 + movs r0, 0x1 + strb r0, [r1] + strb r2, [r1, 0x1] + ldr r0, =gUnknown_82E9531 + ldrb r0, [r0] + strb r0, [r1, 0x2] + bx lr + .pool + thumb_func_end sub_81200F8 + + thumb_func_start sub_812011C +sub_812011C: @ 812011C + push {lr} + bl sub_8120E08 + pop {r0} + bx r0 + thumb_func_end sub_812011C + + thumb_func_start sub_8120128 +sub_8120128: @ 8120128 + ldr r0, =0x03005d8c + ldr r1, [r0] + ldr r0, =0x00002e28 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x4 + strb r0, [r2] + strb r3, [r2, 0x1] + ldr r0, =gUnknown_82E9531 + ldrb r0, [r0] + ldr r2, =0x00002e48 + adds r1, r2 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_8120128 + + thumb_func_start sub_8120154 +sub_8120154: @ 8120154 + push {lr} + bl sub_81339F8 + pop {r0} + bx r0 + thumb_func_end sub_8120154 + + thumb_func_start sub_8120160 +sub_8120160: @ 8120160 + push {lr} + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r1, [r0, 0xB] + lsls r1, 8 + ldrb r0, [r0, 0xA] + orrs r0, r1 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r0, 17 + cmp r0, 0x4 + bhi _081201C0 + lsls r0, 2 + ldr r1, =_08120190 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08120190: + .4byte _081201A4 + .4byte _081201AA + .4byte _081201B0 + .4byte _081201B6 + .4byte _081201BC +_081201A4: + bl sub_81200A0 + b _081201C0 +_081201AA: + bl sub_81200F8 + b _081201C0 +_081201B0: + bl sub_8120154 + b _081201C0 +_081201B6: + bl sub_812011C + b _081201C0 +_081201BC: + bl sub_8120128 +_081201C0: + bl sub_8120B5C + pop {r0} + bx r0 + thumb_func_end sub_8120160 + + thumb_func_start sub_81201C8 +sub_81201C8: @ 81201C8 + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e28 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81201C8 + + thumb_func_start sub_81201DC +sub_81201DC: @ 81201DC + push {r4,lr} + ldr r4, =0x020375f0 + bl sub_81201C8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81201DC + + thumb_func_start sub_81201F4 +sub_81201F4: @ 81201F4 + ldr r1, =0x020375f0 + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r2, =0x00002e51 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_81201F4 + + thumb_func_start sub_8120210 +sub_8120210: @ 8120210 + push {r4-r6,lr} + ldr r0, =0x03005d8c + ldr r4, [r0] + ldr r0, =0x00002e28 + adds r6, r4, r0 + ldr r1, =0x00002e42 + adds r0, r4, r1 + ldr r5, =0x03005d90 + ldr r1, [r5] + bl CopyString + movs r2, 0 + ldr r0, =0x00002e4d + adds r4, r0 +_0812022C: + adds r1, r4, r2 + ldr r0, [r5] + adds r0, 0xA + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _0812022C + movs r2, 0 + adds r5, r6, 0 + adds r5, 0x29 + adds r3, r6, 0x2 + adds r4, r6, 0 + adds r4, 0xE +_0812024E: + lsls r0, r2, 1 + adds r1, r3, r0 + adds r0, r4, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _0812024E + movs r0, 0x1 + strb r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120210 + + thumb_func_start sub_8120280 +sub_8120280: @ 8120280 + push {r4-r7,lr} + ldr r0, =0x03005d8c + ldr r1, [r0] + ldr r0, =0x020375e0 + ldrh r0, [r0] + ldr r2, =0x00002e36 + adds r5, r1, r2 + cmp r0, 0 + bne _08120296 + ldr r0, =0x00002e2a + adds r5, r1, r0 +_08120296: + ldr r2, =0x02021fc4 + adds r4, r2, 0 + movs r6, 0 +_0812029C: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl CopyEasyChatWord + adds r2, r0, 0 + adds r7, r6, 0x1 + cmp r2, r4 + beq _081202BE + movs r1, 0x37 +_081202B0: + ldrb r0, [r4] + cmp r0, 0 + bne _081202B8 + strb r1, [r4] +_081202B8: + adds r4, 0x1 + cmp r2, r4 + bne _081202B0 +_081202BE: + adds r4, 0x1 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl CopyEasyChatWord + adds r2, r0, 0 + cmp r2, r4 + beq _081202E6 + movs r1, 0x37 +_081202D8: + ldrb r0, [r4] + cmp r0, 0 + bne _081202E0 + strb r1, [r4] +_081202E0: + adds r4, 0x1 + cmp r2, r4 + bne _081202D8 +_081202E6: + adds r4, 0x1 + movs r0, 0xFE + strb r0, [r2] + adds r2, 0x1 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl CopyEasyChatWord + adds r2, r0, 0 + cmp r2, r4 + beq _0812030E + movs r1, 0x37 +_08120300: + ldrb r0, [r4] + cmp r0, 0 + bne _08120308 + strb r1, [r4] +_08120308: + adds r4, 0x1 + cmp r2, r4 + bne _08120300 +_0812030E: + cmp r6, 0 + bne _0812031E + movs r0, 0xFC + strb r0, [r2] + adds r2, 0x1 + movs r0, 0xF + strb r0, [r2] + adds r2, 0x1 +_0812031E: + lsls r0, r7, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _0812029C + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120280 + + thumb_func_start sub_8120340 +sub_8120340: @ 8120340 + push {lr} + ldr r0, =0x020375e0 + ldrb r0, [r0] + bl sub_81206C0 + bl script_env_2_set_ctx_paused + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120340 + + thumb_func_start sub_8120358 +sub_8120358: @ 8120358 + ldr r1, =0x020375f0 + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r2, =0x00002e28 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r1] + bx lr + .pool + thumb_func_end sub_8120358 + + thumb_func_start sub_8120374 +sub_8120374: @ 8120374 + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e28 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_8120374 + + thumb_func_start sub_812038C +sub_812038C: @ 812038C + push {lr} + bl sub_811F01C + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =0x0000ffff + cmp r1, r0 + bne _081203AC + ldr r1, =0x020375f0 + movs r0, 0 + b _081203B6 + .pool +_081203AC: + ldr r0, =0x02021cc4 + bl CopyEasyChatWord + ldr r1, =0x020375f0 + movs r0, 0x1 +_081203B6: + strh r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_812038C + + thumb_func_start sub_81203C4 +sub_81203C4: @ 81203C4 + push {lr} + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e28 + adds r2, r0, r1 + ldrb r0, [r2, 0x1] + cmp r0, 0xA + bne _081203EC + ldr r1, =0x020375f0 + movs r0, 0 + strh r0, [r1] + strb r0, [r2, 0x1] + b _081203F2 + .pool +_081203EC: + ldr r1, =0x020375f0 + movs r0, 0x1 + strh r0, [r1] +_081203F2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81203C4 + + thumb_func_start sub_81203FC +sub_81203FC: @ 81203FC + push {r4-r6,lr} + ldr r0, =0x03005d8c + ldr r4, [r0] + ldr r0, =0x00002e28 + adds r5, r4, r0 + ldrb r0, [r5, 0x1] + cmp r0, 0 + bne _08120410 + bl sub_81204DC +_08120410: + ldrb r0, [r5, 0x1] + lsls r0, 1 + ldr r1, =0x00002e2c + adds r6, r4, r1 + adds r0, r6, r0 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + beq _08120480 + bl GenerateRandomNumber + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x7 + ands r4, r0 + ldr r0, =0x02021fc4 + ldrb r1, [r5, 0x1] + lsls r1, 1 + adds r1, r6, r1 + ldrh r1, [r1] + bl CopyEasyChatWord + adds r2, r0, 0 + ldr r1, =gUnknown_082942FD + bl CopyString + adds r2, r0, 0 + ldr r0, =gUnknown_0859EFF0 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r2, 0 + bl CopyString + adds r2, r0, 0 + ldr r1, =gUnknown_08294301 + bl CopyString + b _081204A2 + .pool +_08120480: + ldr r0, =0x02021fc4 + ldr r3, =gUnknown_0859F010 + ldrb r2, [r5, 0x2] + adds r1, r2, 0x1 + strb r1, [r5, 0x2] + lsls r2, 24 + lsrs r2, 24 + movs r6, 0xB9 + lsls r6, 6 + adds r1, r4, r6 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl CopyString +_081204A2: + bl GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _081204C4 + movs r0, 0xA + b _081204C8 + .pool +_081204C4: + ldrb r0, [r5, 0x1] + adds r0, 0x1 +_081204C8: + strb r0, [r5, 0x1] + ldr r1, =0x020375f0 + movs r0, 0x1 + strh r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81203FC + + thumb_func_start sub_81204DC +sub_81204DC: @ 81204DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r0, =0x03005d8c + ldr r4, [r0] + ldr r0, =0x00002e28 + adds r0, r4, r0 + str r0, [sp, 0x18] + ldr r1, =gUnknown_0859F030 + mov r0, sp + movs r2, 0x18 + bl memcpy + movs r5, 0 + movs r1, 0x2 + add r1, sp + mov r8, r1 + movs r2, 0xB9 + lsls r2, 6 + adds r3, r4, r2 + adds r1, r3, 0 +_0812050C: + adds r0, r3, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _0812050C + movs r5, 0 + ldr r3, [sp, 0x18] + adds r3, 0x4 + mov r9, r3 + adds r6, r1, 0 +_08120524: + bl GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + adds r4, r5, 0x1 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r6, r5 + ldrb r7, [r2] + adds r1, r6, r1 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0x7 + bls _08120524 + movs r0, 0 + mov r10, r0 + movs r5, 0 +_08120552: + lsls r4, r5, 2 + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl start_menu_is_selected_item_valid + add r4, r8 + strh r0, [r4] + add r0, r10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08120552 + movs r0, 0 + ldr r2, [sp, 0x18] + strb r0, [r2, 0x2] + movs r7, 0 + movs r5, 0 +_0812057E: + bl GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x2 + bhi _081205BC + cmp r7, 0x7 + bhi _081205BC + lsls r0, r5, 1 + add r0, r9 + ldr r1, =0x0000ffff + strh r1, [r0] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, r5, 0x1 + b _0812060E + .pool +_081205BC: + bl GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + adds r4, r5, 0x1 + lsls r6, r5, 1 + cmp r5, 0x5 + bhi _081205F8 + mov r3, r8 + ldrh r0, [r3] + b _081205EE +_081205DE: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r5, 0x5 + bhi _081205F8 + lsls r0, r1, 2 + adds r0, r3, r0 + ldrh r0, [r0] +_081205EE: + subs r0, r2, r0 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bgt _081205DE +_081205F8: + cmp r1, 0x6 + bne _081205FE + movs r1, 0 +_081205FE: + lsls r0, r1, 2 + add r0, sp + ldrh r0, [r0] + bl sub_811EE90 + mov r2, r9 + adds r1, r2, r6 + strh r0, [r1] +_0812060E: + lsls r0, r4, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _0812057E + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81204DC + + thumb_func_start sub_8120628 +sub_8120628: @ 8120628 + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e51 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_8120628 + + thumb_func_start sub_8120640 +sub_8120640: @ 8120640 + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e28 + adds r0, r1 + movs r1, 0 + strb r1, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_8120640 + + thumb_func_start sub_8120658 +sub_8120658: @ 8120658 + push {lr} + bl sub_8133A60 + pop {r0} + bx r0 + thumb_func_end sub_8120658 + + thumb_func_start sub_8120664 +sub_8120664: @ 8120664 + push {lr} + bl sub_8120E50 + pop {r0} + bx r0 + thumb_func_end sub_8120664 + + thumb_func_start sub_8120670 +sub_8120670: @ 8120670 + push {lr} + bl sub_81201C8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _081206B6 + lsls r0, 2 + ldr r1, =_0812068C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0812068C: + .4byte _081206A0 + .4byte _081206A6 + .4byte _081206B2 + .4byte _081206AC + .4byte _081206B6 +_081206A0: + bl sub_8120628 + b _081206B6 +_081206A6: + bl sub_8120640 + b _081206B6 +_081206AC: + bl sub_8120664 + b _081206B6 +_081206B2: + bl sub_8120658 +_081206B6: + bl sub_8120B5C + pop {r0} + bx r0 + thumb_func_end sub_8120670 + + thumb_func_start sub_81206C0 +sub_81206C0: @ 81206C0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =sub_8120944 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x12] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81206C0 + + thumb_func_start sub_81206F0 +sub_81206F0: @ 81206F0 + ldr r1, =0x03002f84 + movs r0, 0 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81206F0 + + thumb_func_start sub_81206FC +sub_81206FC: @ 81206FC + ldr r1, =0x03002f84 + movs r0, 0x1 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_81206FC + + thumb_func_start sub_8120708 +sub_8120708: @ 8120708 + push {r4,r5,lr} + sub sp, 0xC + adds r5, r0, 0 + movs r0, 0 + movs r1, 0 + bl sub_81973C4 + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + ldr r0, =sub_81206FC + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0 + bl Print + ldr r0, =0x03002f84 + strb r4, [r0] + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120708 + + thumb_func_start sub_8120748 +sub_8120748: @ 8120748 + push {r4-r6,lr} + adds r6, r1, 0 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x5 + bls _08120756 + b _08120938 +_08120756: + lsls r0, 2 + ldr r1, =_08120764 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08120764: + .4byte _0812077C + .4byte _08120938 + .4byte _081207BC + .4byte _081207F8 + .4byte _081207F8 + .4byte _08120938 +_0812077C: + ldr r0, =0x03005d8c + ldr r2, [r0] + ldr r0, =0x020375e0 + ldrh r0, [r0] + ldr r3, =0x00002e36 + adds r1, r2, r3 + cmp r0, 0 + bne _08120790 + ldr r0, =0x00002e2a + adds r1, r2, r0 +_08120790: + adds r2, r1, 0 + adds r1, r6, 0 + adds r1, 0xC + movs r3, 0x5 +_08120798: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _08120798 + movs r0, 0 + strb r0, [r6] + b _08120938 + .pool +_081207BC: + ldrb r1, [r6] + lsls r1, 1 + adds r0, r6, 0 + adds r0, 0xC + adds r0, r1 + ldrh r4, [r0] + adds r0, r4, 0 + bl sub_817C7F4 + str r0, [r6, 0x30] + movs r1, 0x3 + ands r1, r4 + lsrs r4, 3 + movs r0, 0x1 + ands r4, r0 + adds r1, r4 + adds r0, r6, 0 + bl sub_817C858 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + ldr r0, [r6, 0x30] + ldrb r0, [r0] + cmp r0, 0xFF + beq _081207F4 + movs r0, 0 + b _08120936 +_081207F4: + movs r0, 0x3 + b _0812091A +_081207F8: + ldrb r3, [r6, 0x1] + lsls r1, r3, 3 + ldr r0, [r6, 0x30] + adds r2, r0, r1 + ldrb r1, [r6, 0x3] + cmp r1, 0x1 + beq _081208A0 + cmp r1, 0x1 + bgt _08120810 + cmp r1, 0 + beq _0812081C + b _08120938 +_08120810: + cmp r1, 0x2 + beq _08120850 + cmp r1, 0x3 + bne _0812081A + b _08120922 +_0812081A: + b _08120938 +_0812081C: + lsls r0, r3, 2 + adds r0, r6, r0 + ldrh r0, [r0, 0x18] + strb r0, [r6, 0x2] + ldrb r0, [r2] + cmp r0, 0x32 + bhi _08120844 + movs r1, 0x3 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x8C + lsls r1, 2 + adds r0, r1 + bl m4aSongNumStart +_08120844: + movs r0, 0x2 + strb r0, [r6, 0x3] + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] + b _08120938 +_08120850: + movs r0, 0x1 + strb r0, [r6, 0x3] + ldrb r0, [r2] + cmp r0, 0x32 + bhi _08120938 + movs r3, 0x4 + ldrsh r0, [r2, r3] + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x6] + ldr r4, =0x03007630 + ldr r5, =0x0000ffff + ldrh r2, [r6, 0x6] + adds r0, r4, 0 + adds r1, r5, 0 + bl MPlayVolumeControl + ldrb r1, [r6, 0x1] + lsls r1, 2 + adds r1, r6, r1 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1, 0x1A] + adds r0, r1 + strh r0, [r6, 0x8] + movs r3, 0x8 + ldrsh r2, [r6, r3] + adds r0, r4, 0 + adds r1, r5, 0 + bl MPlayPitchControl + b _08120938 + .pool +_081208A0: + ldrh r2, [r6, 0xA] + movs r3, 0xA + ldrsh r0, [r6, r3] + cmp r0, 0xA + ble _081208B0 + ldrh r0, [r6, 0x6] + subs r0, 0x2 + strh r0, [r6, 0x6] +_081208B0: + ands r1, r2 + cmp r1, 0 + beq _081208BC + ldrh r0, [r6, 0x8] + adds r0, 0x40 + b _081208C0 +_081208BC: + ldrh r0, [r6, 0x8] + subs r0, 0x40 +_081208C0: + strh r0, [r6, 0x8] + ldr r4, =0x03007630 + ldr r5, =0x0000ffff + ldrh r2, [r6, 0x6] + adds r0, r4, 0 + adds r1, r5, 0 + bl MPlayVolumeControl + movs r0, 0x8 + ldrsh r2, [r6, r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl MPlayPitchControl + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] + lsls r0, 24 + cmp r0, 0 + bne _08120938 + ldrb r0, [r6, 0x1] + adds r0, 0x1 + strb r0, [r6, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _08120918 + ldrb r0, [r6, 0x1] + ldr r1, [r6, 0x30] + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08120918 + movs r0, 0 + b _08120936 + .pool +_08120918: + movs r0, 0x3 +_0812091A: + strb r0, [r6, 0x3] + movs r0, 0x2 + strb r0, [r6, 0x2] + b _08120938 +_08120922: + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] + lsls r0, 24 + cmp r0, 0 + bne _08120938 + ldr r0, =0x03007630 + bl MPlayStop_rev01 + movs r0, 0x4 +_08120936: + strb r0, [r6, 0x3] +_08120938: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120748 + + thumb_func_start sub_8120944 +sub_8120944: @ 8120944 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =0x03005e00 + adds r5, r0, r1 + ldr r1, =0x03006130 + adds r0, r5, 0 + bl sub_8120748 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bls _08120966 + b _08120B50 +_08120966: + lsls r0, 2 + ldr r1, =_0812097C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0812097C: + .4byte _08120994 + .4byte _081209B8 + .4byte _081209C8 + .4byte _08120A7E + .4byte _08120B40 + .4byte _08120A6E +_08120994: + bl sub_8120280 + ldr r0, =0x02021fc4 + bl sub_8120708 + movs r0, 0 + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + strh r0, [r5, 0xE] + strh r0, [r5, 0x10] + movs r0, 0x4 + bl sub_80A31E8 + movs r0, 0x1 + b _08120B4E + .pool +_081209B8: + bl sub_80A3200 + lsls r0, 24 + cmp r0, 0 + bne _081209C4 + b _08120B50 +_081209C4: + movs r0, 0x2 + b _08120B4E +_081209C8: + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r2, =0x00002e28 + adds r4, r0, r2 + movs r0, 0xE + ldrsh r1, [r5, r0] + ldr r0, =0x02021fc4 + adds r1, r0 + movs r3, 0 + ldrb r0, [r1] + ldr r7, =0x03006130 + ldrh r2, [r5, 0x12] + ldr r6, =0x0203a128 + b _08120A02 + .pool +_081209F8: + adds r1, 0x1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldrb r0, [r1] +_08120A02: + cmp r0, 0 + beq _08120A12 + cmp r0, 0xFE + beq _08120A12 + cmp r0, 0xFC + beq _08120A12 + cmp r0, 0xFF + bne _081209F8 +_08120A12: + cmp r2, 0 + bne _08120A20 + movs r2, 0x10 + ldrsh r1, [r5, r2] + lsls r1, 1 + adds r0, r4, 0x2 + b _08120A2A +_08120A20: + movs r0, 0x10 + ldrsh r1, [r5, r0] + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0xE +_08120A2A: + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x3 + ands r1, r0 + lsrs r0, 3 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + strh r1, [r6] + movs r1, 0x4 + ldrsh r0, [r7, r1] + adds r1, r3, 0 + bl __divsi3 + movs r1, 0 + strh r0, [r7, 0x4] + lsls r0, 16 + cmp r0, 0 + bgt _08120A54 + movs r0, 0x1 + strh r0, [r7, 0x4] +_08120A54: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _08120A66 + movs r0, 0x3 + b _08120A68 +_08120A66: + movs r0, 0x5 +_08120A68: + strh r0, [r5, 0x8] + strh r1, [r5, 0xA] + b _08120B50 +_08120A6E: + ldrh r1, [r5, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _08120B4C + subs r0, r1, 0x1 + strh r0, [r5, 0xC] + b _08120B50 +_08120A7E: + ldr r1, =0x02021fc4 + movs r2, 0xE + ldrsh r0, [r5, r2] + adds r0, r1 + ldrb r4, [r0] + cmp r4, 0xFF + bne _08120AB0 + movs r0, 0x6 + bl sub_80A3228 + ldr r0, =0x03007630 + movs r1, 0x2 + bl sub_82E0308 + bl script_env_2_enable_and_set_ctx_running + adds r0, r6, 0 + bl DestroyTask + b _08120B50 + .pool +_08120AB0: + cmp r4, 0 + bne _08120AC6 + bl sub_81206F0 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + strh r4, [r5, 0xC] + b _08120B50 +_08120AC6: + cmp r4, 0xFE + bne _08120ADA + ldrh r0, [r5, 0xE] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + strh r1, [r5, 0xC] + b _08120B50 +_08120ADA: + cmp r4, 0xFC + bne _08120AEE + ldrh r0, [r5, 0xE] + adds r0, 0x2 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + movs r0, 0x8 + strh r0, [r5, 0xC] + b _08120B50 +_08120AEE: + cmp r4, 0x37 + bne _08120B04 + movs r4, 0 + strb r4, [r0] + bl sub_81206F0 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + strh r4, [r5, 0xC] + b _08120B50 +_08120B04: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _08120B20 + cmp r0, 0x1 + bgt _08120B16 + cmp r0, 0 + beq _08120B1C + b _08120B50 +_08120B16: + cmp r0, 0x2 + beq _08120B28 + b _08120B50 +_08120B1C: + bl sub_81206F0 +_08120B20: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + b _08120B50 +_08120B28: + ldrh r0, [r5, 0xE] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0xE] + strh r1, [r5, 0xA] + ldr r0, =0x03006130 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0xC] + movs r0, 0x4 + b _08120B4E + .pool +_08120B40: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _08120B50 +_08120B4C: + movs r0, 0x3 +_08120B4E: + strh r0, [r5, 0x8] +_08120B50: + bl sub_8197224 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8120944 + + thumb_func_start sub_8120B5C +sub_8120B5C: @ 8120B5C + push {lr} + ldr r0, =0x00004010 + movs r1, 0x45 + bl VarSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120B5C + + thumb_func_start sub_8120B70 +sub_8120B70: @ 8120B70 + push {r4-r7,lr} + sub sp, 0x8 + ldrb r1, [r0] + cmp r1, 0x2 + beq _08120B80 + cmp r1, 0x3 + beq _08120BA6 + b _08120C00 +_08120B80: + adds r5, r0, 0 + movs r4, 0 +_08120B84: + adds r0, r5, 0 + adds r0, 0x32 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08120B9E + movs r0, 0xB + muls r0, r4 + adds r0, 0x5 + adds r0, r5, r0 + movs r1, 0x1 + bl StopMusicWhileStringIsPrinted +_08120B9E: + adds r4, 0x1 + cmp r4, 0x3 + ble _08120B84 + b _08120C00 +_08120BA6: + adds r6, r0, 0 + movs r4, 0 + mov r7, sp + adds r5, r6, 0 + adds r5, 0x8 +_08120BB0: + adds r0, r6, 0x4 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08120BF8 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x7 + bl memcpy + movs r0, 0xFF + strb r0, [r7, 0x7] + mov r0, sp + bl sub_8009228 + cmp r0, 0 + beq _08120BF8 + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + mov r0, sp + ldr r1, =gUnknown_085EDFB0 + bl CopyString + adds r0, r5, 0 + mov r1, sp + movs r2, 0x7 + bl memcpy + adds r0, r6, 0 + adds r0, 0x34 + adds r0, r4 + movs r1, 0x2 + strb r1, [r0] +_08120BF8: + adds r5, 0x7 + adds r4, 0x1 + cmp r4, 0x3 + ble _08120BB0 +_08120C00: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120B70 + + thumb_func_start sub_8120C0C +sub_8120C0C: @ 8120C0C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + mov r8, r1 + adds r7, r2, 0 + ldrb r0, [r5] + cmp r0, 0x4 + bhi _08120CC4 + lsls r0, 2 + ldr r1, =_08120C2C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08120C2C: + .4byte _08120C92 + .4byte _08120CA2 + .4byte _08120C40 + .4byte _08120C6A + .4byte _08120CB0 +_08120C40: + adds r6, r5, 0 + movs r5, 0 + adds r4, r6, 0 + adds r4, 0x32 +_08120C48: + movs r0, 0xB + muls r0, r5 + adds r0, 0x5 + adds r0, r6, r0 + bl sub_8009228 + cmp r0, 0 + beq _08120C5E + mov r0, r8 + strb r0, [r4] + b _08120C60 +_08120C5E: + strb r7, [r4] +_08120C60: + adds r4, 0x1 + adds r5, 0x1 + cmp r5, 0x3 + ble _08120C48 + b _08120CC4 +_08120C6A: + adds r4, r5, 0 + adds r4, 0x34 + adds r6, r5, 0 + adds r6, 0x8 + movs r5, 0x3 +_08120C74: + adds r0, r6, 0 + bl sub_8009228 + cmp r0, 0 + beq _08120C84 + mov r1, r8 + strb r1, [r4] + b _08120C86 +_08120C84: + strb r7, [r4] +_08120C86: + adds r4, 0x1 + adds r6, 0x7 + subs r5, 0x1 + cmp r5, 0 + bge _08120C74 + b _08120CC4 +_08120C92: + cmp r3, 0x1 + bne _08120C9C + adds r0, r5, 0 + adds r0, 0x2A + b _08120CB8 +_08120C9C: + adds r0, r5, 0 + adds r0, 0x2A + b _08120CC2 +_08120CA2: + cmp r3, 0x1 + bne _08120CAC + mov r0, r8 + strb r0, [r5, 0x2] + b _08120CC4 +_08120CAC: + strb r7, [r5, 0x2] + b _08120CC4 +_08120CB0: + cmp r3, 0x1 + bne _08120CBE + adds r0, r5, 0 + adds r0, 0x20 +_08120CB8: + mov r1, r8 + strb r1, [r0] + b _08120CC4 +_08120CBE: + adds r0, r5, 0 + adds r0, 0x20 +_08120CC2: + strb r7, [r0] +_08120CC4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8120C0C + + thumb_func_start sub_8120CD0 +sub_8120CD0: @ 8120CD0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0x3 + bne _08120D28 + cmp r2, 0x1 + bne _08120D28 + adds r7, r1, 0 + movs r6, 0 + mov r8, sp + adds r4, r7, 0 + adds r4, 0x34 + adds r5, r7, 0 + adds r5, 0x8 +_08120CF2: + adds r0, r7, 0x4 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _08120D1E + mov r0, sp + adds r1, r5, 0 + movs r2, 0x7 + bl memcpy + movs r0, 0xFF + mov r1, r8 + strb r0, [r1, 0x7] + mov r0, sp + bl sub_8009228 + cmp r0, 0 + beq _08120D1A + movs r0, 0x1 + b _08120D1C +_08120D1A: + movs r0, 0x2 +_08120D1C: + strb r0, [r4] +_08120D1E: + adds r4, 0x1 + adds r5, 0x7 + adds r6, 0x1 + cmp r6, 0x3 + ble _08120CF2 +_08120D28: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8120CD0 + + thumb_func_start sub_8120D34 +sub_8120D34: @ 8120D34 + push {r4-r7,lr} + adds r3, r0, 0 + adds r6, r2, 0 + movs r2, 0 + subs r1, 0x1 + cmp r1, 0x1 + bhi _08120D44 + movs r2, 0x1 +_08120D44: + ldrb r0, [r3] + cmp r0, 0x4 + bhi _08120E02 + lsls r0, 2 + ldr r1, =_08120D58 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08120D58: + .4byte _08120DE6 + .4byte _08120DF0 + .4byte _08120D6C + .4byte _08120DC6 + .4byte _08120DF8 +_08120D6C: + adds r7, r3, 0 + cmp r2, 0 + beq _08120DA4 + movs r5, 0 + adds r4, r3, 0 + adds r4, 0x32 +_08120D78: + movs r0, 0xB + muls r0, r5 + adds r0, 0x5 + adds r1, r7, r0 + ldrb r0, [r1] + cmp r0, 0xFC + bne _08120D98 + ldrb r0, [r1, 0x1] + cmp r0, 0x15 + bne _08120D98 + adds r0, r1, 0 + bl StripExtendedControlCodes + movs r0, 0x1 + strb r0, [r4] + b _08120D9A +_08120D98: + strb r6, [r4] +_08120D9A: + adds r4, 0x1 + adds r5, 0x1 + cmp r5, 0x3 + ble _08120D78 + b _08120E02 +_08120DA4: + movs r5, 0 + adds r4, r3, 0 + adds r4, 0x32 +_08120DAA: + adds r0, r4, r5 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08120DBE + movs r0, 0xB + muls r0, r5 + adds r0, 0x5 + adds r0, r7, r0 + bl StripExtendedControlCodes +_08120DBE: + adds r5, 0x1 + cmp r5, 0x3 + ble _08120DAA + b _08120E02 +_08120DC6: + cmp r2, 0 + beq _08120E02 + movs r1, 0 + adds r4, r3, 0x4 + adds r2, r3, 0 + adds r2, 0x34 +_08120DD2: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08120DDE + adds r0, r2, r1 + strb r6, [r0] +_08120DDE: + adds r1, 0x1 + cmp r1, 0x3 + ble _08120DD2 + b _08120E02 +_08120DE6: + cmp r2, 0 + beq _08120E02 + adds r0, r3, 0 + adds r0, 0x2A + b _08120E00 +_08120DF0: + cmp r2, 0 + beq _08120E02 + strb r6, [r3, 0x2] + b _08120E02 +_08120DF8: + cmp r2, 0 + beq _08120E02 + adds r0, r3, 0 + adds r0, 0x20 +_08120E00: + strb r6, [r0] +_08120E02: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8120D34 + + thumb_func_start sub_8120E08 +sub_8120E08: @ 8120E08 + push {r4,r5,lr} + ldr r2, =0x0203a12c + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e28 + adds r0, r1 + str r0, [r2] + movs r3, 0 + movs r1, 0x3 + strb r1, [r0] + ldr r0, [r2] + strb r3, [r0, 0x1] + movs r5, 0 + movs r4, 0xFF +_08120E24: + ldr r0, [r2] + adds r0, 0x4 + adds r0, r3 + strb r5, [r0] + ldr r1, [r2] + adds r1, 0x8 + adds r1, r3 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r3, 0x1 + cmp r3, 0x3 + ble _08120E24 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120E08 + + thumb_func_start sub_8120E50 +sub_8120E50: @ 8120E50 + ldr r3, =0x0203a12c + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00002e28 + adds r0, r1 + str r0, [r3] + movs r2, 0 + movs r1, 0x3 + strb r1, [r0] + ldr r0, [r3] + strb r2, [r0, 0x1] + bx lr + .pool + thumb_func_end sub_8120E50 + + thumb_func_start sub_8120E74 +sub_8120E74: @ 8120E74 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x32 + bne _08120E80 + movs r0, 0 +_08120E80: + bl sub_80847F8 + pop {r1} + bx r1 + thumb_func_end sub_8120E74 + + thumb_func_start sub_8120E88 +sub_8120E88: @ 8120E88 + push {lr} + adds r3, r0, 0 + movs r2, 0 + ldr r1, =gUnknown_0859F048 +_08120E90: + ldrb r0, [r1] + cmp r0, r3 + bne _08120EA0 + adds r0, r1, 0 + b _08120EAA + .pool +_08120EA0: + adds r1, 0x10 + adds r2, 0x1 + cmp r2, 0x23 + ble _08120E90 + ldr r0, =gUnknown_0859F278 +_08120EAA: + pop {r1} + bx r1 + .pool + thumb_func_end sub_8120E88 + + thumb_func_start sub_8120EB4 +sub_8120EB4: @ 8120EB4 + push {lr} + bl sub_8120E88 + ldr r0, [r0, 0x4] + pop {r1} + bx r1 + thumb_func_end sub_8120EB4 + + thumb_func_start sub_8120EC0 +sub_8120EC0: @ 8120EC0 + push {lr} + bl sub_8120E88 + ldr r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_8120EC0 + + thumb_func_start sub_8120ECC +sub_8120ECC: @ 8120ECC + push {lr} + bl sub_8120E88 + ldr r0, [r0, 0x8] + pop {r1} + bx r1 + thumb_func_end sub_8120ECC + + thumb_func_start sub_8120ED8 +sub_8120ED8: @ 8120ED8 + push {lr} + movs r1, 0 + ldr r2, =0x0203a12c + ldr r0, [r2] + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08120EFC +_08120EE6: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _08120EFC + ldr r0, [r2] + adds r0, 0x4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08120EE6 +_08120EFC: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_8120ED8 + + thumb_func_start sub_8120F08 +sub_8120F08: @ 8120F08 + ldr r1, =0x0203a12c + lsls r0, 2 + adds r0, 0x24 + ldr r2, [r1] + adds r2, r0 + ldrb r0, [r2] + ldrb r1, [r2, 0x1] + lsls r1, 8 + orrs r0, r1 + ldrb r1, [r2, 0x2] + lsls r1, 16 + orrs r0, r1 + ldrb r1, [r2, 0x3] + lsls r1, 24 + orrs r0, r1 + bx lr + .pool + thumb_func_end sub_8120F08 + + thumb_func_start sub_8120F2C +sub_8120F2C: @ 8120F2C + ldr r2, =0x0203a12c + lsls r0, 2 + adds r0, 0x24 + ldr r2, [r2] + adds r2, r0 + strb r1, [r2] + lsrs r0, r1, 8 + strb r0, [r2, 0x1] + lsrs r0, r1, 16 + strb r0, [r2, 0x2] + lsrs r1, 24 + strb r1, [r2, 0x3] + bx lr + .pool + thumb_func_end sub_8120F2C + + thumb_func_start sub_8120F4C +sub_8120F4C: @ 8120F4C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =0x0203a12c + ldr r0, [r0] + adds r0, 0x4 + adds r0, r5 + ldrb r0, [r0] + bl sub_8120E74 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_8120F08 + cmp r4, r0 + bhi _08120F74 + movs r0, 0 + b _08120F76 + .pool +_08120F74: + movs r0, 0x1 +_08120F76: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8120F4C + + thumb_func_start sub_8120F7C +sub_8120F7C: @ 8120F7C + push {r4,r5,lr} + adds r5, r1, 0 + ldr r2, =0x0203a12c + lsls r1, r0, 3 + subs r1, r0 + adds r1, 0x8 + ldr r4, [r2] + adds r4, r1 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x8 + bl memset + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl memcpy + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120F7C + + thumb_func_start sub_8120FAC +sub_8120FAC: @ 8120FAC + push {r4,r5,lr} + adds r5, r1, 0 + ldr r2, =0x0203a12c + lsls r1, r0, 3 + subs r1, r0 + adds r1, 0x8 + ldr r4, [r2] + adds r4, r1 + adds r0, r4, 0 + movs r1, 0xFF + movs r2, 0x7 + bl memset + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x7 + bl memcpy + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120FAC + + thumb_func_start sub_8120FDC +sub_8120FDC: @ 8120FDC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + mov r8, r0 + adds r6, r1, 0 + ldr r0, =0x0203a12c + mov r9, r0 + ldr r0, [r0] + adds r0, 0x4 + add r0, r8 + strb r6, [r0] + ldr r0, =0x03005d90 + ldr r1, [r0] + mov r0, r8 + bl sub_8120FAC + lsls r4, r6, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8120E74 + adds r1, r0, 0 + mov r0, r8 + bl sub_8120F2C + ldr r5, =0x02021cc4 + adds r0, r4, 0 + bl sub_8120E74 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0 + movs r3, 0xA + bl ConvertIntToDecimalString + ldr r4, =0x02021dc4 + adds r0, r6, 0 + bl sub_8120ECC + adds r1, r0, 0 + adds r0, r4, 0 + bl CopyString + mov r1, r9 + ldr r0, [r1] + adds r0, 0x34 + add r0, r8 + ldr r1, =gUnknown_82E9531 + ldrb r1, [r1] + strb r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8120FDC + + thumb_func_start sub_8121064 +sub_8121064: @ 8121064 + push {r4-r7,lr} + adds r7, r0, 0 + adds r6, r1, 0 + movs r5, 0 + cmp r5, r6 + bge _0812107A +_08121070: + adds r0, r7, r5 + strb r5, [r0] + adds r5, 0x1 + cmp r5, r6 + blt _08121070 +_0812107A: + cmp r6, 0 + ble _081210B0 + adds r5, r6, 0 +_08121080: + bl GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r4, r0, 0 + bl GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r4, r7, r4 + ldrb r2, [r4] + adds r0, r7, r0 + ldrb r1, [r0] + strb r1, [r4] + strb r2, [r0] + subs r5, 0x1 + cmp r5, 0 + bne _08121080 +_081210B0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8121064 + + thumb_func_start sub_81210B8 +sub_81210B8: @ 81210B8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r7, sp + mov r8, sp + ldr r0, =gUnknown_0859F288 + ldr r0, [r0] + lsls r0, 3 + lsrs r0, 3 + adds r0, 0x3 + lsrs r0, 2 + lsls r0, 2 + mov r1, sp + subs r1, r0 + mov sp, r1 + mov r9, sp + mov r0, sp + movs r1, 0x24 + bl sub_8121064 + movs r5, 0 +_081210E4: + ldr r1, =gUnknown_0859F048 + mov r2, r9 + adds r0, r2, r5 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r4, [r0] + ldrb r6, [r0, 0x1] + movs r1, 0 + ldr r2, =0x0203a12c + ldr r0, [r2] + ldrb r0, [r0, 0x4] + cmp r0, r4 + beq _08121112 +_08121100: + adds r1, 0x1 + cmp r1, 0x3 + bgt _08121112 + ldr r0, [r2] + adds r0, 0x4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, r4 + bne _08121100 +_08121112: + cmp r1, 0x4 + bne _08121162 + adds r0, r4, 0 + bl sub_8120E74 + cmp r0, r6 + bcc _08121162 + ldr r0, =0x0203a12c + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0x1] + bl sub_8120ED8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _08121150 + ldr r0, =0x03001178 + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_8120FDC + b _0812115E + .pool +_08121150: + bl sub_8120ED8 + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_8120FDC +_0812115E: + movs r0, 0x1 + b _0812116A +_08121162: + adds r5, 0x1 + cmp r5, 0x23 + ble _081210E4 + movs r0, 0 +_0812116A: + mov sp, r8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81210B8 + + thumb_func_start sub_8121178 +sub_8121178: @ 8121178 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + ldr r6, =0x0203a12c + ldr r0, [r6] + adds r0, 0x4 + adds r0, r5 + ldrb r0, [r0] + mov r8, r0 + ldr r4, =0x02021cc4 + adds r0, r5, 0 + bl sub_8120F08 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0xA + bl ConvertIntToDecimalString + ldr r4, =0x02021dc4 + mov r0, r8 + bl sub_8120ECC + adds r1, r0, 0 + adds r0, r4, 0 + bl CopyString + ldr r4, =0x02021ec4 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8120F7C + ldr r0, [r6] + adds r0, 0x34 + adds r0, r5 + ldrb r1, [r0] + adds r0, r4, 0 + bl StopMusicWhileStringIsPrinted + mov r0, r8 + bl sub_8120EC0 + bl box_related_two__2 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8121178 + + thumb_func_start sub_81211EC +sub_81211EC: @ 81211EC + push {r4,r5,lr} + sub sp, 0xC + ldr r1, =gUnknown_085EB7EA + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + adds r5, r0, 0 + movs r4, 0 + ldr r0, =0x0203a12c + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _08121230 +_08121208: + bl sub_8120EB4 + adds r1, r0, 0 + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + cmp r0, r5 + ble _0812121C + adds r5, r0, 0 +_0812121C: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08121230 + ldr r0, =0x0203a12c + ldr r0, [r0] + adds r0, 0x4 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _08121208 +_08121230: + adds r0, r5, 0 + bl convert_pixel_width_to_tile_width + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8120ED8 + adds r3, r0, 0 + lsls r3, 25 + movs r0, 0x80 + lsls r0, 18 + adds r3, r0 + lsrs r3, 24 + movs r0, 0 + movs r1, 0 + adds r2, r4, 0 + bl CreateWindowFromRect + ldr r1, =0x0203a130 + strb r0, [r1] + ldrb r0, [r1] + movs r1, 0 + bl SetStandardWindowBorderStyle + movs r4, 0 + ldr r0, =0x0203a12c + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _081212AA + movs r5, 0x80 + lsls r5, 17 +_08121272: + bl sub_8120EB4 + adds r2, r0, 0 + ldr r0, =0x0203a130 + ldrb r0, [r0] + lsrs r1, r5, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + movs r0, 0x80 + lsls r0, 21 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x3 + bgt _081212AA + ldr r0, =0x0203a12c + ldr r0, [r0] + adds r0, 0x4 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _08121272 +_081212AA: + ldr r5, =0x0203a130 + ldrb r0, [r5] + ldr r2, =gUnknown_085EB7EA + lsls r1, r4, 4 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x8 + bl Print + ldrb r4, [r5] + bl sub_8120ED8 + adds r1, r0, 0 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldrb r0, [r5] + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81211EC + + thumb_func_start sub_81212FC +sub_81212FC: @ 81212FC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =0x03005e00 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _08121320 + cmp r5, 0x1 + beq _0812132C + b _08121376 + .pool +_08121320: + bl sub_81211EC + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08121376 +_0812132C: + bl ProcessMenuInput + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _08121376 + adds r0, 0x1 + cmp r4, r0 + beq _0812134E + bl sub_8120ED8 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _0812135C +_0812134E: + ldr r1, =0x020375f0 + movs r0, 0 + strh r0, [r1] + b _08121364 + .pool +_0812135C: + ldr r0, =0x020375f0 + strh r5, [r0] + ldr r0, =0x03001178 + strb r4, [r0] +_08121364: + ldr r0, =0x0203a130 + ldrb r0, [r0] + bl sub_80E2A78 + adds r0, r6, 0 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running +_08121376: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81212FC + + thumb_func_start sub_8121388 +sub_8121388: @ 8121388 + push {lr} + ldr r0, =sub_81212FC + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_8121388 + + thumb_func_start sub_812139C +sub_812139C: @ 812139C + push {lr} + ldr r0, =0x03001178 + ldrb r0, [r0] + bl sub_8121178 + pop {r0} + bx r0 + .pool + thumb_func_end sub_812139C + + thumb_func_start sub_81213B0 +sub_81213B0: @ 81213B0 + push {lr} + ldr r1, =0x0203a12c + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r2, =0x00002e28 + adds r0, r2 + str r0, [r1] + bl sub_8120ED8 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81213B0 + + thumb_func_start sub_81213D8 +sub_81213D8: @ 81213D8 + push {r4,r5,lr} + ldr r2, =0x0203a12c + ldr r0, =0x03005d8c + ldr r1, [r0] + ldr r3, =0x00002e28 + adds r0, r1, r3 + str r0, [r2] + ldr r5, =0x03001178 + ldrb r0, [r5] + ldr r2, =0x00002e2c + adds r1, r2 + adds r1, r0 + ldrb r4, [r1] + bl sub_8120F4C + cmp r0, 0x1 + beq _08121414 + movs r0, 0 + b _0812141E + .pool +_08121414: + ldrb r0, [r5] + adds r1, r4, 0 + bl sub_8120FDC + movs r0, 0x1 +_0812141E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81213D8 + + thumb_func_start sub_8121424 +sub_8121424: @ 8121424 + push {lr} + ldr r1, =0x0203a12c + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r2, =0x00002e28 + adds r0, r2 + str r0, [r1] + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08121448 + movs r0, 0x1 + b _0812144A + .pool +_08121448: + movs r0, 0 +_0812144A: + pop {r1} + bx r1 + thumb_func_end sub_8121424 + + thumb_func_start sub_8121450 +sub_8121450: @ 8121450 + push {lr} + ldr r1, =0x0203a12c + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r2, =0x00002e28 + adds r0, r2 + str r0, [r1] + bl sub_81210B8 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_8121450 + + .align 2, 0 @ Don't pad with nop. |