summaryrefslogtreecommitdiff
path: root/asm/code_8041AD0.s
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-10-21 17:48:40 -0500
committerSeth Barberee <seth.barberee@gmail.com>2020-10-21 17:48:40 -0500
commite1f9c17e3569e666d81f9d20fb9d57d4cd614eb0 (patch)
treede9cf09407173cb0530ca52cbf7d186686375f88 /asm/code_8041AD0.s
parent184d3819ab381c54821b157770d015c0dce8d82a (diff)
further splitting and decomping
Diffstat (limited to 'asm/code_8041AD0.s')
-rw-r--r--asm/code_8041AD0.s1757
1 files changed, 1757 insertions, 0 deletions
diff --git a/asm/code_8041AD0.s b/asm/code_8041AD0.s
new file mode 100644
index 0000000..6ddeb36
--- /dev/null
+++ b/asm/code_8041AD0.s
@@ -0,0 +1,1757 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8041C94
+sub_8041C94:
+ push {lr}
+ ldr r1, _08041CA4
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041CA4: .4byte 0x00000171
+ thumb_func_end sub_8041C94
+
+ thumb_func_start sub_8041CA8
+sub_8041CA8:
+ push {lr}
+ movs r1, 0x7
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041CA8
+
+ thumb_func_start sub_8041CB8
+sub_8041CB8:
+ push {lr}
+ ldr r1, _08041CC8
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041CC8: .4byte 0x0000018b
+ thumb_func_end sub_8041CB8
+
+ thumb_func_start sub_8041CCC
+sub_8041CCC:
+ push {lr}
+ movs r1, 0xC5
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041CCC
+
+ thumb_func_start sub_8041CDC
+sub_8041CDC:
+ push {lr}
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041CDC
+
+ thumb_func_start sub_8041CEC
+sub_8041CEC:
+ push {lr}
+ ldr r1, _08041CF8
+ bl sub_80421C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041CF8: .4byte 0x0000019d
+ thumb_func_end sub_8041CEC
+
+ thumb_func_start nullsub_74
+nullsub_74:
+ bx lr
+ thumb_func_end nullsub_74
+
+ thumb_func_start sub_8041D00
+sub_8041D00:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ movs r1, 0x2F
+ movs r2, 0x1
+ bl sub_804151C
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041D00
+
+ thumb_func_start nullsub_75
+nullsub_75:
+ bx lr
+ thumb_func_end nullsub_75
+
+ thumb_func_start nullsub_76
+nullsub_76:
+ bx lr
+ thumb_func_end nullsub_76
+
+ thumb_func_start nullsub_77
+nullsub_77:
+ bx lr
+ thumb_func_end nullsub_77
+
+ thumb_func_start nullsub_78
+nullsub_78:
+ bx lr
+ thumb_func_end nullsub_78
+
+ thumb_func_start nullsub_79
+nullsub_79:
+ bx lr
+ thumb_func_end nullsub_79
+
+ thumb_func_start nullsub_80
+nullsub_80:
+ bx lr
+ thumb_func_end nullsub_80
+
+ thumb_func_start sub_8041D38
+sub_8041D38:
+ push {lr}
+ movs r1, 0x21
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041D38
+
+ thumb_func_start sub_8041D48
+sub_8041D48:
+ push {lr}
+ ldr r1, _08041D54
+ bl sub_80421C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041D54: .4byte 0x00000191
+ thumb_func_end sub_8041D48
+
+ thumb_func_start nullsub_81
+nullsub_81:
+ bx lr
+ thumb_func_end nullsub_81
+
+ thumb_func_start sub_8041D5C
+sub_8041D5C:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8042768
+ lsls r0, 24
+ cmp r0, 0
+ beq _08041D7E
+ ldr r0, [r4, 0x70]
+ movs r1, 0x89
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0xB
+ bl sub_803ED30
+_08041D7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041D5C
+
+ thumb_func_start sub_8041D84
+sub_8041D84:
+ push {lr}
+ ldr r1, _08041D90
+ bl sub_80421C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041D90: .4byte 0x0000019f
+ thumb_func_end sub_8041D84
+
+ thumb_func_start nullsub_82
+nullsub_82:
+ bx lr
+ thumb_func_end nullsub_82
+
+ thumb_func_start nullsub_83
+nullsub_83:
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_8041D9C
+sub_8041D9C:
+ push {lr}
+ ldr r1, _08041DAC
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041DAC: .4byte 0x00000131
+ thumb_func_end sub_8041D9C
+
+ thumb_func_start sub_8041DB0
+sub_8041DB0:
+ push {lr}
+ movs r1, 0x30
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041DB0
+
+ thumb_func_start nullsub_84
+nullsub_84:
+ bx lr
+ thumb_func_end nullsub_84
+
+ thumb_func_start nullsub_85
+nullsub_85:
+ bx lr
+ thumb_func_end nullsub_85
+
+ thumb_func_start nullsub_204
+nullsub_204:
+ bx lr
+ thumb_func_end nullsub_204
+
+ thumb_func_start nullsub_86
+nullsub_86:
+ bx lr
+ thumb_func_end nullsub_86
+
+ thumb_func_start nullsub_87
+nullsub_87:
+ bx lr
+ thumb_func_end nullsub_87
+
+ thumb_func_start nullsub_88
+nullsub_88:
+ bx lr
+ thumb_func_end nullsub_88
+
+ thumb_func_start sub_8041DD8
+sub_8041DD8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r1, 0xE
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ beq _08041DF8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041E02
+_08041DF8:
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0x1
+ bl sub_804151C
+_08041E02:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041DD8
+
+ thumb_func_start nullsub_89
+nullsub_89:
+ bx lr
+ thumb_func_end nullsub_89
+
+ thumb_func_start sub_8041E0C
+sub_8041E0C:
+ push {lr}
+ movs r1, 0x41
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041E0C
+
+ thumb_func_start sub_8041E1C
+sub_8041E1C:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x8F
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r4, 0
+ bl sub_80421C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041E1C
+
+ thumb_func_start sub_8041E3C
+sub_8041E3C:
+ push {lr}
+ movs r1, 0xD7
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041E3C
+
+ thumb_func_start sub_8041E4C
+sub_8041E4C:
+ push {lr}
+ ldr r1, _08041E5C
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041E5C: .4byte 0x000001b1
+ thumb_func_end sub_8041E4C
+
+ thumb_func_start sub_8041E60
+sub_8041E60:
+ push {lr}
+ ldr r1, _08041E70
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041E70: .4byte 0x000001a9
+ thumb_func_end sub_8041E60
+
+ thumb_func_start sub_8041E74
+sub_8041E74:
+ push {lr}
+ movs r1, 0xC9
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041E74
+
+ thumb_func_start sub_8041E84
+sub_8041E84:
+ push {lr}
+ movs r1, 0xC7
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041E84
+
+ thumb_func_start sub_8041E94
+sub_8041E94:
+ push {lr}
+ movs r1, 0xC8
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041E94
+
+ thumb_func_start sub_8041EA4
+sub_8041EA4:
+ push {lr}
+ movs r1, 0x15
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041EA4
+
+ thumb_func_start sub_8041EB4
+sub_8041EB4:
+ push {lr}
+ ldr r1, _08041EC4
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041EC4: .4byte 0x00000171
+ thumb_func_end sub_8041EB4
+
+ thumb_func_start sub_8041EC8
+sub_8041EC8:
+ push {lr}
+ ldr r1, _08041ED4
+ bl sub_80421C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041ED4: .4byte 0x00000197
+ thumb_func_end sub_8041EC8
+
+ thumb_func_start sub_8041ED8
+sub_8041ED8:
+ push {lr}
+ ldr r1, _08041EE4
+ bl sub_80421C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041EE4: .4byte 0x00000197
+ thumb_func_end sub_8041ED8
+
+ thumb_func_start sub_8041EE8
+sub_8041EE8:
+ push {lr}
+ movs r1, 0x15
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041EE8
+
+ thumb_func_start sub_8041EF8
+sub_8041EF8:
+ push {lr}
+ movs r1, 0xF
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041EF8
+
+ thumb_func_start sub_8041F08
+sub_8041F08:
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x15
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_8041550
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041F08
+
+ thumb_func_start nullsub_90
+nullsub_90:
+ bx lr
+ thumb_func_end nullsub_90
+
+ thumb_func_start sub_8041F28
+sub_8041F28:
+ push {lr}
+ cmp r1, 0
+ bne _08041F3A
+ movs r1, 0xCA
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041F42
+_08041F3A:
+ ldr r1, _08041F48
+ movs r2, 0x1
+ bl sub_804151C
+_08041F42:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041F48: .4byte 0x00000193
+ thumb_func_end sub_8041F28
+
+ thumb_func_start sub_8041F4C
+sub_8041F4C:
+ push {lr}
+ cmp r1, 0
+ bne _08041F60
+ ldr r1, _08041F5C
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041F68
+ .align 2, 0
+_08041F5C: .4byte 0x0000018f
+_08041F60:
+ ldr r1, _08041F6C
+ movs r2, 0x1
+ bl sub_804151C
+_08041F68:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041F6C: .4byte 0x00000191
+ thumb_func_end sub_8041F4C
+
+ thumb_func_start sub_8041F70
+sub_8041F70:
+ push {lr}
+ cmp r1, 0
+ bne _08041F84
+ ldr r1, _08041F80
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041F8E
+ .align 2, 0
+_08041F80: .4byte 0x000001a9
+_08041F84:
+ movs r1, 0xC9
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+_08041F8E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041F70
+
+ thumb_func_start sub_8041F94
+sub_8041F94:
+ push {lr}
+ cmp r1, 0
+ bne _08041FA6
+ movs r1, 0xC7
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041FB0
+_08041FA6:
+ movs r1, 0xC8
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+_08041FB0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041F94
+
+ thumb_func_start sub_8041FB4
+sub_8041FB4:
+ push {lr}
+ cmp r1, 0
+ bne _08041FC8
+ ldr r1, _08041FC4
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041FD2
+ .align 2, 0
+_08041FC4: .4byte 0x000001a9
+_08041FC8:
+ movs r1, 0xC9
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+_08041FD2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041FB4
+
+ thumb_func_start sub_8041FD8
+sub_8041FD8:
+ push {lr}
+ cmp r1, 0
+ bne _08041FEA
+ movs r1, 0xCA
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ b _08041FF2
+_08041FEA:
+ ldr r1, _08041FF8
+ movs r2, 0x1
+ bl sub_804151C
+_08041FF2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08041FF8: .4byte 0x00000193
+ thumb_func_end sub_8041FD8
+
+ thumb_func_start sub_8041FFC
+sub_8041FFC:
+ push {lr}
+ cmp r1, 0
+ bne _0804200E
+ movs r1, 0xC7
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ b _08042018
+_0804200E:
+ movs r1, 0xC8
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+_08042018:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8041FFC
+
+ thumb_func_start sub_804201C
+sub_804201C:
+ push {lr}
+ cmp r1, 0
+ bne _08042030
+ ldr r1, _0804202C
+ movs r2, 0x1
+ bl sub_804151C
+ b _08042038
+ .align 2, 0
+_0804202C: .4byte 0x0000018f
+_08042030:
+ ldr r1, _0804203C
+ movs r2, 0x1
+ bl sub_804151C
+_08042038:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804203C: .4byte 0x00000191
+ thumb_func_end sub_804201C
+
+ thumb_func_start sub_8042040
+sub_8042040:
+ push {lr}
+ cmp r1, 0
+ bne _08042052
+ movs r1, 0xC6
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ b _0804205A
+_08042052:
+ movs r1, 0xD
+ movs r2, 0x1
+ bl sub_804151C
+_0804205A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042040
+
+ thumb_func_start sub_8042060
+sub_8042060:
+ push {lr}
+ cmp r1, 0
+ bne _08042074
+ ldr r1, _08042070
+ movs r2, 0x1
+ bl sub_804151C
+ b _0804207C
+ .align 2, 0
+_08042070: .4byte 0x0000018d
+_08042074:
+ movs r1, 0xE
+ movs r2, 0x1
+ bl sub_804151C
+_0804207C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042060
+
+ thumb_func_start sub_8042080
+sub_8042080:
+ push {lr}
+ cmp r1, 0
+ bne _08042092
+ movs r1, 0xC6
+ lsls r1, 1
+ movs r2, 0x1
+ bl sub_804151C
+ b _0804209A
+_08042092:
+ movs r1, 0xD
+ movs r2, 0x1
+ bl sub_804151C
+_0804209A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042080
+
+ thumb_func_start sub_80420A0
+sub_80420A0:
+ push {lr}
+ ldr r1, _080420B0
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080420B0: .4byte 0x00000143
+ thumb_func_end sub_80420A0
+
+ thumb_func_start nullsub_91
+nullsub_91:
+ bx lr
+ thumb_func_end nullsub_91
+
+ thumb_func_start sub_80420B8
+sub_80420B8:
+ push {lr}
+ movs r1, 0x19
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80420B8
+
+ thumb_func_start sub_80420C8
+sub_80420C8:
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x15
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_8041550
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80420C8
+
+ thumb_func_start nullsub_92
+nullsub_92:
+ bx lr
+ thumb_func_end nullsub_92
+
+ thumb_func_start sub_80420E8
+sub_80420E8:
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, [r1, 0x8]
+ ldr r0, _0804211C
+ ldr r0, [r0]
+ ldr r2, _08042120
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08042106
+ adds r0, r1, 0
+ bl sub_806F62C
+ adds r1, r0, 0
+_08042106:
+ cmp r1, 0x1
+ beq _08042124
+ cmp r1, 0x1
+ bcc _08042116
+ cmp r1, 0x2
+ beq _08042128
+ cmp r1, 0x3
+ beq _0804212C
+_08042116:
+ movs r1, 0x8
+ b _0804212E
+ .align 2, 0
+_0804211C: .4byte gUnknown_203B418
+_08042120: .4byte 0x0000016d
+_08042124:
+ movs r1, 0x9
+ b _0804212E
+_08042128:
+ movs r1, 0xA
+ b _0804212E
+_0804212C:
+ movs r1, 0xB
+_0804212E:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_8041550
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80420E8
+
+ thumb_func_start sub_8042148
+sub_8042148:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08042164
+ bl sub_80421C0
+ movs r1, 0x9F
+ lsls r1, 1
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042164: .4byte 0x000001a7
+ thumb_func_end sub_8042148
+
+ thumb_func_start nullsub_93
+nullsub_93:
+ bx lr
+ thumb_func_end nullsub_93
+
+ thumb_func_start sub_804216C
+sub_804216C:
+ push {lr}
+ adds r0, r1, 0
+ cmp r2, 0x1
+ bne _0804217E
+ movs r1, 0xF8
+ movs r2, 0x1
+ bl sub_804151C
+ b _08042186
+_0804217E:
+ movs r1, 0xF9
+ movs r2, 0x1
+ bl sub_804151C
+_08042186:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804216C
+
+ thumb_func_start sub_804218C
+sub_804218C:
+ push {lr}
+ adds r0, r1, 0
+ movs r1, 0x2A
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804218C
+
+ thumb_func_start sub_804219C
+sub_804219C:
+ push {lr}
+ movs r1, 0x90
+ movs r2, 0x1
+ bl sub_80416E0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804219C
+
+ thumb_func_start sub_80421AC
+sub_80421AC:
+ push {lr}
+ adds r0, r1, 0
+ ldr r1, _080421BC
+ movs r2, 0x1
+ bl sub_804151C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080421BC: .4byte 0x00000167
+ thumb_func_end sub_80421AC
+
+ thumb_func_start sub_80421C0
+sub_80421C0:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ adds r4, r0, 0
+ cmp r2, 0
+ bne _080421D4
+ bl sub_8083E38
+ b _080421E6
+_080421D4:
+ adds r0, r2, 0
+ bl sub_8042768
+ lsls r0, 24
+ cmp r0, 0
+ beq _080421E6
+ adds r0, r4, 0
+ bl sub_8083E38
+_080421E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80421C0
+
+ thumb_func_start sub_80421EC
+sub_80421EC:
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042202
+ adds r0, r4, 0
+ bl sub_8083E38
+_08042202:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80421EC
+
+ thumb_func_start sub_8042208
+sub_8042208:
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _0804221C
+ movs r0, 0xA9
+ lsls r0, 1
+ bl sub_8083E38
+ b _08042234
+_0804221C:
+ cmp r1, 0x1
+ bne _0804222C
+ ldr r0, _08042228
+ bl sub_8083E38
+ b _08042234
+ .align 2, 0
+_08042228: .4byte 0x00000151
+_0804222C:
+ movs r0, 0xA8
+ lsls r0, 1
+ bl sub_8083E38
+_08042234:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042208
+
+ thumb_func_start sub_8042238
+sub_8042238:
+ push {lr}
+ ldr r0, [r1, 0x70]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _08042250
+ ldr r0, _0804224C
+ bl sub_8083E38
+ b _08042258
+ .align 2, 0
+_0804224C: .4byte 0x00000157
+_08042250:
+ movs r0, 0xAB
+ lsls r0, 1
+ bl sub_8083E38
+_08042258:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042238
+
+ thumb_func_start sub_804225C
+sub_804225C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ adds r7, r4, 0
+ cmp r4, 0x11
+ bne _08042274
+ b _08042384
+_08042274:
+ adds r0, r5, 0
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042282
+ b _08042384
+_08042282:
+ adds r0, r4, 0
+ bl sub_800EF28
+ bl sub_800EF64
+ movs r0, 0x4
+ movs r1, 0x42
+ bl sub_803E708
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ cmp r0, 0
+ bge _080422AA
+ adds r0, 0xFF
+_080422AA:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _080422FC
+ ldr r2, [sp]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp]
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1
+ cmp r0, 0
+ bge _080422CE
+ adds r0, 0xFF
+_080422CE:
+ lsls r0, 8
+ lsrs r0, 16
+ lsls r0, 16
+ ldr r1, _08042300
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp]
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_800E448
+ adds r6, r0, 0
+ cmp r4, 0x4
+ bne _08042308
+ ldr r1, _08042304
+ movs r0, 0
+ bl sub_80421C0
+ movs r0, 0x28
+ movs r1, 0x33
+ bl sub_803E708
+ b _08042360
+ .align 2, 0
+_080422FC: .4byte 0xffff0000
+_08042300: .4byte 0x0000ffff
+_08042304: .4byte 0x00000193
+_08042308:
+ cmp r7, 0x8
+ bne _08042358
+ mov r0, r8
+ ldr r7, [r0, 0x70]
+ adds r0, r7, 0
+ adds r0, 0x46
+ ldrb r4, [r0]
+ movs r5, 0
+ b _0804231C
+_0804231A:
+ adds r5, 0x2
+_0804231C:
+ ldr r0, _08042354
+ cmp r5, r0
+ bgt _08042346
+ subs r4, 0x1
+ movs r0, 0x7
+ ands r4, r0
+ mov r0, r8
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_806CDD4
+ movs r0, 0x2
+ movs r1, 0x33
+ bl sub_803E708
+ adds r0, r6, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804231A
+_08042346:
+ movs r0, 0x7
+ ands r4, r0
+ adds r0, r7, 0
+ adds r0, 0x46
+ strb r4, [r0]
+ b _08042360
+ .align 2, 0
+_08042354: .4byte 0x000003e7
+_08042358:
+ movs r0, 0x28
+ movs r1, 0x33
+ bl sub_803E708
+_08042360:
+ movs r5, 0
+ ldr r4, _08042368
+ b _0804236E
+ .align 2, 0
+_08042368: .4byte 0x000003e7
+_0804236C:
+ adds r5, 0x1
+_0804236E:
+ cmp r5, r4
+ bgt _08042384
+ movs r0, 0x42
+ bl sub_803E46C
+ adds r0, r6, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804236C
+_08042384:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804225C
+
+ thumb_func_start sub_8042390
+sub_8042390:
+ push {r4-r6,lr}
+ sub sp, 0x18
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_8042768
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042454
+ ldrb r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ movs r6, 0
+ cmp r0, 0
+ bne _080423B0
+ ldrb r6, [r4, 0x2]
+_080423B0:
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_800EF40
+ bl sub_800EF64
+ movs r0, 0x4
+ movs r1, 0x42
+ bl sub_803E708
+ ldr r0, [r5, 0xC]
+ cmp r0, 0
+ bge _080423CC
+ adds r0, 0xFF
+_080423CC:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _08042428
+ ldr r2, [sp, 0x14]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x14]
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ bge _080423E2
+ adds r0, 0xFF
+_080423E2:
+ lsls r0, 8
+ lsrs r0, 16
+ lsls r0, 16
+ ldr r4, _0804242C
+ ands r4, r2
+ orrs r4, r0
+ str r4, [sp, 0x14]
+ asrs r4, 16
+ ldr r0, _08042430
+ ldr r0, [r0]
+ ldr r1, _08042434
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r4, r0
+ lsrs r0, r4, 31
+ adds r4, r0
+ asrs r4, 1
+ adds r4, 0x1
+ adds r1, r5, 0
+ adds r1, 0x28
+ add r0, sp, 0x4
+ bl sub_8005700
+ add r1, sp, 0x14
+ str r4, [sp]
+ adds r0, r6, 0
+ add r2, sp, 0x4
+ movs r3, 0
+ bl sub_800E49C
+ adds r5, r0, 0
+ movs r4, 0
+ ldr r6, _08042438
+ b _0804243E
+ .align 2, 0
+_08042428: .4byte 0xffff0000
+_0804242C: .4byte 0x0000ffff
+_08042430: .4byte gUnknown_203B418
+_08042434: .4byte 0x000181f2
+_08042438: .4byte 0x000003e7
+_0804243C:
+ adds r4, 0x1
+_0804243E:
+ cmp r4, r6
+ bgt _08042454
+ movs r0, 0x42
+ bl sub_803E46C
+ adds r0, r5, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804243C
+_08042454:
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042390
+
+ thumb_func_start sub_804245C
+sub_804245C:
+ push {r4-r6,lr}
+ sub sp, 0x18
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_8042768
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042518
+ ldrb r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ movs r6, 0
+ cmp r0, 0
+ bne _0804247C
+ ldrb r6, [r4, 0x2]
+_0804247C:
+ bl sub_800EF64
+ movs r0, 0x4
+ movs r1, 0x42
+ bl sub_803E708
+ ldr r0, [r5, 0xC]
+ cmp r0, 0
+ bge _08042490
+ adds r0, 0xFF
+_08042490:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _080424EC
+ ldr r2, [sp, 0x14]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x14]
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ bge _080424A6
+ adds r0, 0xFF
+_080424A6:
+ lsls r0, 8
+ lsrs r0, 16
+ lsls r0, 16
+ ldr r4, _080424F0
+ ands r4, r2
+ orrs r4, r0
+ str r4, [sp, 0x14]
+ asrs r4, 16
+ ldr r0, _080424F4
+ ldr r0, [r0]
+ ldr r1, _080424F8
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r4, r0
+ lsrs r0, r4, 31
+ adds r4, r0
+ asrs r4, 1
+ adds r4, 0x1
+ adds r1, r5, 0
+ adds r1, 0x28
+ add r0, sp, 0x4
+ bl sub_8005700
+ add r1, sp, 0x14
+ str r4, [sp]
+ adds r0, r6, 0
+ add r2, sp, 0x4
+ movs r3, 0x1
+ bl sub_800E49C
+ adds r5, r0, 0
+ movs r4, 0
+ ldr r6, _080424FC
+ b _08042502
+ .align 2, 0
+_080424EC: .4byte 0xffff0000
+_080424F0: .4byte 0x0000ffff
+_080424F4: .4byte gUnknown_203B418
+_080424F8: .4byte 0x000181f2
+_080424FC: .4byte 0x000003e7
+_08042500:
+ adds r4, 0x1
+_08042502:
+ cmp r4, r6
+ bgt _08042518
+ movs r0, 0x42
+ bl sub_803E46C
+ adds r0, r5, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042500
+_08042518:
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804245C
+
+ thumb_func_start sub_8042520
+sub_8042520:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ adds r4, r0, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804253A
+ b _08042664
+_0804253A:
+ ldr r0, [r4, 0x70]
+ adds r0, 0x46
+ ldrb r5, [r0]
+ ldr r0, [r4, 0xC]
+ cmp r0, 0
+ bge _08042548
+ adds r0, 0xFF
+_08042548:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _0804264C
+ ldr r2, [sp, 0x2C]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x2C]
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bge _0804255E
+ adds r0, 0xFF
+_0804255E:
+ lsls r0, 8
+ lsrs r0, 16
+ lsls r0, 16
+ ldr r1, _08042650
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x2C]
+ asrs r1, 16
+ ldr r0, _08042654
+ ldr r0, [r0]
+ ldr r2, _08042658
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r1, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r7, r1, 1
+ ldr r0, _0804265C
+ str r0, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ str r5, [sp, 0xC]
+ add r1, sp, 0x4
+ add r4, sp, 0x2C
+ ldrh r0, [r4]
+ strh r0, [r1, 0xC]
+ ldr r0, [sp, 0x2C]
+ asrs r0, 16
+ strh r0, [r1, 0xE]
+ adds r0, r1, 0
+ strh r2, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x18]
+ str r7, [sp, 0x1C]
+ add r0, sp, 0x20
+ bl sub_8004E8C
+ add r0, sp, 0x4
+ movs r1, 0
+ bl sub_8041764
+ adds r6, r0, 0
+ mov r10, r4
+ lsls r1, r5, 2
+ mov r0, sp
+ adds r0, 0x30
+ str r0, [sp, 0x38]
+ ldr r0, _08042660
+ adds r5, r1, r0
+ movs r1, 0x5
+ mov r8, r1
+ mov r9, r10
+_080425CC:
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ adds r3, r7, 0
+ bl sub_800E8AC
+ movs r0, 0x42
+ bl sub_803E46C
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ lsls r0, 2
+ mov r1, r9
+ ldrh r1, [r1]
+ adds r0, r1
+ mov r2, r9
+ strh r0, [r2]
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ lsls r1, 2
+ ldrh r0, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x2]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ ldr r0, _08042654
+ ldr r0, [r0]
+ ldr r2, _08042658
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r1, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r7, r1, 1
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0
+ bge _080425CC
+ bl sub_800DBBC
+ mov r2, r10
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r0, 8
+ str r0, [sp, 0x30]
+ add r0, sp, 0x2C
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ lsls r0, 8
+ ldr r1, [sp, 0x38]
+ str r0, [r1, 0x4]
+ movs r1, 0xD0
+ lsls r1, 1
+ ldr r0, [sp, 0x38]
+ movs r2, 0x1
+ bl sub_80416E0
+ adds r6, r0, 0
+ b _08042668
+ .align 2, 0
+_0804264C: .4byte 0xffff0000
+_08042650: .4byte 0x0000ffff
+_08042654: .4byte gUnknown_203B418
+_08042658: .4byte 0x000181f2
+_0804265C: .4byte 0x00000165
+_08042660: .4byte gUnknown_80F4448
+_08042664:
+ movs r6, 0x1
+ negs r6, r6
+_08042668:
+ adds r0, r6, 0
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042520
+
+ thumb_func_start sub_804267C
+sub_804267C:
+ push {r4,lr}
+ ldr r4, _080426B8
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08042694
+ cmp r0, 0
+ blt _08042694
+ cmp r0, 0x2
+ ble _080426AC
+_08042694:
+ ldr r0, _080426BC
+ ldr r0, [r0]
+ ldr r1, _080426C0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl GetStairDirection
+ lsls r0, 24
+ ldr r4, _080426C4
+ cmp r0, 0
+ beq _080426AC
+ subs r4, 0x1
+_080426AC:
+ adds r0, r4, 0
+ bl sub_8083E38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080426B8: .4byte 0x000003e5
+_080426BC: .4byte gUnknown_203B418
+_080426C0: .4byte 0x00000644
+_080426C4: .4byte 0x00000155
+ thumb_func_end sub_804267C
+
+ thumb_func_start sub_80426C8
+sub_80426C8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0x3
+ bne _080426D8
+ movs r0, 0
+ bl sub_8083E88
+_080426D8:
+ cmp r5, 0x4
+ beq _080426F0
+ ldr r0, _080426EC
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_8083E38
+ b _080426FC
+ .align 2, 0
+_080426EC: .4byte gUnknown_80F67DC
+_080426F0:
+ ldr r0, _08042708
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_8083E38
+_080426FC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ bl sub_8042B34
+ b _08042712
+ .align 2, 0
+_08042708: .4byte gUnknown_80F67E4
+_0804270C:
+ movs r0, 0x46
+ bl sub_803E46C
+_08042712:
+ bl sub_8042CC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804270C
+ bl sub_8042D7C
+ bl sub_8040238
+ movs r0, 0x1
+ bl sub_8052210
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80426C8
+
+ thumb_func_start sub_8042730
+sub_8042730:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x8
+ movs r2, 0x8
+ bl sub_806CDD4
+ movs r5, 0
+ b _08042742
+_08042740:
+ adds r5, 0x1
+_08042742:
+ cmp r5, 0x63
+ bgt _08042760
+ movs r0, 0x51
+ bl sub_803E46C
+ ldr r0, [r4, 0x40]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08042760
+ adds r0, r4, 0
+ adds r0, 0x6B
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _08042740
+_08042760:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042730
+
+ thumb_func_start sub_8042768
+sub_8042768:
+ push {lr}
+ adds r1, r0, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08042778
+_08042774:
+ movs r0, 0
+ b _080427A6
+_08042778:
+ ldr r0, _08042794
+ ldr r2, [r0]
+ ldr r3, _08042798
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804279C
+ subs r3, 0x12
+ adds r0, r2, r3
+ ldr r0, [r0]
+ cmp r0, r1
+ bne _08042774
+ movs r0, 0x1
+ b _080427A6
+ .align 2, 0
+_08042794: .4byte gUnknown_203B418
+_08042798: .4byte 0x0001820a
+_0804279C:
+ adds r0, r1, 0
+ bl sub_8045888
+ lsls r0, 24
+ lsrs r0, 24
+_080427A6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042768
+
+ thumb_func_start sub_80427AC
+sub_80427AC:
+ push {r4-r6,lr}
+ movs r6, 0
+_080427B0:
+ ldr r0, _08042808
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0804280C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080427FA
+ ldr r5, [r4, 0x70]
+ adds r1, r5, 0
+ adds r1, 0xF3
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080427FA
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl sub_80429A0
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ bne _080427FA
+ ldr r0, _08042810
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08042814
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl sub_805239C
+_080427FA:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _080427B0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042808: .4byte gUnknown_203B418
+_0804280C: .4byte 0x000135cc
+_08042810: .4byte gUnknown_202DF98
+_08042814: .4byte gUnknown_8100270
+ thumb_func_end sub_80427AC
+
+ thumb_func_start sub_8042818
+sub_8042818:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _08042874
+ ldr r0, [r0]
+ ldr r1, _08042878
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _08042836
+ bl sub_8083600
+ adds r4, r0, 0
+_08042836:
+ ldr r1, _0804287C
+ lsls r0, r5, 1
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ ldr r0, _08042880
+ cmp r1, r0
+ beq _0804284A
+ adds r0, r4, 0
+ bl sub_80421C0
+_0804284A:
+ ldr r0, _08042884
+ lsls r1, r5, 2
+ adds r0, r1, r0
+ ldr r5, [r0]
+ adds r6, r1, 0
+ cmp r5, 0
+ blt _08042896
+ cmp r7, 0
+ beq _08042888
+ bl sub_80441BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08042888
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_804151C
+ b _08042896
+ .align 2, 0
+_08042874: .4byte gUnknown_203B418
+_08042878: .4byte 0x000181f8
+_0804287C: .4byte gUnknown_80F682C
+_08042880: .4byte 0x000003e5
+_08042884: .4byte gUnknown_80F67EC
+_08042888:
+ ldr r0, _0804289C
+ adds r0, r6, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_804151C
+_08042896:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804289C: .4byte gUnknown_80F680C
+ thumb_func_end sub_8042818
+
+ .align 2,0