summaryrefslogtreecommitdiff
path: root/asm/code_80428A0.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_80428A0.s')
-rw-r--r--asm/code_80428A0.s11310
1 files changed, 11310 insertions, 0 deletions
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
new file mode 100644
index 0000000..861a75c
--- /dev/null
+++ b/asm/code_80428A0.s
@@ -0,0 +1,11310 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8042A84
+sub_8042A84:
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ adds r7, r2, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+ movs r6, 0x80
+ lsls r6, 2
+ adds r0, r4, 0
+ bl sub_8042768
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042AF8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_804151C
+ adds r0, r7, 0
+ movs r1, 0x42
+ bl sub_803E708
+ adds r5, r4, 0
+ adds r5, 0x20
+_08042AB4:
+ ldr r1, [r4, 0x1C]
+ ldr r0, _08042B00
+ cmp r1, r0
+ bgt _08042AF0
+ movs r0, 0x42
+ bl sub_803E46C
+ ldr r1, [r4, 0x1C]
+ adds r1, r6
+ str r1, [r4, 0x1C]
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0
+ ldr r0, [r4, 0x10]
+ subs r0, r1
+ cmp r0, 0
+ bge _08042AD8
+ adds r0, 0xFF
+_08042AD8:
+ asrs r1, r0, 8
+ ldr r0, _08042B04
+ ldr r0, [r0]
+ ldr r2, _08042B08
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r1, r0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bge _08042AB4
+_08042AF0:
+ movs r0, 0
+ strb r0, [r5]
+ bl sub_804178C
+_08042AF8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042B00: .4byte 0x0000c7ff
+_08042B04: .4byte gUnknown_203B418
+_08042B08: .4byte 0x000181f2
+ thumb_func_end sub_8042A84
+
+ thumb_func_start sub_8042B0C
+sub_8042B0C:
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x9F
+ lsls r0, 1
+ movs r2, 0x5
+ bl sub_8042A84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042B0C
+
+ thumb_func_start sub_8042B20
+sub_8042B20:
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0xDE
+ lsls r0, 1
+ movs r2, 0xE
+ bl sub_8042A84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042B20
+
+ thumb_func_start sub_8042B34
+sub_8042B34:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ movs r0, 0
+ mov r8, r0
+ bl sub_8085480
+ mov r10, r0
+ ldr r7, _08042CB0
+ movs r0, 0xCC
+ movs r1, 0x7
+ bl MemoryAlloc
+ str r0, [r7]
+ str r5, [r0]
+ adds r4, 0x1
+ lsls r4, 2
+ str r4, [r0, 0x8]
+ ldr r4, _08042CB4
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_800EE5C
+ bl sub_800EF64
+ movs r0, 0x46
+ bl sub_803E46C
+ ldr r0, [r7]
+ str r6, [r0, 0x4]
+ movs r5, 0
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ blt _08042B8E
+ b _08042C9E
+_08042B8E:
+ mov r9, sp
+_08042B90:
+ mov r2, r8
+ lsls r6, r2, 3
+ ldr r0, [r7]
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6, r0
+ ldr r3, _08042CB4
+ adds r0, r3
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r2, r10
+ ldr r0, [r2, 0xC]
+ cmp r0, 0
+ bge _08042BBA
+ adds r0, 0xFF
+_08042BBA:
+ asrs r0, 8
+ mov r3, r9
+ strh r0, [r3, 0xC]
+ mov r1, sp
+ mov r2, r10
+ ldr r0, [r2, 0x10]
+ cmp r0, 0
+ bge _08042BCC
+ adds r0, 0xFF
+_08042BCC:
+ asrs r0, 8
+ strh r0, [r1, 0xE]
+ movs r0, 0x2
+ bl RandomCapped
+ ldr r1, [r7]
+ lsls r4, r5, 2
+ adds r3, r1, 0
+ adds r3, 0x4C
+ adds r3, r4
+ ldr r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r6, r1
+ ldr r2, _08042CB4
+ adds r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r1, 1
+ adds r1, r0
+ str r1, [r3]
+ movs r0, 0xF0
+ bl RandomCapped
+ ldr r1, [r7]
+ adds r1, r4
+ adds r0, 0x98
+ adds r1, 0x8C
+ strh r0, [r1]
+ lsls r0, r5, 1
+ adds r0, 0x8
+ bl RandomCapped
+ ldr r1, [r7]
+ adds r2, r1, r4
+ adds r3, r0, 0
+ adds r3, 0x18
+ adds r1, r5, 0
+ cmp r5, 0
+ bge _08042C20
+ adds r1, r5, 0x3
+_08042C20:
+ asrs r1, 2
+ lsls r1, 2
+ subs r1, r5, r1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ subs r0, r3, r0
+ adds r1, r2, 0
+ adds r1, 0x8E
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x8C
+ ldrh r0, [r0]
+ mov r3, r9
+ strh r0, [r3, 0x10]
+ ldrh r0, [r1]
+ strh r0, [r3, 0x12]
+ movs r0, 0x4
+ str r0, [sp, 0x14]
+ ldr r0, _08042CB8
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ ldr r0, _08042CBC
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ bl sub_800E890
+ ldr r2, [r7]
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r1, r4
+ str r0, [r1]
+ movs r6, 0x1
+ add r8, r6
+ mov r0, r8
+ cmp r0, 0x2
+ bgt _08042C82
+ ldr r0, [r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ add r1, r8
+ lsls r1, 3
+ ldr r2, _08042CB4
+ adds r1, r2
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08042C86
+_08042C82:
+ movs r6, 0
+ mov r8, r6
+_08042C86:
+ ldr r0, [sp]
+ bl sub_800ECA4
+ ldr r0, [r0, 0x4]
+ bl sub_800F15C
+ adds r5, 0x1
+ ldr r0, [r7]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ bge _08042C9E
+ b _08042B90
+_08042C9E:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042CB0: .4byte gUnknown_203B414
+_08042CB4: .4byte gUnknown_80F6624
+_08042CB8: .4byte 0x0000ffff
+_08042CBC: .4byte gUnknown_80F683C
+ thumb_func_end sub_8042B34
+
+ thumb_func_start sub_8042CC0
+sub_8042CC0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r7, 0
+ ldr r2, _08042D20
+ ldr r1, [r2]
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08042CDC
+ movs r7, 0x1
+ subs r0, 0x1
+ str r0, [r1, 0x4]
+_08042CDC:
+ movs r5, 0
+ ldr r0, [r2]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ bge _08042D56
+ adds r6, r2, 0
+ movs r0, 0x98
+ negs r0, r0
+ mov r9, r0
+ movs r4, 0
+ ldr r1, _08042D24
+ mov r8, r1
+_08042CF4:
+ ldr r3, [r6]
+ adds r0, r3, r4
+ adds r2, r0, 0
+ adds r2, 0x8C
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r4
+ ldr r1, [r0]
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r9
+ bgt _08042D2E
+ ldr r0, [r3, 0x4]
+ cmp r0, 0
+ ble _08042D28
+ movs r0, 0x98
+ strh r0, [r2]
+ b _08042D30
+ .align 2, 0
+_08042D20: .4byte gUnknown_203B414
+_08042D24: .4byte 0x0000ff68
+_08042D28:
+ mov r0, r8
+ strh r0, [r2]
+ b _08042D30
+_08042D2E:
+ movs r7, 0x1
+_08042D30:
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x8C
+ adds r2, r1
+ movs r1, 0
+ str r1, [sp]
+ movs r3, 0
+ bl sub_800E8AC
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r0, [r6]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ blt _08042CF4
+_08042D56:
+ ldr r0, _08042D74
+ ldr r0, [r0]
+ ldr r1, _08042D78
+ adds r0, r1
+ bl sub_800E90C
+ adds r0, r7, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042D74: .4byte gUnknown_203B418
+_08042D78: .4byte 0x000181f0
+ thumb_func_end sub_8042CC0
+
+ thumb_func_start sub_8042D7C
+sub_8042D7C:
+ push {r4-r6,lr}
+ ldr r1, _08042DD0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08042DCA
+ movs r5, 0
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ bge _08042DBA
+ adds r6, r1, 0
+_08042D90:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ adds r0, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042DB0
+ ldr r0, [r6]
+ adds r0, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_800DC14
+_08042DB0:
+ adds r5, 0x1
+ ldr r0, [r6]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ blt _08042D90
+_08042DBA:
+ bl sub_800DBBC
+ ldr r4, _08042DD0
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08042DCA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042DD0: .4byte gUnknown_203B414
+ thumb_func_end sub_8042D7C
+
+ thumb_func_start sub_8042DD4
+sub_8042DD4:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ movs r2, 0
+ ldr r0, _08042E04
+ mov r12, r0
+ ldr r3, _08042E08
+_08042DE4:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r4, r0, r3
+ ldr r1, [r4]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08042E0C
+ str r5, [r4]
+ str r6, [r4, 0xC]
+ str r7, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_800E6D8
+ str r0, [r4, 0x8]
+ b _08042E14
+ .align 2, 0
+_08042E04: .4byte gUnknown_203B418
+_08042E08: .4byte 0x000005c4
+_08042E0C:
+ adds r3, 0x10
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08042DE4
+_08042E14:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042DD4
+
+ thumb_func_start sub_8042E1C
+sub_8042E1C:
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _08042E44
+ ldr r4, _08042E48
+_08042E24:
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08042E4C
+ adds r0, r1, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042E4C
+ movs r0, 0x1
+ b _08042E56
+ .align 2, 0
+_08042E44: .4byte gUnknown_203B418
+_08042E48: .4byte 0x000005c4
+_08042E4C:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08042E24
+ movs r0, 0
+_08042E56:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042E1C
+
+ thumb_func_start sub_8042E5C
+sub_8042E5C:
+ push {r4-r7,lr}
+ ldr r7, _08042E90
+ ldr r6, _08042E94
+ movs r5, 0x2
+_08042E64:
+ ldr r0, [r7]
+ adds r4, r0, r6
+ ldr r0, [r4]
+ cmp r0, 0
+ blt _08042E82
+ bl sub_800E9A8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08042E82
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r4]
+ str r1, [r4, 0xC]
+_08042E82:
+ adds r6, 0x10
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08042E64
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042E90: .4byte gUnknown_203B418
+_08042E94: .4byte 0x000005c4
+ thumb_func_end sub_8042E5C
+
+ thumb_func_start sub_8042E98
+sub_8042E98:
+ push {r4,r5,lr}
+ ldr r5, _08042EC0
+ movs r4, 0x1
+ negs r4, r4
+ movs r3, 0
+ ldr r2, _08042EC4
+ movs r1, 0x2
+_08042EA6:
+ ldr r0, [r5]
+ adds r0, r2
+ str r4, [r0]
+ str r3, [r0, 0x4]
+ str r3, [r0, 0xC]
+ adds r2, 0x10
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08042EA6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042EC0: .4byte gUnknown_203B418
+_08042EC4: .4byte 0x000005c4
+ thumb_func_end sub_8042E98
+
+ thumb_func_start sub_8042EC8
+sub_8042EC8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r6, r0, 0
+ mov r8, r1
+ movs r7, 0
+_08042ED6:
+ ldr r1, _08042F5C
+ lsls r0, r7, 4
+ ldr r2, _08042F60
+ adds r0, r2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ blt _08042F4A
+ ldr r0, [r4, 0xC]
+ cmp r0, r6
+ bne _08042F4A
+ ldr r0, [r6, 0xC]
+ cmp r0, 0
+ bge _08042EF6
+ adds r0, 0xFF
+_08042EF6:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _08042F64
+ ldr r2, [sp, 0x8]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x8]
+ ldr r1, [r6, 0x10]
+ cmp r1, 0
+ bge _08042F0C
+ adds r1, 0xFF
+_08042F0C:
+ lsls r1, 8
+ lsrs r1, 16
+ lsls r1, 16
+ ldr r0, _08042F68
+ ands r2, r0
+ orrs r2, r1
+ str r2, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r5, [r6, 0x70]
+ ldr r2, [r4, 0x8]
+ subs r0, 0x1
+ cmp r2, r0
+ beq _08042F36
+ lsls r2, 24
+ lsrs r2, 24
+ add r0, sp, 0x4
+ adds r1, r6, 0
+ adds r1, 0x28
+ bl sub_800569C
+_08042F36:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ adds r1, 0x46
+ ldrb r1, [r1]
+ str r1, [sp]
+ add r1, sp, 0x8
+ add r2, sp, 0x4
+ mov r3, r8
+ bl sub_800EB24
+_08042F4A:
+ adds r7, 0x1
+ cmp r7, 0x2
+ ble _08042ED6
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042F5C: .4byte gUnknown_203B418
+_08042F60: .4byte 0x000005c4
+_08042F64: .4byte 0xffff0000
+_08042F68: .4byte 0x0000ffff
+ thumb_func_end sub_8042EC8
+
+ thumb_func_start xxx_dungeon_8042F6C
+xxx_dungeon_8042F6C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r8, r0
+ ldr r1, _0804310C
+ movs r0, 0
+ strb r0, [r1]
+ mov r0, r8
+ ldrb r6, [r0, 0x8]
+ ldrb r1, [r0, 0x11]
+ mov r9, r1
+ ldrb r2, [r0, 0x10]
+ mov r10, r2
+ ldr r0, _08043110
+ mov r3, r8
+ ldr r1, [r3, 0x74]
+ str r1, [r0]
+ ldr r2, _08043114
+ ldr r0, [r3, 0x78]
+ str r0, [r2]
+ cmp r6, 0
+ bne _08042FA0
+ strb r6, [r1]
+_08042FA0:
+ ldr r2, [r2]
+ movs r1, 0
+ ldr r4, _08043118
+ ldr r5, _0804311C
+ mov r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x8]
+ mov r3, r8
+ adds r3, 0x7C
+ str r3, [sp, 0xC]
+ movs r3, 0
+_08042FB6:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, r4
+ bls _08042FB6
+ movs r7, 0
+ movs r0, 0x64
+ strh r0, [r5]
+ cmp r6, 0
+ bne _0804300C
+ ldr r4, _08043114
+ ldr r0, [r4]
+ mov r5, r8
+ ldrb r1, [r5, 0xF]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, [r4]
+ ldr r3, _08043120
+ adds r2, r3
+ ldr r0, [r5, 0x14]
+ ldr r1, [r5, 0x18]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r0, [r5, 0x4]
+ bl GetUnkC
+ ldr r1, [r4]
+ ldr r5, _08043124
+ adds r2, r1, r5
+ strh r0, [r2]
+ ldr r0, _08043128
+ adds r1, r0
+ strb r7, [r1]
+ mov r1, r8
+ ldrb r0, [r1, 0x4]
+ bl GetUnk3
+ ldr r1, [r4]
+ ldr r2, _0804312C
+ adds r1, r2
+ strb r0, [r1]
+_0804300C:
+ ldr r4, _08043114
+ ldr r0, [r4]
+ movs r3, 0xD3
+ lsls r3, 3
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, [r4]
+ ldr r5, _08043130
+ adds r0, r5
+ strb r7, [r0]
+ ldr r0, [r4]
+ mov r2, r8
+ ldrb r1, [r2, 0x9]
+ subs r3, 0x3C
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r2, 0xC]
+ subs r5, 0x3F
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r2, 0xA]
+ movs r2, 0xCB
+ lsls r2, 3
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ mov r3, r8
+ ldrb r1, [r3, 0xB]
+ subs r5, 0x1
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r3, 0xD]
+ adds r2, 0x3
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r3, 0xE]
+ ldr r3, _08043134
+ adds r0, r3
+ strb r1, [r0]
+ bl sub_8083F34
+ bl sub_803D4AC
+ bl sub_804513C
+ bl sub_8043CD8
+ bl sub_80495E4
+ bl sub_803E250
+ bl sub_8040130
+ bl sub_8040124
+ movs r0, 0x1
+ bl sub_803F27C
+ ldr r1, _08043138
+ ldr r5, _0804313C
+ adds r0, r5, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ movs r1, 0x14
+ bl sub_80095CC
+ movs r0, 0
+ bl sub_800DAC0
+ movs r0, 0x1
+ bl xxx_update_some_bg_tiles
+ bl sub_803DF60
+ bl sub_803E02C
+ bl sub_8042E98
+ ldr r0, _08043140
+ strb r7, [r0]
+ cmp r6, 0
+ beq _080430C8
+ ldr r0, _08043110
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 7
+ bl sub_8081BF4
+ bl sub_8049840
+_080430C8:
+ mov r0, r9
+ cmp r0, 0
+ beq _080430D2
+ bl sub_8043D60
+_080430D2:
+ cmp r6, 0
+ beq _080430D8
+ b _080431DC
+_080430D8:
+ ldr r0, [r4]
+ ldr r1, _08043144
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r2, _08043148
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, [r4]
+ movs r3, 0xCF
+ lsls r3, 3
+ adds r0, r2, r3
+ ldrb r3, [r0]
+ cmp r3, 0x1
+ bne _08043154
+ mov r5, r8
+ ldrb r1, [r5, 0x14]
+ ldr r5, _0804314C
+ adds r0, r2, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _08043150
+ adds r0, r1
+ strb r3, [r0]
+ b _0804315E
+ .align 2, 0
+_0804310C: .4byte gUnknown_203B40C
+_08043110: .4byte gUnknown_203B41C
+_08043114: .4byte gUnknown_203B418
+_08043118: .4byte 0x0001cedb
+_0804311C: .4byte gUnknown_203B410
+_08043120: .4byte 0x0000064c
+_08043124: .4byte 0x00000666
+_08043128: .4byte 0x0000067a
+_0804312C: .4byte 0x0000067b
+_08043130: .4byte 0x00000699
+_08043134: .4byte 0x0000065d
+_08043138: .4byte gUnknown_2026E4E
+_0804313C: .4byte 0x00000808
+_08043140: .4byte gUnknown_202F32C
+_08043144: .4byte 0x0001820b
+_08043148: .4byte 0x0001820c
+_0804314C: .4byte 0x00000644
+_08043150: .4byte 0x00000645
+_08043154:
+ ldr r3, _0804318C
+ adds r1, r2, r3
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ str r0, [r1]
+_0804315E:
+ ldr r4, _08043190
+ ldr r0, [r4]
+ ldr r1, _08043194
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8044124
+ cmp r6, 0
+ bne _080431DC
+ ldr r1, [r4]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0804319C
+ ldr r3, _08043198
+ adds r1, r3
+ mov r5, r8
+ ldr r0, [r5, 0x18]
+ str r0, [r1]
+ b _080431AC
+ .align 2, 0
+_0804318C: .4byte 0x00000644
+_08043190: .4byte gUnknown_203B418
+_08043194: .4byte 0x00000674
+_08043198: .4byte 0x0000067c
+_0804319C:
+ bl Random
+ ldr r2, [r4]
+ ldr r1, _08043208
+ adds r2, r1
+ ldr r1, _0804320C
+ ands r1, r0
+ str r1, [r2]
+_080431AC:
+ ldr r4, _08043210
+ ldr r0, [r4]
+ ldr r2, _08043208
+ adds r0, r2
+ ldr r0, [r0]
+ bl sub_808408C
+ cmp r6, 0
+ bne _080431DC
+ bl sub_80980A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080431D8
+ ldr r0, [r4]
+ ldr r3, _08043214
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080431D8
+ bl sub_8043FD0
+_080431D8:
+ bl sub_806890C
+_080431DC:
+ mov r5, r9
+ cmp r5, 0
+ beq _08043230
+ ldr r1, _08043218
+ ldr r0, _08043210
+ ldr r0, [r0]
+ ldr r2, _0804321C
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [r1]
+ cmp r0, 0
+ beq _08043224
+ ldr r0, _08043220
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _08043230
+ .align 2, 0
+_08043208: .4byte 0x0000067c
+_0804320C: .4byte 0x00ffffff
+_08043210: .4byte gUnknown_203B418
+_08043214: .4byte 0x00000644
+_08043218: .4byte gUnknown_202DE30
+_0804321C: .4byte 0x0000067b
+_08043220: .4byte gUnknown_80FEC48
+_08043224:
+ ldr r0, _080432B4
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08043230:
+ mov r3, r10
+ cmp r3, 0
+ beq _0804326A
+ mov r1, r8
+ adds r1, 0x44
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080432B8
+ ldr r0, [r0]
+ ldr r5, _080432BC
+ adds r0, r5
+ ldrb r0, [r0]
+ bl GetLevelCondition
+ lsls r0, 24
+ mov r4, r8
+ adds r4, 0x1C
+ cmp r0, 0
+ beq _0804325C
+ adds r0, r4, 0
+ bl sub_808D0D8
+_0804325C:
+ adds r0, r4, 0
+ bl sub_8068A84
+ cmp r6, 0
+ beq _0804326A
+ bl sub_806B404
+_0804326A:
+ bl sub_8068614
+ cmp r6, 0
+ bne _080432F4
+ ldr r0, _080432B8
+ ldr r0, [r0]
+ movs r1, 0xCF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080432F4
+ mov r0, sp
+ bl sub_8099394
+ lsls r0, 24
+ cmp r0, 0
+ beq _080432F4
+ mov r0, sp
+ ldrb r0, [r0]
+ bl sub_8095228
+ adds r2, r0, 0
+ adds r2, 0x2C
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080432E8
+ ldr r1, _080432C0
+ str r0, [r1]
+ ldr r0, _080432C4
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _080432F4
+ .align 2, 0
+_080432B4: .4byte gUnknown_80FEC7C
+_080432B8: .4byte gUnknown_203B418
+_080432BC: .4byte 0x00000644
+_080432C0: .4byte gUnknown_202DE30
+_080432C4: .4byte gUnknown_81002B8
+_080432C8:
+ ldr r4, _080432CC
+ b _080432D2
+ .align 2, 0
+_080432CC: .4byte 0x00000226
+_080432D0:
+ ldr r4, _080432E4
+_080432D2:
+ bl sub_8083600
+ adds r2, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8083AB0
+ bl _08043AF4
+ .align 2, 0
+_080432E4: .4byte 0x00000227
+_080432E8:
+ ldr r0, _080434B8
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_080432F4:
+ movs r2, 0
+ mov r10, r2
+ movs r3, 0
+ mov r9, r3
+_080432FC:
+ bl sub_8098080
+ bl nullsub_16
+ bl sub_80521D0
+ bl sub_80531A8
+ bl sub_800F690
+ cmp r6, 0
+ bne _08043318
+ bl sub_804513C
+_08043318:
+ ldr r0, _080434BC
+ movs r5, 0
+ str r5, [r0]
+ ldr r4, _080434C0
+ ldr r0, [r4]
+ strb r5, [r0]
+ cmp r6, 0
+ bne _08043346
+ bl sub_80840A4
+ ldr r1, [r4]
+ movs r3, 0xD0
+ lsls r3, 3
+ adds r2, r1, r3
+ str r0, [r2]
+ movs r0, 0xCD
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0xA
+ strh r0, [r1]
+ ldr r0, [r2]
+ bl sub_80840D8
+_08043346:
+ ldr r0, [r4]
+ ldr r1, _080434C4
+ adds r0, r1
+ strb r5, [r0]
+ cmp r6, 0
+ bne _08043390
+ ldr r0, [r4]
+ ldr r2, _080434C8
+ adds r0, r2
+ strb r6, [r0]
+ movs r0, 0x4
+ bl sub_8084100
+ ldr r1, [r4]
+ ldr r3, _080434CC
+ adds r1, r3
+ strb r6, [r1]
+ ldr r1, [r4]
+ ldr r2, _080434D0
+ adds r1, r2
+ strb r6, [r1]
+ ldr r2, [r4]
+ ldr r1, _080434D4
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r3, 0x3
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _080434D8
+ adds r2, r0
+ mov r1, r10
+ strb r1, [r2]
+ ldr r0, [r4]
+ ldr r2, _080434DC
+ adds r0, r2
+ strb r1, [r0]
+_08043390:
+ bl sub_803D4D0
+ ldr r0, [r4]
+ strb r5, [r0, 0x1]
+ ldr r0, [r4]
+ strb r5, [r0, 0x10]
+ ldr r0, [r4]
+ strb r5, [r0, 0x2]
+ ldr r0, [r4]
+ strb r5, [r0, 0x4]
+ ldr r0, [r4]
+ strb r5, [r0, 0x11]
+ ldr r0, [r4]
+ strb r5, [r0, 0x8]
+ ldr r0, [r4]
+ strb r5, [r0, 0x3]
+ ldr r0, [r4]
+ strb r5, [r0, 0x6]
+ ldr r0, [r4]
+ strb r5, [r0, 0xF]
+ ldr r2, [r4]
+ movs r3, 0xB8
+ lsls r3, 3
+ adds r1, r2, r3
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1]
+ strb r5, [r2, 0x7]
+ ldr r0, [r4]
+ strb r5, [r0, 0x9]
+ ldr r0, [r4]
+ strb r5, [r0, 0xA]
+ ldr r0, [r4]
+ movs r1, 0x1
+ strb r1, [r0, 0xB]
+ ldr r0, [r4]
+ strb r1, [r0, 0xD]
+ ldr r0, [r4]
+ strb r5, [r0, 0xE]
+ ldr r0, [r4]
+ ldr r2, _080434E0
+ adds r0, r2
+ strb r5, [r0]
+ cmp r6, 0
+ bne _080434A6
+ ldr r0, [r4]
+ adds r3, 0xB9
+ adds r0, r3
+ strb r6, [r0]
+ ldr r1, [r4]
+ ldr r5, _080434E4
+ adds r0, r1, r5
+ str r6, [r0]
+ movs r2, 0xD2
+ lsls r2, 3
+ adds r0, r1, r2
+ str r6, [r0]
+ adds r3, 0x1B
+ adds r0, r1, r3
+ str r6, [r0]
+ subs r5, 0x2C
+ adds r0, r1, r5
+ strh r6, [r0]
+ subs r2, 0x2E
+ adds r0, r1, r2
+ strh r6, [r0]
+ subs r3, 0x26
+ adds r1, r3
+ mov r5, r10
+ strb r5, [r1]
+ ldr r0, [r4]
+ ldr r1, _080434E8
+ adds r0, r1
+ strb r5, [r0]
+ ldr r0, [r4]
+ adds r2, 0xE
+ adds r0, r2
+ strb r5, [r0]
+ ldr r0, [r4]
+ adds r3, 0x8
+ adds r0, r3
+ strb r5, [r0]
+ ldr r0, [r4]
+ ldr r5, _080434EC
+ adds r0, r5
+ mov r1, r10
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, 0x2
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, [r4]
+ subs r3, 0xC
+ adds r2, r1, r3
+ ldr r0, _080434F0
+ strh r0, [r2]
+ adds r5, 0x17
+ adds r0, r1, r5
+ strh r6, [r0]
+ ldr r0, _080434F4
+ adds r1, r0
+ mov r2, r10
+ strb r2, [r1]
+ ldr r1, [r4]
+ adds r3, 0x1A
+ adds r0, r1, r3
+ movs r2, 0x63
+ strh r2, [r0]
+ subs r5, 0x2
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _080434F8
+ adds r1, r0
+ mov r2, r10
+ strb r2, [r1]
+ ldr r1, [r4]
+ ldr r3, _080434FC
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ ldr r5, _08043500
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r2, _08043504
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ ldr r3, _08043508
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r5, _0804350C
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08043510
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_807E5E4
+ bl sub_80842F0
+_080434A6:
+ bl sub_803D8F0
+ bl sub_8068658
+ cmp r6, 0
+ bne _08043514
+ bl sub_80687AC
+ b _0804351C
+ .align 2, 0
+_080434B8: .4byte gUnknown_81002D8
+_080434BC: .4byte gUnknown_203B450
+_080434C0: .4byte gUnknown_203B418
+_080434C4: .4byte 0x000037ec
+_080434C8: .4byte 0x000037fc
+_080434CC: .4byte 0x000037fd
+_080434D0: .4byte 0x000037fe
+_080434D4: .4byte gUnknown_80F6850
+_080434D8: .4byte 0x000037ff
+_080434DC: .4byte 0x00000675
+_080434E0: .4byte 0x0001c05e
+_080434E4: .4byte 0x0000068c
+_080434E8: .4byte 0x0000066f
+_080434EC: .4byte 0x00000671
+_080434F0: .4byte 0x000003e7
+_080434F4: .4byte 0x0000068a
+_080434F8: .4byte 0x0000e264
+_080434FC: .4byte 0x0001c576
+_08043500: .4byte 0x00003a0e
+_08043504: .4byte 0x0001c577
+_08043508: .4byte 0x00003a10
+_0804350C: .4byte 0x0001c586
+_08043510: .4byte 0x00003a14
+_08043514:
+ bl sub_8068768
+ bl sub_8082B40
+_0804351C:
+ bl sub_806C42C
+ bl sub_806AD3C
+ cmp r6, 0
+ bne _08043544
+ ldr r1, _080435B4
+ ldr r3, _080435B8
+ ldr r0, [r3]
+ ldr r5, _080435BC
+ adds r0, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8083E88
+ bl sub_80847D4
+_08043544:
+ bl sub_8049840
+ bl sub_803E178
+ ldr r0, _080435C0
+ mov r3, r9
+ str r3, [r0]
+ bl sub_8040124
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_803EAF0
+ movs r0, 0
+ bl sub_8052210
+ adds r0, r6, 0
+ bl sub_803F27C
+ bl ShowDungeonNameBanner
+ cmp r6, 0
+ bne _08043594
+ bl sub_804AFAC
+ ldr r5, _080435B8
+ ldr r0, [r5]
+ ldr r1, _080435C4
+ adds r0, r1
+ ldrb r0, [r0]
+ bl GetUnkC
+ ldr r2, [r5]
+ ldr r3, _080435C8
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r5, _080435CC
+ adds r2, r5
+ mov r0, r10
+ strb r0, [r2]
+_08043594:
+ bl sub_804AAD4
+ bl sub_8049B8C
+ bl sub_804966C
+ cmp r6, 0
+ bne _080435D0
+ bl sub_806B168
+ bl sub_806C3C0
+ bl sub_806B6C4
+ b _080435D4
+ .align 2, 0
+_080435B4: .4byte gUnknown_80F5668
+_080435B8: .4byte gUnknown_203B418
+_080435BC: .4byte 0x00003a10
+_080435C0: .4byte gUnknown_202EDC8
+_080435C4: .4byte 0x00000644
+_080435C8: .4byte 0x00000666
+_080435CC: .4byte 0x0000067a
+_080435D0:
+ bl sub_806B678
+_080435D4:
+ ldr r4, _0804362C
+ ldr r1, [r4]
+ ldr r2, _08043630
+ adds r0, r1, r2
+ mov r3, r9
+ str r3, [r0]
+ ldr r5, _08043634
+ adds r0, r1, r5
+ str r3, [r0]
+ adds r2, 0x4
+ adds r0, r1, r2
+ str r3, [r0]
+ ldr r3, _08043638
+ adds r0, r1, r3
+ mov r5, r9
+ str r5, [r0]
+ adds r2, 0x4
+ adds r0, r1, r2
+ str r5, [r0]
+ adds r3, 0x4
+ adds r1, r3
+ str r5, [r1]
+ cmp r6, 0
+ bne _08043644
+ bl sub_807FA18
+ bl sub_8045CB0
+ ldr r1, [r4]
+ ldr r5, _0804363C
+ adds r2, r1, r5
+ ldr r3, _08043640
+ adds r0, r1, r3
+ ldr r0, [r0]
+ str r0, [r2]
+ subs r5, 0x4
+ adds r1, r5
+ str r6, [r1]
+ bl sub_8051E3C
+ bl sub_804AAAC
+ b _08043648
+ .align 2, 0
+_0804362C: .4byte gUnknown_203B418
+_08043630: .4byte 0x00017b2c
+_08043634: .4byte 0x00017b38
+_08043638: .4byte 0x00017b3c
+_0804363C: .4byte 0x00000694
+_08043640: .4byte 0x0000068c
+_08043644:
+ bl sub_806A338
+_08043648:
+ bl sub_8068F80
+ bl sub_8049884
+ bl sub_8049ED4
+ cmp r6, 0
+ bne _08043664
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_806A914
+ b _0804366C
+_08043664:
+ bl sub_806CF60
+ bl sub_806A974
+_0804366C:
+ movs r0, 0x1
+ bl sub_8041888
+ cmp r6, 0
+ bne _0804367E
+ bl sub_80848F0
+ bl sub_8097890
+_0804367E:
+ ldr r0, _080436A0
+ movs r1, 0x1
+ strb r1, [r0]
+ cmp r6, 0
+ beq _08043690
+ bl sub_807E88C
+ bl sub_806AB2C
+_08043690:
+ ldr r2, _080436A4
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _080436A8
+ bl sub_803E748
+ b _080436AC
+ .align 2, 0
+_080436A0: .4byte gUnknown_203B40C
+_080436A4: .4byte gUnknown_203B418
+_080436A8:
+ bl sub_803E7C8
+_080436AC:
+ movs r0, 0
+ bl sub_8040094
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ adds r0, r6, 0
+ bl sub_8040150
+ bl sub_8040A84
+ ldr r4, _08043730
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ mov r3, r9
+ str r3, [r0]
+ ldr r5, _08043734
+ adds r1, r5
+ strb r3, [r1]
+ ldr r0, [r4]
+ ldr r1, _08043738
+ adds r0, r1
+ mov r2, r9
+ strb r2, [r0]
+ ldr r1, [r4]
+ movs r5, 0
+ movs r0, 0x63
+ strh r0, [r1, 0x12]
+ movs r3, 0x1
+ strb r3, [r1]
+ cmp r6, 0
+ bne _08043706
+ bl sub_8052DD0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ beq _08043706
+ strb r5, [r1, 0x9]
+ bl sub_8083D68
+ bl sub_8052F80
+_08043706:
+ ldr r0, _0804373C
+ mov r5, r9
+ str r5, [r0]
+ ldr r4, _08043730
+ ldr r0, [r4]
+ strb r5, [r0, 0x5]
+ cmp r6, 0
+ bne _08043778
+ bl sub_8084B64
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08043728
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08043740
+_08043728:
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0804374C
+ .align 2, 0
+_08043730: .4byte gUnknown_203B418
+_08043734: .4byte 0x0000066c
+_08043738: .4byte 0x0000066d
+_0804373C: .4byte gUnknown_203B450
+_08043740:
+ bl sub_8083600
+ bl sub_803F4A0
+ bl sub_8040A84
+_0804374C:
+ cmp r6, 0
+ bne _08043778
+ ldr r1, _08043774
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0
+ bne _0804377C
+ bl sub_807E5AC
+ movs r0, 0
+ bl sub_807E580
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804377C
+ movs r0, 0x1
+ bl sub_807E7FC
+ b _0804377C
+ .align 2, 0
+_08043774: .4byte gUnknown_203B418
+_08043778:
+ bl sub_8069E8C
+_0804377C:
+ cmp r6, 0
+ beq _08043784
+ movs r6, 0
+ b _080437A2
+_08043784:
+ bl sub_80427AC
+ bl sub_8083600
+ ldr r2, _08043960
+ ldr r1, [r2]
+ ldr r3, _08043964
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_8075900
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_807EAA0
+_080437A2:
+ bl nullsub_16
+ ldr r2, _08043960
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x5]
+ cmp r1, 0
+ bne _080437DA
+ movs r4, 0x1
+ ldr r5, _08043968
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, _0804396C
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r5, _08043970
+ adds r0, r5
+ strb r4, [r0]
+_080437C8:
+ adds r0, r4, 0
+ bl RunDungeon
+ movs r4, 0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080437C8
+_080437DA:
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080437F0
+ adds r0, r4, 0
+ bl sub_8071DA4
+_080437F0:
+ ldr r5, _08043960
+ ldr r0, [r5]
+ ldr r4, _08043968
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08043822
+ movs r0, 0x1
+ bl sub_8043ED0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043812
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0x1
+ strb r1, [r0]
+_08043812:
+ ldr r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08043822
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _08043830
+_08043822:
+ ldr r2, _08043960
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _08043830
+ bl sub_806AA70
+_08043830:
+ bl sub_8083600
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804384A
+ movs r0, 0x4F
+ bl sub_80526D0
+ movs r0, 0x4F
+ bl sub_8052740
+_0804384A:
+ bl sub_8040124
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_803EAF0
+ ldr r3, _08043960
+ ldr r0, [r3]
+ ldr r5, _08043970
+ adds r0, r5
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r2, _0804396C
+ adds r0, r2
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r5, _08043960
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _08043896
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08043896
+ ldr r2, _08043974
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x72
+ bne _08043896
+ ldr r3, _08043978
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1B
+ bne _08043896
+ movs r0, 0x3C
+ bl sub_8083ED8
+_08043896:
+ movs r0, 0x4
+ movs r1, 0x4F
+ bl sub_803E708
+ ldr r5, _08043960
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _080438AC
+ bl sub_803E830
+_080438AC:
+ movs r0, 0
+ bl SetBGOBJEnableFlags
+ ldr r1, _0804397C
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x60
+ orrs r0, r1
+ ldr r1, _08043980
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ ldr r1, _08043984
+ ands r0, r1
+ movs r1, 0xF8
+ lsls r1, 16
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, _08043988
+ ldr r2, [r0]
+ movs r0, 0xFD
+ ldr r1, [sp, 0x8]
+ movs r3, 0
+ bl SetBGPaletteBufferColorRGB
+ movs r0, 0x1
+ bl sub_8040094
+ ldr r0, [r5]
+ ldr r1, _0804396C
+ adds r0, r1
+ movs r7, 0
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x10]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08043926
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08043926
+ bl sub_8083600
+ adds r4, r0, 0
+ ldr r0, _0804398C
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ ldr r0, [r5]
+ strb r7, [r0, 0x6]
+ ldr r0, _08043990
+ adds r1, r4, 0
+ adds r2, r4, 0
+ bl sub_8083AB0
+_08043926:
+ bl sub_80688CC
+ bl sub_8049820
+ ldr r0, _08043994
+ ldr r0, [r0]
+ bl CloseFile
+ bl sub_800F740
+ ldr r0, _08043998
+ mov r3, r10
+ strb r3, [r0]
+ ldr r4, _08043960
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ beq _0804394C
+ b _08043BFC
+_0804394C:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _080439A0
+ ldr r0, _0804399C
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 7
+ bl sub_8080B30
+ b _080439A6
+ .align 2, 0
+_08043960: .4byte gUnknown_203B418
+_08043964: .4byte 0x00003a08
+_08043968: .4byte 0x00000654
+_0804396C: .4byte 0x00018218
+_08043970: .4byte 0x00018219
+_08043974: .4byte 0x0001ceda
+_08043978: .4byte 0x00000644
+_0804397C: .4byte 0xffffff00
+_08043980: .4byte 0xffff00ff
+_08043984: .4byte 0xff00ffff
+_08043988: .4byte gUnknown_202EDC8
+_0804398C: .4byte gUnknown_81006A4
+_08043990: .4byte 0x00000222
+_08043994: .4byte gDungeonNameBannerPalette
+_08043998: .4byte gUnknown_203B40C
+_0804399C: .4byte gUnknown_203B41C
+_080439A0:
+ movs r0, 0x2
+ bl sub_8046F84
+_080439A6:
+ bl sub_806C1D8
+ ldr r4, _080439CC
+ ldr r1, [r4]
+ ldr r5, _080439D0
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080439D4
+ adds r5, 0x1A
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080439C4
+ b _08043AF4
+_080439C4:
+ bl sub_804700C
+ b _08043AF4
+ .align 2, 0
+_080439CC: .4byte gUnknown_203B418
+_080439D0: .4byte 0x00000654
+_080439D4:
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x1
+ bne _080439DC
+ b _080432C8
+_080439DC:
+ cmp r0, 0x2
+ bne _08043A00
+ bl sub_8083600
+ adds r2, r0, 0
+ ldr r0, _080439F8
+ movs r1, 0
+ bl sub_8083AB0
+ ldr r0, [r4]
+ ldr r1, _080439FC
+ adds r0, r1
+ b _08043A62
+ .align 2, 0
+_080439F8: .4byte 0x00000229
+_080439FC: .4byte 0x0000066e
+_08043A00:
+ cmp r0, 0x3
+ bne _08043A24
+ bl sub_8083600
+ adds r2, r0, 0
+ ldr r0, _08043A1C
+ movs r1, 0
+ bl sub_8083AB0
+ ldr r0, [r4]
+ ldr r2, _08043A20
+ adds r0, r2
+ b _08043A62
+ .align 2, 0
+_08043A1C: .4byte 0x0000022a
+_08043A20: .4byte 0x0000066e
+_08043A24:
+ cmp r0, 0x4
+ bne _08043A2A
+ b _080432D0
+_08043A2A:
+ movs r3, 0xCF
+ lsls r3, 3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043A74
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08043A74
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08043A74
+ bl sub_8083600
+ adds r2, r0, 0
+ movs r0, 0x8A
+ lsls r0, 2
+ movs r1, 0
+ bl sub_8083AB0
+ ldr r0, [r4]
+ ldr r5, _08043A70
+ adds r0, r5
+_08043A62:
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08043AF4
+ bl sub_8097810
+ b _08043AF4
+ .align 2, 0
+_08043A70: .4byte 0x0000066e
+_08043A74:
+ ldr r4, _08043ACC
+ ldr r0, [r4]
+ ldr r1, _08043AD0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08043A86
+ bl sub_8097810
+_08043A86:
+ ldr r1, [r4]
+ ldr r3, _08043AD4
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldr r5, _08043AD8
+ adds r1, r5
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _08043AE4
+ strb r0, [r2]
+ ldr r0, [r4]
+ ldr r1, _08043ADC
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08043AE0
+ cmp r1, r0
+ beq _08043AAC
+ b _080432FC
+_08043AAC:
+ movs r0, 0x1F
+ bl sub_8098100
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043ABA
+ b _080432FC
+_08043ABA:
+ movs r0, 0x1F
+ bl sub_8097FA8
+ bl sub_8086130
+ bl sub_8097FF8
+ b _080432FC
+ .align 2, 0
+_08043ACC: .4byte gUnknown_203B418
+_08043AD0: .4byte 0x0000066e
+_08043AD4: .4byte 0x00000645
+_08043AD8: .4byte 0x0001cec8
+_08043ADC: .4byte 0x00000644
+_08043AE0: .4byte 0x0000060b
+_08043AE4:
+ ldr r4, _08043B80
+ bl sub_8083600
+ adds r2, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8083AB0
+_08043AF4:
+ ldr r1, _08043B84
+ movs r0, 0
+ strb r0, [r1]
+ mov r4, r8
+ adds r4, 0x7E
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_8097FF8
+ movs r0, 0x1
+ movs r1, 0x14
+ bl sub_80095CC
+ bl sub_803E13C
+ movs r0, 0x4
+ bl sub_800CDA8
+ ldr r0, _08043B88
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08043B38
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ bl sub_8083C88
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043B38
+ bl sub_80841EC
+_08043B38:
+ bl sub_8083C24
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043BA4
+ ldr r5, _08043B88
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _08043B98
+ ldr r0, _08043B8C
+ ldr r3, [sp, 0xC]
+ strh r0, [r3]
+ mov r4, r8
+ adds r4, 0x84
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ mov r3, r8
+ adds r3, 0x80
+ ldr r1, [r5]
+ ldr r5, _08043B90
+ adds r2, r1, r5
+ ldr r0, [r2]
+ str r0, [r3]
+ ldr r0, [r2]
+ str r0, [r4]
+ mov r2, r8
+ adds r2, 0x88
+ ldr r0, _08043B94
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ b _08043C32
+ .align 2, 0
+_08043B80: .4byte 0x00000227
+_08043B84: .4byte gUnknown_203B40C
+_08043B88: .4byte gUnknown_203B418
+_08043B8C: .4byte 0x0000fffe
+_08043B90: .4byte 0x00000644
+_08043B94: .4byte 0x0000067c
+_08043B98:
+ ldr r0, _08043BA0
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ b _08043C32
+ .align 2, 0
+_08043BA0: .4byte 0x0000ffff
+_08043BA4:
+ bl sub_8083C50
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043C28
+ ldr r0, _08043BC8
+ ldr r0, [r0]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043BCC
+ movs r0, 0x4
+ ldr r3, [sp, 0xC]
+ strh r0, [r3]
+ b _08043BE6
+ .align 2, 0
+_08043BC8: .4byte gUnknown_203B418
+_08043BCC:
+ cmp r0, 0
+ bne _08043BDC
+ movs r0, 0x1
+ ldr r5, [sp, 0xC]
+ strh r0, [r5]
+ bl sub_8084424
+ b _08043BE6
+_08043BDC:
+ movs r0, 0x1
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ bl sub_8084424
+_08043BE6:
+ ldr r0, _08043BF4
+ ldr r0, [r0]
+ ldr r2, _08043BF8
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r4]
+ b _08043C32
+ .align 2, 0
+_08043BF4: .4byte gUnknown_203B418
+_08043BF8: .4byte 0x00000674
+_08043BFC:
+ ldr r0, _08043C20
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 7
+ bl sub_8080B30
+ movs r0, 0x3
+ ldr r3, [sp, 0xC]
+ strh r0, [r3]
+ mov r1, r8
+ adds r1, 0x80
+ ldr r0, [r4]
+ ldr r5, _08043C24
+ adds r0, r5
+ ldr r0, [r0]
+ str r0, [r1]
+ b _08043C32
+ .align 2, 0
+_08043C20: .4byte gUnknown_203B41C
+_08043C24: .4byte 0x00000644
+_08043C28:
+ movs r0, 0x2
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ bl sub_8084424
+_08043C32:
+ bl sub_806863C
+ bl sub_803E214
+ bl nullsub_56
+ bl sub_8040218
+ ldr r2, [sp, 0xC]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _08043C54
+ cmp r0, 0x4
+ beq _08043C54
+ cmp r0, 0x2
+ bne _08043C58
+_08043C54:
+ bl sub_8047104
+_08043C58:
+ ldr r5, [sp, 0xC]
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x1
+ beq _08043C8A
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08043C78
+ cmp r1, 0x4
+ beq _08043C78
+ adds r0, 0x1
+ cmp r1, r0
+ beq _08043C78
+ cmp r1, 0x2
+ bne _08043CAC
+_08043C78:
+ ldr r2, [sp, 0xC]
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ cmp r1, 0x1
+ beq _08043C8A
+ cmp r1, 0x4
+ beq _08043C8A
+ cmp r1, 0x2
+ bne _08043C92
+_08043C8A:
+ movs r0, 0x1
+ bl sub_8068BDC
+ b _08043CAC
+_08043C92:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _08043CA2
+ movs r0, 0
+ bl sub_8068BDC
+ b _08043CAC
+_08043CA2:
+ bl sub_8068F28
+ movs r0, 0
+ bl sub_8068BDC
+_08043CAC:
+ bl sub_800DB7C
+ ldr r0, _08043CD0
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _08043CD4
+ str r1, [r0]
+ bl nullsub_16
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043CD0: .4byte gUnknown_203B418
+_08043CD4: .4byte gUnknown_203B41C
+ thumb_func_end xxx_dungeon_8042F6C
+
+ thumb_func_start sub_8043CD8
+sub_8043CD8:
+ push {lr}
+ bl sub_8009804
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8043CD8
+
+ thumb_func_start sub_8043CE4
+sub_8043CE4:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08043CF4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08043CF8
+ movs r0, 0x1
+ b _08043D08
+ .align 2, 0
+_08043CF4: .4byte gUnknown_202F1A8
+_08043CF8:
+ movs r2, 0
+ ldr r0, _08043D0C
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08043D06
+ movs r2, 0x1
+_08043D06:
+ adds r0, r2, 0
+_08043D08:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043D0C: .4byte gUnknown_810ACC0
+ thumb_func_end sub_8043CE4
+
+ thumb_func_start sub_8043D10
+sub_8043D10:
+ push {lr}
+ ldr r0, _08043D38
+ ldr r1, [r0]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043D3C
+ subs r2, 0x2B
+ adds r0, r1, r2
+ subs r2, 0x8
+ adds r1, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08043D3C
+ movs r0, 0x2
+ b _08043D4C
+ .align 2, 0
+_08043D38: .4byte gUnknown_203B418
+_08043D3C:
+ bl sub_80441BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043D4A
+ movs r0, 0
+ b _08043D4C
+_08043D4A:
+ movs r0, 0x1
+_08043D4C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8043D10
+
+ thumb_func_start sub_8043D50
+sub_8043D50:
+ ldr r2, _08043D5C
+ str r2, [r1]
+ movs r1, 0x90
+ lsls r1, 7
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08043D5C: .4byte 0x0001cedc
+ thumb_func_end sub_8043D50
+
+ thumb_func_start sub_8043D60
+sub_8043D60:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r5, 0
+_08043D6A:
+ ldr r0, _08043DA4
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08043DA8
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043DCE
+ ldr r2, [r4, 0x70]
+ movs r1, 0x1
+ ldrb r0, [r2, 0x8]
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08043DA0
+ cmp r0, 0x47
+ bne _08043DAC
+_08043DA0:
+ movs r0, 0x1
+ b _08043DAE
+ .align 2, 0
+_08043DA4: .4byte gUnknown_203B418
+_08043DA8: .4byte 0x0001358c
+_08043DAC:
+ movs r0, 0
+_08043DAE:
+ cmp r0, 0
+ beq _08043DB4
+ movs r1, 0
+_08043DB4:
+ adds r0, r2, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043DC0
+ movs r1, 0
+_08043DC0:
+ cmp r1, 0
+ beq _08043DCE
+ adds r0, r4, 0
+ ldr r1, _08043EC0
+ adds r2, r4, 0
+ bl sub_8068FE0
+_08043DCE:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08043D6A
+ movs r5, 0
+ ldr r0, _08043EC4
+ mov r9, r0
+ mov r8, r5
+_08043DDC:
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ ldr r2, _08043EC8
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ adds r7, r5, 0x1
+ cmp r0, 0
+ beq _08043E62
+ adds r0, r4, 0
+ adds r0, 0x22
+ mov r1, r8
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r4, [r4, 0x70]
+ ldrh r0, [r4, 0x10]
+ strh r0, [r4, 0xE]
+ movs r2, 0x9E
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r2, 0x4
+ adds r0, r4, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r2, _08043ECC
+ adds r0, r2
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BFC0
+ ldrh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ adds r0, 0xFD
+ mov r2, r8
+ strb r2, [r0]
+ movs r0, 0x8C
+ lsls r0, 1
+ adds r5, r4, r0
+ adds r4, r5, 0
+ movs r6, 0x3
+_08043E46:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08043E58
+ adds r0, r5, 0
+ bl sub_8092BF4
+ strb r0, [r4, 0x4]
+_08043E58:
+ adds r4, 0x8
+ adds r5, 0x8
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08043E46
+_08043E62:
+ adds r5, r7, 0
+ cmp r5, 0x3
+ ble _08043DDC
+ movs r6, 0
+_08043E6A:
+ movs r5, 0
+ adds r7, r6, 0x1
+_08043E6E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ ldr r4, [r0, 0x14]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043EA0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _08043EA0
+ adds r0, r4, 0
+ bl sub_8045104
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x1B
+ bne _08043EA0
+ movs r0, 0x5
+ strb r0, [r1]
+_08043EA0:
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _08043E6E
+ adds r6, r7, 0
+ cmp r6, 0x1F
+ ble _08043E6A
+ movs r0, 0x2
+ bl sub_8046F84
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043EC0: .4byte 0x00000207
+_08043EC4: .4byte gUnknown_203B418
+_08043EC8: .4byte 0x0001357c
+_08043ECC: .4byte 0x00000676
+ thumb_func_end sub_8043D60
+
+ thumb_func_start sub_8043ED0
+sub_8043ED0:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ cmp r5, 0
+ bne _08043EEA
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043EEA
+ movs r0, 0
+ b _08043FB8
+_08043EEA:
+ ldr r6, _08043F2C
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bne _08043F40
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043FB6
+ cmp r5, 0
+ bne _08043F20
+ ldr r0, _08043F30
+ ldr r1, [r6]
+ ldr r2, _08043F34
+ adds r1, r2
+ bl strcpy
+ ldr r0, _08043F38
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08043F20:
+ adds r0, r4, 0
+ bl sub_8042B0C
+ ldr r1, _08043F3C
+ b _08043FAC
+ .align 2, 0
+_08043F2C: .4byte gUnknown_203B418
+_08043F30: .4byte gUnknown_202DF98
+_08043F34: .4byte 0x000005f4
+_08043F38: .4byte gUnknown_80F89B4
+_08043F3C: .4byte 0x0000021f
+_08043F40:
+ cmp r0, 0x2
+ bne _08043F74
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043FB6
+ cmp r5, 0
+ bne _08043FA4
+ ldr r0, _08043F68
+ ldr r1, [r6]
+ ldr r2, _08043F6C
+ adds r1, r2
+ bl strcpy
+ ldr r0, _08043F70
+ b _08043F9A
+ .align 2, 0
+_08043F68: .4byte gUnknown_202DF98
+_08043F6C: .4byte 0x000005f4
+_08043F70: .4byte gUnknown_80F89D4
+_08043F74:
+ cmp r0, 0x3
+ bne _08043FB6
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043FB6
+ cmp r5, 0
+ bne _08043FA4
+ ldr r0, _08043FC0
+ ldr r1, [r6]
+ ldr r2, _08043FC4
+ adds r1, r2
+ bl strcpy
+ ldr r0, _08043FC8
+_08043F9A:
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08043FA4:
+ adds r0, r4, 0
+ bl sub_8042B0C
+ ldr r1, _08043FCC
+_08043FAC:
+ adds r0, r4, 0
+ adds r2, r4, 0
+ bl sub_8068FE0
+ movs r7, 0x1
+_08043FB6:
+ adds r0, r7, 0
+_08043FB8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043FC0: .4byte gUnknown_202DF98
+_08043FC4: .4byte 0x000005f4
+_08043FC8: .4byte gUnknown_80F89D8
+_08043FCC: .4byte 0x00000222
+ thumb_func_end sub_8043ED0
+
+ thumb_func_start sub_8043FD0
+sub_8043FD0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ movs r0, 0x2
+ mov r9, r0
+ movs r1, 0x1
+ mov r10, r1
+ movs r0, 0xFF
+ mov r8, r0
+_08043FE8:
+ movs r3, 0
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x3C]
+_08043FF0:
+ ldr r2, _080440E4
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ mov r0, r10
+ ands r0, r1
+ adds r3, 0x1
+ str r3, [sp, 0x40]
+ cmp r0, 0
+ beq _080440FE
+ lsrs r0, r1, 1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _080440FE
+ add r5, sp, 0x20
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ mov r2, r9
+ bl sub_808E010
+ mov r1, r9
+ strb r1, [r4, 0x3]
+ ldr r0, [sp, 0x20]
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ ldr r1, _080440E8
+ cmp r0, r1
+ ble _08044040
+ ldr r0, _080440EC
+ strh r0, [r4, 0x16]
+_08044040:
+ ldrb r0, [r4, 0x18]
+ str r0, [sp, 0x2C]
+ ldrb r0, [r4, 0x19]
+ str r0, [sp, 0x30]
+ ldrb r0, [r4, 0x1A]
+ str r0, [sp, 0x34]
+ ldrb r0, [r4, 0x1B]
+ str r0, [sp, 0x38]
+ ldrb r1, [r5, 0x6]
+ ldr r0, [sp, 0x2C]
+ adds r0, r1
+ str r0, [sp, 0x2C]
+ ldrb r1, [r5, 0x7]
+ ldr r0, [sp, 0x30]
+ adds r0, r1
+ str r0, [sp, 0x30]
+ ldrb r1, [r5, 0x8]
+ ldr r0, [sp, 0x34]
+ adds r0, r1
+ str r0, [sp, 0x34]
+ ldrb r1, [r5, 0x9]
+ ldr r0, [sp, 0x38]
+ adds r0, r1
+ str r0, [sp, 0x38]
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0xFE
+ ble _0804407A
+ mov r0, r8
+ str r0, [sp, 0x2C]
+_0804407A:
+ ldr r0, [sp, 0x30]
+ cmp r0, 0xFE
+ ble _08044084
+ mov r1, r8
+ str r1, [sp, 0x30]
+_08044084:
+ ldr r0, [sp, 0x34]
+ cmp r0, 0xFE
+ ble _0804408E
+ mov r0, r8
+ str r0, [sp, 0x34]
+_0804408E:
+ ldr r0, [sp, 0x38]
+ cmp r0, 0xFE
+ ble _08044098
+ mov r1, r8
+ str r1, [sp, 0x38]
+_08044098:
+ ldr r0, [sp, 0x2C]
+ strb r0, [r4, 0x18]
+ ldr r0, [sp, 0x30]
+ strb r0, [r4, 0x19]
+ ldr r0, [sp, 0x34]
+ strb r0, [r4, 0x1A]
+ ldr r0, [sp, 0x38]
+ strb r0, [r4, 0x1B]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ ldrb r2, [r4, 0x3]
+ mov r0, sp
+ ldr r3, _080440EC
+ bl sub_808E0AC
+ adds r6, r0, 0
+ cmp r6, 0
+ beq _080440FE
+ movs r0, 0
+ cmp r0, r6
+ bge _080440FE
+_080440C2:
+ movs r3, 0
+ adds r7, r0, 0x1
+ lsls r0, 1
+ mov r1, sp
+ adds r5, r1, r0
+ adds r2, r4, 0
+ adds r2, 0x2C
+_080440D0:
+ ldrb r1, [r2]
+ mov r0, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _080440F0
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ bl sub_8092AD4
+ b _080440F8
+ .align 2, 0
+_080440E4: .4byte gUnknown_203B45C
+_080440E8: .4byte 0x03e60000
+_080440EC: .4byte 0x000003e7
+_080440F0:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080440D0
+_080440F8:
+ adds r0, r7, 0
+ cmp r0, r6
+ blt _080440C2
+_080440FE:
+ ldr r3, [sp, 0x40]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ bgt _0804410A
+ b _08043FF0
+_0804410A:
+ ldr r0, [sp, 0x3C]
+ mov r9, r0
+ cmp r0, 0x5
+ bgt _08044114
+ b _08043FE8
+_08044114:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8043FD0
+
+ thumb_func_start sub_8044124
+sub_8044124:
+ push {r4,r5,lr}
+ ldr r0, _080441AC
+ ldr r0, [r0]
+ ldr r1, _080441B0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl GetMaxItemCount
+ cmp r0, 0
+ bne _08044182
+ movs r3, 0
+ ldr r4, _080441B4
+ movs r2, 0
+_0804413E:
+ lsls r1, r3, 2
+ ldr r0, [r4]
+ adds r1, r0
+ strb r2, [r1, 0x2]
+ strb r2, [r1, 0x1]
+ strb r2, [r1]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0804413E
+ movs r3, 0
+ ldr r5, _080441B8
+ movs r4, 0x1
+_08044156:
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r5]
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08044178
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ beq _08044178
+ adds r1, 0x28
+ movs r0, 0
+ strb r0, [r1]
+_08044178:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _08044156
+_08044182:
+ ldr r0, _080441AC
+ ldr r0, [r0]
+ ldr r2, _080441B0
+ adds r0, r2
+ ldrb r0, [r0]
+ bl GetMoneyCondition
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080441A4
+ ldr r0, _080441B4
+ ldr r0, [r0]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r2
+ str r1, [r0]
+_080441A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080441AC: .4byte gUnknown_203B418
+_080441B0: .4byte 0x00000644
+_080441B4: .4byte gUnknown_203B460
+_080441B8: .4byte gUnknown_203B45C
+ thumb_func_end sub_8044124
+
+ thumb_func_start sub_80441BC
+sub_80441BC:
+ push {lr}
+ ldr r0, _080441D8
+ ldr r0, [r0]
+ ldr r1, _080441DC
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080441E0
+ cmp r0, 0x31
+ bgt _080441E0
+ movs r0, 0x1
+ b _080441E2
+ .align 2, 0
+_080441D8: .4byte gUnknown_203B418
+_080441DC: .4byte 0x00003a14
+_080441E0:
+ movs r0, 0
+_080441E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80441BC
+
+ thumb_func_start sub_80441E8
+sub_80441E8:
+ push {lr}
+ ldr r0, _08044200
+ ldr r0, [r0]
+ ldr r1, _08044204
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3F
+ bgt _08044208
+ movs r0, 0
+ b _0804420A
+ .align 2, 0
+_08044200: .4byte gUnknown_203B418
+_08044204: .4byte 0x00003a0e
+_08044208:
+ movs r0, 0x1
+_0804420A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80441E8
+
+ thumb_func_start sub_8044210
+sub_8044210:
+ push {lr}
+ ldr r0, _0804422C
+ ldr r0, [r0]
+ ldr r1, _08044230
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bls _08044234
+ movs r0, 0
+ b _08044236
+ .align 2, 0
+_0804422C: .4byte gUnknown_203B418
+_08044230: .4byte 0x00000644
+_08044234:
+ movs r0, 0x1
+_08044236:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044210
+
+ thumb_func_start RunDungeon
+RunDungeon:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044994
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ adds r0, r4, 0
+ bl xxx_dungeon_80442D0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ cmp r4, 0
+ beq _08044280
+ bl sub_807E378
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+_08044280:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044574
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044820
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080442C6
+ bl sub_8044AB4
+ ldr r0, _080442CC
+ ldr r0, [r0]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080442C6
+ strh r4, [r1]
+_080442C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080442CC: .4byte gUnknown_203B418
+ thumb_func_end RunDungeon
+
+ thumb_func_start xxx_dungeon_80442D0
+xxx_dungeon_80442D0:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_8083600
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0804431A
+ bl sub_8069E8C
+ adds r0, r5, 0
+ bl sub_8070774
+ ldr r3, _08044320
+ ldr r1, _08044324
+ ldr r1, [r1]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ adds r1, r3
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0804431A
+ ldr r0, [r5, 0x70]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08044328
+_0804431A:
+ movs r0, 0
+ b _0804444E
+ .align 2, 0
+_08044320: .4byte gUnknown_80F6860
+_08044324: .4byte gUnknown_203B418
+_08044328:
+ bl sub_8083600
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0804431A
+ movs r0, 0
+ bl sub_807520C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804435C
+ ldr r0, _08044388
+ ldr r1, [r0]
+ ldr r2, _0804438C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08044356
+ ldr r3, _08044390
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804435C
+_08044356:
+ movs r0, 0xC
+ bl sub_803E46C
+_0804435C:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xF8
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0804431A
+ ldr r0, _08044388
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ str r5, [r0]
+ adds r1, 0xBC
+ str r2, [r1]
+ cmp r7, 0
+ beq _08044394
+ movs r7, 0
+ b _0804439A
+ .align 2, 0
+_08044388: .4byte gUnknown_203B418
+_0804438C: .4byte 0x0000066c
+_08044390: .4byte 0x00000673
+_08044394:
+ adds r0, r5, 0
+ bl sub_8074B54
+_0804439A:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804431A
+ adds r0, r5, 0
+ bl sub_8071DA4
+ ldr r6, _08044434
+ ldr r1, [r6]
+ movs r0, 0x1
+ strb r0, [r1, 0xF]
+ bl sub_805D8C8
+ ldr r0, [r6]
+ strb r4, [r0, 0xF]
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ adds r0, r5, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ ldr r2, [r5, 0x70]
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08044400
+ subs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+_08044400:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ bl sub_8044454
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804444C
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xBC
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _08044438
+ bl sub_805F02C
+ ldr r0, [r6]
+ adds r0, 0xBC
+ str r4, [r0]
+ movs r7, 0x1
+ b _08044328
+ .align 2, 0
+_08044434: .4byte gUnknown_203B418
+_08044438:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804444C
+ movs r3, 0xCC
+ lsls r3, 3
+ adds r0, r2, r3
+ strh r1, [r0]
+ b _08044328
+_0804444C:
+ movs r0, 0x1
+_0804444E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end xxx_dungeon_80442D0
+
+ thumb_func_start sub_8044454
+sub_8044454:
+ push {r4-r6,lr}
+ ldr r0, _080444E8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _080444E2
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r6, 0
+_08044466:
+ ldr r0, _080444E8
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _080444EC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080444DC
+ ldr r5, [r4, 0x70]
+ ldrh r0, [r5]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080444DC
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080444E2
+ adds r0, r4, 0
+ bl sub_8074B54
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080444DC
+ adds r0, r4, 0
+ bl sub_8071DA4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075990
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ ldrh r0, [r5]
+ ldr r2, _080444F0
+ adds r1, r2, 0
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r5]
+_080444DC:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08044466
+_080444E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080444E8: .4byte gUnknown_203B418
+_080444EC: .4byte 0x000135cc
+_080444F0: .4byte 0x00007fff
+ thumb_func_end sub_8044454
+
+ thumb_func_start sub_80444F4
+sub_80444F4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8083600
+ cmp r6, r0
+ bne _08044566
+ ldr r0, _0804456C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _08044566
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r5, 0
+_08044510:
+ ldr r0, _0804456C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08044570
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044560
+ cmp r6, r4
+ beq _08044560
+ ldr r0, [r4, 0x70]
+ ldrh r0, [r0]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08044560
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044566
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075990
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+_08044560:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08044510
+_08044566:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804456C: .4byte gUnknown_203B418
+_08044570: .4byte 0x000135cc
+ thumb_func_end sub_80444F4
+
+ thumb_func_start sub_8044574
+sub_8044574:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ bl sub_8083600
+ mov r10, r0
+ movs r7, 0
+ mov r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x40]
+ ldr r1, _08044634
+ mov r9, r1
+_08044592:
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r7, 2
+ ldr r3, _08044638
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ ldr r6, [r5, 0x70]
+ mov r8, r6
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080446A4
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080446AC
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xB8
+ str r5, [r0]
+ bl sub_8069E8C
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r6, r2
+ strb r4, [r0]
+ adds r0, r5, 0
+ bl sub_8070774
+ mov r3, r9
+ ldr r1, [r3]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ ldr r0, _0804463C
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080446A4
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080446A4
+ ldrh r1, [r6]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080446A4
+ movs r3, 0x80
+ lsls r3, 7
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _08044644
+ ldr r2, _08044640
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r6]
+ b _080446A4
+ .align 2, 0
+_08044634: .4byte gUnknown_203B418
+_08044638: .4byte 0x0001357c
+_0804463C: .4byte gUnknown_80F6860
+_08044640: .4byte 0x0000bfff
+_08044644:
+ ldr r1, _08044668
+ add r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8074B54
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ adds r0, r5, 0
+ bl sub_8071DA4
+ movs r4, 0
+ b _0804466E
+ .align 2, 0
+_08044668: .4byte 0x00000145
+_0804466C:
+ adds r4, 0x1
+_0804466E:
+ cmp r4, 0x2
+ bgt _080446A4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075990
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080446A4
+ adds r0, r5, 0
+ bl sub_8072CF4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804466C
+_080446A4:
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _080446AC
+ b _08044592
+_080446AC:
+ movs r0, 0
+ mov r8, r0
+_080446B0:
+ adds r0, 0x1
+ mov r9, r0
+ add r2, sp, 0x8
+ ldr r1, [sp, 0x40]
+ mov r0, sp
+ movs r7, 0x2
+_080446BC:
+ mov r3, r8
+ str r3, [r0]
+ str r2, [r1]
+ adds r2, 0x8
+ adds r1, 0x8
+ adds r0, 0x8
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080446BC
+ str r3, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ movs r7, 0
+_080446D4:
+ ldr r0, _08044710
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08044714
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044760
+ ldr r1, [r4, 0x70]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08044760
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _08044718
+ adds r3, 0x1
+ adds r0, r1, r3
+ mov r1, r8
+ strb r1, [r0]
+ strb r1, [r2]
+ b _08044760
+ .align 2, 0
+_08044710: .4byte gUnknown_203B418
+_08044714: .4byte 0x0001357c
+_08044718:
+ mov r2, r10
+ movs r3, 0x4
+ ldrsh r1, [r2, r3]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _0804472A
+ negs r2, r2
+_0804472A:
+ mov r3, r10
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _0804473C
+ negs r1, r1
+_0804473C:
+ cmp r1, r2
+ bge _08044742
+ adds r1, r2, 0
+_08044742:
+ cmp r1, 0x2
+ ble _08044748
+ movs r1, 0x2
+_08044748:
+ add r3, sp, 0x20
+ lsls r0, r7, 3
+ adds r3, r0
+ str r4, [r3]
+ add r2, sp, 0x24
+ adds r2, r0
+ lsls r1, 3
+ ldr r0, [sp, 0x40]
+ adds r1, r0, r1
+ ldr r0, [r1]
+ str r0, [r2]
+ str r3, [r1]
+_08044760:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080446D4
+ mov r5, sp
+ movs r6, 0
+_0804476A:
+ ldr r4, [r5]
+ cmp r4, 0
+ beq _080447A0
+ ldr r1, [r4, 0x70]
+ ldr r3, _08044814
+ adds r2, r1, r3
+ movs r0, 0x1
+ strb r0, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r1, r2
+ strb r6, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075990
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ adds r0, r4, 0
+ bl sub_80450E0
+_080447A0:
+ ldr r5, [r5, 0x4]
+ cmp r5, 0
+ bne _0804476A
+ mov r0, r9
+ cmp r0, 0x2
+ ble _080446B0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044802
+ movs r7, 0
+_080447B8:
+ ldr r0, _08044818
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r3, _0804481C
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080447FC
+ ldr r0, [r4, 0x70]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080447FC
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080447FC
+ adds r0, r4, 0
+ bl sub_8071DA4
+ movs r0, 0
+ strb r0, [r5]
+_080447FC:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080447B8
+_08044802:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044814: .4byte 0x00000145
+_08044818: .4byte gUnknown_203B418
+_0804481C: .4byte 0x0001357c
+ thumb_func_end sub_8044574
+
+ thumb_func_start sub_8044820
+sub_8044820:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r0, _08044830
+ mov r8, r0
+ b _080448FC
+ .align 2, 0
+_08044830: .4byte gUnknown_80F6860
+_08044834:
+ ldr r4, [r5, 0x70]
+ ldr r0, [r6]
+ adds r0, 0xB8
+ str r5, [r0]
+ bl sub_8069E8C
+ ldrh r2, [r4]
+ movs r1, 0x80
+ lsls r1, 8
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _080448FA
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0804486C
+ ldr r1, _08044868
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r4]
+ b _080448FA
+ .align 2, 0
+_08044868: .4byte 0x0000bfff
+_0804486C:
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8070774
+ ldr r1, [r6]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ add r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080448FA
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080448FA
+ ldrh r1, [r4]
+ ldr r2, _08044984
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0
+ strh r1, [r4]
+ ldr r2, _08044988
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8074B54
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080448FA
+ adds r0, r5, 0
+ bl sub_8071DA4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075990
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044924
+ adds r0, r5, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044924
+_080448FA:
+ adds r7, 0x1
+_080448FC:
+ cmp r7, 0xF
+ bgt _08044924
+ ldr r6, _0804498C
+ ldr r0, [r6]
+ lsls r1, r7, 2
+ ldr r2, _08044990
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080448FA
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044834
+_08044924:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804497A
+ movs r7, 0
+_08044930:
+ ldr r0, _0804498C
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08044990
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044974
+ ldr r0, [r4, 0x70]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08044974
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044974
+ adds r0, r4, 0
+ bl sub_8071DA4
+ movs r0, 0
+ strb r0, [r5]
+_08044974:
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _08044930
+_0804497A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044984: .4byte 0x00003fff
+_08044988: .4byte 0x00000145
+_0804498C: .4byte gUnknown_203B418
+_08044990: .4byte 0x0001358c
+ thumb_func_end sub_8044820
+
+ thumb_func_start sub_8044994
+sub_8044994:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08044A94
+ ldr r4, _08044A98
+ ldr r0, [r4]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 1
+ adds r1, 0x32
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08044A8A
+ bl sub_8071B48
+ ldr r0, [r4]
+ ldr r2, _08044A9C
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r3, _08044AA0
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r1, _08044AA4
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r3, 0x2
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r3, _08044AA8
+ adds r1, r0, r3
+ str r2, [r1]
+ ldr r1, _08044AAC
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [r0]
+ mov r8, r2
+ adds r7, r4, 0
+_080449F2:
+ ldr r0, [r7]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08044AB0
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A7A
+ ldr r0, [r5, 0x70]
+ adds r4, r0, 0
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldrb r0, [r4, 0x6]
+ movs r6, 0x1
+ cmp r0, 0
+ beq _08044A24
+ movs r6, 0
+_08044A24:
+ adds r0, r5, 0
+ movs r1, 0x32
+ bl sub_8071824
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A46
+ ldr r1, [r7]
+ ldr r2, _08044AA8
+ adds r0, r1, r2
+ str r5, [r0]
+ ldr r3, _08044AAC
+ adds r1, r3
+ adds r0, r4, 0
+ adds r0, 0x98
+ ldr r0, [r0]
+ str r0, [r1]
+_08044A46:
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl sub_8071824
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A60
+ ldr r0, [r7]
+ ldr r1, _08044AA4
+ adds r0, r1
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+_08044A60:
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl sub_8071824
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A7A
+ ldr r0, [r7]
+ ldr r2, _08044A9C
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+_08044A7A:
+ movs r3, 0x1
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0x13
+ ble _080449F2
+ movs r0, 0
+ bl sub_8043ED0
+_08044A8A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044A94: .4byte gUnknown_80F6860
+_08044A98: .4byte gUnknown_203B418
+_08044A9C: .4byte 0x000037f8
+_08044AA0: .4byte 0x000037f9
+_08044AA4: .4byte 0x000037fa
+_08044AA8: .4byte 0x00017b2c
+_08044AAC: .4byte 0x00017b38
+_08044AB0: .4byte 0x000135cc
+ thumb_func_end sub_8044994
+
+ thumb_func_start sub_8044AB4
+sub_8044AB4:
+ push {r4,lr}
+ ldr r1, _08044ADC
+ ldr r0, _08044AE0
+ ldr r0, [r0]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r1, 0x32
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08044B1A
+ movs r4, 0
+ b _08044AE6
+ .align 2, 0
+_08044ADC: .4byte gUnknown_80F6860
+_08044AE0: .4byte gUnknown_203B418
+_08044AE4:
+ adds r4, 0x1
+_08044AE6:
+ cmp r4, 0x13
+ bgt _08044B08
+ ldr r0, _08044B20
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _08044B24
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044AE4
+ movs r0, 0
+ bl sub_807520C
+_08044B08:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_807EAA0
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+_08044B1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044B20: .4byte gUnknown_203B418
+_08044B24: .4byte 0x000135cc
+ thumb_func_end sub_8044AB4
+
+ thumb_func_start sub_8044B28
+sub_8044B28:
+ push {r4,lr}
+ ldr r4, _08044B48
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08044B76
+ bl sub_8083600
+ cmp r0, 0
+ bne _08044B50
+ ldr r0, [r4]
+ ldr r1, _08044B4C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08044B76
+ .align 2, 0
+_08044B48: .4byte gUnknown_203B418
+_08044B4C: .4byte 0x00000654
+_08044B50:
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x2]
+ cmp r2, 0x1
+ bne _08044B68
+ ldr r2, _08044B64
+ adds r1, r0, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08044B76
+ .align 2, 0
+_08044B64: .4byte 0x00000654
+_08044B68:
+ cmp r2, 0x2
+ beq _08044B70
+ movs r0, 0
+ b _08044B78
+_08044B70:
+ ldr r1, _08044B80
+ adds r0, r1
+ strb r2, [r0]
+_08044B76:
+ movs r0, 0x1
+_08044B78:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044B80: .4byte 0x00000654
+ thumb_func_end sub_8044B28
+
+ thumb_func_start sub_8044B84
+sub_8044B84:
+ push {lr}
+ ldr r0, _08044B9C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _08044BA0
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r0, 24
+ b _08044BA2
+ .align 2, 0
+_08044B9C: .4byte gUnknown_203B418
+_08044BA0:
+ movs r0, 0x1
+_08044BA2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044B84
+
+ thumb_func_start sub_8044BA8
+sub_8044BA8:
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0x26
+ bne _08044BCC
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08044BCC
+ ldr r0, _08044BC8
+ b _08044C02
+ .align 2, 0
+_08044BC8: .4byte gUnknown_80F91EC
+_08044BCC:
+ ldr r1, _08044BEC
+ lsls r0, r4, 3
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r1, _08044BF0
+ bl strcmp
+ cmp r0, 0
+ beq _08044BE0
+ movs r0, 0x1
+_08044BE0:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044BF4
+ ldr r0, [r4]
+ b _08044C04
+ .align 2, 0
+_08044BEC: .4byte gUnknown_80F7C50
+_08044BF0: .4byte gUnknown_80F697C
+_08044BF4:
+ ldr r4, _08044C0C
+ adds r0, r5, 0
+ bl sub_8090D6C
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+_08044C02:
+ ldr r0, [r0]
+_08044C04:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044C0C: .4byte gUnknown_80F7B14
+ thumb_func_end sub_8044BA8
+
+ thumb_func_start sub_8044C10
+sub_8044C10:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8083654
+ adds r2, r0, 0
+ adds r1, r2, 0
+ adds r1, 0x44
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r1]
+ cmp r4, 0
+ beq _08044C44
+ adds r0, r2, 0
+ adds r0, 0x48
+ strb r3, [r0]
+ adds r0, 0x8
+ strb r3, [r0]
+ adds r1, 0x14
+ ldr r0, _08044C4C
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+_08044C44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044C4C: .4byte 0x0000ffff
+ thumb_func_end sub_8044C10
+
+ thumb_func_start sub_8044C50
+sub_8044C50:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_8083654
+ adds r2, r0, 0
+ adds r0, 0x44
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ adds r0, 0x8
+ strb r1, [r0]
+ adds r1, r2, 0
+ adds r1, 0x58
+ ldr r0, _08044C84
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044C84: .4byte 0x0000ffff
+ thumb_func_end sub_8044C50
+
+ thumb_func_start sub_8044C88
+sub_8044C88:
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ strb r2, [r0, 0x4]
+ strb r2, [r0, 0xC]
+ bx lr
+ thumb_func_end sub_8044C88
+
+ thumb_func_start sub_8044C94
+sub_8044C94:
+ movs r2, 0
+ strh r1, [r0]
+ strb r2, [r0, 0x4]
+ strb r2, [r0, 0xC]
+ bx lr
+ thumb_func_end sub_8044C94
+
+ thumb_func_start sub_8044CA0
+sub_8044CA0:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl sub_808DB48
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044CB6
+ movs r0, 0x2
+ b _08044CB8
+_08044CB6:
+ movs r0, 0x1
+_08044CB8:
+ strh r0, [r4]
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ strb r0, [r4, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044CA0
+
+ thumb_func_start sub_8044CC8
+sub_8044CC8:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldrb r1, [r2]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08044CEC
+ ldr r0, _08044CE8
+ ldrb r1, [r2]
+ lsls r1, 2
+ subs r1, 0x4
+ ldr r0, [r0]
+ adds r0, r1
+ b _08044D34
+ .align 2, 0
+_08044CE8: .4byte gUnknown_203B460
+_08044CEC:
+ adds r0, r1, 0
+ cmp r0, 0x80
+ bne _08044D06
+ movs r1, 0x4
+ ldrsh r0, [r2, r1]
+ movs r3, 0x6
+ ldrsh r1, [r2, r3]
+ bl sub_804954C
+ ldr r0, [r0, 0x14]
+ bl sub_8045108
+ b _08044D34
+_08044D06:
+ cmp r0, 0x81
+ bne _08044D0E
+ ldr r0, [r3, 0x70]
+ b _08044D32
+_08044D0E:
+ adds r0, r1, 0
+ adds r0, 0x70
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08044D1E
+ movs r0, 0
+ b _08044D34
+_08044D1E:
+ ldr r0, _08044D38
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ subs r0, 0x90
+ lsls r0, 2
+ ldr r2, _08044D3C
+ adds r1, r2
+ adds r1, r0
+ ldr r0, [r1]
+ ldr r0, [r0, 0x70]
+_08044D32:
+ adds r0, 0x60
+_08044D34:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044D38: .4byte gUnknown_203B418
+_08044D3C: .4byte 0x0001357c
+ thumb_func_end sub_8044CC8
+
+ thumb_func_start sub_8044D40
+sub_8044D40:
+ push {lr}
+ lsls r1, 3
+ adds r1, 0x4
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08044D74
+ ldr r1, _08044D70
+ ldrb r0, [r2]
+ lsls r0, 2
+ subs r0, 0x4
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x1]
+ strb r0, [r1]
+ bl sub_80910B4
+ b _08044D88
+ .align 2, 0
+_08044D70: .4byte gUnknown_203B460
+_08044D74:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x80
+ beq _08044D80
+ movs r0, 0
+ b _08044D8A
+_08044D80:
+ adds r0, r2, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+_08044D88:
+ movs r0, 0x1
+_08044D8A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044D40
+
+ thumb_func_start sub_8044D90
+sub_8044D90:
+ push {lr}
+ ldr r3, [r0, 0x70]
+ lsls r1, 3
+ adds r1, 0x48
+ adds r3, r1
+ adds r1, r3, 0
+ bl sub_8044CC8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044D90
+
+ thumb_func_start sub_8044DA4
+sub_8044DA4:
+ ldr r0, [r0, 0x70]
+ ldr r2, _08044DC0
+ ldr r2, [r2]
+ lsls r1, 3
+ adds r0, r1
+ adds r0, 0x48
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _08044DC4
+ adds r2, r1
+ adds r2, r0
+ ldr r0, [r2]
+ bx lr
+ .align 2, 0
+_08044DC0: .4byte gUnknown_203B418
+_08044DC4: .4byte 0x0001357c
+ thumb_func_end sub_8044DA4
+
+ thumb_func_start sub_8044DC8
+sub_8044DC8:
+ push {r4,lr}
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xE9
+ beq _08044DE8
+ ldr r4, _08044DE4
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r0, [r0]
+ b _08044DEA
+ .align 2, 0
+_08044DE4: .4byte gUnknown_80F6964
+_08044DE8:
+ movs r0, 0x35
+_08044DEA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044DC8
+
+ thumb_func_start sub_8044DF0
+sub_8044DF0:
+ push {r4,lr}
+ ldr r4, [r0, 0x70]
+ bl sub_8044D90
+ adds r1, r0, 0
+ adds r0, r4, 0
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0x80
+ bne _08044E10
+ adds r0, r4, 0
+ adds r0, 0x4C
+ movs r1, 0x1
+ bl sub_80461C8
+ b _08044E1C
+_08044E10:
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x1]
+ strb r0, [r1]
+ bl sub_80910B4
+_08044E1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044DF0
+
+ thumb_func_start sub_8044E24
+sub_8044E24:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ bl sub_8044D90
+ adds r5, r0, 0
+ ldr r0, [r4, 0x70]
+ mov r8, r0
+ ldrb r0, [r5, 0x2]
+ bl sub_80915A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044EBA
+ ldrb r0, [r5, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _08044EB0
+ lsls r1, r6, 3
+ mov r2, r8
+ adds r0, r2, r1
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0x80
+ bne _08044EA4
+ ldr r0, [r5]
+ str r0, [sp]
+ adds r4, r1, r2
+ adds r4, 0x4C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80461C8
+ ldrb r1, [r5, 0x2]
+ subs r1, 0x7D
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r2, _08044E9C
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _08044EA0
+ ands r0, r1
+ movs r1, 0xF8
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp]
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_80460F8
+ b _08044EBA
+ .align 2, 0
+_08044E9C: .4byte 0xffff00ff
+_08044EA0: .4byte 0xff00ffff
+_08044EA4:
+ ldrb r0, [r5, 0x2]
+ subs r0, 0x7D
+ strb r0, [r5, 0x1]
+ movs r0, 0x7C
+ strb r0, [r5, 0x2]
+ b _08044EBA
+_08044EB0:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_8044DF0
+_08044EBA:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044E24
+
+ thumb_func_start sub_8044EC8
+sub_8044EC8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _08044EE8
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r4, [r0]
+ cmp r4, 0x26
+ bne _08044EF0
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08044EF0
+ ldr r0, _08044EEC
+ b _08044F2C
+ .align 2, 0
+_08044EE8: .4byte gUnknown_202EE44
+_08044EEC: .4byte gUnknown_80F91EC
+_08044EF0:
+ ldr r1, _08044F10
+ lsls r0, r4, 3
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r1, _08044F14
+ bl strcmp
+ cmp r0, 0
+ beq _08044F04
+ movs r0, 0x1
+_08044F04:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044F18
+ ldr r0, [r4]
+ b _08044F2E
+ .align 2, 0
+_08044F10: .4byte gUnknown_80F7C50
+_08044F14: .4byte gUnknown_80F697C
+_08044F18:
+ ldr r4, _08044F34
+ ldr r1, _08044F38
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D6C
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+_08044F2C:
+ ldr r0, [r0]
+_08044F2E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044F34: .4byte gUnknown_80F7B14
+_08044F38: .4byte gUnknown_202EE44
+ thumb_func_end sub_8044EC8
+
+ thumb_func_start sub_8044F3C
+sub_8044F3C:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0
+ blt _08044F54
+ ldr r0, _08044F50
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ b _08044F56
+ .align 2, 0
+_08044F50: .4byte gUnknown_202EE44
+_08044F54:
+ movs r0, 0
+_08044F56:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044F3C
+
+ thumb_func_start sub_8044F5C
+sub_8044F5C:
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _08044FAC
+ ldr r2, [r0]
+ adds r6, r0, 0
+ cmp r2, 0x9
+ bgt _08044FA4
+ movs r3, 0
+ ldr r5, _08044FB0
+ cmp r3, r2
+ bge _08044F8A
+ adds r1, r2, 0
+ adds r2, r5, 0
+_08044F7C:
+ ldrh r0, [r2]
+ cmp r0, r4
+ beq _08044FA4
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, r1
+ blt _08044F7C
+_08044F8A:
+ ldr r0, [r6]
+ lsls r0, 2
+ adds r0, r5
+ strh r4, [r0]
+ strb r7, [r0, 0x2]
+ ldr r0, [r6]
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0, 0x3]
+ ldr r0, [r6]
+ adds r0, 0x1
+ str r0, [r6]
+_08044FA4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044FAC: .4byte gUnknown_202EE6C
+_08044FB0: .4byte gUnknown_202EE44
+ thumb_func_end sub_8044F5C
+
+ thumb_func_start sub_8044FB4
+sub_8044FB4:
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r1, 0
+ ldr r0, _08044FD4
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _08044FE4
+ adds r3, r0, 0
+ ldr r2, _08044FD8
+_08044FC8:
+ ldrh r0, [r2]
+ cmp r0, r4
+ bne _08044FDC
+ adds r0, r1, 0
+ b _08044FE8
+ .align 2, 0
+_08044FD4: .4byte gUnknown_202EE6C
+_08044FD8: .4byte gUnknown_202EE44
+_08044FDC:
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, r3
+ blt _08044FC8
+_08044FE4:
+ movs r0, 0x1
+ negs r0, r0
+_08044FE8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044FB4
+
+ thumb_func_start sub_8044FF0
+sub_8044FF0:
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r1, _08045010
+ ldr r0, [r1]
+ cmp r2, r0
+ bge _08045022
+ movs r5, 0
+ adds r4, r1, 0
+ ldr r1, _08045014
+_08045006:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08045018
+ strb r5, [r1, 0x3]
+ b _08045022
+ .align 2, 0
+_08045010: .4byte gUnknown_202EE6C
+_08045014: .4byte gUnknown_202EE44
+_08045018:
+ adds r1, 0x4
+ adds r2, 0x1
+ ldr r0, [r4]
+ cmp r2, r0
+ blt _08045006
+_08045022:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044FF0
+
+ thumb_func_start sub_8045028
+sub_8045028:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ ldr r0, [r2, 0x70]
+ adds r4, r0, 0
+ adds r4, 0x44
+ cmp r1, 0
+ beq _08045044
+ adds r0, r2, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804505A
+_08045044:
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0804505A
+ cmp r0, 0x2
+ beq _0804505A
+ cmp r0, 0x1
+ beq _0804505A
+ cmp r0, 0x5
+ beq _0804505A
+ movs r0, 0
+ b _0804505C
+_0804505A:
+ movs r0, 0x1
+_0804505C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045028
+
+ thumb_func_start sub_8045064
+sub_8045064:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r1, 0
+ ldr r0, _080450D4
+ mov r8, r0
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _080450C8
+ mov r7, r8
+ ldr r2, _080450D8
+ mov r9, r2
+ ldr r0, _080450DC
+ mov r12, r0
+_08045082:
+ adds r4, r1, 0x1
+ ldr r0, [r7]
+ adds r5, r4, 0
+ cmp r5, r0
+ bge _080450BE
+ lsls r0, r1, 2
+ mov r1, r12
+ adds r3, r0, r1
+ mov r6, r9
+ lsls r0, r5, 2
+ adds r2, r0, r1
+_08045098:
+ ldrh r1, [r3]
+ lsls r1, 3
+ adds r1, r6
+ ldrh r0, [r2]
+ lsls r0, 3
+ adds r0, r6
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _080450B4
+ ldr r1, [r3]
+ ldr r0, [r2]
+ str r0, [r3]
+ str r1, [r2]
+_080450B4:
+ adds r2, 0x4
+ adds r4, 0x1
+ ldr r0, [r7]
+ cmp r4, r0
+ blt _08045098
+_080450BE:
+ adds r1, r5, 0
+ mov r2, r8
+ ldr r0, [r2]
+ cmp r1, r0
+ blt _08045082
+_080450C8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080450D4: .4byte gUnknown_202EE6C
+_080450D8: .4byte gUnknown_80F7C54
+_080450DC: .4byte gUnknown_202EE44
+ thumb_func_end sub_8045064
+
+ thumb_func_start sub_80450E0
+sub_80450E0:
+ push {lr}
+ cmp r0, 0
+ bne _080450EA
+ movs r0, 0
+ b _080450F2
+_080450EA:
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080450F2
+ movs r0, 0x1
+_080450F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80450E0
+
+ thumb_func_start sub_80450F8
+sub_80450F8:
+ ldr r0, [r0]
+ bx lr
+ thumb_func_end sub_80450F8
+
+ thumb_func_start sub_80450FC
+sub_80450FC:
+ adds r0, 0x25
+ ldrb r0, [r0]
+ bx lr
+ thumb_func_end sub_80450FC
+
+ thumb_func_start sub_8045104
+sub_8045104:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_8045104
+
+ thumb_func_start sub_8045108
+sub_8045108:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_8045108
+
+ thumb_func_start sub_804510C
+sub_804510C:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_804510C
+
+ thumb_func_start sub_8045110
+sub_8045110:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_8045110
+
+ thumb_func_start sub_8045114
+sub_8045114:
+ push {lr}
+ movs r1, 0x4
+ ldrsh r2, [r0, r1]
+ movs r3, 0x6
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl sub_804954C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045114
+
+ thumb_func_start sub_8045128
+sub_8045128:
+ push {lr}
+ movs r1, 0x4
+ ldrsh r2, [r0, r1]
+ movs r3, 0x6
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl sub_8049590
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045128
+
+ thumb_func_start sub_804513C
+sub_804513C:
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _08045200
+ ldr r4, _08045204
+ movs r5, 0
+_08045148:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08045148
+ ldr r1, _08045208
+ movs r2, 0
+ adds r0, r1, 0x5
+_08045164:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08045164
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _0804520C
+ ldr r4, _08045210
+ movs r5, 0
+_08045176:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0xF
+ ble _08045176
+ ldr r1, _08045214
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xF
+_08045194:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08045194
+ movs r3, 0
+ ldr r5, _080451FC
+ ldr r4, _08045218
+ movs r2, 0
+_080451A4:
+ ldr r0, [r5]
+ lsls r1, r3, 2
+ adds r0, r4
+ adds r0, r1
+ str r2, [r0]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _080451A4
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _0804521C
+ ldr r4, _08045220
+ movs r5, 0
+_080451BE:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0x3F
+ ble _080451BE
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _08045224
+ ldr r4, _08045228
+ movs r5, 0
+_080451DE:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0x3F
+ ble _080451DE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080451FC: .4byte gUnknown_203B418
+_08045200: .4byte 0x0001357c
+_08045204: .4byte 0x0001381c
+_08045208: .4byte gUnknown_202EE70
+_0804520C: .4byte 0x0001358c
+_08045210: .4byte 0x000139ec
+_08045214: .4byte gUnknown_202EE76
+_08045218: .4byte 0x000135cc
+_0804521C: .4byte 0x0001361c
+_08045220: .4byte 0x0001412c
+_08045224: .4byte 0x0001371c
+_08045228: .4byte 0x00015e2c
+ thumb_func_end sub_804513C
+
+ thumb_func_start sub_804522C
+sub_804522C:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r2, _08045274
+ ldr r0, [r2]
+ ldr r3, _08045278
+ adds r1, r0, r3
+ ldrb r7, [r1]
+ ldr r1, _0804527C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080452AA
+ movs r6, 0
+ adds r7, r2, 0
+_08045248:
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ ldr r2, _08045280
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080452A2
+ ldr r0, [r7]
+ ldr r3, _08045284
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r5, r0
+ bne _08045288
+ adds r0, r5, 0
+ bl sub_806C51C
+ b _080452A2
+ .align 2, 0
+_08045274: .4byte gUnknown_203B418
+_08045278: .4byte 0x00018210
+_0804527C: .4byte 0x0001820a
+_08045280: .4byte 0x000135cc
+_08045284: .4byte 0x000181f8
+_08045288:
+ ldr r4, [r5, 0x70]
+ adds r0, r5, 0
+ bl sub_804187C
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r0, 0x98
+ ldr r0, [r0]
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r3, 0
+ bl sub_800F75C
+_080452A2:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08045248
+ b _0804533E
+_080452AA:
+ movs r6, 0
+_080452AC:
+ ldr r0, _08045348
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0804534C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080452CC
+ adds r0, r4, 0
+ bl sub_806C51C
+_080452CC:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080452AC
+ movs r6, 0
+_080452D4:
+ ldr r5, _08045348
+ ldr r0, [r5]
+ lsls r1, r6, 2
+ ldr r3, _08045350
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080452F4
+ adds r0, r4, 0
+ bl sub_806C51C
+_080452F4:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _080452D4
+ movs r6, 0
+ ldr r0, [r5]
+ ldr r1, _08045354
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ bge _08045336
+ adds r4, r5, 0
+_0804530C:
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ ldr r3, _08045358
+ adds r0, r3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r7, 0
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80462AC
+ adds r6, 0x1
+ ldr r0, [r4]
+ ldr r1, _08045354
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ blt _0804530C
+_08045336:
+ cmp r7, 0
+ beq _0804533E
+ bl sub_807FA9C
+_0804533E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045348: .4byte gUnknown_203B418
+_0804534C: .4byte 0x0001357c
+_08045350: .4byte 0x0001358c
+_08045354: .4byte 0x00003904
+_08045358: .4byte 0x0001361c
+ thumb_func_end sub_804522C
+
+ thumb_func_start sub_804535C
+sub_804535C:
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0
+ beq _0804536C
+ ldr r0, [r1]
+ str r0, [r2, 0xC]
+ ldr r0, [r1, 0x4]
+ b _0804538E
+_0804536C:
+ movs r0, 0x4
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [r2, 0xC]
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1
+_0804538E:
+ str r0, [r2, 0x10]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804535C
+
+ thumb_func_start sub_8045394
+sub_8045394:
+ str r1, [r0, 0xC]
+ str r2, [r0, 0x10]
+ bx lr
+ thumb_func_end sub_8045394
+
+ thumb_func_start sub_804539C
+sub_804539C:
+ ldr r3, [r0, 0xC]
+ adds r3, r1
+ str r3, [r0, 0xC]
+ ldr r1, [r0, 0x10]
+ adds r1, r2
+ str r1, [r0, 0x10]
+ bx lr
+ thumb_func_end sub_804539C
+
+ thumb_func_start sub_80453AC
+sub_80453AC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ mov r0, r8
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r0, 0x6
+ subs r3, r0, r6
+ ldr r4, _080453D8
+ b _080453DE
+ .align 2, 0
+_080453D8: .4byte gUnknown_202EE70
+_080453DC:
+ adds r5, 0x1
+_080453DE:
+ cmp r5, r3
+ bgt _08045400
+ movs r2, 0
+ cmp r2, r6
+ bge _080453FA
+ adds r1, r5, r4
+ b _080453F4
+_080453EC:
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, r6
+ bge _080453FA
+_080453F4:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080453EC
+_080453FA:
+ cmp r2, r6
+ bne _080453DC
+ mov r9, r5
+_08045400:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ beq _080454FC
+ movs r5, 0
+ ldr r7, _080454DC
+_0804540C:
+ ldr r1, _080454E0
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ ldr r2, _080454E4
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0
+ bne _080454F0
+ movs r0, 0x1
+ str r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ ldr r1, _080454E0
+ ldr r0, [r1]
+ adds r0, r7
+ str r0, [r4, 0x70]
+ mov r2, r8
+ strh r2, [r0, 0x2]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ ldr r1, [r4, 0x70]
+ strh r0, [r1, 0x4]
+ ldr r0, [r4, 0x70]
+ movs r5, 0
+ strb r5, [r0, 0x6]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80687D0
+ str r0, [r4, 0x64]
+ mov r1, r9
+ lsls r0, r1, 4
+ adds r0, 0x40
+ adds r1, r4, 0
+ adds r1, 0x68
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6C
+ movs r2, 0
+ strb r2, [r0]
+ adds r1, 0x1
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6D
+ movs r5, 0x1
+ strb r5, [r0]
+ adds r0, 0x2
+ strb r5, [r0]
+ mov r0, r10
+ str r0, [r4, 0x1C]
+ bl sub_8045ACC
+ ldr r0, [r4, 0x70]
+ ldr r1, _080454E8
+ adds r0, r1
+ mov r2, r9
+ strb r2, [r0]
+ ldr r0, [r4, 0x70]
+ movs r5, 0xB4
+ lsls r5, 1
+ adds r0, r5
+ strb r6, [r0]
+ cmp r6, 0
+ beq _080454C6
+ ldr r3, _080454EC
+ movs r2, 0x1
+ adds r1, r6, 0
+_080454B6:
+ mov r5, r9
+ adds r0, r5, r3
+ strb r2, [r0]
+ movs r0, 0x1
+ add r9, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080454B6
+_080454C6:
+ ldr r1, _080454E0
+ ldr r0, [r1]
+ movs r2, 0xCD
+ lsls r2, 3
+ adds r0, r2
+ ldrh r2, [r0]
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ strh r2, [r4, 0x26]
+ adds r0, r4, 0
+ b _080454FE
+ .align 2, 0
+_080454DC: .4byte 0x0000069c
+_080454E0: .4byte gUnknown_203B418
+_080454E4: .4byte 0x0001357c
+_080454E8: .4byte 0x00000167
+_080454EC: .4byte gUnknown_202EE70
+_080454F0:
+ movs r0, 0x82
+ lsls r0, 2
+ adds r7, r0
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0804540C
+_080454FC:
+ movs r0, 0
+_080454FE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80453AC
+
+ thumb_func_start sub_804550C
+sub_804550C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ mov r0, r8
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ movs r0, 0x10
+ subs r3, r0, r7
+ ldr r4, _08045538
+ b _0804553E
+ .align 2, 0
+_08045538: .4byte gUnknown_202EE76
+_0804553C:
+ adds r5, 0x1
+_0804553E:
+ cmp r5, r3
+ bgt _08045560
+ movs r2, 0
+ cmp r2, r7
+ bge _0804555A
+ adds r1, r5, r4
+ b _08045554
+_0804554C:
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, r7
+ bge _0804555A
+_08045554:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0804554C
+_0804555A:
+ cmp r2, r7
+ bne _0804553C
+ mov r9, r5
+_08045560:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ bne _0804556A
+ b _08045670
+_0804556A:
+ movs r5, 0
+ movs r1, 0x1
+ mov r10, r1
+ ldr r2, _08045650
+ mov r3, r9
+ lsls r0, r3, 4
+ adds r0, 0xA0
+ str r0, [sp]
+_0804557A:
+ ldr r1, _08045654
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ ldr r3, _08045658
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ str r2, [sp, 0x4]
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, 0
+ bne _08045664
+ mov r0, r10
+ str r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ subs r0, 0x2
+ strb r6, [r0]
+ ldr r1, _08045654
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r4, 0x70]
+ mov r2, r8
+ strh r2, [r0, 0x2]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ ldr r1, [r4, 0x70]
+ strh r0, [r1, 0x4]
+ ldr r0, [r4, 0x70]
+ mov r3, r10
+ strb r3, [r0, 0x6]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80687D0
+ str r0, [r4, 0x64]
+ adds r0, r4, 0
+ adds r0, 0x68
+ mov r5, sp
+ ldrh r5, [r5]
+ strh r5, [r0]
+ adds r1, r4, 0
+ adds r1, 0x6A
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6C
+ movs r1, 0
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x6B
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6D
+ mov r2, r10
+ strb r2, [r0]
+ adds r0, 0x2
+ strb r2, [r0]
+ str r6, [r4, 0x1C]
+ ldr r0, [r4, 0x70]
+ ldr r3, _0804565C
+ adds r0, r3
+ mov r5, r9
+ strb r5, [r0]
+ ldr r0, [r4, 0x70]
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r1
+ strb r7, [r0]
+ cmp r7, 0
+ beq _08045636
+ ldr r3, _08045660
+ movs r2, 0x1
+ adds r1, r7, 0
+_08045626:
+ mov r5, r9
+ adds r0, r5, r3
+ strb r2, [r0]
+ movs r0, 0x1
+ add r9, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08045626
+_08045636:
+ bl sub_8045ACC
+ ldr r1, _08045654
+ ldr r0, [r1]
+ movs r2, 0xCD
+ lsls r2, 3
+ adds r0, r2
+ ldrh r2, [r0]
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ strh r2, [r4, 0x26]
+ adds r0, r4, 0
+ b _08045672
+ .align 2, 0
+_08045650: .4byte 0x00000ebc
+_08045654: .4byte gUnknown_203B418
+_08045658: .4byte 0x0001358c
+_0804565C: .4byte 0x00000167
+_08045660: .4byte gUnknown_202EE76
+_08045664:
+ movs r3, 0x82
+ lsls r3, 2
+ adds r2, r3
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _0804557A
+_08045670:
+ movs r0, 0
+_08045672:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804550C
+
+ thumb_func_start sub_8045684
+sub_8045684:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ movs r5, 0
+ ldr r7, _080456E4
+ ldr r6, _080456E8
+_080456A2:
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ ldr r2, _080456EC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080456F0
+ movs r0, 0x2
+ str r0, [r4]
+ ldr r0, [r7]
+ adds r0, r6
+ str r0, [r4, 0x70]
+ mov r2, r8
+ strb r2, [r0]
+ ldr r0, [r4, 0x70]
+ mov r2, r9
+ strb r2, [r0, 0x1]
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ adds r0, 0x22
+ strb r1, [r0]
+ mov r2, r10
+ ldr r0, [r2]
+ str r0, [r4, 0x4]
+ strh r1, [r4, 0x26]
+ adds r0, r4, 0
+ b _080456FA
+ .align 2, 0
+_080456E4: .4byte gUnknown_203B418
+_080456E8: .4byte 0x00003908
+_080456EC: .4byte 0x0001371c
+_080456F0:
+ adds r6, 0x4
+ adds r5, 0x1
+ cmp r5, 0x3F
+ ble _080456A2
+ movs r0, 0
+_080456FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045684
+
+ thumb_func_start sub_8045708
+sub_8045708:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ ldr r1, _08045744
+ ldr r0, _08045748
+ ldr r0, [r0]
+ ldr r2, _0804574C
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0804579C
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ bl sub_8049590
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0804579C
+ b _080457C4
+ .align 2, 0
+_08045744: .4byte gUnknown_810ACC0
+_08045748: .4byte gUnknown_203B418
+_0804574C: .4byte 0x00003a0e
+_08045750:
+ movs r0, 0x3
+ str r0, [r4]
+ ldr r0, _08045798
+ adds r1, r6, r0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r4, 0x70]
+ mov r3, r8
+ ldr r0, [r3]
+ str r0, [r4, 0x4]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ adds r0, r4, 0
+ bl sub_8045394
+ movs r0, 0
+ strh r7, [r4, 0x26]
+ adds r1, r4, 0
+ adds r1, 0x22
+ strb r0, [r1]
+ str r7, [r4, 0x1C]
+ adds r0, r4, 0
+ b _080457C6
+ .align 2, 0
+_08045798: .4byte 0x00003804
+_0804579C:
+ movs r5, 0
+ ldr r3, _080457D4
+ mov r9, r3
+_080457A2:
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r6, r5, 2
+ ldr r2, _080457D8
+ adds r0, r2
+ adds r0, r6
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _08045750
+ adds r5, 0x1
+ cmp r5, 0x3F
+ ble _080457A2
+_080457C4:
+ movs r0, 0
+_080457C6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080457D4: .4byte gUnknown_203B418
+_080457D8: .4byte 0x0001361c
+ thumb_func_end sub_8045708
+
+ thumb_func_start sub_80457DC
+sub_80457DC:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ str r0, [r4]
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r4, 0x4]
+ strh r5, [r4, 0x6]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8045394
+ strh r5, [r4, 0x26]
+ adds r4, 0x22
+ strb r6, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80457DC
+
+ thumb_func_start sub_8045804
+sub_8045804:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ beq _0804581C
+ cmp r0, 0x1
+ bcc _08045880
+ cmp r0, 0x5
+ beq _08045880
+_08045818:
+ movs r0, 0x1
+ b _08045882
+_0804581C:
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045880
+ ldr r0, _08045874
+ ldr r1, [r0]
+ ldr r0, _08045878
+ adds r2, r1, r0
+ ldr r5, [r2, 0x10]
+ ldr r3, [r4, 0x70]
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0
+ beq _08045818
+ ldr r6, _0804587C
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804584C
+ adds r0, r3, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08045880
+_0804584C:
+ adds r0, r2, 0
+ adds r0, 0x23
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045818
+ adds r0, r2, 0
+ adds r0, 0x25
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045818
+ cmp r5, 0
+ beq _08045880
+ adds r1, r4, 0x4
+ adds r0, r2, 0
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+ b _08045882
+ .align 2, 0
+_08045874: .4byte gUnknown_203B418
+_08045878: .4byte 0x000181e8
+_0804587C: .4byte 0x0001820f
+_08045880:
+ movs r0, 0
+_08045882:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045804
+
+ thumb_func_start sub_8045888
+sub_8045888:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045988
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bge _0804589C
+ adds r1, 0xFF
+_0804589C:
+ asrs r1, 8
+ ldr r0, _080458F0
+ ldr r2, [r0]
+ ldr r3, _080458F4
+ adds r0, r2, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ subs r3, r1, r0
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bge _080458B4
+ adds r0, 0xFF
+_080458B4:
+ asrs r0, 8
+ ldr r5, _080458F8
+ adds r1, r2, r5
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ subs r1, r0, r1
+ movs r0, 0x20
+ negs r0, r0
+ cmp r3, r0
+ blt _08045988
+ cmp r1, r0
+ blt _08045988
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r3, r0
+ bgt _08045988
+ cmp r1, 0xC0
+ bgt _08045988
+ ldr r0, _080458FC
+ adds r5, r2, r0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x5
+ bhi _08045984
+ lsls r0, 2
+ ldr r1, _08045900
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080458F0: .4byte gUnknown_203B418
+_080458F4: .4byte 0x000181f0
+_080458F8: .4byte 0x000181f2
+_080458FC: .4byte 0x000181e8
+_08045900: .4byte _08045904
+ .align 2, 0
+_08045904:
+ .4byte _08045988
+ .4byte _08045934
+ .4byte _08045964
+ .4byte _0804591C
+ .4byte _08045984
+ .4byte _08045988
+_0804591C:
+ adds r0, r5, 0
+ adds r0, 0x26
+_08045920:
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045984
+ adds r0, r4, 0x4
+ bl sub_803F428
+ lsls r0, 24
+_0804592E:
+ cmp r0, 0
+ bne _08045984
+ b _08045988
+_08045934:
+ ldr r1, [r4, 0x70]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08045984
+ ldr r0, _0804595C
+ ldr r0, [r0]
+ ldr r2, _08045960
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045954
+ adds r0, r1, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08045988
+_08045954:
+ adds r0, r5, 0
+ adds r0, 0x25
+ b _08045920
+ .align 2, 0
+_0804595C: .4byte gUnknown_203B418
+_08045960: .4byte 0x0001820f
+_08045964:
+ ldr r0, _0804597C
+ ldr r0, [r0]
+ ldr r3, _08045980
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045984
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _0804592E
+ .align 2, 0
+_0804597C: .4byte gUnknown_203B418
+_08045980: .4byte 0x0001820f
+_08045984:
+ movs r0, 0x1
+ b _0804598A
+_08045988:
+ movs r0, 0
+_0804598A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045888
+
+ thumb_func_start sub_8045990
+sub_8045990:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080459E8
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080459E8
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080459E8
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bne _080459EC
+ ldr r0, [r5]
+ cmp r0, 0x1
+ bne _080459DE
+ adds r0, r5, 0
+ bl sub_8071884
+ lsls r0, 24
+ cmp r0, 0
+ bne _080459D8
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080459E8
+_080459D8:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xE8
+ b _080459E2
+_080459DE:
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+_080459E2:
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080459EC
+_080459E8:
+ movs r0, 0
+ b _080459F8
+_080459EC:
+ adds r0, r5, 0x4
+ adds r1, r4, 0x4
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+_080459F8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045990
+
+ thumb_func_start sub_8045A00
+sub_8045A00:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045A58
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045A58
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045A58
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bne _08045A5C
+ ldr r0, [r5]
+ cmp r0, 0x1
+ bne _08045A4E
+ adds r0, r5, 0
+ bl sub_8071884
+ lsls r0, 24
+ cmp r0, 0
+ bne _08045A48
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08045A58
+_08045A48:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xE8
+ b _08045A52
+_08045A4E:
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+_08045A52:
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08045A5C
+_08045A58:
+ movs r0, 0
+ b _08045A68
+_08045A5C:
+ adds r0, r5, 0x4
+ adds r1, r4, 0x4
+ bl sub_808333C
+ lsls r0, 24
+ lsrs r0, 24
+_08045A68:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045A00
+
+ thumb_func_start sub_8045A70
+sub_8045A70:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045AA4
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045AA4
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045AA4
+ adds r0, r5, 0x4
+ adds r1, r4, 0x4
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+ b _08045AA6
+_08045AA4:
+ movs r0, 0
+_08045AA6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045A70
+
+ thumb_func_start sub_8045AAC
+sub_8045AAC:
+ push {lr}
+ adds r0, 0x4
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045AAC
+
+ thumb_func_start sub_8045ABC
+sub_8045ABC:
+ push {lr}
+ adds r0, 0x4
+ bl sub_808333C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045ABC
+
+ thumb_func_start sub_8045ACC
+sub_8045ACC:
+ push {r4-r7,lr}
+ movs r6, 0
+ movs r5, 0
+ ldr r7, _08045B50
+_08045AD4:
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ ldr r2, _08045B54
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045AFA
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ ldr r2, _08045B58
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+ adds r6, 0x1
+_08045AFA:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08045AD4
+ movs r5, 0
+ ldr r7, _08045B50
+_08045B04:
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ ldr r2, _08045B5C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045B2A
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ ldr r2, _08045B58
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+ adds r6, 0x1
+_08045B2A:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08045B04
+ cmp r6, 0x13
+ bgt _08045B4A
+ ldr r4, _08045B50
+ ldr r3, _08045B58
+ movs r2, 0
+_08045B3A:
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ adds r0, r3
+ adds r0, r1
+ str r2, [r0]
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08045B3A
+_08045B4A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045B50: .4byte gUnknown_203B418
+_08045B54: .4byte 0x0001357c
+_08045B58: .4byte 0x000135cc
+_08045B5C: .4byte 0x0001358c
+ thumb_func_end sub_8045ACC
+
+ thumb_func_start sub_8045B60
+sub_8045B60:
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r0, _08045B78
+ ldr r0, [r0]
+ ldr r4, _08045B7C
+ adds r1, r0, r4
+_08045B6E:
+ ldr r0, [r1]
+ cmp r3, r0
+ bne _08045B80
+ adds r0, r2, 0
+ b _08045B8C
+ .align 2, 0
+_08045B78: .4byte gUnknown_203B418
+_08045B7C: .4byte 0x0001357c
+_08045B80:
+ adds r1, 0x4
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08045B6E
+ movs r0, 0x1
+ negs r0, r0
+_08045B8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045B60
+
+ thumb_func_start sub_8045B94
+sub_8045B94:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ beq _08045BD2
+ cmp r0, 0x2
+ bhi _08045BB0
+ cmp r0, 0x1
+ beq _08045BB6
+ b _08045BE2
+_08045BB0:
+ cmp r0, 0x3
+ beq _08045BC2
+ b _08045BE2
+_08045BB6:
+ ldr r1, [r4, 0x70]
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80708B4
+ b _08045BEC
+_08045BC2:
+ adds r0, r4, 0
+ bl sub_8045110
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_8045BF8
+ b _08045BEC
+_08045BD2:
+ adds r0, r4, 0
+ bl sub_804510C
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_807FE84
+ b _08045BEC
+_08045BE2:
+ ldr r0, _08045BF4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl strcpy
+_08045BEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045BF4: .4byte gUnknown_80FE6F4
+ thumb_func_end sub_8045B94
+
+ thumb_func_start sub_8045BF8
+sub_8045BF8:
+ push {lr}
+ ldr r2, _08045C04
+ bl sub_8090E14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045C04: .4byte gUnknown_80F699C
+ thumb_func_end sub_8045BF8
+
+ thumb_func_start sub_8045C08
+sub_8045C08:
+ push {lr}
+ ldr r2, _08045C14
+ bl sub_8090E14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045C14: .4byte gUnknown_80F69A8
+ thumb_func_end sub_8045C08
+
+ thumb_func_start sub_8045C18
+sub_8045C18:
+ push {lr}
+ ldr r2, _08045C24
+ bl sub_8090E14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045C24: .4byte gUnknown_80F6990
+ thumb_func_end sub_8045C18
+
+ thumb_func_start sub_8045C28
+sub_8045C28:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r2, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090A8C
+ movs r7, 0
+ adds r0, r4, 0
+ bl sub_8091544
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045C72
+ cmp r6, 0
+ bne _08045C6C
+ movs r0, 0x64
+ bl sub_8084100
+ ldr r1, _08045C64
+ ldr r1, [r1]
+ ldr r2, _08045C68
+ adds r1, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _08045C72
+ b _08045C76
+ .align 2, 0
+_08045C64: .4byte gUnknown_203B418
+_08045C68: .4byte 0x0001c57e
+_08045C6C:
+ cmp r6, 0x1
+ bne _08045C72
+ movs r7, 0x1
+_08045C72:
+ cmp r7, 0
+ beq _08045C7E
+_08045C76:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r5]
+_08045C7E:
+ adds r0, r4, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08045CA2
+ ldr r0, _08045CA8
+ ldr r0, [r0]
+ ldr r1, _08045CAC
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r5, 0
+ bl sub_8046CE4
+_08045CA2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045CA8: .4byte gUnknown_203B418
+_08045CAC: .4byte 0x0001c58b
+ thumb_func_end sub_8045C28
+
+ thumb_func_start sub_8045CB0
+sub_8045CB0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0x38
+ bl sub_8084100
+ adds r5, r0, 0
+ movs r0, 0x20
+ bl sub_8084100
+ adds r6, r0, 0
+ ldr r0, _08045D34
+ ldr r0, [r0]
+ ldr r1, _08045D38
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0
+_08045CDA:
+ adds r6, 0x1
+ cmp r6, 0x20
+ bne _08045CE2
+ movs r6, 0
+_08045CE2:
+ adds r0, 0x1
+ mov r10, r0
+ movs r3, 0x2
+ mov r9, r3
+ movs r0, 0x37
+ mov r8, r0
+_08045CEE:
+ adds r5, 0x1
+ cmp r5, 0x38
+ bne _08045CF6
+ movs r5, 0
+_08045CF6:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 2
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08045D92
+ ldrh r1, [r2, 0x4]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _08045D92
+ movs r7, 0
+ lsls r0, r5, 16
+ lsls r1, r6, 16
+ lsrs r0, 16
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldrh r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08045D3C
+ movs r7, 0x1
+ movs r0, 0x1
+ b _08045D58
+ .align 2, 0
+_08045D34: .4byte gUnknown_203B418
+_08045D38: .4byte 0x00003904
+_08045D3C:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08045D48
+ movs r0, 0x3
+ b _08045D58
+_08045D48:
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ asrs r0, 31
+ mov r1, r9
+ ands r0, r1
+_08045D58:
+ bl sub_803D73C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08045D6E
+ movs r7, 0
+_08045D6E:
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045C28
+ cmp r7, 0
+ beq _08045D88
+ mov r0, sp
+ ldrb r1, [r0]
+ mov r0, r9
+ orrs r0, r1
+ mov r1, sp
+ strb r0, [r1]
+_08045D88:
+ add r0, sp, 0x4
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_80460F8
+_08045D92:
+ movs r3, 0x1
+ negs r3, r3
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0
+ bge _08045CEE
+ mov r0, r10
+ cmp r0, 0x1F
+ ble _08045CDA
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8045CB0
+
+ thumb_func_start sub_8045DB4
+sub_8045DB4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xB8
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xA8]
+ bl sub_8083600
+ adds r7, r0, 0
+ ldr r0, [r7, 0x70]
+ str r0, [sp, 0xAC]
+ mov r1, r10
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ bl sub_804954C
+ ldr r4, [r0, 0x14]
+ cmp r4, 0
+ bne _08045DE8
+ b _080460E0
+_08045DE8:
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x3
+ beq _08045DF4
+ b _080460E0
+_08045DF4:
+ adds r0, r4, 0
+ bl sub_8045108
+ adds r5, r0, 0
+ ldr r0, [sp, 0xAC]
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045E08
+ b _0804602E
+_08045E08:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_8071518
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045E40
+ ldr r0, [sp, 0xA8]
+ cmp r0, 0
+ bne _08045E1E
+ b _080460E0
+_08045E1E:
+ ldr r0, _08045E34
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08045E38
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08045E3C
+ b _08046048
+ .align 2, 0
+_08045E34: .4byte gUnknown_202DE58
+_08045E38: .4byte gUnknown_202DF98
+_08045E3C: .4byte gUnknown_80F8F88
+_08045E40:
+ ldrb r0, [r5, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08045E7C
+ movs r0, 0xA6
+ lsls r0, 1
+ bl sub_8083E38
+ adds r0, r5, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ ldr r0, _08045E74
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08045E78
+ b _08045FD0
+ .align 2, 0
+_08045E74: .4byte gUnknown_202DE58
+_08045E78: .4byte gUnknown_80F8FFC
+_08045E7C:
+ ldr r0, _08045EA8
+ ldr r0, [r0]
+ ldr r1, _08045EAC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045EB4
+ movs r4, 0
+ ldr r0, _08045EB0
+ mov r2, sp
+ ldr r0, [r0]
+ add r1, sp, 0x54
+_08045E94:
+ stm r1!, {r0}
+ stm r2!, {r4}
+ adds r0, 0x4
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08045E94
+ movs r2, 0x14
+ mov r8, r2
+ b _08045EC4
+ .align 2, 0
+_08045EA8: .4byte gUnknown_203B418
+_08045EAC: .4byte 0x0000065b
+_08045EB0: .4byte gUnknown_203B460
+_08045EB4:
+ ldr r0, [sp, 0xAC]
+ adds r0, 0x60
+ str r0, [sp, 0x54]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ movs r3, 0x1
+ mov r8, r3
+_08045EC4:
+ ldrb r0, [r5, 0x2]
+ add r6, sp, 0xB0
+ strb r0, [r6]
+ cmp r0, 0x8
+ bls _08045ED0
+ b _08046000
+_08045ED0:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08045EDC
+ b _08046000
+_08045EDC:
+ movs r1, 0x1
+ negs r1, r1
+ mov r12, r1
+ mov r2, r12
+ str r2, [sp, 0xB4]
+ movs r4, 0
+ cmp r4, r8
+ bge _08045F2C
+ ldr r3, _08045FDC
+ mov r9, r3
+ add r3, sp, 0x54
+_08045EF2:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08045F24
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08045F24
+ ldr r1, [r5]
+ mov r6, r9
+ ands r1, r6
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r1, r0
+ bne _08045F24
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08045F24
+ ldr r1, [sp, 0xB4]
+ cmp r1, r0
+ bge _08045F24
+ str r0, [sp, 0xB4]
+ mov r12, r4
+_08045F24:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08045EF2
+_08045F2C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ bne _08045F80
+ mov r2, r12
+ str r2, [sp, 0xB4]
+ movs r4, 0
+ cmp r4, r8
+ bge _08045F78
+ add r3, sp, 0xB0
+ ldrb r3, [r3]
+ mov r9, r3
+ add r3, sp, 0x54
+_08045F46:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08045F70
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08045F70
+ ldrb r6, [r2, 0x2]
+ cmp r9, r6
+ bne _08045F70
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08045F70
+ ldr r1, [sp, 0xB4]
+ cmp r1, r0
+ bge _08045F70
+ str r0, [sp, 0xB4]
+ mov r12, r4
+_08045F70:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08045F46
+_08045F78:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ beq _08046000
+_08045F80:
+ add r0, sp, 0x54
+ mov r2, r12
+ lsls r4, r2, 2
+ adds r3, r0, r4
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r5, 0x1]
+ adds r1, r0
+ cmp r1, 0x62
+ ble _08045F96
+ movs r1, 0x63
+_08045F96:
+ strb r1, [r2, 0x1]
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08045FAC
+ ldr r0, [r3]
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_08045FAC:
+ ldr r0, _08045FE0
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ movs r0, 0xA5
+ lsls r0, 1
+ bl sub_8083E38
+ mov r3, sp
+ adds r0, r3, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08045FE8
+ ldr r0, _08045FE4
+_08045FD0:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+ b _08045FF2
+ .align 2, 0
+_08045FDC: .4byte 0x00ff0008
+_08045FE0: .4byte gUnknown_202DE58
+_08045FE4: .4byte gUnknown_80F8FC4
+_08045FE8:
+ ldr r0, _08045FFC
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+_08045FF2:
+ ldrb r0, [r5, 0x2]
+ bl sub_8052EC0
+ b _080460E0
+ .align 2, 0
+_08045FFC: .4byte gUnknown_80F8FF8
+_08046000:
+ movs r4, 0
+ cmp r4, r8
+ bge _0804602A
+ ldr r0, [sp, 0x54]
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804602A
+ movs r3, 0x1
+ add r2, sp, 0x54
+_08046016:
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ bge _0804602A
+ ldr r0, [r2]
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08046016
+_0804602A:
+ cmp r4, r8
+ bne _08046060
+_0804602E:
+ ldr r6, [sp, 0xA8]
+ cmp r6, 0
+ beq _080460E0
+ ldr r0, _08046054
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08046058
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _0804605C
+_08046048:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+ b _080460E0
+ .align 2, 0
+_08046054: .4byte gUnknown_202DE58
+_08046058: .4byte gUnknown_202DF98
+_0804605C: .4byte gUnknown_80F8F54
+_08046060:
+ movs r0, 0xA5
+ lsls r0, 1
+ bl sub_8083E38
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08046094
+ ldr r0, [r5]
+ ldr r1, [sp, 0xAC]
+ str r0, [r1, 0x60]
+ ldr r0, _0804608C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08046090
+ b _080460AC
+ .align 2, 0
+_0804608C: .4byte gUnknown_202DE58
+_08046090: .4byte gUnknown_80F8FC4
+_08046094:
+ adds r0, r5, 0
+ bl sub_8091290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080460C0
+ ldr r0, _080460B8
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _080460BC
+_080460AC:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+ b _080460DA
+ .align 2, 0
+_080460B8: .4byte gUnknown_202DF98
+_080460BC: .4byte gUnknown_80F8FAC
+_080460C0:
+ ldr r0, _080460F0
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _080460F4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+_080460DA:
+ ldrb r0, [r5, 0x2]
+ bl sub_8052EC0
+_080460E0:
+ add sp, 0xB8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080460F0: .4byte gUnknown_202DE58
+_080460F4: .4byte gUnknown_80F8FF8
+ thumb_func_end sub_8045DB4
+
+ thumb_func_start sub_80460F8
+sub_80460F8:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ bl sub_8045708
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _08046110
+ movs r0, 0
+ b _080461B6
+_08046110:
+ ldr r1, [r4, 0x70]
+ ldr r0, [r6]
+ str r0, [r1]
+ ldr r2, [r4, 0x70]
+ ldrb r1, [r2]
+ movs r0, 0xEF
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_8049590
+ str r4, [r0, 0x14]
+ ldrh r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08046186
+ ldrb r0, [r6, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046186
+ ldrb r1, [r6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08046170
+ cmp r7, 0
+ beq _08046186
+ adds r0, r6, 0
+ bl sub_8090C7C
+ ldr r1, _08046168
+ ldr r2, [r1]
+ ldr r1, _0804616C
+ b _0804617E
+ .align 2, 0
+_08046168: .4byte gUnknown_203B418
+_0804616C: .4byte 0x0000068c
+_08046170:
+ adds r0, r6, 0
+ bl sub_8090CCC
+ ldr r1, _080461BC
+ ldr r2, [r1]
+ movs r1, 0xD2
+ lsls r1, 3
+_0804617E:
+ adds r2, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r2]
+_08046186:
+ movs r6, 0
+ movs r4, 0
+_0804618A:
+ ldr r5, _080461BC
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ ldr r2, _080461C0
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80450E0
+ lsls r0, 24
+ adds r1, r4, 0x1
+ cmp r0, 0
+ beq _080461A6
+ adds r6, r1, 0
+_080461A6:
+ adds r4, r1, 0
+ cmp r4, 0x3F
+ ble _0804618A
+ ldr r0, [r5]
+ ldr r1, _080461C4
+ adds r0, r1
+ strh r6, [r0]
+ movs r0, 0x1
+_080461B6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080461BC: .4byte gUnknown_203B418
+_080461C0: .4byte 0x0001361c
+_080461C4: .4byte 0x00003904
+ thumb_func_end sub_80460F8
+
+ thumb_func_start sub_80461C8
+sub_80461C8:
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl sub_8049590
+ adds r6, r0, 0
+ ldr r5, [r6, 0x14]
+ cmp r5, 0
+ beq _080461EE
+ adds r0, r5, 0
+ bl sub_80450F8
+ cmp r0, 0x3
+ beq _080461F2
+_080461EE:
+ movs r0, 0
+ b _08046284
+_080461F2:
+ adds r0, r5, 0
+ bl sub_8045108
+ adds r4, r0, 0
+ ldrh r1, [r6]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0804624E
+ ldrb r0, [r4, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804624E
+ ldrb r1, [r4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08046238
+ cmp r7, 0
+ beq _0804624E
+ adds r0, r4, 0
+ bl sub_8090C7C
+ ldr r1, _08046230
+ ldr r2, [r1]
+ ldr r1, _08046234
+ adds r2, r1
+ b _08046248
+ .align 2, 0
+_08046230: .4byte gUnknown_203B418
+_08046234: .4byte 0x0000068c
+_08046238:
+ adds r0, r4, 0
+ bl sub_8090CCC
+ ldr r1, _0804628C
+ ldr r2, [r1]
+ movs r3, 0xD2
+ lsls r3, 3
+ adds r2, r3
+_08046248:
+ ldr r1, [r2]
+ subs r1, r0
+ str r1, [r2]
+_0804624E:
+ movs r0, 0
+ str r0, [r6, 0x14]
+ str r0, [r5]
+ movs r6, 0
+ movs r4, 0
+_08046258:
+ ldr r5, _0804628C
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ ldr r2, _08046290
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80450E0
+ lsls r0, 24
+ adds r1, r4, 0x1
+ cmp r0, 0
+ beq _08046274
+ adds r6, r1, 0
+_08046274:
+ adds r4, r1, 0
+ cmp r4, 0x3F
+ ble _08046258
+ ldr r0, [r5]
+ ldr r3, _08046294
+ adds r0, r3
+ strh r6, [r0]
+ movs r0, 0x1
+_08046284:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804628C: .4byte gUnknown_203B418
+_08046290: .4byte 0x0001361c
+_08046294: .4byte 0x00003904
+ thumb_func_end sub_80461C8
+
+ thumb_func_start sub_8046298
+sub_8046298:
+ ldrb r0, [r0, 0x2]
+ ldr r1, _080462A8
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ bx lr
+ .align 2, 0
+_080462A8: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8046298
+
+ thumb_func_start sub_80462AC
+sub_80462AC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080462E4
+ b _08046498
+_080462E4:
+ cmp r5, 0
+ beq _08046316
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ bne _08046300
+ b _08046498
+_08046300:
+ cmp r1, 0x2
+ bne _08046308
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+_08046308:
+ adds r0, r4, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046316
+ b _08046498
+_08046316:
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bge _0804631E
+ adds r1, 0xFF
+_0804631E:
+ asrs r1, 8
+ ldr r0, _080463A4
+ ldr r2, [r0]
+ ldr r5, _080463A8
+ adds r0, r2, r5
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ subs r6, r1, r0
+ ldr r3, [r4, 0x10]
+ ldr r0, [r4, 0x1C]
+ subs r1, r3, r0
+ cmp r1, 0
+ bge _0804633A
+ adds r1, 0xFF
+_0804633A:
+ asrs r1, 8
+ ldr r5, _080463AC
+ adds r0, r2, r5
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ subs r1, r2
+ mov r8, r1
+ adds r0, r3, 0
+ cmp r0, 0
+ bge _08046350
+ adds r0, 0xFF
+_08046350:
+ asrs r0, 8
+ subs r0, r2
+ adds r7, r0, 0
+ adds r7, 0x8
+ lsrs r0, r7, 31
+ adds r0, r7, r0
+ asrs r7, r0, 1
+ movs r0, 0x20
+ negs r0, r0
+ cmp r6, r0
+ bge _08046368
+ b _08046498
+_08046368:
+ cmp r8, r0
+ bge _0804636E
+ b _08046498
+_0804636E:
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r6, r0
+ ble _08046378
+ b _08046498
+_08046378:
+ mov r0, r8
+ cmp r0, 0xC0
+ ble _08046380
+ b _08046498
+_08046380:
+ ldr r5, _080463B0
+ ldrh r1, [r5, 0x2]
+ ldr r0, _080463B4
+ ands r0, r1
+ strh r0, [r5, 0x2]
+ mov r1, r10
+ cmp r1, 0
+ beq _080463BC
+ movs r2, 0x17
+ mov r10, r2
+ movs r2, 0xA0
+ lsls r2, 8
+ ldrh r1, [r5, 0x4]
+ ldr r0, _080463B8
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5, 0x4]
+ b _08046408
+ .align 2, 0
+_080463A4: .4byte gUnknown_203B418
+_080463A8: .4byte 0x000181f0
+_080463AC: .4byte 0x000181f2
+_080463B0: .4byte gUnknown_202EDC0
+_080463B4: .4byte 0x0000c1ff
+_080463B8: .4byte 0x00000fff
+_080463BC:
+ ldr r0, [r4, 0x70]
+ bl sub_8046298
+ mov r10, r0
+ mov r3, r9
+ cmp r3, 0xFF
+ beq _080463EE
+ cmp r0, 0
+ bne _080463EE
+ ldr r0, _08046478
+ add r0, r9
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r0, _0804647C
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r1, 3
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 9
+ ldrh r2, [r5, 0x2]
+ ldr r0, _08046480
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x2]
+_080463EE:
+ ldr r0, [r4, 0x70]
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D58
+ movs r1, 0xF
+ ands r0, r1
+ lsls r0, 12
+ ldr r3, _08046484
+ ldrh r2, [r3, 0x4]
+ ldr r1, _08046488
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+_08046408:
+ ldr r1, _08046488
+ mov r5, r8
+ ands r1, r5
+ lsls r1, 4
+ ldr r4, _08046484
+ ldrh r2, [r4, 0x6]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x6]
+ ldr r0, _0804648C
+ ands r6, r0
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r6
+ strh r0, [r4, 0x2]
+ ldr r0, [sp, 0x4]
+ lsls r3, r0, 10
+ ldrh r2, [r4]
+ ldr r1, _08046490
+ adds r0, r1, 0
+ ands r0, r2
+ orrs r0, r3
+ strh r0, [r4]
+ movs r2, 0xC0
+ lsls r2, 4
+ ldrh r0, [r4, 0x4]
+ ands r1, r0
+ orrs r1, r2
+ mov r2, r10
+ lsls r0, r2, 2
+ movs r3, 0xD0
+ lsls r3, 1
+ adds r0, r3
+ ldr r2, _08046494
+ ands r0, r2
+ movs r2, 0xFC
+ lsls r2, 8
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r4, 0x4]
+ ldr r5, [sp]
+ cmp r5, 0
+ bne _08046466
+ movs r7, 0x1
+_08046466:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+ movs r0, 0x1
+ b _0804649A
+ .align 2, 0
+_08046478: .4byte gUnknown_203B420
+_0804647C: .4byte gUnknown_203B428
+_08046480: .4byte 0x0000c1ff
+_08046484: .4byte gUnknown_202EDC0
+_08046488: .4byte 0x00000fff
+_0804648C: .4byte 0x000001ff
+_08046490: .4byte 0x0000f3ff
+_08046494: .4byte 0x000003ff
+_08046498:
+ movs r0, 0
+_0804649A:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80462AC
+
+ thumb_func_start sub_80464AC
+sub_80464AC:
+ push {r4,lr}
+ ldr r4, _080464C4
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D6C
+ lsls r0, 3
+ adds r0, r4
+ ldr r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080464C4: .4byte gUnknown_80F7B14
+ thumb_func_end sub_80464AC
+
+ thumb_func_start sub_80464C8
+sub_80464C8:
+ push {r4-r6,lr}
+ sub sp, 0x78
+ adds r6, r0, 0
+ adds r3, r1, 0
+ adds r5, r2, 0
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ add r0, sp, 0x28
+ movs r4, 0
+ strb r4, [r0]
+ add r1, sp, 0x24
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r0, sp
+ adds r0, 0x26
+ strb r4, [r0]
+ str r5, [sp, 0x74]
+ ldr r0, [r3]
+ str r0, [sp, 0x8]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ add r0, sp, 0x4
+ bl sub_8045394
+ add r0, sp, 0x4
+ strh r4, [r0, 0x26]
+ str r4, [sp]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_804652C
+ add sp, 0x78
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80464C8
+
+ thumb_func_start sub_804652C
+sub_804652C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r10, r0
+ adds r5, r1, 0
+ mov r9, r2
+ lsls r3, 24
+ lsrs r6, r3, 24
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl sub_804954C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ movs r3, 0
+ str r3, [sp, 0xC]
+ cmp r0, 0
+ beq _0804658C
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _0804658C
+ adds r4, r5, 0x4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8046734
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_807FE44
+ ldr r0, _080465A4
+ ldr r1, [r0]
+ mov r0, r10
+ bl sub_80522A8
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0804658C
+ b _0804671E
+_0804658C:
+ ldrh r1, [r5, 0x6]
+ lsls r1, 16
+ ldrh r0, [r5, 0x4]
+ orrs r0, r1
+ str r0, [sp]
+ mov r8, r0
+ movs r7, 0x1
+ cmp r6, 0
+ beq _08046632
+ movs r7, 0
+ b _08046632
+ .align 2, 0
+_080465A4: .4byte gUnknown_80FED30
+_080465A8:
+ lsls r3, r7, 2
+ adds r3, r0
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08046628
+ ldr r2, [sp]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp]
+ ldrh r0, [r3, 0x2]
+ ldrh r3, [r5, 0x6]
+ adds r0, r3
+ lsls r0, 16
+ ldr r1, _0804662C
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r1, 16
+ bl sub_804954C
+ adds r4, r0, 0
+ ldrh r1, [r4]
+ movs r6, 0x3
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08046630
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _08046630
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ bne _08046630
+ adds r0, r5, 0
+ mov r1, sp
+ bl sub_8046734
+ ldr r3, [sp]
+ mov r8, r3
+ ldrh r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0x3
+ beq _08046620
+ mov r0, sp
+ mov r1, r9
+ movs r2, 0x1
+ bl sub_80460F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046644
+_08046620:
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _08046644
+ .align 2, 0
+_08046628: .4byte 0xffff0000
+_0804662C: .4byte 0x0000ffff
+_08046630:
+ adds r7, 0x1
+_08046632:
+ ldr r0, _08046688
+ lsls r1, r7, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r1, 0x63
+ bne _080465A8
+ movs r3, 0
+ str r3, [sp, 0xC]
+_08046644:
+ ldr r0, _0804668C
+ mov r1, r9
+ bl sub_8045BF8
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ beq _080466C8
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r4, sp
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80402AC
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r1, 0x1
+ beq _0804669A
+ cmp r1, 0x1
+ bgt _08046690
+ cmp r1, 0
+ beq _080466AC
+ b _0804671E
+ .align 2, 0
+_08046688: .4byte gUnknown_80F4468
+_0804668C: .4byte gUnknown_202DE58
+_08046690:
+ cmp r0, 0x2
+ beq _080466A4
+ cmp r0, 0x3
+ beq _080466B4
+ b _0804671E
+_0804669A:
+ ldr r0, _080466A0
+ b _080466B6
+ .align 2, 0
+_080466A0: .4byte gUnknown_80F93E8
+_080466A4:
+ ldr r0, _080466A8
+ b _080466B6
+ .align 2, 0
+_080466A8: .4byte gUnknown_80F9408
+_080466AC:
+ ldr r0, _080466B0
+ b _080466B6
+ .align 2, 0
+_080466B0: .4byte gUnknown_80F9424
+_080466B4:
+ ldr r0, _080466C4
+_080466B6:
+ ldr r2, [r0]
+ mov r0, r10
+ mov r1, sp
+ bl sub_8052364
+ b _0804671E
+ .align 2, 0
+_080466C4: .4byte gUnknown_80F949C
+_080466C8:
+ mov r3, r8
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [sp, 0x4]
+ asrs r1, r3, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2
+ add r2, sp, 0x4
+ str r0, [r2, 0x4]
+ ldr r3, [sp, 0x30]
+ cmp r3, 0
+ beq _0804670C
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ ldr r1, [r2, 0x4]
+ adds r0, r1
+ str r0, [r2, 0x4]
+_0804670C:
+ adds r0, r2, 0
+ bl sub_804219C
+ ldr r0, _08046730
+ ldr r2, [r0]
+ mov r0, r10
+ mov r1, sp
+ bl sub_8052364
+_0804671E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046730: .4byte gUnknown_80F943C
+ thumb_func_end sub_804652C
+
+ thumb_func_start sub_8046734
+sub_8046734:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r8, r0
+ ldr r0, _08046858
+ ldr r0, [r0]
+ ldr r2, _0804685C
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0xC]
+ movs r0, 0
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r4, r0, 8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r5, r0, 8
+ mov r1, r8
+ ldr r0, [r1, 0xC]
+ subs r0, r4
+ cmp r0, 0
+ bge _08046776
+ negs r0, r0
+_08046776:
+ mov r2, r8
+ ldr r2, [r2, 0x10]
+ mov r9, r2
+ cmp r0, 0xB
+ bgt _0804678C
+ subs r0, r2, r5
+ cmp r0, 0
+ bge _08046788
+ negs r0, r0
+_08046788:
+ cmp r0, 0xB
+ ble _08046822
+_0804678C:
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0x10]
+ mov r2, r8
+ ldr r0, [r2, 0xC]
+ str r0, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ subs r0, r4, r0
+ movs r1, 0x18
+ bl __divsi3
+ adds r6, r0, 0
+ mov r2, r9
+ subs r0, r5, r2
+ movs r1, 0x18
+ bl __divsi3
+ adds r7, r0, 0
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x4
+ str r1, [sp, 0x14]
+_080467BE:
+ ldr r0, [sp, 0x4]
+ adds r0, r6
+ str r0, [sp, 0x4]
+ ldr r2, [sp, 0x14]
+ ldr r0, [r2, 0x4]
+ adds r0, r7
+ str r0, [r2, 0x4]
+ ldr r0, [sp, 0x10]
+ bl sub_8009C7C
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ mov r0, r8
+ str r1, [r0, 0x1C]
+ add r1, sp, 0x4
+ bl sub_804535C
+ mov r1, r10
+ lsls r3, r1, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0
+ bl sub_80462AC
+ movs r0, 0x13
+ bl sub_803E46C
+ ldr r2, [sp, 0x10]
+ adds r2, 0x55
+ str r2, [sp, 0x10]
+ movs r0, 0x3
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _08046810
+ movs r2, 0x1
+ add r10, r2
+_08046810:
+ movs r0, 0x7
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ movs r2, 0x1
+ add r9, r2
+ mov r0, r9
+ cmp r0, 0x17
+ ble _080467BE
+_08046822:
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8045394
+ movs r0, 0
+ mov r1, r8
+ str r0, [r1, 0x1C]
+ str r0, [sp]
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80462AC
+ movs r0, 0x13
+ bl sub_803E46C
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046858: .4byte gUnknown_203B418
+_0804685C: .4byte 0x00018210
+ thumb_func_end sub_8046734
+
+ thumb_func_start sub_8046860
+sub_8046860:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r1, 0
+ adds r5, r2, 0
+ str r3, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_804687C
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046860
+
+ thumb_func_start sub_804687C
+sub_804687C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08046970
+ add sp, r4
+ ldr r5, _08046974
+ add r5, sp
+ str r0, [r5]
+ movs r0, 0xA5
+ lsls r0, 3
+ add r0, sp
+ str r1, [r0]
+ mov r8, r2
+ ldr r1, _08046978
+ add r1, sp
+ str r3, [r1]
+ movs r1, 0
+ movs r7, 0x1D
+ ldr r0, _0804697C
+ add r0, sp
+_080468A8:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080468A8
+ movs r7, 0
+ movs r2, 0xAD
+ lsls r2, 3
+ add r2, sp
+ ldr r2, [r2]
+ cmp r7, r2
+ blt _080468C2
+ b _080469DE
+_080468C2:
+ ldr r3, _08046980
+ mov r9, r3
+ ldr r5, _08046984
+ movs r0, 0
+ ldrsh r5, [r5, r0]
+ ldr r0, _08046988
+ add r0, sp
+ str r5, [r0]
+_080468D2:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0804698C
+ ands r4, r1
+ orrs r4, r0
+ mov r2, r8
+ ldrh r0, [r2, 0x2]
+ lsls r0, 16
+ mov r3, r9
+ ands r4, r3
+ orrs r4, r0
+ movs r5, 0
+ adds r0, r7, 0x1
+ mov r10, r0
+ ldr r1, _08046984
+ ldr r2, _08046988
+ add r2, sp
+ ldr r2, [r2]
+ cmp r2, 0x63
+ beq _080469B0
+ ldr r3, _08046990
+ add r3, sp
+ ldr r0, _08046994
+ add r0, sp
+ str r3, [r0]
+_08046904:
+ ldr r0, _08046998
+ add r0, sp
+ adds r6, r0, r5
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0804699C
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrh r0, [r2]
+ mov r1, r8
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804698C
+ ands r4, r1
+ orrs r4, r0
+ ldrh r0, [r2, 0x2]
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ lsls r0, 16
+ mov r3, r9
+ ands r4, r3
+ orrs r4, r0
+ lsls r0, r4, 16
+ asrs r0, 16
+ asrs r1, r4, 16
+ bl sub_804954C
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0804699C
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0804699C
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ bne _0804699C
+ lsls r0, r7, 2
+ ldr r5, _08046994
+ add r5, sp
+ ldr r5, [r5]
+ adds r0, r5, r0
+ str r4, [r0]
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080469CE
+ .align 2, 0
+_08046970: .4byte 0xfffffab8
+_08046974: .4byte 0x00000524
+_08046978: .4byte 0x0000052c
+_0804697C: .4byte 0x00000521
+_08046980: .4byte 0x0000ffff
+_08046984: .4byte gUnknown_80F4468
+_08046988: .4byte 0x00000534
+_0804698C: .4byte 0xffff0000
+_08046990: .4byte 0x0000048c
+_08046994: .4byte 0x00000544
+_08046998: .4byte 0x00000504
+_0804699C:
+ adds r5, 0x1
+ cmp r5, 0x1D
+ bgt _080469B0
+ lsls r0, r5, 2
+ ldr r1, _08046A18
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x63
+ bne _08046904
+_080469B0:
+ movs r3, 0
+ cmp r3, 0
+ bne _080469CE
+ ldr r1, _08046A1C
+ add r1, sp
+ lsls r0, r7, 2
+ adds r1, r0
+ ldrh r2, [r1]
+ mov r0, r9
+ orrs r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r0, r9
+ orrs r0, r2
+ strh r0, [r1, 0x2]
+_080469CE:
+ mov r7, r10
+ movs r5, 0xAD
+ lsls r5, 3
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ bge _080469DE
+ b _080468D2
+_080469DE:
+ movs r1, 0
+ mov r9, r1
+ movs r7, 0
+ movs r0, 0xAD
+ lsls r0, 3
+ add r0, sp
+ ldr r0, [r0]
+ cmp r7, r0
+ blt _080469F2
+ b _08046B0A
+_080469F2:
+ movs r2, 0
+ mov r8, r2
+_080469F6:
+ ldr r0, _08046A1C
+ add r0, sp
+ lsls r2, r7, 2
+ adds r3, r0, r2
+ movs r4, 0
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ bge _08046A20
+ movs r0, 0x74
+ muls r0, r7
+ add r0, sp
+ adds r0, 0x4
+ mov r5, r8
+ str r5, [r0]
+ movs r0, 0x1
+ mov r9, r0
+ b _08046AFA
+ .align 2, 0
+_08046A18: .4byte gUnknown_80F4468
+_08046A1C: .4byte 0x0000048c
+_08046A20:
+ movs r0, 0x74
+ adds r6, r7, 0
+ muls r6, r0
+ mov r4, sp
+ adds r4, r6
+ adds r4, 0x4
+ movs r0, 0x3
+ str r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ mov r1, r8
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x22
+ mov r5, r8
+ strb r5, [r0]
+ add r0, sp, 0x74
+ adds r0, r6
+ ldr r1, _08046B2C
+ add r1, sp
+ ldr r1, [r1]
+ adds r2, r1, r2
+ str r2, [r0]
+ add r0, sp, 0x8
+ adds r0, r6
+ ldr r1, [r3]
+ str r1, [r0]
+ movs r2, 0xA5
+ lsls r2, 3
+ add r2, sp
+ ldr r2, [r2]
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ adds r0, r4, 0
+ movs r5, 0xA8
+ lsls r5, 3
+ add r5, sp
+ str r3, [r5]
+ bl sub_8045394
+ mov r0, r8
+ strh r0, [r4, 0x26]
+ ldr r4, _08046B30
+ add r4, sp
+ lsls r5, r7, 3
+ adds r4, r5
+ movs r1, 0xA8
+ lsls r1, 3
+ add r1, sp
+ ldr r3, [r1]
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 8
+ add r1, sp, 0x10
+ adds r1, r6
+ ldr r1, [r1]
+ subs r0, r1
+ movs r1, 0x18
+ movs r2, 0xA8
+ lsls r2, 3
+ add r2, sp
+ str r3, [r2]
+ bl __divsi3
+ str r0, [r4]
+ movs r4, 0x97
+ lsls r4, 3
+ add r4, sp
+ adds r4, r5
+ movs r5, 0xA8
+ lsls r5, 3
+ add r5, sp
+ ldr r3, [r5]
+ movs r0, 0x2
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 8
+ add r1, sp, 0x14
+ adds r1, r6
+ ldr r1, [r1]
+ subs r0, r1
+ movs r1, 0x18
+ bl __divsi3
+ str r0, [r4]
+ movs r1, 0x1
+_08046AFA:
+ adds r7, 0x1
+ movs r2, 0xAD
+ lsls r2, 3
+ add r2, sp
+ ldr r2, [r2]
+ cmp r7, r2
+ bge _08046B0A
+ b _080469F6
+_08046B0A:
+ cmp r1, 0
+ bne _08046B54
+ movs r3, 0xAD
+ lsls r3, 3
+ add r3, sp
+ ldr r3, [r3]
+ cmp r3, 0x1
+ ble _08046B3C
+ ldr r0, _08046B34
+ ldr r1, [r0]
+ ldr r4, _08046B38
+ add r4, sp
+ ldr r0, [r4]
+ bl sub_80522A8
+ b _08046C7C
+ .align 2, 0
+_08046B2C: .4byte 0x0000052c
+_08046B30: .4byte 0x000004b4
+_08046B34: .4byte gUnknown_80F945C
+_08046B38: .4byte 0x00000524
+_08046B3C:
+ ldr r0, _08046B4C
+ ldr r1, [r0]
+ ldr r5, _08046B50
+ add r5, sp
+ ldr r0, [r5]
+ bl sub_80522A8
+ b _08046C7C
+ .align 2, 0
+_08046B4C: .4byte gUnknown_80F943C
+_08046B50: .4byte 0x00000524
+_08046B54:
+ mov r0, r9
+ cmp r0, 0
+ beq _08046B68
+ ldr r0, _08046C90
+ ldr r1, [r0]
+ ldr r2, _08046C94
+ add r2, sp
+ ldr r0, [r2]
+ bl sub_80522A8
+_08046B68:
+ movs r3, 0
+ mov r9, r3
+ ldr r0, _08046C98
+ ldr r0, [r0]
+ ldr r4, _08046C9C
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r5, 0xA6
+ lsls r5, 3
+ add r5, sp
+ str r0, [r5]
+ mov r10, r3
+ movs r6, 0
+_08046B82:
+ movs r7, 0
+ mov r0, r10
+ adds r0, 0x55
+ movs r1, 0xA7
+ lsls r1, 3
+ add r1, sp
+ str r0, [r1]
+ adds r2, r6, 0x1
+ ldr r3, _08046CA0
+ add r3, sp
+ str r2, [r3]
+ movs r4, 0xAD
+ lsls r4, 3
+ add r4, sp
+ ldr r4, [r4]
+ cmp r7, r4
+ bge _08046C14
+ mov r5, r9
+ lsls r5, 24
+ mov r8, r5
+_08046BAA:
+ movs r0, 0x74
+ adds r5, r7, 0
+ muls r5, r0
+ mov r4, sp
+ adds r4, r5
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046C06
+ ldr r0, _08046CA4
+ add r0, sp
+ lsls r2, r7, 3
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x97
+ lsls r0, 3
+ add r0, sp
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ bl sub_804539C
+ mov r0, r10
+ bl sub_8009C7C
+ add r2, sp, 0x20
+ adds r2, r5
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ str r1, [r2]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA6
+ lsls r2, 3
+ add r2, sp
+ ldr r1, [r2]
+ movs r2, 0x1
+ mov r4, r8
+ lsrs r3, r4, 24
+ bl sub_80462AC
+_08046C06:
+ adds r7, 0x1
+ movs r5, 0xAD
+ lsls r5, 3
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ blt _08046BAA
+_08046C14:
+ movs r0, 0x13
+ bl sub_803E46C
+ movs r0, 0xA7
+ lsls r0, 3
+ add r0, sp
+ ldr r0, [r0]
+ mov r10, r0
+ movs r0, 0x3
+ ands r0, r6
+ cmp r0, 0
+ bne _08046C30
+ movs r1, 0x1
+ add r9, r1
+_08046C30:
+ movs r0, 0x7
+ mov r2, r9
+ ands r2, r0
+ mov r9, r2
+ ldr r3, _08046CA0
+ add r3, sp
+ ldr r6, [r3]
+ cmp r6, 0x17
+ ble _08046B82
+ movs r4, 0xAD
+ lsls r4, 3
+ add r4, sp
+ ldr r4, [r4]
+ cmp r4, 0
+ ble _08046C7C
+ ldr r0, _08046CA8
+ add r0, sp
+ ldr r5, [r0]
+ ldr r4, _08046CAC
+ add r4, sp
+ movs r1, 0xAD
+ lsls r1, 3
+ add r1, sp
+ ldr r7, [r1]
+_08046C60:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08046C72
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_80460F8
+_08046C72:
+ adds r5, 0x4
+ adds r4, 0x4
+ subs r7, 0x1
+ cmp r7, 0
+ bne _08046C60
+_08046C7C:
+ movs r3, 0xA9
+ lsls r3, 3
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046C90: .4byte gUnknown_80F947C
+_08046C94: .4byte 0x00000524
+_08046C98: .4byte gUnknown_203B418
+_08046C9C: .4byte 0x00018210
+_08046CA0: .4byte 0x0000053c
+_08046CA4: .4byte 0x000004b4
+_08046CA8: .4byte 0x0000052c
+_08046CAC: .4byte 0x0000048c
+ thumb_func_end sub_804687C
+
+ thumb_func_start sub_8046CB0
+sub_8046CB0:
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [r0, 0x70]
+ adds r3, r0, 0
+ adds r0, 0x60
+ ldrb r2, [r0]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08046CDC
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _08046CDC
+ adds r0, r3, 0
+ adds r0, 0x62
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08046CDC
+ movs r0, 0x1
+ b _08046CDE
+_08046CDC:
+ movs r0, 0
+_08046CDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046CB0
+
+ thumb_func_start sub_8046CE4
+sub_8046CE4:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x64
+ bl sub_8084100
+ adds r1, r0, 0
+ movs r2, 0
+ ldr r3, _08046D04
+_08046CF6:
+ lsls r0, r1, 2
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, r5
+ bgt _08046D08
+ strb r1, [r4, 0x1]
+ b _08046D18
+ .align 2, 0
+_08046D04: .4byte gUnknown_810A3F0
+_08046D08:
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r1, r0, 1
+ adds r2, 0x1
+ cmp r2, 0xC7
+ ble _08046CF6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+_08046D18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046CE4
+
+ thumb_func_start sub_8046D20
+sub_8046D20:
+ push {r4,r5,lr}
+ ldr r4, _08046D5C
+ ldr r0, [r4]
+ ldrb r5, [r0, 0x8]
+ bl sub_8046D70
+ ldr r1, [r4]
+ strb r0, [r1, 0x8]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _08046D64
+ cmp r5, 0
+ bne _08046D64
+ ldr r0, _08046D60
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8052B8C
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _08046D64
+ ldr r0, [r4]
+ strb r1, [r0, 0x4]
+ ldr r1, [r4]
+ movs r0, 0x2
+ strb r0, [r1, 0x11]
+ b _08046D68
+ .align 2, 0
+_08046D5C: .4byte gUnknown_203B418
+_08046D60: .4byte gUnknown_80FA408
+_08046D64:
+ bl sub_8046D8C
+_08046D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046D20
+
+ thumb_func_start sub_8046D70
+sub_8046D70:
+ push {lr}
+ ldr r0, _08046D84
+ ldr r0, [r0]
+ ldr r1, _08046D88
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046D84: .4byte gUnknown_203B418
+_08046D88: .4byte 0x0000068a
+ thumb_func_end sub_8046D70
+
+ thumb_func_start sub_8046D8C
+sub_8046D8C:
+ push {r4-r7,lr}
+ sub sp, 0xC
+ movs r6, 0
+ ldr r5, _08046EDC
+ movs r4, 0
+_08046D96:
+ movs r7, 0
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r3, 0
+ ldr r2, [r5]
+_08046DA6:
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DC8
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x79
+ bne _08046DB8
+ str r3, [sp]
+_08046DB8:
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x77
+ bne _08046DC0
+ str r3, [sp, 0x4]
+_08046DC0:
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x78
+ bne _08046DC8
+ str r3, [sp, 0x8]
+_08046DC8:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _08046DA6
+ ldr r1, [sp]
+ cmp r1, 0
+ blt _08046E1E
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ blt _08046E1E
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ blt _08046E1E
+ movs r7, 0x1
+ movs r6, 0x1
+ lsls r1, 2
+ ldr r0, [r5]
+ adds r1, r0
+ strb r4, [r1, 0x2]
+ strb r4, [r1, 0x1]
+ strb r4, [r1]
+ ldr r0, [sp, 0x4]
+ lsls r0, 2
+ ldr r1, [r5]
+ adds r0, r1
+ strb r4, [r0, 0x2]
+ strb r4, [r0, 0x1]
+ strb r4, [r0]
+ ldr r0, [sp, 0x8]
+ lsls r0, 2
+ ldr r1, [r5]
+ adds r0, r1
+ strb r4, [r0, 0x2]
+ strb r4, [r0, 0x1]
+ strb r4, [r0]
+ ldr r1, [sp]
+ lsls r1, 2
+ ldr r0, [r5]
+ adds r0, r1
+ movs r1, 0x7A
+ movs r2, 0
+ bl sub_8090A8C
+_08046E1E:
+ cmp r7, 0
+ bne _08046D96
+ bl sub_80910B4
+ cmp r6, 0
+ beq _08046ED4
+ bl sub_8083600
+ adds r4, r0, 0
+ ldr r0, _08046EE0
+ bl sub_80855E4
+ ldr r6, _08046EE4
+ ldr r0, [r6]
+ ldr r5, _08046EE8
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08046EEC
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0x3C
+ movs r1, 0x41
+ bl sub_803E708
+ ldr r0, _08046EF0
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ adds r0, r4, 0
+ movs r1, 0x4
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80869E4
+ adds r0, r4, 0
+ adds r0, 0xC
+ movs r1, 0x86
+ lsls r1, 1
+ movs r2, 0
+ bl sub_80416E0
+ adds r0, r4, 0
+ movs r1, 0xD7
+ bl sub_80421C0
+ movs r0, 0x3C
+ movs r1, 0x41
+ bl sub_803E708
+ ldr r0, _08046EF4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08046EF8
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0xA
+ movs r1, 0x41
+ bl sub_803E708
+ movs r0, 0xD4
+ bl sub_8083E38
+ ldr r0, _08046EFC
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0xA
+ movs r1, 0x41
+ bl sub_803E708
+ movs r0, 0x1
+ bl sub_804178C
+ ldr r0, [r6]
+ adds r0, r5
+ strb r7, [r0]
+ bl sub_8040A84
+_08046ED4:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046EDC: .4byte gUnknown_203B460
+_08046EE0: .4byte sub_80861A8
+_08046EE4: .4byte gUnknown_203B418
+_08046EE8: .4byte 0x0001356c
+_08046EEC: .4byte gUnknown_810531C
+_08046EF0: .4byte gUnknown_8105360
+_08046EF4: .4byte gUnknown_202DF98
+_08046EF8: .4byte gUnknown_81053A8
+_08046EFC: .4byte gUnknown_8105434
+ thumb_func_end sub_8046D8C
+
+ thumb_func_start sub_8046F00
+sub_8046F00:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _08046F7C
+ ldrb r0, [r4, 0x2]
+ bl sub_80913CC
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrb r0, [r4, 0x2]
+ bl sub_80915A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046F6E
+ movs r6, 0
+_08046F2A:
+ ldr r0, _08046F74
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _08046F78
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046F68
+ ldr r0, [r4, 0x70]
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_808E190
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8070B6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046F64
+ movs r5, 0
+_08046F64:
+ cmp r5, 0
+ bne _08046F7C
+_08046F68:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08046F2A
+_08046F6E:
+ movs r0, 0
+ b _08046F7E
+ .align 2, 0
+_08046F74: .4byte gUnknown_203B418
+_08046F78: .4byte 0x0001357c
+_08046F7C:
+ movs r0, 0x1
+_08046F7E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046F00
+
+ thumb_func_start sub_8046F84
+sub_8046F84:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ ldr r4, _08047000
+ movs r6, 0x1
+ movs r3, 0
+_08046F90:
+ lsls r1, r5, 2
+ ldr r0, [r4]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FAE
+ ldrb r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ beq _08046FAE
+ strb r3, [r2, 0x2]
+ strb r3, [r2, 0x1]
+ strb r3, [r2]
+_08046FAE:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08046F90
+ bl sub_80910B4
+ movs r5, 0
+ movs r6, 0
+_08046FBC:
+ ldr r0, _08047004
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08047008
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046FF4
+ ldr r0, [r4, 0x70]
+ adds r2, r0, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FF4
+ ldrb r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ beq _08046FF4
+ strb r6, [r2, 0x2]
+ strb r6, [r2, 0x1]
+ strb r6, [r2]
+_08046FF4:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08046FBC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047000: .4byte gUnknown_203B460
+_08047004: .4byte gUnknown_203B418
+_08047008: .4byte 0x0001357c
+ thumb_func_end sub_8046F84
+
+ thumb_func_start sub_804700C
+sub_804700C:
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _08047078
+_08047012:
+ lsls r1, r5, 2
+ ldr r0, [r4]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804702C
+ adds r0, r2, 0
+ movs r1, 0x46
+ movs r2, 0
+ bl sub_8090A8C
+_0804702C:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08047012
+ bl sub_80910B4
+ movs r5, 0
+_08047038:
+ ldr r0, _0804707C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08047080
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804706C
+ ldr r0, [r4, 0x70]
+ adds r2, r0, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804706C
+ adds r0, r2, 0
+ movs r1, 0x46
+ movs r2, 0
+ bl sub_8090A8C
+_0804706C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08047038
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047078: .4byte gUnknown_203B460
+_0804707C: .4byte gUnknown_203B418
+_08047080: .4byte 0x0001357c
+ thumb_func_end sub_804700C
+
+ thumb_func_start sub_8047084
+sub_8047084:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r0, _080470E8
+ ldr r2, [r0]
+ movs r3, 0x1
+_08047090:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080470A2
+ ldrb r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ bne _080470E2
+_080470A2:
+ adds r2, 0x4
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08047090
+ bl sub_80910B4
+ movs r5, 0
+_080470B0:
+ ldr r0, _080470EC
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080470F0
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080470F4
+ ldr r0, [r4, 0x70]
+ adds r2, r0, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080470F4
+ ldrb r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _080470F4
+_080470E2:
+ movs r0, 0x1
+ b _080470FC
+ .align 2, 0
+_080470E8: .4byte gUnknown_203B460
+_080470EC: .4byte gUnknown_203B418
+_080470F0: .4byte 0x0001357c
+_080470F4:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080470B0
+ movs r0, 0
+_080470FC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8047084
+
+ thumb_func_start sub_8047104
+sub_8047104:
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_0804710A:
+ ldr r0, _08047154
+ lsls r1, r6, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08047142
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _08047132
+ adds r0, r4, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x1]
+ strb r5, [r4]
+_08047132:
+ ldrb r1, [r4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08047142
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x1]
+ strb r5, [r4]
+_08047142:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _0804710A
+ bl sub_80910B4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047154: .4byte gUnknown_203B460
+ thumb_func_end sub_8047104
+
+ thumb_func_start sub_8047158
+sub_8047158:
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r5, _0804718C
+ movs r6, 0x1
+ movs r4, 0x4
+_08047162:
+ lsls r1, r3, 2
+ ldr r0, [r5]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08047180
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08047180
+ movs r0, 0xFB
+ ands r0, r1
+ strb r0, [r2]
+_08047180:
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _08047162
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804718C: .4byte gUnknown_203B460
+ thumb_func_end sub_8047158
+
+ thumb_func_start sub_8047190
+sub_8047190:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _080472E8
+ add sp, r4
+ mov r9, r0
+ str r1, [sp, 0x214]
+ ldr r6, _080472EC
+ ldr r1, [r6]
+ ldr r4, _080472F0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ str r0, [sp, 0x220]
+ mov r8, r3
+ adds r7, r1, 0
+ adds r7, 0xC0
+ movs r0, 0x3
+ str r0, [r7]
+ adds r0, r1, 0
+ adds r0, 0xE4
+ movs r4, 0
+ strb r4, [r0]
+ subs r0, 0x4
+ movs r5, 0x1
+ strb r5, [r0]
+ adds r0, 0x2
+ strb r4, [r0]
+ ldr r0, [sp, 0x214]
+ str r0, [r7, 0x70]
+ str r4, [r7, 0x1C]
+ ldr r0, [r2]
+ str r0, [r7, 0x4]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 11
+ adds r0, r7, 0
+ bl sub_8045394
+ strh r4, [r7, 0x26]
+ str r4, [sp, 0x224]
+ mov r0, r9
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047214
+ mov r0, r9
+ movs r1, 0x2A
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x224]
+_08047214:
+ ldr r0, [sp, 0x260]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ str r0, [sp, 0x218]
+ movs r2, 0
+ str r2, [sp, 0x21C]
+ ldr r0, [r6]
+ ldr r3, _080472F4
+ adds r0, r3
+ strb r5, [r0]
+_08047228:
+ ldr r4, [r7, 0x4]
+ mov r10, r4
+ ldr r1, [sp, 0x260]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _080472AE
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080472AE
+ movs r2, 0x4
+ ldrsh r0, [r7, r2]
+ ldr r2, _080472F8
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r3, 0x6
+ ldrsh r1, [r7, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ adds r1, r2
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ str r4, [sp, 0x230]
+ cmp r0, 0
+ bne _080472AE
+ movs r6, 0
+ ldr r1, _080472FC
+ mov r4, r10
+ lsls r0, r4, 16
+ asrs r0, 16
+ str r0, [sp, 0x23C]
+ ldr r0, [sp, 0x230]
+ adds r5, r0, r1
+ asrs r2, r4, 16
+_0804727A:
+ ldrb r4, [r5]
+ cmp r4, 0x7
+ bgt _080472A6
+ ldr r0, _080472F8
+ lsls r1, r4, 2
+ adds r1, r0
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ ldr r3, [sp, 0x23C]
+ adds r0, r3
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r1, r2
+ str r2, [sp, 0x234]
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ ldr r2, [sp, 0x234]
+ cmp r0, 0
+ bne _08047300
+_080472A6:
+ adds r5, 0x1
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0804727A
+_080472AE:
+ ldr r0, _080472F8
+ mov r4, r8
+ lsls r2, r4, 2
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ ldrh r0, [r7, 0x4]
+ adds r1, r0
+ strh r1, [r7, 0x4]
+ ldrh r0, [r3, 0x2]
+ ldrh r4, [r7, 0x6]
+ adds r0, r4
+ strh r0, [r7, 0x6]
+ lsls r1, 16
+ asrs r1, 16
+ str r2, [sp, 0x230]
+ cmp r1, 0
+ blt _080472E0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ blt _080472E0
+ cmp r1, 0x37
+ bgt _080472E0
+ cmp r0, 0x1F
+ ble _08047304
+_080472E0:
+ movs r0, 0x2
+ mov r10, r0
+ b _0804744C
+ .align 2, 0
+_080472E8: .4byte 0xfffffdc0
+_080472EC: .4byte gUnknown_203B418
+_080472F0: .4byte 0x00018210
+_080472F4: .4byte 0x0001c05e
+_080472F8: .4byte gUnknown_80F4448
+_080472FC: .4byte gUnknown_80F4D64
+_08047300:
+ mov r8, r4
+ b _080472AE
+_08047304:
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 10
+ str r0, [sp, 0x228]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ lsls r0, 10
+ str r0, [sp, 0x22C]
+ mov r3, r8
+ lsls r6, r3, 24
+ movs r5, 0x5
+_0804731A:
+ movs r4, 0
+ adds r0, r7, 0
+ ldr r1, [sp, 0x228]
+ ldr r2, [sp, 0x22C]
+ bl sub_804539C
+ bl sub_804AF74
+ lsls r0, 24
+ movs r2, 0
+ cmp r0, 0
+ beq _08047334
+ movs r2, 0x3
+_08047334:
+ ldr r0, [r7, 0xC]
+ cmp r0, 0
+ bge _0804733C
+ adds r0, 0xFF
+_0804733C:
+ asrs r0, 8
+ adds r0, 0x8
+ ldr r1, [r7, 0x10]
+ cmp r1, 0
+ bge _08047348
+ adds r1, 0xFF
+_08047348:
+ asrs r1, 8
+ adds r1, 0x10
+ bl sub_8083568
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047358
+ movs r4, 0x1
+_08047358:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x220]
+ movs r2, 0
+ lsrs r3, r6, 24
+ bl sub_80462AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047370
+ movs r4, 0x1
+_08047370:
+ cmp r4, 0
+ beq _0804737A
+ movs r0, 0x12
+ bl sub_803E46C
+_0804737A:
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0804731A
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080473A2
+ ldr r3, [sp, 0x260]
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _080473A2
+ b _0804757A
+_080473A2:
+ ldr r1, [r5, 0x10]
+ cmp r1, 0
+ beq _08047436
+ movs r4, 0
+ ldr r2, [sp, 0x260]
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080473CE
+ adds r0, r1, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _080473CE
+ ldr r0, [r5, 0x10]
+ movs r1, 0x26
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+_080473CE:
+ cmp r4, 0
+ beq _080473E0
+ movs r3, 0x4
+ add r8, r3
+ movs r0, 0x7
+ mov r4, r8
+ ands r4, r0
+ mov r8, r4
+ b _08047436
+_080473E0:
+ movs r6, 0x1
+ ldr r0, [r5, 0x10]
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047406
+ add r4, sp, 0x208
+ adds r0, r4, 0
+ ldr r1, _080474B8
+ bl sub_8092A88
+ ldr r0, [r5, 0x10]
+ adds r1, r4, 0
+ bl sub_80571F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047406
+ movs r6, 0
+_08047406:
+ cmp r6, 0
+ beq _08047436
+ ldr r0, [sp, 0x21C]
+ cmp r0, 0x3F
+ bgt _0804742C
+ lsls r0, 3
+ mov r4, sp
+ adds r4, r0
+ adds r4, 0x8
+ ldr r0, [r5, 0x10]
+ str r0, [r4]
+ ldr r1, [r5, 0x10]
+ mov r0, r9
+ bl sub_8047930
+ strb r0, [r4, 0x4]
+ ldr r1, [sp, 0x21C]
+ adds r1, 0x1
+ str r1, [sp, 0x21C]
+_0804742C:
+ ldr r2, [sp, 0x260]
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08047436
+ b _08047574
+_08047436:
+ ldr r3, [sp, 0x218]
+ subs r3, 0x1
+ str r3, [sp, 0x218]
+ cmp r3, 0
+ ble _08047442
+ b _08047228
+_08047442:
+ movs r4, 0x1
+ mov r10, r4
+ mov r0, r8
+ lsls r0, 2
+ str r0, [sp, 0x230]
+_0804744C:
+ ldr r0, _080474BC
+ ldr r0, [r0]
+ ldr r1, _080474C0
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [sp, 0x21C]
+ cmp r2, 0
+ ble _0804752C
+ add r5, sp, 0x8
+ adds r6, r2, 0
+_08047462:
+ ldr r4, [r5]
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0
+ beq _080474D0
+ ldr r0, _080474C4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _080474C8
+ ldr r1, [sp, 0x214]
+ bl sub_8045C08
+ ldr r0, _080474CC
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80522F4
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_807A96C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, [sp, 0x224]
+ cmp r3, 0
+ bne _080474A4
+ ldr r3, [sp, 0x260]
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080474A6
+_080474A4:
+ movs r1, 0x1
+_080474A6:
+ str r4, [sp]
+ ldr r4, [sp, 0x214]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ mov r3, r9
+ bl sub_80479B8
+ b _08047524
+ .align 2, 0
+_080474B8: .4byte 0x00000195
+_080474BC: .4byte gUnknown_203B418
+_080474C0: .4byte 0x0001c05e
+_080474C4: .4byte gUnknown_202DF98
+_080474C8: .4byte gUnknown_202DE58
+_080474CC: .4byte gUnknown_80F94C4
+_080474D0:
+ ldr r1, [sp, 0x260]
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080474E2
+ ldr r2, [sp, 0x21C]
+ cmp r2, 0x1
+ bne _080474E2
+ movs r3, 0x1
+ mov r10, r3
+_080474E2:
+ ldr r0, _0804750C
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08047510
+ ldr r1, [sp, 0x214]
+ bl sub_8045BF8
+ ldr r1, [sp, 0x260]
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08047518
+ ldr r0, _08047514
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80522F4
+ b _08047524
+ .align 2, 0
+_0804750C: .4byte gUnknown_202DF98
+_08047510: .4byte gUnknown_202DE58
+_08047514: .4byte gUnknown_80F94D8
+_08047518:
+ ldr r0, _08047564
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80522F4
+_08047524:
+ adds r5, 0x8
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08047462
+_0804752C:
+ ldr r2, _08047568
+ ldr r3, [sp, 0x230]
+ adds r2, r3, r2
+ movs r4, 0
+ ldrsh r1, [r2, r4]
+ lsls r1, 19
+ lsrs r1, 16
+ ldr r4, _0804756C
+ add r3, sp, 0x210
+ ldr r0, [r3]
+ ands r0, r4
+ orrs r0, r1
+ str r0, [r3]
+ movs r4, 0x2
+ ldrsh r1, [r2, r4]
+ lsls r1, 19
+ ldr r2, _08047570
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r3]
+ mov r0, r10
+ cmp r0, 0x1
+ beq _08047584
+ cmp r0, 0x1
+ bcc _080475A8
+ cmp r0, 0x2
+ beq _08047596
+ b _080475A8
+ .align 2, 0
+_08047564: .4byte gUnknown_80F94F0
+_08047568: .4byte gUnknown_80F4448
+_0804756C: .4byte 0xffff0000
+_08047570: .4byte 0x0000ffff
+_08047574:
+ movs r1, 0
+ mov r10, r1
+ b _0804744C
+_0804757A:
+ mov r2, r10
+ str r2, [r7, 0x4]
+ movs r3, 0x1
+ mov r10, r3
+ b _0804744C
+_08047584:
+ add r0, sp, 0x210
+ str r0, [sp]
+ mov r0, r9
+ adds r1, r7, 0
+ ldr r2, [sp, 0x214]
+ movs r3, 0x1
+ bl sub_804652C
+ b _080475A8
+_08047596:
+ ldr r0, _080475BC
+ ldr r1, [sp, 0x214]
+ bl sub_8045C08
+ ldr r0, _080475C0
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80522A8
+_080475A8:
+ movs r3, 0x90
+ lsls r3, 2
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080475BC: .4byte gUnknown_202DE58
+_080475C0: .4byte gUnknown_80F9530
+ thumb_func_end sub_8047190
+
+ thumb_func_start sub_80475C4
+sub_80475C4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r7, r2, 0
+ str r3, [sp, 0x18]
+ ldr r0, _08047848
+ mov r8, r0
+ ldr r2, [r0]
+ ldr r1, _0804784C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ str r0, [sp, 0x24]
+ movs r4, 0
+ movs r5, 0
+ adds r3, r2, 0
+ adds r3, 0xC0
+ str r3, [sp, 0x1C]
+ movs r0, 0x3
+ str r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0xE4
+ strb r4, [r0]
+ adds r1, r2, 0
+ adds r1, 0xE0
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xE2
+ strb r4, [r0]
+ ldr r0, [sp, 0x14]
+ str r0, [r3, 0x70]
+ str r5, [r3, 0x1C]
+ ldr r0, [r7]
+ str r0, [r3, 0x4]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ ldr r0, [sp, 0x1C]
+ bl sub_8045394
+ ldr r3, [sp, 0x1C]
+ strh r4, [r3, 0x26]
+ movs r0, 0x1
+ str r0, [sp, 0x20]
+ movs r1, 0
+ str r1, [sp, 0x28]
+ ldr r0, [sp, 0x10]
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _0804765E
+ ldr r0, [sp, 0x10]
+ movs r1, 0x2A
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x28]
+_0804765E:
+ adds r0, r7, 0
+ bl sub_803F428
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldr r0, [sp, 0x18]
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804767C
+ movs r4, 0x1
+_0804767C:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, _08047850
+ adds r0, r3
+ add r1, sp, 0x20
+ ldrb r1, [r1]
+ strb r1, [r0]
+ cmp r4, 0
+ bne _08047690
+ b _080477D0
+_08047690:
+ ldr r2, [sp, 0x1C]
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ ldr r1, [sp, 0x18]
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ mov r9, r1
+ subs r1, r0, r1
+ cmp r1, 0
+ bge _080476A6
+ negs r1, r1
+_080476A6:
+ ldr r3, [sp, 0x1C]
+ movs r2, 0x6
+ ldrsh r0, [r3, r2]
+ ldr r3, [sp, 0x18]
+ movs r2, 0x2
+ ldrsh r3, [r3, r2]
+ mov r10, r3
+ subs r0, r3
+ cmp r0, 0
+ bge _080476BC
+ negs r0, r0
+_080476BC:
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r4, r0, 2
+ adds r3, r4, 0
+ adds r3, 0xC
+ str r3, [sp, 0x30]
+ cmp r3, 0x3F
+ ble _080476D2
+ movs r0, 0x40
+ str r0, [sp, 0x30]
+_080476D2:
+ movs r1, 0
+ str r1, [sp, 0x3C]
+ movs r0, 0x80
+ lsls r0, 12
+ adds r1, r4, 0
+ bl __divsi3
+ str r0, [sp, 0x40]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ mov r8, r0
+ movs r3, 0x2
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r7, r0, 11
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r9
+ lsls r0, 11
+ mov r2, r8
+ subs r0, r2
+ adds r1, r4, 0
+ bl __divsi3
+ str r0, [sp, 0x34]
+ mov r3, r10
+ lsls r0, r3, 1
+ add r0, r10
+ lsls r0, 11
+ subs r0, r7
+ adds r1, r4, 0
+ bl __divsi3
+ str r0, [sp, 0x38]
+ subs r0, r4, 0x3
+ cmp r0, 0
+ ble _080477D0
+ str r0, [sp, 0x2C]
+_08047726:
+ movs r0, 0
+ mov r10, r0
+ ldr r0, [sp, 0x3C]
+ cmp r0, 0
+ bge _08047732
+ adds r0, 0xFF
+_08047732:
+ asrs r0, 8
+ bl sub_8009C7C
+ ldr r2, [sp, 0x30]
+ adds r1, r0, 0
+ muls r1, r2
+ movs r0, 0x80
+ lsls r0, 3
+ mov r2, r8
+ adds r3, r2, r0
+ adds r2, r7, r0
+ ldr r0, [sp, 0x1C]
+ str r1, [r0, 0x1C]
+ mov r0, r8
+ cmp r0, 0
+ bge _08047754
+ adds r0, 0xFF
+_08047754:
+ asrs r0, 8
+ adds r0, 0x8
+ mov r9, r0
+ adds r0, r7, 0
+ cmp r7, 0
+ bge _08047762
+ adds r0, 0xFF
+_08047762:
+ asrs r0, 8
+ adds r4, r0, 0
+ adds r4, 0x10
+ ldr r1, [sp, 0x3C]
+ ldr r0, [sp, 0x40]
+ adds r1, r0
+ str r1, [sp, 0x3C]
+ ldr r0, [sp, 0x1C]
+ adds r1, r3, 0
+ bl sub_8045394
+ bl sub_804AF74
+ lsls r0, 24
+ movs r2, 0
+ cmp r0, 0
+ beq _08047786
+ movs r2, 0x3
+_08047786:
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_8083568
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047798
+ movs r1, 0x1
+ mov r10, r1
+_08047798:
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, [sp, 0x1C]
+ ldr r1, [sp, 0x24]
+ movs r2, 0
+ movs r3, 0xFF
+ bl sub_80462AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080477B2
+ movs r2, 0x1
+ mov r10, r2
+_080477B2:
+ mov r3, r10
+ cmp r3, 0
+ beq _080477BE
+ movs r0, 0x17
+ bl sub_803E46C
+_080477BE:
+ ldr r0, [sp, 0x34]
+ add r8, r0
+ ldr r1, [sp, 0x38]
+ adds r7, r1
+ ldr r2, [sp, 0x2C]
+ subs r2, 0x1
+ str r2, [sp, 0x2C]
+ cmp r2, 0
+ bne _08047726
+_080477D0:
+ ldr r3, [sp, 0x18]
+ ldr r0, [r3]
+ ldr r1, [sp, 0x1C]
+ str r0, [r1, 0x4]
+ ldr r0, _08047848
+ ldr r0, [r0]
+ ldr r2, _08047850
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl sub_804954C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bne _080477FA
+ b _08047904
+_080477FA:
+ movs r3, 0x1
+ mov r8, r3
+ movs r7, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047834
+ ldr r0, [r4, 0x10]
+ movs r1, 0x26
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r7, r1, 31
+ ldr r1, _08047854
+ add r0, sp, 0x8
+ bl sub_8092A88
+ ldr r0, [r4, 0x10]
+ add r1, sp, 0x8
+ bl sub_80571F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047834
+ movs r0, 0
+ mov r8, r0
+_08047834:
+ mov r1, r8
+ cmp r1, 0
+ beq _08047904
+ ldr r1, [r4, 0x10]
+ adds r5, r1, 0
+ cmp r7, 0
+ beq _0804785C
+ ldr r0, _08047858
+ ands r6, r0
+ b _0804786E
+ .align 2, 0
+_08047848: .4byte gUnknown_203B418
+_0804784C: .4byte 0x00018210
+_08047850: .4byte 0x0001c05e
+_08047854: .4byte 0x00000195
+_08047858: .4byte 0xffffff00
+_0804785C:
+ ldr r0, [sp, 0x10]
+ bl sub_8047930
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080478CC
+ ands r1, r6
+ adds r6, r1, 0
+ orrs r6, r0
+_0804786E:
+ ldr r0, _080478D0
+ ldr r1, [sp, 0x14]
+ bl sub_8045C08
+ ldr r0, _080478D4
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8045B94
+ lsls r0, r6, 24
+ cmp r0, 0
+ beq _080478DC
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl sub_806CE94
+ ldr r0, _080478D8
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_80522F4
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_807A96C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, [sp, 0x28]
+ cmp r3, 0
+ bne _080478B6
+ ldr r0, [sp, 0x64]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080478B8
+_080478B6:
+ movs r1, 0x1
+_080478B8:
+ str r5, [sp]
+ ldr r0, [sp, 0x14]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ ldr r3, [sp, 0x10]
+ bl sub_80479B8
+ movs r1, 0
+ str r1, [sp, 0x20]
+ b _08047904
+ .align 2, 0
+_080478CC: .4byte 0xffffff00
+_080478D0: .4byte gUnknown_202DE58
+_080478D4: .4byte gUnknown_202DF98
+_080478D8: .4byte gUnknown_80F94C4
+_080478DC:
+ cmp r7, 0
+ beq _080478F4
+ ldr r0, _080478F0
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_80522F4
+ b _08047900
+ .align 2, 0
+_080478F0: .4byte gUnknown_80F9510
+_080478F4:
+ ldr r0, _0804792C
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_80522F4
+_08047900:
+ movs r2, 0x1
+ str r2, [sp, 0x20]
+_08047904:
+ ldr r3, [sp, 0x20]
+ cmp r3, 0x1
+ bne _0804791A
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x14]
+ movs r3, 0
+ bl sub_804652C
+_0804791A:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804792C: .4byte gUnknown_80F94F0
+ thumb_func_end sub_80475C4
+
+ thumb_func_start sub_8047930
+sub_8047930:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r1, [r5, 0x70]
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ beq _0804794C
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0804794C
+ cmp r0, 0x1
+ bne _08047950
+_0804794C:
+ movs r0, 0
+ b _080479B0
+_08047950:
+ movs r0, 0x64
+ bl sub_8084100
+ ldr r1, _08047980
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r6, 0
+ cmp r0, r1
+ bge _08047964
+ movs r6, 0x1
+_08047964:
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047994
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047984
+ movs r6, 0
+ b _08047994
+ .align 2, 0
+_08047980: .4byte gUnknown_80F4FA2
+_08047984:
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047994
+ movs r6, 0x1
+_08047994:
+ adds r0, r5, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _080479AE
+ adds r0, r5, 0
+ movs r1, 0x25
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080479AE
+ movs r6, 0
+_080479AE:
+ adds r0, r6, 0
+_080479B0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8047930
+
+ thumb_func_start sub_80479B8
+sub_80479B8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r4, r3, 0
+ ldr r5, [sp, 0x3C]
+ ldr r7, [sp, 0x40]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ cmp r6, 0
+ beq _08047AD0
+ cmp r1, 0
+ bne _08047ABC
+ movs r0, 0
+ mov r8, r0
+ ldr r1, [r5, 0x70]
+ mov r9, r1
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08047A20
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047A3C
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08047A3C
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ mov r8, r1
+ b _08047A3C
+_08047A20:
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08047A3C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80718D8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_08047A3C:
+ adds r0, r5, 0
+ bl sub_8070C60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047A4C
+ movs r0, 0
+ mov r8, r0
+_08047A4C:
+ mov r1, r8
+ cmp r1, 0
+ beq _08047ABC
+ mov r0, r9
+ adds r0, 0x60
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08047ABC
+ mov r1, r9
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ bne _08047A76
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ adds r2, r7, 0
+ bl sub_80464C8
+ bl _080482BA
+_08047A76:
+ ldr r0, _08047AAC
+ bl sub_8083E38
+ ldr r0, _08047AB0
+ adds r1, r7, 0
+ bl sub_8045BF8
+ ldr r0, _08047AB4
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08047AB8
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+ ldr r0, [r7]
+ mov r1, r9
+ str r0, [r1, 0x60]
+ adds r0, r5, 0
+ bl sub_806A6E8
+ bl _080482BA
+ .align 2, 0
+_08047AAC: .4byte 0x0000014d
+_08047AB0: .4byte gUnknown_202DE58
+_08047AB4: .4byte gUnknown_202DF98
+_08047AB8: .4byte gUnknown_80FDBB8
+_08047ABC:
+ cmp r6, 0
+ beq _08047AD0
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8042390
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806F450
+_08047AD0:
+ ldrb r1, [r7]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08047B2C
+ ldr r0, _08047B1C
+ adds r1, r7, 0
+ bl sub_8045BF8
+ ldr r0, _08047B20
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+ cmp r6, 0
+ beq _08047B30
+ ldr r0, _08047B24
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ add r0, sp, 0x18
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _08047B28
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_806F370
+ adds r0, r4, 0
+ bl sub_8071DA4
+ b _080482BA
+ .align 2, 0
+_08047B1C: .4byte gUnknown_202DE58
+_08047B20: .4byte gUnknown_80FE3E8
+_08047B24: .4byte gUnknown_80F4FAE
+_08047B28: .4byte 0x00000217
+_08047B2C:
+ cmp r6, 0
+ bne _08047B38
+_08047B30:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_804245C
+_08047B38:
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08047B56
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_8078B5C
+_08047B56:
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ beq _08047B72
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08047B9C
+_08047B72:
+ cmp r6, 0
+ beq _08047B88
+ ldr r0, _08047B84
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r0, sp
+ adds r0, 0x19
+ b _08048284
+ .align 2, 0
+_08047B84: .4byte gUnknown_80F4FAC
+_08047B88:
+ ldr r0, _08047B98
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+ b _080482B4
+ .align 2, 0
+_08047B98: .4byte gUnknown_80FE458
+_08047B9C:
+ ldrb r0, [r7, 0x2]
+ subs r0, 0x1
+ cmp r0, 0xE8
+ bls _08047BA6
+ b _08048276
+_08047BA6:
+ lsls r0, 2
+ ldr r1, _08047BB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08047BB0: .4byte _08047BB4
+ .align 2, 0
+_08047BB4:
+ .4byte _08047F58
+ .4byte _08047F70
+ .4byte _08047F88
+ .4byte _08047FA0
+ .4byte _08047FB8
+ .4byte _08047FD0
+ .4byte _08047FF0
+ .4byte _08047FE8
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048004
+ .4byte _0804825E
+ .4byte _08048010
+ .4byte _0804801A
+ .4byte _0804804C
+ .4byte _08048276
+ .4byte _0804802E
+ .4byte _0804809C
+ .4byte _08048038
+ .4byte _08048024
+ .4byte _080480BA
+ .4byte _080480C4
+ .4byte _08048042
+ .4byte _0804806A
+ .4byte _08048060
+ .4byte _08048056
+ .4byte _0804807E
+ .4byte _080480B0
+ .4byte _08048074
+ .4byte _080480D8
+ .4byte _080480CE
+ .4byte _08048092
+ .4byte _08048088
+ .4byte _080480A6
+ .4byte _080480E4
+ .4byte _080480EE
+ .4byte _080480F8
+ .4byte _08048102
+ .4byte _0804810C
+ .4byte _08048212
+ .4byte _08048122
+ .4byte _0804813C
+ .4byte _0804812A
+ .4byte _08048146
+ .4byte _08048152
+ .4byte _0804815E
+ .4byte _0804816A
+ .4byte _08048176
+ .4byte _08048182
+ .4byte _0804818E
+ .4byte _0804819A
+ .4byte _080481A6
+ .4byte _080481B2
+ .4byte _080481BE
+ .4byte _080481CA
+ .4byte _080481D6
+ .4byte _080481E2
+ .4byte _080481EE
+ .4byte _080481FA
+ .4byte _08048206
+ .4byte _08048212
+ .4byte _08048220
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _0804823A
+ .4byte _08048252
+ .4byte _08048246
+ .4byte _0804826A
+ .4byte _0804822E
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048116
+_08047F58:
+ ldr r0, _08047F6C
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047F6C: .4byte gUnknown_80F503A
+_08047F70:
+ ldr r0, _08047F84
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x2
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047F84: .4byte gUnknown_80F503C
+_08047F88:
+ ldr r0, _08047F9C
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x3
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047F9C: .4byte gUnknown_80F503E
+_08047FA0:
+ ldr r0, _08047FB4
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x4
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047FB4: .4byte gUnknown_80F5040
+_08047FB8:
+ ldr r0, _08047FCC
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047FCC: .4byte gUnknown_80F5042
+_08047FD0:
+ ldr r0, _08047FE4
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x6
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047FE4: .4byte gUnknown_80F5044
+_08047FE8:
+ ldr r0, _08047FEC
+ b _08047FF2
+ .align 2, 0
+_08047FEC: .4byte gUnknown_80F5048
+_08047FF0:
+ ldr r0, _08048000
+_08047FF2:
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048340
+ b _080482B4
+ .align 2, 0
+_08048000: .4byte gUnknown_80F5046
+_08048004:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, r10
+ bl sub_8048364
+ b _080482B4
+_08048010:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048374
+ b _080482B4
+_0804801A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804839C
+ b _080482B4
+_08048024:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80483D4
+ b _080482B4
+_0804802E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80483F4
+ b _080482B4
+_08048038:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048400
+ b _080482B4
+_08048042:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804840C
+ b _080482B4
+_0804804C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804841C
+ b _080482B4
+_08048056:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804849C
+ b _080482B4
+_08048060:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048428
+ b _080482B4
+_0804806A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048450
+ b _080482B4
+_08048074:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048480
+ b _080482B4
+_0804807E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80482D4
+ b _080482B4
+_08048088:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048490
+ b _080482B4
+_08048092:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484A8
+ b _080482B4
+_0804809C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484DC
+ b _080482B4
+_080480A6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484BC
+ b _080482B4
+_080480B0:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484C8
+ b _080482B4
+_080480BA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484E8
+ b _080482B4
+_080480C4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048524
+ b _080482B4
+_080480CE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80485B0
+ b _080482B4
+_080480D8:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_804869C
+ b _080482B4
+_080480E4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80483C4
+ b _080482B4
+_080480EE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804891C
+ b _080482B4
+_080480F8:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048928
+ b _080482B4
+_08048102:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048934
+ b _080482B4
+_0804810C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048940
+ b _080482B4
+_08048116:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl nullsub_94
+ b _080482B4
+_08048122:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ b _08048130
+_0804812A:
+ ldr r2, _08048138
+ adds r0, r4, 0
+ adds r1, r5, 0
+_08048130:
+ movs r3, 0xA
+ bl sub_80487CC
+ b _080482B4
+ .align 2, 0
+_08048138: .4byte 0x000003e7
+_0804813C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048E04
+ b _080482B4
+_08048146:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_80487E0
+ b _080482B4
+_08048152:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_80487E0
+ b _080482B4
+_0804815E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl sub_80487E0
+ b _080482B4
+_0804816A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x4
+ bl sub_80487E0
+ b _080482B4
+_08048176:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x5
+ bl sub_80487E0
+ b _080482B4
+_08048182:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80487E0
+ b _080482B4
+_0804818E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl sub_80487E0
+ b _080482B4
+_0804819A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl sub_80487E0
+ b _080482B4
+_080481A6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x9
+ bl sub_80487E0
+ b _080482B4
+_080481B2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xA
+ bl sub_80487E0
+ b _080482B4
+_080481BE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xB
+ bl sub_80487E0
+ b _080482B4
+_080481CA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xC
+ bl sub_80487E0
+ b _080482B4
+_080481D6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xD
+ bl sub_80487E0
+ b _080482B4
+_080481E2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ bl sub_80487E0
+ b _080482B4
+_080481EE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xF
+ bl sub_80487E0
+ b _080482B4
+_080481FA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl sub_80487E0
+ b _080482B4
+_08048206:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x11
+ bl sub_80487E0
+ b _080482B4
+_08048212:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x32
+ movs r3, 0x5
+ bl sub_80487CC
+ b _080482B4
+_08048220:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80487CC
+ b _080482B4
+_0804822E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048DB8
+ b _080482B4
+_0804823A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048EB0
+ b _080482B4
+_08048246:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048EC4
+ b _080482B4
+_08048252:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048ED8
+ b _080482B4
+_0804825E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048EEC
+ b _080482B4
+_0804826A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048F00
+ b _080482B4
+_08048276:
+ cmp r6, 0
+ beq _080482A8
+ ldr r0, _080482A0
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r0, sp
+ adds r0, 0x1A
+_08048284:
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _080482A4
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_806F370
+ b _080482B4
+ .align 2, 0
+_080482A0: .4byte gUnknown_80F4FAC
+_080482A4: .4byte 0x00000217
+_080482A8:
+ ldr r0, _080482CC
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+_080482B4:
+ adds r0, r4, 0
+ bl sub_8071DA4
+_080482BA:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080482CC: .4byte gUnknown_80FE458
+ thumb_func_end sub_80479B8
+
+ thumb_func_start nullsub_205
+nullsub_205:
+ bx lr
+ thumb_func_end nullsub_205
+
+ thumb_func_start sub_80482D4
+sub_80482D4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _080482F8
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_808417C
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8075C58
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080482F8: .4byte gUnknown_80F4E74
+ thumb_func_end sub_80482D4
+
+ thumb_func_start sub_80482FC
+sub_80482FC:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ mov r8, r0
+ mov r9, r1
+ adds r6, r2, 0
+ lsls r4, r3, 24
+ lsrs r4, 24
+ add r5, sp, 0x4
+ ldr r1, _0804833C
+ adds r0, r5, 0
+ bl sub_8092A88
+ strb r6, [r5, 0x4]
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ mov r0, r8
+ mov r1, r9
+ add r2, sp, 0x4
+ bl sub_8055640
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804833C: .4byte 0x00000195
+ thumb_func_end sub_80482FC
+
+ thumb_func_start sub_8048340
+sub_8048340:
+ push {r4,lr}
+ sub sp, 0x18
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r3, 0x84
+ lsls r3, 2
+ str r3, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ str r4, [sp, 0x14]
+ movs r3, 0x1
+ bl sub_806F370
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048340
+
+ thumb_func_start sub_8048364
+sub_8048364:
+ push {lr}
+ lsls r3, r2, 24
+ lsrs r3, 24
+ movs r2, 0x1
+ bl sub_8079F20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048364
+
+ thumb_func_start sub_8048374
+sub_8048374:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _08048394
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ ldr r3, _08048398
+ movs r4, 0
+ ldrsh r3, [r3, r4]
+ movs r4, 0x1
+ str r4, [sp]
+ bl sub_8077C44
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048394: .4byte gUnknown_80F4FB6
+_08048398: .4byte gUnknown_80F4FB8
+ thumb_func_end sub_8048374
+
+ thumb_func_start sub_804839C
+sub_804839C:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _080483BC
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ ldr r3, _080483C0
+ movs r4, 0
+ ldrsh r3, [r3, r4]
+ movs r4, 0x1
+ str r4, [sp]
+ bl sub_8077C44
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080483BC: .4byte gUnknown_80F4FBA
+_080483C0: .4byte gUnknown_80F4FBC
+ thumb_func_end sub_804839C
+
+ thumb_func_start sub_80483C4
+sub_80483C4:
+ push {lr}
+ ldr r2, _080483D0
+ bl sub_80792F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080483D0: .4byte 0x000003e7
+ thumb_func_end sub_80483C4
+
+ thumb_func_start sub_80483D4
+sub_80483D4:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _080483F0
+ movs r4, 0
+ ldrsh r3, [r2, r4]
+ movs r2, 0x1
+ str r2, [sp]
+ movs r2, 0
+ bl sub_8077C44
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080483F0: .4byte gUnknown_80F4FBE
+ thumb_func_end sub_80483D4
+
+ thumb_func_start sub_80483F4
+sub_80483F4:
+ push {lr}
+ bl sub_8079140
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80483F4
+
+ thumb_func_start sub_8048400
+sub_8048400:
+ push {lr}
+ bl sub_80791D8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048400
+
+ thumb_func_start sub_804840C
+sub_804840C:
+ push {lr}
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8077910
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804840C
+
+ thumb_func_start sub_804841C
+sub_804841C:
+ push {lr}
+ bl sub_8079270
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804841C
+
+ thumb_func_start sub_8048428
+sub_8048428:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, [r1, 0x70]
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0804843E
+ adds r0, r3, 0
+ bl sub_807A290
+ b _08048448
+_0804843E:
+ ldr r0, _0804844C
+ ldr r2, [r0]
+ adds r0, r3, 0
+ bl sub_80522F4
+_08048448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804844C: .4byte gUnknown_80F89F4
+ thumb_func_end sub_8048428
+
+ thumb_func_start sub_8048450
+sub_8048450:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, [r1, 0x70]
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0804846C
+ adds r0, r3, 0
+ bl sub_807A290
+ b _08048476
+_0804846C:
+ ldr r0, _0804847C
+ ldr r2, [r0]
+ adds r0, r3, 0
+ bl sub_80522F4
+_08048476:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804847C: .4byte gUnknown_80F89F4
+ thumb_func_end sub_8048450
+
+ .align 2,0