summaryrefslogtreecommitdiff
path: root/asm/text_window.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
commit670fef77ac4d9116d5fdc28c0da40622919a062b (patch)
tree61c0e925f059404473826ac775305ba5e2706ab1 /asm/text_window.s
first commit
Diffstat (limited to 'asm/text_window.s')
-rw-r--r--asm/text_window.s948
1 files changed, 948 insertions, 0 deletions
diff --git a/asm/text_window.s b/asm/text_window.s
new file mode 100644
index 000000000..c48d09d03
--- /dev/null
+++ b/asm/text_window.s
@@ -0,0 +1,948 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_814FD04
+sub_814FD04: @ 814FD04
+ push {r4,lr}
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0814FD34 @ =gUnknown_84566A8
+ movs r2, 0xA0
+ lsls r2, 2
+ bl sub_80017D0
+ movs r0, 0x2
+ bl sub_8150408
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FD34: .4byte gUnknown_84566A8
+ thumb_func_end sub_814FD04
+
+ thumb_func_start sub_814FD38
+sub_814FD38: @ 814FD38
+ push {r4,lr}
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0814FD68 @ =gUnknown_841F1C8
+ movs r2, 0xA0
+ lsls r2, 2
+ bl sub_80017D0
+ movs r0, 0
+ bl sub_8150408
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FD68: .4byte gUnknown_841F1C8
+ thumb_func_end sub_814FD38
+
+ thumb_func_start sub_814FD6C
+sub_814FD6C: @ 814FD6C
+ push {r4,lr}
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0814FD9C @ =gUnknown_8470B0C
+ movs r2, 0x98
+ lsls r2, 2
+ bl sub_80017D0
+ movs r0, 0x1
+ bl sub_8150408
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FD9C: .4byte gUnknown_8470B0C
+ thumb_func_end sub_814FD6C
+
+ thumb_func_start sub_814FDA0
+sub_814FDA0: @ 814FDA0
+ push {r4,lr}
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0814FDD0 @ =gUnknown_8471A4C
+ movs r2, 0x90
+ lsls r2, 1
+ bl sub_80017D0
+ movs r0, 0x3
+ bl sub_8150408
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FDD0: .4byte gUnknown_8471A4C
+ thumb_func_end sub_814FDA0
+
+ thumb_func_start sub_814FDD4
+sub_814FDD4: @ 814FDD4
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r1, _0814FDF0 @ =gUnknown_8471B6C
+ movs r2, 0xA0
+ lsls r2, 2
+ bl sub_80017D0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FDF0: .4byte gUnknown_8471B6C
+ thumb_func_end sub_814FDD4
+
+ thumb_func_start sub_814FDF4
+sub_814FDF4: @ 814FDF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r5, _0814FE3C @ =gUnknown_8471E8C
+ lsrs r4, 21
+ adds r1, r4, r5
+ ldr r1, [r1]
+ movs r2, 0x90
+ lsls r2, 1
+ adds r3, r6, 0
+ bl sub_80017D0
+ adds r5, 0x4
+ adds r4, r5
+ ldr r0, [r4]
+ mov r1, r8
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FE3C: .4byte gUnknown_8471E8C
+ thumb_func_end sub_814FDF4
+
+ thumb_func_start sub_814FE40
+sub_814FE40: @ 814FE40
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, _0814FE68 @ =gUnknown_300500C
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x14]
+ lsrs r1, 3
+ adds r2, r4, 0
+ bl sub_814FFC4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FE68: .4byte gUnknown_300500C
+ thumb_func_end sub_814FE40
+
+ thumb_func_start sub_814FE6C
+sub_814FE6C: @ 814FE6C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814FEA8 @ =gUnknown_84566A8
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r3, r4, 0
+ bl sub_80017D0
+ movs r0, 0x2
+ bl sub_8150408
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FEA8: .4byte gUnknown_84566A8
+ thumb_func_end sub_814FE6C
+
+ thumb_func_start sub_814FEAC
+sub_814FEAC: @ 814FEAC
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814FEE8 @ =gUnknown_841F1C8
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r3, r4, 0
+ bl sub_80017D0
+ movs r0, 0
+ bl sub_8150408
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FEE8: .4byte gUnknown_841F1C8
+ thumb_func_end sub_814FEAC
+
+ thumb_func_start sub_814FEEC
+sub_814FEEC: @ 814FEEC
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814FF28 @ =gUnknown_8470B0C
+ movs r2, 0x98
+ lsls r2, 2
+ adds r3, r4, 0
+ bl sub_80017D0
+ movs r0, 0x1
+ bl sub_8150408
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FF28: .4byte gUnknown_8470B0C
+ thumb_func_end sub_814FEEC
+
+ thumb_func_start sub_814FF2C
+sub_814FF2C: @ 814FF2C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814FF68 @ =gUnknown_8471A4C
+ movs r2, 0x90
+ lsls r2, 1
+ adds r3, r4, 0
+ bl sub_80017D0
+ movs r0, 0x3
+ bl sub_8150408
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FF68: .4byte gUnknown_8471A4C
+ thumb_func_end sub_814FF2C
+
+ thumb_func_start sub_814FF6C
+sub_814FF6C: @ 814FF6C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814FF94 @ =gUnknown_8471A4C
+ movs r2, 0x90
+ lsls r2, 1
+ adds r3, r4, 0
+ bl sub_80017D0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FF94: .4byte gUnknown_8471A4C
+ thumb_func_end sub_814FF6C
+
+ thumb_func_start sub_814FF98
+sub_814FF98: @ 814FF98
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814FFC0 @ =gUnknown_8471B6C
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r3, r4, 0
+ bl sub_80017D0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814FFC0: .4byte gUnknown_8471B6C
+ thumb_func_end sub_814FF98
+
+ thumb_func_start sub_814FFC4
+sub_814FFC4: @ 814FFC4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08150018 @ =gUnknown_8471E8C
+ lsls r4, 3
+ adds r1, r4, r5
+ ldr r1, [r1]
+ movs r2, 0x90
+ lsls r2, 1
+ adds r3, r6, 0
+ bl sub_80017D0
+ adds r5, 0x4
+ adds r4, r5
+ ldr r0, [r4]
+ mov r1, r8
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08150018: .4byte gUnknown_8471E8C
+ thumb_func_end sub_814FFC4
+
+ thumb_func_start sub_815001C
+sub_815001C: @ 815001C
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, _08150044 @ =gUnknown_300500C
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x14]
+ lsrs r1, 3
+ adds r2, r4, 0
+ bl sub_814FFC4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08150044: .4byte gUnknown_300500C
+ thumb_func_end sub_815001C
+
+ thumb_func_start sub_8150048
+sub_8150048: @ 8150048
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004950
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8004950
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8004950
+ mov r9, r0
+ mov r2, r9
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_8004950
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ mov r0, r8
+ subs r0, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ subs r4, r6, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ mov r10, r0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ ldr r2, [sp, 0xC]
+ str r2, [sp, 0x8]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r4, 0
+ bl sub_8002554
+ adds r1, r5, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r8
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x18]
+ mov r2, r9
+ lsls r0, r2, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ str r0, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ ldr r2, [sp, 0xC]
+ str r2, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x18]
+ adds r3, r4, 0
+ bl sub_8002554
+ adds r1, r5, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ add r8, r9
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r2, r10
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_8002554
+ adds r1, r5, 0x3
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r9, r2
+ mov r0, r10
+ str r0, [sp]
+ ldr r2, [sp, 0x10]
+ lsls r4, r2, 24
+ lsrs r4, 24
+ str r4, [sp, 0x4]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x14]
+ mov r3, r9
+ bl sub_8002554
+ adds r1, r5, 0x5
+ lsls r1, 16
+ lsrs r1, 16
+ mov r2, r10
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_8002554
+ adds r1, r5, 0x6
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x10]
+ adds r6, r2
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r10
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ ldr r2, [sp, 0xC]
+ str r2, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r6, 0
+ bl sub_8002554
+ adds r1, r5, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x1C]
+ str r0, [sp]
+ mov r2, r10
+ str r2, [sp, 0x4]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x18]
+ adds r3, r6, 0
+ bl sub_8002554
+ adds r5, 0x8
+ lsls r5, 16
+ lsrs r5, 16
+ mov r2, r10
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ mov r2, r8
+ adds r3, r6, 0
+ bl sub_8002554
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8150048
+
+ thumb_func_start sub_81501D0
+sub_81501D0: @ 81501D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r4, r0, 0
+ mov r9, r1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8004950
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004950
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8004950
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8004950
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_8004950
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, r8
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ mov r1, r9
+ adds r3, r4, 0
+ bl sub_8002554
+ mov r1, r9
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r8
+ adds r0, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ subs r0, r5, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ adds r3, r4, 0
+ bl sub_8002554
+ mov r1, r9
+ adds r1, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ add r8, r5
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_8002554
+ mov r1, r9
+ adds r1, 0x3
+ lsls r1, 16
+ lsrs r1, 16
+ adds r5, r6, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r4, [sp, 0xC]
+ subs r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x10]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r1, r9
+ adds r1, 0x5
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ mov r2, r8
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r1, r9
+ adds r1, 0x6
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ adds r6, r0
+ subs r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x10]
+ adds r3, r6, 0
+ bl sub_8002554
+ mov r1, r9
+ adds r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r6, 0
+ bl sub_8002554
+ movs r0, 0x8
+ add r9, r0
+ mov r0, r9
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ mov r1, r9
+ mov r2, r8
+ adds r3, r6, 0
+ bl sub_8002554
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81501D0
+
+ thumb_func_start sub_815036C
+sub_815036C: @ 815036C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8004950
+ mov r9, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8004950
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8004950
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8004950
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x4
+ bl sub_8004950
+ movs r1, 0x1
+ negs r1, r1
+ add r8, r1
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ subs r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ lsls r0, 24
+ movs r1, 0x80
+ lsls r1, 18
+ adds r0, r1
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ mov r0, r9
+ movs r1, 0
+ mov r2, r8
+ adds r3, r5, 0
+ bl sub_8002554
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_815036C
+
+ thumb_func_start sub_8150408
+sub_8150408: @ 8150408
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08150444
+ lsls r0, 2
+ ldr r1, _0815041C @ =_08150420
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0815041C: .4byte _08150420
+ .align 2, 0
+_08150420:
+ .4byte _08150434
+ .4byte _08150438
+ .4byte _0815043C
+ .4byte _08150440
+ .4byte _08150444
+_08150434:
+ movs r0, 0
+ b _08150446
+_08150438:
+ movs r0, 0x10
+ b _08150446
+_0815043C:
+ movs r0, 0x20
+ b _08150446
+_08150440:
+ movs r0, 0x30
+ b _08150446
+_08150444:
+ movs r0, 0x40
+_08150446:
+ lsls r0, 1
+ ldr r1, _08150450 @ =gUnknown_8471DEC
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08150450: .4byte gUnknown_8471DEC
+ thumb_func_end sub_8150408
+
+ .align 2, 0 @ Don't pad with nop.