summaryrefslogtreecommitdiff
path: root/asm/kangaskhan_storage_2.s
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-05-23 16:19:35 -0500
committerGitHub <noreply@github.com>2021-05-23 16:19:35 -0500
commiteaa141c612dd1689936a21bd57018a55ff686b69 (patch)
treefafe2a9a562af6a8e36716ff76a5b3e8b30d4411 /asm/kangaskhan_storage_2.s
parentf402e46cd3c8b7236673d6edbae77903a7cc0618 (diff)
Keep on keepin on (#38)
* end of may dump of work * move save text to src * decomp a little more
Diffstat (limited to 'asm/kangaskhan_storage_2.s')
-rw-r--r--asm/kangaskhan_storage_2.s1456
1 files changed, 1456 insertions, 0 deletions
diff --git a/asm/kangaskhan_storage_2.s b/asm/kangaskhan_storage_2.s
new file mode 100644
index 0000000..e0cda63
--- /dev/null
+++ b/asm/kangaskhan_storage_2.s
@@ -0,0 +1,1456 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8017F28
+sub_8017F28:
+ push {r4-r7,lr}
+ ldr r4, _08017F48
+ ldr r0, [r4]
+ adds r0, 0xF0
+ bl sub_8006518
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0xD
+ bls _08017F3E
+ b _080180BC
+_08017F3E:
+ lsls r0, 2
+ ldr r1, _08017F4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017F48: .4byte gUnknown_203B20C
+_08017F4C: .4byte _08017F50
+ .align 2, 0
+_08017F50:
+ .4byte _080180BC
+ .4byte _08017F88
+ .4byte _080180BC
+ .4byte _080180BC
+ .4byte _08017FE8
+ .4byte _08017FE8
+ .4byte _0801809C
+ .4byte _080180BC
+ .4byte _080180BC
+ .4byte _080180BC
+ .4byte _08018034
+ .4byte _08018034
+ .4byte _08018084
+ .4byte _0801809C
+_08017F88:
+ ldr r4, _08017FDC
+ ldr r1, [r4]
+ ldr r2, _08017FE0
+ adds r1, 0xF0
+ adds r0, r2, 0
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r7}
+ stm r1!, {r3,r5,r7}
+ ldr r1, [r4]
+ movs r6, 0x84
+ lsls r6, 1
+ adds r1, r6
+ adds r0, r2, 0
+ ldm r0!, {r3,r5,r7}
+ stm r1!, {r3,r5,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldr r0, [r4]
+ adds r0, 0xF0
+ ldm r2!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldm r2!, {r1,r3,r5}
+ stm r0!, {r1,r3,r5}
+ bl sub_80182E4
+ ldr r2, [r4]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _08017FE4
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r5-r7}
+ stm r2!, {r5-r7}
+ ldr r1, [r4]
+ adds r0, r1, r0
+ adds r1, 0x20
+ bl sub_8012CAC
+ b _080180E0
+ .align 2, 0
+_08017FDC: .4byte gUnknown_203B20C
+_08017FE0: .4byte gUnknown_80DB7B8
+_08017FE4: .4byte gUnknown_80DB7D0
+_08017FE8:
+ ldr r3, _0801802C
+ ldr r1, [r3]
+ ldr r2, _08018030
+ adds r1, 0xF0
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldr r1, [r3]
+ movs r6, 0x84
+ lsls r6, 1
+ adds r1, r6
+ adds r0, r2, 0
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldr r1, [r3]
+ movs r5, 0x90
+ lsls r5, 1
+ adds r1, r5
+ adds r0, r2, 0
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldr r0, [r3]
+ adds r0, 0xF0
+ ldm r2!, {r1,r3,r4}
+ stm r0!, {r1,r3,r4}
+ ldm r2!, {r5-r7}
+ stm r0!, {r5-r7}
+ b _080180E0
+ .align 2, 0
+_0801802C: .4byte gUnknown_203B20C
+_08018030: .4byte gUnknown_80DB7B8
+_08018034:
+ ldr r3, _08018078
+ ldr r1, [r3]
+ ldr r2, _0801807C
+ adds r1, 0xF0
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldr r1, [r3]
+ movs r6, 0x84
+ lsls r6, 1
+ adds r1, r6
+ adds r0, r2, 0
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldr r0, [r3]
+ movs r5, 0x90
+ lsls r5, 1
+ adds r0, r5
+ ldm r2!, {r1,r6,r7}
+ stm r0!, {r1,r6,r7}
+ ldm r2!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldr r1, [r3]
+ adds r1, 0xF0
+ ldr r0, _08018080
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ b _080180E0
+ .align 2, 0
+_08018078: .4byte gUnknown_203B20C
+_0801807C: .4byte gUnknown_80DB7B8
+_08018080: .4byte gUnknown_80DB800
+_08018084:
+ ldr r0, _08018094
+ ldr r1, [r0]
+ movs r7, 0x84
+ lsls r7, 1
+ adds r1, r7
+ ldr r0, _08018098
+ b _080180A8
+ .align 2, 0
+_08018094: .4byte gUnknown_203B20C
+_08018098: .4byte gUnknown_80DB818
+_0801809C:
+ ldr r0, _080180B4
+ ldr r1, [r0]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, _080180B8
+_080180A8:
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _080180E0
+ .align 2, 0
+_080180B4: .4byte gUnknown_203B20C
+_080180B8: .4byte gUnknown_80DB7E8
+_080180BC:
+ ldr r0, _080180F8
+ mov r12, r0
+ ldr r4, _080180FC
+ movs r3, 0
+ movs r2, 0x3
+_080180C6:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xF0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080180C6
+_080180E0:
+ bl ResetUnusedInputStruct
+ ldr r0, _080180F8
+ ldr r0, [r0]
+ adds r0, 0xF0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080180F8: .4byte gUnknown_203B20C
+_080180FC: .4byte gUnknown_80DB7B8
+ thumb_func_end sub_8017F28
+
+ thumb_func_start sub_8018100
+sub_8018100:
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r1, _0801811C
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xE
+ bls _08018112
+ b _08018278
+_08018112:
+ lsls r0, 2
+ ldr r1, _08018120
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801811C: .4byte gUnknown_203B20C
+_08018120: .4byte _08018124
+ .align 2, 0
+_08018124:
+ .4byte _08018278
+ .4byte _08018160
+ .4byte _08018278
+ .4byte _08018278
+ .4byte _08018172
+ .4byte _08018180
+ .4byte _08018188
+ .4byte _080181A8
+ .4byte _08018278
+ .4byte _08018278
+ .4byte _080181B2
+ .4byte _080181C0
+ .4byte _080181CE
+ .4byte _0801823C
+ .4byte _08018270
+_08018160:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x70
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r3, r2, 0
+ adds r3, 0x60
+ ldr r2, [r2, 0x14]
+ b _0801825C
+_08018172:
+ movs r0, 0x3
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ b _08018278
+_08018180:
+ movs r0, 0x1
+ bl sub_801A8D0
+ b _08018278
+_08018188:
+ bl sub_801A9E0
+ bl sub_801841C
+ ldr r0, _080181A4
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x70
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r3, r2, 0
+ adds r3, 0x60
+ ldr r2, [r2, 0x18]
+ b _0801825C
+ .align 2, 0
+_080181A4: .4byte gUnknown_203B20C
+_080181A8:
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_801B3C0
+ b _08018278
+_080181B2:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801C8C4
+ b _080181C6
+_080181C0:
+ movs r0, 0x1
+ bl sub_801CB5C
+_080181C6:
+ movs r0, 0
+ bl sub_801AD34
+ b _08018278
+_080181CE:
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xD0
+ movs r0, 0x2
+ str r0, [r1]
+ subs r1, 0x8
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _080181F8
+ ldr r1, [r0]
+ ldrb r0, [r2, 0xA]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bls _080181FC
+ adds r1, r2, 0
+ adds r1, 0xCC
+ movs r0, 0x63
+ b _08018202
+ .align 2, 0
+_080181F8: .4byte gUnknown_203B460
+_080181FC:
+ adds r1, r2, 0
+ adds r1, 0xCC
+ ldrh r0, [r3]
+_08018202:
+ str r0, [r1]
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xC4
+ adds r0, r2, 0
+ adds r0, 0xCC
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x10
+ movs r0, 0x1
+ str r0, [r1]
+ adds r1, 0x4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x28
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xC0
+ bl sub_8013AA0
+ bl sub_8018280
+ b _08018278
+_0801823C:
+ bl sub_801CCD8
+ movs r0, 0
+ bl sub_801AD34
+ bl sub_80184D4
+ ldr r0, _0801826C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x70
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r3, r2, 0
+ adds r3, 0x60
+ ldr r2, [r2, 0x1C]
+_0801825C:
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _08018278
+ .align 2, 0
+_0801826C: .4byte gUnknown_203B20C
+_08018270:
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_801B3C0
+_08018278:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018100
+
+ thumb_func_start sub_8018280
+sub_8018280:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080182DC
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r2, _080182E0
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r0, [r4]
+ adds r0, 0xC0
+ bl sub_8013C68
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r0, [r0]
+ bl sub_80073E0
+ bl sub_801CCD8
+ movs r0, 0
+ bl sub_801AD34
+ ldr r0, [r4]
+ adds r0, 0x70
+ movs r1, 0
+ bl sub_8012EA4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080182DC: .4byte gUnknown_203B20C
+_080182E0: .4byte gUnknown_80DB830
+ thumb_func_end sub_8018280
+
+ thumb_func_start sub_80182E4
+sub_80182E4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r4, _080183DC
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldr r0, _080183E0
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x2
+ str r0, [r1, 0x24]
+ bl sub_8090A34
+ cmp r0, 0
+ beq _0801831C
+ movs r0, 0
+ bl sub_801CF50
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018324
+_0801831C:
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ strh r1, [r0]
+_08018324:
+ movs r1, 0x1
+ add r8, r1
+ ldr r4, _080183DC
+ ldr r2, [r4]
+ mov r0, r8
+ lsls r3, r0, 3
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r3
+ ldr r1, _080183E4
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r2, 0x24
+ adds r2, r3
+ movs r0, 0x3
+ str r0, [r2]
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018358
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018366
+_08018358:
+ ldr r0, [r4]
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r0, 0x60
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+_08018366:
+ movs r0, 0x1
+ add r8, r0
+ ldr r4, _080183DC
+ ldr r7, [r4]
+ mov r2, r8
+ lsls r1, r2, 3
+ adds r2, r7, 0
+ adds r2, 0x20
+ adds r3, r2, r1
+ ldr r0, _080183E8
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r1, r6, r1
+ movs r3, 0x1
+ str r3, [r1]
+ add r8, r3
+ mov r1, r8
+ lsls r0, r1, 3
+ adds r2, r0
+ movs r1, 0
+ str r1, [r2]
+ adds r0, r6, r0
+ str r3, [r0]
+ movs r5, 0
+ mov r12, r4
+ cmp r5, r8
+ bge _080183C0
+ adds r4, r7, 0
+ adds r2, r4, 0
+ adds r2, 0x60
+ adds r3, r6, 0
+_080183A8:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080183B6
+ ldr r1, [r3]
+ ldr r0, [r4, 0x14]
+ cmp r1, r0
+ beq _08018410
+_080183B6:
+ adds r2, 0x2
+ adds r3, 0x8
+ adds r5, 0x1
+ cmp r5, r8
+ blt _080183A8
+_080183C0:
+ movs r5, 0
+ cmp r5, r8
+ bge _08018410
+ mov r2, r12
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080183EC
+ ldr r0, [r1, 0x24]
+ str r0, [r1, 0x14]
+ b _08018410
+ .align 2, 0
+_080183DC: .4byte gUnknown_203B20C
+_080183E0: .4byte gUnknown_80D4958
+_080183E4: .4byte gUnknown_80D4964
+_080183E8: .4byte gUnknown_80D4934
+_080183EC:
+ adds r5, 0x1
+ cmp r5, r8
+ bge _08018410
+ mov r0, r12
+ ldr r2, [r0]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x60
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080183EC
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x14]
+_08018410:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80182E4
+
+ thumb_func_start sub_801841C
+sub_801841C:
+ push {r4-r7,lr}
+ ldr r4, _080184A0
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldr r0, _080184A4
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x2
+ str r0, [r1, 0x24]
+ ldr r0, [r1, 0xC]
+ bl sub_801ADA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801844C
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ strh r1, [r0]
+_0801844C:
+ ldr r2, [r4]
+ movs r1, 0x1
+ ldr r0, _080184A8
+ ldr r0, [r0]
+ str r0, [r2, 0x28]
+ movs r0, 0x4
+ str r0, [r2, 0x2C]
+ movs r5, 0x2
+ movs r0, 0
+ str r0, [r2, 0x30]
+ str r1, [r2, 0x34]
+ movs r3, 0
+ adds r6, r4, 0
+ mov r12, r2
+ mov r4, r12
+ adds r4, 0x60
+ adds r2, 0x24
+_0801846E:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0801847E
+ ldr r1, [r2]
+ mov r7, r12
+ ldr r0, [r7, 0x18]
+ cmp r1, r0
+ beq _080184CE
+_0801847E:
+ adds r4, 0x2
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, r5
+ blt _0801846E
+ movs r3, 0
+ cmp r3, r5
+ bge _080184CE
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080184AC
+ ldr r0, [r1, 0x24]
+ str r0, [r1, 0x18]
+ b _080184CE
+ .align 2, 0
+_080184A0: .4byte gUnknown_203B20C
+_080184A4: .4byte gUnknown_80D4958
+_080184A8: .4byte gUnknown_80D4970
+_080184AC:
+ adds r3, 0x1
+ cmp r3, r5
+ bge _080184CE
+ ldr r2, [r6]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x60
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080184AC
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x18]
+_080184CE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801841C
+
+ thumb_func_start sub_80184D4
+sub_80184D4:
+ push {r4-r7,lr}
+ ldr r4, _08018554
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldr r0, _08018558
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x3
+ str r0, [r1, 0x24]
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018500
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ strh r1, [r0]
+_08018500:
+ ldr r2, [r4]
+ movs r1, 0x1
+ ldr r0, _0801855C
+ ldr r0, [r0]
+ str r0, [r2, 0x28]
+ movs r0, 0x4
+ str r0, [r2, 0x2C]
+ movs r5, 0x2
+ movs r0, 0
+ str r0, [r2, 0x30]
+ str r1, [r2, 0x34]
+ movs r3, 0
+ adds r6, r4, 0
+ mov r12, r2
+ mov r4, r12
+ adds r4, 0x60
+ adds r2, 0x24
+_08018522:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _08018532
+ ldr r1, [r2]
+ mov r7, r12
+ ldr r0, [r7, 0x1C]
+ cmp r1, r0
+ beq _08018582
+_08018532:
+ adds r4, 0x2
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, r5
+ blt _08018522
+ movs r3, 0
+ cmp r3, r5
+ bge _08018582
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08018560
+ ldr r0, [r1, 0x24]
+ str r0, [r1, 0x1C]
+ b _08018582
+ .align 2, 0
+_08018554: .4byte gUnknown_203B20C
+_08018558: .4byte gUnknown_80D4964
+_0801855C: .4byte gUnknown_80D4970
+_08018560:
+ adds r3, 0x1
+ cmp r3, r5
+ bge _08018582
+ ldr r2, [r6]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x60
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08018560
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x1C]
+_08018582:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80184D4
+
+ thumb_func_start sub_8018588
+sub_8018588:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, _080185C4
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080185B4
+ ldr r0, [r4]
+ adds r0, 0x70
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _080185B4
+ ldr r0, [r4]
+ str r1, [r0, 0x14]
+_080185B4:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _080185CE
+ cmp r0, 0x2
+ bgt _080185C8
+ cmp r0, 0x1
+ beq _08018610
+ b _08018616
+ .align 2, 0
+_080185C4: .4byte gUnknown_203B20C
+_080185C8:
+ cmp r0, 0x3
+ beq _080185EA
+ b _08018616
+_080185CE:
+ bl sub_8090A34
+ cmp r0, 0
+ beq _080185F6
+ movs r0, 0
+ bl sub_801CF50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080185F6
+ movs r0, 0x4
+ bl sub_8017F10
+ b _08018616
+_080185EA:
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018608
+_080185F6:
+ ldr r0, _08018604
+ ldr r0, [r0]
+ adds r0, 0x70
+ movs r1, 0x1
+ bl sub_8012EA4
+ b _08018616
+ .align 2, 0
+_08018604: .4byte gUnknown_203B20C
+_08018608:
+ movs r0, 0xA
+ bl sub_8017F10
+ b _08018616
+_08018610:
+ movs r0, 0x3
+ bl sub_8017F10
+_08018616:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018588
+
+ thumb_func_start sub_8018620
+sub_8018620:
+ push {r4-r7,lr}
+ movs r0, 0x1
+ bl sub_801A6E8
+ cmp r0, 0x3
+ beq _0801863C
+ cmp r0, 0x3
+ bhi _08018636
+ cmp r0, 0x2
+ beq _080186E8
+ b _080186F2
+_08018636:
+ cmp r0, 0x4
+ beq _080186C0
+ b _080186F2
+_0801863C:
+ bl sub_801AEA8
+ cmp r0, 0
+ beq _08018698
+ movs r5, 0
+ ldr r6, _0801868C
+ movs r7, 0
+_0801864A:
+ adds r0, r5, 0
+ bl sub_801AED0
+ cmp r0, 0
+ beq _0801866A
+ lsls r4, r5, 2
+ ldr r0, [r6]
+ adds r0, r4
+ bl sub_80917B8
+ ldr r0, [r6]
+ adds r0, r4
+ strb r7, [r0, 0x2]
+ ldr r0, [r6]
+ adds r0, r4
+ strb r7, [r0]
+_0801866A:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0801864A
+ bl sub_80910B4
+ bl sub_801AE84
+ bl sub_8090A34
+ cmp r0, 0
+ bne _08018690
+ bl sub_801A928
+ movs r0, 0x1
+ bl sub_8017F10
+ b _080186F2
+ .align 2, 0
+_0801868C: .4byte gUnknown_203B460
+_08018690:
+ movs r0, 0x5
+ bl sub_8017F10
+ b _080186F2
+_08018698:
+ bl sub_801A8AC
+ ldr r1, _080186B8
+ ldr r2, [r1]
+ str r0, [r2, 0xC]
+ ldr r1, _080186BC
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x8]
+ movs r0, 0x6
+ bl sub_8017F10
+ b _080186F2
+ .align 2, 0
+_080186B8: .4byte gUnknown_203B20C
+_080186BC: .4byte gUnknown_203B460
+_080186C0:
+ bl sub_801A8AC
+ ldr r1, _080186E0
+ ldr r2, [r1]
+ str r0, [r2, 0xC]
+ ldr r1, _080186E4
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x8]
+ movs r0, 0x7
+ bl sub_8017F10
+ b _080186F2
+ .align 2, 0
+_080186E0: .4byte gUnknown_203B20C
+_080186E4: .4byte gUnknown_203B460
+_080186E8:
+ bl sub_801A928
+ movs r0, 0x1
+ bl sub_8017F10
+_080186F2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018620
+
+ thumb_func_start sub_80186F8
+sub_80186F8:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ bl sub_801CA08
+ cmp r0, 0x2
+ bne _08018708
+ b _08018838
+_08018708:
+ cmp r0, 0x2
+ bhi _08018714
+ cmp r0, 0x1
+ bne _08018712
+ b _08018844
+_08018712:
+ b _0801884A
+_08018714:
+ cmp r0, 0x3
+ beq _0801871E
+ cmp r0, 0x4
+ beq _0801880C
+ b _0801884A
+_0801871E:
+ bl sub_801CFB8
+ cmp r0, 0
+ beq _080187E0
+ movs r6, 0
+ mov r5, sp
+ ldr r7, _0801876C
+_0801872C:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_801CFE0
+ cmp r0, 0
+ beq _080187B2
+ ldr r1, _08018770
+ ldr r0, [sp]
+ ands r0, r1
+ orrs r0, r4
+ str r0, [sp]
+ ldrb r0, [r5]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018786
+ ldr r2, _08018774
+ ldr r1, [r2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r1, [r1]
+ cmp r1, 0x63
+ bls _08018778
+ ldr r0, [sp]
+ ands r0, r7
+ movs r1, 0xC6
+ lsls r1, 7
+ b _08018780
+ .align 2, 0
+_0801876C: .4byte 0xffff00ff
+_08018770: .4byte 0xffffff00
+_08018774: .4byte gUnknown_203B460
+_08018778:
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r0, [sp]
+ ands r0, r7
+_08018780:
+ orrs r0, r1
+ str r0, [sp]
+ b _08018794
+_08018786:
+ ldr r0, [sp]
+ ands r0, r7
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [sp]
+ ldr r2, _080187DC
+_08018794:
+ ldr r2, [r2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r2, 0x50
+ adds r2, r0
+ ldr r0, [sp]
+ lsrs r0, 8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r2]
+ subs r1, r0
+ strh r1, [r2]
+ mov r0, sp
+ bl sub_8091274
+_080187B2:
+ adds r6, 0x1
+ cmp r6, 0xEF
+ ble _0801872C
+ bl sub_80910B4
+ bl sub_801CF94
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018838
+ bl sub_8090A34
+ cmp r0, 0x13
+ bgt _08018838
+ movs r0, 0xB
+ bl sub_8017F10
+ b _0801884A
+ .align 2, 0
+_080187DC: .4byte gUnknown_203B460
+_080187E0:
+ bl sub_801CB24
+ ldr r4, _08018808
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r0, 0xD
+ bl sub_8017F10
+ b _0801884A
+ .align 2, 0
+_08018808: .4byte gUnknown_203B20C
+_0801880C:
+ bl sub_801CB24
+ ldr r4, _08018834
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r0, 0xE
+ bl sub_8017F10
+ b _0801884A
+ .align 2, 0
+_08018834: .4byte gUnknown_203B20C
+_08018838:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl sub_8017F10
+ b _0801884A
+_08018844:
+ movs r0, 0
+ bl sub_801AD34
+_0801884A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80186F8
+
+ thumb_func_start sub_8018854
+sub_8018854:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ bl sub_801CA08
+ ldr r4, _080188E0
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0xC0
+ bl sub_8013BBC
+ cmp r0, 0x1
+ beq _080188F8
+ cmp r0, 0x1
+ bcc _080188FC
+ cmp r0, 0x2
+ beq _080188F0
+ cmp r0, 0x3
+ bne _080188FC
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC0
+ ldr r0, [r0]
+ strb r0, [r1, 0x9]
+ ldr r0, _080188E4
+ ldr r1, [r0]
+ ldr r3, [r4]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrb r2, [r3, 0x9]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ ldrb r2, [r3, 0xA]
+ ldr r1, _080188E8
+ ldr r0, [sp]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ ldrb r1, [r3, 0x9]
+ lsls r1, 8
+ ldr r2, _080188EC
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, sp
+ bl sub_8091274
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _080188D2
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080188F0
+_080188D2:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl sub_8017F10
+ b _080188FC
+ .align 2, 0
+_080188E0: .4byte gUnknown_203B20C
+_080188E4: .4byte gUnknown_203B460
+_080188E8: .4byte 0xffffff00
+_080188EC: .4byte 0xffff00ff
+_080188F0:
+ movs r0, 0xB
+ bl sub_8017F10
+ b _080188FC
+_080188F8:
+ bl sub_8018280
+_080188FC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018854
+
+ thumb_func_start sub_8018904
+sub_8018904:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _08018944
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018934
+ ldr r0, [r4]
+ adds r0, 0x70
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08018934
+ ldr r0, [r4]
+ str r1, [r0, 0x18]
+_08018934:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0801894E
+ cmp r0, 0x2
+ bgt _08018948
+ cmp r0, 0x1
+ beq _080189BA
+ b _080189C0
+ .align 2, 0
+_08018944: .4byte gUnknown_203B20C
+_08018948:
+ cmp r0, 0x4
+ beq _080189AC
+ b _080189C0
+_0801894E:
+ ldr r4, _08018978
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xA]
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801896C
+ ldr r0, [r4]
+ ldr r0, [r0, 0xC]
+ bl sub_801ADA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801897C
+_0801896C:
+ ldr r0, [r4]
+ adds r0, 0x70
+ movs r1, 0x1
+ bl sub_8012EA4
+ b _080189C0
+ .align 2, 0
+_08018978: .4byte gUnknown_203B20C
+_0801897C:
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_80917B8
+ ldr r0, [r4]
+ ldr r0, [r0, 0xC]
+ bl sub_80911F8
+ bl sub_80910B4
+ bl sub_8090A34
+ cmp r0, 0
+ bne _080189A4
+ bl sub_801A928
+ movs r0, 0x1
+ bl sub_8017F10
+ b _080189C0
+_080189A4:
+ movs r0, 0x5
+ bl sub_8017F10
+ b _080189C0
+_080189AC:
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0x7
+ bl sub_8017F10
+ b _080189C0
+_080189BA:
+ movs r0, 0x5
+ bl sub_8017F10
+_080189C0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018904
+
+ thumb_func_start sub_80189C8
+sub_80189C8:
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801CA08
+ ldr r4, _08018A08
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080189F8
+ ldr r0, [r4]
+ adds r0, 0x70
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _080189F8
+ ldr r0, [r4]
+ str r1, [r0, 0x1C]
+_080189F8:
+ ldr r0, [sp]
+ cmp r0, 0x3
+ beq _08018A12
+ cmp r0, 0x3
+ bgt _08018A0C
+ cmp r0, 0x1
+ beq _08018AB8
+ b _08018ABE
+ .align 2, 0
+_08018A08: .4byte gUnknown_203B20C
+_08018A0C:
+ cmp r0, 0x4
+ beq _08018AB0
+ b _08018ABE
+_08018A12:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018A2C
+ ldr r0, _08018A28
+ ldr r0, [r0]
+ adds r0, 0x70
+ movs r1, 0x1
+ bl sub_8012EA4
+ b _08018ABE
+ .align 2, 0
+_08018A28: .4byte gUnknown_203B20C
+_08018A2C:
+ ldr r4, _08018A44
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xA]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018A48
+ movs r0, 0xC
+ bl sub_8017F10
+ b _08018ABE
+ .align 2, 0
+_08018A44: .4byte gUnknown_203B20C
+_08018A48:
+ ldr r0, _08018A9C
+ ldr r1, [r0]
+ ldr r3, [r4]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrb r2, [r3, 0x9]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ ldrb r2, [r3, 0xA]
+ ldr r1, _08018AA0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ ldrb r1, [r3, 0x9]
+ lsls r1, 8
+ ldr r2, _08018AA4
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ bl sub_8091274
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018A90
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018AA8
+_08018A90:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl sub_8017F10
+ b _08018ABE
+ .align 2, 0
+_08018A9C: .4byte gUnknown_203B460
+_08018AA0: .4byte 0xffffff00
+_08018AA4: .4byte 0xffff00ff
+_08018AA8:
+ movs r0, 0xB
+ bl sub_8017F10
+ b _08018ABE
+_08018AB0:
+ movs r0, 0xE
+ bl sub_8017F10
+ b _08018ABE
+_08018AB8:
+ movs r0, 0xB
+ bl sub_8017F10
+_08018ABE:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80189C8
+
+ .align 2,0