summaryrefslogtreecommitdiff
path: root/asm/code_8084160.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_8084160.s')
-rw-r--r--asm/code_8084160.s958
1 files changed, 958 insertions, 0 deletions
diff --git a/asm/code_8084160.s b/asm/code_8084160.s
new file mode 100644
index 0000000..54f31d7
--- /dev/null
+++ b/asm/code_8084160.s
@@ -0,0 +1,958 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8084160
+sub_8084160:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ cmp r0, r4
+ blt _08084172
+ movs r0, 0
+ b _08084174
+_08084172:
+ movs r0, 0x1
+_08084174:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8084160
+
+ thumb_func_start sub_808417C
+sub_808417C:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl sub_808411C
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080841DC
+ adds r0, r5, 0
+ bl GetEntityType
+ cmp r0, 0x1
+ bne _080841DC
+ cmp r6, 0
+ beq _080841DC
+ adds r0, r5, 0
+ movs r1, 0x12
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _080841C4
+ cmp r4, 0x7F
+ beq _080841C4
+ lsrs r0, r4, 31
+ adds r0, r4, r0
+ asrs r4, r0, 1
+_080841C4:
+ adds r0, r5, 0
+ movs r1, 0x14
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _080841DC
+ cmp r4, 0x7F
+ beq _080841DC
+ cmp r4, 0x4
+ ble _080841DC
+ movs r4, 0x5
+_080841DC:
+ cmp r4, 0
+ bgt _080841E2
+ movs r4, 0x1
+_080841E2:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808417C
+
+ thumb_func_start sub_80841EC
+sub_80841EC:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC4
+ add r0, sp, 0x60
+ mov r8, r0
+ movs r1, 0
+ movs r2, 0x60
+ bl memset
+ movs r0, 0x6
+ str r0, [sp, 0x64]
+ add r1, sp, 0x68
+ movs r6, 0
+ movs r0, 0x4
+ strh r0, [r1]
+ movs r2, 0x3
+ strh r2, [r1, 0x2]
+ add r1, sp, 0x6C
+ movs r0, 0x16
+ strh r0, [r1]
+ mov r0, sp
+ adds r0, 0x6E
+ movs r5, 0xE
+ movs r1, 0xE
+ strh r1, [r0]
+ add r0, sp, 0x70
+ strh r1, [r0]
+ add r4, sp, 0xC0
+ str r4, [sp, 0x74]
+ str r2, [sp, 0x7C]
+ add r0, sp, 0x90
+ str r2, [r0, 0x4]
+ add r0, sp, 0xA8
+ str r2, [r0, 0x4]
+ mov r0, sp
+ mov r1, r8
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ strb r5, [r4, 0x2]
+ strb r6, [r4, 0x3]
+ mov r1, sp
+ movs r0, 0x14
+ strh r0, [r1, 0xA]
+ mov r0, sp
+ movs r1, 0x1
+ bl sub_803ECB4
+ ldr r0, _0808426C
+ ldr r0, [r0]
+ ldr r1, _08084270
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _08084274
+ cmp r1, r0
+ ble _08084278
+ bl sub_8083DE0
+ b _0808427C
+ .align 2, 0
+_0808426C: .4byte gDungeonGlobalData
+_08084270: .4byte 0x0001ceac
+_08084274: .4byte 0x00000225
+_08084278:
+ bl sub_8083D98
+_0808427C:
+ ldr r0, _080842B8
+ ldr r1, [r0]
+ ldr r0, _080842BC
+ ldr r2, [r0]
+ ldr r0, _080842C0
+ adds r2, r0
+ movs r0, 0
+ bl sub_8094558
+ mov r4, sp
+_08084290:
+ movs r0, 0x36
+ bl sub_803E668
+ bl sub_8083F58
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080842C4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0xA0
+ strb r0, [r4]
+ mov r0, sp
+ movs r1, 0x1
+ bl sub_803ECB4
+ b _08084290
+ .align 2, 0
+_080842B8: .4byte gUnknown_80FE6E8
+_080842BC: .4byte gDungeonGlobalData
+_080842C0: .4byte 0x0001ce98
+_080842C4:
+ bl sub_8094D14
+ lsls r0, 24
+ cmp r0, 0
+ bne _080842DA
+ ldr r0, _080842EC
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08084290
+_080842DA:
+ bl sub_8083D08
+ add sp, 0xC4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080842EC: .4byte gRealInputs
+ thumb_func_end sub_80841EC
+
+ thumb_func_start sub_80842F0
+sub_80842F0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _0808436C
+ ldr r0, [r1]
+ ldr r2, _08084370
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, [r1]
+ ldr r3, _08084374
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r1]
+ movs r5, 0xCF
+ lsls r5, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080843AE
+ movs r6, 0
+ ldr r0, _08084378
+ mov r8, r0
+ movs r7, 0x1
+_08084320:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x6
+ bne _080843A8
+ ldr r3, _0808436C
+ ldr r5, [r3]
+ ldr r1, _0808437C
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ ldrh r2, [r4, 0x4]
+ mov r1, r8
+ ands r1, r0
+ mov r0, r8
+ ands r0, r2
+ cmp r1, r0
+ bne _080843A8
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x3
+ beq _080843A8
+ cmp r0, 0x4
+ bne _08084380
+ ldrb r1, [r4, 0x10]
+ ldr r2, _08084374
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r2, [r3]
+ ldrh r1, [r4, 0xE]
+ movs r3, 0xD1
+ lsls r3, 3
+ adds r0, r2, r3
+ strh r1, [r0]
+ strb r7, [r2, 0x9]
+ b _080843A8
+ .align 2, 0
+_0808436C: .4byte gDungeonGlobalData
+_08084370: .4byte 0x00000677
+_08084374: .4byte 0x0000068a
+_08084378: .4byte 0x0000ffff
+_0808437C: .4byte 0x00000644
+_08084380:
+ cmp r0, 0
+ beq _0808438C
+ cmp r0, 0x2
+ beq _0808438C
+ cmp r0, 0x1
+ bne _080843A8
+_0808438C:
+ ldr r2, [r3]
+ ldrh r0, [r4, 0xE]
+ movs r5, 0xD1
+ lsls r5, 3
+ adds r1, r2, r5
+ strh r0, [r1]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _080843A4
+ ldr r1, _080843B8
+ adds r0, r2, r1
+ strb r7, [r0]
+_080843A4:
+ ldr r0, [r3]
+ strb r7, [r0, 0x9]
+_080843A8:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08084320
+_080843AE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080843B8: .4byte 0x00000677
+ thumb_func_end sub_80842F0
+
+ thumb_func_start sub_80843BC
+sub_80843BC:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r6, r0, 16
+ movs r4, 0
+ ldr r5, _08084418
+_080843C6:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r3, r0, 0
+ ldrb r0, [r3]
+ cmp r0, 0x6
+ bne _0808440C
+ ldr r0, _0808441C
+ ldr r0, [r0]
+ ldr r1, _08084420
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r2, [r3, 0x4]
+ adds r1, r5, 0
+ ands r1, r0
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r1, r0
+ bne _0808440C
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ beq _08084400
+ cmp r0, 0x4
+ beq _08084400
+ cmp r0, 0x2
+ beq _08084400
+ cmp r0, 0x1
+ bne _0808440C
+_08084400:
+ movs r1, 0xE
+ ldrsh r0, [r3, r1]
+ cmp r6, r0
+ bne _0808440C
+ movs r0, 0x8
+ strb r0, [r3]
+_0808440C:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080843C6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08084418: .4byte 0x0000ffff
+_0808441C: .4byte gDungeonGlobalData
+_08084420: .4byte 0x00000644
+ thumb_func_end sub_80843BC
+
+ thumb_func_start sub_8084424
+sub_8084424:
+ push {r4,lr}
+ movs r4, 0
+_08084428:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ bne _0808443C
+ movs r0, 0x9
+ strb r0, [r1]
+_0808443C:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08084428
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8084424
+
+ thumb_func_start sub_8084448
+sub_8084448:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r7, [r5, 0x70]
+ ldr r4, _0808447C
+ bl GetLeaderEntity
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r4, 0x50
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r0, r5, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08084484
+ ldr r0, _08084480
+ b _080844F0
+ .align 2, 0
+_0808447C: .4byte gAvailablePokemonNames
+_08084480: .4byte gUnknown_80FA464
+_08084484:
+ ldr r4, _080844FC
+ ldr r0, [r4]
+ ldr r6, _08084500
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08084540
+ ldr r0, _08084504
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ beq _080844A4
+ b _080845D4
+_080844A4:
+ ldr r0, _08084508
+ ldr r1, [r4]
+ adds r1, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8090DC4
+ movs r3, 0
+ ldr r0, _0808450C
+ adds r6, r0, 0
+ ldr r2, [r6]
+_080844BA:
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080844E2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080844E2
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0x18
+ beq _080844E2
+ ldr r0, [r4]
+ ldr r1, _08084500
+ adds r0, r1
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _080844EA
+_080844E2:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _080844BA
+_080844EA:
+ cmp r3, 0x14
+ bne _08084514
+ ldr r0, _08084510
+_080844F0:
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _080845D4
+ .align 2, 0
+_080844FC: .4byte gDungeonGlobalData
+_08084500: .4byte 0x0000068a
+_08084504: .4byte gUnknown_80FA32C
+_08084508: .4byte gUnknown_202DE58
+_0808450C: .4byte gTeamInventory_203B460
+_08084510: .4byte gUnknown_80FA448
+_08084514:
+ lsls r1, r3, 2
+ ldr r0, [r6]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x1]
+ strb r0, [r1]
+ bl FillInventoryGaps
+ ldr r0, _08084538
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ ldr r0, _0808453C
+ b _0808455E
+ .align 2, 0
+_08084538: .4byte gUnknown_80FA2B0
+_0808453C: .4byte gUnknown_80FA370
+_08084540:
+ ldr r0, _080845B0
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ bne _080845D4
+ ldr r0, _080845B4
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ ldr r0, _080845B8
+_0808455E:
+ ldr r4, [r0]
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ bl sub_80843BC
+ adds r0, r5, 0x4
+ bl sub_8042A34
+ movs r1, 0x87
+ lsls r1, 2
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_8068FE0
+ movs r0, 0x1
+ bl sub_804178C
+ ldr r5, _080845BC
+_08084582:
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ bne _080845C4
+ ldr r0, _080845C0
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_8052B8C
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _08084582
+ ldr r0, [r5]
+ strb r1, [r0, 0x4]
+ ldr r1, [r5]
+ movs r0, 0x2
+ strb r0, [r1, 0x11]
+ b _080845D4
+ .align 2, 0
+_080845B0: .4byte gUnknown_80FA2F0
+_080845B4: .4byte gUnknown_80FA260
+_080845B8: .4byte gUnknown_80FA36C
+_080845BC: .4byte gDungeonGlobalData
+_080845C0: .4byte gUnknown_80FA394
+_080845C4:
+ ldr r0, _080845DC
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_8052B8C
+ cmp r0, 0x1
+ bne _08084582
+_080845D4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080845DC: .4byte gUnknown_80FA3B8
+ thumb_func_end sub_8084448
+
+ thumb_func_start sub_80845E0
+sub_80845E0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ ldr r0, [r6, 0x70]
+ mov r8, r0
+ movs r7, 0
+ movs r1, 0
+ mov r9, r1
+ ldr r4, _08084620
+ bl GetLeaderEntity
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r4, 0x50
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r0, r6, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08084630
+ ldr r0, _08084624
+ b _080846B4
+ .align 2, 0
+_08084620: .4byte gAvailablePokemonNames
+_08084624: .4byte gUnknown_80FA530
+_08084628:
+ adds r7, r4, 0
+ ldr r2, [r7, 0x70]
+ mov r9, r2
+ b _08084674
+_08084630:
+ movs r5, 0
+_08084632:
+ ldr r0, _08084660
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08084664
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808466E
+ ldr r0, [r4, 0x70]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _0808465A
+ cmp r0, 0x47
+ bne _08084668
+_0808465A:
+ movs r0, 0x1
+ b _0808466A
+ .align 2, 0
+_08084660: .4byte gDungeonGlobalData
+_08084664: .4byte 0x0001357c
+_08084668:
+ movs r0, 0
+_0808466A:
+ cmp r0, 0
+ bne _08084628
+_0808466E:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08084632
+_08084674:
+ cmp r7, 0
+ bne _08084680
+ ldr r0, _0808467C
+ b _080846B4
+ .align 2, 0
+_0808467C: .4byte gUnknown_80FA52C
+_08084680:
+ ldr r0, _0808469C
+ adds r1, r7, 0
+ movs r2, 0
+ bl SetMessageArgument
+ adds r0, r7, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080846A4
+ ldr r0, _080846A0
+ b _080846B4
+ .align 2, 0
+_0808469C: .4byte gUnknown_202E038
+_080846A0: .4byte gUnknown_80FA54C
+_080846A4:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ bne _080846C4
+ ldr r0, _080846C0
+_080846B4:
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _08084768
+ .align 2, 0
+_080846C0: .4byte gUnknown_80FA500
+_080846C4:
+ ldr r0, _08084744
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ mov r1, r8
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ bl sub_80843BC
+ ldr r5, _08084748
+ ldr r0, [r5]
+ ldr r1, _0808474C
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r0, r9
+ adds r0, 0x40
+ strb r1, [r0]
+ adds r0, r6, 0x4
+ bl sub_8042A34
+ adds r0, r7, 0x4
+ bl sub_8042A34
+ movs r4, 0x87
+ lsls r4, 2
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8068FE0
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8068FE0
+ movs r0, 0x1
+ bl sub_804178C
+ ldr r4, _08084750
+_08084716:
+ movs r0, 0
+ ldr r1, [r4]
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ bne _08084758
+ ldr r0, _08084754
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_8052B8C
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _08084716
+ ldr r0, [r5]
+ strb r1, [r0, 0x4]
+ ldr r1, [r5]
+ movs r0, 0x2
+ strb r0, [r1, 0x11]
+ b _08084768
+ .align 2, 0
+_08084744: .4byte gUnknown_80FA4D4
+_08084748: .4byte gDungeonGlobalData
+_0808474C: .4byte 0x00000644
+_08084750: .4byte gUnknown_80FA4D8
+_08084754: .4byte gUnknown_80FA394
+_08084758:
+ ldr r0, _08084774
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_8052B8C
+ cmp r0, 0x1
+ bne _08084716
+_08084768:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08084774: .4byte gUnknown_80FA3B8
+ thumb_func_end sub_80845E0
+
+ thumb_func_start sub_8084778
+sub_8084778:
+ push {r4,lr}
+ ldr r0, _080847B8
+ ldr r1, _080847BC
+ bl strcpy
+ movs r4, 0
+_08084784:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _080847C8
+ ldr r0, _080847C0
+ ldr r0, [r0]
+ ldr r2, _080847C4
+ adds r0, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1, 0x4]
+ cmp r0, r2
+ bne _080847C8
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x2
+ bne _080847C8
+ movs r0, 0xE
+ ldrsh r1, [r1, r0]
+ ldr r0, _080847B8
+ bl CopyCyanSpeciesNametoBuffer
+ b _080847CE
+ .align 2, 0
+_080847B8: .4byte gUnknown_202E088
+_080847BC: .4byte gUnknown_8107224
+_080847C0: .4byte gDungeonGlobalData
+_080847C4: .4byte 0x00000644
+_080847C8:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08084784
+_080847CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8084778
+
+ thumb_func_start sub_80847D4
+sub_80847D4:
+ push {r4,r5,lr}
+ ldr r2, _08084820
+ ldr r0, [r2]
+ ldr r1, _08084824
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, _08084828
+ adds r0, r2
+ strb r1, [r0]
+ bl sub_8040A84
+ movs r4, 0
+ ldr r0, _0808482C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08084846
+ movs r3, 0
+_080847FA:
+ ldr r0, _08084820
+ ldr r0, [r0]
+ ldr r5, _08084830
+ adds r0, r5
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r1, 0
+ subs r0, 0x1C
+ cmp r0, 0x15
+ bhi _08084810
+ movs r1, 0x1B
+_08084810:
+ ldr r2, _0808482C
+ adds r0, r3, r2
+ ldrb r5, [r0]
+ cmp r1, r5
+ bne _08084834
+ bl sub_8084854
+ b _08084846
+ .align 2, 0
+_08084820: .4byte gDungeonGlobalData
+_08084824: .4byte 0x00003a0d
+_08084828: .4byte 0x0001356c
+_0808482C: .4byte gUnknown_8107234
+_08084830: .4byte 0x00003a14
+_08084834:
+ adds r3, 0x8
+ adds r4, 0x1
+ ldr r0, _08084850
+ cmp r4, r0
+ bgt _08084846
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080847FA
+_08084846:
+ bl sub_8097FF8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08084850: .4byte 0x000003e6
+ thumb_func_end sub_80847D4
+
+ thumb_func_start sub_8084854
+sub_8084854:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08084874
+ ldr r2, [r5]
+ movs r1, 0xCF
+ lsls r1, 3
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808487C
+ ldrb r1, [r4, 0x5]
+ ldr r3, _08084878
+ adds r0, r2, r3
+ strb r1, [r0]
+ b _080848C8
+ .align 2, 0
+_08084874: .4byte gDungeonGlobalData
+_08084878: .4byte 0x00003a0d
+_0808487C:
+ ldrb r0, [r4, 0x4]
+ bl sub_8098100
+ lsls r0, 24
+ cmp r0, 0
+ beq _08084898
+ ldr r0, [r5]
+ ldrb r1, [r4, 0x5]
+ ldr r2, _08084894
+ adds r0, r2
+ strb r1, [r0]
+ b _080848C8
+ .align 2, 0
+_08084894: .4byte 0x00003a0d
+_08084898:
+ ldrb r0, [r4, 0x2]
+ bl sub_8098100
+ lsls r0, 24
+ cmp r0, 0
+ beq _080848B4
+ ldr r0, [r5]
+ ldrb r1, [r4, 0x3]
+ ldr r3, _080848B0
+ adds r0, r3
+ strb r1, [r0]
+ b _080848C8
+ .align 2, 0
+_080848B0: .4byte 0x00003a0d
+_080848B4:
+ ldr r0, [r5]
+ ldrb r1, [r4, 0x1]
+ ldr r2, _080848E0
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x40
+ beq _080848C8
+ bl sub_8097FA8
+_080848C8:
+ ldr r0, _080848E4
+ ldr r0, [r0]
+ ldr r3, _080848E8
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_807E5E4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080848E0: .4byte 0x00003a0d
+_080848E4: .4byte gDungeonGlobalData
+_080848E8: .4byte 0x00000675
+ thumb_func_end sub_8084854
+
+ .align 2,0