summaryrefslogtreecommitdiff
path: root/asm/mauville_old_man.s
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-11-01 10:08:48 -0700
committerYamaArashi <shadow962@live.com>2016-11-01 10:16:34 -0700
commit6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch)
treedcea69ec49430f004c17ff71b77587cafd78c69a /asm/mauville_old_man.s
parentfef81187dce23adc635d7f4b7fd82298eab09ec2 (diff)
split asm files
Diffstat (limited to 'asm/mauville_old_man.s')
-rw-r--r--asm/mauville_old_man.s2519
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.