summaryrefslogtreecommitdiff
path: root/asm/roulette.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/roulette.s
parentfef81187dce23adc635d7f4b7fd82298eab09ec2 (diff)
split asm files
Diffstat (limited to 'asm/roulette.s')
-rw-r--r--asm/roulette.s9543
1 files changed, 9543 insertions, 0 deletions
diff --git a/asm/roulette.s b/asm/roulette.s
new file mode 100644
index 000000000..b69d2afd8
--- /dev/null
+++ b/asm/roulette.s
@@ -0,0 +1,9543 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8140238
+sub_8140238: @ 8140238
+ push {lr}
+ bl RunTasks
+ bl CallObjectCallbacks
+ bl PrepareSpritesForOamLoad
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xB8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0814025A
+ adds r0, r1, 0
+ bl task_tutorial_controls_fadein
+_0814025A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140238
+
+ thumb_func_start sub_8140264
+sub_8140264: @ 8140264
+ push {r4,lr}
+ sub sp, 0x4
+ bl LoadOamFromSprites
+ bl ProcessObjectCopyRequests
+ bl copy_pal_bg_faded_to_pal_ram
+ bl sub_8142814
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x26]
+ movs r2, 0x80
+ lsls r2, 2
+ adds r1, r2, 0
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x14
+ bl SetGpuReg
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _081402A0
+ ldrh r1, [r1, 0x34]
+ movs r0, 0x52
+ bl SetGpuReg
+_081402A0:
+ ldr r2, [r4]
+ movs r3, 0x2A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _081402C0
+ ldr r1, =0x040000d4
+ ldr r3, =0x0000133c
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r0, =0x060021c0
+ str r0, [r1, 0x4]
+ ldr r0, =0x800001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ strh r0, [r2, 0x2A]
+_081402C0:
+ ldr r0, [r4]
+ movs r2, 0x28
+ ldrsh r1, [r0, r2]
+ cmp r1, 0x1
+ beq _081402EC
+ cmp r1, 0x1
+ ble _08140374
+ cmp r1, 0x2
+ beq _08140324
+ cmp r1, 0xFF
+ beq _08140348
+ b _08140374
+ .pool
+_081402EC:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0
+ bl ShowBg
+ ldr r1, =0x040000d4
+ ldr r2, [r4]
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r0, =0x0600f9c0
+ str r0, [r1, 0x4]
+ ldr r0, =0x800001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0x2
+ strh r0, [r2, 0x28]
+ b _08140374
+ .pool
+_08140324:
+ ldr r1, =0x040000d4
+ movs r2, 0xCF
+ lsls r2, 2
+ adds r0, r2
+ str r0, [r1]
+ ldr r0, =0x0600f9c0
+ str r0, [r1, 0x4]
+ ldr r0, =0x800001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _08140374
+ .pool
+_08140348:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl SetBgAttribute
+ movs r0, 0
+ bl ShowBg
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =0x040000d4
+ mov r3, sp
+ str r3, [r1]
+ ldr r0, =0x0600f9c0
+ str r0, [r1, 0x4]
+ ldr r0, =0x810001a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1, 0x28]
+_08140374:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140264
+
+ thumb_func_start sub_8140388
+sub_8140388: @ 8140388
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r5, 0
+ str r5, [sp]
+ ldr r4, =0x0203ab88
+ movs r0, 0xE6
+ lsls r0, 6
+ bl AllocZeroed
+ str r0, [r4]
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_085B6140
+ movs r0, 0x1
+ movs r2, 0x3
+ bl InitBgsFromTemplates
+ ldr r1, [r4]
+ movs r0, 0xBE
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ ldr r2, =0x0000117c
+ adds r1, r2
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ ldr r0, =0x0000317c
+ adds r1, r0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ ldr r0, =gUnknown_085B614C
+ bl InitWindows
+ bl sub_8197200
+ ldr r0, =0x0203ab8c
+ strb r5, [r0]
+ ldr r0, =gUnknown_085B5DFC
+ mov r1, sp
+ bl malloc_and_decompress
+ ldr r1, [r4]
+ ldr r2, =0x0000397c
+ adds r1, r2
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140388
+
+ thumb_func_start sub_8140418
+sub_8140418: @ 8140418
+ push {r4,r5,lr}
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ ldr r4, =0x0000397c
+ adds r0, r4
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r5]
+ adds r0, r4
+ movs r4, 0
+ str r4, [r0]
+ bl FreeAllWindowBuffers
+ movs r0, 0
+ bl UnsetBgTilemapBuffer
+ movs r0, 0x1
+ bl UnsetBgTilemapBuffer
+ movs r0, 0x2
+ bl UnsetBgTilemapBuffer
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r0, [r5]
+ movs r2, 0xE6
+ lsls r2, 6
+ movs r1, 0
+ bl memset
+ ldr r0, [r5]
+ bl Free
+ str r4, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140418
+
+ thumb_func_start sub_8140470
+sub_8140470: @ 8140470
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, =gUnknown_085B6418
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ ldr r5, =0x0203ab88
+ ldr r3, [r5]
+ ldr r4, =0x020375e0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3, 0x4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x4]
+ ldrh r1, [r4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081404AA
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x4]
+_081404AA:
+ ldr r1, [r5]
+ ldr r2, =gUnknown_085B6348
+ ldrb r0, [r1, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ adds r1, 0x23
+ strb r0, [r1]
+ ldr r2, [r5]
+ ldr r3, =gUnknown_085B6344
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r2, 0x19]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1A]
+ movs r0, 0xF
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0x1
+ bne _08140520
+ ldr r4, =0x02037714
+ ldr r3, =0x02037b14
+ mov r0, sp
+ ldrh r2, [r0]
+ b _08140528
+ .pool
+_08140520:
+ ldr r4, =0x02037714
+ ldr r3, =0x02037b14
+ mov r0, sp
+ ldrh r2, [r0, 0x2]
+_08140528:
+ adds r0, r3, 0
+ adds r0, 0xA2
+ strh r2, [r0]
+ ldr r1, =0x0000ffff
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r3]
+ ands r0, r1
+ adds r2, r4, 0
+ adds r2, 0xA2
+ strh r0, [r2]
+ ands r0, r1
+ strh r0, [r4]
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0xB8
+ bl sub_8151678
+ movs r4, 0
+_0814054E:
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ adds r0, 0xB8
+ lsls r2, r4, 3
+ ldr r1, =gUnknown_085B6388
+ adds r2, r1
+ adds r1, r4, 0
+ bl sub_815168C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xC
+ bls _0814054E
+ movs r4, 0
+_0814056C:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =0x020244ec
+ adds r0, r1
+ movs r1, 0x41
+ bl pokemon_getattr
+ adds r1, r0, 0
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ beq _081405AC
+ adds r0, 0x2
+ cmp r1, r0
+ bne _081405B6
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x2]
+ movs r2, 0x1
+ b _081405B2
+ .pool
+_081405AC:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x2]
+ movs r2, 0x2
+_081405B2:
+ orrs r1, r2
+ strb r1, [r0, 0x2]
+_081405B6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0814056C
+ bl GameFreakRTC_CalcLocalDateTime
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140470
+
+ thumb_func_start sub_81405CC
+sub_81405CC: @ 81405CC
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, =0x030022c0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _081405E0
+ b _081407F8
+_081405E0:
+ lsls r0, 2
+ ldr r1, =_081405F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081405F4:
+ .4byte _08140618
+ .4byte _08140630
+ .4byte _08140650
+ .4byte _08140662
+ .4byte _0814069C
+ .4byte _081406C0
+ .4byte _081406E0
+ .4byte _08140750
+ .4byte _0814077A
+_08140618:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ bl SetVBlankHBlankCallbacksToNull
+ bl sub_8121DA0
+ bl sub_8121E10
+ b _081407F8
+_08140630:
+ bl sub_8140388
+ bl DeactivateAllTextPrinters
+ movs r1, 0x90
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000060a
+ movs r0, 0x52
+ bl SetGpuReg
+ b _081407F8
+ .pool
+_08140650:
+ bl sub_80A1A74
+ bl ResetAllObjectData
+ bl ResetTasks
+ bl reset_temp_tile_data_buffers
+ b _081407F8
+_08140662:
+ ldr r0, =gUnknown_085B5BFC
+ movs r2, 0xE0
+ lsls r2, 1
+ movs r1, 0
+ bl gpu_pal_apply
+ ldr r1, =gUnknown_08DBC2E8
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gUnknown_08DBCA14
+ str r4, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ b _081407F8
+ .pool
+_0814069C:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081406A8
+ b _08140806
+_081406A8:
+ bl sub_8140470
+ ldr r1, =gUnknown_085B5FA0
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ b _081407F8
+ .pool
+_081406C0:
+ movs r0, 0
+ bl sub_8142C0C
+ bl sub_81439C8
+ bl sub_814391C
+ bl sub_8143314
+ bl sub_8142CD0
+ bl sub_8142F7C
+ bl sub_81431E4
+ b _081407F8
+_081406E0:
+ bl CallObjectCallbacks
+ bl PrepareSpritesForOamLoad
+ bl GetCoins
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8143514
+ movs r0, 0x6
+ bl sub_814372C
+ movs r0, 0
+ bl sub_81436D0
+ movs r0, 0
+ bl sub_81424FC
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5B89
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =0x02021bbc
+ movs r2, 0x3C
+ negs r2, r2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, =0x02021bbe
+ strh r5, [r0]
+ b _081407F8
+ .pool
+_08140750:
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ b _081407F8
+_0814077A:
+ movs r0, 0x1
+ bl EnableInterrupts
+ ldr r0, =sub_8140264
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_80A27B0
+ ldr r0, =sub_81408A8
+ movs r1, 0
+ bl CreateTask
+ ldr r5, =0x0203ab88
+ ldr r1, [r5]
+ adds r1, 0xA4
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x03005e00
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0x6
+ strh r0, [r4, 0x14]
+ bl GetCoins
+ strh r0, [r4, 0x22]
+ bl GetCoins
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80EDE84
+ ldr r0, =sub_8140814
+ movs r1, 0x1
+ bl CreateTask
+ ldr r1, [r5]
+ adds r1, 0xA5
+ strb r0, [r1]
+ ldr r0, =sub_8140238
+ bl SetMainCallback2
+ b _08140806
+ .pool
+_081407F8:
+ ldr r1, =0x030022c0
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08140806:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81405CC
+
+ thumb_func_start sub_8140814
+sub_8140814: @ 8140814
+ push {r4-r6,lr}
+ ldr r3, =0x0203ab88
+ ldr r0, [r3]
+ adds r0, 0x21
+ ldrb r2, [r0]
+ adds r1, r2, 0x1
+ strb r1, [r0]
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x23
+ lsls r2, 24
+ lsrs r2, 24
+ adds r6, r3, 0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _0814085A
+ adds r1, 0x21
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, [r6]
+ adds r3, r2, 0
+ adds r3, 0x22
+ ldrb r1, [r3]
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0814085A
+ ldrb r1, [r3]
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r1
+ strh r0, [r2, 0x24]
+_0814085A:
+ adds r4, r6, 0
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x24]
+ bl sine2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x24]
+ bl cosine2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0814087E
+ adds r0, 0xF
+_0814087E:
+ lsls r0, 12
+ lsrs r5, r0, 16
+ ldr r3, [r6]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0814088E
+ adds r0, 0xF
+_0814088E:
+ asrs r0, 4
+ strh r0, [r3, 0x32]
+ strh r0, [r3, 0x2C]
+ strh r5, [r3, 0x2E]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r3, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140814
+
+ thumb_func_start sub_81408A8
+sub_81408A8: @ 81408A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _081408FE
+ movs r1, 0x90
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x00000808
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x14]
+ adds r0, r4, 0
+ bl sub_8141FF4
+ bl sub_8142070
+ bl sub_8143A40
+ movs r0, 0
+ bl sub_81424FC
+ movs r0, 0x6
+ bl sub_814372C
+ ldr r1, =sub_8140968
+ ldr r2, =0x0000ffff
+ adds r0, r4, 0
+ movs r3, 0x3
+ bl sub_8141F7C
+_081408FE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81408A8
+
+ thumb_func_start sub_8140914
+sub_8140914: @ 8140914
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r5, =0x0203ab8c
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r5]
+ ldr r2, =gUnknown_082A5C13
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =gUnknown_085B6410
+ adds r0, r4, 0
+ bl sub_8121F68
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140914
+
+ thumb_func_start sub_8140968
+sub_8140968: @ 8140968
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_819746C
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8140BD0
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140968
+
+ thumb_func_start sub_8140994
+sub_8140994: @ 8140994
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0xA5
+ ldrb r0, [r0]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl sub_8141DE4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140994
+
+ thumb_func_start sub_81409B8
+sub_81409B8: @ 81409B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _081409CA
+ b _08140AE8
+_081409CA:
+ lsls r0, r4, 2
+ ldr r1, =_081409D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081409D8:
+ .4byte _08140A18
+ .4byte _08140A3C
+ .4byte _08140A3C
+ .4byte _08140A3C
+ .4byte _08140A3C
+ .4byte _08140A90
+ .4byte _08140AE8
+ .4byte _08140AE8
+ .4byte _08140AE8
+ .4byte _08140AE8
+ .4byte _08140A90
+ .4byte _08140AE8
+ .4byte _08140AE8
+ .4byte _08140AE8
+ .4byte _08140AE8
+ .4byte _08140A90
+_08140A18:
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8152008
+ b _08140B4E
+ .pool
+_08140A3C:
+ lsls r0, r4, 1
+ adds r0, r4
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ movs r1, 0x10
+ str r1, [sp]
+ movs r6, 0xD
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8152008
+ ldr r0, [r5]
+ adds r4, r0, r4
+ ldr r1, =0x0000397c
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, =0x00000232
+ adds r1, r0
+ movs r0, 0x3
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r8
+ movs r3, 0x7
+ bl sub_8152058
+ b _08140B4E
+ .pool
+_08140A90:
+ subs r0, r4, 0x1
+ movs r1, 0x5
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0xA
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ movs r6, 0x10
+ str r6, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8152008
+ ldr r0, [r5]
+ adds r4, r0, r4
+ ldr r1, =0x0000397c
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0xA0
+ lsls r0, 2
+ adds r1, r0
+ str r6, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0xE
+ adds r3, r7, 0
+ bl sub_8152058
+ b _08140B4E
+ .pool
+_08140AE8:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0xE
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ subs r0, r4, 0x1
+ movs r1, 0x5
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0x7
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8152008
+ ldr r0, [r5]
+ adds r4, r0, r4
+ ldr r1, =0x0000397c
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x88
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r8
+ adds r3, r7, 0
+ bl sub_8152058
+_08140B4E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81409B8
+
+ thumb_func_start sub_8140B64
+sub_8140B64: @ 8140B64
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x03005e00
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x10]
+ bl sub_81436D0
+ ldrb r0, [r4, 0x10]
+ bl sub_81409B8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140B64
+
+ thumb_func_start sub_8140B8C
+sub_8140B8C: @ 8140B8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =0x0203ab88
+ ldr r2, [r5]
+ movs r6, 0
+ movs r1, 0x1
+ strh r1, [r2, 0x28]
+ ldr r1, =0x03005e00
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x10]
+ bl sub_81409B8
+ ldr r0, [r5]
+ adds r0, 0x23
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0x21
+ strb r6, [r0]
+ ldr r0, =sub_8141040
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140B8C
+
+ thumb_func_start sub_8140BD0
+sub_8140BD0: @ 8140BD0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =0x0203ab88
+ ldr r0, [r1]
+ ldr r2, [r0, 0x8]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08140C30
+ movs r3, 0xB
+ ldr r5, =gUnknown_085B6154
+ adds r0, r5, 0
+ adds r0, 0xE4
+ ldr r0, [r0]
+ ands r2, r0
+ ldr r0, =0x03005e00
+ mov r12, r0
+ lsls r7, r6, 2
+ cmp r2, 0
+ beq _08140C6E
+ adds r4, r1, 0
+ adds r5, 0x8
+_08140BFE:
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r3, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0xD
+ bgt _08140C6E
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08140BFE
+ b _08140C6E
+ .pool
+_08140C30:
+ movs r3, 0x6
+ ldr r5, =gUnknown_085B6154
+ adds r0, r5, 0
+ adds r0, 0x80
+ ldr r0, [r0]
+ ands r2, r0
+ ldr r0, =0x03005e00
+ mov r12, r0
+ lsls r7, r6, 2
+ cmp r2, 0
+ beq _08140C6E
+ adds r4, r1, 0
+ adds r5, 0x8
+_08140C4A:
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r3, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0x9
+ bgt _08140C6E
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08140C4A
+_08140C6E:
+ adds r4, r7, r6
+ lsls r4, 3
+ add r4, r12
+ movs r5, 0
+ strh r3, [r4, 0x10]
+ adds r0, r6, 0
+ bl sub_8141FF4
+ ldrb r0, [r4, 0x10]
+ bl sub_81424FC
+ ldrb r0, [r4, 0x10]
+ bl sub_81436D0
+ ldrb r0, [r4, 0x10]
+ bl sub_8142284
+ strh r5, [r4, 0xA]
+ ldr r0, =sub_8140B8C
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140BD0
+
+ thumb_func_start sub_8140CA8
+sub_8140CA8: @ 8140CA8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r6, 0
+ movs r7, 0
+ ldr r1, =gUnknown_085B641E
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldrb r0, [r4]
+ mov r8, r0
+ cmp r5, 0
+ blt _08140D1C
+ cmp r5, 0x1
+ bgt _08140CF4
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __modsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0xF0
+ lsls r2, 20
+ adds r1, r0, r2
+ lsrs r7, r1, 24
+ cmp r0, 0
+ bne _08140D1C
+ movs r6, 0x5
+ b _08140D1C
+ .pool
+_08140CF4:
+ cmp r5, 0x3
+ bgt _08140D1C
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r0, r1, r2
+ lsrs r7, r0, 24
+ cmp r1, 0
+ bne _08140D1C
+ movs r6, 0x1
+_08140D1C:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r4]
+ lsls r1, r6, 24
+ asrs r3, r1, 24
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r7, 24
+ cmp r0, r3
+ bge _08140D3E
+ asrs r0, r2, 24
+ strh r0, [r4]
+_08140D3E:
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ asrs r0, r2, 24
+ cmp r1, r0
+ ble _08140D4A
+ strh r3, [r4]
+_08140D4A:
+ mov r1, r8
+ lsls r0, r1, 24
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ asrs r0, 24
+ cmp r1, r0
+ bne _08140D5C
+ movs r0, 0
+ b _08140D5E
+_08140D5C:
+ movs r0, 0x1
+_08140D5E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8140CA8
+
+ thumb_func_start sub_8140D6C
+sub_8140D6C: @ 8140D6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ ldr r4, =0x030022c0
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08140DA8
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0
+ bl sub_8140CA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08140DA8
+ b _08140F3A
+_08140DA8:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08140DCE
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x1
+ bl sub_8140CA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08140DCE
+ b _08140F3A
+_08140DCE:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08140DF4
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x2
+ bl sub_8140CA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08140DF4
+ b _08140F3A
+_08140DF4:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08140E1A
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x3
+ bl sub_8140CA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08140E1A
+ b _08140F3A
+_08140E1A:
+ cmp r5, 0
+ bne _08140E20
+ b _08140F3A
+_08140E20:
+ ldr r0, =0x03005e00
+ lsls r6, r7, 2
+ adds r4, r6, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ bl sub_81424FC
+ adds r0, r7, 0
+ bl sub_8140B64
+ mov r1, r9
+ strh r1, [r4, 0xA]
+ movs r0, 0x5
+ bl audio_play
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ adds r0, 0xB8
+ ldr r1, =0x0000ffff
+ bl sub_8151A9C
+ ldr r5, [r5]
+ movs r2, 0xB8
+ lsls r2, 1
+ adds r3, r5, r2
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ movs r0, 0xB2
+ lsls r0, 1
+ adds r3, r5, r0
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ movs r0, 0xAC
+ lsls r0, 1
+ adds r2, r5, r0
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldrb r0, [r4, 0x10]
+ bl sub_8142284
+ movs r4, 0
+ mov r9, r6
+ ldr r1, =0x02020630
+ mov r12, r1
+ movs r2, 0x8
+ add r2, r12
+ mov r10, r2
+_08140E8C:
+ ldr r0, =0x0203ab88
+ ldr r5, [r0]
+ adds r0, r4, 0
+ adds r0, 0x29
+ adds r6, r5, 0
+ adds r6, 0x3C
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r12
+ adds r3, r0, r1
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r10
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, =0x000003ff
+ mov r8, r2
+ mov r0, r8
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08140E8C
+ ldr r0, =0x03005e00
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0x10]
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bhi _08140F3A
+ ldr r2, =gUnknown_085B6154
+ movs r0, 0x10
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, [r5, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08140F3A
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, 0x29
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r3, r0, r1
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r2]
+ adds r1, r2
+ mov r2, r8
+ ands r1, r2
+ ldrh r2, [r3, 0x4]
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08140F3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140D6C
+
+ thumb_func_start sub_8140F6C
+sub_8140F6C: @ 8140F6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80EECA4
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strh r0, [r1, 0x28]
+ ldrb r2, [r1, 0x19]
+ cmp r2, 0x1
+ bne _08140F90
+ adds r0, r1, 0
+ adds r0, 0x23
+ strb r2, [r0]
+ b _08140F96
+ .pool
+_08140F90:
+ adds r1, 0x23
+ movs r0, 0
+ strb r0, [r1]
+_08140F96:
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x21
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x20
+ strh r1, [r0, 0xA]
+ ldr r1, =sub_81410FC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140F6C
+
+ thumb_func_start sub_8140FC4
+sub_8140FC4: @ 8140FC4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =0x0203ab88
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r2, 0x1B
+ adds r2, r1
+ ldr r3, =0x03005e00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r3
+ ldrh r0, [r5, 0x10]
+ strb r0, [r2]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, 0x1B
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8142758
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, 0x1B
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_81436D0
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x19]
+ ldrh r0, [r5, 0x22]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08141024
+ movs r0, 0
+ strh r0, [r5, 0x22]
+_08141024:
+ ldrh r0, [r5, 0x22]
+ bl sub_8143514
+ ldr r0, =sub_8140F6C
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8140FC4
+
+ thumb_func_start sub_8141040
+sub_8141040: @ 8141040
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8140D6C
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ beq _08141076
+ cmp r0, 0x1E
+ bgt _0814106C
+ cmp r0, 0
+ beq _08141072
+ b _0814108A
+ .pool
+_0814106C:
+ cmp r0, 0x3B
+ beq _08141084
+ b _0814108A
+_08141072:
+ ldrb r0, [r4, 0x10]
+ b _08141078
+_08141076:
+ movs r0, 0
+_08141078:
+ bl sub_81409B8
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0814109A
+_08141084:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _0814109A
+_0814108A:
+ ldr r0, =0x03005e00
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0814109A:
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081410F2
+ ldr r0, =0x0203ab88
+ ldr r3, [r0]
+ ldr r2, =gUnknown_085B6154
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, [r3, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _081410E8
+ movs r0, 0x16
+ bl audio_play
+ b _081410F2
+ .pool
+_081410E8:
+ movs r0, 0x5F
+ bl m4aSongNumStart
+ ldr r0, =sub_8140FC4
+ str r0, [r4]
+_081410F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141040
+
+ thumb_func_start sub_81410FC
+sub_81410FC: @ 81410FC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005e00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08141168
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08141128
+ ldr r1, =0x02021bbc
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+_08141128:
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x4
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x68
+ bne _08141180
+ ldr r2, =0x02020630
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =DummyObjectCallback
+ str r1, [r0]
+ b _08141180
+ .pool
+_08141168:
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8142E70
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8143038
+ ldr r0, =sub_8141344
+ str r0, [r4]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_08141180:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81410FC
+
+ thumb_func_start sub_814118C
+sub_814118C: @ 814118C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =0x0203ab88
+ ldr r3, [r0]
+ ldrb r2, [r3, 0x2]
+ adds r5, r0, 0
+ cmp r2, 0x2
+ bgt _081411AC
+ cmp r2, 0x1
+ bge _081411B2
+ b _08141280
+ .pool
+_081411AC:
+ cmp r2, 0x3
+ beq _08141214
+ b _08141280
+_081411B2:
+ ldr r0, =0x03005cf8
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _081411E4
+ cmp r4, 0xB
+ bls _081411CC
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08141296
+_081411CC:
+ ldr r0, =gUnknown_085B6348
+ ldrb r1, [r3, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _0814133A
+ .pool
+_081411E4:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08141200
+ ldr r0, =gUnknown_085B6348
+ ldrb r1, [r3, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _0814133A
+ .pool
+_08141200:
+ ldr r0, =gUnknown_085B6348
+ ldrb r1, [r3, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _0814133A
+ .pool
+_08141214:
+ ldr r0, =0x03005cf8
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bhi _08141248
+ cmp r4, 0x5
+ bls _0814122E
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08141296
+_0814122E:
+ ldr r0, =gUnknown_085B6348
+ ldrb r1, [r3, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _0814133A
+ .pool
+_08141248:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08141268
+ cmp r4, 0x6
+ bls _08141268
+ ldr r0, =gUnknown_085B6348
+ ldrb r1, [r3, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 2
+ b _0814133A
+ .pool
+_08141268:
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsrs r0, 1
+ b _0814133A
+ .pool
+_08141280:
+ ldr r0, =0x03005cf8
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _081412B8
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081412A0
+_08141296:
+ movs r0, 0x1
+ b _0814133A
+ .pool
+_081412A0:
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsrs r0, 1
+ b _0814133A
+ .pool
+_081412B8:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081412F0
+ cmp r4, 0xC
+ bls _081412DC
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsrs r0, 1
+ b _0814133A
+ .pool
+_081412DC:
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ b _0814133A
+ .pool
+_081412F0:
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08141328
+ cmp r4, 0xC
+ bls _08141314
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ b _0814133A
+ .pool
+_08141314:
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ b _0814133A
+ .pool
+_08141328:
+ ldr r1, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 25
+ lsrs r0, 24
+_0814133A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_814118C
+
+ thumb_func_start sub_8141344
+sub_8141344: @ 8141344
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r4, 0
+ ldr r1, =gUnknown_085B6422
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, =0x0203ab88
+ ldr r0, [r3]
+ ldr r2, =0x03005e00
+ mov r5, r10
+ lsls r1, r5, 2
+ add r1, r10
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0x14]
+ adds r0, 0x7C
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r2, r0, 0
+ adds r2, 0x7F
+ strb r4, [r2]
+ subs r2, 0x1
+ strb r4, [r2]
+ adds r0, 0x7D
+ strb r4, [r0]
+ ldrh r0, [r1, 0x18]
+ adds r1, r7, 0
+ bl sub_814118C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r7, 0
+ bl __modsi3
+ lsrs r4, 25
+ subs r0, r4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x03005cf8
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r5, 0x1
+ cmp r0, 0xC
+ bgt _081413C8
+ movs r5, 0
+_081413C8:
+ cmp r6, 0x4F
+ bhi _081413E0
+ lsls r0, r5, 25
+ b _081413EA
+ .pool
+_081413E0:
+ lsls r1, r5, 24
+ asrs r1, 24
+ movs r0, 0x1
+ subs r0, r1
+ lsls r0, 25
+_081413EA:
+ lsrs r5, r0, 24
+ ldr r0, =0x0203ab88
+ ldr r6, [r0]
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ ldr r1, =gUnknown_085B6348
+ adds r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ ldrh r0, [r0, 0x1A]
+ adds r4, r0
+ adds r0, r6, 0
+ adds r0, 0x80
+ strh r4, [r0]
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _0814141C
+ ldr r1, =0x47800000
+ bl __addsf3
+_0814141C:
+ ldr r1, =0x40a00000
+ bl __divsf3
+ bl __fixunssfsi
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ movs r2, 0x82
+ adds r2, r6
+ mov r8, r2
+ strh r0, [r2]
+ adds r0, r6, 0
+ adds r0, 0x84
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ movs r0, 0x88
+ adds r0, r6
+ mov r9, r0
+ movs r0, 0x1
+ ands r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ adds r0, r1
+ lsls r0, 1
+ add r0, sp
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08141468
+ ldr r1, =0x47800000
+ bl __addsf3
+_08141468:
+ mov r2, r9
+ str r0, [r2]
+ adds r7, r6, 0
+ adds r7, 0x8C
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ ldr r5, =gUnknown_085B6348
+ adds r0, r5
+ movs r1, 0x18
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r5, r0, 0
+ cmp r4, 0
+ bge _08141492
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r5, r0, 0
+_08141492:
+ str r5, [r7]
+ adds r7, r6, 0
+ adds r7, 0x90
+ ldr r1, =0x3f000000
+ adds r0, r5, 0
+ bl __mulsf3
+ adds r1, r5, 0
+ bl __subsf3
+ adds r5, r0, 0
+ mov r2, r8
+ movs r0, 0
+ ldrsh r4, [r2, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081414C2
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_081414C2:
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl __divsf3
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x94
+ ldr r0, =0x42880000
+ str r0, [r1]
+ adds r1, 0x8
+ ldr r0, =0x00000000
+ str r0, [r1]
+ adds r5, r6, 0
+ adds r5, 0x98
+ mov r1, r8
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081414F8
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_081414F8:
+ ldr r0, =0x41000000
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r5]
+ adds r1, r6, 0
+ adds r1, 0xA0
+ ldr r0, =0x42100000
+ str r0, [r1]
+ ldr r1, =0x03005e00
+ mov r5, r10
+ lsls r0, r5, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_814155C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141344
+
+ thumb_func_start sub_814155C
+sub_814155C: @ 814155C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =0x0203ab88
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x3]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r3, 0x3]
+ ldr r3, [r4]
+ adds r2, r3, 0
+ adds r2, 0x7C
+ adds r1, r3, 0
+ adds r1, 0x3C
+ ldrb r2, [r2]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, =0x02020630
+ adds r1, r2
+ str r1, [r3, 0x38]
+ ldr r2, =sub_81446AC
+ str r2, [r1, 0x1C]
+ ldr r1, =0x03005e00
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r1, [r4, 0x14]
+ adds r1, 0x1
+ strh r1, [r4, 0x14]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ movs r0, 0x6
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_814372C
+ movs r0, 0x5C
+ bl m4aSongNumStart
+ ldr r0, =sub_81415D4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_814155C
+
+ thumb_func_start sub_81415D4
+sub_81415D4: @ 81415D4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, =0x0203ab88
+ ldr r3, [r6]
+ adds r0, r3, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081416C6
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08141614
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081416C6
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3, 0x3]
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ b _081416C6
+ .pool
+_08141614:
+ ldr r2, =0x03005e00
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r5, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _08141660
+ adds r0, r3, 0
+ adds r0, 0x7E
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_81420D0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r2, 0x1B
+ adds r2, r1
+ ldrb r1, [r2]
+ bl sub_81421E8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ cmp r0, 0x1
+ bne _08141660
+ ldr r0, [r6]
+ adds r0, 0xB8
+ movs r1, 0x80
+ lsls r1, 5
+ bl sub_8151A48
+_08141660:
+ ldr r0, =0x03005e00
+ adds r1, r7, r4
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bgt _08141690
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08141680
+ movs r0, 0x3C
+ strh r0, [r4, 0xA]
+_08141680:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _081416C6
+ .pool
+_08141690:
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, 0x1B
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_81424FC
+ ldrh r1, [r4, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8142E70
+ ldrb r1, [r4, 0x14]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8143038
+ movs r0, 0x20
+ strh r0, [r4, 0xA]
+ ldr r0, =sub_81416D4
+ str r0, [r4]
+_081416C6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81415D4
+
+ thumb_func_start sub_81416D4
+sub_81416D4: @ 81416D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08141740
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08141700
+ ldr r1, =0x02021bbc
+ ldrh r0, [r1]
+ subs r0, 0x2
+ strh r0, [r1]
+_08141700:
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x4
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x68
+ bne _08141768
+ ldr r2, =0x02020630
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_814390C
+ str r1, [r0]
+ b _08141768
+ .pool
+_08141740:
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8143150
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08141756
+ movs r0, 0x79
+ b _08141758
+_08141756:
+ movs r0, 0x3D
+_08141758:
+ strh r0, [r4, 0xA]
+ ldr r0, =0x03005e00
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_8141778
+ str r0, [r1]
+_08141768:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81416D4
+
+ thumb_func_start sub_8141778
+sub_8141778: @ 8141778
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081417E8
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _081417A2
+ adds r0, 0xF
+_081417A2:
+ asrs r0, 4
+ lsls r0, 4
+ subs r0, r1, r0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _081417CC
+ cmp r0, 0x8
+ bne _081417F4
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8142E70
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8143038
+ b _081417F4
+ .pool
+_081417CC:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8142E70
+ ldrb r1, [r4, 0x14]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8143038
+ b _081417F4
+_081417E8:
+ ldr r1, =sub_814189C
+ adds r0, r2, 0
+ movs r2, 0x1E
+ movs r3, 0
+ bl sub_8141F7C
+_081417F4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141778
+
+ thumb_func_start sub_8141800
+sub_8141800: @ 8141800
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08141864
+ cmp r0, 0
+ blt _08141864
+ cmp r0, 0x2
+ bgt _08141864
+ bl task_is_not_running_overworld_fanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _08141888
+ movs r0, 0x1D
+ bl sub_80847F8
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bcs _08141848
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1D
+ bl sav12_xor_set
+_08141848:
+ ldr r1, =sub_8141A18
+ ldr r2, =0x0000ffff
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8141F7C
+ b _08141888
+ .pool
+_08141864:
+ bl mplay_has_finished_maybe
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _08141888
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1E]
+ ldr r1, =sub_8141AC0
+ ldr r2, =0x0000ffff
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8141F7C
+_08141888:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141800
+
+ thumb_func_start sub_814189C
+sub_814189C: @ 814189C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ cmp r1, 0
+ beq _08141928
+ cmp r1, 0
+ blt _08141928
+ cmp r1, 0x2
+ bgt _08141928
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xC
+ bne _081418EC
+ ldr r0, =0x00000185
+ bl fanfare_play
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5BD7
+ b _08141902
+ .pool
+_081418EC:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl fanfare_play
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5BCB
+_08141902:
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _08141958
+ .pool
+_08141928:
+ movs r0, 0x20
+ bl m4aSongNumStart
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5BE0
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08141958:
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ ldr r1, =sub_8141800
+ str r1, [r0]
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_814189C
+
+ thumb_func_start sub_8141984
+sub_8141984: @ 8141984
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x16
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _081419AC
+ cmp r5, 0x3
+ beq _081419DC
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ b _081419E4
+ .pool
+_081419AC:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x15
+ bl m4aSongNumStart
+ ldrh r0, [r4, 0x22]
+ bl sub_8143514
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ ldr r0, =0x0000270e
+ cmp r1, r0
+ ble _081419D0
+ strh r5, [r4, 0xA]
+ b _081419E6
+ .pool
+_081419D0:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ b _081419E4
+_081419DC:
+ movs r0, 0x15
+ bl m4aSongNumStop
+ movs r0, 0
+_081419E4:
+ strh r0, [r4, 0x16]
+_081419E6:
+ ldr r0, =0x03005e00
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08141A04
+ ldr r1, =sub_8141AC0
+ ldr r2, =0x0000ffff
+ adds r0, r6, 0
+ movs r3, 0x3
+ bl sub_8141F7C
+_08141A04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141984
+
+ thumb_func_start sub_8141A18
+sub_8141A18: @ 8141A18
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =0x02021cc4
+ ldr r1, =0x0203ab88
+ mov r9, r1
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x19]
+ ldr r1, =0x03005e00
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r3, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalString
+ ldr r2, =0x02021fc4
+ mov r8, r2
+ ldr r1, =gUnknown_082A5BEF
+ mov r0, r8
+ bl ExpandStringRefs
+ ldr r5, =0x0203ab8c
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r5]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r6, 0
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ mov r2, r8
+ movs r3, 0
+ bl Print
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r1, [r0, 0x19]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ strh r0, [r4, 0xA]
+ strh r6, [r4, 0x16]
+ ldr r0, =sub_8141984
+ str r0, [r4]
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141A18
+
+ thumb_func_start sub_8141AC0
+sub_8141AC0: @ 8141AC0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =0x0203ab88
+ ldr r0, [r5]
+ adds r0, 0xB8
+ ldr r1, =0x0000ffff
+ bl sub_8151A9C
+ ldr r6, [r5]
+ movs r0, 0xB8
+ lsls r0, 1
+ adds r3, r6, r0
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ movs r0, 0xB2
+ lsls r0, 1
+ adds r3, r6, r0
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ movs r0, 0xAC
+ lsls r0, 1
+ adds r2, r6, r0
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldr r6, =0x02020630
+ ldr r2, [r5]
+ ldr r5, =gUnknown_085B6154
+ ldr r0, =0x03005e00
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r2, r0
+ adds r2, 0x43
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, =sub_8141B58
+ str r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141AC0
+
+ thumb_func_start sub_8141B58
+sub_8141B58: @ 8141B58
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, =0x03005e00
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x10]
+ ldr r4, =0x0203ab88
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, 0x1B
+ adds r1, r0
+ strb r2, [r1]
+ movs r0, 0
+ bl sub_81424FC
+ ldr r3, =0x02020630
+ ldr r0, [r4]
+ adds r0, 0x6C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r7, r3, 0
+ movs r0, 0x8
+ adds r0, r7
+ mov r12, r0
+ ldr r1, =0xfffffc00
+ mov r8, r1
+_08141BB0:
+ ldr r0, =0x0203ab88
+ ldr r4, [r0]
+ adds r0, r4, r5
+ adds r0, 0x65
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r7
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r12
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08141BB0
+ ldr r0, =0x03005e00
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ ldrb r4, [r4, 0x19]
+ cmp r0, r4
+ blt _08141CBC
+ movs r1, 0x14
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x6
+ bne _08141C58
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5C21
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =dp01t_12_3_battle_menu
+ b _08141C8E
+ .pool
+_08141C58:
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ ldr r0, =0x0000270f
+ cmp r1, r0
+ bne _08141CB0
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5C61
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =sub_8140914
+_08141C8E:
+ ldr r2, =0x0000ffff
+ adds r0, r6, 0
+ movs r3, 0x3
+ bl sub_8141F7C
+ b _08141CF2
+ .pool
+_08141CB0:
+ ldr r0, =sub_8140914
+ str r0, [r2]
+ b _08141CF2
+ .pool
+_08141CBC:
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5C04
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =sub_8140994
+ adds r0, r6, 0
+ movs r2, 0x3C
+ movs r3, 0x3
+ bl sub_8141F7C
+_08141CF2:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141B58
+
+ thumb_func_start dp01t_12_3_battle_menu
+dp01t_12_3_battle_menu: @ 8141D0C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x14]
+ adds r0, r5, 0
+ bl sub_8141FF4
+ bl sub_8142070
+ bl sub_8143A40
+ movs r0, 0
+ bl sub_81424FC
+ movs r0, 0x6
+ bl sub_814372C
+ ldr r7, =0x02020630
+ ldr r3, =0x0203ab88
+ movs r6, 0x5
+ negs r6, r6
+_08141D44:
+ ldr r0, [r3]
+ adds r0, r4
+ adds r0, 0x43
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08141D44
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ ldr r0, =0x0000270f
+ cmp r1, r0
+ bne _08141DD4
+ ldr r4, =0x0203ab8c
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_082A5C61
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =sub_8140914
+ ldr r2, =0x0000ffff
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8141F7C
+ b _08141DD8
+ .pool
+_08141DD4:
+ ldr r0, =sub_8140914
+ str r0, [r2]
+_08141DD8:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_12_3_battle_menu
+
+ thumb_func_start sub_8141DE4
+sub_8141DE4: @ 8141DE4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ adds r0, 0xB8
+ ldr r1, =0x0000ffff
+ bl sub_8151A9C
+ ldr r0, [r4]
+ adds r0, 0xB8
+ bl sub_8151678
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x22]
+ bl SetCoins
+ bl GetCoins
+ ldr r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bcs _08141E38
+ ldr r1, =0x020375e0
+ movs r0, 0x1
+ b _08141E3C
+ .pool
+_08141E38:
+ ldr r1, =0x020375e0
+ movs r0, 0
+_08141E3C:
+ strh r0, [r1]
+ bl GetCoins
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80EDD78
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_80A27B0
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8141E7C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141DE4
+
+ thumb_func_start sub_8141E7C
+sub_8141E7C: @ 8141E7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08141EDE
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, =0x02021bbc
+ ldr r0, =0x02021bbe
+ strh r4, [r0]
+ strh r4, [r1]
+ bl sub_8121DA0
+ bl sub_8121E10
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ bl ResetObjectPaletteAllocator
+ bl sub_80A1A74
+ bl ResetAllObjectData
+ bl sub_8140418
+ ldr r1, =0x03005dac
+ ldr r0, =sub_80AF168
+ str r0, [r1]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08141EDE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141E7C
+
+ thumb_func_start sub_8141EF8
+sub_8141EF8: @ 8141EF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =0x0203ab88
+ ldr r3, [r1]
+ adds r0, r3, 0
+ adds r0, 0xA8
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _08141F1E
+ ldr r0, =0x030022c0
+ adds r2, r3, 0
+ adds r2, 0xAA
+ ldrh r1, [r0, 0x2E]
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08141F52
+_08141F1E:
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0xAC
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0xAA
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08141F40
+ movs r0, 0x5
+ bl audio_play
+_08141F40:
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0xAC
+ movs r1, 0
+ str r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+_08141F52:
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0xA8
+ ldrh r2, [r1]
+ ldr r0, =0x0000ffff
+ cmp r2, r0
+ beq _08141F64
+ subs r0, r2, 0x1
+ strh r0, [r1]
+_08141F64:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141EF8
+
+ thumb_func_start sub_8141F7C
+sub_8141F7C: @ 8141F7C
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r7, r3, 16
+ ldr r2, =0x0203ab88
+ ldr r0, [r2]
+ mov r12, r0
+ mov r3, r12
+ adds r3, 0xB4
+ ldr r1, =0x03005e00
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r3, r1, 0
+ cmp r5, 0
+ bne _08141FAC
+ adds r5, r0, 0
+_08141FAC:
+ mov r0, r12
+ adds r0, 0xAC
+ str r5, [r0]
+ subs r0, 0x4
+ strh r4, [r0]
+ ldr r0, =0x0000ffff
+ cmp r4, r0
+ bne _08141FD8
+ cmp r7, 0
+ bne _08141FD8
+ mov r1, r12
+ adds r1, 0xAA
+ ldrh r0, [r1]
+ orrs r4, r0
+ strh r4, [r1]
+ b _08141FDE
+ .pool
+_08141FD8:
+ ldr r0, [r2]
+ adds r0, 0xAA
+ strh r7, [r0]
+_08141FDE:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, =sub_8141EF8
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141F7C
+
+ thumb_func_start sub_8141FF4
+sub_8141FF4: @ 8141FF4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r3, =0x0203ab88
+ ldr r0, [r3]
+ strb r4, [r0]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r6, =0x03005e00
+ adds r2, r3, 0
+ movs r1, 0
+_08142036:
+ ldr r0, [r2]
+ adds r0, 0x1B
+ adds r0, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08142036
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1A]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1A]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8141FF4
+
+ thumb_func_start sub_8142070
+sub_8142070: @ 8142070
+ push {lr}
+ ldr r2, =0x0203ab88
+ ldr r1, [r2]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r1, 0
+ movs r3, 0
+_0814207E:
+ ldr r0, [r2]
+ adds r0, 0xC
+ adds r0, r1
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bls _0814207E
+ movs r1, 0
+ ldr r3, =0x0203ab88
+ movs r2, 0
+_08142096:
+ ldr r0, [r3]
+ adds r0, 0x12
+ adds r0, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _08142096
+ movs r1, 0
+ ldr r3, =0x0203ab88
+ movs r2, 0
+_081420AE:
+ ldr r0, [r3]
+ adds r0, 0x16
+ adds r0, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _081420AE
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8143038
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142070
+
+ thumb_func_start sub_81420D0
+sub_81420D0: @ 81420D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r1, sp
+ ldr r0, =gUnknown_085B642C
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r2, sp, 0x10
+ adds r1, r2, 0
+ ldr r0, =gUnknown_085B643C
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ mov r8, r2
+ cmp r5, 0xB
+ bls _0814210C
+ movs r0, 0
+ b _081421C8
+ .pool
+_0814210C:
+ ldr r6, =0x0203ab88
+ ldr r3, [r6]
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r7, 0x14
+ ldrsh r1, [r0, r7]
+ adds r3, r1
+ ldr r4, =gUnknown_085B62E4
+ lsls r5, 3
+ adds r2, r5, r4
+ ldrb r1, [r2, 0x2]
+ strb r1, [r3, 0xB]
+ ldrb r1, [r2, 0x2]
+ strh r1, [r0, 0x20]
+ ldr r2, [r6]
+ adds r0, r4, 0x4
+ adds r0, r5, r0
+ ldr r1, [r2, 0x8]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2, 0x8]
+ movs r3, 0
+ mov r9, r4
+ mov r12, r5
+ adds r5, r0, 0
+_08142144:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r4, r1, r0
+ ldr r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ beq _0814215E
+ ldr r1, [r6]
+ adds r1, 0x12
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0814215E:
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x12
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _08142174
+ ldr r0, [r2, 0x8]
+ ldr r1, [r4]
+ orrs r0, r1
+ str r0, [r2, 0x8]
+_08142174:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _08142144
+ movs r6, 0
+ ldr r0, =gUnknown_085B62E8
+ add r0, r12
+ ldr r7, [r0]
+ ldr r4, =0x0203ab88
+ mov r5, r8
+_0814218A:
+ lsls r0, r6, 2
+ adds r2, r5, r0
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ beq _081421A2
+ ldr r1, [r4]
+ adds r1, 0x16
+ adds r1, r6
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081421A2:
+ ldr r3, [r4]
+ adds r0, r3, 0
+ adds r0, 0x16
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _081421B8
+ ldr r0, [r3, 0x8]
+ ldr r1, [r2]
+ orrs r0, r1
+ str r0, [r3, 0x8]
+_081421B8:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _0814218A
+ mov r0, r12
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+_081421C8:
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81420D0
+
+ thumb_func_start sub_81421E8
+sub_81421E8: @ 81421E8
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsrs r3, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x12
+ bhi _0814227C
+ cmp r2, 0xF
+ bhi _08142278
+ lsls r0, r2, 2
+ ldr r1, =_08142210
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08142210:
+ .4byte _08142250
+ .4byte _08142254
+ .4byte _08142254
+ .4byte _08142254
+ .4byte _08142254
+ .4byte _08142268
+ .4byte _08142278
+ .4byte _08142278
+ .4byte _08142278
+ .4byte _08142278
+ .4byte _08142268
+ .4byte _08142278
+ .4byte _08142278
+ .4byte _08142278
+ .4byte _08142278
+ .4byte _08142268
+_08142250:
+ movs r0, 0x3
+ b _0814227E
+_08142254:
+ adds r0, r2, 0x5
+ cmp r3, r0
+ beq _08142274
+ adds r0, 0x5
+ cmp r3, r0
+ beq _08142274
+ adds r0, 0x5
+ cmp r3, r0
+ bne _0814227C
+ b _08142274
+_08142268:
+ adds r0, r2, 0x1
+ cmp r3, r0
+ blt _0814227C
+ adds r0, r2, 0x4
+ cmp r3, r0
+ bgt _0814227C
+_08142274:
+ movs r0, 0x1
+ b _0814227E
+_08142278:
+ cmp r3, r2
+ beq _08142274
+_0814227C:
+ movs r0, 0
+_0814227E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81421E8
+
+ thumb_func_start sub_8142284
+sub_8142284: @ 8142284
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ str r0, [sp, 0x18]
+ cmp r7, 0xA
+ beq _081422AA
+ cmp r7, 0xA
+ bgt _081422A6
+ cmp r7, 0x5
+ beq _081422AA
+ b _0814230C
+_081422A6:
+ cmp r7, 0xF
+ bne _0814230C
+_081422AA:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r7, 0x5
+ ldr r1, =0x0203ab88
+ mov r12, r1
+ cmp r4, r2
+ bge _081422E8
+ ldr r0, [r1]
+ ldr r3, =gUnknown_085B6154
+ ldr r5, [r0, 0x8]
+ adds r6, r3, 0
+ adds r6, 0x8
+_081422C4:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r1, r0, 2
+ adds r0, r1, r6
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _081422DE
+ adds r0, r1, r3
+ ldrh r0, [r0, 0x10]
+ ldr r1, [sp, 0x18]
+ orrs r1, r0
+ str r1, [sp, 0x18]
+_081422DE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r2
+ blt _081422C4
+_081422E8:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r0, 0xB8
+ ldr r1, =0x0000dfff
+ ldr r3, [sp, 0x18]
+ ands r3, r1
+ str r3, [sp, 0x18]
+ adds r1, r3, 0
+ bl sub_8151A48
+ b _081424E2
+ .pool
+_0814230C:
+ mov r0, sp
+ ldr r1, =gUnknown_085B63F0
+ ldm r1!, {r2,r4,r5}
+ stm r0!, {r2,r4,r5}
+ ldm r1!, {r3-r5}
+ stm r0!, {r3-r5}
+ subs r0, r7, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ mov r9, r1
+ cmp r0, 0x3
+ bhi _0814232A
+ movs r2, 0x3
+ mov r9, r2
+_0814232A:
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r3, =0xffff0000
+ adds r0, r3
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08142390
+ cmp r0, 0x2
+ bgt _08142368
+ cmp r0, 0x1
+ beq _0814237C
+ ldr r4, =0x0203ab88
+ mov r12, r4
+ b _081423D4
+ .pool
+_08142368:
+ cmp r0, 0x3
+ beq _081423A4
+ cmp r0, 0x4
+ beq _081423B8
+ ldr r5, =0x0203ab88
+ mov r12, r5
+ b _081423D4
+ .pool
+_0814237C:
+ ldr r3, =0x02020630
+ ldr r2, =0x0203ab88
+ ldr r0, [r2]
+ adds r0, 0x43
+ b _081423C0
+ .pool
+_08142390:
+ ldr r3, =0x02020630
+ ldr r2, =0x0203ab88
+ ldr r0, [r2]
+ adds r0, 0x44
+ b _081423C0
+ .pool
+_081423A4:
+ ldr r3, =0x02020630
+ ldr r2, =0x0203ab88
+ ldr r0, [r2]
+ adds r0, 0x45
+ b _081423C0
+ .pool
+_081423B8:
+ ldr r3, =0x02020630
+ ldr r2, =0x0203ab88
+ ldr r0, [r2]
+ adds r0, 0x46
+_081423C0:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ mov r8, r0
+ mov r12, r2
+_081423D4:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _08142430
+ mov r1, r12
+ ldr r4, [r1]
+ ldr r1, =gUnknown_085B6154
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ str r2, [sp, 0x1C]
+ cmp r1, 0
+ bne _081424E2
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x1
+ lsls r1, 3
+ mov r3, sp
+ adds r2, r3, r1
+ ldrh r1, [r2, 0x2]
+ add r1, r8
+ strh r1, [r2, 0x2]
+ adds r1, r4, 0
+ adds r1, 0xB8
+ lsls r0, 3
+ subs r0, 0x8
+ adds r2, r3, r0
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_815168C
+ b _081424C4
+ .pool
+_08142430:
+ movs r4, 0
+ lsls r5, r7, 2
+ str r5, [sp, 0x1C]
+ ldr r0, =gUnknown_085B6154
+ mov r10, r0
+_0814243A:
+ lsls r0, r4, 2
+ adds r0, r4
+ adds r0, r7, r0
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r3, r0, 24
+ mov r1, r12
+ ldr r5, [r1]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r6, r0, 2
+ mov r0, r10
+ adds r0, 0x8
+ adds r0, r6, r0
+ ldr r1, [r5, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081424B0
+ adds r0, r3, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x1
+ lsls r1, 3
+ mov r3, sp
+ adds r2, r3, r1
+ ldrh r1, [r2, 0x2]
+ add r1, r8
+ strh r1, [r2, 0x2]
+ adds r3, r5, 0
+ adds r3, 0xB8
+ adds r1, r4, 0
+ adds r1, 0xD
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, 3
+ subs r0, 0x8
+ mov r5, sp
+ adds r2, r5, r0
+ adds r0, r3, 0
+ bl sub_815168C
+ mov r0, r9
+ cmp r0, 0x3
+ bne _081424A2
+ mov r1, r10
+ adds r0, r6, r1
+ ldrh r0, [r0, 0x10]
+ str r0, [sp, 0x18]
+_081424A2:
+ mov r0, r9
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r2, =0x0203ab88
+ mov r12, r2
+_081424B0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0814243A
+ mov r3, r9
+ cmp r3, 0x2
+ beq _081424C4
+ movs r4, 0
+ str r4, [sp, 0x18]
+_081424C4:
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0xB8
+ ldr r2, =gUnknown_085B6154
+ ldr r5, [sp, 0x1C]
+ adds r1, r5, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x10]
+ ldr r2, [sp, 0x18]
+ orrs r2, r1
+ str r2, [sp, 0x18]
+ adds r1, r2, 0
+ bl sub_8151A48
+_081424E2:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142284
+
+ thumb_func_start sub_81424FC
+sub_81424FC: @ 81424FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =0x0203ab88
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0x2A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8142E70
+ ldr r1, [r4]
+ ldr r2, =0x0000117c
+ adds r0, r1, r2
+ ldr r2, =0x0000397c
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0x10
+ str r2, [sp]
+ movs r2, 0xD
+ str r2, [sp, 0x4]
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8152058
+ cmp r5, 0xF
+ bhi _081425FC
+ lsls r0, r5, 2
+ ldr r1, =_08142558
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08142558:
+ .4byte _08142738
+ .4byte _08142598
+ .4byte _08142598
+ .4byte _08142598
+ .4byte _08142598
+ .4byte _081425CC
+ .4byte _081425FC
+ .4byte _081425FC
+ .4byte _081425FC
+ .4byte _081425FC
+ .4byte _081425CC
+ .4byte _081425FC
+ .4byte _081425FC
+ .4byte _081425FC
+ .4byte _081425FC
+ .4byte _081425CC
+_08142598:
+ movs r0, 0x4
+ str r0, [sp, 0x18]
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bhi _08142604
+ add r4, sp, 0x10
+ adds r3, r1, 0
+_081425AE:
+ ldrb r2, [r3]
+ adds r2, r4
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r5, r0
+ strb r0, [r2]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _081425AE
+ b _08142604
+_081425CC:
+ movs r2, 0x5
+ str r2, [sp, 0x18]
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08142604
+ add r3, sp, 0x10
+ adds r2, r1, 0
+_081425E2:
+ ldrb r1, [r2]
+ adds r1, r3
+ ldrb r0, [r2]
+ adds r0, r5, r0
+ strb r0, [r1]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _081425E2
+ b _08142604
+_081425FC:
+ movs r2, 0x1
+ str r2, [sp, 0x18]
+ add r0, sp, 0x10
+ strb r5, [r0]
+_08142604:
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _08142616
+ b _08142738
+_08142616:
+ mov r2, sp
+ adds r2, 0xE
+ str r2, [sp, 0x1C]
+ add r0, sp, 0x10
+ mov r10, r0
+ add r1, sp, 0x8
+ mov r9, r1
+ subs r2, 0x4
+ str r2, [sp, 0x20]
+_08142628:
+ mov r1, r9
+ ldrb r0, [r1]
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, =gUnknown_085B6154
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ mov r2, r9
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gUnknown_085B6154
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ ldr r2, [sp, 0x20]
+ strh r0, [r2]
+ mov r7, sp
+ adds r7, 0x9
+ movs r0, 0
+ strb r0, [r7]
+ ldrb r0, [r7]
+ cmp r0, 0x2
+ bhi _08142726
+ add r6, sp, 0xC
+ mov r8, r2
+ ldr r0, [sp, 0x1C]
+ mov r12, r0
+ ldr r1, =0x0203ab88
+ str r1, [sp, 0x28]
+_08142672:
+ mov r2, r9
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gUnknown_085B6154
+ adds r1, r0
+ str r7, [sp, 0x24]
+ ldrb r0, [r7]
+ ldrb r1, [r1, 0x4]
+ adds r0, r1
+ lsls r0, 5
+ strh r0, [r6]
+ ldr r1, [sp, 0x28]
+ ldr r4, [r1]
+ mov r2, r8
+ ldrh r0, [r2]
+ ldrh r2, [r6]
+ adds r2, r0
+ lsls r2, 1
+ ldr r0, =0x0000117c
+ adds r5, r4, r0
+ adds r2, r5, r2
+ mov r1, r12
+ ldrb r0, [r1]
+ ldrb r1, [r7]
+ adds r1, r0
+ ldr r0, =0x0000397c
+ adds r4, r0
+ ldr r3, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r3
+ movs r1, 0xD0
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ mov r2, r8
+ ldrh r0, [r2]
+ ldrh r2, [r6]
+ adds r2, r0
+ adds r2, 0x1
+ lsls r2, 1
+ adds r2, r5, r2
+ mov r1, r12
+ ldrb r0, [r1]
+ ldrb r1, [r7]
+ adds r1, r0
+ ldr r3, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r3
+ movs r1, 0xD1
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ mov r2, r8
+ ldrh r1, [r2]
+ ldrh r0, [r6]
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 1
+ adds r5, r0
+ mov r1, r12
+ ldrb r0, [r1]
+ ldrb r1, [r7]
+ adds r1, r0
+ ldr r2, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0xD2
+ lsls r2, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r5]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, [sp, 0x24]
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bls _08142672
+_08142726:
+ mov r2, r9
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcs _08142738
+ b _08142628
+_08142738:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81424FC
+
+ thumb_func_start sub_8142758
+sub_8142758: @ 8142758
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_085B6448
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ cmp r4, 0x13
+ bls _08142770
+ movs r4, 0
+_08142770:
+ ldr r3, =gUnknown_085B6154
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ beq _081427C4
+ cmp r0, 0x4
+ bgt _08142798
+ cmp r0, 0x3
+ beq _0814279E
+ b _08142808
+ .pool
+_08142798:
+ cmp r0, 0xC
+ beq _081427E8
+ b _08142808
+_0814279E:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __udivsi3
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x16
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bhi _08142808
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _081427DC
+ .pool
+_081427C4:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x12
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08142808
+ ldrb r0, [r1]
+ adds r0, 0x2
+_081427DC:
+ add r0, sp
+ ldrb r0, [r0]
+ b _0814280A
+ .pool
+_081427E8:
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08142808
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ b _0814280A
+ .pool
+_08142808:
+ movs r0, 0
+_0814280A:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8142758
+
+ thumb_func_start sub_8142814
+sub_8142814: @ 8142814
+ push {r4-r6,lr}
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x20
+ bl SetGpuReg
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x22
+ bl SetGpuReg
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x24
+ bl SetGpuReg
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x32]
+ movs r0, 0x26
+ bl SetGpuReg
+ ldr r3, [r4]
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ ldr r0, =0x02021bbe
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ adds r2, 0x50
+ adds r0, r1, 0
+ muls r0, r2
+ movs r4, 0xE8
+ lsls r4, 7
+ subs r4, r0
+ movs r6, 0x2C
+ ldrsh r5, [r3, r6]
+ ldr r0, =0x02021bbc
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ adds r1, 0x74
+ adds r0, r5, 0
+ muls r0, r1
+ subs r4, r0
+ movs r5, 0x32
+ ldrsh r0, [r3, r5]
+ muls r0, r2
+ movs r5, 0xA8
+ lsls r5, 7
+ subs r5, r0
+ movs r6, 0x30
+ ldrsh r0, [r3, r6]
+ muls r0, r1
+ subs r5, r0
+ lsls r1, r4, 16
+ lsrs r1, 16
+ movs r0, 0x28
+ bl SetGpuReg
+ ldr r6, =0x0fff0000
+ ands r4, r6
+ lsrs r4, 16
+ movs r0, 0x2A
+ adds r1, r4, 0
+ bl SetGpuReg
+ lsls r1, r5, 16
+ lsrs r1, 16
+ movs r0, 0x2C
+ bl SetGpuReg
+ ands r5, r6
+ lsrs r5, 16
+ movs r0, 0x2E
+ adds r1, r5, 0
+ bl SetGpuReg
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142814
+
+ thumb_func_start sub_81428C4
+sub_81428C4: @ 81428C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r1, =gUnknown_085B6408
+ adds r0, r4, 0
+ bl sub_8121F68
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81428C4
+
+ thumb_func_start sub_81428E4
+sub_81428E4: @ 81428E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x02037fd4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08142908
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, =sub_81405CC
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08142908:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81428E4
+
+ thumb_func_start sub_8142918
+sub_8142918: @ 8142918
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_819746C
+ bl HideCoinsWindow
+ bl FreeAllWindowBuffers
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl pal_fade_maybe
+ ldr r2, =0x02037fd4
+ ldrb r1, [r2, 0x8]
+ lsls r1, 26
+ lsrs r1, 26
+ ldrb r3, [r2, 0x4]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ bl fade_and_return_progress_probably
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81428E4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142918
+
+ thumb_func_start sub_814297C
+sub_814297C: @ 814297C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl sub_819746C
+ bl HideCoinsWindow
+ bl script_env_2_disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814297C
+
+ thumb_func_start sub_81429A0
+sub_81429A0: @ 81429A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081429DE
+ ldr r1, =0x020375e0
+ movs r0, 0x1
+ strh r0, [r1]
+ bl HideCoinsWindow
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_819746C
+ bl script_env_2_disable
+ adds r0, r4, 0
+ bl DestroyTask
+_081429DE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81429A0
+
+ thumb_func_start sub_81429F0
+sub_81429F0: @ 81429F0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08142A60
+ ldr r2, =gUnknown_085B6344
+ ldr r0, =0x020375e0
+ ldrh r1, [r0]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r0, =0x02021cc4
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalString
+ ldr r4, =0x02021fc4
+ ldr r1, =gUnknown_082A5B12
+ adds r0, r4, 0
+ bl ExpandStringRefs
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973FC
+ str r5, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl Print
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =0x03005e00
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81428C4
+ str r1, [r0]
+_08142A60:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81429F0
+
+ thumb_func_start sub_8142A88
+sub_8142A88: @ 8142A88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r1, 0x22
+ ldrsh r0, [r6, r1]
+ bl PrintCoinsString
+ ldr r2, =gUnknown_085B6344
+ ldr r0, =0x020375e0
+ mov r8, r0
+ ldrh r1, [r0]
+ movs r7, 0x1
+ adds r0, r7, 0
+ ands r0, r1
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r4, [r0]
+ ldr r0, =0x02021cc4
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalString
+ movs r1, 0x22
+ ldrsh r0, [r6, r1]
+ cmp r0, r4
+ blt _08142B78
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08142B28
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08142B28
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973FC
+ ldr r2, =gUnknown_082A5B6B
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl Print
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =sub_81429F0
+ str r0, [r6]
+ b _08142BB0
+ .pool
+_08142B28:
+ ldr r4, =0x02021fc4
+ ldr r1, =gUnknown_082A5B12
+ adds r0, r4, 0
+ bl ExpandStringRefs
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973FC
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl Print
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81428C4
+ str r1, [r0]
+ b _08142BB0
+ .pool
+_08142B78:
+ ldr r5, =0x02021fc4
+ ldr r1, =gUnknown_082A5B4E
+ adds r0, r5, 0
+ bl ExpandStringRefs
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973FC
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0
+ bl Print
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =sub_81429A0
+ str r0, [r6]
+ strh r4, [r6, 0x22]
+ strh r4, [r6, 0x8]
+_08142BB0:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142A88
+
+ thumb_func_start sub_8142BC8
+sub_8142BC8: @ 8142BC8
+ push {r4,lr}
+ bl script_env_2_enable
+ bl GetCoins
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ movs r2, 0x1
+ bl ShowCoinsWindow
+ ldr r0, =sub_8142A88
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl GetCoins
+ ldr r2, =0x03005e00
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142BC8
+
+ thumb_func_start sub_8142C0C
+sub_8142C0C: @ 8142C0C
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08142C44
+ bl ResetObjectPaletteAllocator
+ ldr r0, =gUnknown_085B7384
+ bl LoadTaggedObjectPalettes
+ ldr r0, =gUnknown_085B7864
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_085B7978
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_085B7A40
+ bl LoadCompressedObjectPic
+ b _08142C5A
+ .pool
+_08142C44:
+ movs r0, 0xE
+ bl FreeObjectTilesByTag
+ movs r0, 0xD
+ bl FreeObjectTilesByTag
+ movs r0, 0xC
+ bl FreeObjectTilesByTag
+ bl ResetObjectPaletteAllocator
+_08142C5A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8142C0C
+
+ thumb_func_start sub_8142C60
+sub_8142C60: @ 8142C60
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r0, 0x4]
+ ldrb r3, [r1]
+ movs r1, 0x74
+ movs r2, 0x50
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, =0x02020630
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r6]
+ strh r0, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x1E
+ strh r0, [r6]
+ lsls r0, 16
+ ldr r1, =0x01670000
+ cmp r0, r1
+ bls _08142CBC
+ ldr r1, =0xfffffeb6
+ adds r0, r2, r1
+ strh r0, [r6]
+_08142CBC:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8142C60
+
+ thumb_func_start sub_8142CD0
+sub_8142CD0: @ 8142CD0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r4, =gUnknown_085B7488
+ ldr r0, [r4]
+ ldr r5, =0x0201c000
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ mov r6, sp
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadObjectPic
+ ldr r4, =gUnknown_085B7490
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x4]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x6]
+ mov r0, sp
+ bl LoadObjectPic
+ movs r6, 0
+ ldr r0, =0x02020630
+ mov r8, r0
+_08142D18:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 27
+ lsrs r4, r0, 24
+ movs r5, 0
+ lsls r7, r6, 2
+_08142D24:
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 3
+ ldr r0, =gUnknown_085B75B0
+ adds r0, r1, r0
+ adds r1, 0x94
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0x1E
+ bl AddObjectToFront
+ ldr r1, =0x0203ab88
+ ldr r1, [r1]
+ adds r2, r5, 0
+ adds r2, 0x1D
+ adds r2, r7, r2
+ adds r1, 0x3C
+ adds r1, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x47
+ bls _08142D6E
+ movs r4, 0
+_08142D6E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08142D24
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _08142D18
+ movs r6, 0
+ ldr r4, =0x02020630
+_08142D86:
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ ldr r0, =gUnknown_085B7508
+ adds r0, r1, r0
+ adds r1, 0x94
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x46
+ movs r3, 0x1E
+ bl AddObjectToFront
+ ldr r1, =0x0203ab88
+ ldr r1, [r1]
+ adds r1, r6
+ adds r1, 0x65
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _08142D86
+ movs r6, 0
+ ldr r4, =0x02020630
+_08142DCC:
+ lsls r2, r6, 1
+ adds r2, r6
+ lsls r2, 3
+ ldr r0, =gUnknown_085B7568
+ adds r0, r2, r0
+ adds r2, 0x5C
+ lsls r2, 16
+ asrs r2, 16
+ movs r1, 0x7E
+ movs r3, 0x1E
+ bl AddObjectToFront
+ ldr r1, =0x0203ab88
+ ldr r1, [r1]
+ adds r1, r6
+ adds r1, 0x69
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _08142DCC
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142CD0
+
+ thumb_func_start sub_8142E3C
+sub_8142E3C: @ 8142E3C
+ push {r4,lr}
+ movs r4, 0
+_08142E40:
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, r4
+ adds r0, 0x59
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r0, r1
+ bl RemoveObjectAndFreeTiles
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08142E40
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142E3C
+
+ thumb_func_start sub_8142E70
+sub_8142E70: @ 8142E70
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ cmp r0, 0
+ beq _08142EC0
+ cmp r0, 0x1
+ bne _08142F66
+ movs r4, 0
+ ldr r5, =0x02020630
+ ldr r3, =0x0203ab88
+ movs r2, 0x4
+_08142E92:
+ ldr r0, [r3]
+ adds r0, r4
+ adds r0, 0x59
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x12
+ bls _08142E92
+ b _08142F66
+ .pool
+_08142EC0:
+ movs r4, 0
+ ldr r0, =0x0203ab88
+ mov r9, r0
+ ldr r7, =gUnknown_085B62E4
+ adds r1, r7, 0x4
+ mov r8, r1
+ ldr r5, =0x02020630
+ movs r6, 0x5
+ negs r6, r6
+_08142ED2:
+ mov r0, r9
+ ldr r2, [r0]
+ lsls r3, r4, 3
+ mov r1, r8
+ adds r0, r3, r1
+ ldr r1, [r2, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08142F14
+ adds r0, r3, r7
+ ldrb r0, [r0, 0x2]
+ cmp r0, r12
+ beq _08142F14
+ adds r0, r2, r4
+ adds r0, 0x59
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08142F2C
+ .pool
+_08142F14:
+ adds r0, r2, r4
+ adds r0, 0x59
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+_08142F2C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08142ED2
+ cmp r4, 0x12
+ bhi _08142F66
+ ldr r6, =0x02020630
+ ldr r3, =0x0203ab88
+ movs r5, 0x5
+ negs r5, r5
+_08142F42:
+ ldr r0, [r3]
+ adds r0, r4
+ adds r0, 0x59
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x12
+ bls _08142F42
+_08142F66:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142E70
+
+ thumb_func_start sub_8142F7C
+sub_8142F7C: @ 8142F7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r6, =0x0203ab88
+ ldr r4, =0x02020630
+ movs r0, 0x4
+ mov r8, r0
+_08142F8C:
+ ldr r0, =gUnknown_085B7928
+ movs r1, 0x74
+ movs r2, 0x14
+ movs r3, 0xA
+ bl AddObjectToFront
+ ldr r1, [r6]
+ adds r3, r5, 0
+ adds r3, 0x31
+ adds r1, 0x3C
+ adds r1, r3
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r2, [r6]
+ adds r2, 0x3C
+ adds r2, r3
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_814390C
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, [r6]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8
+ bl StartObjectImageAnim
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08142F8C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8142F7C
+
+ thumb_func_start sub_8143038
+sub_8143038: @ 8143038
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r6, 0
+ cmp r0, 0
+ beq _08143084
+ ldr r4, =0x02020630
+ ldr r3, =0x0203ab88
+ movs r2, 0x4
+_08143056:
+ ldr r0, [r3]
+ adds r0, r6
+ adds r0, 0x6D
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _08143056
+ b _08143142
+ .pool
+_08143084:
+ ldr r0, =0x0203ab88
+ mov r8, r0
+ ldr r7, =0x02020630
+ ldr r0, =gUnknown_085B6154
+ mov r12, r0
+ movs r0, 0x5
+ negs r0, r0
+ mov r10, r0
+_08143094:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081430A8
+ cmp r6, r9
+ bne _081430D0
+_081430A8:
+ adds r0, r1, r6
+ adds r0, 0x6D
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08143138
+ .pool
+_081430D0:
+ adds r5, r6, 0
+ adds r5, 0x31
+ adds r0, r1, 0
+ adds r0, 0x3C
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r10
+ ands r0, r2
+ strb r0, [r1]
+ mov r0, r8
+ ldr r3, [r0]
+ adds r4, r3, 0
+ adds r4, 0x3C
+ adds r4, r5
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ adds r3, 0xC
+ adds r3, r6
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0x3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldrb r0, [r4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0x4]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x3
+ strh r0, [r2, 0x22]
+_08143138:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _08143094
+_08143142:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8143038
+
+ thumb_func_start sub_8143150
+sub_8143150: @ 8143150
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08143180
+ ldr r2, =0x02020630
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x6C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081431D0
+ .pool
+_08143180:
+ ldr r4, =0x02020630
+ ldr r3, =0x0203ab88
+ ldr r0, [r3]
+ adds r0, 0x6C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r3, [r3]
+ adds r3, 0x6C
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, =gUnknown_085B6154
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r1, 0x20]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2, 0x4]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r1, 0x22]
+_081431D0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143150
+
+ thumb_func_start sub_81431E4
+sub_81431E4: @ 81431E4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ ldr r4, =gUnknown_085B741C
+ ldr r0, [r4]
+ ldr r5, =0x0201c000
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldrh r2, [r4, 0x6]
+ lsls r2, 16
+ ldrh r1, [r4, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadObjectPic
+ movs r1, 0xF
+ mov r0, sp
+ strh r1, [r0]
+ movs r0, 0
+ ldr r7, =0x02020630
+_08143210:
+ movs r4, 0
+ adds r6, r0, 0x1
+ lsls r5, r0, 2
+_08143216:
+ adds r1, r5, r4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gUnknown_085B7610
+ adds r0, r1
+ movs r1, 0x28
+ mov r2, sp
+ bl sub_8142C60
+ ldr r1, =0x0203ab88
+ ldr r1, [r1]
+ adds r2, r4, 0x7
+ adds r2, r5, r2
+ adds r1, 0x3C
+ adds r1, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08143216
+ lsls r0, r6, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _08143210
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81431E4
+
+ thumb_func_start sub_8143280
+sub_8143280: @ 8143280
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ ldrh r0, [r6, 0x2E]
+ ldrh r1, [r1, 0x24]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r1, r0, 16
+ ldr r0, =0x00000167
+ cmp r1, r0
+ ble _081432A2
+ ldr r2, =0xfffffe98
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_081432A2:
+ adds r0, r4, 0
+ bl sine2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ bl cosine2
+ lsls r2, r5, 16
+ asrs r2, 16
+ movs r3, 0x30
+ ldrsh r1, [r6, r3]
+ muls r1, r2
+ asrs r1, 12
+ strh r1, [r6, 0x24]
+ lsls r0, 16
+ asrs r4, r0, 16
+ negs r1, r4
+ movs r3, 0x30
+ ldrsh r0, [r6, r3]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r6, 0x26]
+ ldrb r0, [r6, 0x3]
+ lsls r0, 26
+ lsrs r3, r0, 27
+ cmp r2, 0
+ bge _081432DC
+ adds r2, 0xF
+_081432DC:
+ lsls r0, r2, 12
+ lsrs r5, r0, 16
+ ldr r1, =0x02021bc0
+ lsls r0, r3, 3
+ adds r1, r0, r1
+ adds r0, r4, 0
+ cmp r0, 0
+ bge _081432EE
+ adds r0, 0xF
+_081432EE:
+ asrs r0, 4
+ strh r0, [r1, 0x6]
+ strh r0, [r1]
+ strh r5, [r1, 0x2]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143280
+
+ thumb_func_start sub_8143314
+sub_8143314: @ 8143314
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r5, 0
+ ldr r7, =0x0201c000
+ mov r6, sp
+_08143322:
+ ldr r0, =gUnknown_085B7750
+ lsls r4, r5, 3
+ adds r4, r0
+ ldr r0, [r4]
+ adds r1, r7, 0
+ bl LZ77UnCompWram
+ str r7, [sp]
+ ldrh r2, [r4, 0x4]
+ ldr r0, =0xffff0000
+ ldr r1, [r6, 0x4]
+ ands r1, r0
+ orrs r1, r2
+ str r1, [r6, 0x4]
+ ldrh r2, [r4, 0x6]
+ lsls r2, 16
+ ldr r0, =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r6, 0x4]
+ mov r0, sp
+ bl LoadObjectPic
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08143322
+ ldr r0, =gUnknown_085B77E4
+ movs r1, 0xD0
+ movs r2, 0x10
+ movs r3, 0x4
+ bl AddObjectToFront
+ ldr r3, =0x0203ab88
+ ldr r1, [r3]
+ adds r1, 0x50
+ strb r0, [r1]
+ ldr r4, =0x02020630
+ ldr r0, [r3]
+ adds r0, 0x50
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ movs r5, 0
+ adds r7, r3, 0
+_0814338C:
+ lsls r1, r5, 19
+ movs r0, 0xC4
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, =gUnknown_085B77FC
+ movs r2, 0x18
+ movs r3, 0
+ bl AddObjectToFront
+ ldr r1, [r7]
+ adds r3, r5, 0
+ adds r3, 0x15
+ adds r1, 0x3C
+ adds r1, r3
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r7]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r6, 0x40
+ orrs r1, r6
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0814338C
+ ldr r0, =gUnknown_085B7814
+ movs r1, 0x78
+ movs r2, 0x44
+ movs r3, 0x4
+ bl AddObjectToFront
+ ldr r2, =0x0203ab88
+ ldr r1, [r2]
+ adds r1, 0x55
+ strb r0, [r1]
+ ldr r3, =0x02020630
+ ldr r0, [r2]
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r5, 0
+ adds r4, r2, 0
+ adds r7, r3, 0
+_0814341C:
+ lsls r1, r5, 20
+ movs r2, 0xC0
+ lsls r2, 16
+ adds r1, r2
+ asrs r1, 16
+ ldr r0, =gUnknown_085B782C
+ movs r2, 0x24
+ movs r3, 0x4
+ bl AddObjectToFront
+ ldr r1, [r4]
+ adds r2, r5, 0
+ adds r2, 0x1A
+ adds r1, 0x3C
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x3C
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x4
+ mov r8, r3
+ mov r3, r8
+ orrs r1, r3
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x3C
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r6, 0x40
+ orrs r1, r6
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0814341C
+ ldr r0, =gUnknown_085B7844
+ movs r1, 0x98
+ movs r2, 0x60
+ movs r3, 0x9
+ bl AddObjectToFront
+ ldr r3, =0x0203ab88
+ ldr r1, [r3]
+ adds r1, 0x6C
+ strb r0, [r1]
+ ldr r4, =0x02020630
+ ldr r0, [r3]
+ adds r0, 0x6C
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x6C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, 0x6C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143314
+
+ thumb_func_start sub_8143514
+sub_8143514: @ 8143514
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0xFA
+ lsls r0, 2
+ mov r8, r0
+ movs r4, 0
+ movs r6, 0
+ ldr r1, =0x02020630
+ mov r9, r1
+ ldr r0, =0x0203ab88
+ mov r10, r0
+_08143534:
+ adds r0, r7, 0
+ mov r1, r8
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x0203ab88
+ ldr r0, [r1]
+ adds r3, r6, 0
+ adds r3, 0x15
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ cmp r5, 0
+ bne _0814356E
+ cmp r4, 0
+ bne _0814356E
+ cmp r6, 0x3
+ bne _081435CC
+_0814356E:
+ mov r4, r10
+ ldr r0, [r4]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r4, 0x5
+ negs r4, r4
+ adds r2, r4, 0
+ ands r1, r2
+ strb r1, [r0]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r4, r9
+ adds r3, r0, r4
+ adds r4, r3, 0
+ adds r4, 0x40
+ ldr r1, =0x02020638
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r2, [r0]
+ ldrh r4, [r4]
+ adds r2, r4
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r2, r0
+ ldrh r0, [r3, 0x4]
+ ldr r4, =0xfffffc00
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3, 0x4]
+ movs r4, 0x1
+_081435CC:
+ adds r0, r7, 0
+ mov r1, r8
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r8
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _08143534
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143514
+
+ thumb_func_start sub_8143614
+sub_8143614: @ 8143614
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_085B7B04
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ cmp r4, 0x13
+ bls _0814362C
+ movs r4, 0
+_0814362C:
+ ldr r3, =gUnknown_085B6154
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ beq _08143680
+ cmp r0, 0x4
+ bgt _08143654
+ cmp r0, 0x3
+ beq _0814365A
+ b _081436C4
+ .pool
+_08143654:
+ cmp r0, 0xC
+ beq _081436A4
+ b _081436C4
+_0814365A:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __udivsi3
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x16
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bhi _081436C4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08143698
+ .pool
+_08143680:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x12
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _081436C4
+ ldrb r0, [r1]
+ adds r0, 0x2
+_08143698:
+ add r0, sp
+ ldrb r0, [r0]
+ b _081436C6
+ .pool
+_081436A4:
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081436C4
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ b _081436C6
+ .pool
+_081436C4:
+ movs r0, 0
+_081436C6:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8143614
+
+ thumb_func_start sub_81436D0
+sub_81436D0: @ 81436D0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x0203ab88
+ ldr r1, [r1]
+ adds r1, 0x55
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, =0x02020630
+ adds r4, r1, r2
+ bl sub_8143614
+ adds r3, r4, 0
+ adds r3, 0x2B
+ strb r0, [r3]
+ adds r2, r4, 0
+ adds r2, 0x40
+ ldr r1, [r4, 0x8]
+ ldrb r0, [r3]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81436D0
+
+ thumb_func_start sub_814372C
+sub_814372C: @ 814372C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r6, 0
+ ldr r1, =0x0203ab88
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x19]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bne _08143746
+ movs r6, 0x2
+_08143746:
+ cmp r2, 0x6
+ bls _0814374C
+ b _081438A8
+_0814374C:
+ lsls r0, r2, 2
+ ldr r1, =_08143760
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08143760:
+ .4byte _081438A8
+ .4byte _08143864
+ .4byte _0814383C
+ .4byte _08143830
+ .4byte _08143808
+ .4byte _081437FC
+ .4byte _0814377C
+_0814377C:
+ movs r4, 0
+ ldr r5, =0x02020630
+ ldr r6, =0x0203ab88
+ movs r0, 0x5
+ negs r0, r0
+ mov r12, r0
+ adds r7, r5, 0
+ adds r7, 0x8
+ ldr r2, =0xfffffc00
+ mov r8, r2
+_08143790:
+ ldr r0, [r6]
+ adds r3, r4, 0
+ adds r3, 0x1A
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r5
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08143790
+ b _081438F4
+ .pool
+_081437FC:
+ ldr r2, =0x02020630
+ ldr r0, [r5]
+ adds r0, 0x58
+ b _0814386A
+ .pool
+_08143808:
+ ldr r2, =0x02020630
+ ldr r0, [r5]
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ b _08143886
+ .pool
+_08143830:
+ ldr r2, =0x02020630
+ ldr r0, [r5]
+ adds r0, 0x57
+ b _0814386A
+ .pool
+_0814383C:
+ ldr r2, =0x02020630
+ ldr r0, [r5]
+ adds r0, 0x57
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ b _08143886
+ .pool
+_08143864:
+ ldr r2, =0x02020630
+ ldr r0, [r5]
+ adds r0, 0x56
+_0814386A:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x4]
+_08143886:
+ ldrh r4, [r4]
+ adds r1, r4
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _081438F4
+ .pool
+_081438A8:
+ movs r4, 0
+ lsls r7, r6, 2
+ ldr r6, =0x02020630
+ movs r0, 0x8
+ adds r0, r6
+ mov r12, r0
+ ldr r2, =0xfffffc00
+ mov r8, r2
+_081438B8:
+ ldr r0, [r5]
+ adds r0, r4
+ adds r0, 0x56
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r6
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r12
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, r7, r0
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081438B8
+_081438F4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_814372C
+
+ thumb_func_start sub_814390C
+sub_814390C: @ 814390C
+ ldr r1, =0x0203ab88
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x24]
+ bx lr
+ .pool
+ thumb_func_end sub_814390C
+
+ thumb_func_start sub_814391C
+sub_814391C: @ 814391C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, =gUnknown_085B7948
+ ldr r0, [r4]
+ ldr r5, =0x0201c000
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadObjectPic
+ ldr r0, =gUnknown_085B7950
+ movs r1, 0x74
+ movs r2, 0x50
+ movs r3, 0x51
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x02020630
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x24]
+ movs r2, 0
+ strh r0, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r3, r1, 0
+ adds r3, 0x2C
+ ldrb r0, [r3]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_814391C
+
+ thumb_func_start sub_814399C
+sub_814399C: @ 814399C
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, =0x02021bc0
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =0x0203ab88
+ ldr r2, [r1]
+ ldrh r1, [r2, 0x2C]
+ strh r1, [r0, 0x6]
+ ldrh r1, [r2, 0x2C]
+ strh r1, [r0]
+ ldrh r1, [r2, 0x2E]
+ strh r1, [r0, 0x2]
+ ldrh r1, [r2, 0x30]
+ strh r1, [r0, 0x4]
+ bx lr
+ .pool
+ thumb_func_end sub_814399C
+
+ thumb_func_start sub_81439C8
+sub_81439C8: @ 81439C8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r5, =0x0203ab88
+ ldr r6, =0x02020630
+_081439D0:
+ movs r3, 0x39
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_085B7928
+ movs r1, 0x74
+ movs r2, 0x50
+ bl AddObjectToFront
+ ldr r1, [r5]
+ adds r1, 0x3C
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x3C
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _08143A24
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0x3C
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_08143A24:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081439D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81439C8
+
+ thumb_func_start sub_8143A40
+sub_8143A40: @ 8143A40
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x3C
+ ldrb r5, [r0]
+ movs r6, 0
+ ldr r7, =0x02020630
+ movs r0, 0x1C
+ adds r0, r7
+ mov r10, r0
+ movs r1, 0x2E
+ adds r1, r7
+ mov r9, r1
+ mov r8, r6
+_08143A64:
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r0, r4, r7
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ mov r1, r10
+ adds r2, r4, r1
+ ldr r1, =DummyObjectCallback
+ str r1, [r2]
+ movs r1, 0
+ bl StartObjectImageAnim
+ movs r1, 0
+ adds r2, r5, 0x1
+ adds r3, r6, 0x1
+_08143A8C:
+ lsls r0, r1, 1
+ adds r0, r4
+ add r0, r9
+ mov r5, r8
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _08143A8C
+ lsls r0, r2, 24
+ lsrs r5, r0, 24
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _08143A64
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143A40
+
+ thumb_func_start sub_8143AC8
+sub_8143AC8: @ 8143AC8
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldrh r4, [r0, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r0, r2]
+ ldrh r2, [r3, 0x34]
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ cmp r1, r0
+ ble _08143B04
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r2, r1
+ subs r2, r0, r4
+ strh r2, [r3, 0x3A]
+ lsls r1, r2, 16
+ ldr r0, =0x01670000
+ cmp r1, r0
+ ble _08143B08
+ ldr r5, =0xfffffe98
+ adds r0, r2, r5
+ b _08143B06
+ .pool
+_08143B04:
+ subs r0, r2, r4
+_08143B06:
+ strh r0, [r3, 0x3A]
+_08143B08:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8143AC8
+
+ thumb_func_start sub_8143B14
+sub_8143B14: @ 8143B14
+ push {r4,r5,lr}
+ bl sub_8143AC8
+ ldr r5, =0x0203ab88
+ ldr r4, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsisf
+ ldr r1, =0x41f00000
+ bl __divsf3
+ bl __fixunssfsi
+ adds r4, 0x7E
+ strb r0, [r4]
+ ldr r0, [r5]
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8143B14
+
+ thumb_func_start sub_8143B48
+sub_8143B48: @ 8143B48
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8143AC8
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1E
+ bl __modsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0xE
+ bne _08143B68
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _08143B7E
+_08143B68:
+ cmp r1, 0xD
+ bgt _08143B70
+ movs r0, 0xE
+ b _08143B72
+_08143B70:
+ movs r0, 0x2B
+_08143B72:
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+_08143B7E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8143B48
+
+ thumb_func_start sub_8143B84
+sub_8143B84: @ 8143B84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ ldr r5, =0x0203ab88
+ ldr r6, [r5]
+ adds r4, r6, 0
+ adds r4, 0x8C
+ adds r1, r6, 0
+ adds r1, 0x90
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl __addsf3
+ adds r1, r0, 0
+ str r1, [r4]
+ subs r4, 0x4
+ ldr r0, [r4]
+ bl __addsf3
+ adds r6, r0, 0
+ str r6, [r4]
+ ldr r0, =0x43b40000
+ mov r8, r0
+ adds r0, r6, 0
+ mov r1, r8
+ bl __gesf2
+ cmp r0, 0
+ blt _08143BD4
+ adds r0, r6, 0
+ mov r1, r8
+ bl __subsf3
+ b _08143BE8
+ .pool
+_08143BD4:
+ ldr r1, =0x00000000
+ adds r0, r6, 0
+ bl __ltsf2
+ cmp r0, 0
+ bge _08143BEA
+ adds r0, r6, 0
+ mov r1, r8
+ bl __addsf3
+_08143BE8:
+ str r0, [r4]
+_08143BEA:
+ ldr r5, [r5]
+ adds r0, r5, 0
+ adds r0, 0x88
+ ldr r0, [r0]
+ bl __fixsfsi
+ strh r0, [r7, 0x34]
+ adds r4, r5, 0
+ adds r4, 0x98
+ adds r1, r5, 0
+ adds r1, 0x9C
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl __addsf3
+ adds r1, r0, 0
+ str r1, [r4]
+ subs r4, 0x4
+ ldr r0, [r4]
+ bl __addsf3
+ str r0, [r4]
+ bl __fixsfsi
+ strh r0, [r7, 0x36]
+ ldrh r0, [r7, 0x34]
+ bl sine2
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r0, [r7, 0x34]
+ bl cosine2
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x36
+ ldrsh r1, [r7, r2]
+ muls r1, r4
+ asrs r1, 12
+ strh r1, [r7, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ movs r2, 0x36
+ ldrsh r1, [r7, r2]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r7, 0x26]
+ bl mplay_has_finished_maybe
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143C74
+ ldr r0, =0x030075f0
+ ldr r4, =0x0000ffff
+ ldrh r2, [r7, 0x24]
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r4, 0
+ bl MPlayPanpotControl
+ ldr r0, =0x03007630
+ ldrh r2, [r7, 0x24]
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r4, 0
+ bl MPlayPanpotControl
+_08143C74:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143B84
+
+ thumb_func_start sub_8143C90
+sub_8143C90: @ 8143C90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =0x0203ab88
+ ldr r1, [r0]
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r1, 0x24]
+ adds r2, r0, r1
+ strh r2, [r5, 0x34]
+ lsls r1, r2, 16
+ ldr r0, =0x01670000
+ cmp r1, r0
+ ble _08143CAE
+ ldr r1, =0xfffffe98
+ adds r0, r2, r1
+ strh r0, [r5, 0x34]
+_08143CAE:
+ ldrh r0, [r5, 0x34]
+ bl sine2
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r0, [r5, 0x34]
+ bl cosine2
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ muls r1, r4
+ asrs r1, 12
+ strh r1, [r5, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ muls r0, r1
+ ldr r1, =0x02021bbe
+ asrs r0, 12
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143C90
+
+ thumb_func_start sub_8143CFC
+sub_8143CFC: @ 8143CFC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ bl sub_8143B84
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r0, 0x84
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xD4
+ bls _08143D22
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _08143D2E
+_08143D22:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_08143D2E:
+ strb r0, [r2]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1D
+ ble _08143DF8
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08143D6C
+ ldr r7, =0x0203ab88
+ ldr r6, [r7]
+ adds r4, r6, 0
+ adds r4, 0x94
+ adds r0, r6, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ ldr r1, =0x40000000
+ bl __subsf3
+ adds r1, r0, 0
+ ldr r0, [r4]
+ bl __lesf2
+ cmp r0, 0
+ bgt _08143DF8
+ b _08143D8C
+ .pool
+_08143D6C:
+ ldr r7, =0x0203ab88
+ ldr r6, [r7]
+ adds r4, r6, 0
+ adds r4, 0x94
+ adds r0, r6, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ ldr r1, =0x40000000
+ bl __subsf3
+ adds r1, r0, 0
+ ldr r0, [r4]
+ bl __gesf2
+ cmp r0, 0
+ blt _08143DF8
+_08143D8C:
+ adds r1, r6, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartObjectImageAnim
+ adds r0, r5, 0
+ bl sub_8143B14
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8143AC8
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, =sub_8143C90
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ ldr r3, [r7]
+ adds r2, r3, 0
+ adds r2, 0x9C
+ adds r1, r3, 0
+ adds r1, 0x98
+ ldr r0, =0x00000000
+ str r0, [r1]
+ str r0, [r2]
+ subs r1, 0xC
+ ldr r0, =0xbf800000
+ str r0, [r1]
+_08143DF8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143CFC
+
+ thumb_func_start sub_8143E14
+sub_8143E14: @ 8143E14
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ bl sub_8143B84
+ movs r1, 0x34
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _08143E32
+ cmp r0, 0xB4
+ beq _08143E9C
+ b _08143F80
+_08143E32:
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _08143E3C
+ b _08143F80
+_08143E3C:
+ movs r1, 0x3C
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ mov r9, r0
+ ldr r0, =gUnknown_085B6348
+ mov r10, r0
+ ldr r1, =0x0203ab88
+ mov r8, r1
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x4]
+ lsls r4, 30
+ lsrs r0, r4, 25
+ add r0, r10
+ ldrb r0, [r0, 0x1]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r9
+ bl __mulsf3
+ adds r6, r0, 0
+ lsrs r0, r4, 25
+ add r0, r10
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl __addsf3
+ adds r5, r0, 0
+ lsrs r4, 25
+ add r4, r10
+ ldrh r0, [r4, 0xC]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r9
+ bl __divsf3
+ b _08143EFC
+ .pool
+_08143E9C:
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _08143F80
+ movs r1, 0x3C
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ mov r9, r0
+ ldr r0, =gUnknown_085B6348
+ mov r10, r0
+ ldr r1, =0x0203ab88
+ mov r8, r1
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x4]
+ lsls r4, 30
+ lsrs r0, r4, 25
+ add r0, r10
+ ldrb r0, [r0, 0x1]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r9
+ bl __mulsf3
+ adds r6, r0, 0
+ lsrs r0, r4, 25
+ add r0, r10
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl __addsf3
+ adds r5, r0, 0
+ lsrs r4, 25
+ add r4, r10
+ ldrh r0, [r4, 0xC]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r9
+ bl __divsf3
+ bl __negsf2
+_08143EFC:
+ adds r2, r0, 0
+ mov r0, r8
+ ldr r6, [r0]
+ adds r1, r6, 0
+ adds r1, 0xA0
+ adds r0, r6, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x98
+ str r2, [r0]
+ movs r0, 0x9C
+ adds r0, r6
+ mov r8, r0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl __addsf3
+ adds r1, r5, 0
+ bl __divsf3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl __mulsf3
+ adds r1, r0, 0
+ ldr r0, =0x40000000
+ bl __divsf3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl __addsf3
+ bl __negsf2
+ mov r1, r8
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x8C
+ ldr r0, =0x00000000
+ str r0, [r1]
+ adds r2, r7, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r7, 0
+ adds r0, 0x2A
+ movs r2, 0
+ strb r2, [r0]
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, =sub_8143CFC
+ str r0, [r7, 0x1C]
+ strh r2, [r7, 0x32]
+_08143F80:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143E14
+
+ thumb_func_start sub_8143FA4
+sub_8143FA4: @ 8143FA4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ bl __floatsisf
+ adds r4, r0, 0
+ ldr r1, =0x3d4ccccd
+ bl __mulsf3
+ adds r1, r4, 0
+ bl __mulsf3
+ bl __fixsfsi
+ adds r1, r0, 0
+ subs r1, 0x2D
+ strh r1, [r5, 0x26]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _0814403E
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _0814403E
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ adds r0, 0x7D
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartObjectImageAnim
+ adds r0, r5, 0
+ bl sub_8143B14
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8143AC8
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, =sub_8143C90
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+_0814403E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8143FA4
+
+ thumb_func_start sub_8144050
+sub_8144050: @ 8144050
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2C
+ bgt _08144098
+ ldrh r4, [r3, 0x26]
+ subs r0, r4, 0x1
+ strh r0, [r3, 0x26]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2D
+ bne _0814411E
+ ldr r2, =0x02020630
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0814411E
+ strh r4, [r3, 0x26]
+ b _0814411E
+ .pool
+_08144098:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r2, 0x3C
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bge _081440E4
+ ldr r2, =0x02020630
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bne _0814411E
+ adds r0, r1, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081440DC
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x1
+ strh r0, [r3, 0x26]
+ b _0814411E
+ .pool
+_081440DC:
+ ldrh r0, [r3, 0x26]
+ subs r0, 0x1
+ strh r0, [r3, 0x26]
+ b _0814411E
+_081440E4:
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3F
+ adds r0, r3
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ strh r2, [r3, 0x32]
+ ldr r0, =sub_8143FA4
+ str r0, [r3, 0x1C]
+ movs r0, 0x3D
+ bl m4aSongNumStart
+_0814411E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144050
+
+ thumb_func_start sub_8144128
+sub_8144128: @ 8144128
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8143B84
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x5A
+ beq _08144142
+ movs r0, 0x87
+ lsls r0, 1
+ cmp r1, r0
+ beq _0814414C
+ b _0814415C
+_08144142:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0814415C
+ b _08144154
+_0814414C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0814415C
+_08144154:
+ ldr r0, =sub_8144050
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+_0814415C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144128
+
+ thumb_func_start sub_8144168
+sub_8144168: @ 8144168
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8143B84
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r0, 0
+ beq _08144182
+ cmp r0, 0x1
+ beq _08144194
+_08144182:
+ adds r0, r4, 0
+ bl sub_81446DC
+ ldr r0, =sub_8143E14
+ b _0814419C
+ .pool
+_08144194:
+ adds r0, r4, 0
+ bl sub_81448B8
+ ldr r0, =sub_8144128
+_0814419C:
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144168
+
+ thumb_func_start prev_quest_read_x24_hm_usage
+prev_quest_read_x24_hm_usage: @ 81441A8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8143B84
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _081441CE
+ ldr r0, =0x0203ab88
+ ldr r4, [r0]
+ adds r4, 0x98
+ ldr r0, [r4]
+ ldr r1, =0xbf800000
+ bl __mulsf3
+ str r0, [r4]
+_081441CE:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0814425C
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08144244
+ ldr r2, =0x0203ab88
+ ldr r0, [r2]
+ adds r0, 0x7D
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartObjectImageAnim
+ adds r0, r5, 0
+ bl sub_8143B14
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8143AC8
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, =sub_8143C90
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ b _0814425C
+ .pool
+_08144244:
+ adds r0, r5, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x38
+ bl m4aSongNumStart
+ adds r0, r5, 0
+ bl sub_8144A24
+_0814425C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end prev_quest_read_x24_hm_usage
+
+ thumb_func_start sub_8144264
+sub_8144264: @ 8144264
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ bl sub_8143B84
+ movs r0, 0
+ strh r0, [r6, 0x32]
+ adds r0, r6, 0
+ bl sub_8143B14
+ ldr r1, =gUnknown_085B62E4
+ ldr r4, =0x0203ab88
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r2, 0x8]
+ ands r0, r1
+ cmp r0, 0
+ bne _081442FC
+ adds r1, r2, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r6, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl StartObjectImageAnim
+ adds r0, r6, 0
+ bl sub_8143B14
+ movs r0, 0x1E
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl sub_8143AC8
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r6, 0x3A]
+ ldr r0, =sub_8143C90
+ str r0, [r6, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ b _081443F8
+ .pool
+_081442FC:
+ movs r0, 0x38
+ bl m4aSongNumStart
+ bl GenerateRandomNumber
+ movs r1, 0x1
+ mov r8, r1
+ ands r1, r0
+ mov r8, r1
+ cmp r1, 0
+ beq _08144340
+ ldr r4, [r4]
+ adds r1, r4, 0
+ adds r1, 0x8C
+ ldr r0, =0x00000000
+ str r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ adds r0, 0x1
+ movs r1, 0xC
+ bl __modsi3
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ adds r1, r4, 0
+ adds r1, 0x7F
+ strb r0, [r1]
+ ldr r5, =gUnknown_085B6348
+ b _08144378
+ .pool
+_08144340:
+ ldr r7, [r4]
+ adds r4, r7, 0
+ adds r4, 0x8C
+ ldr r5, =gUnknown_085B6348
+ ldrb r0, [r7, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r1, 0
+ bl __addsf3
+ str r0, [r4]
+ adds r0, r7, 0
+ adds r0, 0x7E
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0xB
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r7, 0
+ adds r0, 0x7F
+ strb r4, [r0]
+_08144378:
+ ldr r0, =gUnknown_085B62E4
+ lsls r1, r2, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r2, =0x0203ab88
+ ldr r3, [r2]
+ ldr r1, [r1]
+ ldr r0, [r3, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ beq _081443AC
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ strh r0, [r6, 0x32]
+ b _081443E8
+ .pool
+_081443AC:
+ strh r1, [r6, 0x2E]
+ ldrb r1, [r3, 0x4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081443C4
+ lsls r0, r1, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x1]
+ strh r0, [r6, 0x32]
+ b _081443E8
+_081443C4:
+ lsls r0, r1, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ strh r0, [r6, 0x32]
+ mov r0, r8
+ cmp r0, 0
+ beq _081443E0
+ adds r1, r3, 0
+ adds r1, 0x8C
+ ldr r0, =0x3f000000
+ b _081443E6
+ .pool
+_081443E0:
+ adds r1, r3, 0
+ adds r1, 0x8C
+ ldr r0, =0xbfc00000
+_081443E6:
+ str r0, [r1]
+_081443E8:
+ ldr r0, [r2]
+ adds r0, 0x98
+ ldr r1, =0x3dae147b
+ str r1, [r0]
+ ldr r0, =prev_quest_read_x24_hm_usage
+ str r0, [r6, 0x1C]
+ movs r0, 0x5
+ strh r0, [r6, 0x30]
+_081443F8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144264
+
+ thumb_func_start sub_8144410
+sub_8144410: @ 8144410
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ bl sub_8143B84
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ adds r0, 0x8C
+ ldr r0, [r0]
+ ldr r1, =0x3f000000
+ bl __gtsf2
+ cmp r0, 0
+ bgt _081444FA
+ adds r0, r6, 0
+ bl sub_8143B14
+ adds r0, r6, 0
+ bl sub_8143B48
+ lsls r0, 16
+ cmp r0, 0
+ bne _081444BC
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x90
+ ldr r0, =0x00000000
+ str r0, [r1]
+ movs r0, 0x8C
+ adds r0, r2
+ mov r8, r0
+ ldr r1, =gUnknown_085B6348
+ mov r9, r1
+ ldrb r0, [r2, 0x4]
+ lsls r7, r0, 30
+ lsrs r0, r7, 25
+ add r0, r9
+ movs r4, 0x3
+ ldrsb r4, [r0, r4]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r5, r0, 0
+ cmp r4, 0
+ bge _08144476
+ ldr r1, =0x43800000
+ bl __addsf3
+ adds r5, r0, 0
+_08144476:
+ lsrs r0, r7, 25
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ adds r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl __divsf3
+ adds r1, r0, 0
+ mov r2, r8
+ ldr r0, [r2]
+ bl __subsf3
+ mov r1, r8
+ str r0, [r1]
+ movs r0, 0x4
+ strh r0, [r6, 0x30]
+ ldr r0, =sub_8144264
+ str r0, [r6, 0x1C]
+ b _081444FA
+ .pool
+_081444BC:
+ ldr r4, [r4]
+ adds r7, r4, 0
+ adds r7, 0x90
+ ldr r0, [r7]
+ ldr r6, =0x00000000
+ adds r1, r6, 0
+ bl __nesf2
+ cmp r0, 0
+ beq _081444FA
+ adds r5, r4, 0
+ adds r5, 0x8C
+ ldr r0, [r5]
+ adds r1, r6, 0
+ bl __ltsf2
+ cmp r0, 0
+ bge _081444FA
+ str r6, [r7]
+ str r6, [r5]
+ adds r4, 0x98
+ ldr r0, [r4]
+ bl __extendsfdf2
+ ldr r2, =0x3ff33333
+ ldr r3, =0x33333333
+ bl __divdf3
+ bl __truncdfsf2
+ str r0, [r4]
+_081444FA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144410
+
+ thumb_func_start sub_8144514
+sub_8144514: @ 8144514
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ bl sub_8143B84
+ ldr r0, =0x0203ab88
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ ldr r1, =0x42200000
+ bl __gtsf2
+ cmp r0, 0
+ bgt _081445B8
+ movs r0, 0x98
+ adds r0, r5
+ mov r8, r0
+ adds r7, r5, 0
+ adds r7, 0x86
+ movs r1, 0
+ ldrsh r4, [r7, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _08144556
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_08144556:
+ ldr r0, =0x40800000
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ mov r1, r8
+ str r0, [r1]
+ movs r0, 0x90
+ adds r0, r5
+ mov r8, r0
+ adds r5, 0x8C
+ movs r1, 0
+ ldrsh r4, [r7, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _08144586
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_08144586:
+ ldr r0, [r5]
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ mov r1, r8
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x2A
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x3
+ strh r0, [r6, 0x30]
+ ldr r0, =sub_8144410
+ str r0, [r6, 0x1C]
+_081445B8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144514
+
+ thumb_func_start sub_81445D8
+sub_81445D8: @ 81445D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ bl sub_8143B84
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ adds r0, 0x94
+ ldr r0, [r0]
+ ldr r1, =0x42700000
+ bl __gtsf2
+ cmp r0, 0
+ bgt _0814468A
+ movs r0, 0x5D
+ bl m4aSongNumStartOrChange
+ ldr r5, [r4]
+ movs r0, 0x98
+ adds r0, r5
+ mov r8, r0
+ adds r7, r5, 0
+ adds r7, 0x84
+ movs r1, 0
+ ldrsh r4, [r7, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _08144620
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_08144620:
+ ldr r0, =0x41a00000
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ mov r1, r8
+ str r0, [r1]
+ movs r0, 0x90
+ adds r0, r5
+ mov r8, r0
+ adds r0, r5, 0
+ adds r0, 0x8C
+ ldr r1, [r0]
+ ldr r0, =0x3f800000
+ bl __subsf3
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r4, [r7, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _0814465C
+ ldr r1, =0x47800000
+ bl __addsf3
+ adds r2, r0, 0
+_0814465C:
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl __divsf3
+ mov r1, r8
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x30]
+ ldr r0, =sub_8144514
+ str r0, [r6, 0x1C]
+_0814468A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81445D8
+
+ thumb_func_start sub_81446AC
+sub_81446AC: @ 81446AC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r4, 0
+ bl sub_8143B84
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_81445D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81446AC
+
+ thumb_func_start sub_81446DC
+sub_81446DC: @ 81446DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r8, r0
+ ldr r1, =gUnknown_085B7B0A
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ mov r1, r8
+ ldrh r0, [r1, 0x3C]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r5, =0x0203ab88
+ ldr r0, =gUnknown_085B79F8
+ movs r2, 0xC
+ negs r2, r2
+ movs r1, 0x24
+ movs r3, 0x32
+ bl AddObjectToFront
+ ldr r1, [r5]
+ adds r1, 0x73
+ strb r0, [r1]
+ ldr r4, =gUnknown_085B7ABC
+ mov r3, r8
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r2, 2
+ mov r1, sp
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r0, sp
+ adds r0, 0x2
+ adds r0, r2
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r0, r4, 0
+ movs r3, 0x3B
+ bl AddObjectToFront
+ ldr r1, [r5]
+ adds r1, 0x74
+ strb r0, [r1]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0x24
+ movs r2, 0x8C
+ movs r3, 0x33
+ bl AddObjectToFront
+ ldr r1, [r5]
+ adds r1, 0x75
+ strb r0, [r1]
+ ldr r3, =0x02020630
+ ldr r0, [r5]
+ adds r0, 0x75
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r7, 0
+ adds r6, r3, 0
+ ldr r0, =gUnknown_085B6348
+ mov r12, r0
+ mov r10, r5
+_0814477C:
+ ldr r0, [r5]
+ adds r3, r7, 0
+ adds r3, 0x37
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0x3C
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r4, [r5]
+ adds r2, r4, 0
+ adds r2, 0x3C
+ adds r2, r3
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r1, r4, 0
+ adds r1, 0x73
+ ldrb r1, [r1]
+ strh r1, [r0, 0x36]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r1, r4, 0
+ adds r1, 0x74
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r1, r4, 0
+ adds r1, 0x75
+ ldrb r1, [r1]
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r9
+ strh r1, [r0, 0x32]
+ ldrb r0, [r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ mov r0, r8
+ movs r1, 0x3C
+ ldrsh r3, [r0, r1]
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r0, r1, 25
+ add r0, r12
+ ldrb r0, [r0, 0x1]
+ muls r3, r0
+ lsrs r1, 25
+ add r1, r12
+ ldrb r0, [r1, 0x2]
+ ldr r1, =0x0000ffff
+ adds r0, r1
+ adds r3, r0
+ strh r3, [r2, 0x34]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, =0x02020630
+ cmp r7, 0x2
+ bls _0814477C
+ mov r3, r10
+ ldr r0, [r3]
+ adds r0, 0x74
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ mov r1, r8
+ str r1, [r0, 0x38]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81446DC
+
+ thumb_func_start sub_81448B8
+sub_81448B8: @ 81448B8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ ldr r1, =gUnknown_085B7B12
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, =gUnknown_085B7A10
+ movs r1, 0x2E
+ ldrsh r2, [r7, r1]
+ lsls r2, 2
+ mov r3, sp
+ adds r1, r3, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ mov r4, sp
+ adds r4, 0x2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ movs r3, 0x32
+ bl AddObjectToFront
+ ldr r5, =0x0203ab88
+ ldr r1, [r5]
+ adds r1, 0x73
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, =0x02020630
+ adds r0, r6
+ ldrh r1, [r7, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartObjectImageAnim
+ ldr r0, =gUnknown_085B7AEC
+ movs r1, 0x2E
+ ldrsh r2, [r7, r1]
+ lsls r2, 2
+ mov r3, sp
+ adds r1, r3, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ adds r4, r2
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0x33
+ bl AddObjectToFront
+ ldr r1, [r5]
+ adds r1, 0x74
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0x74
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0x74
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ mov r0, r9
+ lsls r2, r0, 16
+ asrs r2, 16
+ ldr r3, =gUnknown_085B6348
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ lsls r1, 30
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ muls r2, r0
+ lsrs r1, 25
+ adds r1, r3
+ ldrh r0, [r1, 0x10]
+ adds r0, 0x2D
+ adds r2, r0
+ strh r2, [r7, 0x3C]
+_08144992:
+ ldr r0, =0x0203ab88
+ ldr r4, [r0]
+ mov r1, r8
+ adds r2, r4, r1
+ adds r2, 0x73
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r1, r4, 0
+ adds r1, 0x73
+ ldrb r1, [r1]
+ strh r1, [r0, 0x36]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r3, r4, 0
+ adds r3, 0x74
+ ldrb r1, [r3]
+ strh r1, [r0, 0x38]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r3]
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r3, r9
+ strh r3, [r0, 0x32]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2D
+ strh r0, [r1, 0x34]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _08144992
+ str r7, [r4, 0x38]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81448B8
+
+ thumb_func_start sub_8144A24
+sub_8144A24: @ 8144A24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0x5
+ mov r8, r1
+ str r0, [sp, 0xC]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0xA
+ bl memset
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r3, =0x0203ab88
+ ldr r0, [r3]
+ adds r0, 0x7D
+ movs r5, 0x1
+ strb r5, [r0]
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r0, [r3]
+ adds r0, 0x7E
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r6, [r3]
+ adds r4, r6, 0
+ adds r4, 0x88
+ movs r1, 0x34
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ str r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x98
+ ldr r0, =0x00000000
+ str r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x8C
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ lsrs r0, 30
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0x21
+ ldrb r0, [r6, 0x3]
+ lsls r0, 27
+ lsrs r0, 27
+ subs r5, r0
+ lsls r0, r5, 4
+ subs r0, r5
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r5, r9
+ movs r0, 0x34
+ ldrsh r2, [r7, r0]
+_08144ACA:
+ cmp r1, r2
+ bge _08144AD6
+ adds r0, r1, 0
+ adds r0, 0x5A
+ cmp r2, r0
+ ble _08144B38
+_08144AD6:
+ cmp r5, 0x3
+ beq _08144B1C
+ adds r0, r1, 0
+ adds r0, 0x5A
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08144ACA
+_08144AEC:
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ beq _08144B64
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _08144B58
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl cry_related
+ b _08144B70
+ .pool
+_08144B1C:
+ movs r0, 0x1
+ strh r0, [r7, 0x2E]
+ ldr r0, =0x0203ab88
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ b _08144AEC
+ .pool
+_08144B38:
+ lsrs r0, r5, 1
+ strh r0, [r7, 0x2E]
+ ldr r0, =0x0203ab88
+ ldr r3, [r0]
+ movs r1, 0x1
+ ands r1, r5
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ b _08144AEC
+ .pool
+_08144B58:
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ bl cry_related
+ b _08144B70
+_08144B64:
+ movs r0, 0x99
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl cry_related
+_08144B70:
+ movs r0, 0x2
+ mov r10, r0
+ ldr r4, =0x0203ab88
+ ldr r5, [r4]
+ adds r0, r5, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ adds r0, 0x2
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08144BA8
+ ldrb r1, [r5, 0x4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08144BA8
+ mov r0, r8
+ adds r0, 0x6
+ b _08144BAC
+ .pool
+_08144BA8:
+ mov r0, r8
+ add r0, r10
+_08144BAC:
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r5, r10
+ cmp r5, r8
+ bcs _08144C18
+ ldr r1, =gUnknown_085B6160
+ mov r10, r1
+_08144BBC:
+ ldr r3, [r4]
+ lsls r0, r6, 3
+ ldr r1, =gUnknown_085B62E8
+ adds r0, r1
+ ldr r1, [r3, 0x8]
+ ldr r2, [r0]
+ ands r1, r2
+ cmp r1, 0
+ bne _08144C02
+ mov r0, r9
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ add r0, sp
+ strb r5, [r0]
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _08144C02
+ ldrb r1, [r3, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r3, 0
+ adds r0, 0x1B
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _08144C02
+ str r5, [sp, 0xC]
+_08144C02:
+ adds r0, r6, 0x1
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r8
+ bcc _08144BBC
+_08144C18:
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x3]
+ lsls r1, 27
+ lsrs r1, 27
+ adds r1, 0x1
+ ldrb r0, [r0, 0x2]
+ ands r1, r0
+ cmp r1, 0
+ beq _08144C48
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ beq _08144C48
+ movs r0, 0xFF
+ ldr r1, [sp, 0x10]
+ ands r0, r1
+ cmp r0, 0xBF
+ bhi _08144C48
+ mov r0, sp
+ ldrh r0, [r0, 0xC]
+ b _08144C54
+ .pool
+_08144C48:
+ ldr r0, [sp, 0x10]
+ mov r1, r9
+ bl __modsi3
+ add r0, sp
+ ldrb r0, [r0]
+_08144C54:
+ strh r0, [r7, 0x3C]
+ ldr r1, =sub_8144168
+ str r1, [r7, 0x1C]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144A24
+
+ thumb_func_start sub_8144C70
+sub_8144C70: @ 8144C70
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08144CC0
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x2
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _08144CC0
+ ldr r4, =0x0203ab88
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08144CAC
+ movs r0, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_08144CAC:
+ adds r0, r2, 0
+ bl RemoveObjectAndFreeTiles
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ ldr r1, [r4]
+ ldr r0, =gUnknown_085B7B1A
+ ldrh r0, [r0]
+ strh r0, [r1, 0x34]
+_08144CC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144C70
+
+ thumb_func_start sub_8144CD0
+sub_8144CD0: @ 8144CD0
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ ldr r1, =gUnknown_085B7B2E
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ adds r2, r0, 0x1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _08144D54
+ movs r0, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08144D2E
+ ldr r3, =0x02021bbe
+ movs r0, 0x3C
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 3
+ adds r2, r0
+ mov r1, sp
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ movs r3, 0x3C
+ ldrsh r2, [r4, r3]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08144D26
+ adds r0, r2, 0x4
+_08144D26:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ strh r0, [r4, 0x3C]
+_08144D2E:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _08144D7E
+ .pool
+_08144D54:
+ ldr r1, =0x02021bbe
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, =0x02020630
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl RemoveObjectAndFreeTiles
+_08144D7E:
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144CD0
+
+ thumb_func_start sub_8144D94
+sub_8144D94: @ 8144D94
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ bl __floatsisf
+ adds r4, r0, 0
+ ldr r1, =0x3d1fbe77
+ bl __mulsf3
+ adds r1, r4, 0
+ bl __mulsf3
+ bl __fixsfsi
+ strh r0, [r5, 0x26]
+ ldr r0, =0x0203ab88
+ ldr r3, [r0]
+ ldr r2, =gUnknown_085B7B1A
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x34]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x12
+ bhi _08144DDC
+ adds r0, 0x1
+ strb r0, [r3, 0x1]
+_08144DDC:
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3C
+ ble _08144E3E
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldr r3, =sub_8144C70
+ str r3, [r5, 0x1C]
+ ldr r2, =0x02020630
+ movs r0, 0x3A
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ adds r4, 0x1C
+ adds r0, r4
+ str r3, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x30]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8144CD0
+ str r1, [r0]
+ movs r0, 0xD6
+ bl m4aSongNumStart
+_08144E3E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144D94
+
+ thumb_func_start sub_8144E60
+sub_8144E60: @ 8144E60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08144EE4
+ ldr r0, =0x0203ab88
+ ldr r3, [r0]
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08144E94
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ b _08144EA6
+ .pool
+_08144E94:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, 0xB4
+_08144EA6:
+ cmp r2, r0
+ bne _08144F7C
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r0, 0x2B
+ bl m4aSongNumStart
+ ldr r2, =0x0203ab88
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r1, [r2]
+ ldr r0, =gUnknown_085B7B1A
+ ldrh r0, [r0]
+ strh r0, [r1, 0x34]
+ b _08144F7C
+ .pool
+_08144EE4:
+ ldr r5, =0x0203ab88
+ ldr r3, [r5]
+ ldr r2, =gUnknown_085B7B1A
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x34]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x12
+ bhi _08144F06
+ adds r0, 0x1
+ strb r0, [r3, 0x1]
+_08144F06:
+ ldr r3, [r5]
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08144F30
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0xA]
+ b _08144F42
+ .pool
+_08144F30:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0xA]
+ adds r0, 0xB4
+_08144F42:
+ cmp r2, r0
+ bne _08144F7C
+ ldr r2, =0x02020630
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_8144D94
+ str r1, [r0]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, =DummyObjectCallback
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x3C]
+_08144F7C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144E60
+
+ thumb_func_start sub_8144F94
+sub_8144F94: @ 8144F94
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ lsls r1, r3, 29
+ lsrs r1, 31
+ movs r2, 0x1
+ eors r2, r1
+ lsls r2, 2
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_8144F94
+
+ thumb_func_start sub_8144FB0
+sub_8144FB0: @ 8144FB0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ ble _08144FC8
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x22]
+ b _0814501C
+_08144FC8:
+ ldr r0, =DummyObjectCallback
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x5E
+ bl m4aSongNumStop
+ adds r0, r4, 0
+ bl RemoveObjectAndFreeTiles
+ ldr r5, =0x02020630
+ ldr r4, =0x0203ab88
+ ldr r0, [r4]
+ adds r0, 0x74
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl rotscale_free_entry
+ ldr r0, [r4]
+ adds r0, 0x74
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl RemoveObjectAndFreeTiles
+_0814501C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8144FB0
+
+ thumb_func_start sub_8145030
+sub_8145030: @ 8145030
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _0814505A
+ subs r1, 0x1
+ strh r1, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bne _081450C6
+ adds r0, r4, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081450C6
+ b _08145080
+_0814505A:
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08145090
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081450C6
+ adds r0, r4, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08145088
+_08145080:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _081450C6
+_08145088:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _081450C6
+_08145090:
+ movs r0, 0x2B
+ bl m4aSongNumStart
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldr r0, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartObjectImageAnim
+ ldr r0, =sub_8144FB0
+ str r0, [r4, 0x1C]
+ ldr r2, =0x02020630
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ movs r1, 0x7F
+ ands r1, r2
+ strb r1, [r0]
+_081450C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8145030
+
+ thumb_func_start sub_81450D8
+sub_81450D8: @ 81450D8
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ ldr r1, =gUnknown_085B7B46
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r5, sp, 0x4
+ ldr r1, =gUnknown_085B7B48
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0814516C
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldr r0, [r0, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ bl mplay_has_finished_maybe
+ lsls r0, 24
+ cmp r0, 0
+ beq _08145208
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r4, 0x74
+ subs r4, r0
+ lsrs r0, r4, 31
+ adds r4, r0
+ asrs r4, 1
+ negs r4, r4
+ ldr r0, =0x030075f0
+ ldr r5, =0x0000ffff
+ lsls r4, 24
+ asrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MPlayPanpotControl
+ ldr r0, =0x03007630
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MPlayPanpotControl
+ b _08145208
+ .pool
+_0814516C:
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _081451BC
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldr r0, [r0, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ add r0, sp
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ subs r0, r1, r0
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ subs r1, r0
+ lsls r1, 1
+ mov r0, sp
+ adds r0, 0x5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _08145208
+ .pool
+_081451BC:
+ movs r0, 0x5E
+ bl m4aSongNumStartOrChange
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldr r0, [r0, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _081451E0
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ bl cry_related
+ b _081451EC
+ .pool
+_081451E0:
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl cry_related
+_081451EC:
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldr r0, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartObjectImageAnim
+ movs r0, 0x2D
+ strh r0, [r4, 0x30]
+ ldr r0, =sub_8145030
+ str r0, [r4, 0x1C]
+_08145208:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81450D8
+
+ thumb_func_start sub_8145218
+sub_8145218: @ 8145218
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, =gUnknown_085B7B46
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ blt _08145284
+ ldr r0, =0x0203ab88
+ ldr r0, [r0]
+ ldr r0, [r0, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldr r1, =0x02020630
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _08145288
+ .pool
+_08145284:
+ ldr r0, =sub_8144F94
+ str r0, [r4, 0x1C]
+_08145288:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8145218
+
+ thumb_func_start sub_8145294
+sub_8145294: @ 8145294
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =0x0203ab88
+ ldr r3, [r0]
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _081452DC
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x12]
+ adds r0, 0x5A
+ cmp r2, r0
+ bne _0814533E
+ ldr r2, =0x02020630
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x34
+ b _08145306
+ .pool
+_081452DC:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, =gUnknown_085B6348
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x14]
+ movs r1, 0x87
+ lsls r1, 1
+ adds r0, r1
+ cmp r2, r0
+ bne _0814533E
+ ldr r2, =0x02020630
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x2E
+_08145306:
+ strh r3, [r0, 0x30]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_8145218
+ str r1, [r0]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =sub_81450D8
+ str r1, [r0]
+ movs r0, 0x2B
+ bl m4aSongNumStart
+_0814533E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8145294
+
+ .align 2, 0 @ Don't pad with nop.